From 7347a25677f7918b37be2a00bbb61195e6926c49 Mon Sep 17 00:00:00 2001 From: chiranjeev13 Date: Mon, 5 Jan 2026 21:27:41 +0530 Subject: [PATCH 1/3] chore: update Inco Lightning configuration for testnet - Updated Docker image tags in .env and docker-compose.yaml to use testnet versions. - Bumped @inco/js and @inco/lightning versions to 0.7.6 in package.json. - Modified test configurations to connect to testnet instead of devnet. - Adjusted Solidity imports to reference the updated Lib.sol for compatibility with the new Lightning library. --- .env | 2 +- backend/src/test/lightning.local.e2e.test.ts | 2 +- .../src/test/react-example/build/index.html | 1 + .../build/static/js/137.b145ceef.chunk.js | 1 + .../build/static/js/main.4eaaaef9.js | 2 + .../build/static/js/main.4eaaaef9.js.map | 1 + .../build/static/js/vendors.358533ae.js | 3 ++ .../static/js/vendors.358533ae.js.LICENSE.txt | 54 +++++++++++++++++++ .../build/static/js/vendors.358533ae.js.map | 1 + backend/src/test/react-example/src/index.tsx | 2 +- .../src/test/react-example/src/lib/inco.ts | 2 +- .../src/test/react-example/test/Inco.spec.tsx | 4 +- contracts/src/AddTwo.sol | 2 +- contracts/src/LibTest.sol | 2 +- docker-compose.yaml | 4 +- package.json | 4 +- 16 files changed, 75 insertions(+), 12 deletions(-) create mode 100644 backend/src/test/react-example/build/index.html create mode 100644 backend/src/test/react-example/build/static/js/137.b145ceef.chunk.js create mode 100644 backend/src/test/react-example/build/static/js/main.4eaaaef9.js create mode 100644 backend/src/test/react-example/build/static/js/main.4eaaaef9.js.map create mode 100644 backend/src/test/react-example/build/static/js/vendors.358533ae.js create mode 100644 backend/src/test/react-example/build/static/js/vendors.358533ae.js.LICENSE.txt create mode 100644 backend/src/test/react-example/build/static/js/vendors.358533ae.js.map diff --git a/.env b/.env index a771a78..93c6a59 100644 --- a/.env +++ b/.env @@ -1,2 +1,2 @@ # The version of the Inco Lightning test docker images to use -DOCKER_IMAGE_TAG=v0.7.5 \ No newline at end of file +DOCKER_IMAGE_TAG=v0.7.6 \ No newline at end of file diff --git a/backend/src/test/lightning.local.e2e.test.ts b/backend/src/test/lightning.local.e2e.test.ts index c6f8013..cacf488 100644 --- a/backend/src/test/lightning.local.e2e.test.ts +++ b/backend/src/test/lightning.local.e2e.test.ts @@ -5,7 +5,7 @@ import { describe } from 'vitest'; import { runE2ETest } from './lightning-test.js'; describe(`Lightning Local Node E2E`, { timeout: 50_000 }, async () => { - const zap = await Lightning.localNode('devnet'); + const zap = await Lightning.localNode('testnet'); runE2ETest(zap, { chain: anvil, senderPrivKey: zap.deployment.senderPrivateKey as Hex, diff --git a/backend/src/test/react-example/build/index.html b/backend/src/test/react-example/build/index.html new file mode 100644 index 0000000..dfeb0c0 --- /dev/null +++ b/backend/src/test/react-example/build/index.html @@ -0,0 +1 @@ +React Example
\ No newline at end of file diff --git a/backend/src/test/react-example/build/static/js/137.b145ceef.chunk.js b/backend/src/test/react-example/build/static/js/137.b145ceef.chunk.js new file mode 100644 index 0000000..92fbd42 --- /dev/null +++ b/backend/src/test/react-example/build/static/js/137.b145ceef.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkreact_example=self.webpackChunkreact_example||[]).push([[137],{95137(){}}]); \ No newline at end of file diff --git a/backend/src/test/react-example/build/static/js/main.4eaaaef9.js b/backend/src/test/react-example/build/static/js/main.4eaaaef9.js new file mode 100644 index 0000000..ae39781 --- /dev/null +++ b/backend/src/test/react-example/build/static/js/main.4eaaaef9.js @@ -0,0 +1,2 @@ +(()=>{var e,t,r,n,a,o={6497(){},21113(){},28929(){},30903(){},33033(){},38475(){},38984(e,t,r){"use strict";var n=r(48431),a=r(9827),o=r(86020),i=r(98490),s=r(99867),l=r(33781),c=r(38963),d=r(23179),u=r(59968),p=r(58359),y=r(56050),h=r(19109),f=r(17617),m=r(4297);const g=[{type:"function",inputs:[{name:"a",internalType:"euint256",type:"bytes32"}],name:"addTwo",outputs:[{name:"",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"uint256EInput",internalType:"bytes",type:"bytes"}],name:"addTwoEOA",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"payable"},{type:"function",inputs:[{name:"a",internalType:"euint256",type:"bytes32"}],name:"addTwoScalar",outputs:[{name:"",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"getFee",outputs:[{name:"",internalType:"uint256",type:"uint256"}],stateMutability:"pure"},{type:"error",inputs:[],name:"FeeNotPaid"}];var b=r(23619),v=r(42295);function w({chain:e,pepper:t,privateKey:r,hostChainRpcUrl:a,value:w,addTwoAddress:x}){const[j,E]=(0,n.useState)(null),[T,S]=(0,n.useState)(null),[O,P]=(0,n.useState)(null),[k,C]=(0,n.useState)(!1),[$,F]=(0,n.useState)(null),[A,_]=(0,n.useState)(null),N=(0,n.useCallback)(async t=>{const n=(0,f.R)(r),o=(0,c.x)({...e,fees:{maxPriorityFeePerGas:(0,d._)("10")}}),i=(0,u.F)({chain:o,transport:(0,p.L)(a),account:n}),s=(0,y.l)({chain:o,transport:(0,p.L)(a)}),l=(0,h.PF)({abi:g,address:x,client:i});let m;try{const{result:e}=await l.simulate.addTwoEOA([t],{value:(0,b.g)("0.01")});if(!e)throw new Error("Failed to get result from simulation");m=e,console.log(`Result handle: ${m}`),F(m)}catch(e){throw console.error(`Error simulating the call to add 2 to ${t}: ${e}`),e}try{const e=await l.write.addTwoEOA([t],{value:(0,b.g)("0.01")});console.log(`Transaction hash: ${e}`);const r=await s.waitForTransactionReceipt({hash:e});console.log(`Transaction included in block ${r.blockNumber}`),F(m)}catch(e){throw console.error(`Error writing the call to add 2 to ${t}: ${e}`),e}},[r,e,a,x]),M=(0,n.useCallback)(async()=>{if(!T||!$)return console.error("Cannot decrypt: incoLite or resultHandle is missing"),void P("Cannot decrypt: missing incoLite or resultHandle");console.log(`Starting decryption for handle: ${$}`);try{const t=await(async(e,t,r,n,a)=>{const o=(0,f.R)(t),i=(0,c.x)({...r,fees:{maxPriorityFeePerGas:(0,d._)("10")}}),s=(0,u.F)({chain:i,transport:(0,p.L)(n),account:o});await new Promise(e=>setTimeout(e,2e3));for(let t=1;t<=10;t++)try{const r=await e.attestedDecrypt(s,[a]);return t>1&&console.log(`Decrypt succeeded on attempt ${t}`),r[0]?.plaintext?.value}catch(e){const r=e instanceof Error?e.message:String(e),n=String(e),a=e?.status||e?.statusCode||e?.code,o=500===a||503===a||"500"===a||"503"===a||r.includes("500")||r.includes("503")||r.includes("Internal Server Error")||r.includes("Service Unavailable")||r.includes("AttestedDecrypt")||n.includes("500")||n.includes("503")||n.includes("Internal Server Error")||n.includes("Service Unavailable");if(10===t||!o)throw console.error(`Error decrypting result handle after ${t} attempts:`,e),console.error(`Error details - message: ${r}, string: ${n}, statusCode: ${a}`),e;const i=1e3*Math.pow(1.5,t-1);console.log(`Decrypt attempt ${t} failed, retrying in ${Math.round(i)}ms... (Error: ${r.substring(0,100)})`),await new Promise(e=>setTimeout(e,i))}throw new Error("Failed to decrypt after all retries")})(T,r,e,a,$);console.log(`Decryption successful: ${t}`),_(t?.toString()??null),P(null)}catch(e){console.error("Decryption error:",e),_(null),P(e instanceof Error?e.message:String(e))}},[T,r,e,a,$]);return(0,n.useEffect)(()=>{j&&N(j).catch(e=>{console.error("Error in handleCiphertextSubmit:",e),P(e instanceof Error?e.message:String(e))})},[j,N]),(0,v.jsxs)("div",{children:[(0,v.jsx)("h1",{children:"Inco Test"}),(0,v.jsxs)("p",{children:[(0,v.jsx)("strong",{children:"Value:"})," ",w.toString()]}),(0,v.jsx)("button",{onClick:async()=>{C(!0);try{const n=await(async(e,t)=>e===m.N?await s.l.localNode(t):await s.l.latest(t,e.id))(e,t);S(n);const g=await(async(e,t,r,n,a,g)=>{let b;b=r===m.N?(await s.l.localNode("testnet")).deployment.senderPrivateKey:t;const v=(0,f.R)(b),w=(0,c.x)({...r,fees:{maxPriorityFeePerGas:(0,d._)("10")}}),x=(0,u.F)({chain:w,transport:(0,p.L)(n),account:v}),j=(0,y.l)({chain:w,transport:(0,p.L)(n)}),E=(0,h.PF)({abi:o.G,address:e.executorAddress,client:j}),T=await E.read.incoVerifier();return(0,h.PF)({abi:i.K,address:T,client:j}),await e.encrypt(a,{accountAddress:x.account.address,dappAddress:g,handleType:l.uU.euint256})})(n,r,e,a,w,x);E(g),P(null)}catch(e){E(null),P(e instanceof Error?e.message:String(e))}finally{C(!1)}},disabled:k,children:k?"Encrypting…":"Encrypt value"}),j&&(0,v.jsxs)("p",{"data-testid":"ciphertext",children:[(0,v.jsx)("strong",{children:"Ciphertext:"})," ",j]}),$&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)("p",{"data-testid":"result-handle",children:[(0,v.jsx)("strong",{children:"Result handle:"})," ",$]}),(0,v.jsx)("button",{onClick:M,disabled:!$,children:$?"Decrypt result":"Result handle not found"}),A&&(0,v.jsxs)("p",{"data-testid":"decrypted-result",children:[(0,v.jsx)("strong",{children:"Decrypted result:"})," ",A]})]}),O&&(0,v.jsxs)("p",{role:"alert",children:[(0,v.jsx)("strong",{children:"Error:"})," ",O]})]})}(0,a.createRoot)(document.getElementById("root")).render((0,v.jsx)(n.StrictMode,{children:(0,v.jsx)(w,{chain:m.N,pepper:"testnet",privateKey:"0x0",hostChainRpcUrl:"http://localhost:8545",value:100n,addTwoAddress:"0x0"})}))},42187(){},46377(){},91153(){},92110(){}},i={};function s(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={id:e,loaded:!1,exports:{}};return o[e].call(r.exports,r,r.exports,s),r.loaded=!0,r.exports}s.m=o,e=[],s.O=(t,r,n,a)=>{if(!r){var o=1/0;for(d=0;d=a)&&Object.keys(s.O).every(e=>s.O[e](r[l]))?r.splice(l--,1):(i=!1,a0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[r,n,a]},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,s.t=function(e,n){if(1&n&&(e=this(e)),8&n)return e;if("object"==typeof e&&e){if(4&n&&e.__esModule)return e;if(16&n&&"function"==typeof e.then)return e}var a=Object.create(null);s.r(a);var o={};t=t||[null,r({}),r([]),r(r)];for(var i=2&n&&e;("object"==typeof i||"function"==typeof i)&&!~t.indexOf(i);i=r(i))Object.getOwnPropertyNames(i).forEach(t=>o[t]=()=>e[t]);return o.default=()=>e,s.d(a,o),a},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,r)=>(s.f[r](e,t),t),[])),s.u=e=>"static/js/"+e+".b145ceef.chunk.js",s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n={},a="react-example:",s.l=(e,t,r,o)=>{if(n[e])n[e].push(t);else{var i,l;if(void 0!==r)for(var c=document.getElementsByTagName("script"),d=0;d{i.onerror=i.onload=null,clearTimeout(y);var a=n[e];if(delete n[e],i.parentNode&&i.parentNode.removeChild(i),a&&a.forEach(e=>e(r)),t)return t(r)},y=setTimeout(p.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=p.bind(null,i.onerror),i.onload=p.bind(null,i.onload),l&&document.head.appendChild(i)}},s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),s.p="/",(()=>{var e={792:0};s.f.j=(t,r)=>{var n=s.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var a=new Promise((r,a)=>n=e[t]=[r,a]);r.push(n[2]=a);var o=s.p+s.u(t),i=new Error;s.l(o,r=>{if(s.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;i.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",i.name="ChunkLoadError",i.type=a,i.request=o,n[1](i)}},"chunk-"+t,t)}},s.O.j=t=>0===e[t];var t=(t,r)=>{var n,a,[o,i,l]=r,c=0;if(o.some(t=>0!==e[t])){for(n in i)s.o(i,n)&&(s.m[n]=i[n]);if(l)var d=l(s)}for(t&&t(r);cs(38984));l=s.O(l)})(); +//# sourceMappingURL=main.4eaaaef9.js.map \ No newline at end of file diff --git a/backend/src/test/react-example/build/static/js/main.4eaaaef9.js.map b/backend/src/test/react-example/build/static/js/main.4eaaaef9.js.map new file mode 100644 index 0000000..00d65a8 --- /dev/null +++ b/backend/src/test/react-example/build/static/js/main.4eaaaef9.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/main.4eaaaef9.js","mappings":"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","sources":["webpack://react-example/webpack/runtime/chunk loaded","webpack://react-example/webpack/runtime/create fake namespace object","webpack://react-example/webpack/runtime/load script","webpack://react-example/./src/lib/inco.ts","webpack://react-example/./src/abis.ts","webpack://react-example/./src/Inco.tsx","webpack://react-example/./src/index.tsx","webpack://react-example/webpack/bootstrap","webpack://react-example/webpack/runtime/define property getters","webpack://react-example/webpack/runtime/ensure chunk","webpack://react-example/webpack/runtime/get javascript chunk filename","webpack://react-example/webpack/runtime/global","webpack://react-example/webpack/runtime/hasOwnProperty shorthand","webpack://react-example/webpack/runtime/make namespace object","webpack://react-example/webpack/runtime/node module decorator","webpack://react-example/webpack/runtime/publicPath","webpack://react-example/webpack/runtime/jsonp chunk loading","webpack://react-example/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; (typeof current == 'object' || typeof current == 'function') && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"react-example:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","import { incoLightningAbi } from '@inco/js/abis/lightning';\nimport { incoVerifierAbi } from '@inco/js/abis/verifier';\nimport { Lightning } from '@inco/js/lite';\nimport { handleTypes } from '@inco/js';\nimport { Chain, createPublicClient, createWalletClient, defineChain, getContract, Hex, http, parseGwei } from 'viem';\nimport { Address, privateKeyToAccount } from 'viem/accounts';\nimport { anvil } from 'viem/chains';\nexport const createIncoLite = async (chain: Chain, pepper: any) => {\n if (chain === anvil) {\n return await Lightning.localNode(pepper);\n }\n return await Lightning.latest(pepper, chain.id as any);\n};\nexport const encrypt = async (\n lightning: Lightning,\n privateKey: Hex,\n chain: Chain,\n hostChainRpcUrl: string,\n value: bigint | boolean,\n addTwoAddress: Address,\n) => {\n let privateKeyHex: Hex;\n if (chain === anvil) {\n const zap = await Lightning.localNode('testnet');\n privateKeyHex = zap.deployment.senderPrivateKey as Hex;\n } else {\n privateKeyHex = privateKey;\n }\n const account = privateKeyToAccount(privateKeyHex);\n const viemChain = defineChain({\n ...chain,\n fees: { maxPriorityFeePerGas: parseGwei('10') },\n });\n const walletClient = createWalletClient({\n chain: viemChain,\n transport: http(hostChainRpcUrl),\n account,\n });\n const publicClient = createPublicClient({\n chain: viemChain,\n transport: http(hostChainRpcUrl),\n });\n const incoLite = getContract({\n abi: incoLightningAbi,\n address: lightning.executorAddress,\n client: publicClient,\n });\n const incoVerifierAddress = await incoLite.read.incoVerifier();\n const incoVerifier = getContract({\n abi: incoVerifierAbi,\n address: incoVerifierAddress,\n client: publicClient,\n });\n const ciphertext = await lightning.encrypt(\n value,\n {\n accountAddress: walletClient.account.address,\n dappAddress: addTwoAddress,\n handleType: handleTypes.euint256,\n },\n );\n return ciphertext;\n};\n\nexport const decrypt = async (\n lightning: Lightning,\n privateKey: Hex,\n chain: Chain,\n hostChainRpcUrl: string,\n handle: Hex,\n) => {\n const account = privateKeyToAccount(privateKey);\n const viemChain = defineChain({\n ...chain,\n fees: { maxPriorityFeePerGas: parseGwei('10') },\n });\n const walletClient = createWalletClient({\n chain: viemChain,\n transport: http(hostChainRpcUrl),\n account,\n });\n\n // Initial delay to allow covalidator to process the transaction\n await new Promise((resolve) => setTimeout(resolve, 2000));\n\n // Retry logic with exponential backoff for KMS service\n const maxRetries = 10;\n const baseDelayInMs = 1000;\n const backoffFactor = 1.5;\n\n for (let attempt = 1; attempt <= maxRetries; attempt++) {\n try {\n const decrypted = await lightning.attestedDecrypt(walletClient, [handle]);\n if (attempt > 1) {\n console.log(`Decrypt succeeded on attempt ${attempt}`);\n }\n return decrypted[0]?.plaintext?.value;\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : String(err);\n const errorString = String(err);\n // Check for HTTP status codes or error messages indicating server errors\n const statusCode = (err as any)?.status || (err as any)?.statusCode || (err as any)?.code;\n // More comprehensive error detection - check error message, string representation, and status codes\n const isRetryableError =\n statusCode === 500 ||\n statusCode === 503 ||\n statusCode === '500' ||\n statusCode === '503' ||\n errorMessage.includes('500') ||\n errorMessage.includes('503') ||\n errorMessage.includes('Internal Server Error') ||\n errorMessage.includes('Service Unavailable') ||\n errorMessage.includes('AttestedDecrypt') ||\n errorString.includes('500') ||\n errorString.includes('503') ||\n errorString.includes('Internal Server Error') ||\n errorString.includes('Service Unavailable');\n\n if (attempt === maxRetries || !isRetryableError) {\n console.error(`Error decrypting result handle after ${attempt} attempts:`, err);\n console.error(`Error details - message: ${errorMessage}, string: ${errorString}, statusCode: ${statusCode}`);\n throw err;\n }\n\n const delay = baseDelayInMs * Math.pow(backoffFactor, attempt - 1);\n console.log(\n `Decrypt attempt ${attempt} failed, retrying in ${Math.round(delay)}ms... (Error: ${errorMessage.substring(0, 100)})`,\n );\n await new Promise((resolve) => setTimeout(resolve, delay));\n }\n }\n\n throw new Error('Failed to decrypt after all retries');\n};\n","// AddTwo ABI\nexport const addTwoAbi = [\n {\n type: 'function',\n inputs: [{ name: 'a', internalType: 'euint256', type: 'bytes32' }],\n name: 'addTwo',\n outputs: [{ name: '', internalType: 'euint256', type: 'bytes32' }],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n inputs: [{ name: 'uint256EInput', internalType: 'bytes', type: 'bytes' }],\n name: 'addTwoEOA',\n outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],\n stateMutability: 'payable',\n },\n {\n type: 'function',\n inputs: [{ name: 'a', internalType: 'euint256', type: 'bytes32' }],\n name: 'addTwoScalar',\n outputs: [{ name: '', internalType: 'euint256', type: 'bytes32' }],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n inputs: [],\n name: 'getFee',\n outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n stateMutability: 'pure',\n },\n { type: 'error', inputs: [], name: 'FeeNotPaid' },\n] as const;\n\n","import { useCallback, useEffect, useState } from 'react'\nimport type { Address, Chain, Hex } from 'viem'\nimport { createIncoLite, encrypt, decrypt } from './lib/inco.ts'\nimport { privateKeyToAccount } from 'viem/accounts'\nimport { addTwoAbi } from './abis.ts'\nimport { createPublicClient, defineChain, getContract, parseEther } from 'viem'\nimport { parseGwei } from 'viem'\nimport { createWalletClient, http } from 'viem'\nimport { Lightning } from '@inco/js/lite'\n\n\ntype IncoTestProps = {\n chain: Chain\n pepper: unknown\n privateKey: Hex\n hostChainRpcUrl: string\n value: bigint | boolean\n addTwoAddress: Address\n}\n\nexport default function IncoTest({\n chain,\n pepper,\n privateKey,\n hostChainRpcUrl,\n value,\n addTwoAddress,\n}: IncoTestProps) {\n const [ciphertext, setCiphertext] = useState(null)\n const [incoLite, setIncoLite] = useState(null)\n const [error, setError] = useState(null)\n const [isEncrypting, setIsEncrypting] = useState(false)\n const [resultHandle, setResultHandle] = useState(null)\n const [decryptedResult, setDecryptedResult] = useState(null)\n const handleCiphertextCreate = async () => {\n setIsEncrypting(true)\n try {\n // const zap = await Lightning.localNode('alphanet');\n const incoLite = await createIncoLite(chain, pepper)\n setIncoLite(incoLite)\n const encryptedValue = await encrypt(\n incoLite,\n privateKey,\n chain,\n hostChainRpcUrl,\n value,\n addTwoAddress,\n )\n setCiphertext(encryptedValue)\n setError(null)\n } catch (err) {\n setCiphertext(null)\n setError(err instanceof Error ? err.message : String(err))\n } finally {\n setIsEncrypting(false)\n }\n }\n \n const handleCiphertextSubmit = useCallback(async (ciphertext: Hex) => {\n const account = privateKeyToAccount(privateKey);\n const viemChain = defineChain({\n ...chain,\n fees: { maxPriorityFeePerGas: parseGwei('10') },\n });\n const walletClient = createWalletClient({\n chain: viemChain,\n transport: http(hostChainRpcUrl),\n account,\n });\n const publicClient = createPublicClient({\n chain: viemChain,\n transport: http(hostChainRpcUrl),\n });\n const dapp = getContract({\n abi: addTwoAbi,\n address: addTwoAddress,\n client: walletClient,\n });\n let simResultHandle: Hex;\n try {\n const { result: resultHandle } = await dapp.simulate.addTwoEOA([ciphertext], { value: parseEther('0.01') });\n if (!resultHandle) {\n throw new Error('Failed to get result from simulation');\n }\n simResultHandle = resultHandle as Hex;\n console.log(`Result handle: ${simResultHandle}`);\n setResultHandle(simResultHandle);\n } catch (err) {\n console.error(`Error simulating the call to add 2 to ${ciphertext}: ${err}`);\n throw err;\n }\n\n try {\n const txHash = await dapp.write.addTwoEOA([ciphertext], { value: parseEther('0.01') });\n console.log(`Transaction hash: ${txHash}`);\n const receipt = await publicClient.waitForTransactionReceipt({ hash: txHash });\n console.log(`Transaction included in block ${receipt.blockNumber}`);\n // Ensure result handle is set after transaction confirmation\n setResultHandle(simResultHandle);\n } catch (err) {\n console.error(`Error writing the call to add 2 to ${ciphertext}: ${err}`);\n throw err;\n }\n }, [privateKey, chain, hostChainRpcUrl, addTwoAddress]);\n\n const decryptResult = useCallback(async () => {\n if (!incoLite || !resultHandle) {\n console.error('Cannot decrypt: incoLite or resultHandle is missing');\n setError('Cannot decrypt: missing incoLite or resultHandle');\n return;\n }\n console.log(`Starting decryption for handle: ${resultHandle}`);\n try {\n const decrypted = await decrypt(incoLite, privateKey, chain, hostChainRpcUrl, resultHandle)\n console.log(`Decryption successful: ${decrypted}`);\n setDecryptedResult(decrypted?.toString() ?? null)\n setError(null)\n } catch (err) {\n console.error('Decryption error:', err);\n setDecryptedResult(null)\n setError(err instanceof Error ? err.message : String(err))\n }\n }, [incoLite, privateKey, chain, hostChainRpcUrl, resultHandle]);\n \n useEffect(() => {\n if (ciphertext) {\n handleCiphertextSubmit(ciphertext as Hex).catch((err) => {\n console.error('Error in handleCiphertextSubmit:', err);\n setError(err instanceof Error ? err.message : String(err));\n });\n }\n }, [ciphertext, handleCiphertextSubmit]);\n return (\n
\n

Inco Test

\n

\n Value: {value.toString()}\n

\n \n {ciphertext && (\n

\n Ciphertext: {ciphertext}\n

\n )}\n {resultHandle && (\n <>\n

\n Result handle: {resultHandle}\n

\n \n {decryptedResult && (\n

\n Decrypted result: {decryptedResult}\n

\n )}\n \n )}\n {error && (\n

\n Error: {error}\n

\n )}\n
\n )\n}","import { StrictMode } from 'react'\nimport { createRoot } from 'react-dom/client'\nimport IncoTest from './Inco.tsx'\nimport { anvil } from 'viem/chains'\n\nconst root = createRoot(document.getElementById('root')!)\nroot.render(\n \n \n ,\n)\n\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"b145ceef\" + \".chunk.js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkreact_example\"] = self[\"webpackChunkreact_example\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [96], () => (__webpack_require__(38984)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","addTwoAbi","type","inputs","name","internalType","outputs","stateMutability","IncoTest","chain","pepper","privateKey","hostChainRpcUrl","value","addTwoAddress","ciphertext","setCiphertext","useState","incoLite","setIncoLite","error","setError","isEncrypting","setIsEncrypting","resultHandle","setResultHandle","decryptedResult","setDecryptedResult","handleCiphertextSubmit","useCallback","async","account","privateKeyToAccount","viemChain","defineChain","fees","maxPriorityFeePerGas","parseGwei","walletClient","createWalletClient","transport","http","publicClient","createPublicClient","dapp","getContract","abi","address","client","simResultHandle","result","simulate","addTwoEOA","parseEther","Error","console","log","err","txHash","write","receipt","waitForTransactionReceipt","hash","blockNumber","decryptResult","decrypted","lightning","handle","Promise","resolve","setTimeout","attempt","attestedDecrypt","plaintext","errorMessage","message","String","errorString","statusCode","status","code","isRetryableError","includes","delay","Math","pow","round","substring","decrypt","toString","useEffect","catch","_jsxs","children","_jsx","onClick","anvil","Lightning","localNode","latest","id","createIncoLite","encryptedValue","privateKeyHex","deployment","senderPrivateKey","incoLightningAbi","executorAddress","incoVerifierAddress","read","incoVerifier","incoVerifierAbi","encrypt","accountAddress","dappAddress","handleType","handleTypes","euint256","disabled","_Fragment","role","createRoot","document","getElementById","render","StrictMode","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","loaded","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","getPrototypeOf","obj","t","mode","this","__esModule","then","ns","create","def","current","indexOf","getOwnPropertyNames","forEach","d","definition","o","defineProperty","enumerable","get","f","e","chunkId","all","reduce","promises","u","g","globalThis","Function","window","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","timeout","doneFns","parentNode","removeChild","bind","target","head","appendChild","Symbol","toStringTag","nmd","paths","p","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/backend/src/test/react-example/build/static/js/vendors.358533ae.js b/backend/src/test/react-example/build/static/js/vendors.358533ae.js new file mode 100644 index 0000000..b0d0c4b --- /dev/null +++ b/backend/src/test/react-example/build/static/js/vendors.358533ae.js @@ -0,0 +1,3 @@ +/*! For license information please see vendors.358533ae.js.LICENSE.txt */ +(self.webpackChunkreact_example=self.webpackChunkreact_example||[]).push([[96],{39(e,t,n){"use strict";var r=n(33213),i=n(99942),a=n(81475),s=n(72258).Buffer,o=n(24763),u=n(8776),c=n(35951),l=s.alloc(128);function f(e,t){a.call(this,"digest"),"string"==typeof t&&(t=s.from(t));var n="sha512"===e||"sha384"===e?128:64;this._alg=e,this._key=t,t.length>n?t=("rmd160"===e?new u:c(e)).update(t).digest():t.lengthb});var r=n(70121),i=n(68616),a=n(7411),s=n(85501),o=n(65144),u=n(8736),c=n(20518),l=n(58038),f=n(75209);function d(e,t={}){void 0!==t.size&&(0,l.Sl)(e,{size:t.size});const n=(0,f.My)(e,t);return(0,l.uU)(n,t)}function h(e,t={}){let n=e;if(void 0!==t.size&&((0,l.Sl)(n,{size:t.size}),n=(0,u.B)(n)),n.length>1||n[0]>1)throw new c.xO(n);return Boolean(n[0])}function p(e,t={}){void 0!==t.size&&(0,l.Sl)(e,{size:t.size});const n=(0,f.My)(e,t);return(0,l.ME)(n,t)}var m=n(81127),y=n(28780);function b(e,t){const n="string"==typeof t?(0,m.aT)(t):t,i=(0,a.l)(n);if(0===(0,s.E)(n)&&e.length>0)throw new r.O;if((0,s.E)(t)&&(0,s.E)(t)<32)throw new r.Iy({data:"string"==typeof t?t:(0,f.My)(t),params:e,size:(0,s.E)(t)});let o=0;const u=[];for(let t=0;t!e),i=r?[]:{};let a=0;if(w(t)){const s=n+p(e.readBytes(v));for(let n=0;n48?d(i,{signed:n}):p(i,{signed:n}),32]}(e,t);if("string"===t.type)return function(e,{staticPosition:t}){const n=t+p(e.readBytes(32));e.setPosition(n);const r=p(e.readBytes(32));if(0===r)return e.setPosition(t+32),["",32];const i=e.readBytes(r,32),a=function(e,t={}){let n=e;return void 0!==t.size&&((0,l.Sl)(n,{size:t.size}),n=(0,u.B)(n,{dir:"right"})),(new TextDecoder).decode(n)}((0,u.B)(i));return e.setPosition(t+32),[a,32]}(e,{staticPosition:n});throw new r.j(t.type,{docsPath:"/docs/contract/decodeAbiParameters"})}const v=32;function w(e){const{type:t}=e;if("string"===t)return!0;if("bytes"===t)return!0;if(t.endsWith("[]"))return!0;if("tuple"===t)return e.components?.some(w);const n=(0,y.k)(e.type);return!(!n||!w({...e,type:n[1]}))}},462(e,t,n){"use strict";n.d(t,{P:()=>o});var r=n(71768),i=n(68616);const a=/^0x[a-fA-F0-9]{40}$/,s=new r.A(8192);function o(e,t){const{strict:n=!0}=t??{},r=`${e}.${n}`;if(s.has(r))return s.get(r);const o=!(!a.test(e)||e.toLowerCase()!==e&&n&&(0,i.o)(e)!==e);return s.set(r,o),o}},850(e,t,n){e.exports=n(3640).EventEmitter},953(e,t,n){var r=n(45775),i=n(8495),a=n(47104),s=n(23145),o=n(11525),u=n(55303),c=n(58476),l=n(72258).Buffer;e.exports=function(e,t,n){var f;f=e.padding?e.padding:n?1:4;var d,h=r(e),p=h.modulus.byteLength();if(t.length>p||new s(t).cmp(h.modulus)>=0)throw new Error("decryption error");d=n?c(new s(t),h):o(t,h);var m=l.alloc(p-d.length);if(d=l.concat([m,d],p),4===f)return function(e,t){var n=e.modulus.byteLength(),r=u("sha1").update(l.alloc(0)).digest(),s=r.length;if(0!==t[0])throw new Error("decryption error");var o=t.slice(1,s+1),c=t.slice(s+1),f=a(o,i(c,s)),d=a(c,i(f,n-s-1));if(function(e,t){e=l.from(e),t=l.from(t);var n=0,r=e.length;e.length!==t.length&&(n++,r=Math.min(e.length,t.length));for(var i=-1;++i=t.length){a++;break}var s=t.slice(2,i-1);if(("0002"!==r.toString("hex")&&!n||"0001"!==r.toString("hex")&&n)&&a++,s.length<8&&a++,a)throw new Error("decryption error");return t.slice(i)}(0,d,n);if(3===f)return d;throw new Error("unknown padding")}},1060(e,t,n){"use strict";n.d(t,{A:()=>r});const r=(e,t,n)=>JSON.stringify(e,(e,n)=>{const r="bigint"==typeof n?n.toString():n;return"function"==typeof t?t(e,r):r},n)},1833(e,t,n){function r(e){return Object.prototype.toString.call(e)}t.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===r(e)},t.isBoolean=function(e){return"boolean"==typeof e},t.isNull=function(e){return null===e},t.isNullOrUndefined=function(e){return null==e},t.isNumber=function(e){return"number"==typeof e},t.isString=function(e){return"string"==typeof e},t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=function(e){return void 0===e},t.isRegExp=function(e){return"[object RegExp]"===r(e)},t.isObject=function(e){return"object"==typeof e&&null!==e},t.isDate=function(e){return"[object Date]"===r(e)},t.isError=function(e){return"[object Error]"===r(e)||e instanceof Error},t.isFunction=function(e){return"function"==typeof e},t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(73730).Buffer.isBuffer},1890(e,t,n){"use strict";var r=n(72258).Buffer,i=n(3420),a=n(22516).Transform;function s(e){a.call(this),this._block=r.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}n(33213)(s,a),s.prototype._transform=function(e,t,n){var r=null;try{this.update(e,t)}catch(e){r=e}n(r)},s.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},s.prototype.update=function(e,t){if(this._finalized)throw new Error("Digest already called");for(var n=i(e,t),r=this._block,a=0;this._blockOffset+n.length-a>=this._blockSize;){for(var s=this._blockOffset;s0;++o)this._length[o]+=u,(u=this._length[o]/4294967296|0)>0&&(this._length[o]-=4294967296*u);return this},s.prototype._update=function(){throw new Error("_update is not implemented")},s.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var n=0;n<4;++n)this._length[n]=0;return t},s.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=s},1917(e,t,n){"use strict";var r=n(42649),i=n(11644);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t){var n=e.entry;for(e.entry=null;n;){var r=n.callback;t.pendingcb--,r(undefined),n=n.next}t.corkedRequestsFree.next=e}(t,e)}}e.exports=b;var s,o=!r.browser&&["v0.10","v0.9."].indexOf(r.version.slice(0,5))>-1?setImmediate:i.nextTick;b.WritableState=y;var u=Object.create(n(1833));u.inherits=n(33213);var c,l={deprecate:n(12082)},f=n(850),d=n(40371).Buffer,h=(void 0!==n.g?n.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){},p=n(63345);function m(){}function y(e,t){s=s||n(60991),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var u=e.highWaterMark,c=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=u||0===u?u:r&&(c||0===c)?c:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,a=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,a){--t.pendingcb,n?(i.nextTick(a,r),i.nextTick(E,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(a(r),e._writableState.errorEmitted=!0,e.emit("error",r),E(e,t))}(e,n,r,t,a);else{var s=_(n);s||n.corked||n.bufferProcessing||!n.bufferedRequest||w(e,n),r?o(v,e,n,s,a):v(e,n,s,a)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(60991),!(c.call(b,this)||this instanceof s))return new b(e);this._writableState=new y(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function g(e,t,n,r,i,a,s){t.writelen=r,t.writecb=s,t.writing=!0,t.sync=!0,n?e._writev(i,t.onwrite):e._write(i,a,t.onwrite),t.sync=!1}function v(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),E(e,t)}function w(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,i=new Array(r),s=t.corkedRequestsFree;s.entry=n;for(var o=0,u=!0;n;)i[o]=n,n.isBuf||(u=!1),n=n.next,o+=1;i.allBuffers=u,g(e,t,!0,t.length,i,"",s.finish),t.pendingcb++,t.lastBufferedRequest=null,s.next?(t.corkedRequestsFree=s.next,s.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var c=n.chunk,l=n.encoding,f=n.callback;if(g(e,t,!1,t.objectMode?1:c.length,c,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function _(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function S(e,t){e._final(function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),E(e,t)})}function E(e,t){var n=_(t);return n&&(function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(S,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),y.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(y.prototype,"buffer",{get:l.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(c=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!c.call(this,e)||this===b&&e&&e._writableState instanceof y}})):c=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,a=this._writableState,s=!1,o=!a.objectMode&&(r=e,d.isBuffer(r)||r instanceof h);return o&&!d.isBuffer(e)&&(e=function(e){return d.from(e)}(e)),"function"==typeof t&&(n=t,t=null),o?t="buffer":t||(t=a.defaultEncoding),"function"!=typeof n&&(n=m),a.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(o||function(e,t,n,r){var a=!0,s=!1;return null===n?s=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(s=new TypeError("Invalid non-string/buffer chunk")),s&&(e.emit("error",s),i.nextTick(r,s),a=!1),a}(this,a,e,n))&&(a.pendingcb++,s=function(e,t,n,r,i,a){if(!n){var s=function(e,t,n){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=d.from(t,n)),t}(t,r,i);r!==s&&(n=!0,i="buffer",r=s)}var o=t.objectMode?1:r.length;t.length+=o;var u=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||function(e,t,n){t.ending=!0,E(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n)),t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=p.destroy,b.prototype._undestroy=p.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}},2073(e,t,n){"use strict";var r=n(4002),i=n(79553)("TypedArray.prototype.buffer",!0),a=n(75749);e.exports=i||function(e){if(!a(e))throw new r("Not a Typed Array");return e.buffer}},2204(e,t,n){"use strict";var r=Function.prototype.call,i=Object.prototype.hasOwnProperty,a=n(62460);e.exports=a.call(r,i)},2273(e,t,n){"use strict";n.d(t,{C:()=>s});const r="2.43.5";let i=({docsBaseUrl:e,docsPath:t="",docsSlug:n})=>t?`${e??"https://viem.sh"}${t}${n?`#${n}`:""}`:void 0,a=`viem@${r}`;class s extends Error{constructor(e,t={}){const n=t.cause instanceof s?t.cause.details:t.cause?.message?t.cause.message:t.details,o=t.cause instanceof s&&t.cause.docsPath||t.docsPath,u=i?.({...t,docsPath:o});super([e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...u?[`Docs: ${u}`]:[],...n?[`Details: ${n}`]:[],...a?[`Version: ${a}`]:[]].join("\n"),t.cause?{cause:t.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=n,this.docsPath=o,this.metaMessages=t.metaMessages,this.name=t.name??this.name,this.shortMessage=e,this.version=r}walk(e){return o(this,e)}}function o(e,t){return t?.(e)?e:e&&"object"==typeof e&&"cause"in e&&void 0!==e.cause?o(e.cause,t):t?null:e}},3320(e,t,n){"use strict";function r(){let e=()=>{},t=()=>{};return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}n.d(t,{Y:()=>r})},3420(e,t,n){"use strict";var r=n(72258).Buffer,i=n(70950),a="undefined"!=typeof Uint8Array,s=a&&"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView;e.exports=function(e,t){if("string"==typeof e||r.isBuffer(e)||a&&e instanceof Uint8Array||s&&s(e))return i(e,t);throw new TypeError('The "data" argument must be a string, a Buffer, a Uint8Array, or a DataView')}},3640(e){"use strict";var t,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var i=Number.isNaN||function(e){return e!=e};function a(){a.init.call(this)}e.exports=a,e.exports.once=function(e,t){return new Promise(function(n,r){function i(n){e.removeListener(t,a),r(n)}function a(){"function"==typeof e.removeListener&&e.removeListener("error",i),n([].slice.call(arguments))}m(e,t,a,{once:!0}),"error"!==t&&function(e,t){"function"==typeof e.on&&m(e,"error",t,{once:!0})}(e,i)})},a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var s=10;function o(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function u(e){return void 0===e._maxListeners?a.defaultMaxListeners:e._maxListeners}function c(e,t,n,r){var i,a,s,c;if(o(n),void 0===(a=e._events)?(a=e._events=Object.create(null),e._eventsCount=0):(void 0!==a.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),s=a[t]),void 0===s)s=a[t]=n,++e._eventsCount;else if("function"==typeof s?s=a[t]=r?[n,s]:[s,n]:r?s.unshift(n):s.push(n),(i=u(e))>0&&s.length>i&&!s.warned){s.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=s.length,c=l,console&&console.warn&&console.warn(c)}return e}function l(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=l.bind(r);return i.listener=n,r.wrapFn=i,i}function d(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(s=t[0]),s instanceof Error)throw s;var o=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw o.context=s,o}var u=a[e];if(void 0===u)return!1;if("function"==typeof u)r(u,this,t);else{var c=u.length,l=p(u,c);for(n=0;n=0;a--)if(n[a]===t||n[a].listener===t){s=n[a].listener,i=a;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},a.prototype.listeners=function(e){return d(this,e,!0)},a.prototype.rawListeners=function(e){return d(this,e,!1)},a.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):h.call(e,t)},a.prototype.listenerCount=h,a.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},3652(e,t,n){var r=n(45775),i=n(41498),a=n(55303),s=n(8495),o=n(47104),u=n(23145),c=n(58476),l=n(11525),f=n(72258).Buffer;e.exports=function(e,t,n){var d;d=e.padding?e.padding:n?1:4;var h,p=r(e);if(4===d)h=function(e,t){var n=e.modulus.byteLength(),r=t.length,c=a("sha1").update(f.alloc(0)).digest(),l=c.length,d=2*l;if(r>n-d-2)throw new Error("message too long");var h=f.alloc(n-r-d-2),p=n-l-1,m=i(l),y=o(f.concat([c,h,f.alloc(1,1),t],p),s(m,p)),b=o(m,s(y,l));return new u(f.concat([f.alloc(1),b,y],n))}(p,t);else if(1===d)h=function(e,t,n){var r,a=t.length,s=e.modulus.byteLength();if(a>s-11)throw new Error("message too long");return r=n?f.alloc(s-a-3,255):function(e){for(var t,n=f.allocUnsafe(e),r=0,a=i(2*e),s=0;r=0)throw new Error("data too long for modulus")}return n?l(h,p):c(h,p)}},3674(e){"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),n=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(var r in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var i=Object.getOwnPropertySymbols(e);if(1!==i.length||i[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var a=Object.getOwnPropertyDescriptor(e,t);if(42!==a.value||!0!==a.enumerable)return!1}return!0}},3808(e,t,n){"use strict";var r=n(33213),i=n(96811),a=n(72258).Buffer,s=[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],o=new Array(64);function u(){this.init(),this._w=o,i.call(this,64,56)}function c(e,t,n){return n^e&(t^n)}function l(e,t,n){return e&t|n&(e|t)}function f(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function d(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function h(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}function p(e){return(e>>>17|e<<15)^(e>>>19|e<<13)^e>>>10}r(u,i),u.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},u.prototype._update=function(e){for(var t=this._w,n=0|this._a,r=0|this._b,i=0|this._c,a=0|this._d,o=0|this._e,u=0|this._f,m=0|this._g,y=0|this._h,b=0;b<16;++b)t[b]=e.readInt32BE(4*b);for(;b<64;++b)t[b]=p(t[b-2])+t[b-7]+h(t[b-15])+t[b-16]|0;for(var g=0;g<64;++g){var v=y+d(o)+c(o,u,m)+s[g]+t[g]|0,w=f(n)+l(n,r,i)|0;y=m,m=u,u=o,o=a+v|0,a=i,i=r,r=n,n=v+w|0}this._a=n+this._a|0,this._b=r+this._b|0,this._c=i+this._c|0,this._d=a+this._d|0,this._e=o+this._e|0,this._f=u+this._f|0,this._g=m+this._g|0,this._h=y+this._h|0},u.prototype._hash=function(){var e=a.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=u},3838(e,t,n){"use strict";var r=n(45366),i=n(33213),a=n(50007),s=n(83506);function o(e,t){r.equal(t.length,24,"Invalid key length");var n=t.slice(0,8),i=t.slice(8,16),a=t.slice(16,24);this.ciphers="encrypt"===e?[s.create({type:"encrypt",key:n}),s.create({type:"decrypt",key:i}),s.create({type:"encrypt",key:a})]:[s.create({type:"decrypt",key:a}),s.create({type:"encrypt",key:i}),s.create({type:"decrypt",key:n})]}function u(e){a.call(this,e);var t=new o(this.type,this.options.key);this._edeState=t}i(u,a),e.exports=u,u.create=function(e){return new u(e)},u.prototype._update=function(e,t,n,r){var i=this._edeState;i.ciphers[0]._update(e,t,n,r),i.ciphers[1]._update(n,r,n,r),i.ciphers[2]._update(n,r,n,r)},u.prototype._pad=s.prototype._pad,u.prototype._unpad=s.prototype._unpad},3951(e,t,n){"use strict";n.d(t,{v:()=>g});var r=n(74014),i=n(15100),a=n(2273),s=n(65696),o=n(83835),u=n(23427),c=n(98156),l=n(77576),f=n(26015),d=n(71768),h=n(42169),p=n(73989),m=n(92359),y=n(71357);const b=new d.A(128);async function g(e,t){const{account:n=e.account,chain:d=e.chain,accessList:g,authorizationList:v,blobs:w,data:_,gas:S,gasPrice:E,maxFeePerBlobGas:k,maxFeePerGas:x,maxPriorityFeePerGas:T,nonce:M,type:I,value:A,...N}=t;if(void 0===n)throw new i.T({docsPath:"/docs/actions/wallet/sendTransaction"});const P=n?(0,r.J)(n):null;try{(0,h.c)(t);const n=await(async()=>t.to?t.to:null!==t.to&&v&&v.length>0?await(0,s.g)({authorization:v[0]}).catch(()=>{throw new a.C("`to` is required. Could not infer from `authorizationList`.")}):void 0)();if("json-rpc"===P?.type||null===P){let t;null!==d&&(t=await(0,f.T)(e,p.T,"getChainId")({}),(0,o.v)({currentChainId:t,chain:d}));const r=e.chain?.formatters?.transactionRequest?.format,i=(r||l.Bv)({...(0,c.o)(N,{format:r}),accessList:g,account:P,authorizationList:v,blobs:w,chainId:t,data:_,gas:S,gasPrice:E,maxFeePerBlobGas:k,maxFeePerGas:x,maxPriorityFeePerGas:T,nonce:M,to:n,type:I,value:A},"sendTransaction"),a=b.get(e.uid),s=a?"wallet_sendTransaction":"eth_sendTransaction";try{return await e.request({method:s,params:[i]},{retryCount:0})}catch(t){if(!1===a)throw t;const n=t;if("InvalidInputRpcError"===n.name||"InvalidParamsRpcError"===n.name||"MethodNotFoundRpcError"===n.name||"MethodNotSupportedRpcError"===n.name)return await e.request({method:"wallet_sendTransaction",params:[i]},{retryCount:0}).then(t=>(b.set(e.uid,!0),t)).catch(t=>{const r=t;if("MethodNotFoundRpcError"===r.name||"MethodNotSupportedRpcError"===r.name)throw b.set(e.uid,!1),n;throw r});throw n}}if("local"===P?.type){const t=await(0,f.T)(e,m.ft,"prepareTransactionRequest")({account:P,accessList:g,authorizationList:v,blobs:w,chain:d,data:_,gas:S,gasPrice:E,maxFeePerBlobGas:k,maxFeePerGas:x,maxPriorityFeePerGas:T,nonce:M,nonceManager:P.nonceManager,parameters:[...m.MM,"sidecars"],type:I,value:A,...N,to:n}),r=d?.serializers?.transaction,i=await P.signTransaction(t,{serializer:r});return await(0,f.T)(e,y.L,"sendRawTransaction")({serializedTransaction:i})}if("smart"===P?.type)throw new i.Z({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"});throw new i.Z({docsPath:"/docs/actions/wallet/sendTransaction",type:P?.type})}catch(e){if(e instanceof i.Z)throw e;throw(0,u.p)(e,{...t,account:P,chain:t.chain||void 0})}}},4002(e){"use strict";e.exports=TypeError},4014(e,t,n){"use strict";n.d(t,{$N:()=>g,C2:()=>y,JP:()=>w,Jt:()=>p,L8:()=>h,Ru:()=>b,VH:()=>x,VO:()=>l,_c:()=>v,gH:()=>k,hZ:()=>m,lF:()=>E,ll:()=>c,ni:()=>_,s$:()=>d,yo:()=>S});var r=n(93976),i=n(59329),a=n(61346),s=n(36708),o=n(17353),u=n(89921);const c=Symbol.for("effect/Ref"),l={_A:e=>e};class f extends r.Xs{ref;commit(){return this.get}[c]=l;[o.ii]=o.ii;constructor(e){super(),this.ref=e,this.get=u.OH5(()=>a.Jt(this.ref))}get;modify(e){return u.OH5(()=>{const t=a.Jt(this.ref),[n,r]=e(t);return t!==r&&a.hZ(r)(this.ref),n})}}const d=e=>new f(a.L8(e)),h=e=>u.OH5(()=>d(e)),p=e=>e.get,m=(0,i.XY)(2,(e,t)=>e.modify(()=>[void 0,t])),y=(0,i.XY)(2,(e,t)=>e.modify(e=>[e,t])),b=(0,i.XY)(2,(e,t)=>e.modify(e=>[e,t(e)])),g=(0,i.XY)(2,(e,t)=>e.modify(e=>{const n=t(e);switch(n._tag){case"None":return[e,e];case"Some":return[e,n.value]}})),v=(0,i.XY)(2,(e,t)=>e.modify(()=>[t,t])),w=(0,i.XY)(2,(e,t)=>e.modify(t)),_=(0,i.XY)(3,(e,t,n)=>e.modify(e=>{const r=n(e);switch(r._tag){case"None":return[t,e];case"Some":return r.value}})),S=(0,i.XY)(2,(e,t)=>e.modify(e=>[void 0,t(e)])),E=(0,i.XY)(2,(e,t)=>e.modify(e=>{const n=t(e);return[n,n]})),k=(0,i.XY)(2,(e,t)=>e.modify(e=>[void 0,s.YW(t(e),{onNone:()=>e,onSome:e=>e})])),x=(0,i.XY)(2,(e,t)=>e.modify(e=>{const n=t(e);switch(n._tag){case"None":return[e,e];case"Some":return[n.value,n.value]}}))},4020(e,t,n){"use strict";var r=n(71778),i=n(37526),a=n(85889),s=n(64802);e.exports=function(e){var t=a(arguments),n=e.length-(arguments.length-1);return r(t,1+(n>0?n:0),!0)},i?i(e.exports,"apply",{value:s}):e.exports.apply=s},4290(e,t,n){"use strict";n.d(t,{C:()=>u});var r=n(33640),i=n(81127),a=n(75209),s=n(82150),o=n(35593);function u(e){const{chainId:t,nonce:n,to:u}=e,c=e.contractAddress??e.address,l=(0,o.S)((0,r.aP)(["0x05",(0,s.EQ)([t?(0,a.cK)(t):"0x",c,n?(0,a.cK)(n):"0x"])]));return"bytes"===u?(0,i.aT)(l):l}},4297(e,t,n){"use strict";n.d(t,{N:()=>r});const r=(0,n(38963).x)({id:31337,name:"Anvil",nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["http://127.0.0.1:8545"],webSocket:["ws://127.0.0.1:8545"]}}})},4667(e,t,n){"use strict";n.d(t,{t:()=>a});var r=n(81127),i=n(75209);function a(e){const{kzg:t}=e,n=e.to??("string"==typeof e.blobs[0]?"hex":"bytes"),a="string"==typeof e.blobs[0]?e.blobs.map(e=>(0,r.aT)(e)):e.blobs,s="string"==typeof e.commitments[0]?e.commitments.map(e=>(0,r.aT)(e)):e.commitments,o=[];for(let e=0;e(0,i.My)(e))}},4685(e,t,n){var r=n(73730).Buffer,i=n(23145),a=new(n(9007)),s=new i(24),o=new i(11),u=new i(10),c=new i(3),l=new i(7),f=n(22323),d=n(41498);function h(e,t){return t=t||"utf8",r.isBuffer(e)||(e=new r(e,t)),this._pub=new i(e),this}function p(e,t){return t=t||"utf8",r.isBuffer(e)||(e=new r(e,t)),this._priv=new i(e),this}e.exports=y;var m={};function y(e,t,n){this.setGenerator(t),this.__prime=new i(e),this._prime=i.mont(this.__prime),this._primeLen=e.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,n?(this.setPublicKey=h,this.setPrivateKey=p):this._primeCode=8}function b(e,t){var n=new r(e.toArray());return t?n.toString(t):n}Object.defineProperty(y.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(e,t){var n=t.toString("hex"),r=[n,e.toString(16)].join("_");if(r in m)return m[r];var i,d=0;if(e.isEven()||!f.simpleSieve||!f.fermatTest(e)||!a.test(e))return d+=1,d+="02"===n||"05"===n?8:4,m[r]=d,d;switch(a.test(e.shrn(1))||(d+=2),n){case"02":e.mod(s).cmp(o)&&(d+=8);break;case"05":(i=e.mod(u)).cmp(c)&&i.cmp(l)&&(d+=8);break;default:d+=4}return m[r]=d,d}(this.__prime,this.__gen)),this._primeCode}}),y.prototype.generateKeys=function(){return this._priv||(this._priv=new i(d(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},y.prototype.computeSecret=function(e){var t=(e=(e=new i(e)).toRed(this._prime)).redPow(this._priv).fromRed(),n=new r(t.toArray()),a=this.getPrime();if(n.lengthy,Bj:()=>m,L8:()=>i,MM:()=>p,PV:()=>l,T9:()=>g,Tq:()=>w,Xe:()=>h,YO:()=>f,Yj:()=>a,ai:()=>s,jk:()=>b,o:()=>u,qE:()=>v,w3:()=>d,zM:()=>o,zQ:()=>c});var r=n(59329);const i=e=>(t,n)=>t===n?0:e(t,n),a=i((e,t)=>eeeei((n,r)=>e(t(n),t(r)))),l=(...e)=>{return t=e,i((e,n)=>{const r=Math.min(e.length,n.length);let i=0;for(const a of t){if(i>=r)break;const t=a(e[i],n[i]);if(0!==t)return t;i++}return 0});var t},f=e=>i((t,n)=>{const r=t.length,i=n.length,a=Math.min(r,i);for(let r=0;r{const t=Object.keys(e);return i((n,r)=>{for(const i of t){const t=e[i](n[i],r[i]);if(0!==t)return t}return 0})},h=e=>(0,r.XY)(2,(t,n)=>-1===e(t,n)),p=e=>(0,r.XY)(2,(t,n)=>1===e(t,n)),m=e=>(0,r.XY)(2,(t,n)=>1!==e(t,n)),y=e=>(0,r.XY)(2,(t,n)=>-1!==e(t,n)),b=e=>(0,r.XY)(2,(t,n)=>t===n||e(t,n)<1?t:n),g=e=>(0,r.XY)(2,(t,n)=>t===n||e(t,n)>-1?t:n),v=e=>(0,r.XY)(2,(t,n)=>b(e)(n.maximum,g(e)(n.minimum,t))),w=e=>(0,r.XY)(2,(t,n)=>!h(e)(t,n.minimum)&&!p(e)(t,n.maximum))},5324(e,t,n){"use strict";var r=n(42649);try{e.exports=n(10138)}catch(t){if(void 0!==r&&r.env.ECCRYPTO_NO_FALLBACK)throw t;e.exports=n(33931)}},5673(e,t,n){"use strict";n.d(t,{F6:()=>_,Ie:()=>h,Ui:()=>v,dh:()=>u,kg:()=>w});var r=n(17388),i=n(84468),a=n(72529),s=n(59329),o=n(53487);const u=Symbol.for("effect/DifferOrPatch");function c(e){return e}const l={...o.wC.prototype,[u]:{_Value:c,_Key:c,_Patch:c}},f=Object.assign(Object.create(l),{_tag:"Empty"}),d=Object.create(f),h=()=>d,p=Object.assign(Object.create(l),{_tag:"AndThen"}),m=Object.assign(Object.create(l),{_tag:"SetLeft"}),y=Object.assign(Object.create(l),{_tag:"SetRight"}),b=Object.assign(Object.create(l),{_tag:"UpdateLeft"}),g=Object.assign(Object.create(l),{_tag:"UpdateRight"}),v=e=>{switch(e.oldValue._tag){case"Left":switch(e.newValue._tag){case"Left":{const t=e.left.diff(e.oldValue.left,e.newValue.left);return a.aI(t,e.left.empty)?h():(e=>{const t=Object.create(b);return t.patch=e,t})(t)}case"Right":return(e=>{const t=Object.create(y);return t.value=e,t})(e.newValue.right)}case"Right":switch(e.newValue._tag){case"Left":return(e=>{const t=Object.create(m);return t.value=e,t})(e.newValue.left);case"Right":{const t=e.right.diff(e.oldValue.right,e.newValue.right);return a.aI(t,e.right.empty)?h():(e=>{const t=Object.create(g);return t.patch=e,t})(t)}}}},w=s.XY(2,(e,t)=>((e,t)=>{const n=Object.create(p);return n.first=e,n.second=t,n})(e,t)),_=s.XY(2,(e,{left:t,oldValue:n,right:a})=>{if("Empty"===e._tag)return n;let s=r.of(e),o=n;for(;r.J_(s);){const e=r.v4(s),n=r.Rx(s);switch(e._tag){case"Empty":s=n;break;case"AndThen":s=r.Hs(e.first)(r.Hs(e.second)(n));break;case"UpdateLeft":"Left"===o._tag&&(o=i.kb(t.patch(e.patch,o.left))),s=n;break;case"UpdateRight":"Right"===o._tag&&(o=i.pG(a.patch(e.patch,o.right))),s=n;break;case"SetLeft":o=i.kb(e.value),s=n;break;case"SetRight":o=i.pG(e.value),s=n}}return o})},6179(e,t,n){"use strict";var r=n(42649),i=n(11644);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t){var n=e.entry;for(e.entry=null;n;){var r=n.callback;t.pendingcb--,r(undefined),n=n.next}t.corkedRequestsFree.next=e}(t,e)}}e.exports=b;var s,o=!r.browser&&["v0.10","v0.9."].indexOf(r.version.slice(0,5))>-1?setImmediate:i.nextTick;b.WritableState=y;var u=Object.create(n(1833));u.inherits=n(33213);var c,l={deprecate:n(12082)},f=n(4880),d=n(18277).Buffer,h=(void 0!==n.g?n.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){},p=n(48743);function m(){}function y(e,t){s=s||n(77561),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var u=e.highWaterMark,c=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=u||0===u?u:r&&(c||0===c)?c:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,a=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,a){--t.pendingcb,n?(i.nextTick(a,r),i.nextTick(E,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(a(r),e._writableState.errorEmitted=!0,e.emit("error",r),E(e,t))}(e,n,r,t,a);else{var s=_(n);s||n.corked||n.bufferProcessing||!n.bufferedRequest||w(e,n),r?o(v,e,n,s,a):v(e,n,s,a)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(77561),!(c.call(b,this)||this instanceof s))return new b(e);this._writableState=new y(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function g(e,t,n,r,i,a,s){t.writelen=r,t.writecb=s,t.writing=!0,t.sync=!0,n?e._writev(i,t.onwrite):e._write(i,a,t.onwrite),t.sync=!1}function v(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),E(e,t)}function w(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,i=new Array(r),s=t.corkedRequestsFree;s.entry=n;for(var o=0,u=!0;n;)i[o]=n,n.isBuf||(u=!1),n=n.next,o+=1;i.allBuffers=u,g(e,t,!0,t.length,i,"",s.finish),t.pendingcb++,t.lastBufferedRequest=null,s.next?(t.corkedRequestsFree=s.next,s.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var c=n.chunk,l=n.encoding,f=n.callback;if(g(e,t,!1,t.objectMode?1:c.length,c,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function _(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function S(e,t){e._final(function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),E(e,t)})}function E(e,t){var n=_(t);return n&&(function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(S,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),y.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(y.prototype,"buffer",{get:l.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(c=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!c.call(this,e)||this===b&&e&&e._writableState instanceof y}})):c=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,a=this._writableState,s=!1,o=!a.objectMode&&(r=e,d.isBuffer(r)||r instanceof h);return o&&!d.isBuffer(e)&&(e=function(e){return d.from(e)}(e)),"function"==typeof t&&(n=t,t=null),o?t="buffer":t||(t=a.defaultEncoding),"function"!=typeof n&&(n=m),a.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(o||function(e,t,n,r){var a=!0,s=!1;return null===n?s=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(s=new TypeError("Invalid non-string/buffer chunk")),s&&(e.emit("error",s),i.nextTick(r,s),a=!1),a}(this,a,e,n))&&(a.pendingcb++,s=function(e,t,n,r,i,a){if(!n){var s=function(e,t,n){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=d.from(t,n)),t}(t,r,i);r!==s&&(n=!0,i="buffer",r=s)}var o=t.objectMode?1:r.length;t.length+=o;var u=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||function(e,t,n){t.ending=!0,E(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n)),t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=p.destroy,b.prototype._undestroy=p.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}},6255(e,t,n){"use strict";var r=n(62460),i=n(68633),a=n(17821),s=n(81826);e.exports=s||r.call(a,i)},7403(e,t,n){"use strict";n.d(t,{F6:()=>w,Ie:()=>d,PL:()=>o,Ui:()=>g,kg:()=>v});var r=n(17388),i=n(72529),a=n(59329),s=n(53487);const o=Symbol.for("effect/DifferChunkPatch");function u(e){return e}const c={...s.wC.prototype,[o]:{_Value:u,_Patch:u}},l=Object.assign(Object.create(c),{_tag:"Empty"}),f=Object.create(l),d=()=>f,h=Object.assign(Object.create(c),{_tag:"AndThen"}),p=Object.assign(Object.create(c),{_tag:"Append"}),m=Object.assign(Object.create(c),{_tag:"Slice"}),y=Object.assign(Object.create(c),{_tag:"Update"}),b=(e,t)=>{const n=Object.create(y);return n.index=e,n.patch=t,n},g=e=>{let t=0,n=d();for(;t{const n=Object.create(m);return n.from=0,n.until=t,n})(0,t)))),t{const t=Object.create(p);return t.values=e,t})(r.gv(t)(e.newValue))))),n},v=a.XY(2,(e,t)=>((e,t)=>{const n=Object.create(h);return n.first=e,n.second=t,n})(e,t)),w=a.XY(3,(e,t,n)=>{if("Empty"===e._tag)return t;let i=t,a=r.of(e);for(;r.J_(a);){const e=r.v4(a),t=r.Rx(a);switch(e._tag){case"Empty":a=t;break;case"AndThen":a=r.Hs(e.first)(r.Hs(e.second)(t));break;case"Append":i=r.u2(e.values)(i),a=t;break;case"Slice":{const n=r.h3(i);i=r.Iv(n.slice(e.from,e.until)),a=t;break}case"Update":{const s=r.h3(i);s[e.index]=n.patch(e.patch,s[e.index]),i=r.Iv(s),a=t;break}}}return i})},7411(e,t,n){"use strict";n.d(t,{l:()=>a});var r=n(41213);const i={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new r.hX({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new r.SK({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new r.B4({offset:e});const t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new r.B4({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const n=t??this.position;return this.assertPosition(n+e-1),this.bytes.subarray(n,n+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,255&e),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const n=this.inspectBytes(e);return this.position+=t??e,n},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function a(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(i);return n.bytes=e,n.dataView=new DataView(e.buffer??e,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}},8495(e,t,n){var r=n(55303),i=n(72258).Buffer;function a(e){var t=i.allocUnsafe(4);return t.writeUInt32BE(e,0),t}e.exports=function(e,t){for(var n,s=i.alloc(0),o=0;s.lengthi,Ge:()=>a,Yv:()=>r,wj:()=>s});const i=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,a=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,s=/^\(.+?\).*?$/},8736(e,t,n){"use strict";function r(e,{dir:t="left"}={}){let n="string"==typeof e?e.replace("0x",""):e,r=0;for(let e=0;er})},8776(e,t,n){"use strict";var r=n(73730).Buffer,i=n(33213),a=n(1890),s=new Array(16),o=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],u=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],c=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],l=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],f=[0,1518500249,1859775393,2400959708,2840853838],d=[1352829926,1548603684,1836072691,2053994217,0];function h(e,t){return e<>>32-t}function p(e,t,n,r,i,a,s,o){return h(e+(t^n^r)+a+s|0,o)+i|0}function m(e,t,n,r,i,a,s,o){return h(e+(t&n|~t&r)+a+s|0,o)+i|0}function y(e,t,n,r,i,a,s,o){return h(e+((t|~n)^r)+a+s|0,o)+i|0}function b(e,t,n,r,i,a,s,o){return h(e+(t&r|n&~r)+a+s|0,o)+i|0}function g(e,t,n,r,i,a,s,o){return h(e+(t^(n|~r))+a+s|0,o)+i|0}function v(){a.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}i(v,a),v.prototype._update=function(){for(var e=s,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var n=0|this._a,r=0|this._b,i=0|this._c,a=0|this._d,v=0|this._e,w=0|this._a,_=0|this._b,S=0|this._c,E=0|this._d,k=0|this._e,x=0;x<80;x+=1){var T,M;x<16?(T=p(n,r,i,a,v,e[o[x]],f[0],c[x]),M=g(w,_,S,E,k,e[u[x]],d[0],l[x])):x<32?(T=m(n,r,i,a,v,e[o[x]],f[1],c[x]),M=b(w,_,S,E,k,e[u[x]],d[1],l[x])):x<48?(T=y(n,r,i,a,v,e[o[x]],f[2],c[x]),M=y(w,_,S,E,k,e[u[x]],d[2],l[x])):x<64?(T=b(n,r,i,a,v,e[o[x]],f[3],c[x]),M=m(w,_,S,E,k,e[u[x]],d[3],l[x])):(T=g(n,r,i,a,v,e[o[x]],f[4],c[x]),M=p(w,_,S,E,k,e[u[x]],d[4],l[x])),n=v,v=a,a=h(i,10),i=r,r=T,w=k,k=E,E=h(S,10),S=_,_=M}var I=this._b+i+E|0;this._b=this._c+a+k|0,this._c=this._d+v+w|0,this._d=this._e+n+_|0,this._e=this._a+r+S|0,this._a=I},v.prototype._digest=function(){this._block[this._blockOffset]=128,this._blockOffset+=1,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=r.alloc?r.alloc(20):new r(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},e.exports=v},8983(e,t,n){"use strict";var r=n(92772),i=n(23145),a=n(33213),s=n(14248),o=r.assert;function u(e){s.call(this,"short",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function c(e,t,n,r){s.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(t,16),this.y=new i(n,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function l(e,t,n,r){s.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(t,16),this.y=new i(n,16),this.z=new i(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}a(u,s),e.exports=u,u.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new i(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=(t=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(e.lambda)n=new i(e.lambda,16);else{var a=this._getEndoRoots(this.n);0===this.g.mul(a[0]).x.cmp(this.g.x.redMul(t))?n=a[0]:(n=a[1],o(0===this.g.mul(n).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:n,basis:e.basis?e.basis.map(function(e){return{a:new i(e.a,16),b:new i(e.b,16)}}):this._getEndoBasis(n)}}},u.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:i.mont(e),n=new i(2).toRed(t).redInvm(),r=n.redNeg(),a=new i(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(a).fromRed(),r.redSub(a).fromRed()]},u.prototype._getEndoBasis=function(e){for(var t,n,r,a,s,o,u,c,l,f=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,h=this.n.clone(),p=new i(1),m=new i(0),y=new i(0),b=new i(1),g=0;0!==d.cmpn(0);){var v=h.div(d);c=h.sub(v.mul(d)),l=y.sub(v.mul(p));var w=b.sub(v.mul(m));if(!r&&c.cmp(f)<0)t=u.neg(),n=p,r=c.neg(),a=l;else if(r&&2===++g)break;u=c,h=d,d=c,y=p,p=l,b=m,m=w}s=c.neg(),o=l;var _=r.sqr().add(a.sqr());return s.sqr().add(o.sqr()).cmp(_)>=0&&(s=t,o=n),r.negative&&(r=r.neg(),a=a.neg()),s.negative&&(s=s.neg(),o=o.neg()),[{a:r,b:a},{a:s,b:o}]},u.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],r=t[1],i=r.b.mul(e).divRound(this.n),a=n.b.neg().mul(e).divRound(this.n),s=i.mul(n.a),o=a.mul(r.a),u=i.mul(n.b),c=a.mul(r.b);return{k1:e.sub(s).sub(o),k2:u.add(c).neg()}},u.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var a=r.fromRed().isOdd();return(t&&!a||!t&&a)&&(r=r.redNeg()),this.point(e,r)},u.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,r=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(i).cmpn(0)},u.prototype._endoWnafMulAdd=function(e,t,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,a=0;a":""},c.prototype.isInfinity=function(){return this.inf},c.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var n=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},c.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,n=this.x.redSqr(),r=e.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(r),a=i.redSqr().redISub(this.x.redAdd(this.x)),s=i.redMul(this.x.redSub(a)).redISub(this.y);return this.curve.point(a,s)},c.prototype.getX=function(){return this.x.fromRed()},c.prototype.getY=function(){return this.y.fromRed()},c.prototype.mul=function(e){return e=new i(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},c.prototype.mulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},c.prototype.jmulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},c.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},c.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return t},c.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},a(l,s.BasePoint),u.prototype.jpoint=function(e,t,n){return new l(this,e,t,n)},l.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(n,r)},l.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},l.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(t),i=e.x.redMul(n),a=this.y.redMul(t.redMul(e.z)),s=e.y.redMul(n.redMul(this.z)),o=r.redSub(i),u=a.redSub(s);if(0===o.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=o.redSqr(),l=c.redMul(o),f=r.redMul(c),d=u.redSqr().redIAdd(l).redISub(f).redISub(f),h=u.redMul(f.redISub(d)).redISub(a.redMul(l)),p=this.z.redMul(e.z).redMul(o);return this.curve.jpoint(d,h,p)},l.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,r=e.x.redMul(t),i=this.y,a=e.y.redMul(t).redMul(this.z),s=n.redSub(r),o=i.redSub(a);if(0===s.cmpn(0))return 0!==o.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),c=u.redMul(s),l=n.redMul(u),f=o.redSqr().redIAdd(c).redISub(l).redISub(l),d=o.redMul(l.redISub(f)).redISub(i.redMul(c)),h=this.z.redMul(s);return this.curve.jpoint(f,d,h)},l.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var n=this;for(t=0;t=0)return!1;if(n.redIAdd(i),0===this.x.cmp(n))return!0}},l.prototype.inspect=function(){return this.isInfinity()?"":""},l.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},9007(e,t,n){var r=n(23145),i=n(15314);function a(e){this.rand=e||new i.Rand}e.exports=a,a.create=function(e){return new a(e)},a.prototype._randbelow=function(e){var t=e.bitLength(),n=Math.ceil(t/8);do{var i=new r(this.rand.generate(n))}while(i.cmp(e)>=0);return i},a.prototype._randrange=function(e,t){var n=t.sub(e);return e.add(this._randbelow(n))},a.prototype.test=function(e,t,n){var i=e.bitLength(),a=r.mont(e),s=new r(1).toRed(a);t||(t=Math.max(1,i/48|0));for(var o=e.subn(1),u=0;!o.testn(u);u++);for(var c=e.shrn(u),l=o.toRed(a);t>0;t--){var f=this._randrange(new r(2),o);n&&n(f);var d=f.toRed(a).redPow(c);if(0!==d.cmp(s)&&0!==d.cmp(l)){for(var h=1;h0;t--){var l=this._randrange(new r(2),s),f=e.gcd(l);if(0!==f.cmpn(1))return f;var d=l.toRed(i).redPow(u);if(0!==d.cmp(a)&&0!==d.cmp(c)){for(var h=1;hs,s7:()=>i,x8:()=>a});var r=n(20094);class i extends r.C{constructor({signature:e,type:t}){super(`Invalid ${t} signature.`,{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}}class a extends r.C{constructor({signature:e}){super("Unknown signature.",{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}}class s extends r.C{constructor({signature:e}){super("Invalid struct signature.",{details:e,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}}},9100(e,t,n){"use strict";n.d(t,{eC:()=>Ma,gm:()=>ka,ZU:()=>Na,w2:()=>xa,lN:()=>Wa,sv:()=>Ga,dF:()=>Xa,fJ:()=>Fa,sV:()=>ja,Tj:()=>za,Uc:()=>Va,Py:()=>Ba,Sv:()=>La,eq:()=>Ja});var r=n(28062),i=n(75602),a=n(89921),s=n(53487);s.w3,s.wC,s.wC;const o=function(){const e=Symbol.for("effect/Data/Error/plainArgs"),t=class extends a.Wc6{constructor(t){super(t?.message,t?.cause?{cause:t.cause}:void 0),t&&(Object.assign(this,t),Object.defineProperty(this,e,{value:t,enumerable:!1}))}toJSON(){return{...this[e],...this}}};return t}(),u=e=>{const t={BaseEffectError:class extends o{_tag=e}};return t.BaseEffectError.prototype.name=e,t.BaseEffectError};var c=n(59329),l=n(47726),f=n(55606),d=n(36388),h=(n(99053),n(17388)),p=n(93976);const m="Sequential",y="Parallel",b={_tag:m},g=b,v={_tag:y},w=e=>({_tag:"ParallelN",parallelism:e});var _=n(77962),S=n(86937),E=n(46082);E.Ie;const k=E.Ui,x=(E.kg,E.F6);var T=n(72529),M=n(46385),I=n(82884);const A="effect/FiberStatus",N=Symbol.for(A),P="Done",O="Running",R="Suspended",C=M.Yj(`${A}-${P}`);class B{[N]=N;_tag=P;[M.HR](){return C}[T.HR](e){return j(e)&&e._tag===P}}class F{runtimeFlags;[N]=N;_tag=O;constructor(e){this.runtimeFlags=e}[M.HR](){return(0,c.Fs)(M.tW(A),M.kg(M.tW(this._tag)),M.kg(M.tW(this.runtimeFlags)),M.PO(this))}[T.HR](e){return j(e)&&e._tag===O&&this.runtimeFlags===e.runtimeFlags}}class L{runtimeFlags;blockingOn;[N]=N;_tag=R;constructor(e,t){this.runtimeFlags=e,this.blockingOn=t}[M.HR](){return(0,c.Fs)(M.tW(A),M.kg(M.tW(this._tag)),M.kg(M.tW(this.runtimeFlags)),M.kg(M.tW(this.blockingOn)),M.PO(this))}[T.HR](e){return j(e)&&e._tag===R&&this.runtimeFlags===e.runtimeFlags&&T.aI(this.blockingOn,e.blockingOn)}}const j=e=>(0,I.i5)(e,N),D=new B,U=e=>new F(e);var z=n(55661),$=n(91269),V=n(75169),K=n(12717),Y=n(63129),q=n(11264),H=n(66949),G=n(95644);const W=Symbol.for("effect/Micro"),X=Symbol.for("effect/Micro/MicroExit"),J=Symbol.for("effect/Micro/MicroCause"),Z={_E:c.D_};class Q extends globalThis.Error{_tag;traces;[J];constructor(e,t,n){const r=`MicroCause.${e}`;let i,a,s;if(t instanceof globalThis.Error){i=`(${r}) ${t.name}`,a=t.message;const e=a.split("\n").length;s=t.stack?`(${r}) ${t.stack.split("\n").slice(0,e+3).join("\n")}`:`${i}: ${a}`}else i=r,a=(0,K.ZK)(t,0),s=`${i}: ${a}`;n.length>0&&(s+=`\n ${n.join("\n ")}`),super(a),this._tag=e,this.traces=n,this[J]=Z,this.name=i,this.stack=s}pipe(){return(0,H.tT)(this,arguments)}toString(){return this.stack}[K.FX](){return this.stack}}class ee extends Q{defect;constructor(e,t=[]){super("Die",e,t),this.defect=e}}class te extends Q{constructor(e=[]){super("Interrupt","interrupted",e)}}const ne=(e=[])=>new te(e),re=e=>"Interrupt"===e._tag,ie=Symbol.for("effect/Micro/MicroFiber"),ae={_A:c.D_,_E:c.D_};class se{context;interruptible;[ie];_stack=[];_observers=[];_exit;_children;currentOpCount=0;constructor(e,t=!0){this.context=e,this.interruptible=t,this[ie]=ae}getRef(e){return q.gw(this.context,e)}addObserver(e){return this._exit?(e(this._exit),c.Yi):(this._observers.push(e),()=>{const t=this._observers.indexOf(e);t>=0&&this._observers.splice(t,1)})}_interrupted=!1;unsafeInterrupt(){this._exit||(this._interrupted=!0,this.interruptible&&this.evaluate(Pe))}unsafePoll(){return this._exit}evaluate(e){if(this._exit)return;if(void 0!==this._yielded){const e=this._yielded;this._yielded=void 0,e()}const t=this.runLoop(e);if(t===pe)return;const n=oe.interruptChildren&&oe.interruptChildren(this);if(void 0!==n)return this.evaluate(Te(n,()=>t));this._exit=t;for(let e=0;ee)}if(n=n[le](this),n===pe){const e=this._yielded;return X in e?(this._yielded=void 0,e):pe}}}catch(e){return(0,I.i5)(n,le)?Oe(e):Oe(`MicroFiber.runLoop: Not a valid effect: ${String(n)}`)}}getCont(e){for(;;){const t=this._stack.pop();if(!t)return;const n=t[he]&&t[he](this);if(n)return{[e]:n};if(t[e])return t}}_yielded=void 0;yieldWith(e){return this._yielded=e,pe}children(){return this._children??=new Set}}const oe=(0,z.V)("effect/Micro/fiberMiddleware",()=>({interruptChildren:void 0})),ue=Symbol.for("effect/Micro/identifier"),ce=Symbol.for("effect/Micro/args"),le=Symbol.for("effect/Micro/evaluate"),fe=Symbol.for("effect/Micro/successCont"),de=Symbol.for("effect/Micro/failureCont"),he=Symbol.for("effect/Micro/ensureCont"),pe=Symbol.for("effect/Micro/Yield"),me={_A:c.D_,_E:c.D_,_R:c.D_},ye={...p.MS,_op:"Micro",[W]:me,pipe(){return(0,H.tT)(this,arguments)},[Symbol.iterator](){return new G.BW(new G.WT(this))},toJSON(){return{_id:"Micro",op:this[ue],...ce in this?{args:this[ce]}:void 0}},toString(){return(0,K.GP)(this)},[K.FX](){return(0,K.GP)(this)}};function be(e){return Oe("Micro.evaluate: Not implemented")}const ge=e=>({...ye,[ue]:e.op,[le]:e.eval??be,[fe]:e.contA,[de]:e.contE,[he]:e.ensure}),ve=e=>{const t=ge(e);return function(){const n=Object.create(t);return n[ce]=!1===e.single?arguments:arguments[0],n}},we=e=>{const t={...ge(e),[X]:X,_tag:e.op,get[e.prop](){return this[ce]},toJSON(){return{_id:"MicroExit",_tag:e.op,[e.prop]:this[ce]}},[T.HR](t){return Ie(t)&&t._tag===e.op&&T.aI(this[ce],t[ce])},[M.HR](){return M.PO(this,M.kg(M.Yj(e.op))(M.tW(this[ce])))}};return function(e){const n=Object.create(t);return n[ce]=e,n[fe]=void 0,n[de]=void 0,n[he]=void 0,n}},_e=we({op:"Success",prop:"value",eval(e){const t=e.getCont(fe);return t?t[fe](this[ce],e):e.yieldWith(this)}}),Se=we({op:"Failure",prop:"cause",eval(e){let t=e.getCont(de);for(;re(this[ce])&&t&&e.interruptible;)t=e.getCont(de);return t?t[de](this[ce],e):e.yieldWith(this)}}),Ee=ve({op:"Yield",eval(e){let t=!1;return e.getRef(De).scheduleTask(()=>{t||e.evaluate(Re)},this[ce]??0),e.yieldWith(()=>{t=!0})}})(0),ke=_e(void 0),xe=ve({op:"WithMicroFiber",eval(e){return this[ce](e)}}),Te=(0,c.XY)(2,(e,t)=>{const n=Object.create(Me);return n[ce]=e,n[fe]=t,n}),Me=ge({op:"OnSuccess",eval(e){return e._stack.push(this),this[ce]}}),Ie=e=>(0,I.i5)(e,X),Ae=_e,Ne=Se,Pe=Ne(ne()),Oe=e=>Ne(((e,t=[])=>new ee(e,t))(e)),Re=Ae(void 0),Ce="setImmediate"in globalThis?globalThis.setImmediate:e=>setTimeout(e,0);class Be{tasks=[];running=!1;scheduleTask(e,t){this.tasks.push(e),this.running||(this.running=!0,Ce(this.afterScheduled))}afterScheduled=()=>{this.running=!1,this.runTasks()};runTasks(){const e=this.tasks;this.tasks=[];for(let t=0,n=e.length;t=e.getRef(je)}flush(){for(;this.tasks.length>0;)this.runTasks()}}const Fe=(0,c.XY)(2,(e,t)=>xe(n=>{const r=n.context;return n.context=t(r),$e(e,()=>(n.context=r,ke))})),Le=(0,c.XY)(2,(e,t)=>Fe(e,l.h1(t)));class je extends(l.Or()("effect/Micro/currentMaxOpsBeforeYield",{defaultValue:()=>2048})){}class De extends(l.Or()("effect/Micro/currentScheduler",{defaultValue:()=>new Be})){}const Ue=(0,c.XY)(2,(e,t)=>{const n=Object.create(ze);return n[ce]=e,n[fe]=t.onSuccess,n[de]=t.onFailure,n}),ze=ge({op:"OnSuccessAndFailure",eval(e){return e._stack.push(this),this[ce]}}),$e=(0,c.XY)(2,(e,t)=>Ye(n=>Ue(n(e),{onFailure:e=>Te(t(Ne(e)),()=>Se(e)),onSuccess:e=>Te(t(Ae(e)),()=>_e(e))}))),Ve=ve({op:"SetInterruptible",ensure(e){if(e.interruptible=this[ce],e._interrupted&&e.interruptible)return()=>Pe}}),Ke=e=>xe(t=>t.interruptible?e:(t.interruptible=!0,t._stack.push(Ve(!1)),t._interrupted?Pe:e)),Ye=e=>xe(t=>t.interruptible?(t.interruptible=!1,t._stack.push(Ve(!0)),e(Ke)):e(c.D_));n(61346);var qe=n(36708),He=(n(73400),n(84722));class Ge{buckets=[];scheduleTask(e,t){const n=this.buckets.length;let r,i=0;for(;i=this.maxNextTickBeforeTimer?setTimeout(()=>this.starveInternal(0),0):Promise.resolve(void 0).then(()=>this.starveInternal(e+1))}shouldYield(e){return e.currentOpCount>e.getFiberRef(a.KAb)&&e.getFiberRef(a.QPU)}scheduleTask(e,t){this.tasks.scheduleTask(e,t),this.running||(this.running=!0,this.starve())}}const Xe=(0,z.V)(Symbol.for("effect/Scheduler/defaultScheduler"),()=>new We(2048));class Je{tasks=new Ge;deferred=!1;scheduleTask(e,t){this.deferred?Xe.scheduleTask(e,t):this.tasks.scheduleTask(e,t)}shouldYield(e){return e.currentOpCount>e.getFiberRef(a.KAb)&&e.getFiberRef(a.QPU)}flush(){for(;this.tasks.buckets.length>0;){const e=this.tasks.buckets;this.tasks.buckets=[];for(const[t,n]of e)for(let e=0;ea.QID(Xe));var Qe=n(84025);const et=(e,t)=>({_tag:"Par",left:e,right:t}),tt=(e,t)=>({_tag:"Seq",left:e,right:t}),nt=e=>{let t=e,n=ot(),r=Qe.Ie(),i=Qe.Ie();for(;;)switch(t._tag){case"Empty":if(Qe.gD(r))return[n,i];t=r.head,r=r.tail;break;case"Par":r=Qe.qu(t.right,r),t=t.left;break;case"Seq":{const e=t.left,n=t.right;switch(e._tag){case"Empty":t=n;break;case"Par":{const r=e.left,i=e.right;t=et(tt(r,n),tt(i,n));break}case"Seq":{const r=e.left,i=e.right;t=tt(r,tt(i,n));break}case"Single":t=e,i=Qe.qu(n,i)}break}case"Single":if(n=ut(n,t),Qe.gD(r))return[n,i];t=r.head,r=r.tail}throw new Error("BUG: BlockedRequests.step - please report an issue at https://github.com/Effect-TS/effect/issues")},rt=(e,t)=>{if(Qe.gD(e))return Qe.of(dt(t));if(lt(t))return e;const n=gt(e.head),r=ft(t);return 1===n.length&&1===r.length&&T.aI(n[0],r[0])?Qe.qu(bt(e.head,dt(t)),e.tail):Qe.qu(dt(t),e)},it=Symbol.for("effect/RequestBlock/RequestBlockParallel"),at={_R:e=>e};class st{map;[it]=at;constructor(e){this.map=e}}const ot=()=>new st($.Ie()),ut=(e,t)=>new st($.qt(e.map,t.dataSource,e=>qe.ZK(qe.Tj(e,h.BC(t.blockedRequest)),()=>h.of(t.blockedRequest)))),ct=(e,t)=>new st($.TS(e.map,t.map,(e,t,n)=>$.hZ(e,n,qe.YW($.Jt(e,n),{onNone:()=>t,onSome:e=>h.u2(t,e)})))),lt=e=>$.Im(e.map),ft=e=>Array.from($.HP(e.map)),dt=e=>yt($.Tj(e.map,e=>h.of(e))),ht=Symbol.for("effect/RequestBlock/RequestBlockSequential"),pt={_R:e=>e};class mt{map;[ht]=pt;constructor(e){this.map=e}}const yt=e=>new mt(e),bt=(e,t)=>new mt($.TS(t.map,e.map,(e,t,n)=>$.hZ(e,n,qe.YW($.Jt(e,n),{onNone:()=>h.Ie(),onSome:e=>h.u2(e,t)})))),gt=e=>Array.from($.HP(e.map));var vt=n(59688),wt=n(68929);const _t=(0,z.V)(Symbol.for("effect/FiberRef/currentRequestMap"),()=>(0,a.QID)(new Map)),St=(e,t,n,r)=>{switch(e){case void 0:return t();case"unbounded":return n();case"inherit":return a.uPR(a.D$Q,e=>"unbounded"===e?n():e>1?r(e):t());default:return e>1?r(e):t()}};n(79383);var Et=n(53901),kt=(n(16491),n(84468));a.h0c,a.VE1;const xt=a.CoE;a.dWJ,a.VuY,a.Hox,a.n9O,a.Q9S,a.V2G,a.JUF,a.Rkt,a.cbD,a.ygP,a.NG,a.T12,a.m_i,a.eec,a.Cau,a.t9n,a._sz,a.v9O,a.EkE,a.zPu,a.o7R,a.Wtn,a.dDX,a.xtk,a.x5l,a.cpb,a.TBR,a.il9,a.pLZ,a.CrW,a.$sd,a.wnO;var Tt=n(28876),Mt=(n(4909),n(20490));const It="InterruptSignal",At="Stateful",Nt="Resume",Pt="YieldNow",Ot=e=>({_tag:It,cause:e}),Rt=e=>({_tag:At,onFiber:e}),Ct=e=>({_tag:Nt,effect:e}),Bt=()=>({_tag:Pt}),Ft=Symbol.for("effect/FiberScope");class Lt{[Ft]=Ft;fiberId=_.dv;roots=new Set;add(e,t){this.roots.add(t),t.addObserver(()=>{this.roots.delete(t)})}}class jt{fiberId;parent;[Ft]=Ft;constructor(e,t){this.fiberId=e,this.parent=t}add(e,t){this.parent.tell(Rt(e=>{e.addChild(t),t.addObserver(()=>{e.removeChild(t)})}))}}const Dt=(0,z.V)(Symbol.for("effect/FiberScope/Global"),()=>new Lt);var Ut=n(91484);const zt=Symbol.for("effect/Fiber"),$t={_E:e=>e,_A:e=>e},Vt=Symbol.for("effect/Fiber"),Kt=(Tt.pH,Tt.pH,e=>a.piH(a.Bqz(e.await),e.inheritAll)),Yt=(Mt.Em,a.ZmZ,a.ZmZ,"effect/FiberCurrent");var qt=n(35191),Ht=n(35156),Gt=n(57109),Wt=n(42649);const Xt=Symbol.for("effect/Logger"),Jt={_Message:e=>e,_Output:e=>e},Zt=e=>({[Xt]:Jt,log:e,pipe(){return(0,H.tT)(this,arguments)}}),Qt=(c.Yi,/^[^\s"=]*$/),en=(e,t)=>({annotations:n,cause:i,date:a,fiberId:s,logLevel:o,message:u,spans:c})=>{const l=(t,n)=>`${Gt.wR(t)}=${(t=>t.match(Qt)?t:e(t))(n)}`,f=(e,t)=>" "+l(e,t);let d=l("timestamp",a.toISOString());d+=f("level",o.label),d+=f("fiber",Ht.CB(s));const h=r.D8(u);for(let e=0;e`"${e.replace(/\\([\s\S])|(")/g,"\\$1$2")}"`)),nn=(JSON.stringify,e=>{switch(typeof e){case"bigint":case"function":case"symbol":return String(e);default:return K.U2(e)}}),rn=(K.hL,"object"==typeof Wt&&null!==Wt&&"object"==typeof Wt.stdout&&null!==Wt.stdout),an=(rn&&Wt.stdout.isTTY,rn||globalThis,Symbol.for("effect/MetricKeyType")),sn="effect/MetricKeyType/Counter",on=Symbol.for(sn),un=Symbol.for("effect/MetricKeyType/Frequency"),cn=Symbol.for("effect/MetricKeyType/Gauge"),ln="effect/MetricKeyType/Histogram",fn=Symbol.for(ln),dn=Symbol.for("effect/MetricKeyType/Summary"),hn={_In:e=>e,_Out:e=>e};class pn{incremental;bigint;[an]=hn;[on]=on;constructor(e,t){this.incremental=e,this.bigint=t,this._hash=M.Yj(sn)}_hash;[M.HR](){return this._hash}[T.HR](e){return yn(e)}pipe(){return(0,H.tT)(this,arguments)}}M.HR,T.HR,M.HR,T.HR;class mn{boundaries;[an]=hn;[fn]=fn;constructor(e){this.boundaries=e,this._hash=(0,c.Fs)(M.Yj(ln),M.kg(M.tW(this.boundaries)))}_hash;[M.HR](){return this._hash}[T.HR](e){return bn(e)&&T.aI(this.boundaries,e.boundaries)}pipe(){return(0,H.tT)(this,arguments)}}M.HR,T.HR;const yn=e=>(0,I.i5)(e,on),bn=e=>(0,I.i5)(e,fn),gn=Symbol.for("effect/MetricKey"),vn={_Type:e=>e},wn=r.bt(T.aI);class _n{name;keyType;description;tags;[gn]=vn;constructor(e,t,n,r=[]){this.name=e,this.keyType=t,this.description=n,this.tags=r,this._hash=(0,c.Fs)(M.Yj(this.name+this.description),M.kg(M.tW(this.keyType)),M.kg(M.YO(this.tags)))}_hash;[M.HR](){return this._hash}[T.HR](e){return Sn(e)&&this.name===e.name&&T.aI(this.keyType,e.keyType)&&T.aI(this.description,e.description)&&wn(this.tags,e.tags)}pipe(){return(0,H.tT)(this,arguments)}}const Sn=e=>(0,I.i5)(e,gn),En=(0,c.XY)(2,(e,t)=>0===t.length?e:new _n(e.name,e.keyType,e.description,r.KC(e.tags,t)));var kn=n(91170);const xn=Symbol.for("effect/MutableHashMap"),Tn={[xn]:xn,[Symbol.iterator](){return new Mn(this)},toString(){return(0,K.GP)(this.toJSON())},toJSON(){return{_id:"MutableHashMap",values:Array.from(this).map(K.U2)}},[K.FX](){return this.toJSON()},pipe(){return(0,H.tT)(this,arguments)}};class Mn{self;referentialIterator;bucketIterator;constructor(e){this.self=e,this.referentialIterator=e.referential[Symbol.iterator]()}next(){if(void 0!==this.bucketIterator)return this.bucketIterator.next();const e=this.referentialIterator.next();return e.done?(this.bucketIterator=new In(this.self.buckets.values()),this.next()):e}[Symbol.iterator](){return new Mn(this.self)}}class In{backing;constructor(e){this.backing=e}currentBucket;next(){if(void 0===this.currentBucket){const e=this.backing.next();if(e.done)return e;this.currentBucket=e.value[Symbol.iterator]()}const e=this.currentBucket.next();return e.done?(this.currentBucket=void 0,this.next()):e}}const An=()=>{const e=Object.create(Tn);return e.referential=new Map,e.buckets=new Map,e.bucketsSize=0,e},Nn=(0,c.XY)(2,(e,t)=>{if(!1===T.n4(t))return e.referential.has(t)?qe.zN(e.referential.get(t)):qe.dv();const n=t[M.HR](),r=e.buckets.get(n);return void 0===r?qe.dv():Pn(e,r,t)}),Pn=(e,t,n,r=!1)=>{for(let i=0,a=t.length;iqe.Ru(Nn(e,t))),Rn=(0,c.XY)(3,(e,t,n)=>{if(!1===T.n4(t))return e.referential.set(t,n),e;const r=t[M.HR](),i=e.buckets.get(r);return void 0===i?(e.buckets.set(r,[[t,n]]),e.bucketsSize++,e):(Cn(e,i,t),i.push([t,n]),e.bucketsSize++,e)}),Cn=(e,t,n)=>{for(let r=0,i=t.length;re};class Gn{count;[Fn]=Hn;[jn]=jn;constructor(e){this.count=e}[M.HR](){return(0,c.Fs)(M.tW(Ln),M.kg(M.tW(this.count)),M.PO(this))}[T.HR](e){return er(e)&&this.count===e.count}pipe(){return(0,H.tT)(this,arguments)}}const Wn=r.bt(T.aI);class Xn{occurrences;[Fn]=Hn;[Un]=Un;constructor(e){this.occurrences=e}_hash;[M.HR](){return(0,c.Fs)(M.Yj(Dn),M.kg(M.YO(r.Ts(this.occurrences.entries()))),M.PO(this))}[T.HR](e){return tr(e)&&Wn(r.Ts(this.occurrences.entries()),r.Ts(e.occurrences.entries()))}pipe(){return(0,H.tT)(this,arguments)}}class Jn{value;[Fn]=Hn;[$n]=$n;constructor(e){this.value=e}[M.HR](){return(0,c.Fs)(M.tW(zn),M.kg(M.tW(this.value)),M.PO(this))}[T.HR](e){return nr(e)&&this.value===e.value}pipe(){return(0,H.tT)(this,arguments)}}class Zn{buckets;count;min;max;sum;[Fn]=Hn;[Kn]=Kn;constructor(e,t,n,r,i){this.buckets=e,this.count=t,this.min=n,this.max=r,this.sum=i}[M.HR](){return(0,c.Fs)(M.tW(Vn),M.kg(M.tW(this.buckets)),M.kg(M.tW(this.count)),M.kg(M.tW(this.min)),M.kg(M.tW(this.max)),M.kg(M.tW(this.sum)),M.PO(this))}[T.HR](e){return rr(e)&&T.aI(this.buckets,e.buckets)&&this.count===e.count&&this.min===e.min&&this.max===e.max&&this.sum===e.sum}pipe(){return(0,H.tT)(this,arguments)}}class Qn{error;quantiles;count;min;max;sum;[Fn]=Hn;[qn]=qn;constructor(e,t,n,r,i,a){this.error=e,this.quantiles=t,this.count=n,this.min=r,this.max=i,this.sum=a}[M.HR](){return(0,c.Fs)(M.tW(Yn),M.kg(M.tW(this.error)),M.kg(M.tW(this.quantiles)),M.kg(M.tW(this.count)),M.kg(M.tW(this.min)),M.kg(M.tW(this.max)),M.kg(M.tW(this.sum)),M.PO(this))}[T.HR](e){return ir(e)&&this.error===e.error&&T.aI(this.quantiles,e.quantiles)&&this.count===e.count&&this.min===e.min&&this.max===e.max&&this.sum===e.sum}pipe(){return(0,H.tT)(this,arguments)}}const er=e=>(0,I.i5)(e,jn),tr=e=>(0,I.i5)(e,Un),nr=e=>(0,I.i5)(e,$n),rr=e=>(0,I.i5)(e,Kn),ir=e=>(0,I.i5)(e,qn),ar=Symbol.for("effect/MetricHook"),sr={_In:e=>e,_Out:e=>e},or=e=>({[ar]:sr,pipe(){return(0,H.tT)(this,arguments)},...e}),ur=BigInt(0),cr=(e,t,n)=>{const i=n.length;if(!r.iI(t))return r.Ie();const a=t[0],s=t.slice(1),o=lr(e,i,qe.dv(),0,a,n),u=r.of(o);return s.forEach(t=>{u.push(lr(e,i,o.value,o.consumed,t,o.rest))}),r.Tj(u,e=>[e.quantile,e.value])},lr=(e,t,n,i,a,s)=>{let o=e,u=t,c=n,l=i,f=a,d=s,h=e,p=t,m=n,y=i,b=a,g=s;for(;;){if(!r.iI(d))return{quantile:f,value:qe.dv(),consumed:l,rest:[]};if(1===f)return{quantile:f,value:qe.zN(r.Rm(d)),consumed:l+d.length,rest:[]};const e=r.v4(d),t=r.Ln(d,t=>t===e),n=f*u,i=o/2*n,a=l+t[0].length,s=Math.abs(a-n);if(an+i)return{quantile:f,value:qe.$I(c)?qe.zN(e):c,consumed:l,rest:d};switch(c._tag){case"None":h=o,p=u,m=r.d5(d),y=a,b=f,g=t[1],o=h,u=p,c=m,l=y,f=b,d=g;continue;case"Some":if(se},hr=(e,t)=>({[fr]:dr,metricKey:e,metricState:t,pipe(){return(0,H.tT)(this,arguments)}}),pr=Symbol.for("effect/MetricRegistry");class mr{[pr]=pr;map=An();snapshot(){const e=[];for(const[t,n]of this.map)e.push(hr(t,n.get()));return e}get(e){const t=(0,c.Fs)(this.map,Nn(e),qe.Y6);if(null==t){if(yn(e.keyType))return this.getCounter(e);if(n=e.keyType,(0,I.i5)(n,cn))return this.getGauge(e);if((e=>(0,I.i5)(e,un))(e.keyType))return this.getFrequency(e);if(bn(e.keyType))return this.getHistogram(e);if((e=>(0,I.i5)(e,dn))(e.keyType))return this.getSummary(e);throw new Error("BUG: MetricRegistry.get - unknown MetricKeyType - please report an issue at https://github.com/Effect-TS/effect/issues")}var n;return t}getCounter(e){let t=(0,c.Fs)(this.map,Nn(e),qe.Y6);if(null==t){const n=(e=>{let t=e.keyType.bigint?ur:0;const n=e.keyType.incremental?e.keyType.bigint?e=>e>=ur:e=>e>=0:e=>!0,r=e=>{n(e)&&(t+=e)};return or({get:()=>new Gn(t),update:r,modify:r})})(e);(0,c.Fs)(this.map,On(e))||(0,c.Fs)(this.map,Rn(e,n)),t=n}return t}getFrequency(e){let t=(0,c.Fs)(this.map,Nn(e),qe.Y6);if(null==t){const n=(e=>{const t=new Map;for(const n of e.keyType.preregisteredWords)t.set(n,0);const n=e=>{const n=t.get(e)??0;t.set(e,n+1)};return or({get:()=>new Xn(t),update:n,modify:n})})(e);(0,c.Fs)(this.map,On(e))||(0,c.Fs)(this.map,Rn(e,n)),t=n}return t}getGauge(e){let t=(0,c.Fs)(this.map,Nn(e),qe.Y6);if(null==t){const n=((e,t)=>{let n=t;return or({get:()=>new Jn(n),update:e=>{n=e},modify:e=>{n+=e}})})(0,e.keyType.bigint?BigInt(0):0);(0,c.Fs)(this.map,On(e))||(0,c.Fs)(this.map,Rn(e,n)),t=n}return t}getHistogram(e){let t=(0,c.Fs)(this.map,Nn(e),qe.Y6);if(null==t){const n=(e=>{const t=e.keyType.boundaries.values,n=t.length,i=new Uint32Array(n+1),a=new Float64Array(n);let s=0,o=0,u=Number.MAX_VALUE,l=Number.MIN_VALUE;(0,c.Fs)(t,r.di(Tt.pH),r.Tj((e,t)=>{a[t]=e}));const f=e=>{let t=0,r=n;for(;t!==r;){const n=Math.floor(t+(r-t)/2);e<=a[n]?r=n:t=n,r===t+1&&(e<=a[t]?r=t:t=r)}i[t]=i[t]+1,s+=1,o+=e,el&&(l=e)},d=()=>{const e=r.CN(n);let t=0;for(let r=0;r{return e={buckets:d(),count:s,min:u,max:l,sum:o},new Zn(e.buckets,e.count,e.min,e.max,e.sum);var e},update:f,modify:f})})(e);(0,c.Fs)(this.map,On(e))||(0,c.Fs)(this.map,Rn(e,n)),t=n}return t}getSummary(e){let t=(0,c.Fs)(this.map,Nn(e),qe.Y6);if(null==t){const n=(e=>{const{error:t,maxAge:n,maxSize:i,quantiles:a}=e.keyType,s=(0,c.Fs)(a,r.di(Tt.pH)),o=r.CN(i);let u=0,l=0,f=0,d=0,h=0;const p=e=>{const a=[];let u=0;for(;u!==i-1;){const t=o[u];if(null!=t){const[r,i]=t,s=Bn.ne(e-r);Bn.An(s,Bn.v_)&&Bn.Bj(s,n)&&a.push(i)}u+=1}return cr(t,s,r.di(a,Tt.pH))},m=(e,t)=>{i>0&&(u+=1,o[u%i]=[t,e]),d=0===l?e:Math.min(d,e),h=0===l?e:Math.max(h,e),l+=1,f+=e};return or({get:()=>{return e={error:t,quantiles:p(Date.now()),count:l,min:d,max:h,sum:f},new Qn(e.error,e.quantiles,e.count,e.min,e.max,e.sum);var e},update:([e,t])=>m(e,t),modify:([e,t])=>m(e,t)})})(e);(0,c.Fs)(this.map,On(e))||(0,c.Fs)(this.map,Rn(e,n)),t=n}return t}}const yr=Symbol.for("effect/Metric"),br={_Type:e=>e,_In:e=>e,_Out:e=>e},gr=(0,z.V)(Symbol.for("effect/Metric/globalMetricRegistry"),()=>new mr),vr=function(e,t,n,r){const i=Object.assign(e=>a.Mim(e,e=>xr(i,e)),{[yr]:br,keyType:e,unsafeUpdate:t,unsafeValue:n,unsafeModify:r,register(){return this.unsafeValue([]),this},pipe(){return(0,H.tT)(this,arguments)}});return i},wr=(e,t)=>_r(((e,t)=>new _n(e,(e=>new pn(e?.incremental??!1,e?.bigint??!1))(t),qe.k$(t?.description)))(e,t)),_r=e=>{let t;const n=new WeakMap,r=r=>{if(0===r.length)return void 0!==t||(t=gr.get(e)),t;let i=n.get(r);return void 0!==i||(i=gr.get(En(e,r)),n.set(r,i)),i};return vr(e.keyType,(e,t)=>r(t).update(e),e=>r(e).get(),(e,t)=>r(t).modify(e))},Sr=(e,t,n)=>_r(((e,t,n)=>new _n(e,(e=>new mn(e))(t),qe.k$(n)))(e,t,n)),Er=(0,c.XY)(3,(e,t,n)=>kr(e,[kn.L8(t,n)])),kr=(0,c.XY)(2,(e,t)=>vr(e.keyType,(n,i)=>e.unsafeUpdate(n,r.KC(t,i)),n=>e.unsafeValue(r.KC(t,n)),(n,i)=>e.unsafeModify(n,r.KC(t,i)))),xr=(0,c.XY)(2,(e,t)=>a.uPR(a.b1P,n=>a.OH5(()=>e.unsafeUpdate(t,n)))),Tr="effect/MetricBoundaries",Mr=Symbol.for(Tr);class Ir{values;[Mr]=Mr;constructor(e){this.values=e,this._hash=(0,c.Fs)(M.Yj(Tr),M.kg(M.YO(this.values)))}_hash;[M.HR](){return this._hash}[T.HR](e){return Ar(e)&&T.aI(this.values,e.values)}pipe(){return(0,H.tT)(this,arguments)}}const Ar=e=>(0,I.i5)(e,Mr),Nr=e=>{const t=(0,c.Fs)(e,r.u2(h.of(Number.POSITIVE_INFINITY)),r.Qq);return new Ir(t)},Pr=e=>(0,c.Fs)(r.Y6(e.count-1,t=>e.start*Math.pow(e.factor,t)),h.Iv,Nr);var Or=n(17442);n(95516);const Rr=(Mt.KE,(0,c.XY)(2,(e,t)=>a.uPR(_t,n=>a.OH5(()=>{if(n.has(e)){const r=n.get(e);r.state.completed||(r.state.completed=!0,a.q_p(r.result,t))}})))),Cr=Symbol.for("effect/Supervisor"),Br={_T:e=>e};class Fr{underlying;value0;[Cr]=Br;constructor(e,t){this.underlying=e,this.value0=t}get value(){return this.value0}onStart(e,t,n,r){this.underlying.onStart(e,t,n,r)}onEnd(e,t){this.underlying.onEnd(e,t)}onEffect(e,t){this.underlying.onEffect(e,t)}onSuspend(e){this.underlying.onSuspend(e)}onResume(e){this.underlying.onResume(e)}map(e){return new Fr(this,(0,c.Fs)(this.value,a.TjK(e)))}zip(e){return new Lr(this,e)}}class Lr{left;right;_tag="Zip";[Cr]=Br;constructor(e,t){this.left=e,this.right=t}get value(){return a.yU6(this.left.value,this.right.value)}onStart(e,t,n,r){this.left.onStart(e,t,n,r),this.right.onStart(e,t,n,r)}onEnd(e,t){this.left.onEnd(e,t),this.right.onEnd(e,t)}onEffect(e,t){this.left.onEffect(e,t),this.right.onEffect(e,t)}onSuspend(e){this.left.onSuspend(e),this.right.onSuspend(e)}onResume(e){this.left.onResume(e),this.right.onResume(e)}map(e){return new Fr(this,(0,c.Fs)(this.value,a.TjK(e)))}zip(e){return new Lr(this,e)}}const jr=e=>(0,I.i5)(e,Cr)&&(0,I.$J)(e,"Zip");class Dr{effect;[Cr]=Br;constructor(e){this.effect=e}get value(){return this.effect}onStart(e,t,n,r){}onEnd(e,t){}onEffect(e,t){}onSuspend(e){}onResume(e){}map(e){return new Fr(this,(0,c.Fs)(this.value,a.TjK(e)))}zip(e){return new Lr(this,e)}onRun(e,t){return e()}}const Ur=(0,z.V)("effect/Supervisor/none",()=>{return e=a.rIH,new Dr(e);var e});var zr=n(69995),$r=n(7403),Vr=n(18193),Kr=n(49342),Yr=n(72084),qr=n(5673),Hr=n(48905);zr.cL,$r.PL,Vr.r_,Kr.ys,Yr.os,qr.dh,Hr.zo;const Gr=zr.L8,Wr=(zr.cA,zr.iv,zr.J2,zr.zI,zr.Gg,zr.QZ,zr.pd,zr.yo,zr.Q$,zr.yU,"Empty"),Xr="AddSupervisor",Jr="RemoveSupervisor",Zr="AndThen",Qr={_tag:Wr},ei=(e,t)=>({_tag:Zr,first:e,second:t}),ti=(e,t)=>T.aI(e,t)?Ur:jr(e)?ti(e.left,t).zip(ti(e.right,t)):e,ni=e=>T.aI(e,Ur)?V.Ie():jr(e)?(0,c.Fs)(ni(e.left),V.KC(ni(e.right))):V.L8(e),ri=Gr({empty:Qr,patch:(e,t)=>((e,t)=>{let n=e,r=t;for(;h.J_(r);){const e=h.v4(r);switch(e._tag){case Wr:r=h.Rx(r);break;case Xr:n=n.zip(e.supervisor),r=h.Rx(r);break;case Jr:n=ti(n,e.supervisor),r=h.Rx(r);break;case Zr:r=h.Hs(e.first)(h.Hs(e.second)(h.Rx(r)))}}return n})(t,h.of(e)),combine:ei,diff:(e,t)=>{if(T.aI(e,t))return Qr;const n=ni(e),r=ni(t),i=(0,c.Fs)(r,V.iv(n),V.TS(Qr,(e,t)=>ei(e,{_tag:Xr,supervisor:t}))),a=(0,c.Fs)(n,V.iv(r),V.TS(Qr,(e,t)=>ei(e,{_tag:Jr,supervisor:t})));return ei(i,a)}});var ii=n(30114),ai=n(60131);const si=wr("effect_fiber_started",{incremental:!0}),oi=wr("effect_fiber_active"),ui=wr("effect_fiber_successes",{incremental:!0}),ci=wr("effect_fiber_failures",{incremental:!0}),li=Er(Sr("effect_fiber_lifetimes",Pr({start:.5,factor:2,count:35})),"time_unit","milliseconds"),fi="Continue",di="Yield",hi={_E:e=>e,_A:e=>e},pi=e=>{throw new Error(`BUG: FiberRuntime - ${K.ZK(e)} - please report an issue at https://github.com/Effect-TS/effect/issues`)},mi=Symbol.for("effect/internal/fiberRuntime/YieldedOp"),yi=(0,z.V)("effect/internal/fiberRuntime/yieldedOpChannel",()=>({currentOp:null})),bi={[Or.Gj]:(e,t,n)=>(0,G.sn)(()=>t.effect_instruction_i1(n)),OnStep:(e,t,n)=>a.xtk(a.xtk(n)),[Or.du]:(e,t,n)=>(0,G.sn)(()=>t.effect_instruction_i2(n)),[Or.Ni]:(e,t,n)=>(e.patchRuntimeFlags(e.currentRuntimeFlags,t.patch),Ut.In(e.currentRuntimeFlags)&&e.isInterrupted()?a.cbD(e.getInterruptedCause()):a.xtk(n)),[Or.mM]:(e,t,n)=>((0,G.sn)(()=>t.effect_instruction_i2(n)),(0,G.sn)(()=>t.effect_instruction_i0())?(e.pushStack(t),(0,G.sn)(()=>t.effect_instruction_i1())):a.rIH),[Or.xS]:(e,t,n)=>{for(;;){const r=(0,G.sn)(()=>t.effect_instruction_i0.next(n));if(r.done)return a.xtk(r.value);const i=(0,G.ku)(r.value);if(!a.h0c(i))return e.pushStack(t),i;if("Failure"===i._tag)return i;n=i.value}}},gi={[It]:(e,t,n,r)=>(e.processNewInterruptSignal(r.cause),Ut.In(t)?a.cbD(r.cause):n),[Nt]:(e,t,n,r)=>{throw new Error("It is illegal to have multiple concurrent run loops in a single fiber")},[At]:(e,t,n,r)=>(r.onFiber(e,U(t)),n),[Pt]:(e,t,n,r)=>a.qIB(a.m9E(),()=>n)},vi=ai.M();class wi extends p.Xs{[zt]=$t;[Vt]=hi;_fiberRefs;_fiberId;_queue=new Array;_children=null;_observers=new Array;_running=!1;_stack=[];_asyncInterruptor=null;_asyncBlockingOn=null;_exitValue=null;_steps=[];_isYielding=!1;currentRuntimeFlags;currentOpCount=0;currentSupervisor;currentScheduler;currentTracer;currentSpan;currentContext;currentDefaultServices;constructor(e,t,n){if(super(),this.currentRuntimeFlags=n,this._fiberId=e,this._fiberRefs=t,Ut.qg(n)){const e=this.getFiberRef(a.b1P);si.unsafeUpdate(1,e),oi.unsafeUpdate(1,e)}this.refreshRefCache()}commit(){return Kt(this)}id(){return this._fiberId}resume(e){this.tell(Ct(e))}get status(){return this.ask((e,t)=>t)}get runtimeFlags(){return this.ask((e,t)=>(e=>e._tag===P)(t)?e.currentRuntimeFlags:t.runtimeFlags)}scope(){return new jt((e=this).id(),e);var e}get children(){return this.ask(e=>Array.from(e.getChildren()))}getChildren(){return null===this._children&&(this._children=new Set),this._children}getInterruptedCause(){return this.getFiberRef(a.LGt)}fiberRefs(){return this.ask(e=>e.getFiberRefs())}ask(e){return a.DYE(()=>{const t=a.MIt(this._fiberId);return this.tell(Rt((n,r)=>{a.q_p(t,a.OH5(()=>e(n,r)))})),a.gn0(t)})}tell(e){this._queue.push(e),this._running||(this._running=!0,this.drainQueueLaterOnExecutor())}get await(){return a.bIC(e=>{const t=t=>e(a.PyW(t));return this.tell(Rt((e,n)=>{null!==e._exitValue?t(this._exitValue):e.addObserver(t)})),a.OH5(()=>this.tell(Rt((e,n)=>{e.removeObserver(t)})))},this.id())}get inheritAll(){return a.$we((e,t)=>{const n=e.id(),r=e.getFiberRefs(),i=t.runtimeFlags,s=this.getFiberRefs(),o=qt.rl(r,n,s);e.setFiberRefs(o);const u=e.getFiberRef($i),l=(0,c.Fs)(Ut.Ui(i,u),He.HN(Ut._n),He.HN(Ut.rS));return a.$QS(l)})}get poll(){return a.OH5(()=>qe.k$(this._exitValue))}unsafePoll(){return this._exitValue}interruptAsFork(e){return a.OH5(()=>this.tell(Ot(vt.G(e))))}unsafeInterruptAsFork(e){this.tell(Ot(vt.G(e)))}addObserver(e){null!==this._exitValue?e(this._exitValue):this._observers.push(e)}removeObserver(e){this._observers=this._observers.filter(t=>t!==e)}getFiberRefs(){return this.setFiberRef($i,this.currentRuntimeFlags),this._fiberRefs}unsafeDeleteFiberRef(e){this._fiberRefs=qt.Rt(this._fiberRefs,e)}getFiberRef(e){return this._fiberRefs.locals.has(e)?this._fiberRefs.locals.get(e)[0][1]:e.initial}setFiberRef(e,t){this._fiberRefs=qt.aI(this._fiberRefs,{fiberId:this._fiberId,fiberRef:e,value:t}),this.refreshRefCache()}refreshRefCache(){this.currentDefaultServices=this.getFiberRef(f.qJ),this.currentTracer=this.currentDefaultServices.unsafeMap.get(ii.Ez.key),this.currentSupervisor=this.getFiberRef(Vi),this.currentScheduler=this.getFiberRef(Ze),this.currentContext=this.getFiberRef(a.Fi1),this.currentSpan=this.currentContext.unsafeMap.get(ii.Te.key)}setFiberRefs(e){this._fiberRefs=e,this.refreshRefCache()}addChild(e){this.getChildren().add(e)}removeChild(e){this.getChildren().delete(e)}transferChildren(e){const t=this._children;if(this._children=null,null!==t&&t.size>0)for(const n of t)null===n._exitValue&&e.add(this.currentRuntimeFlags,n)}drainQueueOnCurrentThread(){let e=!0;for(;e;){let t=fi;const n=globalThis[Yt];globalThis[Yt]=this;try{for(;t===fi;)t=0===this._queue.length?"Done":this.evaluateMessageWhileSuspended(this._queue.splice(0,1)[0])}finally{this._running=!1,globalThis[Yt]=n}this._queue.length>0&&!this._running?(this._running=!0,t===di?(this.drainQueueLaterOnExecutor(),e=!1):e=!0):e=!1}}drainQueueLaterOnExecutor(){this.currentScheduler.scheduleTask(this.run,this.getFiberRef(a.QPU))}drainQueueWhileRunning(e,t){let n=t;for(;this._queue.length>0;){const t=this._queue.splice(0,1)[0];n=gi[t._tag](this,e,n,t)}return n}isInterrupted(){return!vt.Im(this.getFiberRef(a.LGt))}addInterruptedCause(e){const t=this.getFiberRef(a.LGt);this.setFiberRef(a.LGt,vt.il(t,e))}processNewInterruptSignal(e){this.addInterruptedCause(e),this.sendInterruptSignalToAllChildren()}sendInterruptSignalToAllChildren(){if(null===this._children||0===this._children.size)return!1;let e=!1;for(const t of this._children)t.tell(Ot(vt.G(this.id()))),e=!0;return e}interruptAllChildren(){if(this.sendInterruptSignalToAllChildren()){const e=this._children.values();this._children=null;let t=!1;const n=()=>{const n=e.next();return n.done?a.OH5(()=>{t=!0}):a.NLW(n.value.await)};return a.iMI({while:()=>!t,body:n,step:()=>{}})}return null}reportExitValue(e){if(Ut.qg(this.currentRuntimeFlags)){const t=this.getFiberRef(a.b1P),n=this.id().startTimeMillis,r=Date.now();switch(li.unsafeUpdate(r-n,t),oi.unsafeUpdate(-1,t),e._tag){case Or._l:ui.unsafeUpdate(1,t);break;case Or.N9:ci.unsafeUpdate(1,t)}}if("Failure"===e._tag){const t=this.getFiberRef(a.bRS);vt.t9(e.cause)||"Some"!==t._tag||this.log("Fiber terminated with an unhandled error",e.cause,t)}}setExitValue(e){this._exitValue=e,this.reportExitValue(e);for(let t=this._observers.length-1;t>=0;t--)this._observers[t](e);this._observers=[]}getLoggers(){return this.getFiberRef(ki)}log(e,t,n){const r=qe.Ru(n)?n.value:this.getFiberRef(a.w6U),i=this.getFiberRef(_i);if(Y.MM(i,r))return;const s=this.getFiberRef(a.krO),o=this.getFiberRef(a.Umi),u=this.getLoggers(),c=this.getFiberRefs();if(V.Ej(u)>0){const n=l.Jt(this.getFiberRef(f.qJ),wt.hV),i=new Date(n.unsafeCurrentTimeMillis());K.RJ(c,()=>{for(const n of u)n.log({fiberId:this.id(),logLevel:r,message:e,cause:t,context:c,spans:s,annotations:o,date:i})})}}evaluateMessageWhileSuspended(e){switch(e._tag){case Pt:return di;case It:return this.processNewInterruptSignal(e.cause),null!==this._asyncInterruptor&&(this._asyncInterruptor(a.cbD(e.cause)),this._asyncInterruptor=null),fi;case Nt:return this._asyncInterruptor=null,this._asyncBlockingOn=null,this.evaluateEffect(e.effect),fi;case At:return e.onFiber(this,null!==this._exitValue?D:(t=this.currentRuntimeFlags,n=this._asyncBlockingOn,new L(t,n))),fi;default:return pi(e)}var t,n}evaluateEffect(e){this.currentSupervisor.onResume(this);try{let t=Ut.In(this.currentRuntimeFlags)&&this.isInterrupted()?a.cbD(this.getInterruptedCause()):e;for(;null!==t;){const e=t,n=this.runLoop(e);if(n===mi){const e=yi.currentOp;yi.currentOp=null,e._op===Or.u4?Ut.Ps(this.currentRuntimeFlags)?(this.tell(Bt()),this.tell(Ct(a.x5l)),t=null):t=a.x5l:e._op===Or.ZO&&(t=null)}else{this.currentRuntimeFlags=(0,c.Fs)(this.currentRuntimeFlags,Ut.sS(Ut.rS));const e=this.interruptAllChildren();null!==e?t=a.qIB(e,()=>n):(0===this._queue.length?this.setExitValue(n):this.tell(Ct(n)),t=null)}}}finally{this.currentSupervisor.onSuspend(this)}}start(e){if(this._running)this.tell(Ct(e));else{this._running=!0;const t=globalThis[Yt];globalThis[Yt]=this;try{this.evaluateEffect(e)}finally{this._running=!1,globalThis[Yt]=t,this._queue.length>0&&this.drainQueueLaterOnExecutor()}}}startFork(e){this.tell(Ct(e))}patchRuntimeFlags(e,t){const n=Ut.F6(e,t);return globalThis[Yt]=this,this.currentRuntimeFlags=n,n}initiateAsync(e,t){let n=!1;const r=e=>{n||(n=!0,this.tell(Ct(e)))};Ut.In(e)&&(this._asyncInterruptor=r);try{t(r)}catch(e){r(a.ATB(vt.F_(e)))}}pushStack(e){this._stack.push(e),"OnStep"===e._op&&this._steps.push({refs:this.getFiberRefs(),flags:this.currentRuntimeFlags})}popStack(){const e=this._stack.pop();if(e)return"OnStep"===e._op&&this._steps.pop(),e}getNextSuccessCont(){let e=this.popStack();for(;e;){if(e._op!==Or.JJ)return e;e=this.popStack()}}getNextFailCont(){let e=this.popStack();for(;e;){if(e._op!==Or.Gj&&e._op!==Or.mM&&e._op!==Or.xS)return e;e=this.popStack()}}[Or.tA](e){return a.OH5(()=>l.$v(this.currentContext,e))}Left(e){return a.fJG(e.left)}None(e){return a.fJG(new a.kJg)}Right(e){return a.xtk(e.right)}Some(e){return a.xtk(e.value)}Micro(e){return a.t04(t=>{let n=t;const r=((e,t)=>{const n=new se(De.context(t?.scheduler??new Be));if(n.evaluate(e),t?.signal)if(t.signal.aborted)n.unsafeInterrupt();else{const e=()=>n.unsafeInterrupt();t.signal.addEventListener("abort",e,{once:!0}),n.addObserver(()=>t.signal.removeEventListener("abort",e))}return n})(Le(e,this.currentContext));return r.addObserver(e=>{if("Success"===e._tag)return n(a.xtk(e.value));switch(e.cause._tag){case"Interrupt":return n(a.cbD(vt.G(_.dv)));case"Fail":return n(a.fJG(e.cause.error));case"Die":return n(a.F_Q(e.cause.defect))}}),a.t04(e=>{n=t=>{e(a.rIH)},r.unsafeInterrupt()})})}[Or.EF](e){const t=(0,G.sn)(()=>e.effect_instruction_i0()),n=this.getNextSuccessCont();return void 0!==n?(n._op in bi||pi(n),bi[n._op](this,n,t)):(yi.currentOp=a.xtk(t),mi)}[Or._l](e){const t=e,n=this.getNextSuccessCont();return void 0!==n?(n._op in bi||pi(n),bi[n._op](this,n,t.effect_instruction_i0)):(yi.currentOp=t,mi)}[Or.N9](e){const t=e.effect_instruction_i0,n=this.getNextFailCont();if(void 0===n)return yi.currentOp=a.cbD(t),mi;switch(n._op){case Or.JJ:case Or.du:return Ut.In(this.currentRuntimeFlags)&&this.isInterrupted()?a.cbD(vt.el(t)):(0,G.sn)(()=>n.effect_instruction_i1(t));case"OnStep":return Ut.In(this.currentRuntimeFlags)&&this.isInterrupted()?a.cbD(vt.el(t)):a.xtk(a.cbD(t));case Or.Ni:return this.patchRuntimeFlags(this.currentRuntimeFlags,n.patch),Ut.In(this.currentRuntimeFlags)&&this.isInterrupted()?a.cbD(vt.il(t,this.getInterruptedCause())):a.cbD(t);default:pi(n)}}[Or.mm](e){return(0,G.sn)(()=>e.effect_instruction_i0(this,U(this.currentRuntimeFlags)))}Blocked(e){const t=this.getFiberRefs(),n=this.currentRuntimeFlags;if(this._steps.length>0){const r=[],i=this._steps[this._steps.length-1];let s=this.popStack();for(;s&&"OnStep"!==s._op;)r.push(s),s=this.popStack();this.setFiberRefs(i.refs),this.currentRuntimeFlags=i.flags;const o=k(i.refs,t),u=Ut.Ui(i.flags,n);return a.xtk(a.Z5i(e.effect_instruction_i0,a.$we(t=>{for(;r.length>0;)t.pushStack(r.pop());return t.setFiberRefs(x(t.id(),t.getFiberRefs())(o)),t.currentRuntimeFlags=Ut.F6(u)(t.currentRuntimeFlags),e.effect_instruction_i1})))}return a.FcF(t=>a.qIB(Ai(a.UFt(e.effect_instruction_i0)),()=>t(e.effect_instruction_i1)))}RunBlocked(e){return(e=>a.QZV((e=>{let t=Qe.of(e),n=Qe.Ie();for(;;){const[e,r]=Qe.TS(t,[ot(),Qe.Ie()],([e,t],n)=>{const[r,i]=nt(n);return[ct(e,r),Qe.u2(t,i)]});if(n=rt(n,e),Qe.gD(r))return Qe.BE(n);t=r}throw new Error("BUG: BlockedRequests.flatten - please report an issue at https://github.com/Effect-TS/effect/issues")})(e),e=>Mi((e=>Array.from(e.map))(e),([e,t])=>{const n=new Map,r=[];for(const e of t){r.push(h.h3(e));for(const t of e)n.set(t.request,t)}const i=r.flat();return a.woH(Ki(e.runAll(r),i,()=>i.forEach(e=>{e.listeners.interrupted=!0})),_t,n)},!1,!1)))(e.effect_instruction_i0)}[Or.NM](e){const t=e.effect_instruction_i0,n=this.currentRuntimeFlags,r=Ut.F6(n,t);if(Ut.In(r)&&this.isInterrupted())return a.cbD(this.getInterruptedCause());if(this.patchRuntimeFlags(this.currentRuntimeFlags,t),e.effect_instruction_i1){const t=Ut.Ui(r,n);return this.pushStack(new a.yPL(t,e)),(0,G.sn)(()=>e.effect_instruction_i1(n))}return a.x5l}[Or.Gj](e){return this.pushStack(e),e.effect_instruction_i0}OnStep(e){return this.pushStack(e),e.effect_instruction_i0}[Or.JJ](e){return this.pushStack(e),e.effect_instruction_i0}[Or.du](e){return this.pushStack(e),e.effect_instruction_i0}[Or.ZO](e){return this._asyncBlockingOn=e.effect_instruction_i1,this.initiateAsync(this.currentRuntimeFlags,e.effect_instruction_i0),yi.currentOp=e,mi}[Or.u4](e){return this._isYielding=!1,yi.currentOp=e,mi}[Or.mM](e){const t=e.effect_instruction_i0,n=e.effect_instruction_i1;return t()?(this.pushStack(e),n()):a.x5l}[Or.xS](e){return bi[Or.xS](this,e,void 0)}[Or.kK](e){return(0,G.sn)(()=>e.commit())}runLoop(e){let t=e;for(this.currentOpCount=0;;){if(0!==(this.currentRuntimeFlags&Ut.zb)&&this.currentSupervisor.onEffect(this,t),this._queue.length>0&&(t=this.drainQueueWhileRunning(this.currentRuntimeFlags,t)),!this._isYielding){this.currentOpCount+=1;const e=this.currentScheduler.shouldYield(this);if(!1!==e){this._isYielding=!0,this.currentOpCount=0;const n=t;t=a.qIB(a.m9E({priority:e}),()=>n)}}try{if(t=this.currentTracer.context(()=>{if(vi!==t[a.$n1]._V){const e=this.getFiberRef(a.G2Y);if("Some"===e._tag){const n=t[a.$n1]._V;this.log(`Executing an Effect versioned ${n} with a Runtime of version ${ai.M()}, you may want to dedupe the effect dependencies, you can use the language service plugin to detect this at compile time: https://github.com/Effect-TS/language-service`,vt.Ie,e)}}return this[t._op](t)},this),t===mi){const e=yi.currentOp;return e._op===Or.u4||e._op===Or.ZO?mi:(yi.currentOp=null,e._op===Or._l||e._op===Or.N9?e:a.cbD(vt.F_(e)))}}catch(e){t=t!==mi&&!I.i5(t,"_op")||!(t._op in this)?a.GSS(`Not a valid effect: ${K.ZK(t)}`):a.OTT(e)?a.cbD(vt.il(vt.F_(e),vt.G(_.dv))):a.F_Q(e)}}}run=()=>{this.drainQueueOnCurrentThread()}}const _i=(0,z.V)("effect/FiberRef/currentMinimumLogLevel",()=>a.QID(Y.Al("Info"))),Si=(0,z.V)(Symbol.for("effect/Logger/defaultLogger"),()=>(e=>Zt(t=>{const n=S.Fh(t.context,f.qJ);l.Jt(n,d.MG).unsafe.log(e.log(t))}))(tn)),Ei=(0,z.V)(Symbol.for("effect/Logger/tracerLogger"),()=>Zt(({annotations:e,cause:t,context:n,fiberId:r,logLevel:i,message:s})=>{const o=l.om(qt.Fh(n,a.Fi1),ii.Te);if("None"===o._tag||"ExternalSpan"===o.value._tag)return;const u=l.$v(qt.Fh(n,f.qJ),wt.hV),c={};for(const[t,n]of e)c[t]=n;c["effect.fiberId"]=_.CB(r),c["effect.logLevel"]=i.label,null!==t&&"Empty"!==t._tag&&(c["effect.cause"]=vt.j9(t,{renderErrorCause:!0})),o.value.event(K.ZK(Array.isArray(s)&&1===s.length?s[0]:s),u.unsafeCurrentTimeNanos(),c)})),ki=(0,z.V)(Symbol.for("effect/FiberRef/currentLoggers"),()=>a._Pd(V.L8(Si,Ei))),xi=(0,c.XY)(e=>I.xZ(e[0]),(e,t,n)=>a.$we(r=>{const i=!0===n?.batching||"inherit"===n?.batching&&r.getFiberRef(a.pX6);return n?.discard?St(n.concurrency,()=>Bi(g,n?.concurrentFinalizers)(n=>i?Mi(e,(e,r)=>n(t(e,r)),!0,!1,1):a.QZV(e,(e,r)=>n(t(e,r)))),()=>Bi(v,n?.concurrentFinalizers)(n=>Mi(e,(e,r)=>n(t(e,r)),i,!1)),r=>Bi(w(r),n?.concurrentFinalizers)(n=>Mi(e,(e,r)=>n(t(e,r)),i,!1,r))):St(n?.concurrency,()=>Bi(g,n?.concurrentFinalizers)(n=>i?Ii(e,1,(e,r)=>n(t(e,r)),!0):a.CFK(e,(e,r)=>n(t(e,r)))),()=>Bi(v,n?.concurrentFinalizers)(n=>Ti(e,(e,r)=>n(t(e,r)),i)),r=>Bi(w(r),n?.concurrentFinalizers)(n=>Ii(e,r,(e,r)=>n(t(e,r)),i)))})),Ti=(e,t,n)=>a.DYE(()=>{const i=r.Ts(e),s=new Array(i.length);return a.aNH(Mi(i,(e,n)=>a.qIB(t(e,n),e=>a.OH5(()=>s[n]=e)),n,!1),a.PyW(s))}),Mi=(e,t,n,r,i)=>a.FcF(s=>a.sK9(o=>a.$we(u=>{let c=Array.from(e).reverse(),l=c.length;if(0===l)return a.rIH;let f=0,d=!1;const h=i?Math.min(c.length,i):c.length,p=new Set,m=new Array,y=new Array,b=new Array,g=new Array,v=()=>{const e=m.filter(({exit:e})=>"Failure"===e._tag).sort((e,t)=>e.indexe);return 0===e.length&&e.push(a.x5l),e},w=(e,t=!1)=>{const n=a.rfi(o(e)),r=Ni(n,u,u.currentRuntimeFlags,Dt);return u.currentScheduler.scheduleTask(()=>{t&&r.unsafeInterruptAsFork(u.id()),r.resume(n)},0),r},_=()=>{r||(l-=c.length,c=[]),d=!0,p.forEach(e=>{e.currentScheduler.scheduleTask(()=>{e.unsafeInterruptAsFork(u.id())},0)})},S=n?a.PMw:a.NS5,E=w(a.bIC(e=>{const r=(e,t)=>{"Blocked"===e._op?g.push(e):(m.push({index:t,exit:e}),"Failure"!==e._op||d||_())},o=()=>{if(c.length>0){const h=c.pop();let _=f++;const E=()=>{const e=c.pop();return _=f++,a.qIB(a.m9E(),()=>a.qIB(S(s(t(e,_))),k))},k=e=>c.length>0&&(r(e,_),c.length>0)?E():a.PyW(e),x=a.qIB(S(s(t(h,_))),k),T=w(x);y.push(T),p.add(T),d&&T.currentScheduler.scheduleTask(()=>{T.unsafeInterruptAsFork(u.id())},0),T.addObserver(t=>{let s;if(s="Failure"===t._op?t:t.effect_instruction_i0,b.push(T),p.delete(T),r(s,_),m.length===l)e(a.PyW(qe.WL(a.Q9S(v(),{parallel:!0}),()=>a.x5l)));else if(g.length+m.length===l){const t=v(),r=g.map(e=>e.effect_instruction_i0).reduce(et);e(a.PyW(a.Z5i(r,Mi([qe.WL(a.Q9S(t,{parallel:!0}),()=>a.x5l),...g.map(e=>e.effect_instruction_i1)],e=>e,n,!0,i))))}else o()})}};for(let e=0;e{_();const t=g.length+1,n=Math.min("number"==typeof i?i:g.length,g.length),r=Array.from(g);return a.bIC(i=>{const s=[];let o=0,u=0;const c=(n,u)=>c=>{s[n]=c,o++,o===t&&i(a.xtk(a.cbD(e))),r.length>0&&u&&l()},l=()=>{w(r.pop(),!0).addObserver(c(u,!0)),u++};E.addObserver(c(u,!1)),u++;for(let e=0;ea.CFK(b,e=>e.inheritAll)})))}))),Ii=(e,t,n,i)=>a.DYE(()=>{const s=r.Ts(e),o=new Array(s.length);return a.aNH(Mi(s,(e,t)=>a.TjK(n(e,t),e=>o[t]=e),i,!1,t),a.PyW(o))}),Ai=e=>Oi(e,Dt),Ni=(e,t,n,r=null)=>Pi(e,t,n,r),Pi=(e,t,n,r=null)=>{const i=_.$N(),s=t.getFiberRefs(),o=qt.BG(s,i),u=new wi(i,o,n),l=qt.Fh(o,a.Fi1),f=u.currentSupervisor;return f.onStart(l,e,qe.zN(t),u),u.addObserver(e=>f.onEnd(e,u)),(null!==r?r:(0,c.Fs)(t.getFiberRef(a.CdZ),qe.WL(()=>t.scope()))).add(n,u),u},Oi=(e,t)=>a.$we((n,r)=>a.PyW(((e,t,n,r=null)=>{const i=Pi(e,t,n,r);return i.resume(e),i})(e,n,r.runtimeFlags,t))),Ri=e=>a.d_m(t=>qe.YW(l.om(t,Li),{onNone:()=>e,onSome:t=>{switch(t.strategy._tag){case"Parallel":return e;case"Sequential":case"ParallelN":return a.qIB(a.Z$R(t,v),t=>Ui(e,t))}}})),Ci=e=>t=>a.d_m(n=>qe.YW(l.om(n,Li),{onNone:()=>t,onSome:n=>"ParallelN"===n.strategy._tag&&n.strategy.parallelism===e?t:a.qIB(a.Z$R(n,w(e)),e=>Ui(t,e))})),Bi=(e,t)=>n=>a.d_m(r=>qe.YW(l.om(r,Li),{onNone:()=>n(c.D_),onSome:r=>{if(!0!==t)return n(c.D_);{const t="Parallel"===e._tag?Ri:"Sequential"===e._tag?Fi:Ci(e.parallelism);switch(r.strategy._tag){case"Parallel":return t(n(Ri));case"Sequential":return t(n(Fi));case"ParallelN":return t(n(Ci(r.strategy.parallelism)))}}}})),Fi=e=>a.d_m(t=>qe.YW(l.om(t,Li),{onNone:()=>e,onSome:t=>{switch(t.strategy._tag){case"Sequential":return e;case"Parallel":case"ParallelN":return a.qIB(a.Z$R(t,g),t=>Ui(e,t))}}})),Li=l.Io("effect/Scope"),ji={[a.kWD]:a.kWD,[a.APi]:a.APi,pipe(){return(0,H.tT)(this,arguments)},fork(e){return a.OH5(()=>{const t=Di(e);if("Closed"===this.state._tag)return t.state=this.state,t;const n={};return this.state.finalizers.set(n,e=>t.close(e)),i=e=>a.OH5(()=>{"Open"===this.state._tag&&this.state.finalizers.delete(n)}),"Open"===(r=t).state._tag&&r.state.finalizers.set({},i),t;var r,i})},close(e){return a.DYE(()=>{if("Closed"===this.state._tag)return a.rIH;const t=Array.from(this.state.finalizers.values()).reverse();return this.state={_tag:"Closed",exit:e},0===t.length?a.rIH:(e=>e._tag===m)(this.strategy)?(0,c.Fs)(a.CFK(t,t=>a.NS5(t(e))),a.qIB(e=>(0,c.Fs)(a.Q9S(e),qe.Tj(a.Hox),qe.WL(()=>a.x5l)))):(e=>e._tag===y)(this.strategy)?(0,c.Fs)(Ti(t,t=>a.NS5(t(e)),!1),a.qIB(e=>(0,c.Fs)(a.Q9S(e,{parallel:!0}),qe.Tj(a.Hox),qe.WL(()=>a.x5l)))):(0,c.Fs)(Ii(t,this.strategy.parallelism,t=>a.NS5(t(e)),!1),a.qIB(e=>(0,c.Fs)(a.Q9S(e,{parallel:!0}),qe.Tj(a.Hox),qe.WL(()=>a.x5l))))})},addFinalizer(e){return a.DYE(()=>"Closed"===this.state._tag?e(this.state.exit):(this.state.finalizers.set({},e),a.rIH))}},Di=(e=b)=>{const t=Object.create(ji);return t.strategy=e,t.state={_tag:"Open",finalizers:new Map},t},Ui=(0,c.XY)(2,(e,t)=>a.kyh(e,l.h1(l.L8(Li,t)))),zi=e=>a.sH6(e,{differ:ri,fork:Qr}),$i=a.nlF(Ut.dv),Vi=zi(Ur),Ki=(e,t,n)=>a.g1G(r=>a.qIB(a.qIB(Ai(a.Inz(e)),e=>a.bIC(r=>{const i=t.map(e=>e.listeners.count),s=()=>{i.every(e=>0===e)&&t.every(e=>"Pending"===e.result.state.current._tag||!("Done"!==e.result.state.current._tag||!a.h0c(e.result.state.current.effect)||"Failure"!==e.result.state.current.effect._tag||!vt.fT(e.result.state.current.effect.cause)))&&(o.forEach(e=>e()),n?.(),r(a.OLv(e)))};e.addObserver(e=>{o.forEach(e=>e()),r(e)});const o=t.map((e,t)=>{const n=e=>{i[t]=e,s()};return e.listeners.addObserver(n),()=>e.listeners.removeObserver(n)});return s(),a.OH5(()=>{o.forEach(e=>e())})})),()=>a.DYE(()=>{const e=t.flatMap(e=>e.state.completed?[]:[e]);return a.QZV(e,e=>Rr(e.request,a._sz(r)))})));f.qJ,d.MG;var Yi=n(17353),qi=n(4014);p.Xs;T.HR,M.HR;p.Xs,qi.ll,Yi.ii,a.OLv,a._tB,a.kWD,a.APi,a.iLB,a.Uio;const Hi=a.vDJ,Gi=a.Z$R,Wi=e=>function(){if(1===arguments.length){const t=arguments[0];return(n,...r)=>e(t,n,...r)}return e.apply(this,arguments)},Xi=Wi((e,t,n)=>{const r=_.$N(),i=[[a.Fi1,[[r,e.context]]]];n?.scheduler&&i.push([Ze,[[r,n.scheduler]]]);let s=S.vG(e.fiberRefs,{entries:i,forkAs:r});n?.updateRefs&&(s=n.updateRefs(s,r));const o=new wi(r,s,e.runtimeFlags);let u=t;n?.scope&&(u=a.qIB(Gi(n.scope,b),e=>a.aNH(a.iLB(e,a.g1G(e=>(0,T.aI)(e,o.id())?a.rIH:a._tB(o,e))),a.cfM(t,t=>Hi(e,t)))));const c=o.currentSupervisor;return c!==Ur&&(c.onStart(e.context,u,qe.dv(),o),o.addObserver(e=>c.onEnd(e,o))),Dt.add(e.runtimeFlags,o),!1===n?.immediate?o.resume(u):o.start(u),o}),Ji=Wi((e,t)=>{const n=ra(e)(t);if("Failure"===n._tag)throw na(n.effect_instruction_i0);return n.effect_instruction_i0});class Zi extends Error{fiber;_tag="AsyncFiberException";constructor(e){super(`Fiber #${e.id().id} cannot be resolved synchronously. This is caused by using runSync on an effect that performs async work`),this.fiber=e,this.name=this._tag,this.stack=this.message}}const Qi=Symbol.for("effect/Runtime/FiberFailure"),ea=Symbol.for("effect/Runtime/FiberFailure/Cause");class ta extends Error{[Qi];[ea];constructor(e){const t=vt.Yu(e)[0];super(t?.message||"An error has occurred"),this[Qi]=Qi,this[ea]=e,this.name=t?`(FiberFailure) ${t.name}`:"FiberFailure",t?.stack&&(this.stack=t.stack)}toJSON(){return{_id:"FiberFailure",cause:this[ea].toJSON()}}toString(){return"(FiberFailure) "+vt.j9(this[ea],{renderErrorCause:!0})}[K.FX](){return this.toString()}}const na=e=>{const t=Error.stackTraceLimit;Error.stackTraceLimit=0;const n=new ta(e);return Error.stackTraceLimit=t,n},ra=Wi((e,t)=>{const n=(e=>{const t=e;switch(t._op){case"Failure":case"Success":return t;case"Left":return a.Rkt(t.left);case"Right":return a.xtk(t.right);case"Some":return a.xtk(t.value);case"None":return a.Rkt(new a.kJg)}})(t);if(n)return n;const r=new Je,i=Xi(e)(t,{scheduler:r});r.flush();return i.unsafePoll()||a.V2G(a.FgE((e=>{const t=Error.stackTraceLimit;Error.stackTraceLimit=0;const n=new Zi(e);return Error.stackTraceLimit=t,n})(i),a.S_H(i)))});class ia{context;runtimeFlags;fiberRefs;constructor(e,t,n){this.context=e,this.runtimeFlags=t,this.fiberRefs=n}pipe(){return(0,H.tT)(this,arguments)}}const aa=e=>new ia(e.context,e.runtimeFlags,e.fiberRefs),sa=Ut.L8(Ut._n,Ut.Zd,Ut.sd),oa=aa({context:l.Ie(),runtimeFlags:sa,fiberRefs:S.Ie()}),ua=Xi(oa),ca=Ji(oa);n(65668),Bn.v_,Bn.v_,n(34520).FX,a.WW4,a.sDf,a.gn0,a.$1O,a.ZI2,a.AsN,a.Ao,a.jxG,a.FIO,a.un1,a.AR8,a.lN4,a.ZM1,a.bdM,a._fI,a.vwO,a.syF,a.BCV,a.MIt,a.q_p;Symbol.iterator,K.FX,Symbol.iterator,K.FX;M.HR,T.HR,a.$n1;const la=a.yw5,fa=(Et.Bj,Et.Oo,Et.Cm,Et.Hd,Et.QK,Et.v6,Et.Si,Et.x1,Et.i8,xi),da=(Et.d5,Et.TS,Et.KE,Et.XK,a.bIC,a.IeY,a.$we,a.fJG,a.gOk,a.ATB,a.pVV,a.F_Q,a.GSS,a.Kbz,a.JkU,a.ZmZ,Et.dv,Et.iv,a.PyW,Et.lw,Et.nG,a.DYE),ha=(a.OH5,a.rIH),pa=(a.m9E,Et.nb,a.h9N),ma=(a.uPo,Et.IK,a.XWm,a._Oy,Et.RJ,Et.Nu,Et.Ku,Et.lo,Et.c1,Et.u4,Et.Xe,Et.XP,Et.Zk,Et._S,Et.bS,Et.gZ,Et.xA,Et.$m,Et.Pb,Et.vV,a._5X,a.GaK,a.IPo,a.Inz,a.eMl,a.nAr,a.rfi,a.FcF,Et.VW,a.as,Et.Xx,Et.t2,a.NLW,a.UUz,Et.AA,a.TjK),ya=(Et.OM,a.UcN),ba=a.xm_,ga=(Et.aW,Et.h1,Et.ze,a.jGc,a.S5A,a.cfM,Et.yu,Et.U$,Et.Ek,a.ABT,a.g1G,a.sK9,a.KyM,a.FRe,a.jDN,Et.pm,Et.RK,f.V6,Et.cb,Et.yy,Et.ay,Et.yW,f.aP,f.gm,a._OA,Et.sx,a.d_m,a.kyh,Et.Pf,Et.c7,Et.A3,Et.p4,Et.KO,Et.XN,Et.ZF,Et.N,Et.gB,Et.bU,Et.Do,Et.oI,Et.Jr,Et.zM,Et.uK,a.gPK),va=(a.NS5,a._ig,a.tDT,Et.kr,Et.Nf,Et.Pm,Et.W$,a._z2,a.HyR,Et.NJ,Et.ix,Et.z7,a.iK2,Et.iz,Et.mf,a.qIB),wa=(a.hgn,a.Bqz,Et.Uy,a.Mim,Et.Bi,Et.nA,Et.sF,Et.TN,Et.Ly,Et.i4,Et.nl,Et.HW,Et.wn,a.iMI,Et.rQ,Et.EN,a.woH,a.q1t,Et.Bz,Et.Z,Et.En,Et.N6,Et.oJ,Et.YW,a.D$$,a.khu,a.tvg,Et.Rm,Et.om,Et.MD,Et.fH,Et.FF,Et.Og,Et.Zc,Et.f1,Et.sw,Et.rr,a.EYO,a.QgK,a.kS9,a.NWQ,Et.xS,Et.DM,Et.Dd,Et.yT,f.Gx,f.Ii,a.m$m,a.$QS,a.cay,Et.G6,Et.Mw,a.SLb,Et.Xz,ua),_a=ca;a.Z5i,a.UFt,a.PMw,a.mHP,Et.kJ,f.wT,f._o,a.nDN,a.MaT,Et.Mu,Et.ww,Et._3,Et.Wj,Et.Fu,Et.Wb,Et.A_,Et._B,Et.Z9,Et.gv,Et.fR,Et.RO,Et.hq,Et.k$,Et.SM,a.D9k;var Sa=n(23343),Ea=n(50168);class ka{path;actual;issue;_tag="Pointer";constructor(e,t,n){this.path=e,this.actual=t,this.issue=n}}class xa{actual;message;_tag="Unexpected";constructor(e,t){this.actual=e,this.message=t}}class Ta{ast;message;_tag="Missing";actual=void 0;constructor(e,t){this.ast=e,this.message=t}}class Ma{ast;actual;issues;output;_tag="Composite";constructor(e,t,n,r){this.ast=e,this.actual=t,this.issues=n,this.output=r}}class Ia{ast;actual;kind;issue;_tag="Refinement";constructor(e,t,n,r){this.ast=e,this.actual=t,this.kind=n,this.issue=r}}class Aa{ast;actual;kind;issue;_tag="Transformation";constructor(e,t,n,r){this.ast=e,this.actual=t,this.kind=n,this.issue=r}}class Na{ast;actual;message;_tag="Type";constructor(e,t,n){this.ast=e,this.actual=t,this.message=n}}class Pa{ast;actual;message;_tag="Forbidden";constructor(e,t,n){this.ast=e,this.actual=t,this.message=n}}const Oa=Symbol.for("effect/Schema/ParseErrorTypeId");class Ra extends(u("ParseError")){[Oa]=Oa;get message(){return this.toString()}toString(){return hs.formatIssueSync(this.issue)}toJSON(){return{_id:"ParseError",message:this.toString()}}[K.FX](){return this.toJSON()}}const Ca=e=>new Ra({issue:e}),Ba=kt.pG,Fa=kt.kb,La=kt.Sv,ja=kt.sV,Da=kt.Wc,Ua=(0,c.XY)(2,(e,t)=>Da(e)?kt.YW(e,{onLeft:kt.kb,onRight:t}):va(e,t)),za=(0,c.XY)(2,(e,t)=>Da(e)?kt.Tj(e,t):ma(e,t)),$a=(0,c.XY)(2,(e,t)=>Da(e)?kt.qE(e,t):ba(e,t)),Va=(0,c.XY)(2,(e,t)=>Da(e)?kt.Uc(e,{onLeft:t.onFailure,onRight:t.onSuccess}):ya(e,t)),Ka=(0,c.XY)(2,(e,t)=>Da(e)?kt.YW(e,{onLeft:t,onRight:kt.pG}):pa(e,t)),Ya=(e,t)=>void 0===t||I.Et(t)?e:void 0===e?t:{...e,...t},qa=(e,t,n)=>{const r=((e,t,n)=>{const r=es(e,t);return(e,t)=>r(e,Ya(n,t))})(e,t,n);return(e,t)=>kt.Gu(r(e,t),Ca)},Ha=(e,t,n)=>{const r=es(e,t);return(e,t)=>r(e,{...Ya(n,t),isEffectAllowed:!0})},Ga=(e,t)=>qa(e.ast,!0,t),Wa=(e,t)=>Ha(e.ast,!0,t),Xa=(e,t)=>Ha(e.ast,!1,t),Ja=(e,t)=>qa(Ea.p$(e.ast),!0,t),Za=(0,z.V)(Symbol.for("effect/ParseResult/decodeMemoMap"),()=>new WeakMap),Qa=(0,z.V)(Symbol.for("effect/ParseResult/encodeMemoMap"),()=>new WeakMap),es=(e,t)=>{const n=t?Za:Qa,r=n.get(e);if(r)return r;const i=rs(e,t),a=Ea.Re(e),s=qe.Ru(a)?(e,t)=>i(e,Ya(t,a.value)):i,o=Ea.zj(e),u=t&&qe.Ru(o)?(t,n)=>us(Ka(s(t,n),o.value),e,t,n):s;return n.set(e,u),u},ts=e=>qe.Y6(Ea.fq(e)),ns=e=>qe.Y6(Ea.iJ(e)),rs=(e,t)=>{switch(e._tag){case"Refinement":if(t){const t=es(e.from,!0);return(n,r)=>{r=r??Ea.Wy;const i="all"===r?.errors,a=Ua(Ka(t(n,r),t=>{const a=new Ia(e,n,"From",t);return i&&Ea.wA(e)&&_s(t)?qe.YW(e.filter(n,r,e),{onNone:()=>kt.kb(a),onSome:t=>kt.kb(new Ma(e,n,[a,new Ia(e,n,"Predicate",t)]))}):kt.kb(a)}),t=>qe.YW(e.filter(t,r,e),{onNone:()=>kt.pG(t),onSome:t=>kt.kb(new Ia(e,n,"Predicate",t))}));return us(a,e,n,r)}}{const t=es(Ea.p$(e),!0),n=es(os(e.from),!1);return(r,i)=>us(Ua(t(r,i),e=>n(e,i)),e,r,i)}case"Transformation":{const n=fs(e.transformation,t),r=t?es(e.from,!0):es(e.to,!1),i=t?es(e.to,!0):es(e.from,!1);return(a,s)=>us(Ua($a(r(a,s),n=>new Aa(e,a,t?"Encoded":"Type",n)),r=>Ua($a(n(r,s??Ea.Wy,e,a),t=>new Aa(e,a,"Transformation",t)),n=>$a(i(n,s),n=>new Aa(e,a,t?"Type":"Encoded",n)))),e,a,s)}case"Declaration":{const n=t?e.decodeUnknown(...e.typeParameters):e.encodeUnknown(...e.typeParameters);return(t,r)=>us(n(t,r??Ea.Wy,e),e,t,r)}case"Literal":return is(e,t=>t===e.literal);case"UniqueSymbol":return is(e,t=>t===e.symbol);case"UndefinedKeyword":return is(e,I.b0);case"NeverKeyword":return is(e,I.Pd);case"UnknownKeyword":case"AnyKeyword":case"VoidKeyword":return kt.pG;case"StringKeyword":return is(e,I.Kg);case"NumberKeyword":return is(e,I.Et);case"BooleanKeyword":return is(e,I.Lm);case"BigIntKeyword":return is(e,I.sI);case"SymbolKeyword":return is(e,I.Bm);case"ObjectKeyword":return is(e,I.Gv);case"Enums":return is(e,t=>e.enums.some(([e,n])=>n===t));case"TemplateLiteral":{const t=Ea.$j(e);return is(e,e=>I.Kg(e)&&t.test(e))}case"TupleType":{const n=e.elements.map(e=>es(e.type,t)),i=e.rest.map(e=>es(e.type,t));let a=e.elements.filter(e=>!e.isOptional);e.rest.length>0&&(a=a.concat(e.rest.slice(1)));const s=a.length,o=e.elements.length>0?e.elements.map((e,t)=>t).join(" | "):"never",u=ts(e),c=ns(e);return(t,l)=>{if(!r.cy(t))return kt.kb(new Na(e,t));const f="all"===l?.errors,d=[];let h=0;const p=[],m=t.length;for(let n=m;n<=s-1;n++){const r=new ka(n,t,new Ta(a[n-m]));if(!f)return kt.kb(new Ma(e,t,r,p));d.push([h++,r])}if(0===e.rest.length)for(let n=e.elements.length;n<=m-1;n++){const r=new ka(n,t,new xa(t[n],`is unexpected, expected: ${o}`));if(!f)return kt.kb(new Ma(e,t,r,p));d.push([h++,r])}let y,b=0;for(;bva(ga(r),r=>{if(kt.OC(r)){const o=new ka(i,t,r.left);return f?(a.push([n,o]),ha):kt.kb(new Ma(e,t,o,ls(s)))}return s.push([n,r.right]),ha}))}}if(r.iI(i)){const[n,...r]=i;for(;bva(ga(r),r=>{if(kt.OC(r)){const o=new ka(i,t,r.left);return f?(a.push([n,o]),ha):kt.kb(new Ma(e,t,o,ls(s)))}return s.push([n,r.right]),ha}))}}for(let n=0;nva(ga(i),i=>{if(kt.OC(i)){const o=new ka(r,t,i.left);return f?(a.push([n,o]),ha):kt.kb(new Ma(e,t,o,ls(s)))}return s.push([n,i.right]),ha}))}}}const g=({es:n,output:i})=>r.EI(n)?kt.kb(new Ma(e,t,ls(n),ls(i))):kt.pG(ls(i));if(y&&y.length>0){const e=y;return da(()=>{const t={es:r.C(d),output:r.C(p)};return va(fa(e,e=>e(t),{concurrency:u,batching:c,discard:!0}),()=>g(t))})}return g({output:p,es:d})}}case"TypeLiteral":{if(0===e.propertySignatures.length&&0===e.indexSignatures.length)return is(e,I.$y);const n=[],i={},a=[];for(const r of e.propertySignatures)n.push([es(r.type,t),r]),i[r.name]=null,a.push(r.name);const s=e.indexSignatures.map(e=>[es(e.parameter,t),es(e.type,t),e.parameter]),o=Ea.gP.make(e.indexSignatures.map(e=>e.parameter).concat(a.map(e=>I.Bm(e)?new Ea.w_(e):new Ea.uS(e)))),u=es(o,t),c=ts(e),l=ns(e);return(t,f)=>{if(!I.u4(t))return kt.kb(new Na(e,t));const d="all"===f?.errors,h=[];let p=0;const m="error"===f?.onExcessProperty,y={};let b,g;if(m||"preserve"===f?.onExcessProperty){b=Reflect.ownKeys(t);for(const n of b){const r=u(n,f);if(Da(r)&&kt.OC(r)){if(m){const r=new ka(n,t,new xa(t[n],`is unexpected, expected: ${String(o)}`));if(d){h.push([p++,r]);continue}return kt.kb(new Ma(e,t,r,y))}y[n]=t[n]}}}const v=!0===f?.exact;for(let r=0;rva(ga(o),o=>{if(kt.OC(o)){const c=new ka(r,t,s?o.left:new Ta(i));return d?(a.push([n,c]),ha):kt.kb(new Ma(e,t,c,u))}return u[r]=o.right,ha}))}}for(let n=0;nva(ga(r),r=>{if(kt.OC(r)){const n=new ka(s,t,r.left);return d?(o.push([a,n]),ha):kt.kb(new Ma(e,t,n,u))}return Object.prototype.hasOwnProperty.call(i,n)||(u[n]=r.right),ha}))}}}}const w=({es:n,output:i})=>{if(r.EI(n))return kt.kb(new Ma(e,t,ls(n),i));if("original"===f?.propertyOrder){const e=b||Reflect.ownKeys(t);for(const t of a)-1===e.indexOf(t)&&e.push(t);const n={};for(const t of e)Object.prototype.hasOwnProperty.call(i,t)&&(n[t]=i[t]);return kt.pG(n)}return kt.pG(i)};if(g&&g.length>0){const e=g;return da(()=>{const t={es:r.C(h),output:Object.assign({},y)};return va(fa(e,e=>e(t),{concurrency:c,batching:l,discard:!0}),()=>w(t))})}return w({es:h,output:y})}}case"Union":{const n=ss(e.types,t),i=Reflect.ownKeys(n.keys),a=i.length,s=e.types.length,o=new Map;for(let n=0;n{const f=[];let d,h=0,p=[];if(a>0)if(I._3(t))for(let e=0;e0&&(p=p.concat(n.otherwise));for(let e=0;eda(()=>"finalResult"in t?ha:va(ga(r),n=>(kt.FG(n)?t.finalResult=n:t.es.push([e,n.left]),ha))))}else{if(kt.FG(r))return r;f.push([h++,r.left])}}const m=n=>r.EI(n)?1===n.length&&"Type"===n[0][1]._tag?kt.kb(n[0][1]):kt.kb(new Ma(e,t,ls(n))):kt.kb(new Na(e,t));if(d&&d.length>0){const e=d;return da(()=>{const t={es:r.C(f)};return va(fa(e,e=>e(t),{concurrency:u,batching:c,discard:!0}),()=>"finalResult"in t?t.finalResult:m(t.es))})}return m(f)}}case"Suspend":{const n=Sa.Z4(()=>es(e.f(),t));return(e,t)=>n()(e,t)}}},is=(e,t)=>n=>t(n)?kt.pG(n):kt.kb(new Na(e,n)),as=(e,t)=>{switch(e._tag){case"Declaration":{const n=Ea.YI(e);if(qe.Ru(n))return as(n.value,t);break}case"TypeLiteral":{const n=[];for(let r=0;r{const n={},r=[],i=[];for(let a=0;a0){i.push(s);for(let e=0;eEa.C8(e)?os(e.from):e,us=(e,t,n,r)=>{if(!0===r?.isEffectAllowed)return e;if(Da(e))return e;const a=new Je,s=wa(e,{scheduler:a});a.flush();const o=s.unsafePoll();if(o){if(xt(o))return kt.pG(o.value);const e=o.cause;return i.rv(e)?kt.kb(e.error):kt.kb(new Pa(t,n,i.j9(e)))}return kt.kb(new Pa(t,n,"cannot be be resolved synchronously, this is caused by using runSync on an effect that performs async work"))},cs=([e],[t])=>e>t?1:ee[1])}const fs=(e,t)=>{switch(e._tag){case"FinalTransformation":return t?e.decode:e.encode;case"ComposeTransformation":return kt.pG;case"TypeLiteralTransformation":return n=>{let r=kt.pG(n);for(const n of e.propertySignatureTransformations){const[e,i]=t?[n.from,n.to]:[n.to,n.from],a=t?n.decode:n.encode,s=t=>{const n=a(Object.prototype.hasOwnProperty.call(t,e)?qe.zN(t[e]):qe.dv());return delete t[e],qe.Ru(n)&&(t[i]=n.value),t};r=za(r,s)}return r}}},ds=(e,t=[])=>({value:e,forest:t}),hs={formatIssue:e=>za(As(e),ps),formatIssueSync:e=>{const t=hs.formatIssue(e);return Da(t)?kt.n4(t):_a(t)},formatError:e=>hs.formatIssue(e.issue),formatErrorSync:e=>hs.formatIssueSync(e.issue)},ps=e=>e.value+ms("\n",e.forest),ms=(e,t)=>{let n="";const r=t.length;let i;for(let a=0;a1&&!s?"│ ":" "),i.forest)}return n},ys=e=>{switch(e){case"Encoded":return"Encoded side transformation failure";case"Transformation":return"Transformation process failure";case"Type":return"Type side transformation failure"}},bs=e=>{switch(e){case"From":return"From side refinement failure";case"Predicate":return"Predicate refinement failure"}},gs=e=>"ast"in e?qe.zN(e.ast):qe.dv(),vs=kt.pG(void 0),ws=e=>t=>t._tag===e,_s=ws("Composite"),Ss=ws("Refinement"),Es=ws("Transformation"),ks=e=>Ua((e=>gs(e).pipe(qe.qI(Ea.$O),qe.YW({onNone:()=>vs,onSome:t=>{const n=t(e);return I.Kg(n)?kt.pG({message:n,override:!1}):la(n)?ma(n,e=>({message:e,override:!1})):I.Kg(n.message)?kt.pG({message:n.message,override:n.override}):ma(n.message,e=>({message:e,override:n.override}))}})))(e),t=>void 0!==t?!t.override&&(_s(e)||Ss(e)&&"From"===e.kind||Es(e)&&"Transformation"!==e.kind)?Es(e)||Ss(e)?ks(e.issue):vs:kt.pG(t.message):vs),xs=e=>gs(e).pipe(qe.qI(Ea.M7),qe.v9(t=>t(e)),qe.Y6);const Ts=e=>za(ks(e),t=>t??xs(e)??function(e){return void 0!==e.message?e.message:`Expected ${Ea.C8(e.ast)?(t=e.ast,Ea.u$(t).pipe(qe.NW(()=>Ea.ad(t)),qe.NW(()=>Ea.Zv(t)),qe.NW(()=>Ea.xE(t)),qe.WL(()=>`{ ${t.from} | filter }`))):String(e.ast)}, actual ${K.eA(e.actual)}`;var t}(e)),Ms=e=>xs(e)??String(e.ast),Is=e=>e.message??"is forbidden",As=e=>{switch(e._tag){case"Type":return za(Ts(e),ds);case"Forbidden":return kt.pG(ds(Ms(e),[ds(Is(e))]));case"Unexpected":return kt.pG(ds((e=>e.message??"is unexpected")(e)));case"Missing":return za((e=>{const t=Ea.rt(e.ast);if(qe.Ru(t)){const e=t.value();return I.Kg(e)?kt.pG(e):e}return kt.pG(e.message??"is missing")})(e),ds);case"Transformation":return Ua(ks(e),t=>void 0!==t?kt.pG(ds(t)):za(As(e.issue),t=>ds(Ms(e),[ds(ys(e.kind),[t])])));case"Refinement":return Ua(ks(e),t=>void 0!==t?kt.pG(ds(t)):za(As(e.issue),t=>ds(Ms(e),[ds(bs(e.kind),[t])])));case"Pointer":return za(As(e.issue),t=>ds(Sa.jV(e.path),[t]));case"Composite":return Ua(ks(e),t=>{if(void 0!==t)return kt.pG(ds(t));const n=Ms(e);return Sa.J_(e.issues)?za(fa(e.issues,As),e=>ds(n,e)):za(As(e.issues),e=>ds(n,[e]))})}}},9465(e){"use strict";e.exports=Math.min},9481(e,t,n){"use strict";n.d(t,{h:()=>a});var r=n(85327),i=n(76329);async function a(e,{hash:t}){const n=await e.request({method:"eth_getTransactionReceipt",params:[t]},{dedupe:!0});if(!n)throw new r.Kc({hash:t});return(e.chain?.formatters?.transactionReceipt?.format||i.uL)(n,"getTransactionReceipt")}},9827(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(76824)},9848(e,t,n){"use strict";var r=n(77045),i=n(70004),a=n(45366);function s(e){if(!(this instanceof s))return new s(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=i.toArray(e.entropy,e.entropyEnc||"hex"),n=i.toArray(e.nonce,e.nonceEnc||"hex"),r=i.toArray(e.pers,e.persEnc||"hex");a(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}e.exports=s,s.prototype._init=function(e,t,n){var r=e.concat(t).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},s.prototype.generate=function(e,t,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=n,n=t,t=null),n&&(n=i.toArray(n,r||"hex"),this._update(n));for(var a=[];a.length0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]>24,i>>16,i>>8,i]),u=h(r.concat([o,e]));s=r.concat([s,u]),a+=32,i+=1}n(s)})},t.getPublic=function(e){return new Promise(function(t,n){return 32!==e.length?n(new Error("Private key should be 32 bytes long")):t(r.from(f.default.publicKeyConvert(f.default.publicKeyCreate(e),!1)))})},t.sign=function(e,t){return new Promise(function(n,i){if(32!==e.length)i(new Error("Private key should be 32 bytes long"));else if(t.length<=0)i(new Error("Message should not be empty"));else if(t.length>32)i(new Error("Message is too long (max 32 bytes)"));else{var a=m(t),s=f.default.ecdsaSign(a,e).signature;n(r.from(f.default.signatureExport(s)))}})},t.verify=function(e,t,n){return new Promise(function(r,i){if(65!==e.length)i(new Error("Public key should 65 bytes long"));else if(t.length<=0)i(new Error("Message should not be empty"));else if(t.length>32)i(new Error("Message is too long (max 32 bytes)"));else{var a=m(t);try{var s=f.default.signatureImport(n);f.default.ecdsaVerify(s,a,e)?r(!0):i(new Error("Bad signature"))}catch(e){i(new Error("Invalid signature"))}}})},t.derive=function(e,t){return new Promise(function(n,i){if(32!==e.length)i(new Error("Bad private key, it should be 32 bytes but it's actually ".concat(e.length," bytes long")));else if(65!==t.length)i(new Error("Bad public key, it should be 65 bytes but it's actually ".concat(t.length," bytes long")));else if(4!==t[0])i(new Error("Bad public key, a valid public key would begin with 4"));else{var a=d.keyFromPrivate(e),s=d.keyFromPublic(t),o=a.derive(s.getPublic());n(m(r.from(o.toArray())))}})},t.encrypt=function(e,n,i){return s(void 0,void 0,void 0,function(){var a;return o(this,function(u){return a=(i=i||{}).ephemPrivateKey||(0,c.randomBytes)(32),[2,(0,t.derive)(a,e).then(function(e){return(0,t.kdf)(e,32)}).then(function(e){return s(void 0,void 0,void 0,function(){var s,u,l,f,d;return o(this,function(o){return s=e.slice(0,16),u=i.iv||(0,c.randomBytes)(16),l=h(e.slice(16)),f=function(e,t,n){var i=(0,c.createCipheriv)("aes-128-ctr",t,e),a=i.update(n),s=i.final();return r.concat([e,a,s])}(u,s,n),d=p(l,f),[2,(0,t.getPublic)(a).then(function(e){return r.concat([e,f,d])})]})})})]})})},t.decrypt=function(e,n){return new Promise(function(i,a){if(n.length<113)a(new Error("Invalid Ciphertext. Data is too small. It should ba at least ".concat(113)));else if(4!==n[0])a(new Error("Not a valid ciphertext. It should begin with 4 but actually begin with ".concat(n[0])));else{var s=n.slice(0,65),o=n.length-113,u=n.slice(65,81),l=n.slice(65,81+o),f=l.slice(16),d=n.slice(81+o);i((0,t.derive)(e,s).then(function(e){return(0,t.kdf)(e,32)}).then(function(e){var t=e.slice(0,16),n=h(e.slice(16));if(!function(e,t){if(e.length!==t.length)return!1;for(var n=0,r=0;r>>32-t}function c(e,t,n,r,i,a,s){return u(e+(t&n|~t&r)+i+a|0,s)+t|0}function l(e,t,n,r,i,a,s){return u(e+(t&r|n&~r)+i+a|0,s)+t|0}function f(e,t,n,r,i,a,s){return u(e+(t^n^r)+i+a|0,s)+t|0}function d(e,t,n,r,i,a,s){return u(e+(n^(t|~r))+i+a|0,s)+t|0}r(o,i),o.prototype._update=function(){for(var e=s,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var n=this._a,r=this._b,i=this._c,a=this._d;n=c(n,r,i,a,e[0],3614090360,7),a=c(a,n,r,i,e[1],3905402710,12),i=c(i,a,n,r,e[2],606105819,17),r=c(r,i,a,n,e[3],3250441966,22),n=c(n,r,i,a,e[4],4118548399,7),a=c(a,n,r,i,e[5],1200080426,12),i=c(i,a,n,r,e[6],2821735955,17),r=c(r,i,a,n,e[7],4249261313,22),n=c(n,r,i,a,e[8],1770035416,7),a=c(a,n,r,i,e[9],2336552879,12),i=c(i,a,n,r,e[10],4294925233,17),r=c(r,i,a,n,e[11],2304563134,22),n=c(n,r,i,a,e[12],1804603682,7),a=c(a,n,r,i,e[13],4254626195,12),i=c(i,a,n,r,e[14],2792965006,17),n=l(n,r=c(r,i,a,n,e[15],1236535329,22),i,a,e[1],4129170786,5),a=l(a,n,r,i,e[6],3225465664,9),i=l(i,a,n,r,e[11],643717713,14),r=l(r,i,a,n,e[0],3921069994,20),n=l(n,r,i,a,e[5],3593408605,5),a=l(a,n,r,i,e[10],38016083,9),i=l(i,a,n,r,e[15],3634488961,14),r=l(r,i,a,n,e[4],3889429448,20),n=l(n,r,i,a,e[9],568446438,5),a=l(a,n,r,i,e[14],3275163606,9),i=l(i,a,n,r,e[3],4107603335,14),r=l(r,i,a,n,e[8],1163531501,20),n=l(n,r,i,a,e[13],2850285829,5),a=l(a,n,r,i,e[2],4243563512,9),i=l(i,a,n,r,e[7],1735328473,14),n=f(n,r=l(r,i,a,n,e[12],2368359562,20),i,a,e[5],4294588738,4),a=f(a,n,r,i,e[8],2272392833,11),i=f(i,a,n,r,e[11],1839030562,16),r=f(r,i,a,n,e[14],4259657740,23),n=f(n,r,i,a,e[1],2763975236,4),a=f(a,n,r,i,e[4],1272893353,11),i=f(i,a,n,r,e[7],4139469664,16),r=f(r,i,a,n,e[10],3200236656,23),n=f(n,r,i,a,e[13],681279174,4),a=f(a,n,r,i,e[0],3936430074,11),i=f(i,a,n,r,e[3],3572445317,16),r=f(r,i,a,n,e[6],76029189,23),n=f(n,r,i,a,e[9],3654602809,4),a=f(a,n,r,i,e[12],3873151461,11),i=f(i,a,n,r,e[15],530742520,16),n=d(n,r=f(r,i,a,n,e[2],3299628645,23),i,a,e[0],4096336452,6),a=d(a,n,r,i,e[7],1126891415,10),i=d(i,a,n,r,e[14],2878612391,15),r=d(r,i,a,n,e[5],4237533241,21),n=d(n,r,i,a,e[12],1700485571,6),a=d(a,n,r,i,e[3],2399980690,10),i=d(i,a,n,r,e[10],4293915773,15),r=d(r,i,a,n,e[1],2240044497,21),n=d(n,r,i,a,e[8],1873313359,6),a=d(a,n,r,i,e[15],4264355552,10),i=d(i,a,n,r,e[6],2734768916,15),r=d(r,i,a,n,e[13],1309151649,21),n=d(n,r,i,a,e[4],4149444226,6),a=d(a,n,r,i,e[11],3174756917,10),i=d(i,a,n,r,e[2],718787259,15),r=d(r,i,a,n,e[9],3951481745,21),this._a=this._a+n|0,this._b=this._b+r|0,this._c=this._c+i|0,this._d=this._d+a|0},o.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=a.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},e.exports=o},10473(e,t,n){"use strict";var r=n(77045),i=n(52565),a=n(92772),s=a.assert,o=a.parseBytes,u=n(35546),c=n(58159);function l(e){if(s("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof l))return new l(e);e=i[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=r.sha512}e.exports=l,l.prototype.sign=function(e,t){e=o(e);var n=this.keyFromSecret(t),r=this.hashInt(n.messagePrefix(),e),i=this.g.mul(r),a=this.encodePoint(i),s=this.hashInt(a,n.pubBytes(),e).mul(n.priv()),u=r.add(s).umod(this.curve.n);return this.makeSignature({R:i,S:u,Rencoded:a})},l.prototype.verify=function(e,t,n){if(e=o(e),(t=this.makeSignature(t)).S().gte(t.eddsa.curve.n)||t.S().isNeg())return!1;var r=this.keyFromPublic(n),i=this.hashInt(t.Rencoded(),r.pubBytes(),e),a=this.g.mul(t.S());return t.R().add(r.pub().mul(i)).eq(a)},l.prototype.hashInt=function(){for(var e=this.hash(),t=0;tsetTimeout(t,e))}n.d(t,{u:()=>r})},10720(e,t,n){"use strict";var r=n(39197),i=r.define("Time",function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})}),a=r.define("AttributeTypeValue",function(){this.seq().obj(this.key("type").objid(),this.key("value").any())}),s=r.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())}),o=r.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(s),this.key("subjectPublicKey").bitstr())}),u=r.define("RelativeDistinguishedName",function(){this.setof(a)}),c=r.define("RDNSequence",function(){this.seqof(u)}),l=r.define("Name",function(){this.choice({rdnSequence:this.use(c)})}),f=r.define("Validity",function(){this.seq().obj(this.key("notBefore").use(i),this.key("notAfter").use(i))}),d=r.define("Extension",function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())}),h=r.define("TBSCertificate",function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(s),this.key("issuer").use(l),this.key("validity").use(f),this.key("subject").use(l),this.key("subjectPublicKeyInfo").use(o),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(d).optional())}),p=r.define("X509Certificate",function(){this.seq().obj(this.key("tbsCertificate").use(h),this.key("signatureAlgorithm").use(s),this.key("signatureValue").bitstr())});e.exports=p},10791(e,t,n){"use strict";var r=n(3674);e.exports=function(){return r()&&!!Symbol.toStringTag}},11264(e,t,n){"use strict";n.d(t,{$v:()=>R,A_:()=>x,Do:()=>B,Ie:()=>M,Jt:()=>C,KA:()=>b,L8:()=>I,Or:()=>v,Sr:()=>d,Um:()=>j,Up:()=>D,WQ:()=>A,aE:()=>E,cJ:()=>U,dz:()=>k,gw:()=>O,h1:()=>L,ii:()=>w,lN:()=>h,og:()=>S,om:()=>F,vw:()=>g});var r=n(72529),i=n(59329),a=n(55661),s=n(46385),o=n(12717),u=n(66949),c=n(82884),l=n(20490),f=n(64458);const d=Symbol.for("effect/Context/Tag"),h=Symbol.for("effect/Context/Reference"),p=Symbol.for("effect/STM"),m={...l.MS,_op:"Tag",[p]:l.Hs,[d]:{_Service:e=>e,_Identifier:e=>e},toString(){return(0,o.GP)(this.toJSON())},toJSON(){return{_id:"Tag",key:this.key,stack:this.stack}},[o.FX](){return this.toJSON()},of:e=>e,context(e){return I(this,e)}},y={...m,[h]:h},b=e=>{const t=Error.stackTraceLimit;Error.stackTraceLimit=2;const n=new Error;Error.stackTraceLimit=t;const r=Object.create(m);return Object.defineProperty(r,"stack",{get:()=>n.stack}),r.key=e,r},g=e=>()=>{const t=Error.stackTraceLimit;Error.stackTraceLimit=2;const n=new Error;function r(){}return Error.stackTraceLimit=t,Object.setPrototypeOf(r,m),r.key=e,Object.defineProperty(r,"stack",{get:()=>n.stack}),r},v=()=>(e,t)=>{const n=Error.stackTraceLimit;Error.stackTraceLimit=2;const r=new Error;function i(){}return Error.stackTraceLimit=n,Object.setPrototypeOf(i,y),i.key=e,i.defaultValue=t.defaultValue,Object.defineProperty(i,"stack",{get:()=>r.stack}),i},w=Symbol.for("effect/Context"),_={[w]:{_Services:e=>e},[r.HR](e){if(E(e)&&this.unsafeMap.size===e.unsafeMap.size){for(const t of this.unsafeMap.keys())if(!e.unsafeMap.has(t)||!r.aI(this.unsafeMap.get(t),e.unsafeMap.get(t)))return!1;return!0}return!1},[s.HR](){return s.PO(this,s.ai(this.unsafeMap.size))},pipe(){return(0,u.tT)(this,arguments)},toString(){return(0,o.GP)(this.toJSON())},toJSON(){return{_id:"Context",services:Array.from(this.unsafeMap).map(o.U2)}},[o.FX](){return this.toJSON()}},S=e=>{const t=Object.create(_);return t.unsafeMap=e,t},E=e=>(0,c.i5)(e,w),k=e=>(0,c.i5)(e,d),x=e=>(0,c.i5)(e,h),T=S(new Map),M=()=>T,I=(e,t)=>S(new Map([[e.key,t]])),A=(0,i.XY)(3,(e,t,n)=>{const r=new Map(e.unsafeMap);return r.set(t.key,n),S(r)}),N=(0,a.V)("effect/Context/defaultValueCache",()=>new Map),P=e=>{if(N.has(e.key))return N.get(e.key);const t=e.defaultValue();return N.set(e.key,t),t},O=(e,t)=>e.unsafeMap.has(t.key)?e.unsafeMap.get(t.key):P(t),R=(0,i.XY)(2,(e,t)=>{if(!e.unsafeMap.has(t.key)){if(h in t)return P(t);throw(e=>{const t=new Error("Service not found"+(e.key?`: ${String(e.key)}`:""));if(e.stack){const n=e.stack.split("\n");if(n.length>2){const e=n[2].match(/at (.*)/);e&&(t.message=t.message+` (defined at ${e[1]})`)}}if(t.stack){const e=t.stack.split("\n");e.splice(1,3),t.stack=e.join("\n")}return t})(t)}return e.unsafeMap.get(t.key)}),C=R,B=(0,i.XY)(3,(e,t,n)=>e.unsafeMap.has(t.key)?e.unsafeMap.get(t.key):x(t)?P(t):n()),F=(0,i.XY)(2,(e,t)=>e.unsafeMap.has(t.key)?f.zN(e.unsafeMap.get(t.key)):x(t)?f.zN(P(t)):f.dv),L=(0,i.XY)(2,(e,t)=>{const n=new Map(e.unsafeMap);for(const[e,r]of t.unsafeMap)n.set(e,r);return S(n)}),j=(...e)=>{const t=new Map;for(let n=0;n{t.set(n,e)});return S(t)},D=(...e)=>t=>{const n=new Set(e.map(e=>e.key)),r=new Map;for(const[e,i]of t.unsafeMap.entries())n.has(e)&&r.set(e,i);return S(r)},U=(...e)=>t=>{const n=new Map(t.unsafeMap);for(const t of e)n.delete(t.key);return S(n)}},11525(e,t,n){"use strict";var r=n(55628),i=n(41498),a=n(72258).Buffer;function s(e){var t,n=e.modulus.byteLength();do{t=new r(i(n))}while(t.cmp(e.modulus)>=0||!t.umod(e.prime1)||!t.umod(e.prime2));return t}function o(e,t){var n=function(e){var t=s(e);return{blinder:t.toRed(r.mont(e.modulus)).redPow(new r(e.publicExponent)).fromRed(),unblinder:t.invm(e.modulus)}}(t),i=t.modulus.byteLength(),o=new r(e).mul(n.blinder).umod(t.modulus),u=o.toRed(r.mont(t.prime1)),c=o.toRed(r.mont(t.prime2)),l=t.coefficient,f=t.prime1,d=t.prime2,h=u.redPow(t.exponent1).fromRed(),p=c.redPow(t.exponent2).fromRed(),m=h.isub(p).imul(l).umod(f).imul(d);return p.iadd(m).imul(n.unblinder).umod(t.modulus).toArrayLike(a,"be",i)}o.getr=s,e.exports=o},11644(e,t,n){"use strict";var r=n(42649);void 0===r||!r.version||0===r.version.indexOf("v0.")||0===r.version.indexOf("v1.")&&0!==r.version.indexOf("v1.8.")?e.exports={nextTick:function(e,t,n,i){if("function"!=typeof e)throw new TypeError('"callback" argument must be a function');var a,s,o=arguments.length;switch(o){case 0:case 1:return r.nextTick(e);case 2:return r.nextTick(function(){e.call(null,t)});case 3:return r.nextTick(function(){e.call(null,t,n)});case 4:return r.nextTick(function(){e.call(null,t,n,i)});default:for(a=new Array(o-1),s=0;sa,R:()=>s});var r=n(31963),i=n(47457);function a(e,t){const n=(e.transactions??[]).map(e=>"string"==typeof e?e:(0,i.uP)(e));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:n,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}const s=(0,r.q)("block",a)},12082(e,t,n){function r(e){try{if(!n.g.localStorage)return!1}catch(e){return!1}var t=n.g.localStorage[e];return null!=t&&"true"===String(t).toLowerCase()}e.exports=function(e,t){if(r("noDeprecation"))return e;var n=!1;return function(){if(!n){if(r("throwDeprecation"))throw new Error(t);r("traceDeprecation")?console.trace(t):console.warn(t),n=!0}return e.apply(this,arguments)}}},12129(e,t,n){"use strict";n.d(t,{x:()=>s});var r=n(85327),i=n(75209),a=n(47457);async function s(e,{blockHash:t,blockNumber:n,blockTag:s,hash:o,index:u,sender:c,nonce:l}){const f=s||"latest",d=void 0!==n?(0,i.cK)(n):void 0;let h=null;if(o?h=await e.request({method:"eth_getTransactionByHash",params:[o]},{dedupe:!0}):t?h=await e.request({method:"eth_getTransactionByBlockHashAndIndex",params:[t,(0,i.cK)(u)]},{dedupe:!0}):(d||f)&&"number"==typeof u?h=await e.request({method:"eth_getTransactionByBlockNumberAndIndex",params:[d||f,(0,i.cK)(u)]},{dedupe:Boolean(d)}):c&&"number"==typeof l&&(h=await e.request({method:"eth_getTransactionBySenderAndNonce",params:[c,(0,i.cK)(l)]},{dedupe:!0})),!h)throw new r.Kz({blockHash:t,blockNumber:n,blockTag:f,hash:o,index:u});return(e.chain?.formatters?.transaction?.format||a.uP)(h,"getTransaction")}},12717(e,t,n){"use strict";n.d(t,{FX:()=>a,GP:()=>f,RJ:()=>b,U2:()=>s,Yq:()=>u,ZK:()=>d,_r:()=>c,eA:()=>l,hL:()=>h});var r=n(55661),i=n(82884);const a=Symbol.for("nodejs.util.inspect.custom"),s=e=>{try{if(i.i5(e,"toJSON")&&i.Tn(e.toJSON)&&0===e.toJSON.length)return e.toJSON();if(Array.isArray(e))return e.map(s)}catch{return{}}return g(e)},o="[Circular]";function u(e){try{return e.toISOString()}catch{return"Invalid Date"}}function c(e){return i.Kg(e)?JSON.stringify(e):String(e)}function l(e,t){const n=t?.space??0,r=new WeakSet,a=n?i.Et(n)?" ".repeat(n):n:"",s=e=>a.repeat(e),l=(e,t)=>{const n=e?.constructor;return n&&n!==Object.prototype.constructor&&n.name?`${n.name}(${t})`:t};return function e(n,f=0){if(Array.isArray(n)){if(r.has(n))return o;if(r.add(n),!a||n.length<=1)return`[${n.map(t=>e(t,f)).join(",")}]`;const t=n.map(t=>e(t,f+1)).join(",\n"+s(f+1));return`[\n${s(f+1)}${t}\n${s(f)}]`}if(i.$P(n))return u(n);if(!t?.ignoreToString&&i.i5(n,"toString")&&i.Tn(n.toString)&&n.toString!==Object.prototype.toString&&n.toString!==Array.prototype.toString){const t=function(e){try{const t=e.toString();return"string"==typeof t?t:String(t)}catch{return"[toString threw]"}}(n);return n instanceof Error&&n.cause?`${t} (cause: ${e(n.cause,f)})`:t}if(i.Kg(n))return JSON.stringify(n);if(i.Et(n)||null==n||i.Lm(n)||i.Bm(n))return String(n);if(i.sI(n))return String(n)+"n";if(n instanceof Set||n instanceof Map)return r.has(n)?o:(r.add(n),`${n.constructor.name}(${e(Array.from(n),f)})`);if(i.Gv(n)){if(r.has(n))return o;r.add(n);const t=(e=>{try{return Reflect.ownKeys(e)}catch{return["[ownKeys threw]"]}})(n);if(!a||t.length<=1){const r=`{${t.map(t=>`${c(t)}:${e(n[t],f)}`).join(",")}}`;return l(n,r)}const i=`{\n${t.map(t=>`${s(f+1)}${c(t)}: ${e(n[t],f+1)}`).join(",\n")}\n${s(f)}}`;return l(n,i)}return String(n)}(e,0)}const f=e=>JSON.stringify(e,null,2),d=(e,t=2)=>{if("string"==typeof e)return e;try{return"object"==typeof e?h(e,t):String(e)}catch{return String(e)}},h=(e,t)=>{let n=[];const r=JSON.stringify(e,(e,t)=>"object"==typeof t&&null!==t?n.includes(t)?void 0:n.push(t)&&(void 0!==y.fiberRefs&&m(t)?t[p](y.fiberRefs):t):t,t);return n=void 0,r},p=Symbol.for("effect/Inspectable/Redactable"),m=e=>"object"==typeof e&&null!==e&&p in e,y=(0,r.V)("effect/Inspectable/redactableState",()=>({fiberRefs:void 0})),b=(e,t)=>{const n=y.fiberRefs;y.fiberRefs=e;try{return t()}finally{y.fiberRefs=n}},g=e=>m(e)&&void 0!==y.fiberRefs?e[p](y.fiberRefs):e},12769(e,t,n){"use strict";n.d(t,{v:()=>c});var r=n(74014),i=n(50309),a=n(88924),s=n(66893),o=n(26015),u=n(45011);async function c(e,t){const{abi:n,address:c,args:l,dataSuffix:f,functionName:d,...h}=t,p=h.account?(0,r.J)(h.account):e.account,m=(0,a.p)({abi:n,args:l,functionName:d});try{const{data:r}=await(0,o.T)(e,u.T,"call")({batch:!1,data:`${m}${f?f.replace("0x",""):""}`,to:c,...h,account:p});return{result:(0,i.e)({abi:n,args:l,functionName:d,data:r||"0x"}),request:{abi:n.filter(e=>"name"in e&&e.name===t.functionName),address:c,args:l,dataSuffix:f,functionName:d,...h,account:p}}}catch(e){throw(0,s.j)(e,{abi:n,address:c,args:l,docsPath:"/docs/contract/simulateContract",functionName:d,sender:p?.address})}}},13059(e,t,n){"use strict";n.d(t,{B:()=>i});var r=n(32061);function i(e){return"function"===e.type?`function ${e.name}(${(0,r.Q)(e.inputs)})${e.stateMutability&&"nonpayable"!==e.stateMutability?` ${e.stateMutability}`:""}${e.outputs?.length?` returns (${(0,r.Q)(e.outputs)})`:""}`:"event"===e.type?`event ${e.name}(${(0,r.Q)(e.inputs)})`:"error"===e.type?`error ${e.name}(${(0,r.Q)(e.inputs)})`:"constructor"===e.type?`constructor(${(0,r.Q)(e.inputs)})${"payable"===e.stateMutability?" payable":""}`:"fallback"===e.type?"fallback() external"+("payable"===e.stateMutability?" payable":""):"receive() external payable"}},13284(e,t,n){"use strict";var r=n(33213),i=n(65269),a=n(96811),s=n(72258).Buffer,o=new Array(160);function u(){this.init(),this._w=o,a.call(this,128,112)}r(u,i),u.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},u.prototype._hash=function(){var e=s.allocUnsafe(48);function t(t,n,r){e.writeInt32BE(t,r),e.writeInt32BE(n,r+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},e.exports=u},13409(e){"use strict";e.exports=function(e,t){return function(n,r){var i=2*r,a=2*t;n[i]=e[a],n[i+1]=e[a+1]}}},13439(e,t,n){"use strict";t.vm=void 0;var r,i=n(73730),a=(r=n(16778))&&r.__esModule?r:{default:r},s=function(e){var t=e.allowedSizes,n=e.defaultSize,r=e.padding;return function e(){var s=this,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n;if(!this||this.constructor!==e)return new e(o);if(t&&!t.includes(o))throw new Error("Unsupported hash length");var u=new a.default({capacity:o});return this.update=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"utf8";if(i.Buffer.isBuffer(e))return u.absorb(e),s;if("string"==typeof e)return s.update(i.Buffer.from(e,t));throw new TypeError("Not a string or buffer")},this.digest=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"binary",t="string"==typeof e?{format:e}:e,n=u.squeeze({buffer:t.buffer,padding:t.padding||r});return t.format&&"binary"!==t.format?n.toString(t.format):n},this.reset=function(){return u.reset(),s},this}},o=s({allowedSizes:[224,256,384,512],defaultSize:512,padding:1});t.vm=o;var u=s({allowedSizes:[224,256,384,512],defaultSize:512,padding:6});s({allowedSizes:[128,256],defaultSize:256,padding:31});var c=o;u.SHA3Hash=c},13940(e,t,n){"use strict";n.d(t,{g:()=>s});var r=n(58074),i=n(75209),a=n(11956);async function s(e,{blockHash:t,blockNumber:n,blockTag:s=e.experimental_blockTag??"latest",includeTransactions:o}={}){const u=o??!1,c=void 0!==n?(0,i.cK)(n):void 0;let l=null;if(l=t?await e.request({method:"eth_getBlockByHash",params:[t,u]},{dedupe:!0}):await e.request({method:"eth_getBlockByNumber",params:[c||s,u]},{dedupe:Boolean(c)}),!l)throw new r.l({blockHash:t,blockNumber:n});return(e.chain?.formatters?.block?.format||a.$)(l,"getBlock")}},13961(e,t,n){"use strict";n.d(t,{N:()=>c,b:()=>u});var r=n(44535),i=n(58038),a=n(26015),s=n(13940),o=n(34435);async function u(e,t){return c(e,t)}async function c(e,t){const{block:n,chain:u=e.chain,request:c}=t||{};try{const t=u?.fees?.maxPriorityFeePerGas??u?.fees?.defaultPriorityFee;if("function"==typeof t){const r=n||await(0,a.T)(e,s.g,"getBlock")({}),i=await t({block:r,client:e,request:c});if(null===i)throw new Error;return i}if(void 0!==t)return t;const r=await e.request({method:"eth_maxPriorityFeePerGas"});return(0,i.uU)(r)}catch{const[t,i]=await Promise.all([n?Promise.resolve(n):(0,a.T)(e,s.g,"getBlock")({}),(0,a.T)(e,o.L,"getGasPrice")({})]);if("bigint"!=typeof t.baseFeePerGas)throw new r.pw;const u=i-t.baseFeePerGas;return u<0n?0n:u}}},14248(e,t,n){"use strict";var r=n(23145),i=n(92772),a=i.getNAF,s=i.getJSF,o=i.assert;function u(e,t){this.type=e,this.p=new r(t.p,16),this.red=t.prime?r.red(t.prime):r.mont(this.p),this.zero=new r(0).toRed(this.red),this.one=new r(1).toRed(this.red),this.two=new r(2).toRed(this.red),this.n=t.n&&new r(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function c(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=u,u.prototype.point=function(){throw new Error("Not implemented")},u.prototype.validate=function(){throw new Error("Not implemented")},u.prototype._fixedNafMul=function(e,t){o(e.precomputed);var n=e._getDoubles(),r=a(t,1,this._bitLength),i=(1<=s;l--)u=(u<<1)+r[l];c.push(u)}for(var f=this.jpoint(null,null,null),d=this.jpoint(null,null,null),h=i;h>0;h--){for(s=0;s=0;c--){for(var l=0;c>=0&&0===s[c];c--)l++;if(c>=0&&l++,u=u.dblp(l),c<0)break;var f=s[c];o(0!==f),u="affine"===e.type?f>0?u.mixedAdd(i[f-1>>1]):u.mixedAdd(i[-f-1>>1].neg()):f>0?u.add(i[f-1>>1]):u.add(i[-f-1>>1].neg())}return"affine"===e.type?u.toP():u},u.prototype._wnafMulAdd=function(e,t,n,r,i){var o,u,c,l=this._wnafT1,f=this._wnafT2,d=this._wnafT3,h=0;for(o=0;o=1;o-=2){var m=o-1,y=o;if(1===l[m]&&1===l[y]){var b=[t[m],null,null,t[y]];0===t[m].y.cmp(t[y].y)?(b[1]=t[m].add(t[y]),b[2]=t[m].toJ().mixedAdd(t[y].neg())):0===t[m].y.cmp(t[y].y.redNeg())?(b[1]=t[m].toJ().mixedAdd(t[y]),b[2]=t[m].add(t[y].neg())):(b[1]=t[m].toJ().mixedAdd(t[y]),b[2]=t[m].toJ().mixedAdd(t[y].neg()));var g=[-3,-1,-5,-7,0,7,5,1,3],v=s(n[m],n[y]);for(h=Math.max(v[0].length,h),d[m]=new Array(h),d[y]=new Array(h),u=0;u=0;o--){for(var k=0;o>=0;){var x=!0;for(u=0;u=0&&k++,S=S.dblp(k),o<0)break;for(u=0;u0?c=f[u][T-1>>1]:T<0&&(c=f[u][-T-1>>1].neg()),S="affine"===c.type?S.mixedAdd(c):S.add(c))}}for(o=0;o=Math.ceil((e.bitLength()+1)/t.step)},c.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new a("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new a("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new a("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new a("`loose`, if provided, must be a boolean");var o=arguments.length>3?arguments[3]:null,u=arguments.length>4?arguments[4]:null,c=arguments.length>5?arguments[5]:null,l=arguments.length>6&&arguments[6],f=!!s&&s(e,t);if(r)r(e,t,{configurable:null===c&&f?f.configurable:!c,enumerable:null===o&&f?f.enumerable:!o,value:n,writable:null===u&&f?f.writable:!u});else{if(!l&&(o||u||c))throw new i("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");e[t]=n}}},14583(e,t,n){"use strict";n.d(t,{eL:()=>r,sz:()=>i});const r={gwei:9,wei:18},i={ether:-9,wei:9}},14917(e,t){t.encrypt=function(e,t){return e._cipher.encryptBlock(t)},t.decrypt=function(e,t){return e._cipher.decryptBlock(t)}},15030(e,t,n){"use strict";t.randomBytes=t.rng=t.pseudoRandomBytes=t.prng=n(41498),t.createHash=t.Hash=n(55303),t.createHmac=t.Hmac=n(39);var r=n(92092),i=Object.keys(r),a=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(i);t.getHashes=function(){return a};var s=n(51305);t.pbkdf2=s.pbkdf2,t.pbkdf2Sync=s.pbkdf2Sync;var o=n(79050);t.Cipher=o.Cipher,t.createCipher=o.createCipher,t.Cipheriv=o.Cipheriv,t.createCipheriv=o.createCipheriv,t.Decipher=o.Decipher,t.createDecipher=o.createDecipher,t.Decipheriv=o.Decipheriv,t.createDecipheriv=o.createDecipheriv,t.getCiphers=o.getCiphers,t.listCiphers=o.listCiphers;var u=n(39437);t.DiffieHellmanGroup=u.DiffieHellmanGroup,t.createDiffieHellmanGroup=u.createDiffieHellmanGroup,t.getDiffieHellman=u.getDiffieHellman,t.createDiffieHellman=u.createDiffieHellman,t.DiffieHellman=u.DiffieHellman;var c=n(29883);t.createSign=c.createSign,t.Sign=c.Sign,t.createVerify=c.createVerify,t.Verify=c.Verify,t.createECDH=n(81699);var l=n(90873);t.publicEncrypt=l.publicEncrypt,t.privateEncrypt=l.privateEncrypt,t.publicDecrypt=l.publicDecrypt,t.privateDecrypt=l.privateDecrypt;var f=n(28430);t.randomFill=f.randomFill,t.randomFillSync=f.randomFillSync,t.createCredentials=function(){throw new Error("sorry, createCredentials is not implemented yet\nwe accept pull requests\nhttps://github.com/browserify/crypto-browserify")},t.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},15100(e,t,n){"use strict";n.d(t,{T:()=>i,Z:()=>a});var r=n(2273);class i extends r.C{constructor({docsPath:e}={}){super(["Could not find an Account to execute with this Action.","Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the Client."].join("\n"),{docsPath:e,docsSlug:"account",name:"AccountNotFoundError"})}}class a extends r.C{constructor({docsPath:e,metaMessages:t,type:n}){super(`Account type "${n}" is not supported.`,{docsPath:e,metaMessages:t,name:"AccountTypeNotSupportedError"})}}},15190(e,t,n){"use strict";n.d(t,{I:()=>i,R:()=>r});const r=e=>e,i=e=>e},15314(e,t,n){var r;function i(e){this.rand=e}if(e.exports=function(e){return r||(r=new i(null)),r.generate(e)},e.exports.Rand=i,i.prototype.generate=function(e){return this._rand(e)},i.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),n=0;ni,X:()=>s,eV:()=>o,kK:()=>a});var r=n(21506);function i(e,t){if(r.Ej(e)>t)throw new r.u({givenSize:r.Ej(e),maxSize:t})}function a(e,t){if("number"==typeof t&&t>0&&t>r.Ej(e)-1)throw new r.ii({offset:t,position:"start",size:r.Ej(e)})}function s(e,t,n){if("number"==typeof t&&"number"==typeof n&&r.Ej(e)!==n-t)throw new r.ii({offset:n,position:"end",size:r.Ej(e)})}function o(e,t={}){const{dir:n,size:i=32}=t;if(0===i)return e;const a=e.replace("0x","");if(a.length>2*i)throw new r.Fl({size:Math.ceil(a.length/2),targetSize:i,type:"Hex"});return`0x${a["right"===n?"padEnd":"padStart"](2*i,"0")}`}},16483(e,t,n){"use strict";e.exports=a;var r=n(74017),i=Object.create(n(1833));function a(e){if(!(this instanceof a))return new a(e);r.call(this,e)}i.inherits=n(33213),i.inherits(a,r),a.prototype._transform=function(e,t,n){n(null,e)}},16491(e,t,n){"use strict";n.d(t,{RK:()=>u,Ru:()=>s,s0:()=>o,yy:()=>a,zD:()=>c});var r=n(68929),i=n(55606);r.iu,r.L8;const a=i.yy,s=i.Ru,o=i.s0,u=i.RK,c=r.hV},16503(e,t,n){"use strict";var r=n(97103),i=n(79601),a=n(45366),s=r.rotr64_hi,o=r.rotr64_lo,u=r.shr64_hi,c=r.shr64_lo,l=r.sum64,f=r.sum64_hi,d=r.sum64_lo,h=r.sum64_4_hi,p=r.sum64_4_lo,m=r.sum64_5_hi,y=r.sum64_5_lo,b=i.BlockHash,g=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function v(){if(!(this instanceof v))return new v;b.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=g,this.W=new Array(160)}function w(e,t,n,r,i){var a=e&n^~e&i;return a<0&&(a+=4294967296),a}function _(e,t,n,r,i,a){var s=t&r^~t&a;return s<0&&(s+=4294967296),s}function S(e,t,n,r,i){var a=e&n^e&i^n&i;return a<0&&(a+=4294967296),a}function E(e,t,n,r,i,a){var s=t&r^t&a^r&a;return s<0&&(s+=4294967296),s}function k(e,t){var n=s(e,t,28)^s(t,e,2)^s(t,e,7);return n<0&&(n+=4294967296),n}function x(e,t){var n=o(e,t,28)^o(t,e,2)^o(t,e,7);return n<0&&(n+=4294967296),n}function T(e,t){var n=s(e,t,14)^s(e,t,18)^s(t,e,9);return n<0&&(n+=4294967296),n}function M(e,t){var n=o(e,t,14)^o(e,t,18)^o(t,e,9);return n<0&&(n+=4294967296),n}function I(e,t){var n=s(e,t,1)^s(e,t,8)^u(e,t,7);return n<0&&(n+=4294967296),n}function A(e,t){var n=o(e,t,1)^o(e,t,8)^c(e,t,7);return n<0&&(n+=4294967296),n}function N(e,t){var n=s(e,t,19)^s(t,e,29)^u(e,t,6);return n<0&&(n+=4294967296),n}function P(e,t){var n=o(e,t,19)^o(t,e,29)^c(e,t,6);return n<0&&(n+=4294967296),n}r.inherits(v,b),e.exports=v,v.blockSize=1024,v.outSize=512,v.hmacStrength=192,v.padLength=128,v.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;ra});var r=n(65144),i=n(73934);const a=e=>(0,r.di)((0,i.k)(e),0,4)},16778(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=n(73730),a=(r=n(35815))&&r.__esModule?r:{default:r},s=function(e,t){for(var n=0;n>>8,t[n+2]=e[r+1]>>>16,t[n+3]=e[r+1]>>>24,t[n+4]=e[r],t[n+5]=e[r]>>>8,t[n+6]=e[r]>>>16,t[n+7]=e[r]>>>24}return t};t.default=function(e){var t=this,n=e.capacity,r=e.padding,u=(0,a.default)(),c=n/8,l=200-n/4,f=0,d=new Uint32Array(50),h=i.Buffer.allocUnsafe(l);return this.absorb=function(e){for(var n=0;n=l&&(s(h,d),u(d),f=0);return t},this.squeeze=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={buffer:e.buffer||i.Buffer.allocUnsafe(c),padding:e.padding||r,queue:i.Buffer.allocUnsafe(h.length),state:new Uint32Array(d.length)};h.copy(t.queue);for(var n=0;ni,NO:()=>o,Pj:()=>u,dV:()=>a,nx:()=>c,zd:()=>s});var r=n(20094);r.C;class i extends r.C{constructor({params:e}){super("Failed to parse ABI parameters.",{details:`parseAbiParameters(${JSON.stringify(e,null,2)})`,docsPath:"/api/human#parseabiparameters-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiParametersError"})}}class a extends r.C{constructor({param:e}){super("Invalid ABI parameter.",{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}}class s extends r.C{constructor({param:e,name:t}){super("Invalid ABI parameter.",{details:e,metaMessages:[`"${t}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}}class o extends r.C{constructor({param:e,type:t,modifier:n}){super("Invalid ABI parameter.",{details:e,metaMessages:[`Modifier "${n}" not allowed${t?` in "${t}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}}class u extends r.C{constructor({param:e,type:t,modifier:n}){super("Invalid ABI parameter.",{details:e,metaMessages:[`Modifier "${n}" not allowed${t?` in "${t}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${n}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}}class c extends r.C{constructor({abiParameter:e}){super("Invalid ABI parameter.",{details:JSON.stringify(e,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}}},17353(e,t,n){"use strict";n.d(t,{ii:()=>r}),n(66949);const r=Symbol.for("effect/Readable")},17388(e,t,n){"use strict";n.d(t,{$v:()=>A,BC:()=>N,BE:()=>x,Hs:()=>P,Ie:()=>v,Im:()=>C,Iv:()=>M,J_:()=>B,L8:()=>w,Rx:()=>D,Ts:()=>S,d5:()=>F,gv:()=>O,h3:()=>k,of:()=>_,u2:()=>R,v4:()=>j,z1:()=>L});var r=n(28062),i=n(72529),a=n(91893),s=n(59329),o=n(46385),u=n(12717),c=n(36708),l=n(66949),f=n(82884);const d=Symbol.for("effect/Chunk"),h=[],p=(e=>a.L8((t,n)=>t.length===n.length&&k(t).every((t,r)=>e(t,A(n,r)))))(i.aI),m={[d]:{_A:e=>e},toString(){return(0,u.GP)(this.toJSON())},toJSON(){return{_id:"Chunk",values:k(this).map(u.U2)}},[u.FX](){return this.toJSON()},[i.HR](e){return b(e)&&p(this,e)},[o.HR](){return o.PO(this,o.YO(k(this)))},[Symbol.iterator](){switch(this.backing._tag){case"IArray":return this.backing.array[Symbol.iterator]();case"IEmpty":return h[Symbol.iterator]();default:return k(this)[Symbol.iterator]()}},pipe(){return(0,l.tT)(this,arguments)}},y=e=>{const t=Object.create(m);switch(t.backing=e,e._tag){case"IEmpty":t.length=0,t.depth=0,t.left=t,t.right=t;break;case"IConcat":t.length=e.left.length+e.right.length,t.depth=1+Math.max(e.left.depth,e.right.depth),t.left=e.left,t.right=e.right;break;case"IArray":t.length=e.array.length,t.depth=0,t.left=g,t.right=g;break;case"ISingleton":t.length=1,t.depth=0,t.left=g,t.right=g;break;case"ISlice":t.length=e.length,t.depth=e.chunk.depth+1,t.left=g,t.right=g}return t},b=e=>(0,f.i5)(e,d),g=y({_tag:"IEmpty"}),v=()=>g,w=(...e)=>I(e),_=e=>y({_tag:"ISingleton",a:e}),S=e=>b(e)?e:M(r.Ts(e)),E=(e,t,n)=>{switch(e.backing._tag){case"IArray":!function(e,t,n,r,i){for(let t=0;t{switch(e.backing._tag){case"IEmpty":return h;case"IArray":return e.backing.array;default:{const t=new Array(e.length);return E(e,t,0),e.backing={_tag:"IArray",array:t},e.left=g,e.right=g,e.depth=0,t}}},x=e=>{switch(e.backing._tag){case"IEmpty":case"ISingleton":return e;case"IArray":return y({_tag:"IArray",array:r.BE(e.backing.array)});case"IConcat":return y({_tag:"IConcat",left:x(e.backing.right),right:x(e.backing.left)});case"ISlice":return M(r.BE(k(e)))}},T=(0,s.XY)(2,(e,t)=>t<0||t>=e.length?c.dv():c.zN(A(e,t))),M=e=>0===e.length?v():1===e.length?_(e[0]):y({_tag:"IArray",array:e}),I=e=>M(e),A=(0,s.XY)(2,(e,t)=>{switch(e.backing._tag){case"IEmpty":throw new Error("Index out of bounds");case"ISingleton":if(0!==t)throw new Error("Index out of bounds");return e.backing.a;case"IArray":if(t>=e.length||t<0)throw new Error("Index out of bounds");return e.backing.array[t];case"IConcat":return tR(e,_(t))),P=(0,s.XY)(2,(e,t)=>R(_(t),e)),O=(0,s.XY)(2,(e,t)=>{if(t<=0)return e;if(t>=e.length)return g;switch(e.backing._tag){case"ISlice":return y({_tag:"ISlice",chunk:e.backing.chunk,offset:e.backing.offset+t,length:e.backing.length-t});case"IConcat":return t>e.left.length?O(e.right,t-e.left.length):y({_tag:"IConcat",left:O(e.left,t),right:e.right});default:return y({_tag:"ISlice",chunk:e,offset:t,length:e.length-t})}}),R=(0,s.XY)(2,(e,t)=>{if("IEmpty"===e.backing._tag)return t;if("IEmpty"===t.backing._tag)return e;const n=t.depth-e.depth;if(Math.abs(n)<=1)return y({_tag:"IConcat",left:e,right:t});if(n<-1){if(e.left.depth>=e.right.depth){const n=R(e.right,t);return y({_tag:"IConcat",left:e.left,right:n})}{const n=R(e.right.right,t);if(n.depth===e.depth-3){const t=y({_tag:"IConcat",left:e.right.left,right:n});return y({_tag:"IConcat",left:e.left,right:t})}{const t=y({_tag:"IConcat",left:e.left,right:e.right.left});return y({_tag:"IConcat",left:t,right:n})}}}if(t.right.depth>=t.left.depth){const n=R(e,t.left);return y({_tag:"IConcat",left:n,right:t.right})}{const n=R(e,t.left.left);if(n.depth===t.depth-3){const e=y({_tag:"IConcat",left:n,right:t.left.right});return y({_tag:"IConcat",left:e,right:t.right})}{const e=y({_tag:"IConcat",left:t.left.right,right:t.right});return y({_tag:"IConcat",left:n,right:e})}}}),C=e=>0===e.length,B=e=>e.length>0,F=T(0),L=e=>A(e,0),j=L,D=e=>O(e,1);r.gR,r.Ou,r.i8,r.g9,r.Uk,r.Kl,r.fj,r.TS,r.XK},17442(e,t,n){"use strict";n.d(t,{EF:()=>l,Gj:()=>o,JJ:()=>s,N9:()=>a,NM:()=>d,Ni:()=>b,ZO:()=>r,_l:()=>c,du:()=>u,kK:()=>i,mM:()=>h,mm:()=>m,tA:()=>f,u4:()=>y,xS:()=>p});const r="Async",i="Commit",a="Failure",s="OnFailure",o="OnSuccess",u="OnSuccessAndFailure",c="Success",l="Sync",f="Tag",d="UpdateRuntimeFlags",h="While",p="Iterator",m="WithRuntime",y="Yield",b="RevertFlags"},17617(e,t,n){"use strict";n.d(t,{R:()=>g});var r=n(45264),i=n(75209),a=n(83815),s=n(462);var o=n(63287),u=n(84015),c=n(81127),l=n(24774);let f=!1;async function d({hash:e,privateKey:t,to:n="object"}){const{r:a,s,recovery:o}=r.secp256k1.sign(e.slice(2),t.slice(2),{lowS:!0,extraEntropy:(0,u.q)(f,{strict:!1})?(0,c.aT)(f):f}),d={r:(0,i.cK)(a,{size:32}),s:(0,i.cK)(s,{size:32}),v:o?28n:27n,yParity:o};return"bytes"===n||"hex"===n?(0,l.h)({...d,to:n}):d}var h=n(4290),p=n(47226),m=n(35593),y=n(33026),b=n(18320);function g(e,t={}){const{nonceManager:n}=t,u=(0,i.nj)(r.secp256k1.getPublicKey(e.slice(2),!1)),c=function(e){if("string"==typeof e){if(!(0,s.P)(e,{strict:!1}))throw new a.M({address:e});return{address:e,type:"json-rpc"}}if(!(0,s.P)(e.address,{strict:!1}))throw new a.M({address:e.address});return{address:e.address,nonceManager:e.nonceManager,sign:e.sign,signAuthorization:e.signAuthorization,signMessage:e.signMessage,signTransaction:e.signTransaction,signTypedData:e.signTypedData,source:"custom",type:"local"}}({address:(0,o.M)(u),nonceManager:n,sign:async({hash:t})=>d({hash:t,privateKey:e,to:"hex"}),signAuthorization:async t=>async function(e){const{chainId:t,nonce:n,privateKey:r,to:i="object"}=e,a=e.contractAddress??e.address,s=await d({hash:(0,h.C)({address:a,chainId:t,nonce:n}),privateKey:r,to:i});return"object"===i?{address:a,chainId:t,nonce:n,...s}:s}({...t,privateKey:e}),signMessage:async({message:t})=>async function({message:e,privateKey:t}){return await d({hash:(0,p.A)(e),privateKey:t,to:"hex"})}({message:t,privateKey:e}),signTransaction:async(t,{serializer:n}={})=>async function(e){const{privateKey:t,transaction:n,serializer:r=y.b}=e,i="eip4844"===n.type?{...n,sidecars:!1}:n,a=await d({hash:(0,m.S)(await r(i)),privateKey:t});return await r(n,a)}({privateKey:e,transaction:t,serializer:n}),signTypedData:async t=>async function(e){const{privateKey:t,...n}=e;return await d({hash:(0,b.Zh)(n),privateKey:t,to:"hex"})}({...t,privateKey:e})});return{...c,publicKey:u,source:"privateKey"}}},17777(e){var t={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==t.call(e)}},17821(e){"use strict";e.exports=Function.prototype.call},17993(e,t,n){"use strict";n.d(t,{A:()=>r});function r(e,t,n){return JSON.stringify(e,(e,n)=>"function"==typeof t?t(e,n):"bigint"==typeof n?n.toString()+"#__bigint":n,n)}},18052(e){"use strict";e.exports=Error},18056(e,t,n){"use strict";n.d(t,{h:()=>r});const r=n(73934).k},18193(e,t,n){"use strict";n.d(t,{F6:()=>E,Ie:()=>h,Ui:()=>_,kg:()=>S,r_:()=>u});var r=n(17388),i=n(72529),a=n(59329),s=n(11264),o=n(53487);const u=Symbol.for("effect/DifferContextPatch");function c(e){return e}const l={...o.wC.prototype,[u]:{_Value:c,_Patch:c}},f=Object.assign(Object.create(l),{_tag:"Empty"}),d=Object.create(f),h=()=>d,p=Object.assign(Object.create(l),{_tag:"AndThen"}),m=Object.assign(Object.create(l),{_tag:"AddService"}),y=(e,t)=>{const n=Object.create(m);return n.key=e,n.service=t,n},b=Object.assign(Object.create(l),{_tag:"RemoveService"}),g=e=>{const t=Object.create(b);return t.key=e,t},v=Object.assign(Object.create(l),{_tag:"UpdateService"}),w=(e,t)=>{const n=Object.create(v);return n.key=e,n.update=t,n},_=(e,t)=>{const n=new Map(e.unsafeMap);let r=h();for(const[e,a]of t.unsafeMap.entries())if(n.has(e)){const t=n.get(e);n.delete(e),i.aI(t,a)||(r=S(w(e,()=>a))(r))}else n.delete(e),r=S(y(e,a))(r);for(const[e]of n.entries())r=S(g(e))(r);return r},S=a.XY(2,(e,t)=>((e,t)=>{const n=Object.create(p);return n.first=e,n.second=t,n})(e,t)),E=a.XY(2,(e,t)=>{if("Empty"===e._tag)return t;let n=!1,i=r.of(e);const a=new Map(t.unsafeMap);for(;r.J_(i);){const e=r.v4(i),t=r.Rx(i);switch(e._tag){case"Empty":i=t;break;case"AddService":a.set(e.key,e.service),i=t;break;case"AndThen":i=r.Hs(r.Hs(t,e.second),e.first);break;case"RemoveService":a.delete(e.key),i=t;break;case"UpdateService":a.set(e.key,e.update(a.get(e.key))),n=!0,i=t}}if(!n)return(0,s.og)(a);const o=new Map;for(const[e]of t.unsafeMap)a.has(e)&&(o.set(e,a.get(e)),a.delete(e));for(const[e,t]of a)o.set(e,t);return(0,s.og)(o)})},18277(e,t,n){var r=n(73730),i=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function s(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=s),a(i,s),s.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,n)},s.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},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 r.SlowBuffer(e)}},18318(e,t,n){"use strict";n.d(t,{_o:()=>b,Pj:()=>m,uT:()=>f,NV:()=>y});var r=n(8609),i=n(92666),a=n(17230),s=n(9033),o=n(20094);class u extends o.C{constructor({current:e,depth:t}){super("Unbalanced parentheses.",{metaMessages:[`"${e.trim()}" has too many ${t>0?"opening":"closing"} parentheses.`],details:`Depth "${t}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}}const c=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]]);var l=n(72021);function f(e,t={}){if((0,l.Ji)(e))return function(e,t={}){const n=(0,l.ej)(e);if(!n)throw new s.s7({signature:e,type:"function"});const r=y(n.parameters),i=[],a=r.length;for(let e=0;e[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,h=/^\((?.+?)\)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,p=/^u?int$/;function m(e,t){const n=function(e,t,n){let r="";if(n)for(const e of Object.entries(n)){if(!e)continue;let t="";for(const n of e[1])t+=`[${n.type}${n.name?`:${n.name}`:""}]`;r+=`(${e[0]}{${t}})`}return t?`${t}:${e}${r}`:`${e}${r}`}(e,t?.type,t?.structs);if(c.has(n))return c.get(n);const s=r.wj.test(e),o=(0,r.Yv)(s?h:d,e);if(!o)throw new a.dV({param:e});if(o.name&&function(e){return"address"===e||"bool"===e||"function"===e||"string"===e||"tuple"===e||r.BD.test(e)||r.Ge.test(e)||g.test(e)}(o.name))throw new a.zd({param:e,name:o.name});const u=o.name?{name:o.name}:{},f="indexed"===o.modifier?{indexed:!0}:{},v=t?.structs??{};let w,_={};if(s){w="tuple";const e=y(o.type),t=[],n=e.length;for(let r=0;ru});var r=n(28780),i=n(33640),a=n(75209),s=n(35593),o=n(83037);function u(e){const{domain:t={},message:n,primaryType:r}=e,a={EIP712Domain:(0,o.H4)({domain:t}),...e.types};(0,o.$$)({domain:t,message:n,primaryType:r,types:a});const u=["0x1901"];return t&&u.push(function({domain:e,types:t}){return c({data:e,primaryType:"EIP712Domain",types:t})}({domain:t,types:a})),"EIP712Domain"!==r&&u.push(c({data:n,primaryType:r,types:a})),(0,s.S)((0,i.xW)(u))}function c({data:e,primaryType:t,types:n}){const r=l({data:e,primaryType:t,types:n});return(0,s.S)(r)}function l({data:e,primaryType:t,types:n}){const i=[{type:"bytes32"}],a=[f({primaryType:t,types:n})];for(const r of n[t]){const[t,s]=h({types:n,name:r.name,type:r.type,value:e[r.name]});i.push(t),a.push(s)}return(0,r.h)(i,a)}function f({primaryType:e,types:t}){const n=(0,a.nj)(function({primaryType:e,types:t}){let n="";const r=d({primaryType:e,types:t});r.delete(e);const i=[e,...Array.from(r).sort()];for(const e of i)n+=`${e}(${t[e].map(({name:e,type:t})=>`${t} ${e}`).join(",")})`;return n}({primaryType:e,types:t}));return(0,s.S)(n)}function d({primaryType:e,types:t},n=new Set){const r=e.match(/^\w*/u),i=r?.[0];if(n.has(i)||void 0===t[i])return n;n.add(i);for(const e of t[i])d({primaryType:e.type,types:t},n);return n}function h({types:e,name:t,type:n,value:i}){if(void 0!==e[n])return[{type:"bytes32"},(0,s.S)(l({data:i,primaryType:n,types:e}))];if("bytes"===n)return[{type:"bytes32"},(0,s.S)(i)];if("string"===n)return[{type:"bytes32"},(0,s.S)((0,a.nj)(i))];if(n.lastIndexOf("]")===n.length-1){const a=n.slice(0,n.lastIndexOf("[")),o=i.map(n=>h({name:t,type:a,types:e,value:n}));return[{type:"bytes32"},(0,s.S)((0,r.h)(o.map(([e])=>e),o.map(([,e])=>e)))]}return[{type:n},i]}},18561(e,t,n){e.exports=i;var r=n(3640).EventEmitter;function i(){r.call(this)}n(33213)(i,r),i.Readable=n(61037),i.Writable=n(66573),i.Duplex=n(92783),i.Transform=n(27825),i.PassThrough=n(43475),i.finished=n(60911),i.pipeline=n(61213),i.Stream=i,i.prototype.pipe=function(e,t){var n=this;function i(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function a(){n.readable&&n.resume&&n.resume()}n.on("data",i),e.on("drain",a),e._isStdio||t&&!1===t.end||(n.on("end",o),n.on("close",u));var s=!1;function o(){s||(s=!0,e.end())}function u(){s||(s=!0,"function"==typeof e.destroy&&e.destroy())}function c(e){if(l(),0===r.listenerCount(this,"error"))throw e}function l(){n.removeListener("data",i),e.removeListener("drain",a),n.removeListener("end",o),n.removeListener("close",u),n.removeListener("error",c),e.removeListener("error",c),n.removeListener("end",l),n.removeListener("close",l),e.removeListener("close",l)}return n.on("error",c),e.on("error",c),n.on("end",l),n.on("close",l),e.on("close",l),e.emit("pipe",n),e}},19109(e,t,n){"use strict";n.d(t,{PF:()=>f});var r=n(26015),i=n(96349),a=n(85144),s=n(65306),o=n(76171),u=n(12769),c=n(73418),l=n(41584);function f({abi:e,address:t,client:n}){const f=n,[p,m]=f?"public"in f&&"wallet"in f?[f.public,f.wallet]:"public"in f?[f.public,void 0]:"wallet"in f?[void 0,f.wallet]:[f,f]:[void 0,void 0],y=null!=p,b=null!=m,g={};let v=!1,w=!1,_=!1;for(const t of e)if("function"===t.type?"view"===t.stateMutability||"pure"===t.stateMutability?v=!0:w=!0:"event"===t.type&&(_=!0),v&&w&&_)break;return y&&(v&&(g.read=new Proxy({},{get:(n,i)=>(...n)=>{const{args:a,options:s}=d(n);return(0,r.T)(p,o.J,"readContract")({abi:e,address:t,functionName:i,args:a,...s})}})),w&&(g.simulate=new Proxy({},{get:(n,i)=>(...n)=>{const{args:a,options:s}=d(n);return(0,r.T)(p,u.v,"simulateContract")({abi:e,address:t,functionName:i,args:a,...s})}})),_&&(g.createEventFilter=new Proxy({},{get:(n,a)=>(...n)=>{const s=e.find(e=>"event"===e.type&&e.name===a),{args:o,options:u}=h(n,s);return(0,r.T)(p,i.X,"createContractEventFilter")({abi:e,address:t,eventName:a,args:o,...u})}}),g.getEvents=new Proxy({},{get:(n,i)=>(...n)=>{const a=e.find(e=>"event"===e.type&&e.name===i),{args:o,options:u}=h(n,a);return(0,r.T)(p,s.u,"getContractEvents")({abi:e,address:t,eventName:i,args:o,...u})}}),g.watchEvent=new Proxy({},{get:(n,i)=>(...n)=>{const a=e.find(e=>"event"===e.type&&e.name===i),{args:s,options:o}=h(n,a);return(0,r.T)(p,c.q,"watchContractEvent")({abi:e,address:t,eventName:i,args:s,...o})}}))),b&&w&&(g.write=new Proxy({},{get:(n,i)=>(...n)=>{const{args:a,options:s}=d(n);return(0,r.T)(m,l.E,"writeContract")({abi:e,address:t,functionName:i,args:a,...s})}})),(y||b)&&w&&(g.estimateGas=new Proxy({},{get:(n,i)=>(...n)=>{const{args:s,options:o}=d(n),u=p??m;return(0,r.T)(u,a.W,"estimateContractGas")({abi:e,address:t,functionName:i,args:s,...o,account:o.account??m.account})}})),g.address=t,g.abi=e,g}function d(e){const t=e.length&&Array.isArray(e[0]);return{args:t?e[0]:[],options:(t?e[1]:e[0])??{}}}function h(e,t){let n=!1;return Array.isArray(e[0])?n=!0:1===e.length?n=t.inputs.some(e=>e.indexed):2===e.length&&(n=!0),{args:n?e[0]:void 0,options:(n?e[1]:e[0])??{}}}},19127(e,t,n){var r=n(240);t.tagClass={0:"universal",1:"application",2:"context",3:"private"},t.tagClassByName=r._reverse(t.tagClass),t.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},t.tagByName=r._reverse(t.tag)},19512(e,t,n){"use strict";n.d(t,{Ao:()=>r});const r=2n**256n-1n},20094(e,t,n){"use strict";n.d(t,{C:()=>r});class r extends Error{constructor(e,t={}){const n=t.cause instanceof r?t.cause.details:t.cause?.message?t.cause.message:t.details,i=t.cause instanceof r&&t.cause.docsPath||t.docsPath;super([e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...i?[`Docs: https://abitype.dev${i}`]:[],...n?[`Details: ${n}`]:[],"Version: abitype@1.2.3"].join("\n")),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),t.cause&&(this.cause=t.cause),this.details=n,this.docsPath=i,this.metaMessages=t.metaMessages,this.shortMessage=e}}},20490(e,t,n){"use strict";n.d(t,{$n:()=>c,C6:()=>g,Em:()=>y,Hs:()=>h,KE:()=>m,MS:()=>p,O4:()=>l,Pe:()=>b,TW:()=>f,bw:()=>v,le:()=>d});var r=n(72529),i=n(46385),a=n(66949),s=n(95644),o=n(17442),u=n(60131);const c=Symbol.for("effect/Effect"),l=Symbol.for("effect/Stream"),f=Symbol.for("effect/Sink"),d=Symbol.for("effect/Channel"),h={_R:e=>e,_E:e=>e,_A:e=>e,_V:u.M()},p={[c]:h,[l]:h,[f]:{_A:e=>e,_In:e=>e,_L:e=>e,_E:e=>e,_R:e=>e},[d]:{_Env:e=>e,_InErr:e=>e,_InElem:e=>e,_InDone:e=>e,_OutErr:e=>e,_OutElem:e=>e,_OutDone:e=>e},[r.HR](e){return this===e},[i.HR](){return i.PO(this,i.yT(this))},[Symbol.iterator](){return new s.BW(new s.WT(this))},pipe(){return(0,a.tT)(this,arguments)}},m={[i.HR](){return i.PO(this,i.QK(this))},[r.HR](e){const t=Object.keys(this),n=Object.keys(e);if(t.length!==n.length)return!1;for(const n of t)if(!(n in e)||!r.aI(this[n],e[n]))return!1;return!0}},y={...p,_op:o.kK},b={...y,...m},g=function(){function e(){}return e.prototype=y,e}(),v=function(){function e(){}return e.prototype=b,e}()},20518(e,t,n){"use strict";n.d(t,{H2:()=>s,Ty:()=>i,u:()=>o,xO:()=>a});var r=n(2273);class i extends r.C{constructor({max:e,min:t,signed:n,size:r,value:i}){super(`Number "${i}" is not in safe ${r?`${8*r}-bit ${n?"signed":"unsigned"} `:""}integer range ${e?`(${t} to ${e})`:`(above ${t})`}`,{name:"IntegerOutOfRangeError"})}}class a extends r.C{constructor(e){super(`Bytes value "${e}" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,{name:"InvalidBytesBooleanError"})}}class s extends r.C{constructor(e){super(`Hex value "${e}" is not a valid boolean. The hex value must be "0x0" (false) or "0x1" (true).`,{name:"InvalidHexBooleanError"})}}r.C;class o extends r.C{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:"SizeOverflowError"})}}},20582(e,t,n){"use strict";n.d(t,{O:()=>c,_:()=>u});var r=n(44535),i=n(26015),a=n(13961),s=n(13940),o=n(34435);async function u(e,t){return c(e,t)}async function c(e,t){const{block:n,chain:u=e.chain,request:c,type:l="eip1559"}=t||{},f=await(async()=>"function"==typeof u?.fees?.baseFeeMultiplier?u.fees.baseFeeMultiplier({block:n,client:e,request:c}):u?.fees?.baseFeeMultiplier??1.2)();if(f<1)throw new r.sM;const d=10**(f.toString().split(".")[1]?.length??0),h=e=>e*BigInt(Math.ceil(f*d))/BigInt(d),p=n||await(0,i.T)(e,s.g,"getBlock")({});if("function"==typeof u?.fees?.estimateFeesPerGas){const t=await u.fees.estimateFeesPerGas({block:n,client:e,multiply:h,request:c,type:l});if(null!==t)return t}if("eip1559"===l){if("bigint"!=typeof p.baseFeePerGas)throw new r.pw;const t="bigint"==typeof c?.maxPriorityFeePerGas?c.maxPriorityFeePerGas:await(0,a.N)(e,{block:p,chain:u,request:c}),n=h(p.baseFeePerGas);return{maxFeePerGas:c?.maxFeePerGas??n+t,maxPriorityFeePerGas:t}}return{gasPrice:c?.gasPrice??h(await(0,i.T)(e,o.L,"getGasPrice")({}))}}},21379(e,t,n){var r=n(81475),i=n(90913),a=n(33213),s=n(72258).Buffer,o={"des-ede3-cbc":i.CBC.instantiate(i.EDE),"des-ede3":i.EDE,"des-ede-cbc":i.CBC.instantiate(i.EDE),"des-ede":i.EDE,"des-cbc":i.CBC.instantiate(i.DES),"des-ecb":i.DES};function u(e){r.call(this);var t,n=e.mode.toLowerCase(),i=o[n];t=e.decrypt?"decrypt":"encrypt";var a=e.key;s.isBuffer(a)||(a=s.from(a)),"des-ede"!==n&&"des-ede-cbc"!==n||(a=s.concat([a,a.slice(0,8)]));var u=e.iv;s.isBuffer(u)||(u=s.from(u)),this._des=i.create({key:a,iv:u,type:t})}o.des=o["des-cbc"],o.des3=o["des-ede3-cbc"],e.exports=u,a(u,r),u.prototype._update=function(e){return s.from(this._des.update(e))},u.prototype._final=function(){return s.from(this._des.final())}},21506(e,t,n){"use strict";n.d(t,{Dg:()=>g,Ej:()=>b,Fl:()=>T,HT:()=>c,Ho:()=>p,M7:()=>m,Ro:()=>v,Ty:()=>_,di:()=>y,ii:()=>x,oB:()=>d,sH:()=>h,tf:()=>w,u:()=>k,uK:()=>f,xW:()=>u,xb:()=>l});var r=n(52948),i=n(16476),a=n(17993);const s=new TextEncoder,o=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function u(...e){return`0x${e.reduce((e,t)=>e+t.replace("0x",""),"")}`}function c(e){return e instanceof Uint8Array?f(e):Array.isArray(e)?f(new Uint8Array(e)):e}function l(e,t={}){const n=`0x${Number(e)}`;return"number"==typeof t.size?(i.Sl(n,t.size),p(n,t.size)):n}function f(e,t={}){let n="";for(let t=0;ta||i>1n?r:r-s-1n}function v(e,t={}){const{signed:n,size:r}=t;return Number(n||r?g(e,t):e)}function w(e,t={}){const{strict:n=!1}=t;try{return function(e,t={}){const{strict:n=!1}=t;if(!e)throw new S(e);if("string"!=typeof e)throw new S(e);if(n&&!/^0x[0-9a-fA-F]*$/.test(e))throw new E(e);if(!e.startsWith("0x"))throw new E(e)}(e,{strict:n}),!0}catch{return!1}}class _ extends r.C{constructor({max:e,min:t,signed:n,size:r,value:i}){super(`Number \`${i}\` is not in safe${r?` ${8*r}-bit`:""}${n?" signed":" unsigned"} integer range ${e?`(\`${t}\` to \`${e}\`)`:`(above \`${t}\`)`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"})}}r.C;class S extends r.C{constructor(e){super(`Value \`${"object"==typeof e?a.A(e):e}\` of type \`${typeof e}\` is an invalid hex type.`,{metaMessages:['Hex types must be represented as `"0x${string}"`.']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexTypeError"})}}class E extends r.C{constructor(e){super(`Value \`${e}\` is an invalid hex value.`,{metaMessages:['Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexValueError"})}}r.C;class k extends r.C{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeOverflowError"})}}class x extends r.C{constructor({offset:e,position:t,size:n}){super(`Slice ${"start"===t?"starting":"ending"} at offset \`${e}\` is out-of-bounds (size: \`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SliceOffsetOutOfBoundsError"})}}class T extends r.C{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"})}}},21977(e){"use strict";e.exports=ReferenceError},22296(e,t,n){"use strict";function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function i(e){for(var t=1;t0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n}},{key:"concat",value:function(e){if(0===this.length)return u.alloc(0);for(var t=u.allocUnsafe(e>>>0),n=this.head,r=0;n;)f(n.data,t,r),r+=n.data.length,n=n.next;return t}},{key:"consume",value:function(e,t){var n;return ei.length?i.length:e;if(a===i.length?r+=i:r+=i.slice(0,e),0===(e-=a)){a===i.length?(++n,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(a));break}++n}return this.length-=n,r}},{key:"_getBuffer",value:function(e){var t=u.allocUnsafe(e),n=this.head,r=1;for(n.data.copy(t),e-=n.data.length;n=n.next;){var i=n.data,a=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,a),0===(e-=a)){a===i.length?(++r,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=i.slice(a));break}++r}return this.length-=r,t}},{key:l,value:function(e,t){return c(this,i(i({},t),{},{depth:0,customInspect:!1}))}}])&&s(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}()},22323(e,t,n){var r=n(41498);e.exports=g,g.simpleSieve=y,g.fermatTest=b;var i=n(23145),a=new i(24),s=new(n(9007)),o=new i(1),u=new i(2),c=new i(5),l=(new i(16),new i(8),new i(10)),f=new i(3),d=(new i(7),new i(11)),h=new i(4),p=(new i(12),null);function m(){if(null!==p)return p;var e=[];e[0]=2;for(var t=1,n=3;n<1048576;n+=2){for(var r=Math.ceil(Math.sqrt(n)),i=0;ie;)n.ishrn(1);if(n.isEven()&&n.iadd(o),n.testn(1)||n.iadd(u),t.cmp(u)){if(!t.cmp(c))for(;n.mod(l).cmp(f);)n.iadd(h)}else for(;n.mod(a).cmp(d);)n.iadd(h);if(y(p=n.shrn(1))&&y(n)&&b(p)&&b(n)&&s.test(p)&&s.test(n))return n}}},22420(e,t,n){"use strict";n.d(t,{S:()=>a});var r=n(81127),i=n(75209);function a(e){const{kzg:t}=e,n=e.to??("string"==typeof e.blobs[0]?"hex":"bytes"),a="string"==typeof e.blobs[0]?e.blobs.map(e=>(0,r.aT)(e)):e.blobs,s=[];for(const e of a)s.push(Uint8Array.from(t.blobToKzgCommitment(e)));return"bytes"===n?s:s.map(e=>(0,i.My)(e))}},22478(e,t,n){"use strict";n.d(t,{M:()=>i});var r=n(57834);function i({blockNumber:e,chain:t,contract:n}){const i=t?.contracts?.[n];if(!i)throw new r.rj({chain:t,contract:{name:n}});if(e&&i.blockCreated&&i.blockCreated>e)throw new r.rj({blockNumber:e,chain:t,contract:{name:n,blockCreated:i.blockCreated}});return i.address}},22516(e,t,n){(t=e.exports=n(90639)).Stream=t,t.Readable=t,t.Writable=n(6179),t.Duplex=n(77561),t.Transform=n(99791),t.PassThrough=n(27949)},22758(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=(r=n(13409))&&r.__esModule?r:{default:r};t.default=function(e){for(var t=e.A,n=e.C,r=0;r<25;r+=5){for(var a=0;a<5;a++)(0,i.default)(t,r+a)(n,a);for(var s=0;s<5;s++){var o=2*(r+s),u=(s+1)%5*2,c=(s+2)%5*2;t[o]^=~n[u]&n[c],t[o+1]^=~n[u+1]&n[c+1]}}}},22839(e,t,n){"use strict";n.d(t,{e:()=>f});var r=n(8609),i=n(92666),a=n(17230),s=n(9033),o=n(20094);class u extends o.C{constructor({type:e}){super("Circular reference detected.",{metaMessages:[`Struct "${e}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}}var c=n(72021),l=n(18318);function f(e){const t={},n=e.length;for(let r=0;r[a-zA-Z$_][a-zA-Z0-9$_]*)(?(?:\[\d*?\])+?)?$/;function h(e=[],t={},n=new Set){const s=[],o=e.length;for(let c=0;c=65&&n<=70?n-55:n>=97&&n<=102?n-87:n-48&15}function u(e,t,n){var r=o(e,n);return n-1>=t&&(r|=o(e,n-1)<<4),r}function c(e,t,n,r){for(var i=0,a=Math.min(e.length,n),s=t;s=49?o-49+10:o>=17?o-17+10:o}return i}a.isBN=function(e){return e instanceof a||null!==e&&"object"==typeof e&&e.constructor.wordSize===a.wordSize&&Array.isArray(e.words)},a.max=function(e,t){return e.cmp(t)>0?e:t},a.min=function(e,t){return e.cmp(t)<0?e:t},a.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(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[a]|=s<>>26-o&67108863,(o+=24)>=26&&(o-=26,a++);else if("le"===n)for(i=0,a=0;i>>26-o&67108863,(o+=24)>=26&&(o-=26,a++);return this.strip()},a.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=2)i=u(e,t,r)<=18?(a-=18,s+=1,this.words[s]|=i>>>26):a+=8;else for(r=(e.length-t)%2==0?t+1:t;r=18?(a-=18,s+=1,this.words[s]|=i>>>26):a+=8;this.strip()},a.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var a=e.length-n,s=a%r,o=Math.min(a,a-s)+n,u=0,l=n;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?""};var l=["","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"],f=[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],d=[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 h(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],a=0|t.words[0],s=i*a,o=67108863&s,u=s/67108864|0;n.words[0]=o;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])*(a=0|t.words[h])+f)/67108864|0,f=67108863&s}n.words[c]=0|f,u=0|l}return 0!==u?n.words[c]=0|u:n.length--,n.strip()}a.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,a=0,s=0;s>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),n=0!==a||s!==this.length-1?l[6-u.length]+u+n:u+n}for(0!==a&&(n=a.toString(16)+n);n.length%t!==0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var c=f[e],h=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(h).toString(e);n=(p=p.idivn(h)).isZero()?m+n:l[c-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!==0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},a.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&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(e,t){return r(void 0!==s),this.toArrayLike(s,e,t)},a.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},a.prototype.toArrayLike=function(e,t,n){var i=this.byteLength(),a=n||Math.max(1,i);r(i<=a,"byte array longer than desired length"),r(a>0,"Requested array length <= 0"),this.strip();var s,o,u="le"===t,c=new e(a),l=this.clone();if(u){for(o=0;!l.isZero();o++)s=l.andln(255),l.iushrn(8),c[o]=s;for(;o=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},a.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 8191&t||(n+=13,t>>>=13),127&t||(n+=7,t>>>=7),15&t||(n+=4,t>>>=4),3&t||(n+=2,t>>>=2),1&t||n++,n},a.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},a.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},a.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},a.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},a.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;re.length?this.clone().ixor(e):e.clone().ixor(this)},a.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},a.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-n),this.strip()},a.prototype.notn=function(e){return this.clone().inotn(e)},a.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(n=this,r=e):(n=e,r=this);for(var i=0,a=0;a>>26;for(;0!==i&&a>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;ae.length?this.clone().iadd(e):e.clone().iadd(this)},a.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 n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var a=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==a&&s>26,this.words[s]=67108863&t;if(0===a&&s>>13,h=0|s[1],p=8191&h,m=h>>>13,y=0|s[2],b=8191&y,g=y>>>13,v=0|s[3],w=8191&v,_=v>>>13,S=0|s[4],E=8191&S,k=S>>>13,x=0|s[5],T=8191&x,M=x>>>13,I=0|s[6],A=8191&I,N=I>>>13,P=0|s[7],O=8191&P,R=P>>>13,C=0|s[8],B=8191&C,F=C>>>13,L=0|s[9],j=8191&L,D=L>>>13,U=0|o[0],z=8191&U,$=U>>>13,V=0|o[1],K=8191&V,Y=V>>>13,q=0|o[2],H=8191&q,G=q>>>13,W=0|o[3],X=8191&W,J=W>>>13,Z=0|o[4],Q=8191&Z,ee=Z>>>13,te=0|o[5],ne=8191&te,re=te>>>13,ie=0|o[6],ae=8191&ie,se=ie>>>13,oe=0|o[7],ue=8191&oe,ce=oe>>>13,le=0|o[8],fe=8191&le,de=le>>>13,he=0|o[9],pe=8191&he,me=he>>>13;n.negative=e.negative^t.negative,n.length=19;var ye=(c+(r=Math.imul(f,z))|0)+((8191&(i=(i=Math.imul(f,$))+Math.imul(d,z)|0))<<13)|0;c=((a=Math.imul(d,$))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(p,z),i=(i=Math.imul(p,$))+Math.imul(m,z)|0,a=Math.imul(m,$);var be=(c+(r=r+Math.imul(f,K)|0)|0)+((8191&(i=(i=i+Math.imul(f,Y)|0)+Math.imul(d,K)|0))<<13)|0;c=((a=a+Math.imul(d,Y)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(b,z),i=(i=Math.imul(b,$))+Math.imul(g,z)|0,a=Math.imul(g,$),r=r+Math.imul(p,K)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(m,K)|0,a=a+Math.imul(m,Y)|0;var ge=(c+(r=r+Math.imul(f,H)|0)|0)+((8191&(i=(i=i+Math.imul(f,G)|0)+Math.imul(d,H)|0))<<13)|0;c=((a=a+Math.imul(d,G)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(w,z),i=(i=Math.imul(w,$))+Math.imul(_,z)|0,a=Math.imul(_,$),r=r+Math.imul(b,K)|0,i=(i=i+Math.imul(b,Y)|0)+Math.imul(g,K)|0,a=a+Math.imul(g,Y)|0,r=r+Math.imul(p,H)|0,i=(i=i+Math.imul(p,G)|0)+Math.imul(m,H)|0,a=a+Math.imul(m,G)|0;var ve=(c+(r=r+Math.imul(f,X)|0)|0)+((8191&(i=(i=i+Math.imul(f,J)|0)+Math.imul(d,X)|0))<<13)|0;c=((a=a+Math.imul(d,J)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(E,z),i=(i=Math.imul(E,$))+Math.imul(k,z)|0,a=Math.imul(k,$),r=r+Math.imul(w,K)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(_,K)|0,a=a+Math.imul(_,Y)|0,r=r+Math.imul(b,H)|0,i=(i=i+Math.imul(b,G)|0)+Math.imul(g,H)|0,a=a+Math.imul(g,G)|0,r=r+Math.imul(p,X)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(m,X)|0,a=a+Math.imul(m,J)|0;var we=(c+(r=r+Math.imul(f,Q)|0)|0)+((8191&(i=(i=i+Math.imul(f,ee)|0)+Math.imul(d,Q)|0))<<13)|0;c=((a=a+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(T,z),i=(i=Math.imul(T,$))+Math.imul(M,z)|0,a=Math.imul(M,$),r=r+Math.imul(E,K)|0,i=(i=i+Math.imul(E,Y)|0)+Math.imul(k,K)|0,a=a+Math.imul(k,Y)|0,r=r+Math.imul(w,H)|0,i=(i=i+Math.imul(w,G)|0)+Math.imul(_,H)|0,a=a+Math.imul(_,G)|0,r=r+Math.imul(b,X)|0,i=(i=i+Math.imul(b,J)|0)+Math.imul(g,X)|0,a=a+Math.imul(g,J)|0,r=r+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(m,Q)|0,a=a+Math.imul(m,ee)|0;var _e=(c+(r=r+Math.imul(f,ne)|0)|0)+((8191&(i=(i=i+Math.imul(f,re)|0)+Math.imul(d,ne)|0))<<13)|0;c=((a=a+Math.imul(d,re)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(A,z),i=(i=Math.imul(A,$))+Math.imul(N,z)|0,a=Math.imul(N,$),r=r+Math.imul(T,K)|0,i=(i=i+Math.imul(T,Y)|0)+Math.imul(M,K)|0,a=a+Math.imul(M,Y)|0,r=r+Math.imul(E,H)|0,i=(i=i+Math.imul(E,G)|0)+Math.imul(k,H)|0,a=a+Math.imul(k,G)|0,r=r+Math.imul(w,X)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,X)|0,a=a+Math.imul(_,J)|0,r=r+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,ee)|0)+Math.imul(g,Q)|0,a=a+Math.imul(g,ee)|0,r=r+Math.imul(p,ne)|0,i=(i=i+Math.imul(p,re)|0)+Math.imul(m,ne)|0,a=a+Math.imul(m,re)|0;var Se=(c+(r=r+Math.imul(f,ae)|0)|0)+((8191&(i=(i=i+Math.imul(f,se)|0)+Math.imul(d,ae)|0))<<13)|0;c=((a=a+Math.imul(d,se)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(O,z),i=(i=Math.imul(O,$))+Math.imul(R,z)|0,a=Math.imul(R,$),r=r+Math.imul(A,K)|0,i=(i=i+Math.imul(A,Y)|0)+Math.imul(N,K)|0,a=a+Math.imul(N,Y)|0,r=r+Math.imul(T,H)|0,i=(i=i+Math.imul(T,G)|0)+Math.imul(M,H)|0,a=a+Math.imul(M,G)|0,r=r+Math.imul(E,X)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(k,X)|0,a=a+Math.imul(k,J)|0,r=r+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,a=a+Math.imul(_,ee)|0,r=r+Math.imul(b,ne)|0,i=(i=i+Math.imul(b,re)|0)+Math.imul(g,ne)|0,a=a+Math.imul(g,re)|0,r=r+Math.imul(p,ae)|0,i=(i=i+Math.imul(p,se)|0)+Math.imul(m,ae)|0,a=a+Math.imul(m,se)|0;var Ee=(c+(r=r+Math.imul(f,ue)|0)|0)+((8191&(i=(i=i+Math.imul(f,ce)|0)+Math.imul(d,ue)|0))<<13)|0;c=((a=a+Math.imul(d,ce)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(B,z),i=(i=Math.imul(B,$))+Math.imul(F,z)|0,a=Math.imul(F,$),r=r+Math.imul(O,K)|0,i=(i=i+Math.imul(O,Y)|0)+Math.imul(R,K)|0,a=a+Math.imul(R,Y)|0,r=r+Math.imul(A,H)|0,i=(i=i+Math.imul(A,G)|0)+Math.imul(N,H)|0,a=a+Math.imul(N,G)|0,r=r+Math.imul(T,X)|0,i=(i=i+Math.imul(T,J)|0)+Math.imul(M,X)|0,a=a+Math.imul(M,J)|0,r=r+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(k,Q)|0,a=a+Math.imul(k,ee)|0,r=r+Math.imul(w,ne)|0,i=(i=i+Math.imul(w,re)|0)+Math.imul(_,ne)|0,a=a+Math.imul(_,re)|0,r=r+Math.imul(b,ae)|0,i=(i=i+Math.imul(b,se)|0)+Math.imul(g,ae)|0,a=a+Math.imul(g,se)|0,r=r+Math.imul(p,ue)|0,i=(i=i+Math.imul(p,ce)|0)+Math.imul(m,ue)|0,a=a+Math.imul(m,ce)|0;var ke=(c+(r=r+Math.imul(f,fe)|0)|0)+((8191&(i=(i=i+Math.imul(f,de)|0)+Math.imul(d,fe)|0))<<13)|0;c=((a=a+Math.imul(d,de)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(j,z),i=(i=Math.imul(j,$))+Math.imul(D,z)|0,a=Math.imul(D,$),r=r+Math.imul(B,K)|0,i=(i=i+Math.imul(B,Y)|0)+Math.imul(F,K)|0,a=a+Math.imul(F,Y)|0,r=r+Math.imul(O,H)|0,i=(i=i+Math.imul(O,G)|0)+Math.imul(R,H)|0,a=a+Math.imul(R,G)|0,r=r+Math.imul(A,X)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(N,X)|0,a=a+Math.imul(N,J)|0,r=r+Math.imul(T,Q)|0,i=(i=i+Math.imul(T,ee)|0)+Math.imul(M,Q)|0,a=a+Math.imul(M,ee)|0,r=r+Math.imul(E,ne)|0,i=(i=i+Math.imul(E,re)|0)+Math.imul(k,ne)|0,a=a+Math.imul(k,re)|0,r=r+Math.imul(w,ae)|0,i=(i=i+Math.imul(w,se)|0)+Math.imul(_,ae)|0,a=a+Math.imul(_,se)|0,r=r+Math.imul(b,ue)|0,i=(i=i+Math.imul(b,ce)|0)+Math.imul(g,ue)|0,a=a+Math.imul(g,ce)|0,r=r+Math.imul(p,fe)|0,i=(i=i+Math.imul(p,de)|0)+Math.imul(m,fe)|0,a=a+Math.imul(m,de)|0;var xe=(c+(r=r+Math.imul(f,pe)|0)|0)+((8191&(i=(i=i+Math.imul(f,me)|0)+Math.imul(d,pe)|0))<<13)|0;c=((a=a+Math.imul(d,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(j,K),i=(i=Math.imul(j,Y))+Math.imul(D,K)|0,a=Math.imul(D,Y),r=r+Math.imul(B,H)|0,i=(i=i+Math.imul(B,G)|0)+Math.imul(F,H)|0,a=a+Math.imul(F,G)|0,r=r+Math.imul(O,X)|0,i=(i=i+Math.imul(O,J)|0)+Math.imul(R,X)|0,a=a+Math.imul(R,J)|0,r=r+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(N,Q)|0,a=a+Math.imul(N,ee)|0,r=r+Math.imul(T,ne)|0,i=(i=i+Math.imul(T,re)|0)+Math.imul(M,ne)|0,a=a+Math.imul(M,re)|0,r=r+Math.imul(E,ae)|0,i=(i=i+Math.imul(E,se)|0)+Math.imul(k,ae)|0,a=a+Math.imul(k,se)|0,r=r+Math.imul(w,ue)|0,i=(i=i+Math.imul(w,ce)|0)+Math.imul(_,ue)|0,a=a+Math.imul(_,ce)|0,r=r+Math.imul(b,fe)|0,i=(i=i+Math.imul(b,de)|0)+Math.imul(g,fe)|0,a=a+Math.imul(g,de)|0;var Te=(c+(r=r+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;c=((a=a+Math.imul(m,me)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(j,H),i=(i=Math.imul(j,G))+Math.imul(D,H)|0,a=Math.imul(D,G),r=r+Math.imul(B,X)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(F,X)|0,a=a+Math.imul(F,J)|0,r=r+Math.imul(O,Q)|0,i=(i=i+Math.imul(O,ee)|0)+Math.imul(R,Q)|0,a=a+Math.imul(R,ee)|0,r=r+Math.imul(A,ne)|0,i=(i=i+Math.imul(A,re)|0)+Math.imul(N,ne)|0,a=a+Math.imul(N,re)|0,r=r+Math.imul(T,ae)|0,i=(i=i+Math.imul(T,se)|0)+Math.imul(M,ae)|0,a=a+Math.imul(M,se)|0,r=r+Math.imul(E,ue)|0,i=(i=i+Math.imul(E,ce)|0)+Math.imul(k,ue)|0,a=a+Math.imul(k,ce)|0,r=r+Math.imul(w,fe)|0,i=(i=i+Math.imul(w,de)|0)+Math.imul(_,fe)|0,a=a+Math.imul(_,de)|0;var Me=(c+(r=r+Math.imul(b,pe)|0)|0)+((8191&(i=(i=i+Math.imul(b,me)|0)+Math.imul(g,pe)|0))<<13)|0;c=((a=a+Math.imul(g,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(j,X),i=(i=Math.imul(j,J))+Math.imul(D,X)|0,a=Math.imul(D,J),r=r+Math.imul(B,Q)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(F,Q)|0,a=a+Math.imul(F,ee)|0,r=r+Math.imul(O,ne)|0,i=(i=i+Math.imul(O,re)|0)+Math.imul(R,ne)|0,a=a+Math.imul(R,re)|0,r=r+Math.imul(A,ae)|0,i=(i=i+Math.imul(A,se)|0)+Math.imul(N,ae)|0,a=a+Math.imul(N,se)|0,r=r+Math.imul(T,ue)|0,i=(i=i+Math.imul(T,ce)|0)+Math.imul(M,ue)|0,a=a+Math.imul(M,ce)|0,r=r+Math.imul(E,fe)|0,i=(i=i+Math.imul(E,de)|0)+Math.imul(k,fe)|0,a=a+Math.imul(k,de)|0;var Ie=(c+(r=r+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,me)|0)+Math.imul(_,pe)|0))<<13)|0;c=((a=a+Math.imul(_,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(j,Q),i=(i=Math.imul(j,ee))+Math.imul(D,Q)|0,a=Math.imul(D,ee),r=r+Math.imul(B,ne)|0,i=(i=i+Math.imul(B,re)|0)+Math.imul(F,ne)|0,a=a+Math.imul(F,re)|0,r=r+Math.imul(O,ae)|0,i=(i=i+Math.imul(O,se)|0)+Math.imul(R,ae)|0,a=a+Math.imul(R,se)|0,r=r+Math.imul(A,ue)|0,i=(i=i+Math.imul(A,ce)|0)+Math.imul(N,ue)|0,a=a+Math.imul(N,ce)|0,r=r+Math.imul(T,fe)|0,i=(i=i+Math.imul(T,de)|0)+Math.imul(M,fe)|0,a=a+Math.imul(M,de)|0;var Ae=(c+(r=r+Math.imul(E,pe)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(k,pe)|0))<<13)|0;c=((a=a+Math.imul(k,me)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(j,ne),i=(i=Math.imul(j,re))+Math.imul(D,ne)|0,a=Math.imul(D,re),r=r+Math.imul(B,ae)|0,i=(i=i+Math.imul(B,se)|0)+Math.imul(F,ae)|0,a=a+Math.imul(F,se)|0,r=r+Math.imul(O,ue)|0,i=(i=i+Math.imul(O,ce)|0)+Math.imul(R,ue)|0,a=a+Math.imul(R,ce)|0,r=r+Math.imul(A,fe)|0,i=(i=i+Math.imul(A,de)|0)+Math.imul(N,fe)|0,a=a+Math.imul(N,de)|0;var Ne=(c+(r=r+Math.imul(T,pe)|0)|0)+((8191&(i=(i=i+Math.imul(T,me)|0)+Math.imul(M,pe)|0))<<13)|0;c=((a=a+Math.imul(M,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(j,ae),i=(i=Math.imul(j,se))+Math.imul(D,ae)|0,a=Math.imul(D,se),r=r+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,ce)|0)+Math.imul(F,ue)|0,a=a+Math.imul(F,ce)|0,r=r+Math.imul(O,fe)|0,i=(i=i+Math.imul(O,de)|0)+Math.imul(R,fe)|0,a=a+Math.imul(R,de)|0;var Pe=(c+(r=r+Math.imul(A,pe)|0)|0)+((8191&(i=(i=i+Math.imul(A,me)|0)+Math.imul(N,pe)|0))<<13)|0;c=((a=a+Math.imul(N,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,r=Math.imul(j,ue),i=(i=Math.imul(j,ce))+Math.imul(D,ue)|0,a=Math.imul(D,ce),r=r+Math.imul(B,fe)|0,i=(i=i+Math.imul(B,de)|0)+Math.imul(F,fe)|0,a=a+Math.imul(F,de)|0;var Oe=(c+(r=r+Math.imul(O,pe)|0)|0)+((8191&(i=(i=i+Math.imul(O,me)|0)+Math.imul(R,pe)|0))<<13)|0;c=((a=a+Math.imul(R,me)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(j,fe),i=(i=Math.imul(j,de))+Math.imul(D,fe)|0,a=Math.imul(D,de);var Re=(c+(r=r+Math.imul(B,pe)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(F,pe)|0))<<13)|0;c=((a=a+Math.imul(F,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863;var Ce=(c+(r=Math.imul(j,pe))|0)+((8191&(i=(i=Math.imul(j,me))+Math.imul(D,pe)|0))<<13)|0;return c=((a=Math.imul(D,me))+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,u[0]=ye,u[1]=be,u[2]=ge,u[3]=ve,u[4]=we,u[5]=_e,u[6]=Se,u[7]=Ee,u[8]=ke,u[9]=xe,u[10]=Te,u[11]=Me,u[12]=Ie,u[13]=Ae,u[14]=Ne,u[15]=Pe,u[16]=Oe,u[17]=Re,u[18]=Ce,0!==c&&(u[19]=c,n.length++),n};function m(e,t,n){return(new y).mulp(e,t,n)}function y(e,t){this.x=e,this.y=t}Math.imul||(p=h),a.prototype.mulTo=function(e,t){var n,r=this.length+e.length;return n=10===this.length&&10===e.length?p(this,e,t):r<63?h(this,e,t):r<1024?function(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,a=0;a>>26)|0)>>>26,s&=67108863}n.words[a]=o,r=s,s=i}return 0!==r?n.words[a]=r:n.length--,n.strip()}(this,e,t):m(this,e,t),n},y.prototype.makeRBT=function(e){for(var t=new Array(e),n=a.prototype._countBits(e)-1,r=0;r>=1;return r},y.prototype.permute=function(e,t,n,r,i,a){for(var s=0;s>>=1)i++;return 1<>>=13,n[2*s+1]=8191&a,a>>>=13;for(s=2*t;s>=26,t+=i/67108864|0,t+=a>>>26,this.words[n]=67108863&a}return 0!==t&&(this.words[n]=t,this.length++),this.length=0===e?1:this.length,this},a.prototype.muln=function(e){return this.clone().imuln(e)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n>>i}return t}(e);if(0===t.length)return new a(1);for(var n=this,r=0;r=0);var t,n=e%26,i=(e-n)/26,a=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t>>26-n}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 a=e%26,s=Math.min((e-a)/26,this.length),o=67108863^67108863>>>a<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-a|f>>>a,l=f&o}return u&&0!==l&&(u.words[u.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},a.prototype.shln=function(e){return this.clone().ishln(e)},a.prototype.ushln=function(e){return this.clone().iushln(e)},a.prototype.shrn=function(e){return this.clone().ishrn(e)},a.prototype.ushrn=function(e){return this.clone().iushrn(e)},a.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,i=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,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},a.prototype.isubn=function(e){if(r("number"==typeof e),r(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+n]=67108863&a}for(;i>26,this.words[i+n]=67108863&a;if(0===o)return this.strip();for(r(-1===o),o=0,i=0;i>26,this.words[i]=67108863&a;return this.negative=1,this.strip()},a.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),i=e,s=0|i.words[i.length-1];0!=(n=26-this._countBits(s))&&(i=i.ushln(n),r.iushln(n),s=0|i.words[i.length-1]);var o,u=r.length-i.length;if("mod"!==t){(o=new a(null)).length=u+1,o.words=new Array(o.length);for(var c=0;c=0;f--){var d=67108864*(0|r.words[i.length+f])+(0|r.words[i.length+f-1]);for(d=Math.min(d/s|0,67108863),r._ishlnsubmul(i,d,f);0!==r.negative;)d--,r.negative=0,r._ishlnsubmul(i,1,f),r.isZero()||(r.negative^=1);o&&(o.words[f]=d)}return o&&o.strip(),r.strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:o||null,mod:r}},a.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===e.negative?(o=this.neg().divmod(e,t),"mod"!==t&&(i=o.div.neg()),"div"!==t&&(s=o.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:i,mod:s}):0===this.negative&&0!==e.negative?(o=this.divmod(e.neg(),t),"mod"!==t&&(i=o.div.neg()),{div:i,mod:o.mod}):0!==(this.negative&e.negative)?(o=this.neg().divmod(e.neg(),t),"div"!==t&&(s=o.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:o.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new a(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new a(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new a(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,s,o},a.prototype.div=function(e){return this.divmod(e,"div",!1).div},a.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},a.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},a.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),a=n.cmp(r);return a<0||1===i&&0===a?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},a.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,i=this.length-1;i>=0;i--)n=(t*n+(0|this.words[i]))%e;return n},a.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var i=(0|this.words[n])+67108864*t;this.words[n]=i/e|0,t=i%e}return this.strip()},a.prototype.divn=function(e){return this.clone().idivn(e)},a.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new a(1),s=new a(0),o=new a(0),u=new a(1),c=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++c;for(var l=n.clone(),f=t.clone();!t.isZero();){for(var d=0,h=1;0===(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,m=1;0===(n.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(o.isOdd()||u.isOdd())&&(o.iadd(l),u.isub(f)),o.iushrn(1),u.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(o),s.isub(u)):(n.isub(t),o.isub(i),u.isub(s))}return{a:o,b:u,gcd:n.iushln(c)}},a.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,s=new a(1),o=new a(0),u=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var c=0,l=1;0===(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;0===(n.words[0]&d)&&f<26;++f,d<<=1);if(f>0)for(n.iushrn(f);f-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(o)):(n.isub(t),o.isub(s))}return(i=0===t.cmpn(1)?s:o).cmpn(0)<0&&i.iadd(e),i},a.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var a=t;t=n,n=a}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},a.prototype.invm=function(e){return this.egcd(e).a.umod(e)},a.prototype.isEven=function(){return!(1&this.words[0])},a.prototype.isOdd=function(){return!(1&~this.words[0])},a.prototype.andln=function(e){return this.words[0]&e},a.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<>>26,o&=67108863,this.words[s]=o}return 0!==a&&(this.words[s]=a,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:ie.length)return 1;if(this.length=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){ri&&(t=1);break}}return t},a.prototype.gtn=function(e){return 1===this.cmpn(e)},a.prototype.gt=function(e){return 1===this.cmp(e)},a.prototype.gten=function(e){return this.cmpn(e)>=0},a.prototype.gte=function(e){return this.cmp(e)>=0},a.prototype.ltn=function(e){return-1===this.cmpn(e)},a.prototype.lt=function(e){return-1===this.cmp(e)},a.prototype.lten=function(e){return this.cmpn(e)<=0},a.prototype.lte=function(e){return this.cmp(e)<=0},a.prototype.eqn=function(e){return 0===this.cmpn(e)},a.prototype.eq=function(e){return 0===this.cmp(e)},a.red=function(e){return new E(e)},a.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},a.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(e){return this.red=e,this},a.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},a.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},a.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},a.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},a.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},a.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},a.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},a.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},a.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(e){return r(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 g(e,t){this.name=e,this.p=new a(t,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function E(e){if("string"==typeof e){var t=a._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function k(e){E.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(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)}g.prototype._tmp=function(){var e=new a(null);return e.words=new Array(Math.ceil(this.n/13)),e},g.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},g.prototype.split=function(e,t){e.iushrn(this.n,0,t)},g.prototype.imulK=function(e){return e.imul(this.k)},i(v,g),v.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i>>22,a=s}a>>>=22,e.words[i-10]=a,0===a&&e.length>10?e.length-=10:e.length-=9},v.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},a._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new v;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new S}return b[e]=t,t},E.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},E.prototype._verify2=function(e,t){r(0===(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},E.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},E.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},E.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},E.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},E.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},E.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},E.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},E.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},E.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},E.prototype.isqr=function(e){return this.imul(e,e.clone())},E.prototype.sqr=function(e){return this.mul(e,e)},E.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new a(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var o=new a(1).toRed(this),u=o.redNeg(),c=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new a(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(o);){for(var m=h,y=0;0!==m.cmp(o);y++)m=m.redSqr();r(y=0;r--){for(var c=t.words[r],l=u-1;l>=0;l--){var f=c>>l&1;i!==n[0]&&(i=this.sqr(i)),0!==f||0!==s?(s<<=1,s|=f,(4===++o||0===r&&0===l)&&(i=this.mul(i,n[s]),o=0,s=0)):o=0}u=26}return i},E.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},E.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new k(e)},i(k,E),k.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},k.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},k.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},k.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new a(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).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)},k.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=n.nmd(e),this)},23179(e,t,n){"use strict";n.d(t,{_:()=>a});var r=n(14583),i=n(25408);function a(e,t="wei"){return(0,i.X)(e,r.sz[t])}},23189(e){"use strict";e.exports={rE:"6.6.1"}},23215(e,t,n){"use strict";var r=n(97103),i=n(79601),a=r.rotl32,s=r.sum32,o=r.sum32_3,u=r.sum32_4,c=i.BlockHash;function l(){if(!(this instanceof l))return new l;c.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function f(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function d(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function h(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}r.inherits(l,c),t.ripemd160=l,l.blockSize=512,l.outSize=160,l.hmacStrength=192,l.padLength=64,l.prototype._update=function(e,t){for(var n=this.h[0],r=this.h[1],i=this.h[2],c=this.h[3],l=this.h[4],g=n,v=r,w=i,_=c,S=l,E=0;E<80;E++){var k=s(a(u(n,f(E,r,i,c),e[p[E]+t],d(E)),y[E]),l);n=l,l=c,c=a(i,10),i=r,r=k,k=s(a(u(g,f(79-E,v,w,_),e[m[E]+t],h(E)),b[E]),S),g=S,S=_,_=a(w,10),w=v,v=k}k=o(this.h[1],i,_),this.h[1]=o(this.h[2],c,S),this.h[2]=o(this.h[3],l,g),this.h[3]=o(this.h[4],n,v),this.h[4]=o(this.h[0],r,w),this.h[0]=k},l.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"little"):r.split32(this.h,"little")};var p=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],m=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],y=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],b=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},23343(e,t,n){"use strict";n.d(t,{J_:()=>s,SC:()=>i,Z4:()=>a,jV:()=>c,vX:()=>o});var r=n(12717);const i=(e,t)=>{switch(t._tag){case"StringKeyword":case"TemplateLiteral":return Object.keys(e);case"SymbolKeyword":return Object.getOwnPropertySymbols(e);case"Refinement":return i(e,t.from)}},a=e=>{let t,n=!1;return()=>(n||(t=e(),n=!0),t)},s=e=>Array.isArray(e),o=e=>!Array.isArray(e),u=e=>`[${r._r(e)}]`,c=e=>s(e)?e.map(u).join(""):u(e)},23427(e,t,n){"use strict";n.d(t,{p:()=>s});var r=n(61355),i=n(85327),a=n(77411);function s(e,{docsPath:t,...n}){const s=(()=>{const t=(0,a.l)(e,n);return t instanceof r.RM?e:t})();return new i.$s(s,{docsPath:t,...n})}},23619(e,t,n){"use strict";n.d(t,{g:()=>a});var r=n(14583),i=n(25408);function a(e,t="wei"){return(0,i.X)(e,r.eL[t])}},23777(e,t,n){"use strict";n.d(t,{sc:()=>f});var r=n(40906);function i(e,t,n){return e&t^~e&n}function a(e,t,n){return e&t^e&n^t&n}class s extends r.Vw{constructor(e,t,n,i){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=i,this.buffer=new Uint8Array(e),this.view=(0,r.O8)(this.buffer)}update(e){(0,r.CC)(this),e=(0,r.ZJ)(e),(0,r.DO)(e);const{view:t,buffer:n,blockLen:i}=this,a=e.length;for(let s=0;si-s&&(this.process(n,0),s=0);for(let e=s;e>i&a),o=Number(n&a),u=r?4:0,c=r?0:4;e.setUint32(t+u,s,r),e.setUint32(t+c,o,r)}(n,i-8,BigInt(8*this.length),a),this.process(n,0);const o=(0,r.O8)(e),u=this.outputLen;if(u%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const c=u/4,l=this.get();if(c>l.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e>>3,a=(0,r.Ow)(n,17)^(0,r.Ow)(n,19)^n>>>10;c[e]=a+c[e-7]+i+c[e-16]|0}let{A:n,B:s,C:o,D:l,E:f,F:d,G:h,H:p}=this;for(let e=0;e<64;e++){const t=p+((0,r.Ow)(f,6)^(0,r.Ow)(f,11)^(0,r.Ow)(f,25))+i(f,d,h)+u[e]+c[e]|0,m=((0,r.Ow)(n,2)^(0,r.Ow)(n,13)^(0,r.Ow)(n,22))+a(n,s,o)|0;p=h,h=d,d=f,f=l+t|0,l=o,o=s,s=n,n=t+m|0}n=n+this.A|0,s=s+this.B|0,o=o+this.C|0,l=l+this.D|0,f=f+this.E|0,d=d+this.F|0,h=h+this.G|0,p=p+this.H|0,this.set(n,s,o,l,f,d,h,p)}roundClean(){(0,r.uH)(c)}destroy(){this.set(0,0,0,0,0,0,0,0),(0,r.uH)(this.buffer)}}const f=(0,r.qj)(()=>new l)},24002(e){"use strict";e.exports=URIError},24414(e,t,n){"use strict";var r=n(72258).Buffer,i=n(74393),a=n(24554).ec,s=n(45775),o=n(59824);function u(e,t){if(e.cmpn(0)<=0)throw new Error("invalid sig");if(e.cmp(t)>=0)throw new Error("invalid sig")}e.exports=function(e,t,n,c,l){var f=s(n);if("ec"===f.type){if("ecdsa"!==c&&"ecdsa/rsa"!==c)throw new Error("wrong public key type");return function(e,t,n){var r=o[n.data.algorithm.curve.join(".")];if(!r)throw new Error("unknown curve "+n.data.algorithm.curve.join("."));var i=new a(r),s=n.data.subjectPrivateKey.data;return i.verify(t,e,s)}(e,t,f)}if("dsa"===f.type){if("dsa"!==c)throw new Error("wrong public key type");return function(e,t,n){var r=n.data.p,a=n.data.q,o=n.data.g,c=n.data.pub_key,l=s.signature.decode(e,"der"),f=l.s,d=l.r;u(f,a),u(d,a);var h=i.mont(r),p=f.invm(a);return 0===o.toRed(h).redPow(new i(t).mul(p).mod(a)).fromRed().mul(c.toRed(h).redPow(d.mul(p).mod(a)).fromRed()).mod(r).mod(a).cmp(d)}(e,t,f)}if("rsa"!==c&&"ecdsa/rsa"!==c)throw new Error("wrong public key type");t=r.concat([l,t]);for(var d=f.modulus.byteLength(),h=[1],p=0;t.length+h.length+2s});var r=n(45264),i=n(58038),a=n(81127);function s({r:e,s:t,to:n="hex",v:s,yParity:o}){const u=(()=>{if(0===o||1===o)return o;if(s&&(27n===s||28n===s||s>=35n))return s%2n==0n?1:0;throw new Error("Invalid `v` or `yParity` value")})(),c=`0x${new r.secp256k1.Signature((0,i.uU)(e),(0,i.uU)(t)).toCompactHex()}${0===u?"1b":"1c"}`;return"hex"===n?c:(0,a.aT)(c)}},24852(e,t,n){"use strict";var r,i=n(42649);function a(e,t,n){return(t=function(e){var t=function(e){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s=n(60911),o=Symbol("lastResolve"),u=Symbol("lastReject"),c=Symbol("error"),l=Symbol("ended"),f=Symbol("lastPromise"),d=Symbol("handlePromise"),h=Symbol("stream");function p(e,t){return{value:e,done:t}}function m(e){var t=e[o];if(null!==t){var n=e[h].read();null!==n&&(e[f]=null,e[o]=null,e[u]=null,t(p(n,!1)))}}function y(e){i.nextTick(m,e)}var b=Object.getPrototypeOf(function(){}),g=Object.setPrototypeOf((a(r={get stream(){return this[h]},next:function(){var e=this,t=this[c];if(null!==t)return Promise.reject(t);if(this[l])return Promise.resolve(p(void 0,!0));if(this[h].destroyed)return new Promise(function(t,n){i.nextTick(function(){e[c]?n(e[c]):t(p(void 0,!0))})});var n,r=this[f];if(r)n=new Promise(function(e,t){return function(n,r){e.then(function(){t[l]?n(p(void 0,!0)):t[d](n,r)},r)}}(r,this));else{var a=this[h].read();if(null!==a)return Promise.resolve(p(a,!1));n=new Promise(this[d])}return this[f]=n,n}},Symbol.asyncIterator,function(){return this}),a(r,"return",function(){var e=this;return new Promise(function(t,n){e[h].destroy(null,function(e){e?n(e):t(p(void 0,!0))})})}),r),b);e.exports=function(e){var t,n=Object.create(g,(a(t={},h,{value:e,writable:!0}),a(t,o,{value:null,writable:!0}),a(t,u,{value:null,writable:!0}),a(t,c,{value:null,writable:!0}),a(t,l,{value:e._readableState.endEmitted,writable:!0}),a(t,d,{value:function(e,t){var r=n[h].read();r?(n[f]=null,n[o]=null,n[u]=null,e(p(r,!1))):(n[o]=e,n[u]=t)},writable:!0}),t));return n[f]=null,s(e,function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=n[u];return null!==t&&(n[f]=null,n[o]=null,n[u]=null,t(e)),void(n[c]=e)}var r=n[o];null!==r&&(n[f]=null,n[o]=null,n[u]=null,r(p(void 0,!0))),n[l]=!0}),e.on("readable",y.bind(null,n)),n}},25408(e,t,n){"use strict";n.d(t,{X:()=>a});var r=n(2273);class i extends r.C{constructor({value:e}){super(`Number \`${e}\` is not a valid decimal number.`,{name:"InvalidDecimalNumberError"})}}function a(e,t){if(!/^(-?)([0-9]*)\.?([0-9]*)$/.test(e))throw new i({value:e});let[n,r="0"]=e.split(".");const a=n.startsWith("-");if(a&&(n=n.slice(1)),r=r.replace(/(0+)$/,""),0===t)1===Math.round(Number(`.${r}`))&&(n=`${BigInt(n)+1n}`),r="";else if(r.length>t){const[e,i,a]=[r.slice(0,t-1),r.slice(t-1,t),r.slice(t)],s=Math.round(Number(`${i}.${a}`));r=s>9?`${BigInt(e)+BigInt(1)}0`.padStart(e.length+1,"0"):`${e}${s}`,r.length>t&&(r=r.slice(1),n=`${BigInt(n)+1n}`),r=r.slice(0,t)}else r=r.padEnd(t,"0");return BigInt(`${a?"-":""}${n}${r}`)}},25899(e,t,n){"use strict";n.d(t,{d:()=>s});var r=n(91042),i=n(61355),a=n(77411);function s(e,{docsPath:t,...n}){const s=(()=>{const t=(0,a.l)(e,n);return t instanceof i.RM?e:t})();return new r.zX(s,{docsPath:t,...n})}},26015(e,t,n){"use strict";function r(e,t,n){const r=e[t.name];if("function"==typeof r)return r;const i=e[n];return"function"==typeof i?i:n=>t(e,n)}n.d(t,{T:()=>r})},26423(e,t,n){"use strict";var r=n(97103),i=n(38710);function a(){if(!(this instanceof a))return new a;i.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}r.inherits(a,i),e.exports=a,a.blockSize=512,a.outSize=224,a.hmacStrength=192,a.padLength=64,a.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,7),"big"):r.split32(this.h.slice(0,7),"big")}},26480(e,t,n){"use strict";n.d(t,{T:()=>f});var r=n(22420),i=n(4667);const a=761855;var s=n(80144),o=n(7411),u=n(85501),c=n(81127),l=n(75209);function f(e){const{data:t,kzg:n,to:f}=e,d=e.blobs??function(e){const t=e.to??("string"==typeof e.data?"hex":"bytes"),n="string"==typeof e.data?(0,c.aT)(e.data):e.data,r=(0,u.E)(n);if(!r)throw new s.zF;if(r>a)throw new s.iq({maxSize:a,size:r});const i=[];let f=!0,d=0;for(;f;){const e=(0,o.l)(new Uint8Array(131072));let t=0;for(;t<4096;){const r=n.slice(d,d+31);if(e.pushByte(0),e.pushBytes(r),r.length<31){e.pushByte(128),f=!1;break}t++,d+=31}i.push(e)}return"bytes"===t?i.map(e=>e.bytes):i.map(e=>(0,l.My)(e.bytes))}({data:t,to:f}),h=e.commitments??(0,r.S)({blobs:d,kzg:n,to:f}),p=e.proofs??(0,i.t)({blobs:d,commitments:h,kzg:n,to:f}),m=[];for(let e=0;ew});var r=n(47586),i=n(40906);const a=BigInt(0),s=BigInt(1),o=BigInt(2),u=BigInt(7),c=BigInt(256),l=BigInt(113),f=[],d=[],h=[];for(let e=0,t=s,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],f.push(2*(5*r+n)),d.push((e+1)*(e+2)/2%64);let i=a;for(let e=0;e<7;e++)t=(t<>u)*l)%c,t&o&&(i^=s<<(s<n>32?(0,r.WM)(e,t,n):(0,r.P5)(e,t,n),g=(e,t,n)=>n>32?(0,r.im)(e,t,n):(0,r.B4)(e,t,n);class v extends i.Vw{constructor(e,t,n,r=!1,a=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=r,this.rounds=a,(0,i.Fe)(n),!(0=n&&this.keccak();const a=Math.min(n-this.posOut,i-r);e.set(t.subarray(this.posOut,this.posOut+a),r),this.posOut+=a,r+=a}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return(0,i.Fe)(e),this.xofInto(new Uint8Array(e))}digestInto(e){if((0,i.Ht)(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,(0,i.uH)(this.state)}_cloneInto(e){const{blockLen:t,suffix:n,outputLen:r,rounds:i,enableXOF:a}=this;return e||(e=new v(t,n,r,a,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=n,e.outputLen=r,e.enableXOF=a,e.destroyed=this.destroyed,e}}const w=(()=>{return e=1,t=136,n=32,(0,i.qj)(()=>new v(t,e,n));var e,t,n})()},27286(e,t,n){var r=t;r.der=n(99701),r.pem=n(52004)},27825(e,t,n){"use strict";e.exports=l;var r=n(61085).F,i=r.ERR_METHOD_NOT_IMPLEMENTED,a=r.ERR_MULTIPLE_CALLBACK,s=r.ERR_TRANSFORM_ALREADY_TRANSFORMING,o=r.ERR_TRANSFORM_WITH_LENGTH_0,u=n(92783);function c(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(null===r)return this.emit("error",new a);n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.lengthh,BC:()=>v,u2:()=>w,gR:()=>K,Ou:()=>$,C:()=>H,Qq:()=>ce,gv:()=>R,Ie:()=>X,D8:()=>y,x1:()=>te,i8:()=>F,g9:()=>C,Uk:()=>L,Kl:()=>B,qI:()=>Q,Bq:()=>ee,Ts:()=>m,bt:()=>oe,Yz:()=>re,d5:()=>M,v4:()=>I,cy:()=>_,EI:()=>S,iI:()=>E,fj:()=>le,HV:()=>A,Rm:()=>N,Y6:()=>p,Tj:()=>Z,nc:()=>b,of:()=>J,rT:()=>ne,Hs:()=>g,TS:()=>ie,XK:()=>ae,BE:()=>j,di:()=>D,Ln:()=>O,Rx:()=>P,t8:()=>se,KC:()=>W,$v:()=>T,yU:()=>U});var r=n(84468),i=n(72529),a=n(91893),s=n(59329);const o=e=>e.length>0;var u=n(36708),c=n(82884);const l=(0,s.XY)(2,(e,t)=>{let n=0;for(const r of e){const e=t(r,n);if((0,c.Lm)(e)){if(e)return u.zN(r)}else if(u.Ru(e))return e;n++}return u.dv()});Symbol.iterator;var f=n(4909);Object.fromEntries;const d=(...e)=>e,h=(a.PV,f.PV,e=>new Array(e)),p=(0,s.XY)(2,(e,t)=>{const n=Math.max(1,Math.floor(e)),r=new Array(n);for(let e=0;eArray.isArray(e)?e:Array.from(e),y=e=>Array.isArray(e)?e:[e],b=(u.$r,(0,s.XY)(2,(e,{onEmpty:t,onNonEmpty:n})=>E(e)?n(I(e),P(e)):t())),g=(0,s.XY)(2,(e,t)=>[t,...e]),v=(0,s.XY)(2,(e,t)=>[...e,t]),w=(0,s.XY)(2,(e,t)=>m(e).concat(m(t))),_=Array.isArray,S=o,E=o,k=(e,t)=>e<0||e>=t.length,x=(0,s.XY)(2,(e,t)=>{const n=Math.floor(t);return k(n,e)?u.dv():u.zN(e[n])}),T=(0,s.XY)(2,(e,t)=>{const n=Math.floor(t);if(k(n,e))throw new Error(`Index ${n} out of bounds`);return e[n]}),M=x(0),I=T(0),A=e=>E(e)?u.zN(N(e)):u.dv(),N=e=>e[e.length-1],P=e=>e.slice(1),O=(0,s.XY)(2,(e,t)=>Y(e,((e,t)=>{let n=0;for(const r of e){if(!t(r,n))break;n++}return n})(e,t))),R=(0,s.XY)(2,(e,t)=>{const n=m(e);return n.slice((r=t,i=n,Math.floor(Math.min(Math.max(0,r),i.length))),n.length);var r,i}),C=(0,s.XY)(2,(e,t)=>{let n=0;for(const r of e){if(t(r,n))return u.zN(n);n++}return u.dv()}),B=(0,s.XY)(2,(e,t)=>{const n=m(e);for(let e=n.length-1;e>=0;e--)if(t(n[e],e))return u.zN(e);return u.dv()}),F=l,L=(0,s.XY)(2,(e,t)=>{const n=m(e);for(let e=n.length-1;e>=0;e--){const r=n[e],i=t(r,e);if(c.Lm(i)){if(i)return u.zN(r)}else if(u.Ru(i))return i}return u.dv()}),j=e=>Array.from(e).reverse(),D=(0,s.XY)(2,(e,t)=>{const n=Array.from(e);return n.sort(t),n}),U=(0,s.XY)(2,(e,t)=>z(e,t,d)),z=(0,s.XY)(3,(e,t,n)=>{const r=m(e),i=m(t);if(E(r)&&E(i)){const e=[n(I(r),I(i))],t=Math.min(r.length,i.length);for(let a=1;a(0,s.XY)(2,(t,n)=>{for(const r of t)if(e(n,r))return!0;return!1}),V=i.XY(),K=$(V),Y=(0,s.XY)(2,(e,t)=>{const n=Array.from(e),r=Math.floor(t);return E(n)?r>=1?q(n,r):[[],n]:[n,[]]}),q=(0,s.XY)(2,(e,t)=>{const n=Math.max(1,Math.floor(t));return n>=e.length?[H(e),[]]:[g(e.slice(1,n),I(e)),e.slice(n)]}),H=e=>e.slice(),G=(0,s.XY)(3,(e,t,n)=>{const r=m(e),i=m(t);return E(r)?E(i)?ue(n)(w(r,i)):r:i}),W=(0,s.XY)(2,(e,t)=>G(e,t,V)),X=()=>[],J=e=>[e],Z=(0,s.XY)(2,(e,t)=>e.map(t)),Q=(0,s.XY)(2,(e,t)=>{if((e=>0===e.length)(e))return[];const n=[];for(let r=0;r{const n=m(e),r=[];for(let e=0;e{const n=[],i=[],a=m(e);for(let e=0;em(e).reduce((e,t,r)=>n(e,t,r),t)),ae=(0,s.XY)(3,(e,t,n)=>m(e).reduceRight((e,t,r)=>n(e,t,r),t)),se=(e,t)=>{const n=[];let r,i=e;for(;u.Ru(r=t(i));){const[e,t]=r.value;n.push(e),i=t}return n},oe=(f.YO,a.YO),ue=(0,s.XY)(2,(e,t)=>{const n=m(e);if(E(n)){const e=[I(n)],r=P(n);for(const n of r)e.every(e=>!t(n,e))&&e.push(n);return e}return[]}),ce=e=>ue(e,i.XY()),le=(0,s.XY)(2,(e,t)=>m(e).join(t))},28299(e){"use strict";e.exports=Math.floor},28430(e,t,n){"use strict";var r=n(42649);function i(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var a=n(72258),s=n(41498),o=a.Buffer,u=a.kMaxLength,c=n.g.crypto||n.g.msCrypto,l=Math.pow(2,32)-1;function f(e,t){if("number"!=typeof e||e!=e)throw new TypeError("offset must be a number");if(e>l||e<0)throw new TypeError("offset must be a uint32");if(e>u||e>t)throw new RangeError("offset out of range")}function d(e,t,n){if("number"!=typeof e||e!=e)throw new TypeError("size must be a number");if(e>l||e<0)throw new TypeError("size must be a uint32");if(e+t>n||e>u)throw new RangeError("buffer too small")}function h(e,t,n,i){if(r.browser){var a=e.buffer,o=new Uint8Array(a,t,n);return c.getRandomValues(o),i?void r.nextTick(function(){i(null,e)}):e}if(!i)return s(n).copy(e,t),e;s(n,function(n,r){if(n)return i(n);r.copy(e,t),i(null,e)})}c&&c.getRandomValues||!r.browser?(t.randomFill=function(e,t,r,i){if(!(o.isBuffer(e)||e instanceof n.g.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof t)i=t,t=0,r=e.length;else if("function"==typeof r)i=r,r=e.length-t;else if("function"!=typeof i)throw new TypeError('"cb" argument must be a function');return f(t,e.length),d(r,t,e.length),h(e,t,r,i)},t.randomFillSync=function(e,t,r){if(void 0===t&&(t=0),!(o.isBuffer(e)||e instanceof n.g.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return f(t,e.length),void 0===r&&(r=e.length-t),d(r,t,e.length),h(e,t,r)}):(t.randomFill=i,t.randomFillSync=i)},28780(e,t,n){"use strict";n.d(t,{h:()=>p,k:()=>b});var r=n(70121),i=n(83815),a=n(2273),s=n(20518),o=n(462),u=n(33640),c=n(92155),l=n(85501),f=n(65144),d=n(75209),h=n(92546);function p(e,t){if(e.length!==t.length)throw new r.YE({expectedLength:e.length,givenLength:t.length});const n=function({params:e,values:t}){const n=[];for(let r=0;r0?(0,u.xW)([t,e]):t}}if(a)return{dynamic:!0,encoded:e}}return{dynamic:!1,encoded:(0,u.xW)(s.map(({encoded:e})=>e))}}(t,{length:i,param:{...e,type:a}})}if("tuple"===e.type)return function(e,{param:t}){let n=!1;const r=[];for(let i=0;ie))}}(t,{param:e});if("address"===e.type)return function(e){if(!(0,o.P)(e))throw new i.M({address:e});return{dynamic:!1,encoded:(0,c.db)(e.toLowerCase())}}(t);if("bool"===e.type)return function(e){if("boolean"!=typeof e)throw new a.C(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:(0,c.db)((0,d.$P)(e))}}(t);if(e.type.startsWith("uint")||e.type.startsWith("int")){const n=e.type.startsWith("int"),[,,r="256"]=h.Ge.exec(e.type)??[];return function(e,{signed:t,size:n=256}){if("number"==typeof n){const r=2n**(BigInt(n)-(t?1n:0n))-1n,i=t?-r-1n:0n;if(e>r||es,qg:()=>o});var r=n(91893),i=n(64458),a=n(4909);n(82884).Et,r.ai;const s=a.ai,o=e=>{if("NaN"===e)return i.zN(NaN);if("Infinity"===e)return i.zN(1/0);if("-Infinity"===e)return i.zN(-1/0);if(""===e.trim())return i.dv;const t=Number(e);return Number.isNaN(t)?i.dv:i.zN(t)}},28882(e,t,n){"use strict";var r=n(72258).Buffer,i=n(18561).Transform;function a(e){i.call(this),this._block=r.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}n(33213)(a,i),a.prototype._transform=function(e,t,n){var r=null;try{this.update(e,t)}catch(e){r=e}n(r)},a.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)};var s="undefined"!=typeof Uint8Array,o="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&ArrayBuffer.isView&&(r.prototype instanceof Uint8Array||r.TYPED_ARRAY_SUPPORT);a.prototype.update=function(e,t){if(this._finalized)throw new Error("Digest already called");e=function(e,t){if(e instanceof r)return e;if("string"==typeof e)return r.from(e,t);if(o&&ArrayBuffer.isView(e)){if(0===e.byteLength)return r.alloc(0);var n=r.from(e.buffer,e.byteOffset,e.byteLength);if(n.byteLength===e.byteLength)return n}if(s&&e instanceof Uint8Array)return r.from(e);if(r.isBuffer(e)&&e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e))return r.from(e);throw new TypeError('The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')}(e,t);for(var n=this._block,i=0;this._blockOffset+e.length-i>=this._blockSize;){for(var a=this._blockOffset;a0;++u)this._length[u]+=c,(c=this._length[u]/4294967296|0)>0&&(this._length[u]-=4294967296*c);return this},a.prototype._update=function(){throw new Error("_update is not implemented")},a.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var n=0;n<4;++n)this._length[n]=0;return t},a.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=a},29385(e,t,n){"use strict";var r=n(23145),i=n(92772).assert;function a(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=a,a.fromPublic=function(e,t,n){return t instanceof a?t:new a(e,{pub:t,pubEnc:n})},a.fromPrivate=function(e,t,n){return t instanceof a?t:new a(e,{priv:t,privEnc:n})},a.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},a.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},a.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},a.prototype._importPrivate=function(e,t){this.priv=new r(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},a.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?i(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},a.prototype.derive=function(e){return e.validate()||i(e.validate(),"public point not validated"),e.mul(this.priv).getX()},a.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},a.prototype.verify=function(e,t,n){return this.ec.verify(e,t,this,void 0,n)},a.prototype.inspect=function(){return""}},29562(e,t,n){var r=n(67779),i=n(74839),a=n(72258).Buffer,s=n(10417),o=n(81475),u=n(81979),c=n(81207);function l(e,t,n){o.call(this),this._cache=new d,this._cipher=new u.AES(t),this._prev=a.from(n),this._mode=e,this._autopadding=!0}n(33213)(l,o),l.prototype._update=function(e){var t,n;this._cache.add(e);for(var r=[];t=this._cache.get();)n=this._mode.encrypt(this,t),r.push(n);return a.concat(r)};var f=a.alloc(16,16);function d(){this.cache=a.allocUnsafe(0)}function h(e,t,n){var o=r[e.toLowerCase()];if(!o)throw new TypeError("invalid suite type");if("string"==typeof t&&(t=a.from(t)),t.length!==o.key/8)throw new TypeError("invalid key length "+t.length);if("string"==typeof n&&(n=a.from(n)),"GCM"!==o.mode&&n.length!==o.iv)throw new TypeError("invalid iv length "+n.length);return"stream"===o.type?new s(o.module,t,n):"auth"===o.type?new i(o.module,t,n):new l(o.module,t,n)}l.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return e=this._mode.encrypt(this,e),this._cipher.scrub(),e;if(!e.equals(f))throw this._cipher.scrub(),new Error("data not multiple of block length")},l.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},d.prototype.add=function(e){this.cache=a.concat([this.cache,e])},d.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},d.prototype.flush=function(){for(var e=16-this.cache.length,t=a.allocUnsafe(e),n=-1;++np,Ez:()=>o,L8:()=>s,Te:()=>u,Tz:()=>a,Vv:()=>f,ZA:()=>h,uV:()=>d});var r=n(47726),i=n(59329);const a=Symbol.for("effect/Tracer"),s=e=>({[a]:a,...e}),o=r.Io("effect/Tracer"),u=r.Io("effect/ParentSpan"),c=function(){return function(e){let t="";for(let n=0;nnew l(e,t,n,r,i,a),context:e=>e()}),d=e=>({_tag:"ExternalSpan",spanId:e.spanId,traceId:e.traceId,sampled:e.sampled??!0,context:e.context??r.Ie()}),h=e=>{if(!1===e?.captureStackTrace)return e;if(void 0!==e?.captureStackTrace&&"boolean"!=typeof e.captureStackTrace)return e;const t=Error.stackTraceLimit;Error.stackTraceLimit=3;const n=new Error;Error.stackTraceLimit=t;let r=!1;return{...e,captureStackTrace:()=>{if(!1!==r)return r;if(void 0!==n.stack){const e=n.stack.split("\n");if(void 0!==e[3])return r=e[3].trim(),r}}}},p=r.Or()("effect/Tracer/DisablePropagation",{defaultValue:i.f4})},30201(e,t,n){var r=n(33213),i=n(39197),a=i.base,s=i.bignum,o=i.constants.der;function u(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new c,this.tree._init(e.body)}function c(e){a.Node.call(this,"der",e)}function l(e,t){var n=e.readUInt8(t);if(e.isError(n))return n;var r=o.tagClass[n>>6],i=!(32&n);if(31&~n)n&=31;else{var a=n;for(n=0;!(128&~a);){if(a=e.readUInt8(t),e.isError(a))return a;n<<=7,n|=127&a}}return{cls:r,primitive:i,tag:n,tagStr:o.tag[n]}}function f(e,t,n){var r=e.readUInt8(n);if(e.isError(r))return r;if(!t&&128===r)return null;if(!(128&r))return r;var i=127&r;if(i>4)return e.error("length octect is too long");r=0;for(var a=0;a-1?t:"Object"===t&&function(e){var t=!1;return r(m,function(n,r){if(!t)try{n(e),t=h(r,1)}catch(e){}}),t}(e)}return o?function(e){var t=!1;return r(m,function(n,r){if(!t)try{"$"+n(e)===r&&(t=h(r,1))}catch(e){}}),t}(e):null}},30643(e,t,n){"use strict";var r=n(75027),i=Object.prototype.toString,a=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){if(!r(t))throw new TypeError("iterator must be a function");var s,o;arguments.length>=3&&(s=n),o=e,"[object Array]"===i.call(o)?function(e,t,n){for(var r=0,i=e.length;rr})},31102(e,t,n){"use strict";var r=n(23145),i=n(9848),a=n(92772),s=n(52565),o=n(15314),u=a.assert,c=n(29385),l=n(72368);function f(e){if(!(this instanceof f))return new f(e);"string"==typeof e&&(u(Object.prototype.hasOwnProperty.call(s,e),"Unknown curve "+e),e=s[e]),e instanceof s.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}e.exports=f,f.prototype.keyPair=function(e){return new c(this,e)},f.prototype.keyFromPrivate=function(e,t){return c.fromPrivate(this,e,t)},f.prototype.keyFromPublic=function(e,t){return c.fromPublic(this,e,t)},f.prototype.genKeyPair=function(e){e||(e={});for(var t=new i({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||o(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),a=this.n.sub(new r(2));;){var s=new r(t.generate(n));if(!(s.cmp(a)>0))return s.iaddn(1),this.keyFromPrivate(s)}},f.prototype._truncateToN=function(e,t,n){var i;if(r.isBN(e)||"number"==typeof e)i=(e=new r(e,16)).byteLength();else if("object"==typeof e)i=e.length,e=new r(e,16);else{var a=e.toString();i=a.length+1>>>1,e=new r(a,16)}"number"!=typeof n&&(n=8*i);var s=n-this.n.bitLength();return s>0&&(e=e.ushrn(s)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},f.prototype.sign=function(e,t,n,a){if("object"==typeof n&&(a=n,n=null),a||(a={}),"string"!=typeof e&&"number"!=typeof e&&!r.isBN(e)){u("object"==typeof e&&e&&"number"==typeof e.length,"Expected message to be an array-like, a hex string, or a BN instance"),u(e.length>>>0===e.length);for(var s=0;s=0)){var y=this.g.mul(m);if(!y.isInfinity()){var b=y.getX(),g=b.umod(this.n);if(0!==g.cmpn(0)){var v=m.invm(this.n).mul(g.mul(t.getPrivate()).iadd(e));if(0!==(v=v.umod(this.n)).cmpn(0)){var w=(y.getY().isOdd()?1:0)|(0!==b.cmp(g)?2:0);return a.canonical&&v.cmp(this.nh)>0&&(v=this.n.sub(v),w^=1),new l({r:g,s:v,recoveryParam:w})}}}}}},f.prototype.verify=function(e,t,n,r,i){i||(i={}),e=this._truncateToN(e,!1,i.msgBitLength),n=this.keyFromPublic(n,r);var a=(t=new l(t,"hex")).r,s=t.s;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var o,u=s.invm(this.n),c=u.mul(e).umod(this.n),f=u.mul(a).umod(this.n);return this.curve._maxwellTrick?!(o=this.g.jmulAdd(c,n.getPublic(),f)).isInfinity()&&o.eqXToP(a):!(o=this.g.mulAdd(c,n.getPublic(),f)).isInfinity()&&0===o.getX().umod(this.n).cmp(a)},f.prototype.recoverPubKey=function(e,t,n,i){u((3&n)===n,"The recovery param is more than two bits"),t=new l(t,i);var a=this.n,s=new r(e),o=t.r,c=t.s,f=1&n,d=n>>1;if(o.cmp(this.curve.p.umod(this.curve.n))>=0&&d)throw new Error("Unable to find sencond key candinate");o=d?this.curve.pointFromX(o.add(this.curve.n),f):this.curve.pointFromX(o,f);var h=t.r.invm(a),p=a.sub(s).mul(h).umod(a),m=c.mul(h).umod(a);return this.g.mulAdd(p,o,m)},f.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new l(t,r)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var a;try{a=this.recoverPubKey(e,t,i)}catch(e){continue}if(a.eq(n))return i}throw new Error("Unable to find valid recovery factor")}},31262(e,t,n){"use strict";n.d(t,{Ez:()=>s,LX:()=>r,WN:()=>i,fT:()=>a});const r="0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe",i="0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe",a="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572",s="0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033"},31547(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=(r=n(80960))&&r.__esModule?r:{default:r};t.default=function(e){var t=e.A,n=2*e.roundIndex;t[0]^=i.default[n],t[1]^=i.default[n+1]}},31757(e,t,n){"use strict";var r=n(92772),i=n(23145),a=n(33213),s=n(14248),o=r.assert;function u(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,s.call(this,"edwards",e),this.a=new i(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),o(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function c(e,t,n,r,a){s.BasePoint.call(this,e,"projective"),null===t&&null===n&&null===r?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(t,16),this.y=new i(n,16),this.z=r?new i(r,16):this.curve.one,this.t=a&&new i(a,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}a(u,s),e.exports=u,u.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},u.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},u.prototype.jpoint=function(e,t,n,r){return this.point(e,t,n,r)},u.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=this.c2.redSub(this.a.redMul(n)),a=this.one.redSub(this.c2.redMul(this.d).redMul(n)),s=r.redMul(a.redInvm()),o=s.redSqrt();if(0!==o.redSqr().redSub(s).cmp(this.zero))throw new Error("invalid point");var u=o.fromRed().isOdd();return(t&&!u||!t&&u)&&(o=o.redNeg()),this.point(e,o)},u.prototype.pointFromY=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=n.redSub(this.c2),a=n.redMul(this.d).redMul(this.c2).redSub(this.a),s=r.redMul(a.redInvm());if(0===s.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var o=s.redSqrt();if(0!==o.redSqr().redSub(s).cmp(this.zero))throw new Error("invalid point");return o.fromRed().isOdd()!==t&&(o=o.redNeg()),this.point(o,e)},u.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),n=e.y.redSqr(),r=t.redMul(this.a).redAdd(n),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(n)));return 0===r.cmp(i)},a(c,s.BasePoint),u.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},u.prototype.point=function(e,t,n,r){return new c(this,e,t,n,r)},c.fromJSON=function(e,t){return new c(e,t[0],t[1],t[2])},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},c.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr();n=n.redIAdd(n);var r=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),a=r.redAdd(t),s=a.redSub(n),o=r.redSub(t),u=i.redMul(s),c=a.redMul(o),l=i.redMul(o),f=s.redMul(a);return this.curve.point(u,c,f,l)},c.prototype._projDbl=function(){var e,t,n,r,i,a,s=this.x.redAdd(this.y).redSqr(),o=this.x.redSqr(),u=this.y.redSqr();if(this.curve.twisted){var c=(r=this.curve._mulA(o)).redAdd(u);this.zOne?(e=s.redSub(o).redSub(u).redMul(c.redSub(this.curve.two)),t=c.redMul(r.redSub(u)),n=c.redSqr().redSub(c).redSub(c)):(i=this.z.redSqr(),a=c.redSub(i).redISub(i),e=s.redSub(o).redISub(u).redMul(a),t=c.redMul(r.redSub(u)),n=c.redMul(a))}else r=o.redAdd(u),i=this.curve._mulC(this.z).redSqr(),a=r.redSub(i).redSub(i),e=this.curve._mulC(s.redISub(r)).redMul(a),t=this.curve._mulC(r).redMul(o.redISub(u)),n=r.redMul(a);return this.curve.point(e,t,n)},c.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},c.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),n=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),r=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),a=n.redSub(t),s=i.redSub(r),o=i.redAdd(r),u=n.redAdd(t),c=a.redMul(s),l=o.redMul(u),f=a.redMul(u),d=s.redMul(o);return this.curve.point(c,l,d,f)},c.prototype._projAdd=function(e){var t,n,r=this.z.redMul(e.z),i=r.redSqr(),a=this.x.redMul(e.x),s=this.y.redMul(e.y),o=this.curve.d.redMul(a).redMul(s),u=i.redSub(o),c=i.redAdd(o),l=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(a).redISub(s),f=r.redMul(u).redMul(l);return this.curve.twisted?(t=r.redMul(c).redMul(s.redSub(this.curve._mulA(a))),n=u.redMul(c)):(t=r.redMul(c).redMul(s.redSub(a)),n=this.curve._mulC(u).redMul(c)),this.curve.point(f,t,n)},c.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},c.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},c.prototype.mulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!1)},c.prototype.jmulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!0)},c.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},c.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()},c.prototype.getY=function(){return this.normalize(),this.y.fromRed()},c.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},c.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var n=e.clone(),r=this.curve.redN.redMul(this.z);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(r),0===this.x.cmp(t))return!0}},c.prototype.toP=c.prototype.normalize,c.prototype.mixedAdd=c.prototype.add},31763(e,t,n){"use strict";n.d(t,{L:()=>a});let r,i=256;function a(e=11){if(!r||i+e>512){r="",i=0;for(let e=0;e<256;e++)r+=(256+256*Math.random()|0).toString(16).substring(1)}return r.substring(i,i+++e)}},31864(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=(r=n(13409))&&r.__esModule?r:{default:r};t.default=function(e){for(var t=e.A,n=e.C,r=e.D,a=e.W,s=0,o=0,u=0;u<5;u++){var c=2*u,l=2*(u+5),f=2*(u+10),d=2*(u+15),h=2*(u+20);n[c]=t[c]^t[l]^t[f]^t[d]^t[h],n[c+1]=t[c+1]^t[l+1]^t[f+1]^t[d+1]^t[h+1]}for(var p=0;p<5;p++){(0,i.default)(n,(p+1)%5)(a,0),s=a[0],o=a[1],a[0]=s<<1|o>>>31,a[1]=o<<1|s>>>31,r[2*p]=n[(p+4)%5*2]^a[0],r[2*p+1]=n[(p+4)%5*2+1]^a[1];for(var m=0;m<25;m+=5)t[2*(m+p)]^=r[2*p],t[2*(m+p)+1]^=r[2*p+1]}}},31963(e,t,n){"use strict";function r(e,t){return({exclude:n,format:r})=>({exclude:n,format:(e,i)=>{const a=t(e,i);if(n)for(const e of n)delete a[e];return{...a,...r(e,i)}},type:e})}n.d(t,{q:()=>r})},32061(e,t,n){"use strict";n.d(t,{Q:()=>s});var r=n(8609);const i=/^tuple(?(\[(\d*)\])*)$/;function a(e){let t=e.type;if(i.test(e.type)&&"components"in e){t="(";const n=e.components.length;for(let r=0;rT,Z:()=>M});var r=n(85327),i=n(75209),a=n(22420),s=n(4667),o=n(95639),u=n(26480),c=n(33640),l=n(8736),f=n(82150),d=n(95775),h=n(19512),p=n(83815),m=n(2273),y=n(80144),b=n(57834),g=n(61355),v=n(462),w=n(85501),_=n(65144),S=n(58038);function E(e){const{chainId:t,maxPriorityFeePerGas:n,maxFeePerGas:r,to:i}=e;if(t<=0)throw new b.qD({chainId:t});if(i&&!(0,v.P)(i))throw new p.M({address:i});if(r&&r>h.Ao)throw new g.BG({maxFeePerGas:r});if(n&&r&&n>r)throw new g.lN({maxFeePerGas:r,maxPriorityFeePerGas:n})}var k=n(33932);function x(e){if(!e||0===e.length)return[];const t=[];for(let n=0;nh.Ao)throw new g.BG({maxFeePerGas:r})}(e);const y=x(l),w=[(0,i.cK)(n),s?(0,i.cK)(s):"0x",d?(0,i.cK)(d):"0x",r?(0,i.cK)(r):"0x",o??"0x",u?(0,i.cK)(u):"0x",a??"0x",y,...M(e,t)];return(0,c.aP)(["0x01",(0,f.EQ)(w)])}(e,t):"eip4844"===n?function(e,t){const{chainId:n,gas:r,nonce:l,to:h,value:p,maxFeePerBlobGas:m,maxFeePerGas:b,maxPriorityFeePerGas:g,accessList:v,data:k}=e;!function(e){const{blobVersionedHashes:t}=e;if(t){if(0===t.length)throw new y.zF;for(const e of t){const t=(0,w.E)(e),n=(0,S.ME)((0,_.di)(e,0,1));if(32!==t)throw new y.uP({hash:e,size:t});if(n!==d.E)throw new y.PK({hash:e,version:n})}}E(e)}(e);let T=e.blobVersionedHashes,I=e.sidecars;if(e.blobs&&(void 0===T||void 0===I)){const t="string"==typeof e.blobs[0]?e.blobs:e.blobs.map(e=>(0,i.My)(e)),n=e.kzg,r=(0,a.S)({blobs:t,kzg:n});if(void 0===T&&(T=(0,o.d)({commitments:r})),void 0===I){const e=(0,s.t)({blobs:t,commitments:r,kzg:n});I=(0,u.T)({blobs:t,commitments:r,proofs:e})}}const A=x(v),N=[(0,i.cK)(n),l?(0,i.cK)(l):"0x",g?(0,i.cK)(g):"0x",b?(0,i.cK)(b):"0x",r?(0,i.cK)(r):"0x",h??"0x",p?(0,i.cK)(p):"0x",k??"0x",A,m?(0,i.cK)(m):"0x",T??[],...M(e,t)],P=[],O=[],R=[];if(I)for(let e=0;eh.Ao)throw new g.BG({maxFeePerGas:r})}(e);let y=[o?(0,i.cK)(o):"0x",d?(0,i.cK)(d):"0x",a?(0,i.cK)(a):"0x",u??"0x",c?(0,i.cK)(c):"0x",s??"0x"];if(t){const e=(()=>{if(t.v>=35n)return(t.v-35n)/2n>0?t.v:27n+(35n===t.v?0n:1n);if(n>0)return BigInt(2*n)+BigInt(35n+t.v-27n);const e=27n+(27n===t.v?0n:1n);if(t.v!==e)throw new r.zW({v:t.v});return e})(),a=(0,l.B)(t.r),s=(0,l.B)(t.s);y=[...y,(0,i.cK)(e),"0x00"===a?"0x":a,"0x00"===s?"0x":s]}else n>0&&(y=[...y,(0,i.cK)(n),"0x","0x"]);return(0,f.EQ)(y)}(e,t)}function M(e,t){const n=t??e,{v:r,yParity:a}=n;if(void 0===n.r)return[];if(void 0===n.s)return[];if(void 0===r&&void 0===a)return[];const s=(0,l.B)(n.r),o=(0,l.B)(n.s);return["number"==typeof a?a?(0,i.cK)(1):"0x":0n===r?"0x":1n===r?(0,i.cK)(1):27n===r?"0x":(0,i.cK)(1),"0x00"===s?"0x":s,"0x00"===o?"0x":o]}},33140(e,t,n){"use strict";var r=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m,i=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,a=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m,s=n(81207),o=n(85984),u=n(72258).Buffer;e.exports=function(e,t){var n,c=e.toString(),l=c.match(r);if(l){var f="aes"+l[1],d=u.from(l[2],"hex"),h=u.from(l[3].replace(/[\r\n]/g,""),"base64"),p=s(t,d.slice(0,8),parseInt(l[1],10)).key,m=[],y=o.createDecipheriv(f,p,d);m.push(y.update(h)),m.push(y.final()),n=u.concat(m)}else{var b=c.match(a);n=u.from(b[2].replace(/[\r\n]/g,""),"base64")}return{tag:c.match(i)[1],data:n}}},33213(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},33640(e,t,n){"use strict";function r(e){return"string"==typeof e[0]?i(e):function(e){let t=0;for(const n of e)t+=n.length;const n=new Uint8Array(t);let r=0;for(const t of e)n.set(t,r),r+=t.length;return n}(e)}function i(e){return`0x${e.reduce((e,t)=>e+t.replace("0x",""),"")}`}n.d(t,{aP:()=>i,xW:()=>r})},33781(e,t,n){"use strict";n.d(t,{E0:()=>v,I3:()=>S,HT:()=>_,hY:()=>w,uU:()=>b,Ek:()=>E});var r=n(99344),i=n(13439),a=n(81127),s=n(70121),o=n(83815),u=n(462),c=n(33640),l=n(92155),f=n(75209),d=n(92546);function h(e,t){if(e.length!==t.length)throw new s.YE({expectedLength:e.length,givenLength:t.length});const n=[];for(let r=0;r255)throw new Error(`Invalid uint8 value: ${e}`)}},33931(e,t,n){"use strict";var r=n(73730).Buffer,i=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)},s=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function s(e){try{u(r.next(e))}catch(e){a(e)}}function o(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(s,o)}u((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},s=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return s.next=o(0),s.throw=o(1),s.return=o(2),"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function o(o){return function(u){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s&&(s=0,o[0]&&(a=0)),a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!((i=(i=a.trys).length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]>24,n>>16,n>>8,n]),s=d(r.concat([t,e]));a=a.then(function(e){return s.then(function(t){return r.concat([e,t])})}),i+=32,n+=1};i32?i(new Error("Message is too long (max 32 bytes)")):n(r.from(u.sign(t,e,{canonical:!0}).toDER("hex"),"hex"))})},t.verify=function(e,t,n){return new Promise(function(r,i){try{65!==e.length||4!==e[0]?i(new Error("Public key should 65 bytes long")):t.length<=0?i(new Error("Message should not be empty")):t.length>32?i(new Error("Message is too long (max 32 bytes)")):u.verify(t,n.toString("hex"),e,"hex")?r(!0):i(new Error("Bad signature"))}catch(e){i(new Error("Invalid arguments"))}})},t.derive=function(e,t){return new Promise(function(n,i){if(32!==e.length)i(new Error("Bad private key, it should be 32 bytes but it's actually ".concat(e.length," bytes long")));else if(65!==t.length)i(new Error("Bad public key, it should be 65 bytes but it's actually ".concat(t.length," bytes long")));else if(4!==t[0])i(new Error("Bad public key, a valid public key would begin with 4"));else{var a=u.keyFromPrivate(e),s=u.keyFromPublic(t),o=a.derive(s.getPublic());n(h(r.from(o.toArray())))}})},t.encrypt=function(e,n,i){return s(void 0,void 0,void 0,function(){var a;return o(this,function(u){return a=(i=i||{}).ephemPrivateKey||f(32),[2,(0,t.derive)(a,e).then(function(e){return(0,t.kdf)(e,32)}).then(function(e){return s(void 0,void 0,void 0,function(){var s,u;return o(this,function(o){return s=i.iv||f(16),u=e.slice(0,16),[2,(c=s,h=u,p=n,l.importKey("raw",h,"AES-CTR",!1,["encrypt"]).then(function(e){return l.encrypt({name:"AES-CTR",counter:c,length:128},e,p)}).then(r.from)).then(function(e){return r.concat([s,e])}).then(function(n){return d(e.slice(16)).then(function(e){return function(e,t){var n={name:"HMAC",hash:{name:"SHA-256"}};return l.importKey("raw",e,n,!1,["sign"]).then(function(e){return l.sign(n,e,t)}).then(r.from)}(e,n)}).then(function(e){return(0,t.getPublic)(a).then(function(t){return r.concat([t,n,e])})})})];var c,h,p})})})]})})},t.decrypt=function(e,n){return new Promise(function(i,a){if(n.length<=113)a(new Error("Invalid Ciphertext. Data is too small. It should ba at least ".concat(113," bytes")));else if(4!==n[0])a(new Error("Not a valid ciphertext. It should begin with 4 but actually begin with ".concat(n[0])));else{var s=n.slice(0,65),o=n.length-113,u=n.slice(65,81),c=n.slice(65,81+o),f=c.slice(16),h=n.slice(81+o);i((0,t.derive)(e,s).then(function(e){return(0,t.kdf)(e,32)}).then(function(e){return d(e.slice(16)).then(function(t){return[e.slice(0,16),t]})}).then(function(e){var t,n,i,a,s=e[0];return(t=e[1],n=c,i=h,a={name:"HMAC",hash:{name:"SHA-256"}},l.importKey("raw",t,a,!1,["verify"]).then(function(e){return l.verify(a,e,i,n)})).then(function(e){return e?function(e,t,n){return l.importKey("raw",t,"AES-CTR",!1,["decrypt"]).then(function(t){return l.decrypt({name:"AES-CTR",counter:e,length:128},t,n)}).then(r.from)}(u,s,f):Promise.reject(new Error("Incorrect MAC"))})}).then(r.from))}})};var h=function(e){if(e.length<32){var t=r.alloc(32).fill(0);return e.copy(t,32-e.length),t}return e};a(n(42697),t)},33932(e,t,n){"use strict";n.d(t,{L:()=>i});var r=n(85327);function i(e){if(e.type)return e.type;if(void 0!==e.authorizationList)return"eip7702";if(void 0!==e.blobs||void 0!==e.blobVersionedHashes||void 0!==e.maxFeePerBlobGas||void 0!==e.sidecars)return"eip4844";if(void 0!==e.maxFeePerGas||void 0!==e.maxPriorityFeePerGas)return"eip1559";if(void 0!==e.gasPrice)return void 0!==e.accessList?"eip2930":"legacy";throw new r.Vg({transaction:e})}},34043(e){var t={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==t.call(e)}},34105(e,t,n){"use strict";n.d(t,{A2:()=>l,My:()=>d,U8:()=>c,X:()=>f,Xn:()=>p,hJ:()=>u,jR:()=>g,or:()=>b,pV:()=>y,rr:()=>m});var r=n(9100),i=n(99344),a=n(84015),s=n(64355),o=n(73730).Buffer;const u=i.k_Z("0x",i.QfV);function c(e){return e?.length?BigInt("0x"+o.from(e).toString("hex")):BigInt(0)}function l(e){return o.from(e.toString(16).padStart(64,"0"),"hex")}function f(e){return(0,s.Z)(p,l(e).toString("hex"))}function d(e){return"0x"+o.from(e).toString("hex")}const h=i.wSs.pipe(i.pbD(e=>e instanceof Uint8Array)),p=i.K$g(i.gPz(i.QfV,h),u,{strict:!0,encode:r.Py,decode:e=>{return e instanceof Uint8Array?r.Py(d(e)):(n=function(e){if(!(0,a.q)(e))throw new Error(`Expected hex string, got: ${e}`);return e}((t=e).startsWith("0x")?t:`0x${t}`),(0,a.q)(n)?r.Py(n):r.fJ(new r.w2(n,`'${n}' is not a hex string`)));var t,n}}).pipe(i.pbD(e=>66===e.length||`Expected 32-byte hex string (66 characters with 0x prefix) but got ${e.length} character string`),i.wkx("Bytes32"));function m(e){return(0,s.Z)(p,e)}const y=u.pipe(i.pbD(e=>42===e.length||`Address must be a 20-byte '0x'-prefixed hex string, but got: ${e}`),i.wkx("Address"));function b(e){return(0,s.Z)(y,e)}function g(e){return(0,s.Z)(u,e)}},34435(e,t,n){"use strict";async function r(e){const t=await e.request({method:"eth_gasPrice"});return BigInt(t)}n.d(t,{L:()=>r})},34520(e,t,n){"use strict";n.d(t,{FX:()=>i,Ub:()=>s,Vw:()=>o,do:()=>a});var r=n(73360);const i=Symbol.for("effect/Deferred"),a={_E:e=>e,_A:e=>e},s=e=>({_tag:r.i,joiners:e}),o=e=>({_tag:r.R,effect:e})},35033(e,t,n){var r=n(71822);t.encrypt=function(e,t){var n=r(t,e._prev);return e._prev=e._cipher.encryptBlock(n),e._prev},t.decrypt=function(e,t){var n=e._prev;e._prev=t;var i=e._cipher.decryptBlock(t);return r(i,n)}},35156(e,t,n){"use strict";n.d(t,{$I:()=>x,$N:()=>L,CB:()=>C,Do:()=>N,L8:()=>R,M1:()=>F,dK:()=>P,dv:()=>_,fA:()=>S,gb:()=>k,kg:()=>I,lm:()=>h,mO:()=>M,pM:()=>A,sN:()=>E,vk:()=>T,zL:()=>B});var r=n(72529),i=n(59329),a=n(55661),s=n(46385),o=n(75169),u=n(12717),c=n(61346),l=n(36708),f=n(82884);const d="effect/FiberId",h=Symbol.for(d),p="None",m="Runtime",y="Composite",b=s.Yj(`${d}-${p}`);class g{[h]=h;_tag=p;id=-1;startTimeMillis=-1;[s.HR](){return b}[r.HR](e){return k(e)&&e._tag===p}toString(){return(0,u.GP)(this.toJSON())}toJSON(){return{_id:"FiberId",_tag:this._tag}}[u.FX](){return this.toJSON()}}class v{id;startTimeMillis;[h]=h;_tag=m;constructor(e,t){this.id=e,this.startTimeMillis=t}[s.HR](){return s.PO(this,s.Yj(`${d}-${this._tag}-${this.id}-${this.startTimeMillis}`))}[r.HR](e){return k(e)&&e._tag===m&&this.id===e.id&&this.startTimeMillis===e.startTimeMillis}toString(){return(0,u.GP)(this.toJSON())}toJSON(){return{_id:"FiberId",_tag:this._tag,id:this.id,startTimeMillis:this.startTimeMillis}}[u.FX](){return this.toJSON()}}class w{left;right;[h]=h;_tag=y;constructor(e,t){this.left=e,this.right=t}_hash;[s.HR](){return(0,i.Fs)(s.Yj(`${d}-${this._tag}`),s.kg(s.tW(this.left)),s.kg(s.tW(this.right)),s.PO(this))}[r.HR](e){return k(e)&&e._tag===y&&r.aI(this.left,e.left)&&r.aI(this.right,e.right)}toString(){return(0,u.GP)(this.toJSON())}toJSON(){return{_id:"FiberId",_tag:this._tag,left:(0,u.U2)(this.left),right:(0,u.U2)(this.right)}}[u.FX](){return this.toJSON()}}const _=new g,S=(e,t)=>new v(e,t),E=(e,t)=>new w(e,t),k=e=>(0,f.i5)(e,h),x=e=>e._tag===p||(0,i.Fs)(F(e),o.Si(e=>x(e))),T=e=>e._tag===m,M=e=>e._tag===y,I=(0,i.XY)(2,(e,t)=>e._tag===p?t:t._tag===p?e:new w(e,t)),A=e=>(0,i.Fs)(e,o.TS(_,(e,t)=>I(t)(e))),N=(0,i.XY)(2,(e,t)=>x(e)?t:e),P=e=>{switch(e._tag){case p:return o.Ie();case m:return o.L8(e.id);case y:return(0,i.Fs)(P(e.left),o.KC(P(e.right)))}},O=(0,a.V)(Symbol.for("effect/Fiber/Id/_fiberCounter"),()=>c.L8(0)),R=(e,t)=>new v(e,t),C=e=>Array.from(P(e)).map(e=>`#${e}`).join(","),B=e=>{const t=F(e);if(0===o.Ej(t))return l.dv();let n,r=!0;for(const e of t)r?(n=e,r=!1):n=(0,i.Fs)(n,I(e));return l.zN(n)},F=e=>{switch(e._tag){case p:return o.Ie();case m:return o.L8(e);case y:return(0,i.Fs)(F(e.left),o.KC(F(e.right)))}},L=()=>{const e=c.Jt(O);return(0,i.Fs)(O,c.hZ(e+1)),new v(e,Date.now())}},35191(e,t,n){"use strict";n.d(t,{$N:()=>l,Au:()=>g,BG:()=>m,Fh:()=>_,Ie:()=>f,Jt:()=>w,Rt:()=>v,aI:()=>S,gU:()=>d,rQ:()=>b,rl:()=>p,vG:()=>k});var r=n(28062),i=n(72529),a=n(59329),s=n(75169),o=n(36708),u=n(66949),c=n(89921);function l(e){return new h(e)}function f(){return l(new Map)}const d=Symbol.for("effect/FiberRefs");class h{locals;[d]=d;constructor(e){this.locals=e}pipe(){return(0,u.tT)(this,arguments)}}const p=(0,a.XY)(3,(e,t,n)=>{const a=new Map(e.locals);return n.locals.forEach((e,n)=>{const s=e[0][1];if(!e[0][0][i.HR](t)){if(!a.has(n)){if(i.aI(s,n.initial))return;return void a.set(n,[[t,n.join(n.initial,s)]])}const o=a.get(n),[u,c]=((e,t,n,i=!1)=>{const a=e;let s,o=t,u=n,c=i;for(;void 0===s;)if(r.iI(o)&&r.iI(u)){const e=r.v4(o)[0],t=r.Rx(o),n=r.v4(u)[0],i=r.v4(u)[1],a=r.Rx(u);e.startTimeMillisn.startTimeMillis?o=t:e.idn.id?o=t:s=[i,c]}else s=[a.initial,!0];return s})(n,o,e);if(c){const e=n.diff(u,s),r=o[0][1],c=n.join(r,n.patch(e)(r));if(!i.aI(r,c)){let e;const r=o[0][0];e=r[i.HR](t)?[[r,c],...o.slice(1)]:[[t,c],...o],a.set(n,e)}}}}),new h(a)}),m=(0,a.XY)(2,(e,t)=>{const n=new Map;return y(e,n,t),new h(n)}),y=(e,t,n)=>{e.locals.forEach((e,r)=>{const a=e[0][1],s=r.patch(r.fork)(a);i.aI(a,s)?t.set(r,e):t.set(r,[[n,s],...e])})},b=e=>s.Ts(e.locals.keys()),g=e=>c.QZV(b(e),t=>c.Ecz(t,_(e,t))),v=(0,a.XY)(2,(e,t)=>{const n=new Map(e.locals);return n.delete(t),new h(n)}),w=(0,a.XY)(2,(e,t)=>e.locals.has(t)?o.zN(r.v4(e.locals.get(t))[1]):o.dv()),_=(0,a.XY)(2,(e,t)=>(0,a.Fs)(w(e,t),o.WL(()=>t.initial))),S=(0,a.XY)(2,(e,{fiberId:t,fiberRef:n,value:r})=>{if(0===e.locals.size)return new h(new Map([[n,[[t,r]]]]));const i=new Map(e.locals);return E(i,t,n,r),new h(i)}),E=(e,t,n,a)=>{const s=e.get(n)??[];let o;if(r.iI(s)){const[e,n]=r.v4(s);if(e[i.HR](t)){if(i.aI(n,a))return;o=[[t,a],...s.slice(1)]}else o=[[t,a],...s]}else o=[[t,a]];e.set(n,o)},k=(0,a.XY)(2,(e,{entries:t,forkAs:n})=>{if(0===e.locals.size)return new h(new Map(t));const r=new Map(e.locals);return void 0!==n&&y(e,r,n),t.forEach(([e,t])=>{1===t.length?E(r,t[0][0],e,t[0][1]):t.forEach(([t,n])=>{E(r,t,e,n)})}),new h(r)})},35346(e,t,n){"use strict";n.d(t,{s:()=>s});var r=n(85327),i=n(76329),a=n(75209);async function s(e,{serializedTransaction:t,throwOnReceiptRevert:n,timeout:s}){const o=await e.request({method:"eth_sendRawTransactionSync",params:s?[t,(0,a.cK)(s)]:[t]},{retryCount:0}),u=(e.chain?.formatters?.transactionReceipt?.format||i.uL)(o);if("reverted"===u.status&&n)throw new r.Sq({receipt:u});return u}},35546(e,t,n){"use strict";var r=n(92772),i=r.assert,a=r.parseBytes,s=r.cachedProperty;function o(e,t){this.eddsa=e,this._secret=a(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=a(t.pub)}o.fromPublic=function(e,t){return t instanceof o?t:new o(e,{pub:t})},o.fromSecret=function(e,t){return t instanceof o?t:new o(e,{secret:t})},o.prototype.secret=function(){return this._secret},s(o,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())}),s(o,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())}),s(o,"privBytes",function(){var e=this.eddsa,t=this.hash(),n=e.encodingLength-1,r=t.slice(0,e.encodingLength);return r[0]&=248,r[n]&=127,r[n]|=64,r}),s(o,"priv",function(){return this.eddsa.decodeInt(this.privBytes())}),s(o,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()}),s(o,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)}),o.prototype.sign=function(e){return i(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},o.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},o.prototype.getSecret=function(e){return i(this._secret,"KeyPair is public only"),r.encode(this.secret(),e)},o.prototype.getPublic=function(e){return r.encode(this.pubBytes(),e)},e.exports=o},35593(e,t,n){"use strict";n.d(t,{S:()=>o});var r=n(27215),i=n(84015),a=n(81127),s=n(75209);function o(e,t){const n=t||"hex",o=(0,r.lY)((0,i.q)(e,{strict:!1})?(0,a.ZJ)(e):e);return"bytes"===n?o:(0,s.nj)(o)}},35815(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(22758)),i=o(n(31547)),a=o(n(81181)),s=o(n(31864));function o(e){return e&&e.__esModule?e:{default:e}}t.default=function(){var e=new Uint32Array(10),t=new Uint32Array(10),n=new Uint32Array(2);return function(o){for(var u=0;u<24;u++)(0,s.default)({A:o,C:e,D:t,W:n}),(0,a.default)({A:o,C:e,W:n}),(0,r.default)({A:o,C:e}),(0,i.default)({A:o,roundIndex:u});e.fill(0),t.fill(0),n.fill(0)}}},35951(e,t,n){"use strict";e.exports=function(t){var n=t.toLowerCase(),r=e.exports[n];if(!r)throw new Error(n+" is not supported (we accept pull requests)");return new r},e.exports.sha=n(77901),e.exports.sha1=n(44114),e.exports.sha224=n(62489),e.exports.sha256=n(3808),e.exports.sha384=n(13284),e.exports.sha512=n(65269)},36093(e,t,n){"use strict";n.d(t,{lB:()=>s});const r=new Map,i=new Map;let a=0;function s(e,t,n){const s=++a,o=()=>r.get(e)||[],u=()=>{const t=o();if(!t.some(e=>e.id===s))return;const n=i.get(e);if(1===t.length&&n){const e=n();e instanceof Promise&&e.catch(()=>{})}(()=>{const t=o();r.set(e,t.filter(e=>e.id!==s))})()},c=o();if(r.set(e,[...c,{id:s,fns:t}]),c&&c.length>0)return u;const l={};for(const e in t)l[e]=(...t)=>{const n=o();if(0!==n.length)for(const r of n)r.fns[e]?.(...t)};const f=n(l);return"function"==typeof f&&i.set(e,f),u}},36388(e,t,n){"use strict";n.d(t,{MG:()=>s,nS:()=>o});var r=n(47726),i=n(89921);const a=Symbol.for("effect/Console"),s=r.Io("effect/Console"),o={[a]:a,assert:(e,...t)=>i.OH5(()=>{console.assert(e,...t)}),clear:i.OH5(()=>{console.clear()}),count:e=>i.OH5(()=>{console.count(e)}),countReset:e=>i.OH5(()=>{console.countReset(e)}),debug:(...e)=>i.OH5(()=>{console.debug(...e)}),dir:(e,t)=>i.OH5(()=>{console.dir(e,t)}),dirxml:(...e)=>i.OH5(()=>{console.dirxml(...e)}),error:(...e)=>i.OH5(()=>{console.error(...e)}),group:e=>e?.collapsed?i.OH5(()=>console.groupCollapsed(e?.label)):i.OH5(()=>console.group(e?.label)),groupEnd:i.OH5(()=>{console.groupEnd()}),info:(...e)=>i.OH5(()=>{console.info(...e)}),log:(...e)=>i.OH5(()=>{console.log(...e)}),table:(e,t)=>i.OH5(()=>{console.table(e,t)}),time:e=>i.OH5(()=>console.time(e)),timeEnd:e=>i.OH5(()=>console.timeEnd(e)),timeLog:(e,...t)=>i.OH5(()=>{console.timeLog(e,...t)}),trace:(...e)=>i.OH5(()=>{console.trace(...e)}),warn:(...e)=>i.OH5(()=>{console.warn(...e)}),unsafe:console}},36442(e,t,n){"use strict";var r=n(61085).F.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,n,i){var a=function(e,t,n){return null!=e.highWaterMark?e.highWaterMark:t?e[n]:null}(t,i,n);if(null!=a){if(!isFinite(a)||Math.floor(a)!==a||a<0)throw new r(i?n:"highWaterMark",a);return Math.floor(a)}return e.objectMode?16:16384}}},36455(e,t){t["des-ecb"]={key:8,iv:0},t["des-cbc"]=t.des={key:8,iv:8},t["des-ede3-cbc"]=t.des3={key:24,iv:8},t["des-ede3"]={key:24,iv:0},t["des-ede-cbc"]={key:16,iv:8},t["des-ede"]={key:16,iv:0}},36708(e,t,n){"use strict";n.d(t,{$I:()=>f,$r:()=>x,Gu:()=>w,IB:()=>v,NW:()=>m,Ru:()=>d,Tj:()=>S,WL:()=>p,XQ:()=>P,Y6:()=>g,YW:()=>h,ZK:()=>y,bt:()=>I,dv:()=>u,gR:()=>A,k$:()=>b,n4:()=>_,oL:()=>l,pb:()=>M,qI:()=>E,t2:()=>N,v9:()=>k,zN:()=>c});var r=n(72529),i=n(91893),a=n(59329),s=n(56802),o=n(64458);const u=()=>o.dv,c=o.zN,l=o.oL,f=o.$I,d=o.Ru,h=(0,a.XY)(2,(e,{onNone:t,onSome:n})=>f(e)?t():n(e.value)),p=(s.j4,s.Gp,(0,a.XY)(2,(e,t)=>f(e)?t():e.value)),m=(0,a.XY)(2,(e,t)=>f(e)?t():e),y=(0,a.XY)(2,(e,t)=>f(e)?c(t()):e),b=e=>null==e?u():c(e),g=p(a.MN),v=e=>(...t)=>{try{return c(e(...t))}catch{return u()}},w=(0,a.XY)(2,(e,t)=>{if(d(e))return e.value;throw t()}),_=w(()=>new Error("getOrThrow called on a None")),S=(0,a.XY)(2,(e,t)=>f(e)?u():c(t(e.value))),E=(0,a.XY)(2,(e,t)=>f(e)?u():t(e.value)),k=(0,a.XY)(2,(e,t)=>f(e)?u():b(t(e.value))),x=e=>f(e)?[]:[e.value],T=E,M=(0,a.XY)(2,(e,t)=>T(e,e=>t(e)?o.zN(e):o.dv)),I=e=>i.L8((t,n)=>f(t)?f(n):!f(n)&&e(t.value,n.value)),A=(e=>(0,a.XY)(2,(t,n)=>!f(t)&&e(t.value,n)))(r.XY()),N=(0,a.XY)(2,(e,t)=>!f(e)&&t(e.value)),P=e=>(t,n)=>f(t)?n:f(n)?t:c(e(t.value,n.value))},37049(e){"use strict";e.exports=RangeError},37279(e){"use strict";e.exports=["Float16Array","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]},37526(e){"use strict";var t=Object.defineProperty||!1;if(t)try{t({},"a",{value:1})}catch(e){t=!1}e.exports=t},37553(e,t,n){"use strict";var r=n(37526),i=function(){return!!r};i.hasArrayLengthDefineBug=function(){if(!r)return null;try{return 1!==r([],"length",{value:1}).length}catch(e){return!0}},e.exports=i},38105(e){"use strict";e.exports=Math.abs},38149(e,t,n){"use strict";async function r(e,{filter:t}){return t.request({method:"eth_uninstallFilter",params:[t.id]})}n.d(t,{Z:()=>r})},38264(e,t,n){var r=n(33213),i=n(73730).Buffer,a=n(30201);function s(e){a.call(this,e),this.enc="pem"}r(s,a),e.exports=s,s.prototype.decode=function(e,t){for(var n=e.toString().split(/[\r\n]+/g),r=t.label.toUpperCase(),s=/^-----(BEGIN|END) ([^-]+)-----$/,o=-1,u=-1,c=0;c{const r="function"==typeof n?n(t):n,i={...t,...r};return Object.assign(i,{extend:e(i)})}}(t)})}n.d(t,{x:()=>r})},39197(e,t,n){var r=t;r.bignum=n(23145),r.define=n(56286).define,r.base=n(54966),r.constants=n(240),r.decoders=n(47202),r.encoders=n(27286)},39437(e,t,n){var r=n(73730).Buffer,i=n(22323),a=n(64950),s=n(4685),o={binary:!0,hex:!0,base64:!0};t.DiffieHellmanGroup=t.createDiffieHellmanGroup=t.getDiffieHellman=function(e){var t=new r(a[e].prime,"hex"),n=new r(a[e].gen,"hex");return new s(t,n)},t.createDiffieHellman=t.DiffieHellman=function e(t,n,a,u){return r.isBuffer(n)||void 0===o[n]?e(t,"binary",n,a):(n=n||"binary",u=u||"binary",a=a||new r([2]),r.isBuffer(a)||(a=new r(a,u)),"number"==typeof t?new s(i(t,a),a,!0):(r.isBuffer(t)||(t=new r(t,n)),new s(t,a,!0)))}},39482(e,t,n){"use strict";var r=n(97103).rotr32;function i(e,t,n){return e&t^~e&n}function a(e,t,n){return e&t^e&n^t&n}function s(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?i(t,n,r):1===e||3===e?s(t,n,r):2===e?a(t,n,r):void 0},t.ch32=i,t.maj32=a,t.p32=s,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},39886(e){"use strict";e.exports=JSON.parse('{"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}')},40258(e){e.exports=function(){throw new Error("Readable.from is not available in the browser")}},40371(e,t,n){var r=n(73730),i=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function s(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=s),a(i,s),s.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,n)},s.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},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 r.SlowBuffer(e)}},40906(e,t,n){"use strict";n.d(t,{Vw:()=>b,DO:()=>a,CC:()=>o,sd:()=>s,Fe:()=>i,Ht:()=>u,uH:()=>l,Id:()=>y,qj:()=>g,O8:()=>f,po:()=>v,Ow:()=>d,fd:()=>p,ZJ:()=>m,DH:()=>c});const r="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;function i(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function a(e,...t){if(!((n=e)instanceof Uint8Array||ArrayBuffer.isView(n)&&"Uint8Array"===n.constructor.name))throw new Error("Uint8Array expected");var n;if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function s(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.createHasher");i(e.outputLen),i(e.blockLen)}function o(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){a(e);const n=t.outputLen;if(e.length>>t}function h(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}const p=(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])()?e=>e:function(e){for(let t=0;te().update(m(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function v(e=32){if(r&&"function"==typeof r.getRandomValues)return r.getRandomValues(new Uint8Array(e));if(r&&"function"==typeof r.randomBytes)return Uint8Array.from(r.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}},40924(e,t,n){var r=n(71822),i=n(72258).Buffer,a=n(71657);function s(e){var t=e._cipher.encryptBlockRaw(e._prev);return a(e._prev),t}t.encrypt=function(e,t){var n=Math.ceil(t.length/16),a=e._cache.length;e._cache=i.concat([e._cache,i.allocUnsafe(16*n)]);for(var o=0;oi,SK:()=>a,hX:()=>s});var r=n(2273);class i extends r.C{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class a extends r.C{constructor({length:e,position:t}){super(`Position \`${t}\` is out of bounds (\`0 < position < ${e}\`).`,{name:"PositionOutOfBoundsError"})}}class s extends r.C{constructor({count:e,limit:t}){super(`Recursive read limit of \`${t}\` exceeded (recursive read count: \`${e}\`).`,{name:"RecursiveReadLimitExceededError"})}}},41498(e,t,n){"use strict";var r=n(42649),i=65536,a=n(72258).Buffer,s=n.g.crypto||n.g.msCrypto;s&&s.getRandomValues?e.exports=function(e,t){if(e>4294967295)throw new RangeError("requested too many random bytes");var n=a.allocUnsafe(e);if(e>0)if(e>i)for(var o=0;oc});var r=n(74014),i=n(15100),a=n(88924),s=n(66893),o=n(26015),u=n(3951);async function c(e,t){return c.internal(e,u.v,"sendTransaction",t)}!function(e){e.internal=async function(e,t,n,u){const{abi:c,account:l=e.account,address:f,args:d,dataSuffix:h,functionName:p,...m}=u;if(void 0===l)throw new i.T({docsPath:"/docs/contract/writeContract"});const y=l?(0,r.J)(l):null,b=(0,a.p)({abi:c,args:d,functionName:p});try{return await(0,o.T)(e,t,n)({data:`${b}${h?h.replace("0x",""):""}`,to:f,account:y,...m})}catch(e){throw(0,s.j)(e,{abi:c,address:f,args:d,docsPath:"/docs/contract/writeContract",functionName:p,sender:y?.address})}}}(c||(c={}))},42169(e,t,n){"use strict";n.d(t,{c:()=>u});var r=n(74014),i=n(19512),a=n(83815),s=n(61355),o=n(462);function u(e){const{account:t,maxFeePerGas:n,maxPriorityFeePerGas:u,to:c}=e,l=t?(0,r.J)(t):void 0;if(l&&!(0,o.P)(l.address))throw new a.M({address:l.address});if(c&&!(0,o.P)(c))throw new a.M({address:c});if(n&&n>i.Ao)throw new s.BG({maxFeePerGas:n});if(u&&n&&u>n)throw new s.lN({maxFeePerGas:n,maxPriorityFeePerGas:u})}},42295(e,t,n){"use strict";e.exports=n(52387)},42649(e){var t,n,r=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{n="function"==typeof clearTimeout?clearTimeout:a}catch(e){n=a}}();var o,u=[],c=!1,l=-1;function f(){c&&o&&(c=!1,o.length?u=o.concat(u):l=-1,u.length&&d())}function d(){if(!c){var e=s(f);c=!0;for(var t=u.length;t;){for(o=u,u=[];++l1)for(var n=1;nMath.pow(2,16)-1||parseInt(t.scope)>Math.pow(2,16)-1||parseInt(t.keyIndex)>Math.pow(2,21)-1)throw new Error("invalid path with value exceeding its limits");return e},i=function(e){return function(){var t=n(e);return parseInt(t.account)*Math.pow(2,37)+parseInt(t.scope)*Math.pow(2,21)+parseInt(t.keyIndex)}};t.KeyPath=function(e){return{value:r(e),parse:function(){return n(e)},next:function(r){return function(e,r){var i=n(e),a=parseInt(i.keyIndex),s=void 0!==r&&r>1?r:1,o="m/"+i.account+"/"+i.scope+"/"+(a+s).toString(10);return(0,t.KeyPath)(o)}(e,r)},valueOf:i(e)}}},43475(e,t,n){"use strict";e.exports=i;var r=n(27825);function i(e){if(!(this instanceof i))return new i(e);r.call(this,e)}n(33213)(i,r),i.prototype._transform=function(e,t,n){n(null,e)}},44114(e,t,n){"use strict";var r=n(33213),i=n(96811),a=n(72258).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],o=new Array(80);function u(){this.init(),this._w=o,i.call(this,64,56)}function c(e){return e<<1|e>>>31}function l(e){return e<<5|e>>>27}function f(e){return e<<30|e>>>2}function d(e,t,n,r){return 0===e?t&n|~t&r:2===e?t&n|t&r|n&r:t^n^r}r(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(e){for(var t=this._w,n=0|this._a,r=0|this._b,i=0|this._c,a=0|this._d,o=0|this._e,u=0;u<16;++u)t[u]=e.readInt32BE(4*u);for(;u<80;++u)t[u]=c(t[u-3]^t[u-8]^t[u-14]^t[u-16]);for(var h=0;h<80;++h){var p=~~(h/20),m=l(n)+d(p,r,i,a)+o+t[h]+s[p]|0;o=a,a=i,i=f(r),r=n,n=m}this._a=n+this._a|0,this._b=r+this._b|0,this._c=i+this._c|0,this._d=a+this._d|0,this._e=o+this._e|0},u.prototype._hash=function(){var e=a.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=u},44166(e,t,n){"use strict";n.d(t,{G:()=>a});const r=new Map,i=new Map;async function a(e,{cacheTime:t=e.cacheTime}={}){const n=await async function(e,{cacheKey:t,cacheTime:n=Number.POSITIVE_INFINITY}){const a=function(e){const t=(e,t)=>({clear:()=>t.delete(e),get:()=>t.get(e),set:n=>t.set(e,n)}),n=t(e,r),a=t(e,i);return{clear:()=>{n.clear(),a.clear()},promise:n,response:a}}(t),s=a.response.get();if(s&&n>0&&Date.now()-s.created.getTime()e.request({method:"eth_blockNumber"}),{cacheKey:(a=e.uid,`blockNumber.${a}`),cacheTime:t});var a;return BigInt(n)}},44535(e,t,n){"use strict";n.d(t,{RR:()=>o,pw:()=>s,sM:()=>a});var r=n(60077),i=n(2273);class a extends i.C{constructor(){super("`baseFeeMultiplier` must be greater than 1.",{name:"BaseFeeScalarError"})}}class s extends i.C{constructor(){super("Chain does not support EIP-1559 fees.",{name:"Eip1559FeesNotSupportedError"})}}class o extends i.C{constructor({maxPriorityFeePerGas:e}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${(0,r.Q)(e)} gwei).`,{name:"MaxFeePerGasTooLowError"})}}},44720(e,t,n){"use strict";n.d(t,{p:()=>u});var r=n(97668),i=n(81127),a=n(35593),s=n(18056),o=n(59398);function u(e){const{abi:t,args:n,logs:u,strict:c=!0}=e,l=(()=>{if(e.eventName)return Array.isArray(e.eventName)?e.eventName:[e.eventName]})();return u.map(e=>{const u=t.filter(t=>"event"===t.type&&e.topics[0]===(0,s.h)(t));if(0===u.length)return null;let f,d;for(const t of u)try{f=(0,o.j)({...e,abi:[t],strict:!0}),d=t;break}catch{}if(!f&&!c){d=u[0];try{f=(0,o.j)({...e,abi:[d],strict:!1})}catch{const t=d.inputs?.some(e=>!("name"in e&&e.name));return{...e,args:t?[]:{},eventName:d.name}}}return f&&d?l&&!l.includes(f.eventName)?null:function(e){const{args:t,inputs:n,matchArgs:s}=e;if(!s)return!0;if(!t)return!1;function o(e,t,n){try{return"address"===e.type?(0,r.h)(t,n):"string"===e.type||"bytes"===e.type?(0,a.S)((0,i.ZJ)(t))===n:t===n}catch{return!1}}return Array.isArray(t)&&Array.isArray(s)?s.every((e,r)=>{if(null==e)return!0;const i=n[r];return!!i&&(Array.isArray(e)?e:[e]).some(e=>o(i,e,t[r]))}):"object"==typeof t&&!Array.isArray(t)&&"object"==typeof s&&!Array.isArray(s)&&Object.entries(s).every(([e,r])=>{if(null==r)return!0;const i=n.find(t=>t.name===e);return!!i&&(Array.isArray(r)?r:[r]).some(n=>o(i,n,t[e]))})}({args:f.args,inputs:d.inputs,matchArgs:n})?{...f,...e}:null:null}).filter(Boolean)}},44815(e,t,n){"use strict";n.d(t,{E$:()=>P,Ej:()=>k,HS:()=>S,Ie:()=>y,KC:()=>O,L$:()=>R,L8:()=>g,Si:()=>_,TF:()=>A,TS:()=>L,Tj:()=>C,Tk:()=>M,Ts:()=>b,WQ:()=>I,bV:()=>T,fi:()=>p,iv:()=>N,jB:()=>D,jJ:()=>F,jT:()=>x,oC:()=>f,pb:()=>j,qI:()=>B,zN:()=>w,zu:()=>E,zx:()=>h,zy:()=>v});var r=n(72529),i=n(59329),a=n(46385),s=n(12717),o=n(66949),u=n(82884),c=n(49362);const l="effect/HashSet",f=Symbol.for(l),d={[f]:f,[Symbol.iterator](){return c.HP(this._keyMap)},[a.HR](){return a.PO(this,a.kg(a.tW(this._keyMap))(a.tW(l)))},[r.HR](e){return!!p(e)&&c.Ej(this._keyMap)===c.Ej(e._keyMap)&&r.aI(this._keyMap,e._keyMap)},toString(){return(0,s.GP)(this.toJSON())},toJSON(){return{_id:"HashSet",values:Array.from(this).map(s.U2)}},[s.FX](){return this.toJSON()},pipe(){return(0,o.tT)(this,arguments)}},h=e=>{const t=Object.create(d);return t._keyMap=e,t},p=e=>(0,u.i5)(e,f),m=h(c.Ie()),y=()=>m,b=e=>{const t=x(y());for(const n of e)I(t,n);return T(t)},g=(...e)=>{const t=x(y());for(const n of e)I(t,n);return T(t)},v=(0,i.XY)(2,(e,t)=>c.zy(e._keyMap,t)),w=(0,i.XY)(2,(e,t)=>{let n=!1;for(const r of e)if(n=t(r),n)break;return n}),_=(0,i.XY)(2,(e,t)=>!w(e,e=>!t(e))),S=(0,i.XY)(2,(e,t)=>_(e,e=>v(t,e))),E=e=>c.HP(e._keyMap),k=e=>c.Ej(e._keyMap),x=e=>h(c.jT(e._keyMap)),T=e=>(e._keyMap._editable=!1,e),M=(0,i.XY)(2,(e,t)=>{const n=x(e);return t(n),T(n)}),I=(0,i.XY)(2,(e,t)=>e._keyMap._editable?(c.hZ(t,!0)(e._keyMap),e):h(c.hZ(t,!0)(e._keyMap))),A=(0,i.XY)(2,(e,t)=>e._keyMap._editable?(c.TF(t)(e._keyMap),e):h(c.TF(t)(e._keyMap))),N=(0,i.XY)(2,(e,t)=>M(e,e=>{for(const n of t)A(e,n)})),P=(0,i.XY)(2,(e,t)=>M(y(),n=>{for(const r of t)v(r)(e)&&I(r)(n)})),O=(0,i.XY)(2,(e,t)=>M(y(),n=>{F(e,e=>I(n,e));for(const e of t)I(n,e)})),R=(0,i.XY)(2,(e,t)=>v(e,t)?A(e,t):I(e,t)),C=(0,i.XY)(2,(e,t)=>M(y(),n=>{F(e,e=>{const r=t(e);v(n,r)||I(n,r)})})),B=(0,i.XY)(2,(e,t)=>M(y(),n=>{F(e,e=>{for(const r of t(e))v(n,r)||I(n,r)})})),F=(0,i.XY)(2,(e,t)=>c.jJ(e._keyMap,(e,n)=>t(n))),L=(0,i.XY)(3,(e,t,n)=>c.TS(e._keyMap,t,(e,t,r)=>n(e,r))),j=(0,i.XY)(2,(e,t)=>M(y(),n=>{const r=E(e);let i;for(;!(i=r.next()).done;){const e=i.value;t(e)&&I(n,e)}})),D=(0,i.XY)(2,(e,t)=>{const n=E(e);let r;const i=x(y()),a=x(y());for(;!(r=n.next()).done;){const e=r.value;t(e)?I(i,e):I(a,e)}return[T(a),T(i)]})},45011(e,t,n){"use strict";n.d(t,{T:()=>x});var r=n(72021),i=n(22839),a=n(18318);function s(e){const t=(0,i.e)(e),n=[],s=e.length;for(let i=0;ivoid 0!==e).length>0)}({request:f})&&!s&&!r)try{return await async function(e,t){const{batchSize:n=1024,deployless:r=!1,wait:i=0}="object"==typeof e.batch?.multicall?e.batch.multicall:{},{blockNumber:a,blockTag:s=e.experimental_blockTag??"latest",data:o,to:u}=t,f=(()=>{if(r)return null;if(t.multicallAddress)return t.multicallAddress;if(e.chain)return(0,b.M)({blockNumber:a,chain:e.chain,contract:"multicall3"});throw new d.YE})(),m=("bigint"==typeof a?(0,g.cK)(a):void 0)||s,{schedule:v}=(0,S.u)({id:`${e.uid}.${m}`,wait:i,shouldSplitBatch(e){const t=e.reduce((e,{data:t})=>e+(t.length-2),0);return t>2*n},fn:async t=>{const n=t.map(e=>({allowFailure:!0,callData:e.data,target:e.to})),r=(0,y.p)({abi:c.v2,args:[n],functionName:"aggregate3"}),i=await e.request({method:"eth_call",params:[{...null===f?{data:T({code:l.Ez,data:r})}:{to:f,data:r}},m]});return(0,p.e)({abi:c.v2,args:[n],functionName:"aggregate3",data:i||"0x"})}}),[{returnData:w,success:_}]=await v({data:o,to:u});if(!_)throw new h.$S({data:w});return"0x"===w?{data:void 0}:{data:w}}(e,{...f,blockNumber:x,blockTag:M})}catch(e){if(!(e instanceof d.YE||e instanceof d.rj))throw e}const m=(()=>{const e=[f,n];return s&&r?[...e,s,r]:s?[...e,s]:r?[...e,{},r]:e})(),v=await e.request({method:"eth_call",params:m});return"0x"===v?{data:void 0}:{data:v}}catch(r){const i=function(e){if(!(e instanceof f.C))return;const t=e.walk();return"object"==typeof t?.data?t.data?.data:t.data}(r),{offchainLookup:a,offchainLookupSignature:s}=await n.e(96).then(n.bind(n,52366));if(!1!==e.ccipRead&&i?.slice(0,10)===s&&z)return{data:await a(e,{data:i,to:z})};if(G&&"0x101bb98d"===i?.slice(0,10))throw new h.Po({factory:R});throw(0,v.d)(r,{...t,account:Y,chain:e.chain})}}function T(e){const{code:t,data:n}=e;return(0,m.m)({abi:s(["constructor(bytes, bytes)"]),bytecode:l.LX,args:[t,n]})}},45264(e,t,n){"use strict";n.d(t,{secp256k1:()=>Me});var r=n(23777),i=n(40906);class a extends i.Vw{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,(0,i.sd)(e);const n=(0,i.ZJ)(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 r=this.blockLen,a=new Uint8Array(r);a.set(n.length>r?e.create().update(n).digest():n);for(let e=0;enew a(e,t).update(n).digest();s.create=(e,t)=>new a(e,t);const o=BigInt(0),u=BigInt(1);function c(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function l(e){if(!c(e))throw new Error("Uint8Array expected")}function f(e,t){if("boolean"!=typeof t)throw new Error(e+" boolean expected, got "+t)}function d(e){const t=e.toString(16);return 1&t.length?"0"+t:t}function h(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);return""===e?o:BigInt("0x"+e)}const p="function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex,m=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function y(e){if(l(e),p)return e.toHex();let t="";for(let n=0;n=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function g(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);if(p)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const r=new Uint8Array(n);for(let t=0,i=0;t"bigint"==typeof e&&o<=e;function T(e,t,n){return x(e)&&x(t)&&x(n)&&t<=e&&e(u<new Uint8Array(e),N=e=>Uint8Array.from(e),P={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||c(e),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 O(e,t,n={}){const r=(t,n,r)=>{const i=P[n];if("function"!=typeof i)throw new Error("invalid validator function");const a=e[t];if(!(r&&void 0===a||i(a,e)))throw new Error("param "+String(t)+" is invalid. Expected "+n+", got "+a)};for(const[e,n]of Object.entries(t))r(e,n,!1);for(const[e,t]of Object.entries(n))r(e,t,!0);return e}function R(e){const t=new WeakMap;return(n,...r)=>{const i=t.get(n);if(void 0!==i)return i;const a=e(n,...r);return t.set(n,a),a}}const C=BigInt(0),B=BigInt(1),F=BigInt(2),L=BigInt(3),j=BigInt(4),D=BigInt(5),U=BigInt(8);function z(e,t){const n=e%t;return n>=C?n:t+n}function $(e,t,n){let r=e;for(;t-- >C;)r*=r,r%=n;return r}function V(e,t){if(e===C)throw new Error("invert: expected non-zero number");if(t<=C)throw new Error("invert: expected positive modulus, got "+t);let n=z(e,t),r=t,i=C,a=B,s=B,o=C;for(;n!==C;){const e=r/n,t=r%n,u=i-s*e,c=a-o*e;r=n,n=t,i=s,a=o,s=u,o=c}if(r!==B)throw new Error("invert: does not exist");return z(i,t)}function K(e,t){const n=(e.ORDER+B)/j,r=e.pow(t,n);if(!e.eql(e.sqr(r),t))throw new Error("Cannot find square root");return r}function Y(e,t){const n=(e.ORDER-D)/U,r=e.mul(t,F),i=e.pow(r,n),a=e.mul(t,i),s=e.mul(e.mul(a,F),i),o=e.mul(a,e.sub(s,e.ONE));if(!e.eql(e.sqr(o),t))throw new Error("Cannot find square root");return o}const q=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function H(e,t,n=!1){const r=new Array(t.length).fill(n?e.ZERO:void 0),i=t.reduce((t,n,i)=>e.is0(n)?t:(r[i]=t,e.mul(t,n)),e.ONE),a=e.inv(i);return t.reduceRight((t,n,i)=>e.is0(n)?t:(r[i]=e.mul(t,r[i]),e.mul(t,n)),a),r}function G(e,t){const n=(e.ORDER-B)/F,r=e.pow(t,n),i=e.eql(r,e.ONE),a=e.eql(r,e.ZERO),s=e.eql(r,e.neg(e.ONE));if(!i&&!a&&!s)throw new Error("invalid Legendre symbol result");return i?1:a?0:-1}function W(e,t){void 0!==t&&(0,i.Fe)(t);const n=void 0!==t?t:e.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function X(e,t,n=!1,r={}){if(e<=C)throw new Error("invalid field: expected ORDER > 0, got "+e);const{nBitLength:i,nByteLength:a}=W(e,t);if(a>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let s;const o=Object.freeze({ORDER:e,isLE:n,BITS:i,BYTES:a,MASK:I(i),ZERO:C,ONE:B,create:t=>z(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("invalid field element: expected bigint, got "+typeof t);return C<=t&&te===C,isOdd:e=>(e&B)===B,neg:t=>z(-t,e),eql:(e,t)=>e===t,sqr:t=>z(t*t,e),add:(t,n)=>z(t+n,e),sub:(t,n)=>z(t-n,e),mul:(t,n)=>z(t*n,e),pow:(e,t)=>function(e,t,n){if(nC;)n&B&&(r=e.mul(r,i)),i=e.sqr(i),n>>=B;return r}(o,e,t),div:(t,n)=>z(t*V(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>V(t,e),sqrt:r.sqrt||(t=>{return s||(s=(n=e)%j===L?K:n%U===D?Y:function(e){if(e1e3)throw new Error("Cannot find square root: probably non-prime P");if(1===n)return K;let a=i.pow(r,t);const s=(t+B)/F;return function(e,r){if(e.is0(r))return r;if(1!==G(e,r))throw new Error("Cannot find square root");let i=n,o=e.mul(e.ONE,a),u=e.pow(r,t),c=e.pow(r,s);for(;!e.eql(u,e.ONE);){if(e.is0(u))return e.ZERO;let t=1,n=e.sqr(u);for(;!e.eql(n,e.ONE);)if(t++,n=e.sqr(n),t===i)throw new Error("Cannot find square root");const r=B<n?S(e,a):_(e,a),fromBytes:e=>{if(e.length!==a)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+e.length);return n?w(e):v(e)},invertBatch:e=>H(o,e),cmov:(e,t,n)=>n?t:e});return Object.freeze(o)}function J(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 Z(e){const t=J(e);return t+Math.ceil(t/2)}const Q=BigInt(0),ee=BigInt(1);function te(e,t){const n=t.negate();return e?n:t}function ne(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function re(e,t){ne(e,t);const n=2**e;return{windows:Math.ceil(t/e)+1,windowSize:2**(e-1),mask:I(e),maxNumber:n,shiftBy:BigInt(e)}}function ie(e,t,n){const{windowSize:r,mask:i,maxNumber:a,shiftBy:s}=n;let o=Number(e&i),u=e>>s;o>r&&(o-=a,u+=ee);const c=t*r;return{nextN:u,offset:c+Math.abs(o)-1,isZero:0===o,isNeg:o<0,isNegF:t%2!=0,offsetF:c}}const ae=new WeakMap,se=new WeakMap;function oe(e){return se.get(e)||1}function ue(e,t,n,r){(function(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((e,n)=>{if(!(e instanceof t))throw new Error("invalid point at index "+n)})})(n,e),function(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((e,n)=>{if(!t.isValid(e))throw new Error("invalid scalar at index "+n)})}(r,t);const i=n.length,a=r.length;if(i!==a)throw new Error("arrays of points and scalars must have equal length");const s=e.ZERO,c=function(e){let t;for(t=0;e>o;e>>=u,t+=1);return t}(BigInt(i));let l=1;c>12?l=c-3:c>4?l=c-2:c>0&&(l=2);const f=I(l),d=new Array(Number(f)+1).fill(s);let h=s;for(let e=Math.floor((t.BITS-1)/l)*l;e>=0;e-=l){d.fill(s);for(let t=0;t>BigInt(e)&f);d[a]=d[a].add(n[t])}let t=s;for(let e=d.length-1,n=s;e>0;e--)n=n.add(d[e]),t=t.add(n);if(h=h.add(t),0!==e)for(let e=0;e(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"})),O(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...W(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}function le(e){void 0!==e.lowS&&f("lowS",e.lowS),void 0!==e.prehash&&f("prehash",e.prehash)}class fe extends Error{constructor(e=""){super(e)}}const de={Err:fe,_tlv:{encode:(e,t)=>{const{Err:n}=de;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(1&t.length)throw new n("tlv.encode: unpadded data");const r=t.length/2,i=d(r);if(i.length/2&128)throw new n("tlv.encode: long form length too big");const a=r>127?d(i.length/2|128):"";return d(e)+a+i+t},decode(e,t){const{Err:n}=de;let r=0;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length<2||t[r++]!==e)throw new n("tlv.decode: wrong tlv");const i=t[r++];let a=0;if(128&i){const e=127&i;if(!e)throw new n("tlv.decode(long): indefinite length not supported");if(e>4)throw new n("tlv.decode(long): byte length is too big");const s=t.subarray(r,r+e);if(s.length!==e)throw new n("tlv.decode: length bytes not complete");if(0===s[0])throw new n("tlv.decode(long): zero leftmost byte");for(const e of s)a=a<<8|e;if(r+=e,a<128)throw new n("tlv.decode(long): not minimal encoding")}else a=i;const s=t.subarray(r,r+a);if(s.length!==a)throw new n("tlv.decode: wrong value length");return{v:s,l:t.subarray(r+a)}}},_int:{encode(e){const{Err:t}=de;if(e{const i=t.toAffine();return k(Uint8Array.from([4]),n.toBytes(i.x),n.toBytes(i.y))}),a=t.fromBytes||(e=>{const t=e.subarray(1);return{x:n.fromBytes(t.subarray(0,n.BYTES)),y:n.fromBytes(t.subarray(n.BYTES,2*n.BYTES))}});function s(e){const{a:r,b:i}=t,a=n.sqr(e),s=n.mul(a,e);return n.add(n.add(s,n.mul(e,r)),i)}function o(e,t){const r=n.sqr(t),i=s(e);return n.eql(r,i)}if(!o(t.Gx,t.Gy))throw new Error("bad curve params: generator point");const u=n.mul(n.pow(t.a,ye),be),l=n.mul(n.sqr(t.b),BigInt(27));if(n.is0(n.add(u,l)))throw new Error("bad curve params: a or b");function d(e){const{allowedPrivateKeyLengths:n,nByteLength:r,wrapPrivateKey:i,n:a}=t;if(n&&"bigint"!=typeof e){if(c(e)&&(e=y(e)),"string"!=typeof e||!n.includes(e.length))throw new Error("invalid private key");e=e.padStart(2*r,"0")}let s;try{s="bigint"==typeof e?e:v(E("private key",e,r))}catch(t){throw new Error("invalid private key, expected hex or "+r+" bytes, got "+typeof e)}return i&&(s=z(s,a)),M("private key",s,me,a),s}function h(e){if(!(e instanceof b))throw new Error("ProjectivePoint expected")}const p=R((e,t)=>{const{px:r,py:i,pz:a}=e;if(n.eql(a,n.ONE))return{x:r,y:i};const s=e.is0();null==t&&(t=s?n.ONE:n.inv(a));const o=n.mul(r,t),u=n.mul(i,t),c=n.mul(a,t);if(s)return{x:n.ZERO,y:n.ZERO};if(!n.eql(c,n.ONE))throw new Error("invZ was invalid");return{x:o,y:u}}),m=R(e=>{if(e.is0()){if(t.allowInfinityPoint&&!n.is0(e.py))return;throw new Error("bad point: ZERO")}const{x:r,y:i}=e.toAffine();if(!n.isValid(r)||!n.isValid(i))throw new Error("bad point: x or y not FE");if(!o(r,i))throw new Error("bad point: equation left != right");if(!e.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class b{constructor(e,t,r){if(null==e||!n.isValid(e))throw new Error("x required");if(null==t||!n.isValid(t)||n.is0(t))throw new Error("y required");if(null==r||!n.isValid(r))throw new Error("z required");this.px=e,this.py=t,this.pz=r,Object.freeze(this)}static fromAffine(e){const{x:t,y:r}=e||{};if(!e||!n.isValid(t)||!n.isValid(r))throw new Error("invalid affine point");if(e instanceof b)throw new Error("projective point not allowed");const i=e=>n.eql(e,n.ZERO);return i(t)&&i(r)?b.ZERO:new b(t,r,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){const t=H(n,e.map(e=>e.pz));return e.map((e,n)=>e.toAffine(t[n])).map(b.fromAffine)}static fromHex(e){const t=b.fromAffine(a(E("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return b.BASE.multiply(d(e))}static msm(e,t){return ue(b,r,e,t)}_setWindowSize(e){_.setWindowSize(this,e)}assertValidity(){m(this)}hasEvenY(){const{y:e}=this.toAffine();if(n.isOdd)return!n.isOdd(e);throw new Error("Field doesn't support isOdd")}equals(e){h(e);const{px:t,py:r,pz:i}=this,{px:a,py:s,pz:o}=e,u=n.eql(n.mul(t,o),n.mul(a,i)),c=n.eql(n.mul(r,o),n.mul(s,i));return u&&c}negate(){return new b(this.px,n.neg(this.py),this.pz)}double(){const{a:e,b:r}=t,i=n.mul(r,ye),{px:a,py:s,pz:o}=this;let u=n.ZERO,c=n.ZERO,l=n.ZERO,f=n.mul(a,a),d=n.mul(s,s),h=n.mul(o,o),p=n.mul(a,s);return p=n.add(p,p),l=n.mul(a,o),l=n.add(l,l),u=n.mul(e,l),c=n.mul(i,h),c=n.add(u,c),u=n.sub(d,c),c=n.add(d,c),c=n.mul(u,c),u=n.mul(p,u),l=n.mul(i,l),h=n.mul(e,h),p=n.sub(f,h),p=n.mul(e,p),p=n.add(p,l),l=n.add(f,f),f=n.add(l,f),f=n.add(f,h),f=n.mul(f,p),c=n.add(c,f),h=n.mul(s,o),h=n.add(h,h),f=n.mul(h,p),u=n.sub(u,f),l=n.mul(h,d),l=n.add(l,l),l=n.add(l,l),new b(u,c,l)}add(e){h(e);const{px:r,py:i,pz:a}=this,{px:s,py:o,pz:u}=e;let c=n.ZERO,l=n.ZERO,f=n.ZERO;const d=t.a,p=n.mul(t.b,ye);let m=n.mul(r,s),y=n.mul(i,o),g=n.mul(a,u),v=n.add(r,i),w=n.add(s,o);v=n.mul(v,w),w=n.add(m,y),v=n.sub(v,w),w=n.add(r,a);let _=n.add(s,u);return w=n.mul(w,_),_=n.add(m,g),w=n.sub(w,_),_=n.add(i,a),c=n.add(o,u),_=n.mul(_,c),c=n.add(y,g),_=n.sub(_,c),f=n.mul(d,w),c=n.mul(p,g),f=n.add(c,f),c=n.sub(y,f),f=n.add(y,f),l=n.mul(c,f),y=n.add(m,m),y=n.add(y,m),g=n.mul(d,g),w=n.mul(p,w),y=n.add(y,g),g=n.sub(m,g),g=n.mul(d,g),w=n.add(w,g),m=n.mul(y,w),l=n.add(l,m),m=n.mul(_,w),c=n.mul(v,c),c=n.sub(c,m),m=n.mul(v,y),f=n.mul(_,f),f=n.add(f,m),new b(c,l,f)}subtract(e){return this.add(e.negate())}is0(){return this.equals(b.ZERO)}wNAF(e){return _.wNAFCached(this,e,b.normalizeZ)}multiplyUnsafe(e){const{endo:r,n:i}=t;M("scalar",e,pe,i);const a=b.ZERO;if(e===pe)return a;if(this.is0()||e===me)return this;if(!r||_.hasPrecomputes(this))return _.wNAFCachedUnsafe(this,e,b.normalizeZ);let{k1neg:s,k1:o,k2neg:u,k2:c}=r.splitScalar(e),l=a,f=a,d=this;for(;o>pe||c>pe;)o&me&&(l=l.add(d)),c&me&&(f=f.add(d)),d=d.double(),o>>=me,c>>=me;return s&&(l=l.negate()),u&&(f=f.negate()),f=new b(n.mul(f.px,r.beta),f.py,f.pz),l.add(f)}multiply(e){const{endo:r,n:i}=t;let a,s;if(M("scalar",e,me,i),r){const{k1neg:t,k1:i,k2neg:o,k2:u}=r.splitScalar(e);let{p:c,f:l}=this.wNAF(i),{p:f,f:d}=this.wNAF(u);c=_.constTimeNegate(t,c),f=_.constTimeNegate(o,f),f=new b(n.mul(f.px,r.beta),f.py,f.pz),a=c.add(f),s=l.add(d)}else{const{p:t,f:n}=this.wNAF(e);a=t,s=n}return b.normalizeZ([a,s])[0]}multiplyAndAddUnsafe(e,t,n){const r=b.BASE,i=(e,t)=>t!==pe&&t!==me&&e.equals(r)?e.multiply(t):e.multiplyUnsafe(t),a=i(this,t).add(i(e,n));return a.is0()?void 0:a}toAffine(e){return p(this,e)}isTorsionFree(){const{h:e,isTorsionFree:n}=t;if(e===me)return!0;if(n)return n(b,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:e,clearCofactor:n}=t;return e===me?this:n?n(b,this):this.multiplyUnsafe(t.h)}toRawBytes(e=!0){return f("isCompressed",e),this.assertValidity(),i(b,this,e)}toHex(e=!0){return f("isCompressed",e),y(this.toRawBytes(e))}}b.BASE=new b(t.Gx,t.Gy,n.ONE),b.ZERO=new b(n.ZERO,n.ONE,n.ZERO);const{endo:g,nBitLength:w}=t,_=(S=b,x=g?Math.ceil(w/2):w,{constTimeNegate:te,hasPrecomputes:e=>1!==oe(e),unsafeLadder(e,t,n=S.ZERO){let r=e;for(;t>Q;)t&ee&&(n=n.add(r)),r=r.double(),t>>=ee;return n},precomputeWindow(e,t){const{windows:n,windowSize:r}=re(t,x),i=[];let a=e,s=a;for(let e=0;er>>me}const x=(e,t,n)=>v(e.slice(t,n));class P{constructor(e,t,n){M("r",e,me,r),M("s",t,me,r),this.r=e,this.s=t,null!=n&&(this.recovery=n),Object.freeze(this)}static fromCompact(e){const t=i;return e=E("compactSignature",e,2*t),new P(x(e,0,t),x(e,t,2*t))}static fromDER(e){const{r:t,s:n}=de.toSig(E("DER",e));return new P(t,n)}assertValidity(){}addRecoveryBit(e){return new P(this.r,this.s,e)}recoverPublicKey(e){const{r,s:i,recovery:a}=this,s=j(E("msgHash",e));if(null==a||![0,1,2,3].includes(a))throw new Error("recovery id invalid");const o=2===a||3===a?r+t.n:r;if(o>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const c=1&a?"03":"02",f=d.fromHex(c+he(o,n.BYTES)),h=l(o),p=u(-s*h),m=u(i*h),y=d.BASE.multiplyAndAddUnsafe(f,p,m);if(!y)throw new Error("point at infinify");return y.assertValidity(),y}hasHighS(){return b(this.s)}normalizeS(){return this.hasHighS()?new P(this.r,u(-this.s),this.recovery):this}toDERRawBytes(){return g(this.toDERHex())}toDERHex(){return de.hexFromSig(this)}toCompactRawBytes(){return g(this.toCompactHex())}toCompactHex(){const e=i;return he(this.r,e)+he(this.s,e)}}const C={isValidPrivateKey(e){try{return h(e),!0}catch(e){return!1}},normPrivateKeyToScalar:h,randomPrivateKey:()=>{const e=Z(t.n);return function(e,t,n=!1){const r=e.length,i=J(t),a=Z(t);if(r<16||r1024)throw new Error("expected "+a+"-1024 bytes of input, got "+r);const s=z(n?w(e):v(e),t-B)+B;return n?S(s,i):_(s,i)}(t.randomBytes(e),t.n)},precompute:(e=8,t=d.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)};function F(e){if("bigint"==typeof e)return!1;if(e instanceof d)return!0;const r=E("key",e).length,a=n.BYTES,s=a+1,o=2*a+1;return t.allowedPrivateKeyLengths||i===s?void 0:r===s||r===o}const L=t.bits2int||function(e){if(e.length>8192)throw new Error("input is too large");const t=v(e),n=8*e.length-a;return n>0?t>>BigInt(n):t},j=t.bits2int_modN||function(e){return u(L(e))},D=I(a);function U(e){return M("num < 2^"+a,e,pe,D),_(e,i)}const $={lowS:t.lowS,prehash:!1},K={lowS:t.lowS,prehash:!1};return d.BASE._setWindowSize(8),{CURVE:t,getPublicKey:function(e,t=!0){return d.fromPrivateKey(e).toRawBytes(t)},getSharedSecret:function(e,t,n=!0){if(!0===F(e))throw new Error("first arg must be private key");if(!1===F(t))throw new Error("second arg must be public key");return d.fromHex(t).multiply(h(e)).toRawBytes(n)},sign:function(e,r,i=$){const{seed:a,k2sig:s}=function(e,r,i=$){if(["recovered","canonical"].some(e=>e in i))throw new Error("sign() legacy options not supported");const{hash:a,randomBytes:s}=t;let{lowS:o,prehash:c,extraEntropy:f}=i;null==o&&(o=!0),e=E("msgHash",e),le(i),c&&(e=E("prehashed msgHash",a(e)));const p=j(e),y=h(r),g=[U(y),U(p)];if(null!=f&&!1!==f){const e=!0===f?s(n.BYTES):f;g.push(E("extraEntropy",e))}const v=k(...g),w=p;return{seed:v,k2sig:function(e){const t=L(e);if(!m(t))return;const n=l(t),r=d.BASE.multiply(t).toAffine(),i=u(r.x);if(i===pe)return;const a=u(n*u(w+i*y));if(a===pe)return;let s=(r.x===i?0:2)|Number(r.y&me),c=a;return o&&b(a)&&(c=function(e){return b(e)?u(-e):e}(a),s^=1),new P(i,c,s)}}}(e,r,i),o=t;return function(e,t,n){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 n)throw new Error("hmacFn must be a function");let r=A(e),i=A(e),a=0;const s=()=>{r.fill(1),i.fill(0),a=0},o=(...e)=>n(i,r,...e),u=(e=A(0))=>{i=o(N([0]),e),r=o(),0!==e.length&&(i=o(N([1]),e),r=o())},c=()=>{if(a++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const n=[];for(;e{let n;for(s(),u(e);!(n=t(c()));)u();return s(),n}}(o.hash.outputLen,o.nByteLength,o.hmac)(a,s)},verify:function(e,n,r,i=K){const a=e;n=E("msgHash",n),r=E("publicKey",r);const{lowS:s,prehash:o,format:f}=i;if(le(i),"strict"in i)throw new Error("options.strict was renamed to lowS");if(void 0!==f&&"compact"!==f&&"der"!==f)throw new Error("format must be compact or der");const h="string"==typeof a||c(a),p=!h&&!f&&"object"==typeof a&&null!==a&&"bigint"==typeof a.r&&"bigint"==typeof a.s;if(!h&&!p)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let m,y;try{if(p&&(m=new P(a.r,a.s)),h){try{"compact"!==f&&(m=P.fromDER(a))}catch(e){if(!(e instanceof de.Err))throw e}m||"der"===f||(m=P.fromCompact(a))}y=d.fromHex(r)}catch(e){return!1}if(!m)return!1;if(s&&m.hasHighS())return!1;o&&(n=t.hash(n));const{r:b,s:g}=m,v=j(n),w=l(g),_=u(v*w),S=u(b*w),k=d.BASE.multiplyAndAddUnsafe(y,_,S)?.toAffine();return!!k&&u(k.x)===b},ProjectivePoint:d,Signature:P,utils:C}}function ve(e){return{hash:e,hmac:(t,...n)=>s(e,t,(0,i.Id)(...n)),randomBytes:i.po}}const we=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),_e=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Se=BigInt(0),Ee=BigInt(1),ke=BigInt(2),xe=(e,t)=>(e+t/ke)/t;const Te=X(we,void 0,void 0,{sqrt:function(e){const t=we,n=BigInt(3),r=BigInt(6),i=BigInt(11),a=BigInt(22),s=BigInt(23),o=BigInt(44),u=BigInt(88),c=e*e*e%t,l=c*c*e%t,f=$(l,n,t)*l%t,d=$(f,n,t)*l%t,h=$(d,ke,t)*c%t,p=$(h,i,t)*h%t,m=$(p,a,t)*p%t,y=$(m,o,t)*m%t,b=$(y,u,t)*y%t,g=$(b,o,t)*m%t,v=$(g,n,t)*l%t,w=$(v,s,t)*p%t,_=$(w,r,t)*c%t,S=$(_,ke,t);if(!Te.eql(Te.sqr(S),e))throw new Error("Cannot find square root");return S}}),Me=function(e,t){const n=t=>ge({...e,...ve(t)});return{...n(t),create:n}}({a:Se,b:BigInt(7),Fp:Te,n:_e,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=_e,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-Ee*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),a=n,s=BigInt("0x100000000000000000000000000000000"),o=xe(a*e,t),u=xe(-r*e,t);let c=z(e-o*n-u*i,t),l=z(-o*r-u*a,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}}}},r.sc)},45366(e){function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},45775(e,t,n){"use strict";var r=n(71942),i=n(39886),a=n(33140),s=n(85984),o=n(51305).pbkdf2Sync,u=n(72258).Buffer;function c(e){var t;"object"!=typeof e||u.isBuffer(e)||(t=e.passphrase,e=e.key),"string"==typeof e&&(e=u.from(e));var n,c,l=a(e,t),f=l.tag,d=l.data;switch(f){case"CERTIFICATE":c=r.certificate.decode(d,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(c||(c=r.PublicKey.decode(d,"der")),n=c.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return r.RSAPublicKey.decode(c.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return c.subjectPrivateKey=c.subjectPublicKey,{type:"ec",data:c};case"1.2.840.10040.4.1":return c.algorithm.params.pub_key=r.DSAparam.decode(c.subjectPublicKey.data,"der"),{type:"dsa",data:c.algorithm.params};default:throw new Error("unknown key id "+n)}case"ENCRYPTED PRIVATE KEY":d=function(e,t){var n=e.algorithm.decrypt.kde.kdeparams.salt,r=parseInt(e.algorithm.decrypt.kde.kdeparams.iters.toString(),10),a=i[e.algorithm.decrypt.cipher.algo.join(".")],c=e.algorithm.decrypt.cipher.iv,l=e.subjectPrivateKey,f=parseInt(a.split("-")[1],10)/8,d=o(t,n,r,f,"sha1"),h=s.createDecipheriv(a,d,c),p=[];return p.push(h.update(l)),p.push(h.final()),u.concat(p)}(d=r.EncryptedPrivateKey.decode(d,"der"),t);case"PRIVATE KEY":switch(n=(c=r.PrivateKey.decode(d,"der")).algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return r.RSAPrivateKey.decode(c.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:c.algorithm.curve,privateKey:r.ECPrivateKey.decode(c.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return c.algorithm.params.priv_key=r.DSAparam.decode(c.subjectPrivateKey,"der"),{type:"dsa",params:c.algorithm.params};default:throw new Error("unknown key id "+n)}case"RSA PUBLIC KEY":return r.RSAPublicKey.decode(d,"der");case"RSA PRIVATE KEY":return r.RSAPrivateKey.decode(d,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:r.DSAPrivateKey.decode(d,"der")};case"EC PRIVATE KEY":return{curve:(d=r.ECPrivateKey.decode(d,"der")).parameters.value,privateKey:d.privateKey};default:throw new Error("unknown key type "+f)}}c.signature=r.signature,e.exports=c},45898(e,t,n){"use strict";n.d(t,{u:()=>a});var r=n(3320);const i=new Map;function a({fn:e,id:t,shouldSplitBatch:n,wait:a=0,sort:s}){const o=async()=>{const t=c();u();const n=t.map(({args:e})=>e);0!==n.length&&e(n).then(e=>{s&&Array.isArray(e)&&e.sort(s);for(let n=0;n{for(let n=0;ni.delete(t),c=()=>i.get(t)||[],l=e=>i.set(t,[...c(),e]);return{flush:u,async schedule(e){const{promise:t,resolve:i,reject:s}=(0,r.Y)(),u=n?.([...c().map(({args:e})=>e),e]);return u&&o(),c().length>0?(l({args:e,resolve:i,reject:s}),t):(l({args:e,resolve:i,reject:s}),setTimeout(o,a),t)}}}},46082(e,t,n){"use strict";n.d(t,{F6:()=>p,Ie:()=>f,Ui:()=>d,kg:()=>h});var r=n(28062),i=n(72529),a=n(59329),s=n(35191);const o="Empty",u="Remove",c="Update",l="AndThen",f={_tag:o},d=(e,t)=>{const n=new Map(e.locals);let a=f;for(const[e,s]of t.locals.entries()){const t=r.v4(s)[1],o=n.get(e);if(void 0!==o){const n=r.v4(o)[1];(0,i.aI)(n,t)||(a=h({_tag:c,fiberRef:e,patch:e.diff(n,t)})(a))}else a=h({_tag:"Add",fiberRef:e,value:t})(a);n.delete(e)}for(const[e]of n.entries())a=h({_tag:u,fiberRef:e})(a);return a},h=(0,a.XY)(2,(e,t)=>({_tag:l,first:e,second:t})),p=(0,a.XY)(3,(e,t,n)=>{let i=n,a=r.of(e);for(;r.iI(a);){const e=r.v4(a),n=r.Rx(a);switch(e._tag){case o:a=n;break;case"Add":i=s.aI(i,{fiberId:t,fiberRef:e.fiberRef,value:e.value}),a=n;break;case u:i=s.Rt(i,e.fiberRef),a=n;break;case c:{const r=s.Fh(i,e.fiberRef);i=s.aI(i,{fiberId:t,fiberRef:e.fiberRef,value:e.fiberRef.patch(e.patch)(r)}),a=n;break}case l:a=r.Hs(e.first)(r.Hs(e.second)(n))}}return i})},46385(e,t,n){"use strict";n.d(t,{HR:()=>u,PO:()=>g,QK:()=>y,YO:()=>b,Yj:()=>m,ai:()=>p,kg:()=>f,tW:()=>c,yT:()=>l});var r=n(59329),i=n(55661),a=n(82884),s=n(95644);const o=(0,i.V)(Symbol.for("effect/Hash/randomHashCache"),()=>new WeakMap),u=Symbol.for("effect/Hash"),c=e=>{if(!0===s.Hi.enabled)return 0;switch(typeof e){case"number":return p(e);case"bigint":return m(e.toString(10));case"boolean":case"symbol":return m(String(e));case"string":return m(e);case"undefined":return m("undefined");case"function":case"object":return null===e?m("null"):e instanceof Date?Number.isNaN(e.getTime())?m("Invalid Date"):c(e.toISOString()):e instanceof URL?c(e.href):h(e)?e[u]():l(e);default:throw new Error(`BUG: unhandled typeof ${typeof e} - please report an issue at https://github.com/Effect-TS/effect/issues`)}},l=e=>(o.has(e)||o.set(e,p(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER))),o.get(e)),f=e=>t=>53*t^e,d=e=>3221225471&e|e>>>1&1073741824,h=e=>(0,a.i5)(e,u),p=e=>{if(e!=e||e===1/0)return 0;let t=0|e;for(t!==e&&(t^=4294967295*e);e>4294967295;)t^=e/=4294967295;return d(t)},m=e=>{let t=5381,n=e.length;for(;n;)t=33*t^e.charCodeAt(--n);return d(t)},y=e=>((e,t)=>{let n=12289;for(let i=0;i{let t=6151;for(let n=0;nt,enumerable:!1}),t}}const e=arguments[0],t=arguments[1];return Object.defineProperty(e,u,{value:()=>t,enumerable:!1}),t}},46644(e,t,n){"use strict";n.d(t,{w:()=>i});var r=n(10616);function i(e,{emitOnBegin:t,initialWaitTime:n,interval:i}){let a=!0;const s=()=>a=!1;return(async()=>{let o;t&&(o=await e({unpoll:s}));const u=await(n?.(o))??i;await(0,r.u)(u);const c=async()=>{a&&(await e({unpoll:s}),await(0,r.u)(i),c())};c()})(),s}},47055(e,t,n){"use strict";var r=n(40371).Buffer,i=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=u,this.end=c,t=4;break;case"utf8":this.fillLast=o,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=d,void(this.end=h)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function s(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function o(e){var t=this.lastTotal-this.lastNeed,n=function(e,t){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function u(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function d(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}t.I=a,a.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0?(i>0&&(e.lastNeed=i-1),i):--r=0?(i>0&&(e.lastNeed=i-2),i):--r=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},a.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},47104(e){e.exports=function(e,t){for(var n=e.length,r=-1;++ro});var r=n(35593),i=n(33640),a=n(85501),s=n(75209);function o(e,t){return(0,r.S)(function(e){const t="string"==typeof e?(0,s.i3)(e):"string"==typeof e.raw?e.raw:(0,s.My)(e.raw),n=(0,s.i3)(`Ethereum Signed Message:\n${(0,a.E)(t)}`);return(0,i.xW)([n,t])}(e),t)}},47457(e,t,n){"use strict";n.d(t,{b4:()=>a,gU:()=>o,uP:()=>s});var r=n(58038),i=n(31963);const a={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function s(e,t){const n={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?(0,r.ME)(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?(0,r.ME)(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?a[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(n.authorizationList=e.authorizationList.map(e=>({address:e.address,chainId:Number(e.chainId),nonce:Number(e.nonce),r:e.r,s:e.s,yParity:Number(e.yParity)}))),n.yParity=(()=>{if(e.yParity)return Number(e.yParity);if("bigint"==typeof n.v){if(0n===n.v||27n===n.v)return 0;if(1n===n.v||28n===n.v)return 1;if(n.v>=35n)return n.v%2n==0n?1:0}})(),"legacy"===n.type&&(delete n.accessList,delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas,delete n.yParity),"eip2930"===n.type&&(delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas),"eip1559"===n.type&&delete n.maxFeePerBlobGas,n}const o=(0,i.q)("transaction",s)},47586(e,t,n){"use strict";n.d(t,{B4:()=>p,CQ:()=>_,CW:()=>w,Ei:()=>d,F8:()=>S,P5:()=>h,TH:()=>E,Vl:()=>g,Vr:()=>v,WM:()=>m,WQ:()=>b,im:()=>y,jm:()=>u,lD:()=>s,qh:()=>f,rE:()=>c,ry:()=>l,xn:()=>o});const r=BigInt(2**32-1),i=BigInt(32);function a(e,t=!1){return t?{h:Number(e&r),l:Number(e>>i&r)}:{h:0|Number(e>>i&r),l:0|Number(e&r)}}function s(e,t=!1){const n=e.length;let r=new Uint32Array(n),i=new Uint32Array(n);for(let s=0;se>>>n,u=(e,t,n)=>e<<32-n|t>>>n,c=(e,t,n)=>e>>>n|t<<32-n,l=(e,t,n)=>e<<32-n|t>>>n,f=(e,t,n)=>e<<64-n|t>>>n-32,d=(e,t,n)=>e>>>n-32|t<<64-n,h=(e,t,n)=>e<>>32-n,p=(e,t,n)=>t<>>32-n,m=(e,t,n)=>t<>>64-n,y=(e,t,n)=>e<>>64-n;function b(e,t,n,r){const i=(t>>>0)+(r>>>0);return{h:e+n+(i/2**32|0)|0,l:0|i}}const g=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),v=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,w=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),_=(e,t,n,r,i)=>t+n+r+i+(e/2**32|0)|0,S=(e,t,n,r,i)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(i>>>0),E=(e,t,n,r,i,a)=>t+n+r+i+a+(e/2**32|0)|0},47726(e,t,n){"use strict";n.d(t,{$v:()=>l,Ie:()=>s,Io:()=>i,Jt:()=>c,L8:()=>o,Or:()=>p,Um:()=>h,WQ:()=>u,aE:()=>a,h1:()=>d,om:()=>f});var r=n(11264);r.Sr,r.lN;const i=r.KA,a=(r.ii,r.og,r.aE),s=(r.dz,r.A_,r.Ie),o=r.L8,u=r.WQ,c=r.Jt,l=(r.Do,r.$v),f=r.om,d=r.h1,h=r.Um,p=(r.Up,r.cJ,r.vw,r.Or)},48268(e,t,n){"use strict";var r=n(42649),i=Symbol.for("react.transitional.element"),a=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),u=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),l=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),h=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),m=Symbol.for("react.activity"),y=Symbol.iterator,b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,v={};function w(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||b}function _(){}function S(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||b}w.prototype.isReactComponent={},w.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},w.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},_.prototype=w.prototype;var E=S.prototype=new _;E.constructor=S,g(E,w.prototype),E.isPureReactComponent=!0;var k=Array.isArray;function x(){}var T={H:null,A:null,T:null,S:null},M=Object.prototype.hasOwnProperty;function I(e,t,n){var r=n.ref;return{$$typeof:i,type:e,key:t,ref:void 0!==r?r:null,props:n}}function A(e){return"object"==typeof e&&null!==e&&e.$$typeof===i}var N=/\/+/g;function P(e,t){return"object"==typeof e&&null!==e&&null!=e.key?(n=""+e.key,r={"=":"=0",":":"=2"},"$"+n.replace(/[=:]/g,function(e){return r[e]})):t.toString(36);var n,r}function O(e,t,n,r,s){var o=typeof e;"undefined"!==o&&"boolean"!==o||(e=null);var u,c,l=!1;if(null===e)l=!0;else switch(o){case"bigint":case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case i:case a:l=!0;break;case p:return O((l=e._init)(e._payload),t,n,r,s)}}if(l)return s=s(e),l=""===r?"."+P(e,0):r,k(s)?(n="",null!=l&&(n=l.replace(N,"$&/")+"/"),O(s,t,n,"",function(e){return e})):null!=s&&(A(s)&&(u=s,c=n+(null==s.key||e&&e.key===s.key?"":(""+s.key).replace(N,"$&/")+"/")+l,s=I(u.type,c,u.props)),t.push(s)),1;l=0;var f,d=""===r?".":r+":";if(k(e))for(var h=0;hw,Ie:()=>d,Ui:()=>g,kg:()=>v,zo:()=>o});var r=n(28062),i=n(72529),a=n(59329),s=n(53487);const o=Symbol.for("effect/DifferReadonlyArrayPatch");function u(e){return e}const c={...s.wC.prototype,[o]:{_Value:u,_Patch:u}},l=Object.assign(Object.create(c),{_tag:"Empty"}),f=Object.create(l),d=()=>f,h=Object.assign(Object.create(c),{_tag:"AndThen"}),p=Object.assign(Object.create(c),{_tag:"Append"}),m=Object.assign(Object.create(c),{_tag:"Slice"}),y=Object.assign(Object.create(c),{_tag:"Update"}),b=(e,t)=>{const n=Object.create(y);return n.index=e,n.patch=t,n},g=e=>{let t=0,n=d();for(;t{const n=Object.create(m);return n.from=0,n.until=t,n})(0,t))),t{const t=Object.create(p);return t.values=e,t})(r.gv(t)(e.newValue)))),n},v=a.XY(2,(e,t)=>((e,t)=>{const n=Object.create(h);return n.first=e,n.second=t,n})(e,t)),w=a.XY(3,(e,t,n)=>{if("Empty"===e._tag)return t;let i=t.slice(),a=r.of(e);for(;r.EI(a);){const e=r.v4(a),t=r.Rx(a);switch(e._tag){case"Empty":a=t;break;case"AndThen":t.unshift(e.first,e.second),a=t;break;case"Append":for(const t of e.values)i.push(t);a=t;break;case"Slice":i=i.slice(e.from,e.until),a=t;break;case"Update":i[e.index]=n.patch(e.patch,i[e.index]),a=t}}return i})},49066(e,t,n){var r=n(73730).Buffer,i=n(71822);function a(e){return e._prev=e._cipher.encryptBlock(e._prev),e._prev}t.encrypt=function(e,t){for(;e._cache.lengthS,Ie:()=>h,Ui:()=>w,kg:()=>_,ys:()=>u});var r=n(17388),i=n(72529),a=n(59329),s=n(91269),o=n(53487);const u=Symbol.for("effect/DifferHashMapPatch");function c(e){return e}const l={...o.wC.prototype,[u]:{_Value:c,_Key:c,_Patch:c}},f=Object.assign(Object.create(l),{_tag:"Empty"}),d=Object.create(f),h=()=>d,p=Object.assign(Object.create(l),{_tag:"AndThen"}),m=Object.assign(Object.create(l),{_tag:"Add"}),y=(e,t)=>{const n=Object.create(m);return n.key=e,n.value=t,n},b=Object.assign(Object.create(l),{_tag:"Remove"}),g=Object.assign(Object.create(l),{_tag:"Update"}),v=(e,t)=>{const n=Object.create(g);return n.key=e,n.patch=t,n},w=e=>{const[t,n]=s.TS([e.oldValue,h()],([t,n],r,a)=>{const o=s.Jt(a)(t);switch(o._tag){case"Some":{const u=e.differ.diff(o.value,r);return i.aI(u,e.differ.empty)?[s.TF(a)(t),n]:[s.TF(a)(t),_(v(a,u))(n)]}case"None":return[t,_(y(a,r))(n)]}})(e.newValue);return s.TS(n,(e,t,n)=>_((e=>{const t=Object.create(b);return t.key=e,t})(n))(e))(t)},_=a.XY(2,(e,t)=>((e,t)=>{const n=Object.create(p);return n.first=e,n.second=t,n})(e,t)),S=a.XY(3,(e,t,n)=>{if("Empty"===e._tag)return t;let i=t,a=r.of(e);for(;r.J_(a);){const e=r.v4(a),t=r.Rx(a);switch(e._tag){case"Empty":a=t;break;case"AndThen":a=r.Hs(e.first)(r.Hs(e.second)(t));break;case"Add":i=s.hZ(e.key,e.value)(i),a=t;break;case"Remove":i=s.TF(e.key)(i),a=t;break;case"Update":{const r=s.Jt(e.key)(i);"Some"===r._tag&&(i=s.hZ(e.key,n.patch(e.patch,r.value))(i)),a=t;break}}}return i})},49362(e,t,n){"use strict";n.d(t,{eY:()=>N,jT:()=>ne,oE:()=>ye,Tr:()=>te,Ie:()=>j,bV:()=>re,jO:()=>Q,Si:()=>we,pb:()=>me,x1:()=>be,i8:()=>ge,qI:()=>de,jJ:()=>he,Ts:()=>U,Jt:()=>V,Zd:()=>K,zy:()=>q,it:()=>G,Fp:()=>H,Im:()=>$,Fu:()=>z,HP:()=>J,L8:()=>D,Tj:()=>fe,JP:()=>oe,qt:()=>ae,Nt:()=>se,Tk:()=>ie,TS:()=>pe,TF:()=>ce,kg:()=>le,hZ:()=>W,Ej:()=>ee,zN:()=>ve,KC:()=>ue,$v:()=>Y,zu:()=>Z});var r=n(72529),i=n(59329),a=n(46385),s=n(12717),o=n(36708),u=n(66949),c=n(82884);const l=Math.pow(2,5),f=l-1,d=l/2,h=l/4;function p(e,t){return t>>>e&f}function m(e){return 1<>1&1431655765))+(n>>2&858993459))+(n>>4)&252645135,127&(n+=n>>8)+(n>>16);var n}const b=(e,t)=>({value:e,previous:t});function g(e,t,n,r){let i=r;if(!e){const e=r.length;i=new Array(e);for(let t=0;t1?new k(e,this.hash,r):r[0]}const s=n(o.dv());return o.$I(s)?this:(++a.value,I(e,t,this.hash,this,r,new E(e,r,i,s)))}updateCollisionList(e,t,n,i,a,s,u){const c=i.length;for(let l=0;l=d?function(e,t,n,r,i){const a=[];let s=r,o=0;for(let e=0;s;++e)1&s&&(a[e]=i[o++]),s>>>=1;return a[t]=n,new T(e,o+1,a)}(e,u,f,s,o):new x(e,s|c,function(e,t,n,r){const i=r.length;if(e){let e=i;for(;e>=t;)r[e--]=r[e];return r[t]=n,r}let a=0,s=0;const o=new Array(i+1);for(;anew x(e,m(s)|m(o),[t]);{const t=s[e,t])},[a.HR](){let e=a.tW(A);for(const t of this)e^=(0,i.Fs)(a.tW(t[0]),a.kg(a.tW(t[1])));return a.PO(this,e)},[r.HR](e){if(z(e)){if(e._size!==this._size)return!1;for(const t of this){const n=(0,i.Fs)(e,K(t[0],a.tW(t[0])));if(o.$I(n))return!1;if(!r.aI(t[1],n.value))return!1}return!0}return!1},toString(){return(0,s.GP)(this.toJSON())},toJSON(){return{_id:"HashMap",values:Array.from(this).map(s.U2)}},[s.FX](){return this.toJSON()},pipe(){return(0,u.tT)(this,arguments)}},O=(e,t,n,r)=>{const i=Object.create(P);return i._editable=e,i._edit=t,i._root=n,i._size=r,i};class R{map;f;v;constructor(e,t){this.map=e,this.f=t,this.v=B(this.map._root,this.f,void 0)}next(){if(o.$I(this.v))return{done:!0,value:void 0};const e=this.v.value;return this.v=C(e.cont),{done:!1,value:e.value}}[Symbol.iterator](){return new R(this.map,this.f)}}const C=e=>e?F(e[0],e[1],e[2],e[3],e[4]):o.dv(),B=(e,t,n=void 0)=>{switch(e._tag){case"LeafNode":return o.Ru(e.value)?o.zN({value:t(e.key,e.value.value),cont:n}):C(n);case"CollisionNode":case"ArrayNode":case"IndexedNode":{const r=e.children;return F(r.length,r,0,t,n)}default:return C(n)}},F=(e,t,n,r,i)=>{for(;nL,D=(...e)=>U(e),U=e=>{const t=ne(j());for(const n of e)W(t,n[0],n[1]);return re(t)},z=e=>(0,c.i5)(e,N),$=e=>e&&_(e._root),V=i.XY(2,(e,t)=>K(e,t,a.tW(t))),K=i.XY(3,(e,t,n)=>{let i=e._root,a=0;for(;;)switch(i._tag){case"LeafNode":return r.aI(t,i.key)?i.value:o.dv();case"CollisionNode":if(n===i.hash){const e=i.children;for(let n=0,i=e.length;n{const n=K(e,t,a.tW(t));if(o.$I(n))throw new Error("Expected map to contain key");return n.value}),q=i.XY(2,(e,t)=>o.Ru(K(e,t,a.tW(t)))),H=i.XY(3,(e,t,n)=>o.Ru(K(e,t,n))),G=i.XY(2,(e,t)=>o.Ru(ge(e,t))),W=i.XY(3,(e,t,n)=>ae(e,t,()=>o.zN(n))),X=i.XY(3,(e,t,n)=>e._editable?(e._root=t,e._size=n,e):t===e._root?e:O(e._editable,e._edit,t,n)),J=e=>new R(e,e=>e),Z=e=>new R(e,(e,t)=>t),Q=e=>new R(e,(e,t)=>[e,t]),ee=e=>e._size,te=i.XY(2,(e,t)=>{let n=0;for(const[r,i]of e)t(i,r)&&n++;return n}),ne=e=>O(!0,e._edit+1,e._root,e._size),re=e=>(e._editable=!1,e),ie=i.XY(2,(e,t)=>{const n=ne(e);return t(n),re(n)}),ae=i.XY(3,(e,t,n)=>se(e,t,a.tW(t),n)),se=i.XY(4,(e,t,n,r)=>{const a={value:e._size},s=e._root.modify(e._editable?e._edit:NaN,0,r,n,t,a);return(0,i.Fs)(e,X(s,a.value))}),oe=i.XY(3,(e,t,n)=>ae(e,t,o.Tj(n))),ue=i.XY(2,(e,t)=>{const n=ne(e);return he(t,(e,t)=>W(n,t,e)),re(n)}),ce=i.XY(2,(e,t)=>ae(e,t,o.dv)),le=i.XY(2,(e,t)=>ie(e,e=>{for(const n of t)ce(n)(e)})),fe=i.XY(2,(e,t)=>pe(e,j(),(e,n,r)=>W(e,r,t(n,r)))),de=i.XY(2,(e,t)=>pe(e,j(),(e,n,r)=>ie(e,e=>he(t(n,r),(t,n)=>W(e,n,t))))),he=i.XY(2,(e,t)=>pe(e,void 0,(e,n,r)=>t(n,r))),pe=i.XY(3,(e,t,n)=>{const r=e._root;if("LeafNode"===r._tag)return o.Ru(r.value)?n(t,r.value.value,r.key):t;if("EmptyNode"===r._tag)return t;const i=[r.children];let a;for(;a=i.pop();)for(let e=0,r=a.length;eie(j(),n=>{for(const[r,i]of e)t(i,r)&&W(n,r,i)})),ye=e=>be(e,i.D_),be=i.XY(2,(e,t)=>ie(j(),n=>{for(const[r,i]of e){const e=t(i,r);o.Ru(e)&&W(n,r,e.value)}})),ge=i.XY(2,(e,t)=>{for(const n of e)if(t(n[1],n[0]))return o.zN(n);return o.dv()}),ve=i.XY(2,(e,t)=>{for(const n of e)if(t(n[1],n[0]))return!0;return!1}),we=i.XY(2,(e,t)=>!ve(e,(e,n)=>!t(e,n)))},49514(e,t,n){"use strict";n.d(t,{a:()=>o});var r=n(78451),i=n(44720),a=n(75209),s=n(63183);async function o(e,{address:t,blockHash:n,fromBlock:o,toBlock:u,event:c,events:l,args:f,strict:d}={}){const h=d??!1,p=l??(c?[c]:void 0);let m,y=[];if(p){const e=p.flatMap(e=>(0,r.R)({abi:[e],eventName:e.name,args:l?void 0:f}));y=[e],c&&(y=y[0])}m=n?await e.request({method:"eth_getLogs",params:[{address:t,topics:y,blockHash:n}]}):await e.request({method:"eth_getLogs",params:[{address:t,topics:y,fromBlock:"bigint"==typeof o?(0,a.cK)(o):o,toBlock:"bigint"==typeof u?(0,a.cK)(u):u}]});const b=m.map(e=>(0,s.e)(e));return p?(0,i.p)({abi:p,args:f,logs:b,strict:h}):b}},49925(e,t,n){"use strict";n.d(t,{c:()=>a});var r=n(14583),i=n(30766);function a(e,t="wei"){return(0,i.J)(e,r.eL[t])}},50007(e,t,n){"use strict";var r=n(45366);function i(e){this.options=e,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0,this.padding=!1!==e.padding}e.exports=i,i.prototype._init=function(){},i.prototype.update=function(e){return 0===e.length?[]:"decrypt"===this.type?this._updateDecrypt(e):this._updateEncrypt(e)},i.prototype._buffer=function(e,t){for(var n=Math.min(this.buffer.length-this.bufferOff,e.length-t),r=0;r0;r--)t+=this._buffer(e,t),n+=this._flushBuffer(i,n);return t+=this._buffer(e,t),i},i.prototype.final=function(e){var t,n;return e&&(t=this.update(e)),n="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),t?t.concat(n):n},i.prototype._pad=function(e,t){if(0===t)return!1;for(;tP,aG:()=>T,Jo:()=>F,SB:()=>w,MR:()=>B,D6:()=>se,Yw:()=>D,u7:()=>A,Uh:()=>M,DH:()=>C,RP:()=>R,U4:()=>I,EK:()=>ft,On:()=>k,NH:()=>Ge,Ad:()=>N,uS:()=>ue,YN:()=>S,Ey:()=>E,zh:()=>$e,J5:()=>L,E_:()=>j,TN:()=>O,Gb:()=>qe,Zn:()=>dt,kV:()=>ot,Ho:()=>_,V3:()=>st,k_:()=>De,KV:()=>je,Z8:()=>x,IT:()=>lt,TD:()=>Ke,ZU:()=>ze,HS:()=>v,Ky:()=>We,nt:()=>ht,gP:()=>tt,w_:()=>fe,hk:()=>pt,H5:()=>_e,Zi:()=>Ne,OD:()=>Ie,Wy:()=>ct,rQ:()=>Mt,gw:()=>$,Zv:()=>H,iJ:()=>J,$N:()=>V,fq:()=>X,zj:()=>ee,u$:()=>W,xE:()=>G,$O:()=>K,rt:()=>Y,M7:()=>Z,Re:()=>Q,YI:()=>te,$j:()=>gt,ad:()=>q,wA:()=>re,c$:()=>ce,gV:()=>rt,C8:()=>ut,Mz:()=>nt,M3:()=>be,ch:()=>le,XS:()=>Te,ZG:()=>Be,xz:()=>_t,g0:()=>wt,g1:()=>vt,vs:()=>Ee,YP:()=>Oe,p$:()=>Et,oA:()=>he,ai:()=>ve,Kt:()=>me});var r=n(28062),i=n(59329),a=n(55661),s=n(12717),o=n(23343);const u=(e,t,n,i)=>{let a=e;return n&&r.iI(n)&&(a+=`\nat path: ${o.jV(n)}`),void 0!==t&&(a+=`\ndetails: ${t}`),i&&(a+=`\nschema (${i._tag}): ${i}`),a},c=e=>u("Duplicate index signature",`${e} index signature`),l=u("Unsupported index signature parameter","An index signature parameter type must be `string`, `symbol`, a template literal type or a refinement of the previous types"),f=u("Invalid element","A required element cannot follow an optional element. ts(1257)"),d=e=>u("Duplicate property signature transformation",`Duplicate key ${s.eA(e)}`),h=e=>u("Duplicate property signature",`Duplicate key ${s.eA(e)}`);var p=n(28876),m=n(36708),y=n(4909),b=n(82884),g=n(76524);const v=Symbol.for("effect/annotation/TypeConstructor"),w=Symbol.for("effect/annotation/Brand"),_=Symbol.for("effect/annotation/SchemaId"),S=Symbol.for("effect/annotation/Message"),E=Symbol.for("effect/annotation/MissingMessage"),k=Symbol.for("effect/annotation/Identifier"),x=Symbol.for("effect/annotation/Title"),T=Symbol.for("effect/annotation/AutoTitle"),M=Symbol.for("effect/annotation/Description"),I=Symbol.for("effect/annotation/Examples"),A=Symbol.for("effect/annotation/Default"),N=Symbol.for("effect/annotation/JSONSchema"),P=Symbol.for("effect/annotation/Arbitrary"),O=Symbol.for("effect/annotation/Pretty"),R=Symbol.for("effect/annotation/Equivalence"),C=Symbol.for("effect/annotation/Documentation"),B=Symbol.for("effect/annotation/Concurrency"),F=Symbol.for("effect/annotation/Batching"),L=Symbol.for("effect/annotation/ParseIssueTitle"),j=Symbol.for("effect/annotation/ParseOptions"),D=Symbol.for("effect/annotation/DecodingFallback"),U=Symbol.for("effect/annotation/Surrogate"),z=Symbol.for("effect/annotation/StableFilter"),$=(0,i.XY)(2,(e,t)=>Object.prototype.hasOwnProperty.call(e.annotations,t)?m.zN(e.annotations[t]):m.dv()),V=$(w),K=$(S),Y=$(E),q=$(x),H=$(T),G=$(k),W=$(M),X=$(B),J=$(F),Z=$(L),Q=$(j),ee=$(D),te=$(U),ne=$(z),re=e=>m.t2(ne(e),e=>!0===e),ie=Symbol.for("effect/annotation/JSONIdentifier"),ae=$(ie);class se{typeParameters;decodeUnknown;encodeUnknown;annotations;_tag="Declaration";constructor(e,t,n,r={}){this.typeParameters=e,this.decodeUnknown=t,this.encodeUnknown=n,this.annotations=r}toString(){return m.WL(Ot(this),()=>"")}toJSON(){return{_tag:this._tag,typeParameters:this.typeParameters.map(e=>e.toJSON()),annotations:It(this.annotations)}}}const oe=e=>t=>t._tag===e;class ue{literal;annotations;_tag="Literal";constructor(e,t={}){this.literal=e,this.annotations=t}toString(){return m.WL(Ot(this),()=>s.eA(this.literal))}toJSON(){return{_tag:this._tag,literal:b.sI(this.literal)?String(this.literal):this.literal,annotations:It(this.annotations)}}}const ce=oe("Literal"),le=new ue(null);class fe{symbol;annotations;_tag="UniqueSymbol";constructor(e,t={}){this.symbol=e,this.annotations=t}toString(){return m.WL(Ot(this),()=>s.eA(this.symbol))}toJSON(){return{_tag:this._tag,symbol:String(this.symbol),annotations:It(this.annotations)}}}class de{annotations;_tag="UndefinedKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const he=new de({[x]:"undefined"});class pe{annotations;_tag="VoidKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const me=new pe({[x]:"void"});class ye{annotations;_tag="NeverKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const be=new ye({[x]:"never"});class ge{annotations;_tag="UnknownKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const ve=new ge({[x]:"unknown"});class we{annotations;_tag="AnyKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const _e=new we({[x]:"any"});class Se{annotations;_tag="StringKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const Ee=new Se({[x]:"string",[M]:"a string"}),ke=oe("StringKeyword");class xe{annotations;_tag="NumberKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const Te=new xe({[x]:"number",[M]:"a number"});class Me{annotations;_tag="BooleanKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const Ie=new Me({[x]:"boolean",[M]:"a boolean"});class Ae{annotations;_tag="BigIntKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const Ne=new Ae({[x]:"bigint",[M]:"a bigint"});class Pe{annotations;_tag="SymbolKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const Oe=new Pe({[x]:"symbol",[M]:"a symbol"}),Re=oe("SymbolKeyword");class Ce{annotations;_tag="ObjectKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const Be=new Ce({[x]:"object",[M]:"an object in the TypeScript meaning, i.e. the `object` type"}),Fe=e=>{switch(e._tag){case"Literal":case"NumberKeyword":case"StringKeyword":case"TemplateLiteral":return!0;case"Union":return e.types.every(Fe)}return!1},Le=e=>{switch(e._tag){case"Literal":return JSON.stringify(String(e.literal));case"StringKeyword":return"string";case"NumberKeyword":return"number";case"TemplateLiteral":return String(e);case"Union":return e.types.map(Le).join(" | ")}};class je{literal;type;constructor(e,t){if(this.literal=t,!Fe(e))throw new Error(u("Unsupported template literal span",void 0,void 0,e));this.type=e}toString(){return(e=>{switch(e._tag){case"Literal":return String(e.literal);case"StringKeyword":return"${string}";case"NumberKeyword":return"${number}";case"TemplateLiteral":return"${"+String(e)+"}";case"Union":return"${"+e.types.map(Le).join(" | ")+"}"}})(this.type)+this.literal}toJSON(){return{type:this.type.toJSON(),literal:this.literal}}}class De{head;spans;annotations;_tag="TemplateLiteral";constructor(e,t,n={}){this.head=e,this.spans=t,this.annotations=n}toString(){return m.WL(Ot(this),()=>Ue(this))}toJSON(){return{_tag:this._tag,head:this.head,spans:this.spans.map(e=>e.toJSON()),annotations:It(this.annotations)}}}const Ue=e=>"`"+e.head+e.spans.map(String).join("")+"`";class ze{type;annotations;constructor(e,t={}){this.type=e,this.annotations=t}toJSON(){return{type:this.type.toJSON(),annotations:It(this.annotations)}}toString(){return String(this.type)}}class $e extends ze{isOptional;constructor(e,t,n={}){super(e,n),this.isOptional=t}toJSON(){return{type:this.type.toJSON(),isOptional:this.isOptional,annotations:It(this.annotations)}}toString(){return String(this.type)+(this.isOptional?"?":"")}}const Ve=e=>e.map(e=>e.type);class Ke{elements;rest;isReadonly;annotations;_tag="TupleType";constructor(e,t,n,r={}){this.elements=e,this.rest=t,this.isReadonly=n,this.annotations=r;let i=!1,a=!1;for(const t of e)if(t.isOptional)i=!0;else if(i){a=!0;break}if(a||i&&t.length>1)throw new Error(f)}toString(){return m.WL(Ot(this),()=>Ye(this))}toJSON(){return{_tag:this._tag,elements:this.elements.map(e=>e.toJSON()),rest:this.rest.map(e=>e.toJSON()),isReadonly:this.isReadonly,annotations:It(this.annotations)}}}const Ye=e=>{const t=e.elements.map(String).join(", ");return r.nc(e.rest,{onEmpty:()=>`readonly [${t}]`,onNonEmpty:(n,r)=>{const i=String(n),a=i.includes(" | ")?`(${i})`:i;if(r.length>0){const n=r.map(String).join(", ");return e.elements.length>0?`readonly [${t}, ...${a}[], ${n}]`:`readonly [...${a}[], ${n}]`}return e.elements.length>0?`readonly [${t}, ...${a}[]]`:`ReadonlyArray<${i}>`}})};class qe extends $e{name;isReadonly;constructor(e,t,n,r,i){super(t,n,i),this.name=e,this.isReadonly=r}toString(){return(this.isReadonly?"readonly ":"")+String(this.name)+(this.isOptional?"?":"")+": "+this.type}toJSON(){return{name:String(this.name),type:this.type.toJSON(),isOptional:this.isOptional,isReadonly:this.isReadonly,annotations:It(this.annotations)}}}const He=e=>{switch(e._tag){case"StringKeyword":case"SymbolKeyword":case"TemplateLiteral":return!0;case"Refinement":return He(e.from)}return!1};class Ge{type;isReadonly;parameter;constructor(e,t,n){if(this.type=t,this.isReadonly=n,!He(e))throw new Error(l);this.parameter=e}toString(){return(this.isReadonly?"readonly ":"")+`[x: ${this.parameter}]: ${this.type}`}toJSON(){return{parameter:this.parameter.toJSON(),type:this.type.toJSON(),isReadonly:this.isReadonly}}}class We{annotations;_tag="TypeLiteral";propertySignatures;indexSignatures;constructor(e,t,n={}){this.annotations=n;const r={};for(let t=0;tJe(this))}toJSON(){return{_tag:this._tag,propertySignatures:this.propertySignatures.map(e=>e.toJSON()),indexSignatures:this.indexSignatures.map(e=>e.toJSON()),annotations:It(this.annotations)}}}const Xe=e=>e.map(String).join("; "),Je=e=>{if(e.propertySignatures.length>0){const t=e.propertySignatures.map(String).join("; ");return e.indexSignatures.length>0?`{ ${t}; ${Xe(e.indexSignatures)} }`:`{ ${t} }`}return e.indexSignatures.length>0?`{ ${Xe(e.indexSignatures)} }`:"{}"},Ze=r.di(y.zQ(p.pH,e=>{switch(e._tag){case"AnyKeyword":return 0;case"UnknownKeyword":return 1;case"ObjectKeyword":return 2;case"StringKeyword":case"NumberKeyword":case"BooleanKeyword":case"BigIntKeyword":case"SymbolKeyword":return 3}return 4})),Qe={string:"StringKeyword",number:"NumberKeyword",boolean:"BooleanKeyword",bigint:"BigIntKeyword"},et=e=>r.qI(e,e=>it(e)?et(e.types):[e]);class tt{types;annotations;static make=(e,t)=>rt(e)?new tt(e,t):1===e.length?e[0]:be;static unify=(e,t)=>tt.make((e=>{const t=Ze(e),n=[],r={},i=[];for(const e of t)switch(e._tag){case"NeverKeyword":break;case"AnyKeyword":return[_e];case"UnknownKeyword":return[ve];case"ObjectKeyword":case"UndefinedKeyword":case"VoidKeyword":case"StringKeyword":case"NumberKeyword":case"BooleanKeyword":case"BigIntKeyword":case"SymbolKeyword":r[e._tag]||(r[e._tag]=e,n.push(e));break;case"Literal":{const t=typeof e.literal;switch(t){case"string":case"number":case"bigint":case"boolean":r[Qe[t]]||i.includes(e.literal)||(i.push(e.literal),n.push(e));break;case"object":i.includes(e.literal)||(i.push(e.literal),n.push(e))}break}case"UniqueSymbol":r.SymbolKeyword||i.includes(e.symbol)||(i.push(e.symbol),n.push(e));break;case"TupleType":r.ObjectKeyword||n.push(e);break;case"TypeLiteral":0===e.propertySignatures.length&&0===e.indexSignatures.length?r["{}"]||(r["{}"]=e,n.push(e)):r.ObjectKeyword||n.push(e);break;default:n.push(e)}return n})(et(e)),t);_tag="Union";constructor(e,t={}){this.types=e,this.annotations=t}toString(){return m.WL(Ot(this),()=>this.types.map(String).join(" | "))}toJSON(){return{_tag:this._tag,types:this.types.map(e=>e.toJSON()),annotations:It(this.annotations)}}}const nt=(e,t)=>e.map(t),rt=e=>e.length>1,it=oe("Union"),at=(0,a.V)(Symbol.for("effect/Schema/AST/toJSONMemoMap"),()=>new WeakMap);class st{f;annotations;_tag="Suspend";constructor(e,t={}){this.f=e,this.annotations=t,this.f=o.Z4(e)}toString(){return Ot(this).pipe(m.NW(()=>m.qI(m.IB(this.f)(),e=>Ot(e))),m.WL(()=>""))}toJSON(){const e=this.f();let t=at.get(e);return t||(at.set(e,{_tag:this._tag}),t={_tag:this._tag,ast:e.toJSON(),annotations:It(this.annotations)},at.set(e,t),t)}}class ot{from;filter;annotations;_tag="Refinement";constructor(e,t,n={}){this.from=e,this.filter=t,this.annotations=n}toString(){return G(this).pipe(m.WL(()=>m.YW(Pt(this),{onNone:()=>`{ ${this.from} | filter }`,onSome:e=>ut(this.from)?String(this.from)+" & "+e:e})))}toJSON(){return{_tag:this._tag,from:this.from.toJSON(),annotations:It(this.annotations)}}}const ut=oe("Refinement"),ct={};class lt{from;to;transformation;annotations;_tag="Transformation";constructor(e,t,n,r={}){this.from=e,this.to=t,this.transformation=n,this.annotations=r}toString(){return m.WL(Ot(this),()=>`(${String(this.from)} <-> ${String(this.to)})`)}toJSON(){return{_tag:this._tag,from:this.from.toJSON(),to:this.to.toJSON(),annotations:It(this.annotations)}}}class ft{decode;encode;_tag="FinalTransformation";constructor(e,t){this.decode=e,this.encode=t}}class dt{from;to;decode;encode;constructor(e,t,n,r){this.from=e,this.to=t,this.decode=n,this.encode=r}}class ht{propertySignatureTransformations;_tag="TypeLiteralTransformation";constructor(e){this.propertySignatureTransformations=e;const t={},n={};for(const r of e){const e=r.from;if(t[e])throw new Error(d(e));t[e]=!0;const i=r.to;if(n[i])throw new Error(d(i));n[i]=!0}}}const pt=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={...e.annotations};delete r[k];const i={...r,...t},a=te(e);return m.Ru(a)&&(i[U]=pt(a.value,t)),n.annotations.value=i,Object.create(Object.getPrototypeOf(e),n)},mt=(e,t)=>{switch(e._tag){case"Literal":return g.i(String(e.literal));case"StringKeyword":return"[\\s\\S]*?";case"NumberKeyword":return"[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?";case"TemplateLiteral":return bt(e,t,!1);case"Union":return e.types.map(e=>mt(e,t)).join("|")}},yt=(e,t,n,r)=>{if(it(e)){if(n&&!r)return`(?:${t})`}else if(!n||!r)return t;return`(${t})`},bt=(e,t,n)=>{let r="";if(""!==e.head){const i=g.i(e.head);r+=t&&n?`(${i})`:i}for(const i of e.spans){const e=mt(i.type,t);if(r+=yt(i.type,e,t,n),""!==i.literal){const e=g.i(i.literal);r+=t&&n?`(${e})`:e}}return r},gt=e=>new RegExp(`^${bt(e,!1,!0)}$`),vt=(e,t)=>{const n=[],r=[],i=e=>{switch(e._tag){case"NeverKeyword":break;case"StringKeyword":case"SymbolKeyword":case"TemplateLiteral":case"Refinement":r.push(new Ge(e,t,!0));break;case"Literal":if(!b.Kg(e.literal)&&!b.Et(e.literal))throw new Error((a=e.literal,u("Unsupported literal",`literal value: ${s.eA(a)}`)));n.push(new qe(e.literal,t,!1,!0));break;case"Enums":for(const[r,i]of e.enums)n.push(new qe(i,t,!1,!0));break;case"UniqueSymbol":n.push(new qe(e.symbol,t,!1,!0));break;case"Union":e.types.forEach(i);break;default:throw new Error(u("Unsupported key schema",void 0,void 0,e))}var a};return i(e),{propertySignatures:n,indexSignatures:r}},wt=e=>t=>{let n;for(const r of e)Object.prototype.hasOwnProperty.call(t.annotations,r)&&(void 0===n&&(n={}),n[r]=t.annotations[r]);return n},_t=e=>t=>{const n={...t.annotations};for(const t of e)delete n[t];return n},St=wt([I,A,N,P,O,R]),Et=e=>{switch(e._tag){case"Declaration":{const t=kt(e.typeParameters,Et);return t===e.typeParameters?e:new se(t,e.decodeUnknown,e.encodeUnknown,e.annotations)}case"TupleType":{const t=kt(e.elements,e=>{const t=Et(e.type);return t===e.type?e:new $e(t,e.isOptional)}),n=Ve(e.rest),r=kt(n,Et);return t===e.elements&&r===n?e:new Ke(t,r.map(e=>new ze(e)),e.isReadonly,e.annotations)}case"TypeLiteral":{const t=kt(e.propertySignatures,e=>{const t=Et(e.type);return t===e.type?e:new qe(e.name,t,e.isOptional,e.isReadonly)}),n=kt(e.indexSignatures,e=>{const t=Et(e.type);return t===e.type?e:new Ge(e.parameter,t,e.isReadonly)});return t===e.propertySignatures&&n===e.indexSignatures?e:new We(t,n,e.annotations)}case"Union":{const t=kt(e.types,Et);return t===e.types?e:tt.make(t,e.annotations)}case"Suspend":return new st(()=>Et(e.f()),e.annotations);case"Refinement":{const t=Et(e.from);return t===e.from?e:new ot(t,e.filter,e.annotations)}case"Transformation":{const t=St(e);return Et(void 0!==t?pt(e.to,t):e.to)}}return e};function kt(e,t){let n=!1;const i=r.CN(e.length);for(let r=0;r{switch(e._tag){case"Transformation":return e.from;case"Refinement":return xt(e.from);case"Suspend":return xt(e.f())}},Tt=(e,t)=>{switch(e._tag){case"Declaration":{const n=kt(e.typeParameters,e=>Tt(e,t));return n===e.typeParameters?e:new se(n,e.decodeUnknown,e.encodeUnknown)}case"TupleType":{const n=kt(e.elements,e=>{const n=Tt(e.type,t);return n===e.type?e:new $e(n,e.isOptional)}),r=Ve(e.rest),i=kt(r,e=>Tt(e,t));return n===e.elements&&i===r?e:new Ke(n,i.map(e=>new ze(e)),e.isReadonly)}case"TypeLiteral":{const n=kt(e.propertySignatures,e=>{const n=Tt(e.type,t);return n===e.type?e:new qe(e.name,n,e.isOptional,e.isReadonly)}),r=kt(e.indexSignatures,e=>{const n=Tt(e.type,t);return n===e.type?e:new Ge(e.parameter,n,e.isReadonly)});return n===e.propertySignatures&&r===e.indexSignatures?e:new We(n,r)}case"Union":{const n=kt(e.types,e=>Tt(e,t));return n===e.types?e:tt.make(n)}case"Suspend":{let r;const i=(n=e,m.NW(ae(n),()=>G(n)));if(m.Ru(i)){const e=t?"Bound":"";r={[ie]:`${i.value}Encoded${e}`}}return new st(()=>Tt(e.f(),t),r)}case"Refinement":{const n=Tt(e.from,t);return t?n===e.from?e:void 0===xt(e.from)&&re(e)?new ot(n,e.filter,e.annotations):n:n}case"Transformation":return Tt(e.from,t)}var n;return e},Mt=e=>Tt(e,!1),It=e=>{const t={};for(const n of Object.getOwnPropertySymbols(e))t[String(n)]=e[n];return t},At=e=>{switch(e._tag){case"StringKeyword":case"SymbolKeyword":case"TemplateLiteral":return e;case"Refinement":return At(e.from)}},Nt=e=>m.WL(Ot(e),()=>e._tag),Pt=e=>q(e).pipe(m.NW(()=>W(e)),m.NW(()=>H(e)),m.Tj(t=>t+function(e){return m.YW(V(e),{onNone:()=>"",onSome:e=>e.map(e=>` & Brand<${s.eA(e)}>`).join("")})}(e))),Ot=e=>m.NW(G(e),()=>Pt(e))},50309(e,t,n){"use strict";n.d(t,{e:()=>o});var r=n(70121),i=n(348),a=n(75879);const s="/docs/contract/decodeFunctionResult";function o(e){const{abi:t,args:n,functionName:o,data:u}=e;let c=t[0];if(o){const e=(0,a.iY)({abi:t,args:n,name:o});if(!e)throw new r.Iz(o,{docsPath:s});c=e}if("function"!==c.type)throw new r.Iz(void 0,{docsPath:s});if(!c.outputs)throw new r.MR(c.name,{docsPath:s});const l=(0,i.n)(c.outputs,u);return l&&l.length>1?l:l&&1===l.length?l[0]:void 0}},50338(e,t,n){e.exports=n(3640).EventEmitter},50660(e,t,n){e.exports=n(68128)(n(63152))},50693(e,t,n){"use strict";n.d(t,{b:()=>i});var r=n(10616);function i(e,{delay:t=100,retryCount:n=2,shouldRetry:i=()=>!0}={}){return new Promise((a,s)=>{const o=async({count:u=0}={})=>{try{const t=await e();a(t)}catch(e){if(u{const n="function"==typeof t?t({count:u,error:e}):t;n&&await(0,r.u)(n),o({count:u+1})})({error:e});s(e)}};o()})}},50786(e,t,n){var r=n(74839),i=n(72258).Buffer,a=n(67779),s=n(10417),o=n(81475),u=n(81979),c=n(81207);function l(e,t,n){o.call(this),this._cache=new f,this._last=void 0,this._cipher=new u.AES(t),this._prev=i.from(n),this._mode=e,this._autopadding=!0}function f(){this.cache=i.allocUnsafe(0)}function d(e,t,n){var o=a[e.toLowerCase()];if(!o)throw new TypeError("invalid suite type");if("string"==typeof n&&(n=i.from(n)),"GCM"!==o.mode&&n.length!==o.iv)throw new TypeError("invalid iv length "+n.length);if("string"==typeof t&&(t=i.from(t)),t.length!==o.key/8)throw new TypeError("invalid key length "+t.length);return"stream"===o.type?new s(o.module,t,n,!0):"auth"===o.type?new r(o.module,t,n,!0):new l(o.module,t,n)}n(33213)(l,o),l.prototype._update=function(e){var t,n;this._cache.add(e);for(var r=[];t=this._cache.get(this._autopadding);)n=this._mode.decrypt(this,t),r.push(n);return i.concat(r)},l.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return function(e){var t=e[15];if(t<1||t>16)throw new Error("unable to decrypt data");for(var n=-1;++n16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null},f.prototype.flush=function(){if(this.cache.length)return this.cache},t.createDecipher=function(e,t){var n=a[e.toLowerCase()];if(!n)throw new TypeError("invalid suite type");var r=c(t,!1,n.key,n.iv);return d(e,r.key,r.iv)},t.createDecipheriv=d},51023(e,t,n){"use strict";n.d(t,{m:()=>o});var r=n(70121),i=n(33640),a=n(28780);const s="/docs/contract/encodeDeployData";function o(e){const{abi:t,args:n,bytecode:o}=e;if(!n||0===n.length)return o;const u=t.find(e=>"type"in e&&"constructor"===e.type);if(!u)throw new r.YW({docsPath:s});if(!("inputs"in u))throw new r.YF({docsPath:s});if(!u.inputs||0===u.inputs.length)throw new r.YF({docsPath:s});const c=(0,a.h)(u.inputs,n);return(0,i.aP)([o,c])}},51305(e,t,n){"use strict";t.pbkdf2=n(82849),t.pbkdf2Sync=n(76035)},52004(e,t,n){var r=n(33213),i=n(99701);function a(e){i.call(this,e),this.enc="pem"}r(a,i),e.exports=a,a.prototype.encode=function(e,t){for(var n=i.prototype.encode.call(this,e).toString("base64"),r=["-----BEGIN "+t.label+"-----"],a=0;av,offchainLookupSignature:()=>b});var r=n(45011),i=n(1060),a=n(2273),s=n(15190);class o extends a.C{constructor({callbackSelector:e,cause:t,data:n,extraData:r,sender:i,urls:a}){super(t.shortMessage||"An error occurred while fetching for an offchain result.",{cause:t,metaMessages:[...t.metaMessages||[],t.metaMessages?.length?"":[],"Offchain Gateway Call:",a&&[" Gateway URL(s):",...a.map(e=>` ${(0,s.I)(e)}`)],` Sender: ${i}`,` Data: ${n}`,` Callback selector: ${e}`,` Extra data: ${r}`].flat(),name:"OffchainLookupError"})}}class u extends a.C{constructor({result:e,url:t}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${(0,s.I)(t)}`,`Response: ${(0,i.A)(e)}`],name:"OffchainLookupResponseMalformedError"})}}class c extends a.C{constructor({sender:e,to:t}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${t}`,`OffchainLookup sender address: ${e}`],name:"OffchainLookupSenderMismatchError"})}}var l=n(72634),f=n(72981),d=n(28780),h=n(97668),p=n(33640),m=n(84015),y=n(95611);const b="0x556f1830",g={name:"OffchainLookup",type:"error",inputs:[{name:"sender",type:"address"},{name:"urls",type:"string[]"},{name:"callData",type:"bytes"},{name:"callbackFunction",type:"bytes4"},{name:"extraData",type:"bytes"}]};async function v(e,{blockNumber:t,blockTag:n,data:i,to:a}){const{args:s}=(0,f.W)({data:i,abi:[g]}),[u,l,m,b,v]=s,{ccipRead:_}=e,S=_&&"function"==typeof _?.request?_.request:w;try{if(!(0,h.h)(a,u))throw new c({sender:u,to:a});const i=l.includes(y.J)?await(0,y.X)({data:m,ccipRequest:S}):await S({data:m,sender:u,urls:l}),{data:s}=await(0,r.T)(e,{blockNumber:t,blockTag:n,data:(0,p.xW)([b,(0,d.h)([{type:"bytes"},{type:"bytes"}],[i,v])]),to:a});return s}catch(e){throw new o({callbackSelector:b,cause:e,data:i,extraData:v,sender:u,urls:l})}}async function w({data:e,sender:t,urls:n}){let r=new Error("An unknown error occurred.");for(let a=0;ar});class r extends Error{static setStaticOptions(e){r.prototype.docsOrigin=e.docsOrigin,r.prototype.showVersion=e.showVersion,r.prototype.version=e.version}constructor(e,t={}){const n=(()=>{if(t.cause instanceof r){if(t.cause.details)return t.cause.details;if(t.cause.shortMessage)return t.cause.shortMessage}return t.cause&&"details"in t.cause&&"string"==typeof t.cause.details?t.cause.details:t.cause?.message?t.cause.message:t.details})(),i=t.cause instanceof r&&t.cause.docsPath||t.docsPath,a=t.docsOrigin??r.prototype.docsOrigin,s=`${a}${i??""}`,o=Boolean(t.version??r.prototype.showVersion),u=t.version??r.prototype.version;super([e||"An error occurred.",...t.metaMessages?["",...t.metaMessages]:[],...n||i||o?["",n?`Details: ${n}`:void 0,i?`See: ${s}`:void 0,o?`Version: ${u}`:void 0]:[]].filter(e=>"string"==typeof e).join("\n"),t.cause?{cause:t.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsOrigin",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"showVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.cause=t.cause,this.details=n,this.docs=s,this.docsOrigin=a,this.docsPath=i,this.shortMessage=e,this.showVersion=o,this.version=u}walk(e){return i(this,e)}}function i(e,t){return t?.(e)?e:e&&"object"==typeof e&&"cause"in e&&e.cause?i(e.cause,t):t?null:e}Object.defineProperty(r,"defaultStaticOptions",{enumerable:!0,configurable:!0,writable:!0,value:{docsOrigin:"https://oxlib.sh",showVersion:!1,version:"ox@0.1.1"}}),r.setStaticOptions(r.defaultStaticOptions)},53487(e,t,n){"use strict";n.d(t,{w3:()=>o,wC:()=>s});var r=n(72529),i=n(46385),a=n(20490);Array.prototype,i.HR,r.HR;const s=function(){function e(e){e&&Object.assign(this,e)}return e.prototype=a.KE,e}(),o=e=>Object.assign(Object.create(a.KE),e)},53874(e,t,n){"use strict";var r=n(72258).Buffer,i=n(39),a=n(11525),s=n(24554).ec,o=n(74393),u=n(45775),c=n(59824);function l(e,t,n,a){if((e=r.from(e.toArray())).length0&&n.ishrn(r),n}function d(e,t,n){var a,s;do{for(a=r.alloc(0);8*a.lengthX,nb:()=>F,vV:()=>H,ww:()=>Kt,sw:()=>O,Mu:()=>qt,Xx:()=>R,t2:()=>C,oI:()=>J,Jr:()=>Z,IK:()=>L,RJ:()=>j,Nu:()=>D,Ku:()=>U,lo:()=>z,c1:()=>$,pm:()=>K,RK:()=>V,sx:()=>ne,Wj:()=>Ht,_3:()=>Gt,cb:()=>Y,yu:()=>G,U$:()=>q,Ek:()=>W,Cm:()=>ee,Hd:()=>te,ex:()=>nn,u4:()=>re,Si:()=>me,rQ:()=>ge,x1:()=>ie,kr:()=>ae,Nf:()=>se,Pm:()=>oe,W$:()=>ce,i8:()=>le,Dd:()=>de,AA:()=>he,i4:()=>be,k$:()=>un,RO:()=>on,d5:()=>ve,Xe:()=>we,XP:()=>_e,EN:()=>Se,N6:()=>Ee,oJ:()=>ke,nl:()=>xe,Mw:()=>pt,zM:()=>Q,VW:()=>ue,_B:()=>Yt,A_:()=>Wt,Rm:()=>Me,rr:()=>Be,MD:()=>Ae,Og:()=>Oe,Zc:()=>Re,fH:()=>Ne,om:()=>Ie,FF:()=>Pe,HW:()=>Fe,Z9:()=>Qt,OM:()=>De,aW:()=>Ue,YW:()=>pe,Bj:()=>ze,h1:()=>$e,ze:()=>Ve,dv:()=>Ke,Oo:()=>Ye,uK:()=>qe,SM:()=>cn,xS:()=>He,DM:()=>Ge,Zk:()=>We,Bz:()=>Xe,iv:()=>Je,Pf:()=>Ze,c7:()=>Qe,yT:()=>et,TS:()=>tt,XK:()=>nt,KE:()=>rt,wn:()=>at,_S:()=>ot,XN:()=>Ut,A3:()=>jt,p4:()=>Lt,KO:()=>Dt,ZF:()=>zt,N:()=>$t,gB:()=>Vt,Z:()=>ut,yy:()=>ct,Fu:()=>en,Wb:()=>tn,lw:()=>lt,nG:()=>ft,Uy:()=>dt,G6:()=>ht,QK:()=>mt,v6:()=>yt,Bi:()=>bt,nA:()=>gt,sF:()=>vt,Ly:()=>_t,TN:()=>wt,ay:()=>St,yW:()=>Et,kJ:()=>kt,gZ:()=>Tt,xA:()=>Mt,$m:()=>xt,bS:()=>B,NJ:()=>It,ix:()=>At,xI:()=>Zt,Pb:()=>Nt,En:()=>Pt,bU:()=>Ot,gv:()=>rn,z7:()=>Rt,iz:()=>Ct,mf:()=>Bt,f1:()=>Ce,Xz:()=>Ft,hq:()=>an,fR:()=>sn});var r=n(28062),i=n(17388),a=n(16491),s=n(47726),o=n(68449),u=n(86937),c=n(59329),l=n(91269),f=n(75169),d=n(84025),h=n(63129),p=n(57109);const m=p.L8;p.XX;var y=n(36708),b=n(82884),g=n(73400),v=n(55606),w=n(30114);w.Tz,w.Te,w.Ez,w.L8,w.uV;const _=v.wT;w.DW;var S=n(95644),E=n(59688),k=n(68929),x=n(89921);const T=e=>(0,c.XY)(3,(t,n,r)=>e(t,e=>({...e,[n]:r(e)}))),M=e=>(0,c.XY)(2,(t,n)=>e(t,e=>({[n]:e}))),I=(e,t)=>(0,c.XY)(3,(n,r,i)=>t(n,t=>e(i(t),e=>({...t,[r]:e}))));var A=n(46082),N=n(91170),P=n(91484);const O=(0,c.XY)(e=>x.yw5(e[0]),function(){const e=arguments;return x.q1t(e[0],x.Umi,"string"==typeof e[1]?l.hZ(e[1],e[2]):t=>Object.entries(e[1]).reduce((e,[t,n])=>l.hZ(e,t,n),t))}),R=e=>x.TjK(e,y.zN),C=e=>x.xm_(e,y.zN),B=e=>{let t,n;return"function"==typeof e?t=e:(t=e.try,n=e.catch),x.DYE(()=>{try{return x.PyW((0,S.sn)(t))}catch(e){return x.fJG(n?(0,S.sn)(()=>n(e)):new x.Uis(e,"An unknown error occurred in Effect.try"))}})},F=(0,c.XY)(3,(e,t,n)=>x.h9N(e,e=>b.i5(e,t)&&e[t]===n.failure?n.onFailure(e):x.fJG(e))),L=(0,c.XY)(2,(e,t)=>x.uPo(e,e=>{const n=E.I6(e,e=>E.VY(e)?y.zN(e):y.dv());switch(n._tag){case"None":return x.ATB(e);case"Some":return t(n.value.defect)}})),j=(0,c.XY)(2,(e,t)=>x.khu(e,{onFailure:e=>{const n=t(e);switch(n._tag){case"None":return x.ATB(e);case"Some":return n.value}},onSuccess:x.PyW})),D=(0,c.XY)(2,(e,t)=>x.uPo(e,e=>{const n=E.I6(e,e=>E.VY(e)?y.zN(e):y.dv());switch(n._tag){case"None":return x.ATB(e);case"Some":{const r=t(n.value.defect);return"Some"===r._tag?r.value:x.ATB(e)}}})),U=(0,c.XY)(e=>x.yw5(e[0]),(e,...t)=>{const n=t[t.length-1];let r;return r=2===t.length?b.$J(t[0]):e=>{const n=b.i5(e,"_tag")?e._tag:void 0;if(!n)return!1;for(let e=0;e{let n;return x.XWm(e,e=>(n??=Object.keys(t),b.i5(e,"_tag")&&b.Kg(e._tag)&&n.includes(e._tag)),e=>t[e._tag](e))}),$=e=>x.D$$(e,{onFailure:c.D_,onSuccess:()=>E.Ie}),V=a.RK,K=V(x.PyW),Y=(0,c.XY)(2,(e,t)=>x.aNH(a.yy(t),e)),q=e=>x.$we((t,n)=>e({id:t.id(),status:n,interruptors:E.ml(t.getFiberRef(x.LGt))})),H=q(e=>f.Ej(e.interruptors)>0?x.GaK:x.rIH),G=q(x.PyW),W=e=>dt(e,ge,A.Ui),X=x.PyW({}),J=I(x.TjK,x.qIB),Z=M(x.TjK),Q=T(x.TjK),ee=(0,c.XY)(2,(e,t)=>x.DYE(()=>{const n=e[Symbol.iterator](),r=[];let i,a=x.PyW(!1),s=0;for(;(i=n.next())&&!i.done;){const e=i.value,n=s++;a=x.qIB(a,i=>i?(r.push(e),x.PyW(!0)):t(e,n))}return x.TjK(a,()=>r)})),te=(0,c.XY)(2,(e,t)=>x.DYE(()=>{const n=e[Symbol.iterator](),r=[];let i,a=x.PyW(!0),s=0;for(;(i=n.next())&&!i.done;){const e=i.value,n=s++;a=x.qIB(a,i=>x.TjK(i?t(e,n):x.PyW(!1),t=>(t||r.push(e),t)))}return x.TjK(a,()=>r)})),ne=e=>x.TjK(x._OA(),e),re=e=>x.NWQ(e,()=>x.qIB(x.m9E(),()=>re(e))),ie=(0,c.XY)(2,(e,t)=>x.TjK(x.CFK(e,c.D_),r.x1(t))),ae=(0,c.XY)(3,(e,t,n)=>oe(e,t,e=>x.Kbz(()=>n(e)))),se=(0,c.XY)(3,(e,t,n)=>oe(e,t,()=>x.GSS(n))),oe=(0,c.XY)(3,(e,t,n)=>x.qIB(e,e=>t(e)?x.PyW(e):n(e))),ue=(0,c.XY)(3,(e,t,n)=>x.DYE(()=>t(e)?x.PyW(e):x.fJG(n(e)))),ce=(0,c.XY)(e=>x.yw5(e[0]),(e,t,n)=>oe(e,t,e=>void 0===n?x.fJG(new x.kJg):x.gOk(()=>n(e)))),le=(0,c.XY)(2,(e,t)=>x.DYE(()=>{const n=e[Symbol.iterator](),r=n.next();return r.done?x.PyW(y.dv()):fe(n,0,t,r.value)})),fe=(e,t,n,r)=>x.qIB(n(r,t),i=>{if(i)return x.PyW(y.zN(r));const a=e.next();return a.done?x.PyW(y.dv()):fe(e,t+1,n,a.value)}),de=e=>x.DYE(()=>{const t=i.Ts(e);return i.J_(t)?(0,c.Fs)(i.Rx(t),r.TS(i.v4(t),(e,t)=>x.NWQ(e,()=>t))):x.Kbz(()=>new x.nAV("Received an empty collection of effects"))}),he=(0,c.XY)(2,(e,t)=>x.UUz(t(x.UUz(e)))),pe=(0,c.XY)(2,(e,t)=>x.tvg(e,{onFailure:e=>x.PyW(t.onFailure(e)),onSuccess:e=>x.PyW(t.onSuccess(e))})),me=(0,c.XY)(2,(e,t)=>x.DYE(()=>ye(e[Symbol.iterator](),0,t))),ye=(e,t,n)=>{const r=e.next();return r.done?x.PyW(!0):x.qIB(n(r.value,t),r=>r?ye(e,t+1,n):x.PyW(r))},be=e=>{const t=x.qIB(x.qIB(e,()=>x.m9E()),()=>t);return t},ge=x.$we(e=>x.PyW(e.getFiberRefs())),ve=e=>x.qIB(e,e=>{const t=e[Symbol.iterator]().next();return t.done?x.fJG(new x.kJg):x.PyW(t.value)}),we=e=>pe(e,{onFailure:c.Yi,onSuccess:c.Yi}),_e=e=>x.khu(e,{onFailure:e=>Ae(e,"An error was silently ignored because it is not anticipated to be useful"),onSuccess:()=>x.rIH}),Se=e=>Pt((t,n)=>u.rl(n,t,e)),Ee=e=>pe(e,{onFailure:c.ue,onSuccess:c.f4}),ke=e=>pe(e,{onFailure:c.f4,onSuccess:c.ue}),xe=(e,t)=>x.DYE(()=>t.while(e)?x.qIB(t.body(e),e=>xe(e,t)):x.PyW(e)),Te=e=>(...t)=>{const n=y.k$(e);let r;for(let e=0,n=t.length;e(e.log(t,r,n),x.rIH))},Me=Te(),Ie=Te(h.Cn),Ae=Te(h.y),Ne=Te(h.R2),Pe=Te(h.N5),Oe=Te(h.$D),Re=Te(h.Lj),Ce=(0,c.XY)(2,(e,t)=>x.qIB(a.Ru,n=>x.q1t(e,x.krO,d.Hs(m(t,n))))),Be=x.U8_(x.Umi),Fe=(e,t)=>t.discard?je(e,t.while,t.step,t.body):x.TjK(Le(e,t.while,t.step,t.body),r.Ts),Le=(e,t,n,r)=>x.DYE(()=>t(e)?x.qIB(r(e),i=>x.TjK(Le(n(e),t,n,r),d.Hs(i))):x.OH5(()=>d.Ie())),je=(e,t,n,r)=>x.DYE(()=>t(e)?x.qIB(r(e),()=>je(n(e),t,n,r)):x.rIH),De=(0,c.XY)(3,(e,t,n)=>x.DYE(()=>{const r=e[Symbol.iterator](),i=[];let a,s=x.PyW(t),o=0;for(;!(a=r.next()).done;){const e=o++,t=a.value;s=x.qIB(s,r=>x.TjK(n(r,t,e),([e,t])=>(i.push(t),e)))}return x.TjK(s,e=>[e,i])})),Ue=(0,c.XY)(2,(e,t)=>x.khu(e,{onFailure:e=>x.pVV(()=>t(e)),onSuccess:x.PyW})),ze=e=>(0,c.Fs)(x.WW4(),x.qIB(t=>(0,c.Fs)((e=>dt(e,x.yU6(ge,x.m$m),([e,t],[n,r])=>[A.Ui(e,n),P.Ui(t,r)]))(e),x._ig(t),Ye,x.TjK(e=>x.aNH(e,(0,c.Fs)(x.gn0(t),x.qIB(([e,t])=>x.as(x.yU6(Xe(e[0]),x.$QS(e[1])),t)))))))),$e=e=>x.tvg(e,{onFailure:e=>x.PyW(e),onSuccess:x.PyW}),Ve=e=>x.TjK(e,e=>!e),Ke=e=>x.qIB(e,e=>{switch(e._tag){case"None":return x.rIH;case"Some":return x.fJG(new x.kJg)}}),Ye=e=>x.TjK(g.L8(!0),t=>x.NLW(x.iK2(e,g.C2(t,!1)))),qe=e=>x.tvg(e,{onFailure:()=>x.PyW(y.dv()),onSuccess:e=>x.PyW(y.zN(e))}),He=(0,c.XY)(2,(e,t)=>x.NWQ(e,()=>x.gOk(t))),Ge=(0,c.XY)(2,(e,t)=>x.NWQ(e,()=>x.OH5(t))),We=e=>x.khu(e,{onFailure:e=>{const t=r.Ts(E.e9(e));return 0===t.length?x.ATB(e):x.fJG(t)},onSuccess:x.PyW}),Xe=e=>Pt((t,n)=>(0,c.Fs)(e,A.F6(t,n))),Je=e=>e.length>=1?x.bIC((t,n)=>{try{e(n).then(e=>t(x.PyW(e)),e=>t(x.F_Q(e)))}catch(e){t(x.F_Q(e))}}):x.bIC(t=>{try{e().then(e=>t(x.PyW(e)),e=>t(x.F_Q(e)))}catch(e){t(x.F_Q(e))}}),Ze=(0,c.XY)(3,(e,t,n)=>x.d_m(r=>x.PpN(e,s.WQ(r,t,n)))),Qe=(0,c.XY)(3,(e,t,n)=>x.d_m(r=>x.qIB(n,n=>x.PpN(e,(0,c.Fs)(r,s.WQ(t,n)))))),et=v.Gx(x.PyW),tt=(0,c.XY)(3,(e,t,n)=>r.Ts(e).reduce((e,t,r)=>x.qIB(e,e=>n(e,t,r)),x.PyW(t))),nt=(0,c.XY)(3,(e,t,n)=>r.Ts(e).reduceRight((e,t,r)=>x.qIB(e,e=>n(t,e,r)),x.PyW(t))),rt=(0,c.XY)(3,(e,t,n)=>x.qIB(x.OH5(()=>e[Symbol.iterator]()),e=>it(e,0,t,n.while,n.body))),it=(e,t,n,r,i)=>{const a=e.next();return!a.done&&r(n)?x.qIB(i(n,a.value,t),n=>it(e,t+1,n,r,i)):x.PyW(n)},at=(0,c.XY)(2,(e,t)=>x.DYE(()=>st(e,t))),st=(e,t)=>x.qIB(e,n=>t<=0?x.PyW(n):x.aNH(x.m9E(),st(e,t-1))),ot=e=>x.khu(e,{onFailure:x.fJG,onSuccess:x.PyW}),ut=e=>x.DYE(()=>u.Au(e)),ct=a.yy,lt=x.PyW(y.dv()),ft=e=>x.PyW(y.zN(e)),dt=(0,c.XY)(3,(e,t,n)=>x.qIB(t,r=>x.qIB(e,e=>x.TjK(t,t=>[n(r,t),e])))),ht=(0,c.XY)(e=>x.yw5(e[0]),function(){return pt(arguments[0],"string"==typeof arguments[1]?[N.L8(arguments[1],arguments[2])]:Object.entries(arguments[1]).map(([e,t])=>N.L8(e,t)))}),pt=(0,c.XY)(2,(e,t)=>x.q1t(e,x.b1P,e=>r.KC(e,t))),mt=(0,c.XY)(2,(e,t)=>x.DYE(()=>{const n=e[Symbol.iterator](),r=[];let i,a=x.PyW(!1),s=0;for(;(i=n.next())&&!i.done;){const e=i.value,n=s++;a=x.qIB(a,i=>i?x.PyW(!0):(r.push(e),t(e,n)))}return x.TjK(a,()=>r)})),yt=(0,c.XY)(2,(e,t)=>x.DYE(()=>{const n=e[Symbol.iterator](),r=[];let i,a=x.PyW(!0),s=0;for(;(i=n.next())&&!i.done;){const e=i.value,n=s++;a=x.qIB(a,i=>(0,c.Fs)(i?t(e,n):x.PyW(!1),x.TjK(t=>(t&&r.push(e),t))))}return x.TjK(a,()=>r)})),bt=(0,c.XY)(2,(e,{onFailure:t,onSuccess:n})=>x.khu(e,{onFailure:e=>{const n=E.vE(e);switch(n._tag){case"Left":return x.aNH(t(n.left),x.ATB(e));case"Right":return x.ATB(e)}},onSuccess:e=>x.as(n(e),e)})),gt=(0,c.XY)(2,(e,t)=>x.uPo(e,e=>y.YW(E.AW(e),{onNone:()=>x.ATB(e),onSome:n=>x.aNH(t(n),x.ATB(e))}))),vt=(0,c.XY)(2,(e,t)=>x.khu(e,{onFailure:e=>{const n=E.vE(e);switch(n._tag){case"Left":return x.aNH(t(n.left),x.ATB(e));case"Right":return x.ATB(e)}},onSuccess:x.PyW})),wt=(0,c.XY)(3,(e,t,n)=>vt(e,e=>b.$J(e,t)?n(e):x.rIH)),_t=(0,c.XY)(2,(e,t)=>x.khu(e,{onFailure:e=>x.aNH(t(e),x.ATB(e)),onSuccess:x.PyW})),St=e=>Et(e,a.s0),Et=(0,c.XY)(2,(e,t)=>dt(e,t,(e,t)=>o.cF(t-e))),kt=_(x.PyW),xt=e=>{let t,n;"function"==typeof e?t=e:(t=e.try,n=e.catch);const r=e=>n?x.gOk(()=>n(e)):x.fJG(new x.Uis(e,"An unknown error occurred in Effect.tryPromise"));return t.length>=1?x.bIC((e,n)=>{try{t(n).then(t=>e(x.PyW(t)),t=>e(r(t)))}catch(t){e(r(t))}}):x.bIC(e=>{try{t().then(t=>e(x.PyW(t)),t=>e(r(t)))}catch(t){e(r(t))}})},Tt=(0,c.XY)(2,(e,t)=>x.qIB(e,e=>B({try:()=>t.try(e),catch:t.catch}))),Mt=(0,c.XY)(2,(e,t)=>x.qIB(e,e=>xt({try:t.try.length>=1?n=>t.try(e,n):()=>t.try(e),catch:t.catch}))),It=(0,c.XY)(2,(e,t)=>x.DYE(()=>t()?lt:R(e))),At=(0,c.XY)(2,(e,t)=>x.qIB(t,t=>t?lt:R(e))),Nt=e=>Ue(e,E.Bq),Pt=e=>x.$we(t=>(t.setFiberRefs(e(t.id(),t.getFiberRefs())),x.rIH)),Ot=(0,c.XY)(3,(e,t,n)=>x.kyh(e,e=>s.WQ(e,t,n(s.$v(e,t))))),Rt=(0,c.XY)(2,(e,t)=>x.DYE(()=>t()?x.TjK(e,y.zN):x.PyW(y.dv()))),Ct=(0,c.XY)(3,(e,t,n)=>x.qIB(x.U8_(t),t=>n(t)?x.TjK(e,e=>[t,y.zN(e)]):x.PyW([t,y.dv()]))),Bt=(0,c.XY)(3,(e,t,n)=>x.qIB(g.Jt(t),t=>n(t)?x.TjK(e,e=>[t,y.zN(e)]):x.PyW([t,y.dv()]))),Ft=(0,c.XY)(2,(e,t)=>t(e)),Lt=(e,t)=>(...n)=>x.qIB(e,e=>t(e)(...n)),jt=(e,t)=>(...n)=>x.TjK(e,e=>t(e)(...n)),Dt=e=>new Proxy({},{get:(t,n,r)=>(...t)=>x.qIB(e,e=>e[n](...t))}),Ut=e=>new Proxy({},{get:(t,n,r)=>x.qIB(e,e=>x.yw5(e[n])?e[n]:x.PyW(e[n]))}),zt=e=>({functions:Dt(e),constants:Ut(e)}),$t=e=>x.TjK(x._OA(),s.om(e)),Vt=e=>x.qIB(x._OA(),s.om(e)),Kt=function(){const e=arguments;return we(x.qIB(Gt,t=>x.OH5(()=>{if("string"==typeof e[0])t.attribute(e[0],e[1]);else for(const n in e[0])t.attribute(n,e[0][n])})))},Yt=function(){const e=arguments,t=Array.isArray(e[0])?e[0]:[{_tag:"SpanLink",span:e[0],attributes:e[1]??{}}];return we(x.qIB(Gt,e=>x.OH5(()=>e.addLinks(t))))},qt=(0,c.XY)(e=>x.yw5(e[0]),function(){const e=arguments;return x.q1t(e[0],x.BzD,"string"==typeof e[1]?l.hZ(e[1],e[2]):t=>Object.entries(e[1]).reduce((e,[t,n])=>l.hZ(e,t,n),t))}),Ht=Vt(w.Te),Gt=x.qIB(x._OA(),e=>{const t=e.unsafeMap.get(w.Te.key);return void 0!==t&&"Span"===t._tag?x.PyW(t):x.fJG(new x.kJg)}),Wt=(0,c.XY)(e=>x.yw5(e[0]),(e,t,n)=>x.q1t(e,x.s$T,i.BC({_tag:"SpanLink",span:t,attributes:n??{}}))),Xt=BigInt(0),Jt=y.qI(e=>s.Jt(e.context,w.DW)?"Span"===e._tag?Jt(e.parent):y.dv():y.zN(e)),Zt=(e,t,n)=>{const o=!e.getFiberRef(x.MP9)||n.context&&s.Jt(n.context,w.DW),c=e.getFiberRef(x.Fi1),f=n.parent?y.zN(n.parent):n.root?y.dv():Jt(s.om(c,w.Te));let d;if(o)d=x.bVS({name:t,parent:f,context:s.WQ(n.context??s.Ie(),w.DW,!0)});else{const o=e.getFiberRef(v.qJ),c=s.Jt(o,w.Ez),h=s.Jt(o,a.zD),p=e.getFiberRef(x.QYw),m=e.getFiberRefs(),y=u.Jt(m,x.BzD),b=u.Jt(m,x.s$T),g="Some"===b._tag?void 0!==n.links?[...i.h3(b.value),...n.links??[]]:i.h3(b.value):n.links??r.Ie();d=c.span(t,f,n.context??s.Ie(),g,p?h.unsafeCurrentTimeNanos():Xt,n.kind??"internal",n),"Some"===y._tag&&l.jJ(y.value,(e,t)=>d.attribute(t,e)),void 0!==n.attributes&&Object.entries(n.attributes).forEach(([e,t])=>d.attribute(e,t))}return"function"==typeof n.captureStackTrace&&E.rF.set(d,n.captureStackTrace),d},Qt=(e,t)=>(t=w.ZA(t),x.$we(n=>x.PyW(Zt(n,e,t)))),en=x.U8_(x.BzD),tn=x.U8_(x.s$T),nn=(e,t,n,r)=>x.OH5(()=>{"Ended"!==e.status._tag&&(x.VE1(t)&&E.rF.has(e)&&e.attribute("code.stacktrace",E.rF.get(e)()),e.end(r?n.unsafeCurrentTimeNanos():Xt,t))}),rn=(e,...t)=>{const n=w.ZA(1===t.length?void 0:t[0]),r=t[t.length-1];return x.$we(t=>{const i=Zt(t,e,n),a=t.getFiberRef(x.QYw),o=s.Jt(t.getFiberRef(v.qJ),k.hV);return x.cfM(r(i),e=>nn(i,e,o,a))})},an=(0,c.XY)(2,(e,t)=>Ze(e,w.Te,t)),sn=function(){const e="string"!=typeof arguments[0],t=e?arguments[1]:arguments[0],n=w.ZA(e?arguments[2]:arguments[1]);if(e){const e=arguments[0];return rn(t,n,t=>an(e,t))}return e=>rn(t,n,t=>an(e,t))},on=e=>function(){let t=e.captureStackTrace??!1;if(!1!==e.captureStackTrace){const e=Error.stackTraceLimit;Error.stackTraceLimit=2;const n=new Error;Error.stackTraceLimit=e;let r=!1;t=()=>{if(!1!==r)return r;if(n.stack){const e=n.stack.trim().split("\n");return r=e.slice(2).join("\n").trim(),r}}}return x.DYE(()=>{const n="function"==typeof e.options?e.options.apply(null,arguments):e.options;return sn(x.DYE(()=>(0,S.sn)(()=>e.body.apply(this,arguments))),n.name,{...n,captureStackTrace:t})})},un=e=>null==e?x.fJG(new x.kJg):x.PyW(e),cn=e=>x.h9N(x.TjK(e,y.zN),e=>x.QRo(e)?lt:x.fJG(e))},54046(e,t,n){"use strict";n.d(t,{a:()=>h});var r=n(74014),i=n(44535),a=n(23427),s=n(98156),o=n(47457),u=n(77576),c=n(26015),l=n(42169),f=n(13940),d=n(73989);async function h(e,t){const{account:n=e.account,accessList:h,authorizationList:p,chain:m=e.chain,blobVersionedHashes:y,blobs:b,data:g,gas:v,gasPrice:w,maxFeePerBlobGas:_,maxFeePerGas:S,maxPriorityFeePerGas:E,nonce:k,nonceManager:x,to:T,type:M,value:I,...A}=t,N=await(async()=>{if(!n)return k;if(!x)return k;if(void 0!==k)return k;const t=(0,r.J)(n),i=m?m.id:await(0,c.T)(e,d.T,"getChainId")({});return await x.consume({address:t.address,chainId:i,client:e})})();(0,l.c)(t);const P=m?.formatters?.transactionRequest?.format,O=(P||u.Bv)({...(0,s.o)(A,{format:P}),account:n?(0,r.J)(n):void 0,accessList:h,authorizationList:p,blobs:b,blobVersionedHashes:y,data:g,gas:v,gasPrice:w,maxFeePerBlobGas:_,maxFeePerGas:S,maxPriorityFeePerGas:E,nonce:N,to:T,type:M,value:I},"fillTransaction");try{const n=await e.request({method:"eth_fillTransaction",params:[O]}),r=(m?.formatters?.transaction?.format||o.uP)(n.tx);delete r.blockHash,delete r.blockNumber,delete r.r,delete r.s,delete r.transactionIndex,delete r.v,delete r.yParity,r.data=r.input,r.gas&&(r.gas=t.gas??r.gas),r.gasPrice&&(r.gasPrice=t.gasPrice??r.gasPrice),r.maxFeePerBlobGas&&(r.maxFeePerBlobGas=t.maxFeePerBlobGas??r.maxFeePerBlobGas),r.maxFeePerGas&&(r.maxFeePerGas=t.maxFeePerGas??r.maxFeePerGas),r.maxPriorityFeePerGas&&(r.maxPriorityFeePerGas=t.maxPriorityFeePerGas??r.maxPriorityFeePerGas),r.nonce&&(r.nonce=t.nonce??r.nonce);const a=await(async()=>{if("function"==typeof m?.fees?.baseFeeMultiplier){const n=await(0,c.T)(e,f.g,"getBlock")({});return m.fees.baseFeeMultiplier({block:n,client:e,request:t})}return m?.fees?.baseFeeMultiplier??1.2})();if(a<1)throw new i.sM;const s=10**(a.toString().split(".")[1]?.length??0),u=e=>e*BigInt(Math.ceil(a*s))/BigInt(s);return r.maxFeePerGas&&!t.maxFeePerGas&&(r.maxFeePerGas=u(r.maxFeePerGas)),r.gasPrice&&!t.gasPrice&&(r.gasPrice=u(r.gasPrice)),{raw:n.raw,transaction:{from:O.from,...r}}}catch(n){throw(0,a.p)(n,{...t,chain:e.chain})}}},54966(e,t,n){var r=t;r.Reporter=n(75437).a,r.DecoderBuffer=n(15542).t,r.EncoderBuffer=n(15542).d,r.Node=n(73004)},55037(e,t,n){"use strict";var r=n(18277).Buffer,i=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=u,this.end=c,t=4;break;case"utf8":this.fillLast=o,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=d,void(this.end=h)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function s(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function o(e){var t=this.lastTotal-this.lastNeed,n=function(e,t){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function u(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function d(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}t.I=a,a.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0?(i>0&&(e.lastNeed=i-1),i):--r=0?(i>0&&(e.lastNeed=i-2),i):--r=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},a.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},55116(e,t,n){"use strict";var r,i=n(42649);r=n.g.process&&n.g.process.browser?"utf-8":n.g.process&&n.g.process.version?parseInt(i.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary":"utf-8",e.exports=r},55303(e,t,n){"use strict";var r=n(33213),i=n(10457),a=n(8776),s=n(35951),o=n(81475);function u(e){o.call(this,"digest"),this._hash=e}r(u,o),u.prototype._update=function(e){this._hash.update(e)},u.prototype._final=function(){return this._hash.digest()},e.exports=function(e){return"md5"===(e=e.toLowerCase())?new i:"rmd160"===e||"ripemd160"===e?new a:new u(s(e))}},55606(e,t,n){"use strict";n.d(t,{Gx:()=>E,Ii:()=>k,RK:()=>b,Ru:()=>g,V6:()=>w,_o:()=>T,aP:()=>S,gm:()=>_,qJ:()=>p,s0:()=>v,wT:()=>x,yy:()=>m});var r=n(47726),i=n(68449),a=n(59329),s=n(55661),o=n(68929),u=n(79383),c=n(89921),l=n(36388),f=n(95516),d=n(30114);const h=(0,a.Fs)(r.Ie(),r.WQ(o.hV,o.L8()),r.WQ(l.MG,l.nS),r.WQ(f.k_,f.L8(Math.random())),r.WQ(u.Am,u.sF()),r.WQ(d.Ez,d.Vv)),p=(0,s.V)(Symbol.for("effect/DefaultServices/currentServices"),()=>c.bzD(h)),m=e=>{const t=i.D4(e);return b(e=>e.sleep(t))},y=e=>c.$we(t=>e(t.currentDefaultServices)),b=e=>y(t=>e(t.unsafeMap.get(o.hV.key))),g=b(e=>e.currentTimeMillis),v=b(e=>e.currentTimeNanos),w=(0,a.XY)(2,(e,t)=>c.q1t(p,r.WQ(o.hV,t))(e)),_=(0,a.XY)(2,(e,t)=>c.q1t(p,r.WQ(u.Am,t))(e)),S=e=>y(t=>e(t.unsafeMap.get(u.Am.key))),E=e=>y(t=>e(t.unsafeMap.get(f.k_.key))),k=(0,a.XY)(2,(e,t)=>c.q1t(p,r.WQ(f.k_,t))(e)),x=e=>y(t=>e(t.unsafeMap.get(d.Ez.key))),T=(0,a.XY)(2,(e,t)=>c.q1t(p,r.WQ(d.Ez,t))(e))},55628(e,t,n){!function(e,t){"use strict";function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function i(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function a(e,t,n){if(a.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var s;"object"==typeof e?e.exports=a:t.BN=a,a.BN=a,a.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:n(92110).Buffer}catch(e){}function o(e,t){var n=e.charCodeAt(t);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+e)}function u(e,t,n){var r=o(e,n);return n-1>=t&&(r|=o(e,n-1)<<4),r}function c(e,t,n,i){for(var a=0,s=0,o=Math.min(e.length,n),u=t;u=49?c-49+10:c>=17?c-17+10:c,r(c>=0&&s0?e:t},a.min=function(e,t){return e.cmp(t)<0?e:t},a.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(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[a]|=s<>>26-o&67108863,(o+=24)>=26&&(o-=26,a++);else if("le"===n)for(i=0,a=0;i>>26-o&67108863,(o+=24)>=26&&(o-=26,a++);return this._strip()},a.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=2)i=u(e,t,r)<=18?(a-=18,s+=1,this.words[s]|=i>>>26):a+=8;else for(r=(e.length-t)%2==0?t+1:t;r=18?(a-=18,s+=1,this.words[s]|=i>>>26):a+=8;this._strip()},a.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var a=e.length-n,s=a%r,o=Math.min(a,a-s)+n,u=0,l=n;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{a.prototype[Symbol.for("nodejs.util.inspect.custom")]=f}catch(e){a.prototype.inspect=f}else a.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 m(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],a=0|t.words[0],s=i*a,o=67108863&s,u=s/67108864|0;n.words[0]=o;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])*(a=0|t.words[h])+f)/67108864|0,f=67108863&s}n.words[c]=0|f,u=0|l}return 0!==u?n.words[c]=0|u:n.length--,n._strip()}a.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,a=0,s=0;s>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),n=0!==a||s!==this.length-1?d[6-u.length]+u+n:u+n}for(0!==a&&(n=a.toString(16)+n);n.length%t!==0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var c=h[e],l=p[e];n="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modrn(l).toString(e);n=(f=f.idivn(l)).isZero()?m+n:d[c-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!==0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},a.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&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},a.prototype.toJSON=function(){return this.toString(16,2)},s&&(a.prototype.toBuffer=function(e,t){return this.toArrayLike(s,e,t)}),a.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},a.prototype.toArrayLike=function(e,t,n){this._strip();var i=this.byteLength(),a=n||Math.max(1,i);r(i<=a,"byte array longer than desired length"),r(a>0,"Requested array length <= 0");var s=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,a);return this["_toArrayLike"+("le"===t?"LE":"BE")](s,i),s},a.prototype._toArrayLikeLE=function(e,t){for(var n=0,r=0,i=0,a=0;i>8&255),n>16&255),6===a?(n>24&255),r=0,a=0):(r=s>>>24,a+=2)}if(n=0&&(e[n--]=s>>8&255),n>=0&&(e[n--]=s>>16&255),6===a?(n>=0&&(e[n--]=s>>24&255),r=0,a=0):(r=s>>>24,a+=2)}if(n>=0)for(e[n--]=r;n>=0;)e[n--]=0},Math.clz32?a.prototype._countBits=function(e){return 32-Math.clz32(e)}:a.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},a.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 8191&t||(n+=13,t>>>=13),127&t||(n+=7,t>>>=7),15&t||(n+=4,t>>>=4),3&t||(n+=2,t>>>=2),1&t||n++,n},a.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},a.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},a.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},a.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},a.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;re.length?this.clone().ixor(e):e.clone().ixor(this)},a.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},a.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-n),this._strip()},a.prototype.notn=function(e){return this.clone().inotn(e)},a.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(n=this,r=e):(n=e,r=this);for(var i=0,a=0;a>>26;for(;0!==i&&a>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;ae.length?this.clone().iadd(e):e.clone().iadd(this)},a.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 n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var a=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==a&&s>26,this.words[s]=67108863&t;if(0===a&&s>>13,h=0|s[1],p=8191&h,m=h>>>13,y=0|s[2],b=8191&y,g=y>>>13,v=0|s[3],w=8191&v,_=v>>>13,S=0|s[4],E=8191&S,k=S>>>13,x=0|s[5],T=8191&x,M=x>>>13,I=0|s[6],A=8191&I,N=I>>>13,P=0|s[7],O=8191&P,R=P>>>13,C=0|s[8],B=8191&C,F=C>>>13,L=0|s[9],j=8191&L,D=L>>>13,U=0|o[0],z=8191&U,$=U>>>13,V=0|o[1],K=8191&V,Y=V>>>13,q=0|o[2],H=8191&q,G=q>>>13,W=0|o[3],X=8191&W,J=W>>>13,Z=0|o[4],Q=8191&Z,ee=Z>>>13,te=0|o[5],ne=8191&te,re=te>>>13,ie=0|o[6],ae=8191&ie,se=ie>>>13,oe=0|o[7],ue=8191&oe,ce=oe>>>13,le=0|o[8],fe=8191&le,de=le>>>13,he=0|o[9],pe=8191&he,me=he>>>13;n.negative=e.negative^t.negative,n.length=19;var ye=(c+(r=Math.imul(f,z))|0)+((8191&(i=(i=Math.imul(f,$))+Math.imul(d,z)|0))<<13)|0;c=((a=Math.imul(d,$))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(p,z),i=(i=Math.imul(p,$))+Math.imul(m,z)|0,a=Math.imul(m,$);var be=(c+(r=r+Math.imul(f,K)|0)|0)+((8191&(i=(i=i+Math.imul(f,Y)|0)+Math.imul(d,K)|0))<<13)|0;c=((a=a+Math.imul(d,Y)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(b,z),i=(i=Math.imul(b,$))+Math.imul(g,z)|0,a=Math.imul(g,$),r=r+Math.imul(p,K)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(m,K)|0,a=a+Math.imul(m,Y)|0;var ge=(c+(r=r+Math.imul(f,H)|0)|0)+((8191&(i=(i=i+Math.imul(f,G)|0)+Math.imul(d,H)|0))<<13)|0;c=((a=a+Math.imul(d,G)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(w,z),i=(i=Math.imul(w,$))+Math.imul(_,z)|0,a=Math.imul(_,$),r=r+Math.imul(b,K)|0,i=(i=i+Math.imul(b,Y)|0)+Math.imul(g,K)|0,a=a+Math.imul(g,Y)|0,r=r+Math.imul(p,H)|0,i=(i=i+Math.imul(p,G)|0)+Math.imul(m,H)|0,a=a+Math.imul(m,G)|0;var ve=(c+(r=r+Math.imul(f,X)|0)|0)+((8191&(i=(i=i+Math.imul(f,J)|0)+Math.imul(d,X)|0))<<13)|0;c=((a=a+Math.imul(d,J)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(E,z),i=(i=Math.imul(E,$))+Math.imul(k,z)|0,a=Math.imul(k,$),r=r+Math.imul(w,K)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(_,K)|0,a=a+Math.imul(_,Y)|0,r=r+Math.imul(b,H)|0,i=(i=i+Math.imul(b,G)|0)+Math.imul(g,H)|0,a=a+Math.imul(g,G)|0,r=r+Math.imul(p,X)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(m,X)|0,a=a+Math.imul(m,J)|0;var we=(c+(r=r+Math.imul(f,Q)|0)|0)+((8191&(i=(i=i+Math.imul(f,ee)|0)+Math.imul(d,Q)|0))<<13)|0;c=((a=a+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(T,z),i=(i=Math.imul(T,$))+Math.imul(M,z)|0,a=Math.imul(M,$),r=r+Math.imul(E,K)|0,i=(i=i+Math.imul(E,Y)|0)+Math.imul(k,K)|0,a=a+Math.imul(k,Y)|0,r=r+Math.imul(w,H)|0,i=(i=i+Math.imul(w,G)|0)+Math.imul(_,H)|0,a=a+Math.imul(_,G)|0,r=r+Math.imul(b,X)|0,i=(i=i+Math.imul(b,J)|0)+Math.imul(g,X)|0,a=a+Math.imul(g,J)|0,r=r+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(m,Q)|0,a=a+Math.imul(m,ee)|0;var _e=(c+(r=r+Math.imul(f,ne)|0)|0)+((8191&(i=(i=i+Math.imul(f,re)|0)+Math.imul(d,ne)|0))<<13)|0;c=((a=a+Math.imul(d,re)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(A,z),i=(i=Math.imul(A,$))+Math.imul(N,z)|0,a=Math.imul(N,$),r=r+Math.imul(T,K)|0,i=(i=i+Math.imul(T,Y)|0)+Math.imul(M,K)|0,a=a+Math.imul(M,Y)|0,r=r+Math.imul(E,H)|0,i=(i=i+Math.imul(E,G)|0)+Math.imul(k,H)|0,a=a+Math.imul(k,G)|0,r=r+Math.imul(w,X)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,X)|0,a=a+Math.imul(_,J)|0,r=r+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,ee)|0)+Math.imul(g,Q)|0,a=a+Math.imul(g,ee)|0,r=r+Math.imul(p,ne)|0,i=(i=i+Math.imul(p,re)|0)+Math.imul(m,ne)|0,a=a+Math.imul(m,re)|0;var Se=(c+(r=r+Math.imul(f,ae)|0)|0)+((8191&(i=(i=i+Math.imul(f,se)|0)+Math.imul(d,ae)|0))<<13)|0;c=((a=a+Math.imul(d,se)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(O,z),i=(i=Math.imul(O,$))+Math.imul(R,z)|0,a=Math.imul(R,$),r=r+Math.imul(A,K)|0,i=(i=i+Math.imul(A,Y)|0)+Math.imul(N,K)|0,a=a+Math.imul(N,Y)|0,r=r+Math.imul(T,H)|0,i=(i=i+Math.imul(T,G)|0)+Math.imul(M,H)|0,a=a+Math.imul(M,G)|0,r=r+Math.imul(E,X)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(k,X)|0,a=a+Math.imul(k,J)|0,r=r+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,a=a+Math.imul(_,ee)|0,r=r+Math.imul(b,ne)|0,i=(i=i+Math.imul(b,re)|0)+Math.imul(g,ne)|0,a=a+Math.imul(g,re)|0,r=r+Math.imul(p,ae)|0,i=(i=i+Math.imul(p,se)|0)+Math.imul(m,ae)|0,a=a+Math.imul(m,se)|0;var Ee=(c+(r=r+Math.imul(f,ue)|0)|0)+((8191&(i=(i=i+Math.imul(f,ce)|0)+Math.imul(d,ue)|0))<<13)|0;c=((a=a+Math.imul(d,ce)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(B,z),i=(i=Math.imul(B,$))+Math.imul(F,z)|0,a=Math.imul(F,$),r=r+Math.imul(O,K)|0,i=(i=i+Math.imul(O,Y)|0)+Math.imul(R,K)|0,a=a+Math.imul(R,Y)|0,r=r+Math.imul(A,H)|0,i=(i=i+Math.imul(A,G)|0)+Math.imul(N,H)|0,a=a+Math.imul(N,G)|0,r=r+Math.imul(T,X)|0,i=(i=i+Math.imul(T,J)|0)+Math.imul(M,X)|0,a=a+Math.imul(M,J)|0,r=r+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(k,Q)|0,a=a+Math.imul(k,ee)|0,r=r+Math.imul(w,ne)|0,i=(i=i+Math.imul(w,re)|0)+Math.imul(_,ne)|0,a=a+Math.imul(_,re)|0,r=r+Math.imul(b,ae)|0,i=(i=i+Math.imul(b,se)|0)+Math.imul(g,ae)|0,a=a+Math.imul(g,se)|0,r=r+Math.imul(p,ue)|0,i=(i=i+Math.imul(p,ce)|0)+Math.imul(m,ue)|0,a=a+Math.imul(m,ce)|0;var ke=(c+(r=r+Math.imul(f,fe)|0)|0)+((8191&(i=(i=i+Math.imul(f,de)|0)+Math.imul(d,fe)|0))<<13)|0;c=((a=a+Math.imul(d,de)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(j,z),i=(i=Math.imul(j,$))+Math.imul(D,z)|0,a=Math.imul(D,$),r=r+Math.imul(B,K)|0,i=(i=i+Math.imul(B,Y)|0)+Math.imul(F,K)|0,a=a+Math.imul(F,Y)|0,r=r+Math.imul(O,H)|0,i=(i=i+Math.imul(O,G)|0)+Math.imul(R,H)|0,a=a+Math.imul(R,G)|0,r=r+Math.imul(A,X)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(N,X)|0,a=a+Math.imul(N,J)|0,r=r+Math.imul(T,Q)|0,i=(i=i+Math.imul(T,ee)|0)+Math.imul(M,Q)|0,a=a+Math.imul(M,ee)|0,r=r+Math.imul(E,ne)|0,i=(i=i+Math.imul(E,re)|0)+Math.imul(k,ne)|0,a=a+Math.imul(k,re)|0,r=r+Math.imul(w,ae)|0,i=(i=i+Math.imul(w,se)|0)+Math.imul(_,ae)|0,a=a+Math.imul(_,se)|0,r=r+Math.imul(b,ue)|0,i=(i=i+Math.imul(b,ce)|0)+Math.imul(g,ue)|0,a=a+Math.imul(g,ce)|0,r=r+Math.imul(p,fe)|0,i=(i=i+Math.imul(p,de)|0)+Math.imul(m,fe)|0,a=a+Math.imul(m,de)|0;var xe=(c+(r=r+Math.imul(f,pe)|0)|0)+((8191&(i=(i=i+Math.imul(f,me)|0)+Math.imul(d,pe)|0))<<13)|0;c=((a=a+Math.imul(d,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(j,K),i=(i=Math.imul(j,Y))+Math.imul(D,K)|0,a=Math.imul(D,Y),r=r+Math.imul(B,H)|0,i=(i=i+Math.imul(B,G)|0)+Math.imul(F,H)|0,a=a+Math.imul(F,G)|0,r=r+Math.imul(O,X)|0,i=(i=i+Math.imul(O,J)|0)+Math.imul(R,X)|0,a=a+Math.imul(R,J)|0,r=r+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(N,Q)|0,a=a+Math.imul(N,ee)|0,r=r+Math.imul(T,ne)|0,i=(i=i+Math.imul(T,re)|0)+Math.imul(M,ne)|0,a=a+Math.imul(M,re)|0,r=r+Math.imul(E,ae)|0,i=(i=i+Math.imul(E,se)|0)+Math.imul(k,ae)|0,a=a+Math.imul(k,se)|0,r=r+Math.imul(w,ue)|0,i=(i=i+Math.imul(w,ce)|0)+Math.imul(_,ue)|0,a=a+Math.imul(_,ce)|0,r=r+Math.imul(b,fe)|0,i=(i=i+Math.imul(b,de)|0)+Math.imul(g,fe)|0,a=a+Math.imul(g,de)|0;var Te=(c+(r=r+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;c=((a=a+Math.imul(m,me)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(j,H),i=(i=Math.imul(j,G))+Math.imul(D,H)|0,a=Math.imul(D,G),r=r+Math.imul(B,X)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(F,X)|0,a=a+Math.imul(F,J)|0,r=r+Math.imul(O,Q)|0,i=(i=i+Math.imul(O,ee)|0)+Math.imul(R,Q)|0,a=a+Math.imul(R,ee)|0,r=r+Math.imul(A,ne)|0,i=(i=i+Math.imul(A,re)|0)+Math.imul(N,ne)|0,a=a+Math.imul(N,re)|0,r=r+Math.imul(T,ae)|0,i=(i=i+Math.imul(T,se)|0)+Math.imul(M,ae)|0,a=a+Math.imul(M,se)|0,r=r+Math.imul(E,ue)|0,i=(i=i+Math.imul(E,ce)|0)+Math.imul(k,ue)|0,a=a+Math.imul(k,ce)|0,r=r+Math.imul(w,fe)|0,i=(i=i+Math.imul(w,de)|0)+Math.imul(_,fe)|0,a=a+Math.imul(_,de)|0;var Me=(c+(r=r+Math.imul(b,pe)|0)|0)+((8191&(i=(i=i+Math.imul(b,me)|0)+Math.imul(g,pe)|0))<<13)|0;c=((a=a+Math.imul(g,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(j,X),i=(i=Math.imul(j,J))+Math.imul(D,X)|0,a=Math.imul(D,J),r=r+Math.imul(B,Q)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(F,Q)|0,a=a+Math.imul(F,ee)|0,r=r+Math.imul(O,ne)|0,i=(i=i+Math.imul(O,re)|0)+Math.imul(R,ne)|0,a=a+Math.imul(R,re)|0,r=r+Math.imul(A,ae)|0,i=(i=i+Math.imul(A,se)|0)+Math.imul(N,ae)|0,a=a+Math.imul(N,se)|0,r=r+Math.imul(T,ue)|0,i=(i=i+Math.imul(T,ce)|0)+Math.imul(M,ue)|0,a=a+Math.imul(M,ce)|0,r=r+Math.imul(E,fe)|0,i=(i=i+Math.imul(E,de)|0)+Math.imul(k,fe)|0,a=a+Math.imul(k,de)|0;var Ie=(c+(r=r+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,me)|0)+Math.imul(_,pe)|0))<<13)|0;c=((a=a+Math.imul(_,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(j,Q),i=(i=Math.imul(j,ee))+Math.imul(D,Q)|0,a=Math.imul(D,ee),r=r+Math.imul(B,ne)|0,i=(i=i+Math.imul(B,re)|0)+Math.imul(F,ne)|0,a=a+Math.imul(F,re)|0,r=r+Math.imul(O,ae)|0,i=(i=i+Math.imul(O,se)|0)+Math.imul(R,ae)|0,a=a+Math.imul(R,se)|0,r=r+Math.imul(A,ue)|0,i=(i=i+Math.imul(A,ce)|0)+Math.imul(N,ue)|0,a=a+Math.imul(N,ce)|0,r=r+Math.imul(T,fe)|0,i=(i=i+Math.imul(T,de)|0)+Math.imul(M,fe)|0,a=a+Math.imul(M,de)|0;var Ae=(c+(r=r+Math.imul(E,pe)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(k,pe)|0))<<13)|0;c=((a=a+Math.imul(k,me)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(j,ne),i=(i=Math.imul(j,re))+Math.imul(D,ne)|0,a=Math.imul(D,re),r=r+Math.imul(B,ae)|0,i=(i=i+Math.imul(B,se)|0)+Math.imul(F,ae)|0,a=a+Math.imul(F,se)|0,r=r+Math.imul(O,ue)|0,i=(i=i+Math.imul(O,ce)|0)+Math.imul(R,ue)|0,a=a+Math.imul(R,ce)|0,r=r+Math.imul(A,fe)|0,i=(i=i+Math.imul(A,de)|0)+Math.imul(N,fe)|0,a=a+Math.imul(N,de)|0;var Ne=(c+(r=r+Math.imul(T,pe)|0)|0)+((8191&(i=(i=i+Math.imul(T,me)|0)+Math.imul(M,pe)|0))<<13)|0;c=((a=a+Math.imul(M,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(j,ae),i=(i=Math.imul(j,se))+Math.imul(D,ae)|0,a=Math.imul(D,se),r=r+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,ce)|0)+Math.imul(F,ue)|0,a=a+Math.imul(F,ce)|0,r=r+Math.imul(O,fe)|0,i=(i=i+Math.imul(O,de)|0)+Math.imul(R,fe)|0,a=a+Math.imul(R,de)|0;var Pe=(c+(r=r+Math.imul(A,pe)|0)|0)+((8191&(i=(i=i+Math.imul(A,me)|0)+Math.imul(N,pe)|0))<<13)|0;c=((a=a+Math.imul(N,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,r=Math.imul(j,ue),i=(i=Math.imul(j,ce))+Math.imul(D,ue)|0,a=Math.imul(D,ce),r=r+Math.imul(B,fe)|0,i=(i=i+Math.imul(B,de)|0)+Math.imul(F,fe)|0,a=a+Math.imul(F,de)|0;var Oe=(c+(r=r+Math.imul(O,pe)|0)|0)+((8191&(i=(i=i+Math.imul(O,me)|0)+Math.imul(R,pe)|0))<<13)|0;c=((a=a+Math.imul(R,me)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(j,fe),i=(i=Math.imul(j,de))+Math.imul(D,fe)|0,a=Math.imul(D,de);var Re=(c+(r=r+Math.imul(B,pe)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(F,pe)|0))<<13)|0;c=((a=a+Math.imul(F,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863;var Ce=(c+(r=Math.imul(j,pe))|0)+((8191&(i=(i=Math.imul(j,me))+Math.imul(D,pe)|0))<<13)|0;return c=((a=Math.imul(D,me))+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,u[0]=ye,u[1]=be,u[2]=ge,u[3]=ve,u[4]=we,u[5]=_e,u[6]=Se,u[7]=Ee,u[8]=ke,u[9]=xe,u[10]=Te,u[11]=Me,u[12]=Ie,u[13]=Ae,u[14]=Ne,u[15]=Pe,u[16]=Oe,u[17]=Re,u[18]=Ce,0!==c&&(u[19]=c,n.length++),n};function b(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,a=0;a>>26)|0)>>>26,s&=67108863}n.words[a]=o,r=s,s=i}return 0!==r?n.words[a]=r:n.length--,n._strip()}function g(e,t,n){return b(e,t,n)}function v(e,t){this.x=e,this.y=t}Math.imul||(y=m),a.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?y(this,e,t):n<63?m(this,e,t):n<1024?b(this,e,t):g(this,e,t)},v.prototype.makeRBT=function(e){for(var t=new Array(e),n=a.prototype._countBits(e)-1,r=0;r>=1;return r},v.prototype.permute=function(e,t,n,r,i,a){for(var s=0;s>>=1)i++;return 1<>>=13,n[2*s+1]=8191&a,a>>>=13;for(s=2*t;s>=26,n+=a/67108864|0,n+=s>>>26,this.words[i]=67108863&s}return 0!==n&&(this.words[i]=n,this.length++),this.length=0===e?1:this.length,t?this.ineg():this},a.prototype.muln=function(e){return this.clone().imuln(e)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n>>i&1}return t}(e);if(0===t.length)return new a(1);for(var n=this,r=0;r=0);var t,n=e%26,i=(e-n)/26,a=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t>>26-n}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 a=e%26,s=Math.min((e-a)/26,this.length),o=67108863^67108863>>>a<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-a|f>>>a,l=f&o}return u&&0!==l&&(u.words[u.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},a.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},a.prototype.shln=function(e){return this.clone().ishln(e)},a.prototype.ushln=function(e){return this.clone().iushln(e)},a.prototype.shrn=function(e){return this.clone().ishrn(e)},a.prototype.ushrn=function(e){return this.clone().iushrn(e)},a.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,i=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,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},a.prototype.isubn=function(e){if(r("number"==typeof e),r(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+n]=67108863&a}for(;i>26,this.words[i+n]=67108863&a;if(0===o)return this._strip();for(r(-1===o),o=0,i=0;i>26,this.words[i]=67108863&a;return this.negative=1,this._strip()},a.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),i=e,s=0|i.words[i.length-1];0!=(n=26-this._countBits(s))&&(i=i.ushln(n),r.iushln(n),s=0|i.words[i.length-1]);var o,u=r.length-i.length;if("mod"!==t){(o=new a(null)).length=u+1,o.words=new Array(o.length);for(var c=0;c=0;f--){var d=67108864*(0|r.words[i.length+f])+(0|r.words[i.length+f-1]);for(d=Math.min(d/s|0,67108863),r._ishlnsubmul(i,d,f);0!==r.negative;)d--,r.negative=0,r._ishlnsubmul(i,1,f),r.isZero()||(r.negative^=1);o&&(o.words[f]=d)}return o&&o._strip(),r._strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:o||null,mod:r}},a.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===e.negative?(o=this.neg().divmod(e,t),"mod"!==t&&(i=o.div.neg()),"div"!==t&&(s=o.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:i,mod:s}):0===this.negative&&0!==e.negative?(o=this.divmod(e.neg(),t),"mod"!==t&&(i=o.div.neg()),{div:i,mod:o.mod}):0!==(this.negative&e.negative)?(o=this.neg().divmod(e.neg(),t),"div"!==t&&(s=o.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:o.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new a(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new a(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new a(this.modrn(e.words[0]))}:this._wordDiv(e,t);var i,s,o},a.prototype.div=function(e){return this.divmod(e,"div",!1).div},a.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},a.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},a.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),a=n.cmp(r);return a<0||1===i&&0===a?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},a.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,i=0,a=this.length-1;a>=0;a--)i=(n*i+(0|this.words[a]))%e;return t?-i:i},a.prototype.modn=function(e){return this.modrn(e)},a.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,i=this.length-1;i>=0;i--){var a=(0|this.words[i])+67108864*n;this.words[i]=a/e|0,n=a%e}return this._strip(),t?this.ineg():this},a.prototype.divn=function(e){return this.clone().idivn(e)},a.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new a(1),s=new a(0),o=new a(0),u=new a(1),c=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++c;for(var l=n.clone(),f=t.clone();!t.isZero();){for(var d=0,h=1;0===(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,m=1;0===(n.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(o.isOdd()||u.isOdd())&&(o.iadd(l),u.isub(f)),o.iushrn(1),u.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(o),s.isub(u)):(n.isub(t),o.isub(i),u.isub(s))}return{a:o,b:u,gcd:n.iushln(c)}},a.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,s=new a(1),o=new a(0),u=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var c=0,l=1;0===(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;0===(n.words[0]&d)&&f<26;++f,d<<=1);if(f>0)for(n.iushrn(f);f-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(o)):(n.isub(t),o.isub(s))}return(i=0===t.cmpn(1)?s:o).cmpn(0)<0&&i.iadd(e),i},a.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var a=t;t=n,n=a}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},a.prototype.invm=function(e){return this.egcd(e).a.umod(e)},a.prototype.isEven=function(){return!(1&this.words[0])},a.prototype.isOdd=function(){return!(1&~this.words[0])},a.prototype.andln=function(e){return this.words[0]&e},a.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<>>26,o&=67108863,this.words[s]=o}return 0!==a&&(this.words[s]=a,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:ie.length)return 1;if(this.length=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){ri&&(t=1);break}}return t},a.prototype.gtn=function(e){return 1===this.cmpn(e)},a.prototype.gt=function(e){return 1===this.cmp(e)},a.prototype.gten=function(e){return this.cmpn(e)>=0},a.prototype.gte=function(e){return this.cmp(e)>=0},a.prototype.ltn=function(e){return-1===this.cmpn(e)},a.prototype.lt=function(e){return-1===this.cmp(e)},a.prototype.lten=function(e){return this.cmpn(e)<=0},a.prototype.lte=function(e){return this.cmp(e)<=0},a.prototype.eqn=function(e){return 0===this.cmpn(e)},a.prototype.eq=function(e){return 0===this.cmp(e)},a.red=function(e){return new T(e)},a.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},a.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(e){return this.red=e,this},a.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},a.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},a.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},a.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},a.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},a.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},a.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},a.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},a.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var w={k256:null,p224:null,p192:null,p25519:null};function _(e,t){this.name=e,this.p=new a(t,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function S(){_.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function E(){_.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function k(){_.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function x(){_.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function T(e){if("string"==typeof e){var t=a._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function M(e){T.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(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 a(null);return e.words=new Array(Math.ceil(this.n/13)),e},_.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},_.prototype.split=function(e,t){e.iushrn(this.n,0,t)},_.prototype.imulK=function(e){return e.imul(this.k)},i(S,_),S.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i>>22,a=s}a>>>=22,e.words[i-10]=a,0===a&&e.length>10?e.length-=10:e.length-=9},S.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},a._prime=function(e){if(w[e])return w[e];var t;if("k256"===e)t=new S;else if("p224"===e)t=new E;else if("p192"===e)t=new k;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new x}return w[e]=t,t},T.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},T.prototype._verify2=function(e,t){r(0===(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},T.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(l(e,e.umod(this.m)._forceRed(this)),e)},T.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},T.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},T.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},T.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},T.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},T.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},T.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},T.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},T.prototype.isqr=function(e){return this.imul(e,e.clone())},T.prototype.sqr=function(e){return this.mul(e,e)},T.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new a(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var o=new a(1).toRed(this),u=o.redNeg(),c=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new a(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(o);){for(var m=h,y=0;0!==m.cmp(o);y++)m=m.redSqr();r(y=0;r--){for(var c=t.words[r],l=u-1;l>=0;l--){var f=c>>l&1;i!==n[0]&&(i=this.sqr(i)),0!==f||0!==s?(s<<=1,s|=f,(4===++o||0===r&&0===l)&&(i=this.mul(i,n[s]),o=0,s=0)):o=0}u=26}return i},T.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},T.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new M(e)},i(M,T),M.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},M.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},M.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},M.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new a(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).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)},M.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=n.nmd(e),this)},55661(e,t,n){"use strict";n.d(t,{V:()=>a});const r="effect/GlobalValue";let i;const a=(e,t)=>(i||(globalThis[r]??=new Map,i=globalThis[r]),i.has(e)||i.set(e,t()),i.get(e))},56050(e,t,n){"use strict";n.d(t,{l:()=>jn});var r=n(77701),i=n(56342),a=n(50309),s=n(88924),o=n(22478),u=n(8736),c=n(75209),l=n(2273),f=n(91042);function d(e){if(!(e instanceof l.C))return!1;const t=e.walk(e=>e instanceof f.M);return t instanceof f.M&&("HttpError"===t.data?.errorName||"ResolverError"===t.data?.errorName||"ResolverNotContract"===t.data?.errorName||"ResolverNotFound"===t.data?.errorName||"ReverseAddressMismatch"===t.data?.errorName||"UnsupportedResolverProfile"===t.data?.errorName)}var h=n(95611),p=n(33640),m=n(81127),y=n(35593),b=n(84015);function g(e){if(66!==e.length)return null;if(0!==e.indexOf("["))return null;if(65!==e.indexOf("]"))return null;const t=`0x${e.slice(1,65)}`;return(0,b.q)(t)?t:null}function v(e){let t=new Uint8Array(32).fill(0);if(!e)return(0,c.My)(t);const n=e.split(".");for(let e=n.length-1;e>=0;e-=1){const r=g(n[e]),i=r?(0,m.ZJ)(r):(0,y.S)((0,m.Af)(n[e]),"bytes");t=(0,y.S)((0,p.xW)([t,i]),"bytes")}return(0,c.My)(t)}function w(e){return`[${e.slice(2)}]`}function _(e){const t=new Uint8Array(32).fill(0);return e?g(e)||(0,y.S)((0,m.Af)(e)):(0,c.My)(t)}function S(e){const t=e.replace(/^\.|\.$/gm,"");if(0===t.length)return new Uint8Array(1);const n=new Uint8Array((0,m.Af)(t).byteLength+2);let r=0;const i=t.split(".");for(let e=0;e255&&(t=(0,m.Af)(w(_(i[e])))),n[r]=t.length,n.set(t,r+1),r+=t.length+1}return n.byteLength!==r+1?n.slice(0,r+1):n}var E=n(26015),k=n(76171);class x extends l.C{constructor({data:e}){super("Unable to extract image from metadata. The metadata may be malformed or invalid.",{metaMessages:["- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.","",`Provided data: ${JSON.stringify(e)}`],name:"EnsAvatarInvalidMetadataError"})}}class T extends l.C{constructor({reason:e}){super(`ENS NFT avatar URI is invalid. ${e}`,{name:"EnsAvatarInvalidNftUriError"})}}class M extends l.C{constructor({uri:e}){super(`Unable to resolve ENS avatar URI "${e}". The URI may be malformed, invalid, or does not respond with a valid image.`,{name:"EnsAvatarUriResolutionError"})}}class I extends l.C{constructor({namespace:e}){super(`ENS NFT avatar namespace "${e}" is not supported. Must be "erc721" or "erc1155".`,{name:"EnsAvatarUnsupportedNamespaceError"})}}l.C;const A=/(?https?:\/\/[^/]*|ipfs:\/|ipns:\/|ar:\/)?(?\/)?(?ipfs\/|ipns\/)?(?[\w\-.]+)(?\/.*)?/,N=/^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\/(?[\w\-.]+))?(?\/.*)?$/,P=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,O=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;function R(e,t){return e?e.endsWith("/")?e.slice(0,-1):e:t}function C({uri:e,gatewayUrls:t}){const n=P.test(e);if(n)return{uri:e,isOnChain:!0,isEncoded:n};const r=R(t?.ipfs,"https://ipfs.io"),i=R(t?.arweave,"https://arweave.net"),a=e.match(A),{protocol:s,subpath:o,target:u,subtarget:c=""}=a?.groups||{},l="ipns:/"===s||"ipns/"===o,f="ipfs:/"===s||"ipfs/"===o||N.test(e);if(e.startsWith("http")&&!l&&!f){let n=e;return t?.arweave&&(n=e.replace(/https:\/\/arweave.net/g,t?.arweave)),{uri:n,isOnChain:!1,isEncoded:!1}}if((l||f)&&u)return{uri:`${r}/${l?"ipns":"ipfs"}/${u}${c}`,isOnChain:!1,isEncoded:!1};if("ar:/"===s&&u)return{uri:`${i}/${u}${c||""}`,isOnChain:!1,isEncoded:!1};let d=e.replace(O,"");if(d.startsWith("{const n=new Image;n.onload=()=>{t(!0)},n.onerror=()=>{t(!1)},n.src=e})}}(n);if(i)return n;throw new M({uri:t})}async function L(e,t){const{blockNumber:n,blockTag:r,key:u,name:l,gatewayUrls:f,strict:p}=t,{chain:m}=e,y=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!m)throw new Error("client chain not configured. universalResolverAddress is required.");return(0,o.M)({blockNumber:n,chain:m,contract:"ensUniversalResolver"})})(),b=m?.ensTlds;if(b&&!b.some(e=>l.endsWith(e)))return null;try{const t={address:y,abi:i.Ag,args:[(0,c.nj)(S(l)),(0,s.p)({abi:i.SJ,functionName:"text",args:[v(l),u]}),f??[h.J]],functionName:"resolveWithGateways",blockNumber:n,blockTag:r},o=(0,E.T)(e,k.J,"readContract"),d=await o(t);if("0x"===d[0])return null;const p=(0,a.e)({abi:i.SJ,functionName:"text",data:d[0]});return""===p?null:p}catch(e){if(p)throw e;if(d(e))return null;throw e}}var j=n(45011),D=n(74014),U=n(25899),z=n(98156),$=n(77576),V=n(42169);async function K(e,t){const{account:n=e.account,blockNumber:r,blockTag:i="latest",blobs:a,data:s,gas:o,gasPrice:u,maxFeePerBlobGas:l,maxFeePerGas:f,maxPriorityFeePerGas:d,to:h,value:p,...m}=t,y=n?(0,D.J)(n):void 0;try{(0,V.c)(t);const n=("bigint"==typeof r?(0,c.cK)(r):void 0)||i,b=e.chain?.formatters?.transactionRequest?.format,g=(b||$.Bv)({...(0,z.o)(m,{format:b}),account:y,blobs:a,data:s,gas:o,gasPrice:u,maxFeePerBlobGas:l,maxFeePerGas:f,maxPriorityFeePerGas:d,to:h,value:p},"createAccessList"),v=await e.request({method:"eth_createAccessList",params:[g,n]});return{accessList:v.accessList,gasUsed:BigInt(v.gasUsed)}}catch(n){throw(0,U.d)(n,{...t,account:y,chain:e.chain})}}var Y=n(88196),q=n(96349),H=n(78451);async function G(e,{address:t,args:n,event:r,events:i,fromBlock:a,strict:s,toBlock:o}={}){const u=i??(r?[r]:void 0),l=(0,Y.g)(e,{method:"eth_newFilter"});let f=[];if(u){const e=u.flatMap(e=>(0,H.R)({abi:[e],eventName:e.name,args:n}));f=[e],r&&(f=f[0])}const d=await e.request({method:"eth_newFilter",params:[{address:t,fromBlock:"bigint"==typeof a?(0,c.cK)(a):a,toBlock:"bigint"==typeof o?(0,c.cK)(o):o,...f.length?{topics:f}:{}}]});return{abi:u,args:n,eventName:r?r.name:void 0,fromBlock:a,id:d,request:l(d),strict:Boolean(s),toBlock:o,type:"event"}}async function W(e){const t=(0,Y.g)(e,{method:"eth_newPendingTransactionFilter"}),n=await e.request({method:"eth_newPendingTransactionFilter"});return{id:n,request:t(n),type:"transaction"}}var X=n(85144),J=n(20582),Z=n(93543),Q=n(13961),ee=n(54046),te=n(13940),ne=n(44166),re=n(58038),ie=n(73989);async function ae(e,{address:t,blockNumber:n,blockTag:r="latest"}){const i=void 0!==n?(0,c.cK)(n):void 0,a=await e.request({method:"eth_getCode",params:[t,i||r]},{dedupe:Boolean(i)});if("0x"!==a)return a}var se=n(65306);class oe extends l.C{constructor({address:e}){super(`No EIP-712 domain found on contract "${e}".`,{metaMessages:["Ensure that:",`- The contract is deployed at the address "${e}".`,"- `eip712Domain()` function exists on the contract.","- `eip712Domain()` function matches signature to ERC-5267 specification."],name:"Eip712DomainNotFoundError"})}}const ue=[{inputs:[],name:"eip712Domain",outputs:[{name:"fields",type:"bytes1"},{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"},{name:"salt",type:"bytes32"},{name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"}];var ce=n(66502),le=n(44720),fe=n(63183),de=n(34435),he=n(49514);var pe=n(12129),me=n(64030),ye=n(9481),be=n(31262),ge=n(70121),ve=n(66893),we=n(90580),_e=n(61355),Se=n(77411),Ee=n(11956),ke=n(61144);async function xe(e,t){const{blockNumber:n,blockTag:r=e.experimental_blockTag??"latest",blocks:i,returnFullTransactions:o,traceTransfers:u,validation:l}=t;try{const t=[];for(const e of i){const n=e.blockOverrides?we.J(e.blockOverrides):void 0,r=e.calls.map(e=>{const t=e,n=t.account?(0,D.J)(t.account):void 0,r=t.abi?(0,s.p)(t):t.data,i={...t,account:n,data:t.dataSuffix?(0,p.xW)([r||"0x",t.dataSuffix]):r,from:t.from??n?.address};return(0,V.c)(i),(0,$.Bv)(i)}),i=e.stateOverrides?(0,ke.yH)(e.stateOverrides):void 0;t.push({blockOverrides:n,calls:r,stateOverrides:i})}const d=("bigint"==typeof n?(0,c.cK)(n):void 0)||r;return(await e.request({method:"eth_simulateV1",params:[{blockStateCalls:t,returnFullTransactions:o,traceTransfers:u,validation:l},d]})).map((e,t)=>({...(0,Ee.$)(e),calls:e.calls.map((e,n)=>{const{abi:r,args:s,functionName:o,to:u}=i[t].calls[n],c=e.error?.data??e.returnData,l=BigInt(e.gasUsed),d=e.logs?.map(e=>(0,fe.e)(e)),h="0x1"===e.status?"success":"failure",p=r&&"success"===h&&"0x"!==c?(0,a.e)({abi:r,data:c,functionName:o}):null,m=(()=>{if("success"===h)return;let t;return"0x"===e.error?.data?t=new ge.O:e.error&&(t=new f.$S(e.error)),t?(0,ve.j)(t,{abi:r??[],address:u??"0x",args:s,functionName:o??""}):void 0})();return{data:c,gasUsed:l,logs:d,status:h,..."success"===h?{result:p}:{error:m}}})}))}catch(e){const t=e,n=(0,Se.l)(t,{});if(n instanceof _e.RM)throw t;throw n}}var Te=n(92666),Me=n(72021),Ie=n(22839),Ae=n(18318);var Ne=n(13059),Pe=n(52948),Oe=n(27215),Re=n(21506);function Ce(e,t){if($e(e)>t)throw new We({givenSize:$e(e),maxSize:t})}function Be(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function Fe(e,t={}){const{dir:n="left"}=t;let r=e,i=0;for(let e=0;e0&&t>$e(e)-1)throw new Xe({offset:t,position:"start",size:$e(e)})}(e,t);const a=e.slice(t,n);return i&&function(e,t,n){if("number"==typeof t&&"number"==typeof n&&$e(e)!==n-t)throw new Xe({offset:n,position:"end",size:$e(e)})}(a,t,n),a}function Ke(e,t={}){const{size:n}=t;void 0!==n&&Ce(e,n);const r=Re.uK(e,t);return Re.Dg(r,t)}function Ye(e,t={}){const{size:n}=t;let r=e;if(void 0!==n&&(Ce(r,n),r=He(r)),r.length>1||r[0]>1)throw new Ge(r);return Boolean(r[0])}function qe(e,t={}){const{size:n}=t;void 0!==n&&Ce(e,n);const r=Re.uK(e,t);return Re.Ro(r,t)}function He(e){return Fe(e,{dir:"left"})}class Ge extends Pe.C{constructor(e){super(`Bytes value \`${e}\` is not a valid boolean.`,{metaMessages:["The bytes array must contain a single byte of either a `0` or `1` value."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.InvalidBytesBooleanError"})}}Pe.C;class We extends Pe.C{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeOverflowError"})}}class Xe extends Pe.C{constructor({offset:e,position:t,size:n}){super(`Slice ${"start"===t?"starting":"ending"} at offset \`${e}\` is out-of-bounds (size: \`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SliceOffsetOutOfBoundsError"})}}class Je extends Pe.C{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeExceedsPaddingSizeError"})}}function Ze(e,t={}){const{as:n=("string"==typeof e?"Hex":"Bytes")}=t,r=(0,Oe.lY)(function(e){return e instanceof Uint8Array?e:"string"==typeof e?ze(e):function(e){return e instanceof Uint8Array?e:new Uint8Array(e)}(e)}(e));return"Bytes"===n?r:Re.uK(r)}class Qe extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){const t=super.get(e);return super.has(e)&&void 0!==t&&(this.delete(e),super.set(e,t)),t}set(e,t){if(super.set(e,t),this.maxSize&&this.size>this.maxSize){const e=this.keys().next().value;e&&this.delete(e)}return this}}const et={checksum:new Qe(8192)}.checksum,tt=/^0x[a-fA-F0-9]{40}$/;function nt(e,t={}){const{strict:n=!0}=t;if(!tt.test(e))throw new at({address:e,cause:new st});if(n){if(e.toLowerCase()===e)return;if(rt(e)!==e)throw new at({address:e,cause:new ot})}}function rt(e){if(et.has(e))return et.get(e);nt(e,{strict:!1});const t=e.substring(2).toLowerCase(),n=Ze(function(e,t={}){const{size:n}=t,r=Ue.encode(e);return"number"==typeof n?(Ce(r,n),function(e,t){return function(e,t={}){const{dir:n,size:r=32}=t;if(0===r)return e;if(e.length>r)throw new Je({size:e.length,targetSize:r,type:"Bytes"});const i=new Uint8Array(r);for(let t=0;t>1]>>4>=8&&r[e]&&(r[e]=r[e].toUpperCase()),(15&n[e>>1])>=8&&r[e+1]&&(r[e+1]=r[e+1].toUpperCase());const i=`0x${r.join("")}`;return et.set(e,i),i}function it(e,t={}){const{strict:n=!0}=t??{};try{return nt(e,{strict:n}),!0}catch{return!1}}class at extends Pe.C{constructor({address:e,cause:t}){super(`Address "${e}" is invalid.`,{cause:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}}class st extends Pe.C{constructor(){super("Address is not a 20 byte (40 hexadecimal character) value."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidInputError"})}}class ot extends Pe.C{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}}function ut(e){let t=!0,n="",r=0,i="",a=!1;for(let s=0;sct(Object.values(e)[n],t)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(r)?"number"===n||"bigint"===n:/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(r)?"string"===n||e instanceof Uint8Array:!!/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(r)&&Array.isArray(e)&&e.every(e=>ct(e,{...t,type:r.replace(/(\[[0-9]{0,}\])$/,"")}))}}function lt(e,t,n){for(const r in e){const i=e[r],a=t[r];if("tuple"===i.type&&"tuple"===a.type&&"components"in i&&"components"in a)return lt(i.components,a.components,n[r]);const s=[i.type,a.type];if((()=>!(!s.includes("address")||!s.includes("bytes20"))||(s.includes("address")&&s.includes("string")||!(!s.includes("address")||!s.includes("bytes")))&&it(n[r],{strict:!1}))())return s}}function ft(e,t={}){const{prepare:n=!0}=t,r=Array.isArray(e)||"string"==typeof e?function(e){let t;if("string"==typeof e)t=(0,Ae.uT)(e);else{const n=(0,Ie.e)(e),r=e.length;for(let i=0;ia?"function"===e.type||"error"===e.type?ht(e)===Re.di(t,0,4):"event"===e.type&&pt(e)===t:"name"in e&&e.name===t);if(0===s.length)throw new yt({name:t});if(1===s.length)return{...s[0],...i?{hash:pt(s[0])}:{}};let o;for(const e of s){if(!("inputs"in e))continue;if(!r||0===r.length){if(!e.inputs||0===e.inputs.length)return{...e,...i?{hash:pt(e)}:{}};continue}if(!e.inputs)continue;if(0===e.inputs.length)continue;if(e.inputs.length!==r.length)continue;const t=r.every((t,n)=>{const r="inputs"in e&&e.inputs[n];return!!r&&ct(t,r)});if(t){if(o&&"inputs"in o&&o.inputs){const t=lt(e.inputs,o.inputs,r);if(t)throw new mt({abiItem:e,type:t[0]},{abiItem:o,type:t[1]})}o=e}}const u=(()=>{if(o)return o;const[e,...t]=s;return{...e,overloads:t}})();if(!u)throw new yt({name:t});return{...u,...i?{hash:pt(u)}:{}}}function ht(...e){const t=(()=>{if(Array.isArray(e[0])){const[t,n]=e;return dt(t,n)}return e[0]})();return Re.di(pt(t),0,4)}function pt(...e){const t=(()=>{if(Array.isArray(e[0])){const[t,n]=e;return dt(t,n)}return e[0]})();return"string"!=typeof t&&"hash"in t&&t.hash?t.hash:Ze(Re.sH(function(...e){const t=(()=>{if(Array.isArray(e[0])){const[t,n]=e;return dt(t,n)}return e[0]})();return ut("string"==typeof t?t:Ne.B(t))}(t)))}class mt extends Pe.C{constructor(e,t){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${e.type}\` in \`${ut(Ne.B(e.abiItem))}\`, and`,`\`${t.type}\` in \`${ut(Ne.B(t.abiItem))}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.AmbiguityError"})}}class yt extends Pe.C{constructor({name:e,data:t,type:n="item"}){super(`ABI ${n}${e?` with name "${e}"`:t?` with data "${t}"`:""} not found.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.NotFoundError"})}}Pe.C;var bt=n(17230);var gt=n(32061);const vt=/^(.*)\[([0-9]*)\]$/,wt=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,_t=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,St=2n**256n-1n;function Et(e,t,n){const{checksumAddress:r,staticPosition:i}=n,a=Mt(t.type);if(a){const[n,s]=a;return function(e,t,n){const{checksumAddress:r,length:i,staticPosition:a}=n;if(!i){const n=a+qe(e.readBytes(32)),i=n+32;e.setPosition(n);const s=qe(e.readBytes(32)),o=It(t);let u=0;const c=[];for(let n=0;n!e),s=a?[]:{};let o=0;if(It(t)){const n=i+qe(e.readBytes(kt));for(let i=0;i48?Ke(i,{signed:n}):qe(i,{signed:n}),32]}(e,t);if("string"===t.type)return function(e,{staticPosition:t}){const n=t+qe(e.readBytes(32));e.setPosition(n);const r=qe(e.readBytes(32));if(0===r)return e.setPosition(t+32),["",32];const i=function(e,t={}){const{size:n}=t;let r=e;return void 0!==n&&(Ce(r,n),r=Fe(r,{dir:"right"})),De.decode(r)}(He(e.readBytes(r,32)));return e.setPosition(t+32),[i,32]}(e,{staticPosition:i});throw new $t(t.type)}const kt=32;function xt({checksumAddress:e=!1,parameter:t,value:n}){const r=t,i=Mt(r.type);if(i){const[t,a]=i;return function(e,t){const{checksumAddress:n,length:r,parameter:i}=t,a=null===r;if(!Array.isArray(e))throw new zt(e);if(!a&&e.length!==r)throw new jt({expectedLength:r,givenLength:e.length,type:`${i.type}[${r}]`});let s=!1;const o=[];for(let t=0;t0?Re.xW(t,e):t}}if(s)return{dynamic:!0,encoded:e}}return{dynamic:!1,encoded:Re.xW(...o.map(({encoded:e})=>e))}}(n,{checksumAddress:e,length:t,parameter:{...r,type:a}})}if("tuple"===r.type)return function(e,t){const{checksumAddress:n,parameter:r}=t;let i=!1;const a=[];for(let t=0;te))}}(n,{checksumAddress:e,parameter:r});if("address"===r.type)return function(e,t){const{checksum:n=!1}=t;return nt(e,{strict:n}),{dynamic:!1,encoded:Re.Ho(e.toLowerCase())}}(n,{checksum:e});if("bool"===r.type)return function(e){if("boolean"!=typeof e)throw new Pe.C(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:Re.Ho(Re.xb(e))}}(n);if(r.type.startsWith("uint")||r.type.startsWith("int")){const e=r.type.startsWith("int"),[,,t="256"]=_t.exec(r.type)??[];return function(e,{signed:t,size:n}){if("number"==typeof n){const r=2n**(BigInt(n)-(t?1n:0n))-1n,i=t?-r-1n:0n;if(e>r||e=this.recursiveReadLimit)throw new Ot({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new Pt({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new Nt({offset:e});const t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new Nt({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const n=t??this.position;return this.assertPosition(n+e-1),this.bytes.subarray(n,n+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,255&e),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const n=this.inspectBytes(e);return this.position+=t??e,n},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};class Nt extends Pe.C{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.NegativeOffsetError"})}}class Pt extends Pe.C{constructor({length:e,position:t}){super(`Position \`${t}\` is out of bounds (\`0 < position < ${e}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.PositionOutOfBoundsError"})}}class Ot extends Pe.C{constructor({count:e,limit:t}){super(`Recursive read limit of \`${t}\` exceeded (recursive read count: \`${e}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.RecursiveReadLimitExceededError"})}}function Rt(e,t,n){const{checksumAddress:r=!1}=n??{};if(e.length!==t.length)throw new Ut({expectedLength:e.length,givenLength:t.length});const i=function({checksumAddress:e,parameters:t,values:n}){const r=[];for(let i=0;i"constructor"===e.type);if(!t)throw new yt({name:"constructor"});return t}function Kt(...e){const[t,n=[]]=(()=>{if(Array.isArray(e[0])){const[t,n,r]=e;return[qt(t,n,{args:r}),r]}const[t,n]=e;return[t,n]})(),{overloads:r}=t,i=r?qt([t,...r],t.name,{args:n}):t,a=ht(i),s=n.length>0?Rt(i.inputs,n):void 0;return s?Re.xW(a,s):a}function Yt(e,t={}){return ft(e,t)}function qt(e,t,n){const r=dt(e,t,n);if("function"!==r.type)throw new yt({name:t,type:"function"});return r}var Ht=n(81689);var Gt=n(12769),Wt=n(38149);const Xt="0x6492649264926492649264926492649264926492649264926492649264926492";class Jt extends Pe.C{constructor(e){super(`Value \`${e}\` is an invalid ERC-6492 wrapped signature.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc6492.InvalidWrappedSignatureError"})}}function Zt(e,t={}){const{recovered:n}=t;if(void 0===e.r)throw new nn({signature:e});if(void 0===e.s)throw new nn({signature:e});if(n&&void 0===e.yParity)throw new nn({signature:e});if(e.r<0n||e.r>St)throw new rn({value:e.r});if(e.s<0n||e.s>St)throw new an({value:e.s});if("number"==typeof e.yParity&&0!==e.yParity&&1!==e.yParity)throw new sn({value:e.yParity})}function Qt(e){if(130!==e.length&&132!==e.length)throw new tn({signature:e});const t=BigInt(Re.di(e,0,32)),n=BigInt(Re.di(e,32,64)),r=(()=>{const t=Number(`0x${e.slice(130)}`);if(!Number.isNaN(t))try{return en(t)}catch{throw new sn({value:t})}})();return void 0===r?{r:t,s:n}:{r:t,s:n,yParity:r}}function en(e){if(0===e||27===e)return 0;if(1===e||28===e)return 1;if(e>=35)return e%2==0?1:0;throw new on({value:e})}class tn extends Pe.C{constructor({signature:e}){super(`Value \`${e}\` is an invalid signature size.`,{metaMessages:["Expected: 64 bytes or 65 bytes.",`Received ${Re.Ej(Re.HT(e))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSerializedSizeError"})}}class nn extends Pe.C{constructor({signature:e}){super(`Signature \`${je.A(e)}\` is missing either an \`r\`, \`s\`, or \`yParity\` property.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.MissingPropertiesError"})}}class rn extends Pe.C{constructor({value:e}){super(`Value \`${e}\` is an invalid r value. r must be a positive integer less than 2^256.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidRError"})}}class an extends Pe.C{constructor({value:e}){super(`Value \`${e}\` is an invalid s value. s must be a positive integer less than 2^256.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSError"})}}class sn extends Pe.C{constructor({value:e}){super(`Value \`${e}\` is an invalid y-parity value. Y-parity must be 0 or 1.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidYParityError"})}}class on extends Pe.C{constructor({value:e}){super(`Value \`${e}\` is an invalid v value. v must be 27, 28 or >=35.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidVError"})}}function un(e,t={}){return"string"==typeof e.chainId?function(e){const{address:t,chainId:n,nonce:r}=e,i=function(e){if(void 0!==e.r&&void 0!==e.s)return function(e){const t="string"==typeof e?Qt(e):e instanceof Uint8Array?function(e){return Qt(Re.uK(e))}(e):"string"==typeof e.r?function(e){const t=(()=>{const t=e.v?Number(e.v):void 0;let n=e.yParity?Number(e.yParity):void 0;if("number"==typeof t&&"number"!=typeof n&&(n=en(t)),"number"!=typeof n)throw new sn({value:e.yParity});return n})();return{r:BigInt(e.r),s:BigInt(e.s),yParity:t}}(e):e.v?function(e){return{r:e.r,s:e.s,yParity:en(e.v)}}(e):{r:e.r,s:e.s,...void 0!==e.yParity?{yParity:e.yParity}:{}};return Zt(t),t}(e)}(e);return{address:t,chainId:Number(n),nonce:BigInt(r),...i}}(e):{...e,...t.signature}}const cn=Bt("(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data");function ln(e){if("string"==typeof e){if("0x8010801080108010801080108010801080108010801080108010801080108010"!==Re.di(e,-32))throw new dn(e)}else Zt(e.authorization)}function fn(e){ln(e);const t=Re.Ro(Re.di(e,-64,-32)),n=Re.di(e,-t-64,-64),r=Re.di(e,0,-t-64),[i,a,s]=function(e,t,n={}){const{as:r="Array",checksumAddress:i=!1}=n,a="string"==typeof t?ze(t):t,s=function(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(At);return n.bytes=e,n.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}(a);if(0===$e(a)&&e.length>0)throw new Lt;if($e(a)&&$e(a)<32)throw new Ft({data:"string"==typeof t?t:Re.uK(t),parameters:e,size:$e(a)});let o=0;const u="Array"===r?[]:{};for(let t=0;t{const e=t.signature;return(0,b.q)(e)?e:"object"==typeof e&&"r"in e&&"s"in e?(0,gn.h)(e):(0,c.My)(e)})();try{return function(e){try{return ln(e),!0}catch{return!1}}(l)?await async function(e,t){const{address:n,blockNumber:r,blockTag:a,hash:o,multicallAddress:u}=t,{authorization:l,data:d,signature:h,to:m}=fn(t.signature);if(await ae(e,{address:n,blockNumber:r,blockTag:a})===(0,p.aP)(["0xef0100",l.address]))return await async function(e,t){const{address:n,blockNumber:r,blockTag:a,hash:s,signature:o}=t;if((await(0,E.T)(e,k.J,"readContract")({address:n,abi:i.UW,args:[s,o],blockNumber:r,blockTag:a,functionName:"isValidSignature"}).catch(e=>{if(e instanceof f.bG)throw new wn;throw e})).startsWith("0x1626ba7e"))return!0;throw new wn}(e,{address:n,blockNumber:r,blockTag:a,hash:o,signature:h});const y={address:l.address,chainId:Number(l.chainId),nonce:Number(l.nonce),r:(0,c.cK)(l.r,{size:32}),s:(0,c.cK)(l.s,{size:32}),yParity:l.yParity},b=await async function({address:e,authorization:t,signature:n}){return(0,mn.h)((0,pn.b)(e),await(0,yn.g)({authorization:t,signature:n}))}({address:n,authorization:y});if(!b)throw new wn;const g=await(0,E.T)(e,k.J,"readContract")({...u?{address:u}:{code:be.Ez},authorizationList:[y],abi:i.v2,blockNumber:r,blockTag:"pending",functionName:"aggregate3",args:[[...d?[{allowFailure:!0,target:m??n,callData:d}]:[],{allowFailure:!0,target:n,callData:(0,s.p)({abi:i.UW,functionName:"isValidSignature",args:[o,h]})}]]}),v=g[g.length-1]?.returnData;if(v?.startsWith("0x1626ba7e"))return!0;throw new wn}(e,{...t,multicallAddress:u,signature:l}):await async function(e,t){const{address:n,factory:r,factoryData:a,hash:o,signature:u,verifierAddress:c,...l}=t,d=await(async()=>r||a?function(e){try{return function(e){if(Re.di(e,-32)!==Xt)throw new Jt(e)}(e),!0}catch{return!1}}(u)?u:function(e){const{data:t,signature:n,to:r}=e;return Re.xW(Rt(Bt("address, bytes, bytes"),[r,t,n]),Xt)}({data:a,signature:u,to:r}):u)(),h=c?{to:c,data:(0,s.p)({abi:i.E5,functionName:"isValidSig",args:[n,o,d]}),...l}:{data:(0,hn.m)({abi:i.E5,args:[n,o,d],bytecode:be.fT}),...l},{data:p}=await(0,E.T)(e,j.T,"call")(h).catch(e=>{if(e instanceof f.zX)throw new wn;throw e});if((0,re.Nx)(p??"0x0"))return!0;throw new wn}(e,{...t,verifierAddress:o,signature:l})}catch(e){try{if((0,mn.h)((0,pn.b)(n),await(0,bn.x)({hash:a,signature:l})))return!0}catch{}if(e instanceof wn)return!1;throw e}}class wn extends Error{}var _n=n(47226),Sn=n(18320),En=n(78341),kn=n(77156),xn=n(36093),Tn=n(46644),Mn=n(1060),In=n(73418),An=n(60936),Nn=n(59398);const Pn=/^(?:(?[a-zA-Z][a-zA-Z0-9+-.]*):\/\/)?(?[a-zA-Z0-9+-.]*(?::[0-9]{1,5})?) (?:wants you to sign in with your Ethereum account:\n)(?
0x[a-fA-F0-9]{40})\n\n(?:(?.*)\n\n)?/,On=/(?:URI: (?.+))\n(?:Version: (?.+))\n(?:Chain ID: (?\d+))\n(?:Nonce: (?[a-zA-Z0-9]+))\n(?:Issued At: (?.+))(?:\nExpiration Time: (?.+))?(?:\nNot Before: (?.+))?(?:\nRequest ID: (?.+))?/;var Rn=n(462);var Cn=n(92359),Bn=n(71357),Fn=n(35346);function Ln(e){return{call:t=>(0,j.T)(e,t),createAccessList:t=>K(e,t),createBlockFilter:()=>async function(e){const t=(0,Y.g)(e,{method:"eth_newBlockFilter"}),n=await e.request({method:"eth_newBlockFilter"});return{id:n,request:t(n),type:"block"}}(e),createContractEventFilter:t=>(0,q.X)(e,t),createEventFilter:t=>G(e,t),createPendingTransactionFilter:()=>W(e),estimateContractGas:t=>(0,X.W)(e,t),estimateGas:t=>(0,Z.Q)(e,t),getBalance:t=>async function(e,{address:t,blockNumber:n,blockTag:r=e.experimental_blockTag??"latest"}){const i="bigint"==typeof n?(0,c.cK)(n):void 0,a=await e.request({method:"eth_getBalance",params:[t,i||r]});return BigInt(a)}(e,t),getBlobBaseFee:()=>async function(e){const t=await e.request({method:"eth_blobBaseFee"});return BigInt(t)}(e),getBlock:t=>(0,te.g)(e,t),getBlockNumber:t=>(0,ne.G)(e,t),getBlockTransactionCount:t=>async function(e,{blockHash:t,blockNumber:n,blockTag:r="latest"}={}){const i=void 0!==n?(0,c.cK)(n):void 0;let a;return a=t?await e.request({method:"eth_getBlockTransactionCountByHash",params:[t]},{dedupe:!0}):await e.request({method:"eth_getBlockTransactionCountByNumber",params:[i||r]},{dedupe:Boolean(i)}),(0,re.ME)(a)}(e,t),getBytecode:t=>ae(e,t),getChainId:()=>(0,ie.T)(e),getCode:t=>ae(e,t),getContractEvents:t=>(0,se.u)(e,t),getEip712Domain:t=>async function(e,t){const{address:n,factory:r,factoryData:i}=t;try{const[t,a,s,o,u,c,l]=await(0,E.T)(e,k.J,"readContract")({abi:ue,address:n,functionName:"eip712Domain",factory:r,factoryData:i});return{domain:{name:a,version:s,chainId:Number(o),verifyingContract:u,salt:c},extensions:l,fields:t}}catch(e){const t=e;if("ContractFunctionExecutionError"===t.name&&"ContractFunctionZeroDataError"===t.cause.name)throw new oe({address:n});throw t}}(e,t),getEnsAddress:t=>async function(e,t){const{blockNumber:n,blockTag:r,coinType:l,name:f,gatewayUrls:p,strict:m}=t,{chain:y}=e,b=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!y)throw new Error("client chain not configured. universalResolverAddress is required.");return(0,o.M)({blockNumber:n,chain:y,contract:"ensUniversalResolver"})})(),g=y?.ensTlds;if(g&&!g.some(e=>f.endsWith(e)))return null;const w=null!=l?[v(f),BigInt(l)]:[v(f)];try{const t=(0,s.p)({abi:i.Rm,functionName:"addr",args:w}),o={address:b,abi:i.Ag,functionName:"resolveWithGateways",args:[(0,c.nj)(S(f)),t,p??[h.J]],blockNumber:n,blockTag:r},l=(0,E.T)(e,k.J,"readContract"),d=await l(o);if("0x"===d[0])return null;const m=(0,a.e)({abi:i.Rm,args:w,functionName:"addr",data:d[0]});return"0x"===m||"0x00"===(0,u.B)(m)?null:m}catch(e){if(m)throw e;if(d(e))return null;throw e}}(e,t),getEnsAvatar:t=>async function(e,{blockNumber:t,blockTag:n,assetGatewayUrls:r,name:i,gatewayUrls:a,strict:s,universalResolverAddress:o}){const u=await(0,E.T)(e,L,"getEnsText")({blockNumber:t,blockTag:n,key:"avatar",name:i,universalResolverAddress:o,gatewayUrls:a,strict:s});if(!u)return null;try{return await async function(e,{gatewayUrls:t,record:n}){return/eip155:/i.test(n)?async function(e,{gatewayUrls:t,record:n}){const r=function(e){let t=e;t.startsWith("did:nft:")&&(t=t.replace("did:nft:","").replace(/_/g,"/"));const[n,r,i]=t.split("/"),[a,s]=n.split(":"),[o,u]=r.split(":");if(!a||"eip155"!==a.toLowerCase())throw new T({reason:"Only EIP-155 supported"});if(!s)throw new T({reason:"Chain ID not found"});if(!u)throw new T({reason:"Contract address not found"});if(!i)throw new T({reason:"Token ID not found"});if(!o)throw new T({reason:"ERC namespace not found"});return{chainID:Number.parseInt(s,10),namespace:o.toLowerCase(),contractAddress:u,tokenID:i}}(n),i=await async function(e,{nft:t}){if("erc721"===t.namespace)return(0,k.J)(e,{address:t.contractAddress,abi:[{name:"tokenURI",type:"function",stateMutability:"view",inputs:[{name:"tokenId",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"tokenURI",args:[BigInt(t.tokenID)]});if("erc1155"===t.namespace)return(0,k.J)(e,{address:t.contractAddress,abi:[{name:"uri",type:"function",stateMutability:"view",inputs:[{name:"_id",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"uri",args:[BigInt(t.tokenID)]});throw new I({namespace:t.namespace})}(e,{nft:r}),{uri:a,isOnChain:s,isEncoded:o}=C({uri:i,gatewayUrls:t});if(s&&(a.includes("data:application/json;base64,")||a.startsWith("{"))){const e=o?atob(a.replace("data:application/json;base64,","")):a;return F({uri:B(JSON.parse(e)),gatewayUrls:t})}let u=r.tokenID;return"erc1155"===r.namespace&&(u=u.replace("0x","").padStart(64,"0")),async function({gatewayUrls:e,uri:t}){try{const n=await fetch(t).then(e=>e.json());return await F({gatewayUrls:e,uri:B(n)})}catch{throw new M({uri:t})}}({gatewayUrls:t,uri:a.replace(/(?:0x)?{id}/,u)})}(e,{gatewayUrls:t,record:n}):F({uri:n,gatewayUrls:t})}(e,{record:u,gatewayUrls:r})}catch{return null}}(e,t),getEnsName:t=>async function(e,t){const{address:n,blockNumber:r,blockTag:a,coinType:s=60n,gatewayUrls:u,strict:c}=t,{chain:l}=e,f=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!l)throw new Error("client chain not configured. universalResolverAddress is required.");return(0,o.M)({blockNumber:r,chain:l,contract:"ensUniversalResolver"})})();try{const t={address:f,abi:i.oX,args:[n,s,u??[h.J]],functionName:"reverseWithGateways",blockNumber:r,blockTag:a},o=(0,E.T)(e,k.J,"readContract"),[c]=await o(t);return c||null}catch(e){if(c)throw e;if(d(e))return null;throw e}}(e,t),getEnsResolver:t=>async function(e,t){const{blockNumber:n,blockTag:r,name:i}=t,{chain:a}=e,s=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!a)throw new Error("client chain not configured. universalResolverAddress is required.");return(0,o.M)({blockNumber:n,chain:a,contract:"ensUniversalResolver"})})(),u=a?.ensTlds;if(u&&!u.some(e=>i.endsWith(e)))throw new Error(`${i} is not a valid ENS TLD (${u?.join(", ")}) for chain "${a.name}" (id: ${a.id}).`);const[l]=await(0,E.T)(e,k.J,"readContract")({address:s,abi:[{inputs:[{type:"bytes"}],name:"findResolver",outputs:[{type:"address"},{type:"bytes32"},{type:"uint256"}],stateMutability:"view",type:"function"}],functionName:"findResolver",args:[(0,c.nj)(S(i))],blockNumber:n,blockTag:r});return l}(e,t),getEnsText:t=>L(e,t),getFeeHistory:t=>async function(e,{blockCount:t,blockNumber:n,blockTag:r="latest",rewardPercentiles:i}){const a="bigint"==typeof n?(0,c.cK)(n):void 0;return{baseFeePerGas:(s=await e.request({method:"eth_feeHistory",params:[(0,c.cK)(t),a||r,i]},{dedupe:Boolean(a)})).baseFeePerGas.map(e=>BigInt(e)),gasUsedRatio:s.gasUsedRatio,oldestBlock:BigInt(s.oldestBlock),reward:s.reward?.map(e=>e.map(e=>BigInt(e)))};var s}(e,t),estimateFeesPerGas:t=>(0,J._)(e,t),getFilterChanges:t=>(0,ce.I)(e,t),getFilterLogs:e=>async function(e,{filter:t}){const n=t.strict??!1,r=(await t.request({method:"eth_getFilterLogs",params:[t.id]})).map(e=>(0,fe.e)(e));return t.abi?(0,le.p)({abi:t.abi,logs:r,strict:n}):r}(0,e),getGasPrice:()=>(0,de.L)(e),getLogs:t=>(0,he.a)(e,t),getProof:t=>async function(e,{address:t,blockNumber:n,blockTag:r,storageKeys:i}){const a=r??"latest",s=void 0!==n?(0,c.cK)(n):void 0;return o=await e.request({method:"eth_getProof",params:[t,i,s||a]}),{...o,balance:o.balance?BigInt(o.balance):void 0,nonce:o.nonce?(0,re.ME)(o.nonce):void 0,storageProof:o.storageProof?(u=o.storageProof,u.map(e=>({...e,value:BigInt(e.value)}))):void 0};var o,u}(e,t),estimateMaxPriorityFeePerGas:t=>(0,Q.b)(e,t),fillTransaction:t=>(0,ee.a)(e,t),getStorageAt:t=>async function(e,{address:t,blockNumber:n,blockTag:r="latest",slot:i}){const a=void 0!==n?(0,c.cK)(n):void 0;return await e.request({method:"eth_getStorageAt",params:[t,i,a||r]})}(e,t),getTransaction:t=>(0,pe.x)(e,t),getTransactionConfirmations:t=>async function(e,{hash:t,transactionReceipt:n}){const[r,i]=await Promise.all([(0,E.T)(e,ne.G,"getBlockNumber")({}),t?(0,E.T)(e,pe.x,"getTransaction")({hash:t}):void 0]),a=n?.blockNumber||i?.blockNumber;return a?r-a+1n:0n}(e,t),getTransactionCount:t=>(0,me.y)(e,t),getTransactionReceipt:t=>(0,ye.h)(e,t),multicall:t=>async function(e,t){const{account:n,authorizationList:r,allowFailure:u=!0,blockNumber:c,blockOverrides:d,blockTag:h,stateOverride:p}=t,m=t.contracts,{batchSize:y=t.batchSize??1024,deployless:b=t.deployless??!1}="object"==typeof e.batch?.multicall?e.batch.multicall:{},g=(()=>{if(t.multicallAddress)return t.multicallAddress;if(b)return null;if(e.chain)return(0,o.M)({blockNumber:c,chain:e.chain,contract:"multicall3"});throw new Error("client chain not configured. multicallAddress is required.")})(),v=[[]];let w=0,_=0;for(let e=0;e0&&_>y&&v[w].length>0&&(w++,_=(e.length-2)/2,v[w]=[]),v[w]=[...v[w],{allowFailure:!0,callData:e,target:r}]}catch(e){const s=(0,ve.j)(e,{abi:t,address:r,args:i,docsPath:"/docs/contract/multicall",functionName:a,sender:n});if(!u)throw s;v[w]=[...v[w],{allowFailure:!0,callData:"0x",target:r}]}}const S=await Promise.allSettled(v.map(t=>(0,E.T)(e,k.J,"readContract")({...null===g?{code:be.Ez}:{address:g},abi:i.v2,account:n,args:[t],authorizationList:r,blockNumber:c,blockOverrides:d,blockTag:h,functionName:"aggregate3",stateOverride:p}))),x=[];for(let e=0;e(0,Cn.ft)(e,t),readContract:t=>(0,k.J)(e,t),sendRawTransaction:t=>(0,Bn.L)(e,t),sendRawTransactionSync:t=>(0,Fn.s)(e,t),simulate:t=>xe(e,t),simulateBlocks:t=>xe(e,t),simulateCalls:t=>async function(e,t){const{blockNumber:n,blockTag:r,calls:i,stateOverrides:a,traceAssetChanges:o,traceTransfers:u,validation:c}=t,f=t.account?(0,D.J)(t.account):void 0;if(o&&!f)throw new l.C("`account` is required when `traceAssetChanges` is true");const d=f?function(...e){const[t,n]=(()=>{if(Array.isArray(e[0])){const[t,n]=e;return[Vt(t),n]}return e})(),{bytecode:r,args:i}=n;return Re.xW(r,t.inputs?.length&&i?.length?Rt(t.inputs,i):"0x")}(ft("constructor(bytes, bytes)"),{bytecode:be.LX,args:["0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033",Kt(Yt("function getBalance(address)"),[f.address])]}):void 0,h=o?await Promise.all(t.calls.map(async t=>{if(!t.data&&!t.abi)return;const{accessList:n}=await K(e,{account:f.address,...t,data:t.abi?(0,s.p)(t):t.data});return n.map(({address:e,storageKeys:t})=>t.length>0?e:null)})).then(e=>e.flat().filter(Boolean)):[],p=await xe(e,{blockNumber:n,blockTag:r,blocks:[...o?[{calls:[{data:d}],stateOverrides:a},{calls:h.map((e,t)=>({abi:[Yt("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[f.address],to:e,from:Ht.X,nonce:t})),stateOverrides:[{address:Ht.X,nonce:0}]}]:[],{calls:[...i,{}].map(e=>({...e,from:f?.address})),stateOverrides:a},...o?[{calls:[{data:d}]},{calls:h.map((e,t)=>({abi:[Yt("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[f.address],to:e,from:Ht.X,nonce:t})),stateOverrides:[{address:Ht.X,nonce:0}]},{calls:h.map((e,t)=>({to:e,abi:[Yt("function decimals() returns (uint256)")],functionName:"decimals",from:Ht.X,nonce:t})),stateOverrides:[{address:Ht.X,nonce:0}]},{calls:h.map((e,t)=>({to:e,abi:[Yt("function tokenURI(uint256) returns (string)")],functionName:"tokenURI",args:[0n],from:Ht.X,nonce:t})),stateOverrides:[{address:Ht.X,nonce:0}]},{calls:h.map((e,t)=>({to:e,abi:[Yt("function symbol() returns (string)")],functionName:"symbol",from:Ht.X,nonce:t})),stateOverrides:[{address:Ht.X,nonce:0}]}]:[]],traceTransfers:u,validation:c}),m=o?p[2]:p[0],[y,b,,g,v,w,_,S]=o?p:[],{calls:E,...k}=m,x=E.slice(0,-1)??[],T=[...y?.calls??[],...b?.calls??[]].map(e=>"success"===e.status?(0,re.uU)(e.data):null),M=[...g?.calls??[],...v?.calls??[]].map(e=>"success"===e.status?(0,re.uU)(e.data):null),I=(w?.calls??[]).map(e=>"success"===e.status?e.result:null),A=(S?.calls??[]).map(e=>"success"===e.status?e.result:null),N=(_?.calls??[]).map(e=>"success"===e.status?e.result:null),P=[];for(const[e,t]of M.entries()){const n=T[e];if("bigint"!=typeof t)continue;if("bigint"!=typeof n)continue;const r=I[e-1],i=A[e-1],a=N[e-1],s=(()=>0===e?{address:Ht.m,decimals:18,symbol:"ETH"}:{address:h[e-1],decimals:a||r?Number(r??1):void 0,symbol:i??void 0})();P.some(e=>e.token.address===s.address)||P.push({token:s,value:{pre:n,post:t,diff:t-n}})}return{assetChanges:P,block:k,results:x}}(e,t),simulateContract:t=>(0,Gt.v)(e,t),verifyHash:t=>vn(e,t),verifyMessage:t=>async function(e,{address:t,message:n,factory:r,factoryData:i,signature:a,...s}){const o=(0,_n.A)(n);return(0,E.T)(e,vn,"verifyHash")({address:t,factory:r,factoryData:i,hash:o,signature:a,...s})}(e,t),verifySiweMessage:t=>async function(e,t){const{address:n,domain:r,message:i,nonce:a,scheme:s,signature:o,time:u=new Date,...c}=t,l=function(e){const{scheme:t,statement:n,...r}=e.match(Pn)?.groups??{},{chainId:i,expirationTime:a,issuedAt:s,notBefore:o,requestId:u,...c}=e.match(On)?.groups??{},l=e.split("Resources:")[1]?.split("\n- ").slice(1);return{...r,...c,...i?{chainId:Number(i)}:{},...a?{expirationTime:new Date(a)}:{},...s?{issuedAt:new Date(s)}:{},...o?{notBefore:new Date(o)}:{},...u?{requestId:u}:{},...l?{resources:l}:{},...t?{scheme:t}:{},...n?{statement:n}:{}}}(i);if(!l.address)return!1;if(!function(e){const{address:t,domain:n,message:r,nonce:i,scheme:a,time:s=new Date}=e;if(n&&r.domain!==n)return!1;if(i&&r.nonce!==i)return!1;if(a&&r.scheme!==a)return!1;if(r.expirationTime&&s>=r.expirationTime)return!1;if(r.notBefore&&sasync function(e,t){const{address:n,factory:r,factoryData:i,signature:a,message:s,primaryType:o,types:u,domain:c,...l}=t,f=(0,Sn.Zh)({message:s,primaryType:o,types:u,domain:c});return(0,E.T)(e,vn,"verifyHash")({address:n,factory:r,factoryData:i,hash:f,signature:a,...l})}(e,t),uninstallFilter:t=>(0,Wt.Z)(e,t),waitForTransactionReceipt:t=>(0,En.n)(e,t),watchBlocks:t=>function(e,{blockTag:t=e.experimental_blockTag??"latest",emitMissed:n=!1,emitOnBegin:r=!1,onBlock:i,onError:a,includeTransactions:s,poll:o,pollingInterval:u=e.pollingInterval}){const c=void 0!==o?o:"webSocket"!==e.transport.type&&"ipc"!==e.transport.type&&("fallback"!==e.transport.type||"webSocket"!==e.transport.transports[0].config.type&&"ipc"!==e.transport.transports[0].config.type),l=s??!1;let f;return c?(()=>{const s=(0,Mn.A)(["watchBlocks",e.uid,t,n,r,l,u]);return(0,xn.lB)(s,{onBlock:i,onError:a},i=>(0,Tn.w)(async()=>{try{const r=await(0,E.T)(e,te.g,"getBlock")({blockTag:t,includeTransactions:l});if(null!==r.number&&null!=f?.number){if(r.number===f.number)return;if(r.number-f.number>1&&n)for(let t=f?.number+1n;tf.number)&&(i.onBlock(r,f),f=r)}catch(e){i.onError?.(e)}},{emitOnBegin:r,interval:u}))})():(()=>{let n=!0,s=!0,o=()=>n=!1;return(async()=>{try{r&&(0,E.T)(e,te.g,"getBlock")({blockTag:t,includeTransactions:l}).then(e=>{n&&s&&(i(e,void 0),s=!1)}).catch(a);const u=(()=>{if("fallback"===e.transport.type){const t=e.transport.transports.find(e=>"webSocket"===e.config.type||"ipc"===e.config.type);return t?t.value:e.transport}return e.transport})(),{unsubscribe:c}=await u.subscribe({params:["newHeads"],async onData(t){if(!n)return;const r=await(0,E.T)(e,te.g,"getBlock")({blockNumber:t.result?.number,includeTransactions:l}).catch(()=>{});n&&(i(r,f),s=!1,f=r)},onError(e){a?.(e)}});o=c,n||o()}catch(e){a?.(e)}})(),()=>o()})()}(e,t),watchBlockNumber:t=>(0,kn.q)(e,t),watchContractEvent:t=>(0,In.q)(e,t),watchEvent:t=>function(e,{address:t,args:n,batch:r=!0,event:i,events:a,fromBlock:s,onError:o,onLogs:u,poll:c,pollingInterval:l=e.pollingInterval,strict:f}){const d=void 0!==c?c:"bigint"==typeof s||"webSocket"!==e.transport.type&&"ipc"!==e.transport.type&&("fallback"!==e.transport.type||"webSocket"!==e.transport.transports[0].config.type&&"ipc"!==e.transport.transports[0].config.type),h=f??!1;return d?(()=>{const c=(0,Mn.A)(["watchEvent",t,n,r,e.uid,i,l,s]);return(0,xn.lB)(c,{onLogs:u,onError:o},o=>{let u,c;void 0!==s&&(u=s-1n);let f=!1;const d=(0,Tn.w)(async()=>{if(f)try{let s;if(c)s=await(0,E.T)(e,ce.I,"getFilterChanges")({filter:c});else{const r=await(0,E.T)(e,ne.G,"getBlockNumber")({});s=u&&u!==r?await(0,E.T)(e,he.a,"getLogs")({address:t,args:n,event:i,events:a,fromBlock:u+1n,toBlock:r}):[],u=r}if(0===s.length)return;if(r)o.onLogs(s);else for(const e of s)o.onLogs([e])}catch(e){c&&e instanceof An.Di&&(f=!1),o.onError?.(e)}else{try{c=await(0,E.T)(e,G,"createEventFilter")({address:t,args:n,event:i,events:a,strict:h,fromBlock:s})}catch{}f=!0}},{emitOnBegin:!0,interval:l});return async()=>{c&&await(0,E.T)(e,Wt.Z,"uninstallFilter")({filter:c}),d()}})})():(()=>{let r=!0,s=()=>r=!1;return(async()=>{try{const c=(()=>{if("fallback"===e.transport.type){const t=e.transport.transports.find(e=>"webSocket"===e.config.type||"ipc"===e.config.type);return t?t.value:e.transport}return e.transport})(),l=a??(i?[i]:void 0);let d=[];if(l){const e=l.flatMap(e=>(0,H.R)({abi:[e],eventName:e.name,args:n}));d=[e],i&&(d=d[0])}const{unsubscribe:p}=await c.subscribe({params:["logs",{address:t,topics:d}],onData(e){if(!r)return;const t=e.result;try{const{eventName:e,args:n}=(0,Nn.j)({abi:l??[],data:t.data,topics:t.topics,strict:h}),r=(0,fe.e)(t,{args:n,eventName:e});u([r])}catch(e){let n,r;if(e instanceof ge.fo||e instanceof ge.l3){if(f)return;n=e.abiItem.name,r=e.abiItem.inputs?.some(e=>!("name"in e&&e.name))}const i=(0,fe.e)(t,{args:r?[]:{},eventName:n});u([i])}},onError(e){o?.(e)}});s=p,r||s()}catch(e){o?.(e)}})(),()=>s()})()}(e,t),watchPendingTransactions:t=>function(e,{batch:t=!0,onError:n,onTransactions:r,poll:i,pollingInterval:a=e.pollingInterval}){return(void 0!==i?i:"webSocket"!==e.transport.type&&"ipc"!==e.transport.type)?(()=>{const i=(0,Mn.A)(["watchPendingTransactions",e.uid,t,a]);return(0,xn.lB)(i,{onTransactions:r,onError:n},n=>{let r;const i=(0,Tn.w)(async()=>{try{if(!r)try{return void(r=await(0,E.T)(e,W,"createPendingTransactionFilter")({}))}catch(e){throw i(),e}const a=await(0,E.T)(e,ce.I,"getFilterChanges")({filter:r});if(0===a.length)return;if(t)n.onTransactions(a);else for(const e of a)n.onTransactions([e])}catch(e){n.onError?.(e)}},{emitOnBegin:!0,interval:a});return async()=>{r&&await(0,E.T)(e,Wt.Z,"uninstallFilter")({filter:r}),i()}})})():(()=>{let t=!0,i=()=>t=!1;return(async()=>{try{const{unsubscribe:a}=await e.transport.subscribe({params:["newPendingTransactions"],onData(e){if(!t)return;const n=e.result;r([n])},onError(e){n?.(e)}});i=a,t||i()}catch(e){n?.(e)}})(),()=>i()})()}(e,t)}}function jn(e){const{key:t="public",name:n="Public Client"}=e;return(0,r.U)({...e,key:t,name:n,type:"publicClient"}).extend(Ln)}},56286(e,t,n){var r=n(39197),i=n(33213);function a(e,t){this.name=e,this.body=t,this.decoders={},this.encoders={}}t.define=function(e,t){return new a(e,t)},a.prototype._createNamed=function(e){var t;try{t=n(52346).runInThisContext("(function "+this.name+"(entity) {\n this._initNamed(entity);\n})")}catch(e){t=function(e){this._initNamed(e)}}return i(t,e),t.prototype._initNamed=function(t){e.call(this,t)},new t(this)},a.prototype._getDecoder=function(e){return e=e||"der",this.decoders.hasOwnProperty(e)||(this.decoders[e]=this._createNamed(r.decoders[e])),this.decoders[e]},a.prototype.decode=function(e,t,n){return this._getDecoder(t).decode(e,n)},a.prototype._getEncoder=function(e){return e=e||"der",this.encoders.hasOwnProperty(e)||(this.encoders[e]=this._createNamed(r.encoders[e])),this.encoders[e]},a.prototype.encode=function(e,t,n){return this._getEncoder(t).encode(e,n)}},56312(e,t,n){"use strict";n.d(t,{$m:()=>d,B8:()=>w,DI:()=>v,HN:()=>m,Ie:()=>u,Im:()=>f,L8:()=>o,Ol:()=>h,Sn:()=>s,WP:()=>y,b8:()=>l,d6:()=>p,gP:()=>b,hg:()=>g,sS:()=>c,vu:()=>a});var r=n(59329);const i=255,a=e=>e&i,s=e=>e>>8&i,o=(e,t)=>(e&i)+((t&e&i)<<8),u=o(0,0),c=e=>o(e,e),l=e=>o(e,0),f=e=>0===e,d=(0,r.XY)(2,(e,t)=>0!==(a(e)&t)),h=(0,r.XY)(2,(e,t)=>0!==(s(e)&t)),p=(0,r.XY)(2,(e,t)=>0!==(a(e)&t)&&0===(s(e)&t)),m=(0,r.XY)(2,(e,t)=>o(a(e)&~t,s(e))),y=(0,r.XY)(2,(e,t)=>o(a(e)|a(t),s(e)&s(t))),b=(0,r.XY)(2,(e,t)=>o(a(e)|a(t),s(e)|s(t))),g=(0,r.XY)(2,(e,t)=>e|t),v=e=>o(s(e),w(a(e))),w=e=>~e>>>0&i},56342(e,t,n){"use strict";n.d(t,{Ag:()=>s,E5:()=>f,Rm:()=>c,SJ:()=>u,UW:()=>l,b2:()=>i,oX:()=>o,v2:()=>r});const r=[{inputs:[{components:[{name:"target",type:"address"},{name:"allowFailure",type:"bool"},{name:"callData",type:"bytes"}],name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{name:"success",type:"bool"},{name:"returnData",type:"bytes"}],name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"}],i=[{name:"query",type:"function",stateMutability:"view",inputs:[{type:"tuple[]",name:"queries",components:[{type:"address",name:"sender"},{type:"string[]",name:"urls"},{type:"bytes",name:"data"}]}],outputs:[{type:"bool[]",name:"failures"},{type:"bytes[]",name:"responses"}]},{name:"HttpError",type:"error",inputs:[{type:"uint16",name:"status"},{type:"string",name:"message"}]}],a=[{inputs:[{name:"dns",type:"bytes"}],name:"DNSDecodingFailed",type:"error"},{inputs:[{name:"ens",type:"string"}],name:"DNSEncodingFailed",type:"error"},{inputs:[],name:"EmptyAddress",type:"error"},{inputs:[{name:"status",type:"uint16"},{name:"message",type:"string"}],name:"HttpError",type:"error"},{inputs:[],name:"InvalidBatchGatewayResponse",type:"error"},{inputs:[{name:"errorData",type:"bytes"}],name:"ResolverError",type:"error"},{inputs:[{name:"name",type:"bytes"},{name:"resolver",type:"address"}],name:"ResolverNotContract",type:"error"},{inputs:[{name:"name",type:"bytes"}],name:"ResolverNotFound",type:"error"},{inputs:[{name:"primary",type:"string"},{name:"primaryAddress",type:"bytes"}],name:"ReverseAddressMismatch",type:"error"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"}],name:"UnsupportedResolverProfile",type:"error"}],s=[...a,{name:"resolveWithGateways",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes"},{name:"data",type:"bytes"},{name:"gateways",type:"string[]"}],outputs:[{name:"",type:"bytes"},{name:"address",type:"address"}]}],o=[...a,{name:"reverseWithGateways",type:"function",stateMutability:"view",inputs:[{type:"bytes",name:"reverseName"},{type:"uint256",name:"coinType"},{type:"string[]",name:"gateways"}],outputs:[{type:"string",name:"resolvedName"},{type:"address",name:"resolver"},{type:"address",name:"reverseResolver"}]}],u=[{name:"text",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"key",type:"string"}],outputs:[{name:"",type:"string"}]}],c=[{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"}],outputs:[{name:"",type:"address"}]},{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"coinType",type:"uint256"}],outputs:[{name:"",type:"bytes"}]}],l=[{name:"isValidSignature",type:"function",stateMutability:"view",inputs:[{name:"hash",type:"bytes32"},{name:"signature",type:"bytes"}],outputs:[{name:"",type:"bytes4"}]}],f=[{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],outputs:[{type:"bool"}],stateMutability:"nonpayable",type:"function",name:"isValidSig"}]},56802(e,t,n){"use strict";n.d(t,{FG:()=>y,Gp:()=>v,OC:()=>m,Wc:()=>p,ii:()=>l,j4:()=>w,kb:()=>b,pG:()=>g,sV:()=>_});var r=n(72529),i=n(59329),a=n(46385),s=n(12717),o=n(82884),u=n(20490),c=n(64458);const l=Symbol.for("effect/Either"),f={...u.MS,[l]:{_R:e=>e},[s.FX](){return this.toJSON()},toString(){return(0,s.GP)(this.toJSON())}},d=Object.assign(Object.create(f),{_tag:"Right",_op:"Right",[r.HR](e){return p(e)&&y(e)&&r.aI(this.right,e.right)},[a.HR](){return a.kg(a.tW(this._tag))(a.tW(this.right))},toJSON(){return{_id:"Either",_tag:this._tag,right:(0,s.U2)(this.right)}}}),h=Object.assign(Object.create(f),{_tag:"Left",_op:"Left",[r.HR](e){return p(e)&&m(e)&&r.aI(this.left,e.left)},[a.HR](){return a.kg(a.tW(this._tag))(a.tW(this.left))},toJSON(){return{_id:"Either",_tag:this._tag,left:(0,s.U2)(this.left)}}}),p=e=>(0,o.i5)(e,l),m=e=>"Left"===e._tag,y=e=>"Right"===e._tag,b=e=>{const t=Object.create(h);return t.left=e,t},g=e=>{const t=Object.create(d);return t.right=e,t},v=e=>y(e)?c.dv:c.zN(e.left),w=e=>m(e)?c.dv:c.zN(e.right),_=(0,i.XY)(2,(e,t)=>c.$I(e)?b(t()):g(e.value))},57109(e,t,n){"use strict";n.d(t,{L8:()=>r,XX:()=>a,wR:()=>i});const r=(e,t)=>({label:e,startTime:t}),i=e=>e.replace(/[\s="]/g,"_"),a=e=>t=>`${i(t.label)}=${e-t.startTime}ms`},57202(e,t,n){(t=e.exports=n(59933)).Stream=t,t.Readable=t,t.Writable=n(1917),t.Duplex=n(60991),t.Transform=n(74017),t.PassThrough=n(16483)},57834(e,t,n){"use strict";n.d(t,{EH:()=>a,YE:()=>o,jF:()=>s,qD:()=>u,rj:()=>i});var r=n(2273);class i extends r.C{constructor({blockNumber:e,chain:t,contract:n}){super(`Chain "${t.name}" does not support contract "${n.name}".`,{metaMessages:["This could be due to any of the following:",...e&&n.blockCreated&&n.blockCreated>e?[`- The contract "${n.name}" was not deployed until block ${n.blockCreated} (current block ${e}).`]:[`- The chain does not have the contract "${n.name}" configured.`]],name:"ChainDoesNotSupportContract"})}}class a extends r.C{constructor({chain:e,currentChainId:t}){super(`The current chain of the wallet (id: ${t}) does not match the target chain for the transaction (id: ${e.id} – ${e.name}).`,{metaMessages:[`Current Chain ID: ${t}`,`Expected Chain ID: ${e.id} – ${e.name}`],name:"ChainMismatchError"})}}class s extends r.C{constructor(){super(["No chain was provided to the request.","Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient."].join("\n"),{name:"ChainNotFoundError"})}}class o extends r.C{constructor(){super("No chain was provided to the Client.",{name:"ClientChainNotConfiguredError"})}}class u extends r.C{constructor({chainId:e}){super("number"==typeof e?`Chain ID "${e}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}},58038(e,t,n){"use strict";n.d(t,{ME:()=>c,Nx:()=>u,Sl:()=>s,uU:()=>o});var r=n(20518),i=n(85501),a=n(8736);function s(e,{size:t}){if((0,i.E)(e)>t)throw new r.u({givenSize:(0,i.E)(e),maxSize:t})}function o(e,t={}){const{signed:n}=t;t.size&&s(e,{size:t.size});const r=BigInt(e);if(!n)return r;const i=(e.length-2)/2;return r<=(1n<<8n*BigInt(i)-1n)-1n?r:r-BigInt(`0x${"f".padStart(2*i,"f")}`)-1n}function u(e,t={}){let n=e;if(t.size&&(s(n,{size:t.size}),n=(0,a.B)(n)),"0x00"===(0,a.B)(n))return!1;if("0x01"===(0,a.B)(n))return!0;throw new r.H2(n)}function c(e,t={}){return Number(o(e,t))}},58074(e,t,n){"use strict";n.d(t,{l:()=>i});var r=n(2273);class i extends r.C{constructor({blockHash:e,blockNumber:t}){let n="Block";e&&(n=`Block at hash "${e}"`),t&&(n=`Block at number "${t}"`),super(`${n} could not be found.`,{name:"BlockNotFoundError"})}}},58159(e,t,n){"use strict";var r=n(23145),i=n(92772),a=i.assert,s=i.cachedProperty,o=i.parseBytes;function u(e,t){this.eddsa=e,"object"!=typeof t&&(t=o(t)),Array.isArray(t)&&(a(t.length===2*e.encodingLength,"Signature has invalid size"),t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),a(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof r&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}s(u,"S",function(){return this.eddsa.decodeInt(this.Sencoded())}),s(u,"R",function(){return this.eddsa.decodePoint(this.Rencoded())}),s(u,"Rencoded",function(){return this.eddsa.encodePoint(this.R())}),s(u,"Sencoded",function(){return this.eddsa.encodeInt(this.S())}),u.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},u.prototype.toHex=function(){return i.encode(this.toBytes(),"hex").toUpperCase()},e.exports=u},58359(e,t,n){"use strict";n.d(t,{L:()=>y});var r=n(72634),i=n(2273);class a extends i.C{constructor(){super("No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.",{docsPath:"/docs/clients/intro",name:"UrlRequiredError"})}}var s=n(45898),o=n(1060);function u(){return{current:0,take(){return this.current++},reset(){this.current=0}}}const c=u();var l=n(60936),f=n(75209);const d=new(n(71768).A)(8192);var h=n(50693);function p(e,t={}){return async(n,a={})=>{const{dedupe:s=!1,methods:u,retryDelay:c=150,retryCount:p=3,uid:m}={...t,...a},{method:y}=n;if(u?.exclude?.includes(y))throw new l.ab(new Error("method not supported"),{method:y});if(u?.include&&!u.include.includes(y))throw new l.ab(new Error("method not supported"),{method:y});return function(e,{enabled:t=!0,id:n}){if(!t||!n)return e();if(d.get(n))return d.get(n);const r=e().finally(()=>d.delete(n));return d.set(n,r),r}(()=>(0,h.b)(async()=>{try{return await e(n)}catch(e){const t=e;switch(t.code){case l.XU.code:throw new l.XU(t);case l.CL.code:throw new l.CL(t);case l.Gi.code:throw new l.Gi(t,{method:n.method});case l.D5.code:throw new l.D5(t);case l.bq.code:throw new l.bq(t);case l.Di.code:throw new l.Di(t);case l.hA.code:throw new l.hA(t);case l.qZ.code:throw new l.qZ(t);case l.YW.code:throw new l.YW(t);case l.ab.code:throw new l.ab(t,{method:n.method});case l.s0.code:throw new l.s0(t);case l.xQ.code:throw new l.xQ(t);case l.vx.code:throw new l.vx(t);case l.sV.code:throw new l.sV(t);case l.Sf.code:throw new l.Sf(t);case l.RV.code:throw new l.RV(t);case l.xq.code:throw new l.xq(t);case l.ch.code:throw new l.ch(t);case l.L5.code:throw new l.L5(t);case l.WT.code:throw new l.WT(t);case l.hl.code:throw new l.hl(t);case l.cg.code:throw new l.cg(t);case l.uL.code:throw new l.uL(t);case l.G1.code:throw new l.G1(t);case l.jz.code:throw new l.jz(t);case 5e3:throw new l.vx(t);default:if(e instanceof i.C)throw e;throw new l.MI(t)}}},{delay:({count:e,error:t})=>{if(t&&t instanceof r.Ci){const e=t?.headers?.get("Retry-After");if(e?.match(/\d/))return 1e3*Number.parseInt(e,10)}return(1<function(e){return"code"in e&&"number"==typeof e.code?-1===e.code||e.code===l.s0.code||e.code===l.bq.code:!(e instanceof r.Ci&&e.status)||(403===e.status||408===e.status||413===e.status||429===e.status||500===e.status||502===e.status||503===e.status||504===e.status)}(e)}),{enabled:s,id:s?(0,f.i3)(`${m}.${(0,o.A)(n)}`):void 0})}}var m=n(31763);function y(e,t={}){const{batch:n,fetchFn:i,fetchOptions:u,key:l="http",methods:f,name:d="HTTP JSON-RPC",onFetchRequest:h,onFetchResponse:y,retryDelay:b,raw:g}=t;return({chain:v,retryCount:w,timeout:_})=>{const{batchSize:S=1e3,wait:E=0}="object"==typeof n?n:{},k=t.retryCount??w,x=_??t.timeout??1e4,T=e||v?.rpcUrls.default.http[0];if(!T)throw new a;const M=function(e,t={}){return{async request(n){const{body:i,fetchFn:a=t.fetchFn??fetch,onRequest:s=t.onRequest,onResponse:u=t.onResponse,timeout:l=t.timeout??1e4}=n,f={...t.fetchOptions??{},...n.fetchOptions??{}},{headers:d,method:h,signal:p}=f;try{const t=await function(e,{errorInstance:t=new Error("timed out"),timeout:n,signal:r}){return new Promise((i,a)=>{(async()=>{let s;try{const o=new AbortController;n>0&&(s=setTimeout(()=>{r?o.abort():a(t)},n)),i(await e({signal:o?.signal||null}))}catch(e){"AbortError"===e?.name&&a(t),a(e)}finally{clearTimeout(s)}})()})}(async({signal:t})=>{const n={...f,body:Array.isArray(i)?(0,o.A)(i.map(e=>({jsonrpc:"2.0",id:e.id??c.take(),...e}))):(0,o.A)({jsonrpc:"2.0",id:i.id??c.take(),...i}),headers:{"Content-Type":"application/json",...d},method:h||"POST",signal:p||(l>0?t:null)},r=new Request(e,n),u=await(s?.(r,n))??{...n,url:e};return await a(u.url??e,u)},{errorInstance:new r.MU({body:i,url:e}),timeout:l,signal:!0});let n;if(u&&await u(t),t.headers.get("Content-Type")?.startsWith("application/json"))n=await t.json();else{n=await t.text();try{n=JSON.parse(n||"{}")}catch(e){if(t.ok)throw e;n={error:n}}}if(!t.ok)throw new r.Ci({body:i,details:(0,o.A)(n.error)||t.statusText,headers:t.headers,status:t.status,url:e});return n}catch(t){if(t instanceof r.Ci)throw t;if(t instanceof r.MU)throw t;throw new r.Ci({body:i,cause:t,url:e})}}}}(T,{fetchFn:i,fetchOptions:u,onRequest:h,onResponse:y,timeout:x});return function({key:e,methods:t,name:n,request:r,retryCount:i=3,retryDelay:a=150,timeout:s,type:o},u){return{config:{key:e,methods:t,name:n,request:r,retryCount:i,retryDelay:a,timeout:s,type:o},request:p(r,{methods:t,retryCount:i,retryDelay:a,uid:(0,m.L)()}),value:u}}({key:l,methods:f,name:d,async request({method:e,params:t}){const i={method:e,params:t},{schedule:a}=(0,s.u)({id:T,wait:E,shouldSplitBatch:e=>e.length>S,fn:e=>M.request({body:e}),sort:(e,t)=>e.id-t.id}),[{error:o,result:u}]=await(async e=>n?a(e):[await M.request({body:e})])(i);if(g)return{error:o,result:u};if(o)throw new r.J8({body:i,error:o,url:T});return u},retryCount:k,retryDelay:b,timeout:x,type:"http"},{fetchOptions:u,url:T})}}},58476(e,t,n){var r=n(23145),i=n(72258).Buffer;e.exports=function(e,t){return i.from(e.toRed(r.mont(t.modulus)).redPow(new r(t.publicExponent)).fromRed().toArray())}},58983(e){"use strict";e.exports=Object},59329(e,t,n){"use strict";n.d(t,{D_:()=>a,Fs:()=>f,MN:()=>c,Tn:()=>r,XY:()=>i,Yi:()=>l,dY:()=>s,f4:()=>u,ue:()=>o});const r=e=>"function"==typeof e,i=function(e,t){if("function"==typeof e)return function(){return e(arguments)?t.apply(this,arguments):e=>t(e,...arguments)};switch(e){case 0:case 1:throw new RangeError(`Invalid arity ${e}`);case 2:return function(e,n){return arguments.length>=2?t(e,n):function(n){return t(n,e)}};case 3:return function(e,n,r){return arguments.length>=3?t(e,n,r):function(r){return t(r,e,n)}};case 4:return function(e,n,r,i){return arguments.length>=4?t(e,n,r,i):function(i){return t(i,e,n,r)}};case 5:return function(e,n,r,i,a){return arguments.length>=5?t(e,n,r,i,a):function(a){return t(a,e,n,r,i)}};default:return function(){if(arguments.length>=e)return t.apply(this,arguments);const n=arguments;return function(e){return t(e,...n)}}}},a=e=>e,s=e=>()=>e,o=s(!0),u=s(!1),c=s(void 0),l=c;function f(e,t,n,r,i,a,s,o,u){switch(arguments.length){case 1:return e;case 2:return t(e);case 3:return n(t(e));case 4:return r(n(t(e)));case 5:return i(r(n(t(e))));case 6:return a(i(r(n(t(e)))));case 7:return s(a(i(r(n(t(e))))));case 8:return o(s(a(i(r(n(t(e)))))));case 9:return u(o(s(a(i(r(n(t(e))))))));default:{let e=arguments[0];for(let t=1;tl});var r=n(70121),i=n(41213),a=n(85501),s=n(18056),o=n(348),u=n(75672);const c="/docs/contract/decodeEventLog";function l(e){const{abi:t,data:n,strict:l,topics:d}=e,h=l??!0,[p,...m]=d;if(!p)throw new r._z({docsPath:c});const y=t.find(e=>"event"===e.type&&p===(0,s.h)((0,u.B)(e)));if(!y||!("name"in y)||"event"!==y.type)throw new r.kE(p,{docsPath:c});const{name:b,inputs:g}=y,v=g?.some(e=>!("name"in e&&e.name)),w=v?[]:{},_=g.map((e,t)=>[e,t]).filter(([e])=>"indexed"in e&&e.indexed);for(let e=0;e<_.length;e++){const[t,n]=_[e],i=m[e];if(!i)throw new r.l3({abiItem:y,param:t});w[v?n:t.name||n]=f({param:t,value:i})}const S=g.filter(e=>!("indexed"in e&&e.indexed));if(S.length>0)if(n&&"0x"!==n)try{const e=(0,o.n)(S,n);if(e)if(v)for(let t=0;t0?w:void 0}}function f({param:e,value:t}){return"string"===e.type||"bytes"===e.type||"tuple"===e.type||e.type.match(/^(.*)\[(\d+)?\]$/)?t:((0,o.n)([e],t)||[])[0]}},59688(e,t,n){"use strict";n.d(t,{PX:()=>E,hg:()=>ue,as:()=>ie,gR:()=>ce,RU:()=>Y,F_:()=>M,Co:()=>W,rA:()=>ne,Ie:()=>x,fJ:()=>T,od:()=>H,vE:()=>G,e9:()=>K,pb:()=>pe,I6:()=>he,qI:()=>se,Bq:()=>oe,Ki:()=>X,G:()=>I,FQ:()=>J,ml:()=>q,Aj:()=>P,Jq:()=>z,VY:()=>C,Im:()=>D,uH:()=>O,rv:()=>R,N6:()=>U,Ep:()=>B,fT:()=>$,t9:()=>V,I2:()=>L,yl:()=>F,AW:()=>Z,$7:()=>Q,Q6:()=>ee,Tj:()=>ae,YW:()=>_e,_7:()=>A,j9:()=>ke,us:()=>Me,Yu:()=>Oe,TS:()=>Se,og:()=>Ee,il:()=>N,Ej:()=>j,Hn:()=>Pe,rF:()=>Ae,el:()=>te,Rw:()=>re});var r=n(28062),i=n(17388),a=n(84468),s=n(72529),o=n(59329),u=n(55661),c=n(46385),l=n(75169),f=n(12717),d=n(36708),h=n(66949),p=n(82884),m=n(65668);const y="Die",b="Empty",g="Fail",v="Interrupt",w="Parallel",_="Sequential",S="effect/Cause",E=Symbol.for(S),k={[E]:{_E:e=>e},[c.HR](){return(0,o.Fs)(c.tW(S),c.kg(c.tW(fe(this))),c.PO(this))},[s.HR](e){return P(e)&&le(this,e)},pipe(){return(0,h.tT)(this,arguments)},toJSON(){switch(this._tag){case"Empty":return{_id:"Cause",_tag:this._tag};case"Die":return{_id:"Cause",_tag:this._tag,defect:(0,f.U2)(this.defect)};case"Interrupt":return{_id:"Cause",_tag:this._tag,fiberId:this.fiberId.toJSON()};case"Fail":return{_id:"Cause",_tag:this._tag,failure:(0,f.U2)(this.error)};case"Sequential":case"Parallel":return{_id:"Cause",_tag:this._tag,left:(0,f.U2)(this.left),right:(0,f.U2)(this.right)}}},toString(){return ke(this)},[f.FX](){return this.toJSON()}},x=(()=>{const e=Object.create(k);return e._tag=b,e})(),T=e=>{const t=Object.create(k);return t._tag=g,t.error=e,t},M=e=>{const t=Object.create(k);return t._tag=y,t.defect=e,t},I=e=>{const t=Object.create(k);return t._tag=v,t.fiberId=e,t},A=(e,t)=>{const n=Object.create(k);return n._tag=w,n.left=e,n.right=t,n},N=(e,t)=>{const n=Object.create(k);return n._tag=_,n.left=e,n.right=t,n},P=e=>(0,p.i5)(e,E),O=e=>e._tag===b,R=e=>e._tag===g,C=e=>e._tag===y,B=e=>e._tag===v,F=e=>e._tag===_,L=e=>e._tag===w,j=e=>Ee(e,void 0,ye),D=e=>e._tag===b||Se(e,!0,(e,t)=>{switch(t._tag){case b:return d.zN(e);case y:case g:case v:return d.zN(!1);default:return d.dv()}}),U=e=>d.Ru(H(e)),z=e=>d.Ru(W(e)),$=e=>d.Ru(J(e)),V=e=>Ee(void 0,be)(e),K=e=>i.BE(Se(e,i.Ie(),(e,t)=>t._tag===g?d.zN((0,o.Fs)(e,i.Hs(t.error))):d.dv())),Y=e=>i.BE(Se(e,i.Ie(),(e,t)=>t._tag===y?d.zN((0,o.Fs)(e,i.Hs(t.defect))):d.dv())),q=e=>Se(e,l.Ie(),(e,t)=>t._tag===v?d.zN((0,o.Fs)(e,l.WQ(t.fiberId))):d.dv()),H=e=>he(e,e=>e._tag===g?d.zN(e.error):d.dv()),G=e=>{const t=H(e);switch(t._tag){case"None":return a.pG(e);case"Some":return a.kb(t.value)}},W=e=>he(e,e=>e._tag===y?d.zN(e.defect):d.dv()),X=e=>_e(e,{onEmpty:d.zN(x),onFail:d.Tj(T),onDie:e=>d.zN(M(e)),onInterrupt:e=>d.zN(I(e)),onSequential:d.XQ(N),onParallel:d.XQ(A)}),J=e=>he(e,e=>e._tag===v?d.zN(e.fiberId):d.dv()),Z=e=>_e(e,{onEmpty:d.dv(),onFail:()=>d.dv(),onDie:e=>d.zN(M(e)),onInterrupt:()=>d.dv(),onSequential:d.XQ(N),onParallel:d.XQ(A)}),Q=e=>_e(e,{onEmpty:d.dv(),onFail:e=>d.zN(M(e)),onDie:e=>d.zN(M(e)),onInterrupt:()=>d.dv(),onSequential:d.XQ(N),onParallel:d.XQ(A)}),ee=e=>_e(e,{onEmpty:l.Ie(),onFail:e=>l.L8(T(e)),onDie:e=>l.L8(M(e)),onInterrupt:e=>l.L8(I(e)),onSequential:(e,t)=>l.qI(e,e=>l.Tj(t,t=>N(e,t))),onParallel:(e,t)=>l.qI(e,e=>l.Tj(t,t=>A(e,t)))}),te=e=>_e(e,{onEmpty:x,onFail:()=>x,onDie:M,onInterrupt:I,onSequential:N,onParallel:A}),ne=e=>_e(e,{onEmpty:x,onFail:M,onDie:M,onInterrupt:I,onSequential:N,onParallel:A}),re=(0,o.XY)(2,(e,t)=>_e(e,{onEmpty:d.zN(x),onFail:e=>d.zN(T(e)),onDie:e=>{const n=t(e);return d.Ru(n)?d.dv():d.zN(M(e))},onInterrupt:e=>d.zN(I(e)),onSequential:d.XQ(N),onParallel:d.XQ(A)})),ie=(0,o.XY)(2,(e,t)=>ae(e,()=>t)),ae=(0,o.XY)(2,(e,t)=>se(e,e=>T(t(e)))),se=(0,o.XY)(2,(e,t)=>_e(e,{onEmpty:x,onFail:e=>t(e),onDie:e=>M(e),onInterrupt:e=>I(e),onSequential:(e,t)=>N(e,t),onParallel:(e,t)=>A(e,t)})),oe=e=>se(e,o.D_),ue=(0,o.XY)(2,(e,t)=>(0,p.Tn)(t)?se(e,t):se(e,()=>t)),ce=(0,o.XY)(2,(e,t)=>t._tag===b||e===t||Se(e,!1,(e,n)=>d.zN(e||le(n,t)))),le=(e,t)=>{let n=i.of(e),r=i.of(t);for(;i.J_(n)&&i.J_(r);){const[e,t]=(0,o.Fs)(i.v4(n),Se([l.Ie(),i.Ie()],([e,t],n)=>{const[r,a]=me(n);return d.zN([(0,o.Fs)(e,l.KC(r)),(0,o.Fs)(t,i.u2(a))])})),[a,u]=(0,o.Fs)(i.v4(r),Se([l.Ie(),i.Ie()],([e,t],n)=>{const[r,a]=me(n);return d.zN([(0,o.Fs)(e,l.KC(r)),(0,o.Fs)(t,i.u2(a))])}));if(!s.aI(e,a))return!1;n=t,r=u}return!0},fe=e=>de(i.of(e),i.Ie()),de=(e,t)=>{for(;;){const[n,a]=(0,o.Fs)(e,r.TS([l.Ie(),i.Ie()],([e,t],n)=>{const[r,a]=me(n);return[(0,o.Fs)(e,l.KC(r)),(0,o.Fs)(t,i.u2(a))]})),s=l.Ej(n)>0?(0,o.Fs)(t,i.Hs(n)):t;if(i.Im(a))return i.BE(s);e=a,t=s}throw new Error((0,m.k)("Cause.flattenCauseLoop"))},he=(0,o.XY)(2,(e,t)=>{const n=[e];for(;n.length>0;){const e=n.pop(),r=t(e);switch(r._tag){case"None":switch(e._tag){case _:case w:n.push(e.right),n.push(e.left)}break;case"Some":return r}}return d.dv()}),pe=(0,o.XY)(2,(e,t)=>Ee(e,void 0,ge(t))),me=e=>{let t=e;const n=[];let r=l.Ie(),a=i.Ie();for(;void 0!==t;)switch(t._tag){case b:if(0===n.length)return[r,a];t=n.pop();break;case g:if(r=l.WQ(r,i.L8(t._tag,t.error)),0===n.length)return[r,a];t=n.pop();break;case y:if(r=l.WQ(r,i.L8(t._tag,t.defect)),0===n.length)return[r,a];t=n.pop();break;case v:if(r=l.WQ(r,i.L8(t._tag,t.fiberId)),0===n.length)return[r,a];t=n.pop();break;case _:switch(t.left._tag){case b:t=t.right;break;case _:t=N(t.left.left,N(t.left.right,t.right));break;case w:t=A(N(t.left.left,t.right),N(t.left.right,t.right));break;default:a=i.Hs(a,t.right),t=t.left}break;case w:n.push(t.right),t=t.left}throw new Error((0,m.k)("Cause.evaluateCauseLoop"))},ye={emptyCase:()=>0,failCase:()=>1,dieCase:()=>1,interruptCase:()=>1,sequentialCase:(e,t,n)=>t+n,parallelCase:(e,t,n)=>t+n},be={emptyCase:o.ue,failCase:o.f4,dieCase:o.f4,interruptCase:o.ue,sequentialCase:(e,t,n)=>t&&n,parallelCase:(e,t,n)=>t&&n},ge=e=>({emptyCase:()=>x,failCase:(e,t)=>T(t),dieCase:(e,t)=>M(t),interruptCase:(e,t)=>I(t),sequentialCase:(t,n,r)=>e(n)?e(r)?N(n,r):n:e(r)?r:x,parallelCase:(t,n,r)=>e(n)?e(r)?A(n,r):n:e(r)?r:x}),ve="SequentialCase",we="ParallelCase",_e=(0,o.XY)(2,(e,{onDie:t,onEmpty:n,onFail:r,onInterrupt:i,onParallel:a,onSequential:s})=>Ee(e,void 0,{emptyCase:()=>n,failCase:(e,t)=>r(t),dieCase:(e,n)=>t(n),interruptCase:(e,t)=>i(t),sequentialCase:(e,t,n)=>s(t,n),parallelCase:(e,t,n)=>a(t,n)})),Se=(0,o.XY)(3,(e,t,n)=>{let r=t,i=e;const a=[];for(;void 0!==i;){const e=n(r,i);switch(r=d.Ru(e)?e.value:r,i._tag){case _:case w:a.push(i.right),i=i.left;break;default:i=void 0}void 0===i&&a.length>0&&(i=a.pop())}return r}),Ee=(0,o.XY)(3,(e,t,n)=>{const r=[e],i=[];for(;r.length>0;){const e=r.pop();switch(e._tag){case b:i.push(a.pG(n.emptyCase(t)));break;case g:i.push(a.pG(n.failCase(t,e.error)));break;case y:i.push(a.pG(n.dieCase(t,e.defect)));break;case v:i.push(a.pG(n.interruptCase(t,e.fiberId)));break;case _:r.push(e.right),r.push(e.left),i.push(a.kb({_tag:ve}));break;case w:r.push(e.right),r.push(e.left),i.push(a.kb({_tag:we}))}}const s=[];for(;i.length>0;){const e=i.pop();switch(e._tag){case"Left":switch(e.left._tag){case ve:{const e=s.pop(),r=s.pop(),i=n.sequentialCase(t,e,r);s.push(i);break}case we:{const e=s.pop(),r=s.pop(),i=n.parallelCase(t,e,r);s.push(i);break}}break;case"Right":s.push(e.right)}}if(0===s.length)throw new Error("BUG: Cause.reduceWithContext - please report an issue at https://github.com/Effect-TS/effect/issues");return s.pop()}),ke=(e,t)=>V(e)?"All fibers interrupted without errors.":Oe(e).map(function(e){return!0!==t?.renderErrorCause||void 0===e.cause?e.stack:`${e.stack} {\n${xe(e.cause," ")}\n}`}).join("\n"),xe=(e,t)=>{const n=e.stack.split("\n");let r=`${t}[cause]: ${n[0]}`;for(let e=1,i=n.length;e{t in this||(this[t]=e[t])})),this.stack=Ne(`${this.name}: ${this.message}`,e instanceof Error&&e.stack?e.stack:"",this.span)}}const Me=e=>{if("string"==typeof e)return e;if("object"==typeof e&&null!==e&&e instanceof Error)return e.message;try{if((0,p.i5)(e,"toString")&&(0,p.Tn)(e.toString)&&e.toString!==Object.prototype.toString&&e.toString!==globalThis.Array.prototype.toString)return e.toString()}catch{}return(0,f.hL)(e)},Ie=/\((.*)\)/g,Ae=(0,u.V)("effect/Tracer/spanToTrace",()=>new WeakMap),Ne=(e,t,n)=>{const r=[e],i=t.startsWith(e)?t.slice(e.length).split("\n"):t.split("\n");for(let e=1;e"))}if(n){let e=n,t=0;for(;e&&"Span"===e._tag&&t<10;){const n=Ae.get(e);if("function"==typeof n){const t=n();if("string"==typeof t){const n=t.matchAll(Ie);let i=!1;for(const[,t]of n)i=!0,r.push(` at ${e.name} (${t})`);i||r.push(` at ${e.name} (${t.replace(/^at /,"")})`)}else r.push(` at ${e.name}`)}else r.push(` at ${e.name}`);e=d.Y6(e.parent),t++}}return r.join("\n")},Pe=Symbol.for("effect/SpanAnnotation"),Oe=e=>Ee(e,void 0,{emptyCase:()=>[],dieCase:(e,t)=>[new Te(t)],failCase:(e,t)=>[new Te(t)],interruptCase:()=>[],parallelCase:(e,t,n)=>[...t,...n],sequentialCase:(e,t,n)=>[...t,...n]})},59824(e){"use strict";e.exports=JSON.parse('{"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}')},59933(e,t,n){"use strict";var r=n(42649),i=n(11644);e.exports=v;var a,s=n(17777);v.ReadableState=g,n(3640).EventEmitter;var o=function(e,t){return e.listeners(t).length},u=n(850),c=n(40371).Buffer,l=(void 0!==n.g?n.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){},f=Object.create(n(1833));f.inherits=n(33213);var d=n(91153),h=void 0;h=d&&d.debuglog?d.debuglog("stream"):function(){};var p,m=n(78821),y=n(63345);f.inherits(v,u);var b=["error","close","destroy","pause","resume"];function g(e,t){e=e||{};var r=t instanceof(a=a||n(60991));this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var i=e.highWaterMark,s=e.readableHighWaterMark,o=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:r&&(s||0===s)?s:o,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(p||(p=n(47055).I),this.decoder=new p(e.encoding),this.encoding=e.encoding)}function v(e){if(a=a||n(60991),!(this instanceof v))return new v(e);this._readableState=new g(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),u.call(this)}function w(e,t,n,r,i){var a,s=e._readableState;return null===t?(s.reading=!1,function(e,t){if(!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,k(e)}}(e,s)):(i||(a=function(e,t){var n,r;return r=t,c.isBuffer(r)||r instanceof l||"string"==typeof t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk")),n}(s,t)),a?e.emit("error",a):s.objectMode||t&&t.length>0?("string"==typeof t||s.objectMode||Object.getPrototypeOf(t)===c.prototype||(t=function(e){return c.from(e)}(t)),r?s.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):_(e,s,t,!0):s.ended?e.emit("error",new Error("stream.push() after EOF")):(s.reading=!1,s.decoder&&!n?(t=s.decoder.write(t),s.objectMode||0!==t.length?_(e,s,t,!1):T(e,s)):_(e,s,t,!1))):r||(s.reading=!1)),function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=S?e=S:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function k(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(h("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?i.nextTick(x,e):x(e))}function x(e){h("emit readable"),e.emit("readable"),N(e)}function T(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(M,e,t))}function M(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;return ea.length?a.length:e;if(s===a.length?i+=a:i+=a.slice(0,e),0===(e-=s)){s===a.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=a.slice(s));break}++r}return t.length-=r,i}(e,t):function(e,t){var n=c.allocUnsafe(e),r=t.head,i=1;for(r.data.copy(n),e-=r.data.length;r=r.next;){var a=r.data,s=e>a.length?a.length:e;if(a.copy(n,n.length-e,0,s),0===(e-=s)){s===a.length?(++i,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=a.slice(s));break}++i}return t.length-=i,n}(e,t),r}(e,t.buffer,t.decoder),n);var n}function O(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,i.nextTick(R,t,e))}function R(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function C(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return h("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?O(this):k(this),null;if(0===(e=E(e,t))&&t.ended)return 0===t.length&&O(this),null;var r,i=t.needReadable;return h("need readable",i),(0===t.length||t.length-e0?P(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&O(this)),null!==r&&this.emit("data",r),r},v.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},v.prototype.pipe=function(e,t){var n=this,a=this._readableState;switch(a.pipesCount){case 0:a.pipes=e;break;case 1:a.pipes=[a.pipes,e];break;default:a.pipes.push(e)}a.pipesCount+=1,h("pipe count=%d opts=%j",a.pipesCount,t);var u=t&&!1===t.end||e===r.stdout||e===r.stderr?g:c;function c(){h("onend"),e.end()}a.endEmitted?i.nextTick(u):n.once("end",u),e.on("unpipe",function t(r,i){h("onunpipe"),r===n&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,h("cleanup"),e.removeListener("close",y),e.removeListener("finish",b),e.removeListener("drain",l),e.removeListener("error",m),e.removeListener("unpipe",t),n.removeListener("end",c),n.removeListener("end",g),n.removeListener("data",p),f=!0,!a.awaitDrain||e._writableState&&!e._writableState.needDrain||l())});var l=function(e){return function(){var t=e._readableState;h("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&o(e,"data")&&(t.flowing=!0,N(e))}}(n);e.on("drain",l);var f=!1,d=!1;function p(t){h("ondata"),d=!1,!1!==e.write(t)||d||((1===a.pipesCount&&a.pipes===e||a.pipesCount>1&&-1!==C(a.pipes,e))&&!f&&(h("false write response, pause",a.awaitDrain),a.awaitDrain++,d=!0),n.pause())}function m(t){h("onerror",t),g(),e.removeListener("error",m),0===o(e,"error")&&e.emit("error",t)}function y(){e.removeListener("finish",b),g()}function b(){h("onfinish"),e.removeListener("close",y),g()}function g(){h("unpipe"),n.unpipe(e)}return n.on("data",p),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?s(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",m),e.once("close",y),e.once("finish",b),e.emit("pipe",n),a.flowing||(h("pipe resume"),n.resume()),e},v.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;aQ});var r=n(77701),i=n(54046),a=n(73989),s=n(75209),o=n(51023),u=n(3951),c=n(68616),l=n(65144),f=n(8736),d=n(58038),h=n(76329),p=n(74014),m=n(2273),y=n(60936),b=n(88924),g=n(33640),v=n(23427);const w="0x5792579257925792579257925792579257925792579257925792579257925792",_=(0,s.cK)(0,{size:32});async function S(e,t){const{account:n=e.account,capabilities:r,chain:i=e.chain,experimental_fallback:a,experimental_fallbackDelay:o=32,forceAtomic:c=!1,id:l,version:f="2.0.0"}=t,h=n?(0,p.J)(n):null,S=t.calls.map(e=>{const t=e,n=t.abi?(0,b.p)({abi:t.abi,functionName:t.functionName,args:t.args}):t.data;return{data:t.dataSuffix&&n?(0,g.xW)([n,t.dataSuffix]):n,to:t.to,value:t.value?(0,s.cK)(t.value):void 0}});try{const t=await e.request({method:"wallet_sendCalls",params:[{atomicRequired:c,calls:S,capabilities:r,chainId:(0,s.cK)(i.id),from:h?.address,id:l,version:f}]},{retryCount:0});return"string"==typeof t?{id:t}:t}catch(n){const l=n;if(a&&("MethodNotFoundRpcError"===l.name||"MethodNotSupportedRpcError"===l.name||"UnknownRpcError"===l.name||l.details.toLowerCase().includes("does not exist / is not available")||l.details.toLowerCase().includes("missing or invalid. request()")||l.details.toLowerCase().includes("did not match any variant of untagged enum")||l.details.toLowerCase().includes("account upgraded to unsupported contract")||l.details.toLowerCase().includes("eip-7702 not supported")||l.details.toLowerCase().includes("unsupported wc_ method")||l.details.toLowerCase().includes("feature toggled misconfigured")||l.details.toLowerCase().includes("jsonrpcengine: response has no error or result for request"))){if(r&&Object.values(r).some(e=>!e.optional)){const e="non-optional `capabilities` are not supported on fallback to `eth_sendTransaction`.";throw new y.L5(new m.C(e,{details:e}))}if(c&&S.length>1){const e="`forceAtomic` is not supported on fallback to `eth_sendTransaction`.";throw new y.jz(new m.C(e,{details:e}))}const t=[];for(const n of S){const r=(0,u.v)(e,{account:h,chain:i,data:n.data,to:n.to,value:n.value?(0,d.uU)(n.value):void 0});t.push(r),o>0&&await new Promise(e=>setTimeout(e,o))}const n=await Promise.allSettled(t);if(n.every(e=>"rejected"===e.status))throw n[0].reason;const a=n.map(e=>"fulfilled"===e.status?e.value:_);return{id:(0,g.xW)([...a,(0,s.cK)(i.id,{size:32}),w])}}throw(0,v.p)(n,{...t,account:h,chain:t.chain})}}async function E(e,t){const{atomic:n=!1,chainId:r,receipts:i,version:a="2.0.0",...s}=await async function(t){if(t.endsWith(w.slice(2))){const n=(0,f.B)((0,l.iN)(t,-64,-32)),r=(0,l.iN)(t,0,-64).slice(2).match(/.{1,64}/g),i=await Promise.all(r.map(t=>_.slice(2)!==t?e.request({method:"eth_getTransactionReceipt",params:[`0x${t}`]},{dedupe:!0}):void 0)),a=i.some(e=>null===e)?100:i.every(e=>"0x1"===e?.status)?200:i.every(e=>"0x0"===e?.status)?500:600;return{atomic:!1,chainId:(0,d.ME)(n),receipts:i.filter(Boolean),status:a,version:"2.0.0"}}return e.request({method:"wallet_getCallsStatus",params:[t]})}(t.id),[o,u]=(()=>{const e=s.status;return e>=100&&e<200?["pending",e]:e>=200&&e<300?["success",e]:e>=300&&e<700?["failure",e]:"CONFIRMED"===e?["success",200]:"PENDING"===e?["pending",100]:[void 0,e]})();return{...s,atomic:n,chainId:r?(0,d.ME)(r):void 0,receipts:i?.map(e=>({...e,blockNumber:(0,d.uU)(e.blockNumber),gasUsed:(0,d.uU)(e.gasUsed),status:h.Lj[e.status]}))??[],statusCode:u,status:o,version:a}}var k=n(15100),x=n(97668),T=n(26015),M=n(64030);async function I(e,t){const{account:n=e.account,chainId:r,nonce:i}=t;if(!n)throw new k.T({docsPath:"/docs/eip7702/prepareAuthorization"});const s=(0,p.J)(n),o=(()=>{if(t.executor)return"self"===t.executor?t.executor:(0,p.J)(t.executor)})(),u={address:t.contractAddress??t.address,chainId:r,nonce:i};return void 0===u.chainId&&(u.chainId=e.chain?.id??await(0,T.T)(e,a.T,"getChainId")({})),void 0===u.nonce&&(u.nonce=await(0,T.T)(e,M.y,"getTransactionCount")({address:s.address,blockTag:"pending"}),("self"===o||o?.address&&(0,x.h)(o.address,s.address))&&(u.nonce+=1)),u}var A=n(92359);class N extends m.C{constructor(e){super(`Call bundle failed with status: ${e.statusCode}`,{name:"BundleFailedError"}),Object.defineProperty(this,"result",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.result=e}}var P=n(36093),O=n(46644),R=n(3320),C=n(50693),B=n(1060);async function F(e,t){const{id:n,pollingInterval:r=e.pollingInterval,status:i=({statusCode:e})=>200===e||e>=300,retryCount:a=4,retryDelay:s=({count:e})=>200*(1<{const o=(0,O.w)(async()=>{const r=e=>{clearTimeout(h),o(),e(),p()};try{const o=await(0,C.b)(async()=>{const t=await(0,T.T)(e,E,"getCallsStatus")({id:n});if(u&&"failure"===t.status)throw new N(t);return t},{retryCount:a,delay:s});if(!i(o))return;r(()=>t.resolve(o))}catch(e){r(()=>t.reject(e))}},{interval:r,emitOnBegin:!0});return o});return h=o?setTimeout(()=>{p(),clearTimeout(h),d(new L({id:n}))},o):void 0,await l}class L extends m.C{constructor({id:e}){super(`Timed out while waiting for call bundle with id "${e}" to be confirmed.`,{name:"WaitForCallsStatusTimeoutError"})}}var j=n(71357),D=n(35346),U=n(85327),z=n(65696),$=n(83835),V=n(98156),K=n(77576),Y=n(71768),q=n(42169),H=n(78341);const G=new Y.A(128);async function W(e,t){const{account:n=e.account,chain:r=e.chain,accessList:i,authorizationList:s,blobs:o,data:u,gas:c,gasPrice:l,maxFeePerBlobGas:f,maxFeePerGas:d,maxPriorityFeePerGas:h,nonce:y,pollingInterval:b,throwOnReceiptRevert:g,type:w,value:_,...S}=t,E=t.timeout??Math.max(3*(r?.blockTime??0),5e3);if(void 0===n)throw new k.T({docsPath:"/docs/actions/wallet/sendTransactionSync"});const x=n?(0,p.J)(n):null;try{(0,q.c)(t);const n=await(async()=>t.to?t.to:null!==t.to&&s&&s.length>0?await(0,z.g)({authorization:s[0]}).catch(()=>{throw new m.C("`to` is required. Could not infer from `authorizationList`.")}):void 0)();if("json-rpc"===x?.type||null===x){let t;null!==r&&(t=await(0,T.T)(e,a.T,"getChainId")({}),(0,$.v)({currentChainId:t,chain:r}));const p=e.chain?.formatters?.transactionRequest?.format,m=(p||K.Bv)({...(0,V.o)(S,{format:p}),accessList:i,account:x,authorizationList:s,blobs:o,chainId:t,data:u,gas:c,gasPrice:l,maxFeePerBlobGas:f,maxFeePerGas:d,maxPriorityFeePerGas:h,nonce:y,to:n,type:w,value:_},"sendTransaction"),v=G.get(e.uid),k=v?"wallet_sendTransaction":"eth_sendTransaction",M=await(async()=>{try{return await e.request({method:k,params:[m]},{retryCount:0})}catch(t){if(!1===v)throw t;const n=t;if("InvalidInputRpcError"===n.name||"InvalidParamsRpcError"===n.name||"MethodNotFoundRpcError"===n.name||"MethodNotSupportedRpcError"===n.name)return await e.request({method:"wallet_sendTransaction",params:[m]},{retryCount:0}).then(t=>(G.set(e.uid,!0),t)).catch(t=>{const r=t;if("MethodNotFoundRpcError"===r.name||"MethodNotSupportedRpcError"===r.name)throw G.set(e.uid,!1),n;throw r});throw n}})(),I=await(0,T.T)(e,H.n,"waitForTransactionReceipt")({checkReplacement:!1,hash:M,pollingInterval:b,timeout:E});if(g&&"reverted"===I.status)throw new U.Sq({receipt:I});return I}if("local"===x?.type){const t=await(0,T.T)(e,A.ft,"prepareTransactionRequest")({account:x,accessList:i,authorizationList:s,blobs:o,chain:r,data:u,gas:c,gasPrice:l,maxFeePerBlobGas:f,maxFeePerGas:d,maxPriorityFeePerGas:h,nonce:y,nonceManager:x.nonceManager,parameters:[...A.MM,"sidecars"],type:w,value:_,...S,to:n}),a=r?.serializers?.transaction,p=await x.signTransaction(t,{serializer:a});return await(0,T.T)(e,D.s,"sendRawTransactionSync")({serializedTransaction:p,throwOnReceiptRevert:g})}if("smart"===x?.type)throw new k.Z({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"});throw new k.Z({docsPath:"/docs/actions/wallet/sendTransactionSync",type:x?.type})}catch(e){if(e instanceof k.Z)throw e;throw(0,v.p)(e,{...t,account:x,chain:t.chain||void 0})}}var X=n(83037),J=n(41584);function Z(e){return{addChain:t=>async function(e,{chain:t}){const{id:n,name:r,nativeCurrency:i,rpcUrls:a,blockExplorers:o}=t;await e.request({method:"wallet_addEthereumChain",params:[{chainId:(0,s.cK)(n),chainName:r,nativeCurrency:i,rpcUrls:a.default.http,blockExplorerUrls:o?Object.values(o).map(({url:e})=>e):void 0}]},{dedupe:!0,retryCount:0})}(e,t),deployContract:t=>function(e,t){const{abi:n,args:r,bytecode:i,...a}=t,s=(0,o.m)({abi:n,args:r,bytecode:i});return(0,u.v)(e,{...a,...a.authorizationList?{to:null}:{},data:s})}(e,t),fillTransaction:t=>(0,i.a)(e,t),getAddresses:()=>async function(e){return"local"===e.account?.type?[e.account.address]:(await e.request({method:"eth_accounts"},{dedupe:!0})).map(e=>(0,c.o)(e))}(e),getCallsStatus:t=>E(e,t),getCapabilities:t=>async function(e,t={}){const{account:n=e.account,chainId:r}=t,i=n?(0,p.J)(n):void 0,a=r?[i?.address,[(0,s.cK)(r)]]:[i?.address],o=await e.request({method:"wallet_getCapabilities",params:a}),u={};for(const[e,t]of Object.entries(o)){u[Number(e)]={};for(let[n,r]of Object.entries(t))"addSubAccount"===n&&(n="unstable_addSubAccount"),u[Number(e)][n]=r}return"number"==typeof r?u[r]:u}(e,t),getChainId:()=>(0,a.T)(e),getPermissions:()=>async function(e){return await e.request({method:"wallet_getPermissions"},{dedupe:!0})}(e),prepareAuthorization:t=>I(e,t),prepareTransactionRequest:t=>(0,A.ft)(e,t),requestAddresses:()=>async function(e){return(await e.request({method:"eth_requestAccounts"},{dedupe:!0,retryCount:0})).map(e=>(0,c.b)(e))}(e),requestPermissions:t=>async function(e,t){return e.request({method:"wallet_requestPermissions",params:[t]},{retryCount:0})}(e,t),sendCalls:t=>S(e,t),sendCallsSync:t=>async function(e,t){const{chain:n=e.chain}=t,r=t.timeout??Math.max(3*(n?.blockTime??0),5e3),i=await S(e,t);return await F(e,{...t,id:i.id,timeout:r})}(e,t),sendRawTransaction:t=>(0,j.L)(e,t),sendRawTransactionSync:t=>(0,D.s)(e,t),sendTransaction:t=>(0,u.v)(e,t),sendTransactionSync:t=>W(e,t),showCallsStatus:t=>async function(e,t){const{id:n}=t;await e.request({method:"wallet_showCallsStatus",params:[n]})}(e,t),signAuthorization:t=>async function(e,t){const{account:n=e.account}=t;if(!n)throw new k.T({docsPath:"/docs/eip7702/signAuthorization"});const r=(0,p.J)(n);if(!r.signAuthorization)throw new k.Z({docsPath:"/docs/eip7702/signAuthorization",metaMessages:["The `signAuthorization` Action does not support JSON-RPC Accounts."],type:r.type});const i=await I(e,t);return r.signAuthorization(i)}(e,t),signMessage:t=>async function(e,{account:t=e.account,message:n}){if(!t)throw new k.T({docsPath:"/docs/actions/wallet/signMessage"});const r=(0,p.J)(t);if(r.signMessage)return r.signMessage({message:n});const i="string"==typeof n?(0,s.i3)(n):n.raw instanceof Uint8Array?(0,s.nj)(n.raw):n.raw;return e.request({method:"personal_sign",params:[i,r.address]},{retryCount:0})}(e,t),signTransaction:t=>async function(e,t){const{account:n=e.account,chain:r=e.chain,...i}=t;if(!n)throw new k.T({docsPath:"/docs/actions/wallet/signTransaction"});const o=(0,p.J)(n);(0,q.c)({account:o,...t});const u=await(0,T.T)(e,a.T,"getChainId")({});null!==r&&(0,$.v)({currentChainId:u,chain:r});const c=r?.formatters||e.chain?.formatters,l=c?.transactionRequest?.format||K.Bv;return o.signTransaction?o.signTransaction({...i,chainId:u},{serializer:e.chain?.serializers?.transaction}):await e.request({method:"eth_signTransaction",params:[{...l({...i,account:o},"signTransaction"),chainId:(0,s.cK)(u),from:o.address}]},{retryCount:0})}(e,t),signTypedData:t=>async function(e,t){const{account:n=e.account,domain:r,message:i,primaryType:a}=t;if(!n)throw new k.T({docsPath:"/docs/actions/wallet/signTypedData"});const s=(0,p.J)(n),o={EIP712Domain:(0,X.H4)({domain:r}),...t.types};if((0,X.$$)({domain:r,message:i,primaryType:a,types:o}),s.signTypedData)return s.signTypedData({domain:r,message:i,primaryType:a,types:o});const u=(0,X.v8)({domain:r,message:i,primaryType:a,types:o});return e.request({method:"eth_signTypedData_v4",params:[s.address,u]},{retryCount:0})}(e,t),switchChain:t=>async function(e,{id:t}){await e.request({method:"wallet_switchEthereumChain",params:[{chainId:(0,s.cK)(t)}]},{retryCount:0})}(e,t),waitForCallsStatus:t=>F(e,t),watchAsset:t=>async function(e,t){return await e.request({method:"wallet_watchAsset",params:t},{retryCount:0})}(e,t),writeContract:t=>(0,J.E)(e,t),writeContractSync:t=>async function(e,t){return J.E.internal(e,W,"sendTransactionSync",t)}(e,t)}}function Q(e){const{key:t="wallet",name:n="Wallet Client",transport:i}=e;return(0,r.U)({...e,key:t,name:n,transport:i,type:"walletClient"}).extend(Z)}},60077(e,t,n){"use strict";n.d(t,{Q:()=>a});var r=n(14583),i=n(30766);function a(e,t="wei"){return(0,i.J)(e,r.sz[t])}},60131(e,t,n){"use strict";n.d(t,{M:()=>r});const r=()=>"3.19.14"},60911(e,t,n){"use strict";var r=n(61085).F.ERR_STREAM_PREMATURE_CLOSE;function i(){}e.exports=function e(t,n,a){if("function"==typeof n)return e(t,null,n);n||(n={}),a=function(e){var t=!1;return function(){if(!t){t=!0;for(var n=arguments.length,r=new Array(n),i=0;iu,D5:()=>l,Di:()=>d,G1:()=>N,Gi:()=>c,L5:()=>x,MI:()=>O,RV:()=>S,Sf:()=>_,WT:()=>T,XU:()=>o,YW:()=>m,ab:()=>y,bq:()=>f,cg:()=>I,ch:()=>k,hA:()=>h,hl:()=>M,jz:()=>P,qZ:()=>p,s0:()=>b,sV:()=>w,uL:()=>A,vx:()=>v,xQ:()=>g,xq:()=>E});var r=n(2273),i=n(72634);class a extends r.C{constructor(e,{code:t,docsPath:n,metaMessages:r,name:a,shortMessage:s}){super(s,{cause:e,docsPath:n,metaMessages:r||e?.metaMessages,name:a||"RpcError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=a||e.name,this.code=e instanceof i.J8?e.code:t??-1}}class s extends a{constructor(e,t){super(e,t),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=t.data}}class o extends a{constructor(e){super(e,{code:o.code,name:"ParseRpcError",shortMessage:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text."})}}Object.defineProperty(o,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700});class u extends a{constructor(e){super(e,{code:u.code,name:"InvalidRequestRpcError",shortMessage:"JSON is not a valid request object."})}}Object.defineProperty(u,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600});class c extends a{constructor(e,{method:t}={}){super(e,{code:c.code,name:"MethodNotFoundRpcError",shortMessage:`The method${t?` "${t}"`:""} does not exist / is not available.`})}}Object.defineProperty(c,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601});class l extends a{constructor(e){super(e,{code:l.code,name:"InvalidParamsRpcError",shortMessage:["Invalid parameters were provided to the RPC method.","Double check you have provided the correct parameters."].join("\n")})}}Object.defineProperty(l,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602});class f extends a{constructor(e){super(e,{code:f.code,name:"InternalRpcError",shortMessage:"An internal error was received."})}}Object.defineProperty(f,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603});class d extends a{constructor(e){super(e,{code:d.code,name:"InvalidInputRpcError",shortMessage:["Missing or invalid parameters.","Double check you have provided the correct parameters."].join("\n")})}}Object.defineProperty(d,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});class h extends a{constructor(e){super(e,{code:h.code,name:"ResourceNotFoundRpcError",shortMessage:"Requested resource not found."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ResourceNotFoundRpcError"})}}Object.defineProperty(h,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001});class p extends a{constructor(e){super(e,{code:p.code,name:"ResourceUnavailableRpcError",shortMessage:"Requested resource not available."})}}Object.defineProperty(p,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002});class m extends a{constructor(e){super(e,{code:m.code,name:"TransactionRejectedRpcError",shortMessage:"Transaction creation failed."})}}Object.defineProperty(m,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003});class y extends a{constructor(e,{method:t}={}){super(e,{code:y.code,name:"MethodNotSupportedRpcError",shortMessage:`Method${t?` "${t}"`:""} is not supported.`})}}Object.defineProperty(y,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004});class b extends a{constructor(e){super(e,{code:b.code,name:"LimitExceededRpcError",shortMessage:"Request exceeds defined limit."})}}Object.defineProperty(b,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005});class g extends a{constructor(e){super(e,{code:g.code,name:"JsonRpcVersionUnsupportedError",shortMessage:"Version of JSON-RPC protocol is not supported."})}}Object.defineProperty(g,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006});class v extends s{constructor(e){super(e,{code:v.code,name:"UserRejectedRequestError",shortMessage:"User rejected the request."})}}Object.defineProperty(v,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001});class w extends s{constructor(e){super(e,{code:w.code,name:"UnauthorizedProviderError",shortMessage:"The requested method and/or account has not been authorized by the user."})}}Object.defineProperty(w,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100});class _ extends s{constructor(e,{method:t}={}){super(e,{code:_.code,name:"UnsupportedProviderMethodError",shortMessage:`The Provider does not support the requested method${t?` " ${t}"`:""}.`})}}Object.defineProperty(_,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200});class S extends s{constructor(e){super(e,{code:S.code,name:"ProviderDisconnectedError",shortMessage:"The Provider is disconnected from all chains."})}}Object.defineProperty(S,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900});class E extends s{constructor(e){super(e,{code:E.code,name:"ChainDisconnectedError",shortMessage:"The Provider is not connected to the requested chain."})}}Object.defineProperty(E,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901});class k extends s{constructor(e){super(e,{code:k.code,name:"SwitchChainError",shortMessage:"An error occurred when attempting to switch chain."})}}Object.defineProperty(k,"code",{enumerable:!0,configurable:!0,writable:!0,value:4902});class x extends s{constructor(e){super(e,{code:x.code,name:"UnsupportedNonOptionalCapabilityError",shortMessage:"This Wallet does not support a capability that was not marked as optional."})}}Object.defineProperty(x,"code",{enumerable:!0,configurable:!0,writable:!0,value:5700});class T extends s{constructor(e){super(e,{code:T.code,name:"UnsupportedChainIdError",shortMessage:"This Wallet does not support the requested chain ID."})}}Object.defineProperty(T,"code",{enumerable:!0,configurable:!0,writable:!0,value:5710});class M extends s{constructor(e){super(e,{code:M.code,name:"DuplicateIdError",shortMessage:"There is already a bundle submitted with this ID."})}}Object.defineProperty(M,"code",{enumerable:!0,configurable:!0,writable:!0,value:5720});class I extends s{constructor(e){super(e,{code:I.code,name:"UnknownBundleIdError",shortMessage:"This bundle id is unknown / has not been submitted"})}}Object.defineProperty(I,"code",{enumerable:!0,configurable:!0,writable:!0,value:5730});class A extends s{constructor(e){super(e,{code:A.code,name:"BundleTooLargeError",shortMessage:"The call bundle is too large for the Wallet to process."})}}Object.defineProperty(A,"code",{enumerable:!0,configurable:!0,writable:!0,value:5740});class N extends s{constructor(e){super(e,{code:N.code,name:"AtomicReadyWalletRejectedUpgradeError",shortMessage:"The Wallet can support atomicity after an upgrade, but the user rejected the upgrade."})}}Object.defineProperty(N,"code",{enumerable:!0,configurable:!0,writable:!0,value:5750});class P extends s{constructor(e){super(e,{code:P.code,name:"AtomicityNotSupportedError",shortMessage:"The wallet does not support atomic execution but the request requires it."})}}Object.defineProperty(P,"code",{enumerable:!0,configurable:!0,writable:!0,value:5760});class O extends a{constructor(e){super(e,{name:"UnknownRpcError",shortMessage:"An unknown RPC error occurred."})}}},60991(e,t,n){"use strict";var r=n(11644),i=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=f;var a=Object.create(n(1833));a.inherits=n(33213);var s=n(59933),o=n(1917);a.inherits(f,s);for(var u=i(o.prototype),c=0;c0)if("string"==typeof t||o.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r)o.endEmitted?S(e,new _):M(e,o,t,!0);else if(o.ended)S(e,new v);else{if(o.destroyed)return!1;o.reading=!1,o.decoder&&!n?(t=o.decoder.write(t),o.objectMode||0!==t.length?M(e,o,t,!1):O(e,o)):M(e,o,t,!1)}else r||(o.reading=!1,O(e,o));return!o.ended&&(o.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=I?e=I:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function N(e){var t=e._readableState;a("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(a("emitReadable",t.flowing),t.emittedReadable=!0,i.nextTick(P,e))}function P(e){var t=e._readableState;a("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,L(e)}function O(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(R,e,t))}function R(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function B(e){a("readable nexttick read 0"),e.read(0)}function F(e,t){a("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),L(e),t.flowing&&!t.reading&&e.read(0)}function L(e){var t=e._readableState;for(a("flow",t.flowing);t.flowing&&null!==e.read(););}function j(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n);var n}function D(e){var t=e._readableState;a("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,i.nextTick(U,t,e))}function U(e,t){if(a("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var n=t._writableState;(!n||n.autoDestroy&&n.finished)&&t.destroy()}}function z(e,t){for(var n=0,r=e.length;n=t.highWaterMark:t.length>0)||t.ended))return a("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?D(this):N(this),null;if(0===(e=A(e,t))&&t.ended)return 0===t.length&&D(this),null;var r,i=t.needReadable;return a("need readable",i),(0===t.length||t.length-e0?j(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&D(this)),null!==r&&this.emit("data",r),r},x.prototype._read=function(e){S(this,new w("_read()"))},x.prototype.pipe=function(e,t){var n=this,r=this._readableState;switch(r.pipesCount){case 0:r.pipes=e;break;case 1:r.pipes=[r.pipes,e];break;default:r.pipes.push(e)}r.pipesCount+=1,a("pipe count=%d opts=%j",r.pipesCount,t);var o=t&&!1===t.end||e===i.stdout||e===i.stderr?m:u;function u(){a("onend"),e.end()}r.endEmitted?i.nextTick(o):n.once("end",o),e.on("unpipe",function t(i,s){a("onunpipe"),i===n&&s&&!1===s.hasUnpiped&&(s.hasUnpiped=!0,a("cleanup"),e.removeListener("close",h),e.removeListener("finish",p),e.removeListener("drain",c),e.removeListener("error",d),e.removeListener("unpipe",t),n.removeListener("end",u),n.removeListener("end",m),n.removeListener("data",f),l=!0,!r.awaitDrain||e._writableState&&!e._writableState.needDrain||c())});var c=function(e){return function(){var t=e._readableState;a("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,L(e))}}(n);e.on("drain",c);var l=!1;function f(t){a("ondata");var i=e.write(t);a("dest.write",i),!1===i&&((1===r.pipesCount&&r.pipes===e||r.pipesCount>1&&-1!==z(r.pipes,e))&&!l&&(a("false write response, pause",r.awaitDrain),r.awaitDrain++),n.pause())}function d(t){a("onerror",t),m(),e.removeListener("error",d),0===s(e,"error")&&S(e,t)}function h(){e.removeListener("finish",p),m()}function p(){a("onfinish"),e.removeListener("close",h),m()}function m(){a("unpipe"),n.unpipe(e)}return n.on("data",f),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",d),e.once("close",h),e.once("finish",p),e.emit("pipe",n),r.flowing||(a("pipe resume"),n.resume()),e},x.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a0,!1!==r.flowing&&this.resume()):"readable"===e&&(r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.flowing=!1,r.emittedReadable=!1,a("on readable",r.length,r.reading),r.length?N(this):r.reading||i.nextTick(B,this))),n},x.prototype.addListener=x.prototype.on,x.prototype.removeListener=function(e,t){var n=o.prototype.removeListener.call(this,e,t);return"readable"===e&&i.nextTick(C,this),n},x.prototype.removeAllListeners=function(e){var t=o.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||i.nextTick(C,this),t},x.prototype.resume=function(){var e=this._readableState;return e.flowing||(a("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,i.nextTick(F,e,t))}(this,e)),e.paused=!1,this},x.prototype.pause=function(){return a("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(a("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},x.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var i in e.on("end",function(){if(a("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)}),e.on("data",function(i){a("wrapped data"),n.decoder&&(i=n.decoder.write(i)),n.objectMode&&null==i||(n.objectMode||i&&i.length)&&(t.push(i)||(r=!0,e.pause()))}),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var s=0;s2?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}n("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError),n("ERR_INVALID_ARG_TYPE",function(e,t,n){var i,a,s,o,u;if("string"==typeof t&&(a="not ",t.substr(0,4)===a)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-9,n)===t}(e," argument"))s="The ".concat(e," ").concat(i," ").concat(r(t,"type"));else{var c=("number"!=typeof u&&(u=0),u+1>(o=e).length||-1===o.indexOf(".",u)?"argument":"property");s='The "'.concat(e,'" ').concat(c," ").concat(i," ").concat(r(t,"type"))}return s+". Received type ".concat(typeof n)},TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"}),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"}),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.F=t},61144(e,t,n){"use strict";n.d(t,{yH:()=>l});var r=n(83815),i=n(93775),a=n(94622),s=n(462),o=n(75209);function u(e){if(e&&0!==e.length)return e.reduce((e,{slot:t,value:n})=>{if(66!==t.length)throw new i.NV({size:t.length,targetSize:66,type:"hex"});if(66!==n.length)throw new i.NV({size:n.length,targetSize:66,type:"hex"});return e[t]=n,e},{})}function c(e){const{balance:t,nonce:n,state:r,stateDiff:i,code:s}=e,c={};if(void 0!==s&&(c.code=s),void 0!==t&&(c.balance=(0,o.cK)(t)),void 0!==n&&(c.nonce=(0,o.cK)(n)),void 0!==r&&(c.state=u(r)),void 0!==i){if(c.state)throw new a.ft;c.stateDiff=u(i)}return c}function l(e){if(!e)return;const t={};for(const{address:n,...i}of e){if(!(0,s.P)(n,{strict:!1}))throw new r.M({address:n});if(t[n])throw new a.Hi({address:n});t[n]=c(i)}return t}},61150(e,t,n){var r=n(72258).Buffer,i=n(71822);function a(e,t,n){var a=t.length,s=i(t,e._cache);return e._cache=e._cache.slice(a),e._prev=r.concat([e._prev,n?t:s]),s}t.encrypt=function(e,t,n){for(var i,s=r.allocUnsafe(0);t.length;){if(0===e._cache.length&&(e._cache=e._cipher.encryptBlock(e._prev),e._prev=r.allocUnsafe(0)),!(e._cache.length<=t.length)){s=r.concat([s,a(e,t,n)]);break}i=e._cache.length,s=r.concat([s,a(e,t.slice(0,i),n)]),t=t.slice(i)}return s}},61213(e,t,n){"use strict";var r,i=n(61085).F,a=i.ERR_MISSING_ARGS,s=i.ERR_STREAM_DESTROYED;function o(e){if(e)throw e}function u(e){e()}function c(e,t){return e.pipe(t)}e.exports=function(){for(var e=arguments.length,t=new Array(e),i=0;i0,function(e){l||(l=e),e&&d.forEach(u),a||(d.forEach(u),f(l))})});return t.reduce(c)}},61346(e,t,n){"use strict";n.d(t,{Jt:()=>f,L8:()=>c,Tc:()=>l,hZ:()=>d});var r=n(72529),i=n(59329),a=n(12717),s=n(66949);const o=Symbol.for("effect/MutableRef"),u={[o]:o,toString(){return(0,a.GP)(this.toJSON())},toJSON(){return{_id:"MutableRef",current:(0,a.U2)(this.current)}},[a.FX](){return this.toJSON()},pipe(){return(0,s.tT)(this,arguments)}},c=e=>{const t=Object.create(u);return t.current=e,t},l=i.XY(3,(e,t,n)=>!!r.aI(t,e.current)&&(e.current=n,!0)),f=e=>e.current,d=i.XY(2,(e,t)=>(e.current=t,e))},61355(e,t,n){"use strict";n.d(t,{A7:()=>a,BG:()=>s,Fo:()=>h,K0:()=>u,Oh:()=>c,RM:()=>y,jj:()=>o,k5:()=>f,lN:()=>m,lY:()=>d,uC:()=>p,vW:()=>l});var r=n(60077),i=n(2273);class a extends i.C{constructor({cause:e,message:t}={}){const n=t?.replace("execution reverted: ","")?.replace("execution reverted","");super(`Execution reverted ${n?`with reason: ${n}`:"for an unknown reason"}.`,{cause:e,name:"ExecutionRevertedError"})}}Object.defineProperty(a,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(a,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted|gas required exceeds allowance/});class s extends i.C{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${(0,r.Q)(t)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:e,name:"FeeCapTooHighError"})}}Object.defineProperty(s,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});class o extends i.C{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${(0,r.Q)(t)}`:""} gwei) cannot be lower than the block base fee.`,{cause:e,name:"FeeCapTooLowError"})}}Object.defineProperty(o,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/});class u extends i.C{constructor({cause:e,nonce:t}={}){super(`Nonce provided for the transaction ${t?`(${t}) `:""}is higher than the next one expected.`,{cause:e,name:"NonceTooHighError"})}}Object.defineProperty(u,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});class c extends i.C{constructor({cause:e,nonce:t}={}){super([`Nonce provided for the transaction ${t?`(${t}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join("\n"),{cause:e,name:"NonceTooLowError"})}}Object.defineProperty(c,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});class l extends i.C{constructor({cause:e,nonce:t}={}){super(`Nonce provided for the transaction ${t?`(${t}) `:""}exceeds the maximum allowed nonce.`,{cause:e,name:"NonceMaxValueError"})}}Object.defineProperty(l,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});class f extends i.C{constructor({cause:e}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join("\n"),{cause:e,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:"InsufficientFundsError"})}}Object.defineProperty(f,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});class d extends i.C{constructor({cause:e,gas:t}={}){super(`The amount of gas ${t?`(${t}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:e,name:"IntrinsicGasTooHighError"})}}Object.defineProperty(d,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});class h extends i.C{constructor({cause:e,gas:t}={}){super(`The amount of gas ${t?`(${t}) `:""}provided for the transaction is too low.`,{cause:e,name:"IntrinsicGasTooLowError"})}}Object.defineProperty(h,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});class p extends i.C{constructor({cause:e}){super("The transaction type is not supported for this chain.",{cause:e,name:"TransactionTypeNotSupportedError"})}}Object.defineProperty(p,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});class m extends i.C{constructor({cause:e,maxPriorityFeePerGas:t,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${t?` = ${(0,r.Q)(t)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${(0,r.Q)(n)} gwei`:""}).`].join("\n"),{cause:e,name:"TipAboveFeeCapError"})}}Object.defineProperty(m,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class y extends i.C{constructor({cause:e}){super(`An error occurred while executing: ${e?.shortMessage}`,{cause:e,name:"UnknownNodeError"})}}},61894(e){"use strict";e.exports=JSON.parse('{"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}}')},62460(e,t,n){"use strict";var r=n(91552);e.exports=Function.prototype.bind||r},62489(e,t,n){"use strict";var r=n(33213),i=n(3808),a=n(96811),s=n(72258).Buffer,o=new Array(64);function u(){this.init(),this._w=o,a.call(this,64,56)}r(u,i),u.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},u.prototype._hash=function(){var e=s.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=u},63068(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=[1,3,6,10,15,21,28,36,45,55,2,14,27,41,56,8,25,43,62,18,39,61,20,44]},63129(e,t,n){"use strict";n.d(t,{$D:()=>c,Al:()=>b,Cn:()=>h,Lj:()=>u,MM:()=>y,N5:()=>l,R2:()=>f,y:()=>d});var r=n(59329),i=n(89921),a=n(28876),s=n(4909);const o=i.whK,u=i.xah,c=i.DxM,l=i.PuW,f=i.VEq,d=i.OM4,h=i._$,p=i.zg6,m=(i.HTn,(0,r.Fs)(a.pH,s.zQ(e=>e.ordinal))),y=s.MM(m),b=e=>{switch(e){case"All":return o;case"Debug":return d;case"Error":return c;case"Fatal":return u;case"Info":return f;case"Trace":return h;case"None":return p;case"Warning":return l}}},63152(e,t,n){const r=new(0,n(24554).ec)("secp256k1"),i=r.curve,a=i.n.constructor;function s(e){const t=e[0];switch(t){case 2:case 3:return 33!==e.length?null:function(e,t){let n=new a(t);if(n.cmp(i.p)>=0)return null;n=n.toRed(i.red);let s=n.redSqr().redIMul(n).redIAdd(i.b).redSqrt();3===e!==s.isOdd()&&(s=s.redNeg());const o=n.redSqr().redIMul(n);return s.redSqr().redISub(o.redIAdd(i.b)).isZero()?r.keyPair({pub:{x:n,y:s}}):null}(t,e.subarray(1,33));case 4:case 6:case 7:return 65!==e.length?null:function(e,t,n){let s=new a(t),o=new a(n);if(s.cmp(i.p)>=0||o.cmp(i.p)>=0)return null;if(s=s.toRed(i.red),o=o.toRed(i.red),(6===e||7===e)&&o.isOdd()!==(7===e))return null;const u=s.redSqr().redIMul(s);return o.redSqr().redISub(u.redIAdd(i.b)).isZero()?r.keyPair({pub:{x:s,y:o}}):null}(t,e.subarray(1,33),e.subarray(33,65));default:return null}}function o(e,t){const n=t.encode(null,33===e.length);for(let t=0;t0,privateKeyVerify(e){const t=new a(e);return t.cmp(i.n)<0&&!t.isZero()?0:1},privateKeyNegate(e){const t=new a(e),n=i.n.sub(t).umod(i.n).toArrayLike(Uint8Array,"be",32);return e.set(n),0},privateKeyTweakAdd(e,t){const n=new a(t);if(n.cmp(i.n)>=0)return 1;if(n.iadd(new a(e)),n.cmp(i.n)>=0&&n.isub(i.n),n.isZero())return 1;const r=n.toArrayLike(Uint8Array,"be",32);return e.set(r),0},privateKeyTweakMul(e,t){let n=new a(t);if(n.cmp(i.n)>=0||n.isZero())return 1;n.imul(new a(e)),n.cmp(i.n)>=0&&(n=n.umod(i.n));const r=n.toArrayLike(Uint8Array,"be",32);return e.set(r),0},publicKeyVerify:e=>null===s(e)?1:0,publicKeyCreate(e,t){const n=new a(t);return n.cmp(i.n)>=0||n.isZero()?1:(o(e,r.keyFromPrivate(t).getPublic()),0)},publicKeyConvert(e,t){const n=s(t);return null===n?1:(o(e,n.getPublic()),0)},publicKeyNegate(e,t){const n=s(t);if(null===n)return 1;const r=n.getPublic();return r.y=r.y.redNeg(),o(e,r),0},publicKeyCombine(e,t){const n=new Array(t.length);for(let e=0;e=0)return 2;const u=r.getPublic().add(i.g.mul(n));return u.isInfinity()?2:(o(e,u),0)},publicKeyTweakMul(e,t,n){const r=s(t);return null===r?1:(n=new a(n)).cmp(i.n)>=0||n.isZero()?2:(o(e,r.getPublic().mul(n)),0)},signatureNormalize(e){const t=new a(e.subarray(0,32)),n=new a(e.subarray(32,64));return t.cmp(i.n)>=0||n.cmp(i.n)>=0?1:(1===n.cmp(r.nh)&&e.set(i.n.sub(n).toArrayLike(Uint8Array,"be",32),32),0)},signatureExport(e,t){const n=t.subarray(0,32),r=t.subarray(32,64);if(new a(n).cmp(i.n)>=0)return 1;if(new a(r).cmp(i.n)>=0)return 1;const{output:s}=e;let o=s.subarray(4,37);o[0]=0,o.set(n,1);let u=33,c=0;for(;u>1&&0===o[c]&&!(128&o[c+1]);--u,++c);if(o=o.subarray(c),128&o[0])return 1;if(u>1&&0===o[0]&&!(128&o[1]))return 1;let l=s.subarray(39,72);l[0]=0,l.set(r,1);let f=33,d=0;for(;f>1&&0===l[d]&&!(128&l[d+1]);--f,++d);return l=l.subarray(d),128&l[0]||f>1&&0===l[0]&&!(128&l[1])?1:(e.outputlen=6+u+f,s[0]=48,s[1]=e.outputlen-2,s[2]=2,s[3]=o.length,s.set(o,4),s[4+u]=2,s[5+u]=l.length,s.set(l,6+u),0)},signatureImport(e,t){if(t.length<8)return 1;if(t.length>72)return 1;if(48!==t[0])return 1;if(t[1]!==t.length-2)return 1;if(2!==t[2])return 1;const n=t[3];if(0===n)return 1;if(5+n>=t.length)return 1;if(2!==t[4+n])return 1;const r=t[5+n];if(0===r)return 1;if(6+n+r!==t.length)return 1;if(128&t[4])return 1;if(n>1&&0===t[4]&&!(128&t[5]))return 1;if(128&t[n+6])return 1;if(r>1&&0===t[n+6]&&!(128&t[n+7]))return 1;let s=t.subarray(4,4+n);if(33===s.length&&0===s[0]&&(s=s.subarray(1)),s.length>32)return 1;let o=t.subarray(6+n);if(33===o.length&&0===o[0]&&(o=o.slice(1)),o.length>32)throw new Error("S length is too long");let u=new a(s);u.cmp(i.n)>=0&&(u=new a(0));let c=new a(t.subarray(6+n));return c.cmp(i.n)>=0&&(c=new a(0)),e.set(u.toArrayLike(Uint8Array,"be",32),0),e.set(c.toArrayLike(Uint8Array,"be",32),32),0},ecdsaSign(e,t,n,s,o){if(o){const e=o;o=r=>{const i=e(t,n,null,s,r);if(!(i instanceof Uint8Array&&32===i.length))throw new Error("This is the way");return new a(i)}}const u=new a(n);if(u.cmp(i.n)>=0||u.isZero())return 1;let c;try{c=r.sign(t,n,{canonical:!0,k:o,pers:s})}catch(e){return 1}return e.signature.set(c.r.toArrayLike(Uint8Array,"be",32),0),e.signature.set(c.s.toArrayLike(Uint8Array,"be",32),32),e.recid=c.recoveryParam,0},ecdsaVerify(e,t,n){const o={r:e.subarray(0,32),s:e.subarray(32,64)},u=new a(o.r),c=new a(o.s);if(u.cmp(i.n)>=0||c.cmp(i.n)>=0)return 1;if(1===c.cmp(r.nh)||u.isZero()||c.isZero())return 3;const l=s(n);if(null===l)return 2;const f=l.getPublic();return r.verify(t,o,f)?0:3},ecdsaRecover(e,t,n,s){const u={r:t.slice(0,32),s:t.slice(32,64)},c=new a(u.r),l=new a(u.s);if(c.cmp(i.n)>=0||l.cmp(i.n)>=0)return 1;if(c.isZero()||l.isZero())return 2;let f;try{f=r.recoverPubKey(s,u,n)}catch(e){return 2}return o(e,f),0},ecdh(e,t,n,o,u,c,l){const f=s(t);if(null===f)return 1;const d=new a(n);if(d.cmp(i.n)>=0||d.isZero())return 2;const h=f.getPublic().mul(d);if(void 0===u){const t=h.encode(null,!0),n=r.hash().update(t).digest();for(let t=0;t<32;++t)e[t]=n[t]}else{c||(c=new Uint8Array(32));const t=h.getX().toArray("be",32);for(let e=0;e<32;++e)c[e]=t[e];l||(l=new Uint8Array(32));const n=h.getY().toArray("be",32);for(let e=0;e<32;++e)l[e]=n[e];const r=u(c,l,o);if(!(r instanceof Uint8Array&&r.length===e.length))return 2;e.set(r)}return 0}}},63183(e,t,n){"use strict";function r(e,{args:t,eventName:n}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,blockTimestamp:e.blockTimestamp?BigInt(e.blockTimestamp):null===e.blockTimestamp?null:void 0,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...n?{args:t,eventName:n}:{}}}n.d(t,{e:()=>r})},63287(e,t,n){"use strict";n.d(t,{M:()=>a});var r=n(68616),i=n(35593);function a(e){const t=(0,i.S)(`0x${e.substring(4)}`).substring(26);return(0,r.o)(`0x${t}`)}},63345(e,t,n){"use strict";var r=n(11644);function i(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,a=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return a||s?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,r.nextTick(i,this,e)):r.nextTick(i,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!t&&e?n._writableState?n._writableState.errorEmitted||(n._writableState.errorEmitted=!0,r.nextTick(i,n,e)):r.nextTick(i,n,e):t&&t(e)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},64030(e,t,n){"use strict";n.d(t,{y:()=>a});var r=n(58038),i=n(75209);async function a(e,{address:t,blockTag:n="latest",blockNumber:a}){const s=await e.request({method:"eth_getTransactionCount",params:[t,"bigint"==typeof a?(0,i.cK)(a):n]},{dedupe:Boolean(a)});return(0,r.ME)(s)}},64116(e){"use strict";e.exports=Number.isNaN||function(e){return e!=e}},64355(e,t,n){"use strict";n.d(t,{Z:()=>i});var r=n(9100);function i(e,t,n){return r.sv(e)(t,n)}},64458(e,t,n){"use strict";n.d(t,{$I:()=>p,Ru:()=>m,dv:()=>y,oL:()=>h,zN:()=>b});var r=n(72529),i=n(46385),a=n(12717),s=n(82884),o=n(20490);const u=Symbol.for("effect/Option"),c={...o.MS,[u]:{_A:e=>e},[a.FX](){return this.toJSON()},toString(){return(0,a.GP)(this.toJSON())}},l=Object.assign(Object.create(c),{_tag:"Some",_op:"Some",[r.HR](e){return h(e)&&m(e)&&r.aI(this.value,e.value)},[i.HR](){return i.PO(this,i.kg(i.tW(this._tag))(i.tW(this.value)))},toJSON(){return{_id:"Option",_tag:this._tag,value:(0,a.U2)(this.value)}}}),f=i.tW("None"),d=Object.assign(Object.create(c),{_tag:"None",_op:"None",[r.HR]:e=>h(e)&&p(e),[i.HR]:()=>f,toJSON(){return{_id:"Option",_tag:this._tag}}}),h=e=>(0,s.i5)(e,u),p=e=>"None"===e._tag,m=e=>"Some"===e._tag,y=Object.create(d),b=e=>{const t=Object.create(l);return t.value=e,t}},64464(e){"use strict";e.exports=JSON.parse('{"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}}')},64781(e,t,n){"use strict";var r,i=n(85889),a=n(73906);try{r=[].__proto__===Array.prototype}catch(e){if(!e||"object"!=typeof e||!("code"in e)||"ERR_PROTO_ACCESS"!==e.code)throw e}var s=!!r&&a&&a(Object.prototype,"__proto__"),o=Object,u=o.getPrototypeOf;e.exports=s&&"function"==typeof s.get?i([s.get]):"function"==typeof u&&function(e){return u(null==e?e:o(e))}},64802(e,t,n){"use strict";var r=n(62460),i=n(68633),a=n(6255);e.exports=function(){return a(r,i,arguments)}},64950(e){"use strict";e.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},65144(e,t,n){"use strict";n.d(t,{A1:()=>c,di:()=>s,iN:()=>l});var r=n(93775),i=n(84015),a=n(85501);function s(e,t,n,{strict:r}={}){return(0,i.q)(e,{strict:!1})?l(e,t,n,{strict:r}):c(e,t,n,{strict:r})}function o(e,t){if("number"==typeof t&&t>0&&t>(0,a.E)(e)-1)throw new r.ii({offset:t,position:"start",size:(0,a.E)(e)})}function u(e,t,n){if("number"==typeof t&&"number"==typeof n&&(0,a.E)(e)!==n-t)throw new r.ii({offset:n,position:"end",size:(0,a.E)(e)})}function c(e,t,n,{strict:r}={}){o(e,t);const i=e.slice(t,n);return r&&u(i,t,n),i}function l(e,t,n,{strict:r}={}){o(e,t);const i=`0x${e.replace("0x","").slice(2*(t??0),2*(n??e.length))}`;return r&&u(i,t,n),i}},65243(e){"use strict";e.exports=Math.max},65269(e,t,n){"use strict";var r=n(33213),i=n(96811),a=n(72258).Buffer,s=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],o=new Array(160);function u(){this.init(),this._w=o,i.call(this,128,112)}function c(e,t,n){return n^e&(t^n)}function l(e,t,n){return e&t|n&(e|t)}function f(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function d(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function h(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function p(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function m(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function y(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function b(e,t){return e>>>0>>0?1:0}r(u,i),u.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},u.prototype._update=function(e){for(var t=this._w,n=0|this._ah,r=0|this._bh,i=0|this._ch,a=0|this._dh,o=0|this._eh,u=0|this._fh,g=0|this._gh,v=0|this._hh,w=0|this._al,_=0|this._bl,S=0|this._cl,E=0|this._dl,k=0|this._el,x=0|this._fl,T=0|this._gl,M=0|this._hl,I=0;I<32;I+=2)t[I]=e.readInt32BE(4*I),t[I+1]=e.readInt32BE(4*I+4);for(;I<160;I+=2){var A=t[I-30],N=t[I-30+1],P=h(A,N),O=p(N,A),R=m(A=t[I-4],N=t[I-4+1]),C=y(N,A),B=t[I-14],F=t[I-14+1],L=t[I-32],j=t[I-32+1],D=O+F|0,U=P+B+b(D,O)|0;U=(U=U+R+b(D=D+C|0,C)|0)+L+b(D=D+j|0,j)|0,t[I]=U,t[I+1]=D}for(var z=0;z<160;z+=2){U=t[z],D=t[z+1];var $=l(n,r,i),V=l(w,_,S),K=f(n,w),Y=f(w,n),q=d(o,k),H=d(k,o),G=s[z],W=s[z+1],X=c(o,u,g),J=c(k,x,T),Z=M+H|0,Q=v+q+b(Z,M)|0;Q=(Q=(Q=Q+X+b(Z=Z+J|0,J)|0)+G+b(Z=Z+W|0,W)|0)+U+b(Z=Z+D|0,D)|0;var ee=Y+V|0,te=K+$+b(ee,Y)|0;v=g,M=T,g=u,T=x,u=o,x=k,o=a+Q+b(k=E+Z|0,E)|0,a=i,E=S,i=r,S=_,r=n,_=w,n=Q+te+b(w=Z+ee|0,Z)|0}this._al=this._al+w|0,this._bl=this._bl+_|0,this._cl=this._cl+S|0,this._dl=this._dl+E|0,this._el=this._el+k|0,this._fl=this._fl+x|0,this._gl=this._gl+T|0,this._hl=this._hl+M|0,this._ah=this._ah+n+b(this._al,w)|0,this._bh=this._bh+r+b(this._bl,_)|0,this._ch=this._ch+i+b(this._cl,S)|0,this._dh=this._dh+a+b(this._dl,E)|0,this._eh=this._eh+o+b(this._el,k)|0,this._fh=this._fh+u+b(this._fl,x)|0,this._gh=this._gh+g+b(this._gl,T)|0,this._hh=this._hh+v+b(this._hl,M)|0},u.prototype._hash=function(){var e=a.allocUnsafe(64);function t(t,n,r){e.writeInt32BE(t,r),e.writeInt32BE(n,r+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=u},65306(e,t,n){"use strict";n.d(t,{u:()=>s});var r=n(75879),i=n(26015),a=n(49514);async function s(e,t){const{abi:n,address:s,args:o,blockHash:u,eventName:c,fromBlock:l,toBlock:f,strict:d}=t,h=c?(0,r.iY)({abi:n,name:c}):void 0,p=h?void 0:n.filter(e=>"event"===e.type);return(0,i.T)(e,a.a,"getLogs")({address:s,args:o,blockHash:u,event:h,events:p,fromBlock:l,toBlock:f,strict:d})}},65587(e){"use strict";e.exports=Math.pow},65632(e,t){t.read=function(e,t,n,r,i){var a,s,o=8*i-r-1,u=(1<>1,l=-7,f=n?i-1:0,d=n?-1:1,h=e[t+f];for(f+=d,a=h&(1<<-l)-1,h>>=-l,l+=o;l>0;a=256*a+e[t+f],f+=d,l-=8);for(s=a&(1<<-l)-1,a>>=-l,l+=r;l>0;s=256*s+e[t+f],f+=d,l-=8);if(0===a)a=1-c;else{if(a===u)return s?NaN:1/0*(h?-1:1);s+=Math.pow(2,r),a-=c}return(h?-1:1)*s*Math.pow(2,a-r)},t.write=function(e,t,n,r,i,a){var s,o,u,c=8*a-i-1,l=(1<>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:a-1,p=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=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?(o=0,s=l):s+f>=1?(o=(t*u-1)*Math.pow(2,i),s+=f):(o=t*Math.pow(2,f-1)*Math.pow(2,i),s=0));i>=8;e[n+h]=255&o,h+=p,o/=256,i-=8);for(s=s<0;e[n+h]=255&s,h+=p,s/=256,c-=8);e[n+h-p]|=128*m}},65668(e,t,n){"use strict";n.d(t,{k:()=>r});const r=e=>`BUG: ${e} - please report an issue at https://github.com/Effect-TS/effect/issues`},65696(e,t,n){"use strict";n.d(t,{g:()=>a});var r=n(68418),i=n(4290);async function a(e){const{authorization:t,signature:n}=e;return(0,r.x)({hash:(0,i.C)(t),signature:n??t})}},66502(e,t,n){"use strict";n.d(t,{I:()=>a});var r=n(44720),i=n(63183);async function a(e,{filter:t}){const n="strict"in t&&t.strict,a=await t.request({method:"eth_getFilterChanges",params:[t.id]});if("string"==typeof a[0])return a;const s=a.map(e=>(0,i.e)(e));return"abi"in t&&t.abi?(0,r.p)({abi:t.abi,logs:s,strict:n}):s}},66573(e,t,n){"use strict";var r,i=n(42649);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t){var n=e.entry;for(e.entry=null;n;){var r=n.callback;t.pendingcb--,r(undefined),n=n.next}t.corkedRequestsFree.next=e}(t,e)}}e.exports=x,x.WritableState=k;var s,o={deprecate:n(12082)},u=n(50338),c=n(73730).Buffer,l=(void 0!==n.g?n.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){},f=n(75073),d=n(36442).getHighWaterMark,h=n(61085).F,p=h.ERR_INVALID_ARG_TYPE,m=h.ERR_METHOD_NOT_IMPLEMENTED,y=h.ERR_MULTIPLE_CALLBACK,b=h.ERR_STREAM_CANNOT_PIPE,g=h.ERR_STREAM_DESTROYED,v=h.ERR_STREAM_NULL_VALUES,w=h.ERR_STREAM_WRITE_AFTER_END,_=h.ERR_UNKNOWN_ENCODING,S=f.errorOrDestroy;function E(){}function k(e,t,s){r=r||n(92783),e=e||{},"boolean"!=typeof s&&(s=t instanceof r),this.objectMode=!!e.objectMode,s&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=d(this,e,"writableHighWaterMark",s),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=!1===e.decodeStrings;this.decodeStrings=!o,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,a=n.writecb;if("function"!=typeof a)throw new y;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,a){--t.pendingcb,n?(i.nextTick(a,r),i.nextTick(P,e,t),e._writableState.errorEmitted=!0,S(e,r)):(a(r),e._writableState.errorEmitted=!0,S(e,r),P(e,t))}(e,n,r,t,a);else{var s=A(n)||e.destroyed;s||n.corked||n.bufferProcessing||!n.bufferedRequest||I(e,n),r?i.nextTick(M,e,n,s,a):M(e,n,s,a)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function x(e){var t=this instanceof(r=r||n(92783));if(!t&&!s.call(x,this))return new x(e);this._writableState=new k(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),u.call(this)}function T(e,t,n,r,i,a,s){t.writelen=r,t.writecb=s,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new g("write")):n?e._writev(i,t.onwrite):e._write(i,a,t.onwrite),t.sync=!1}function M(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),P(e,t)}function I(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,i=new Array(r),s=t.corkedRequestsFree;s.entry=n;for(var o=0,u=!0;n;)i[o]=n,n.isBuf||(u=!1),n=n.next,o+=1;i.allBuffers=u,T(e,t,!0,t.length,i,"",s.finish),t.pendingcb++,t.lastBufferedRequest=null,s.next?(t.corkedRequestsFree=s.next,s.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var c=n.chunk,l=n.encoding,f=n.callback;if(T(e,t,!1,t.objectMode?1:c.length,c,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function A(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function N(e,t){e._final(function(n){t.pendingcb--,n&&S(e,n),t.prefinished=!0,e.emit("prefinish"),P(e,t)})}function P(e,t){var n=A(t);if(n&&(function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,i.nextTick(N,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){var r=e._readableState;(!r||r.autoDestroy&&r.endEmitted)&&e.destroy()}return n}n(33213)(x,u),k.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(k.prototype,"buffer",{get:o.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(s=Function.prototype[Symbol.hasInstance],Object.defineProperty(x,Symbol.hasInstance,{value:function(e){return!!s.call(this,e)||this===x&&e&&e._writableState instanceof k}})):s=function(e){return e instanceof this},x.prototype.pipe=function(){S(this,new b)},x.prototype.write=function(e,t,n){var r,a=this._writableState,s=!1,o=!a.objectMode&&(r=e,c.isBuffer(r)||r instanceof l);return o&&!c.isBuffer(e)&&(e=function(e){return c.from(e)}(e)),"function"==typeof t&&(n=t,t=null),o?t="buffer":t||(t=a.defaultEncoding),"function"!=typeof n&&(n=E),a.ending?function(e,t){var n=new w;S(e,n),i.nextTick(t,n)}(this,n):(o||function(e,t,n,r){var a;return null===n?a=new v:"string"==typeof n||t.objectMode||(a=new p("chunk",["string","Buffer"],n)),!a||(S(e,a),i.nextTick(r,a),!1)}(this,a,e,n))&&(a.pendingcb++,s=function(e,t,n,r,i,a){if(!n){var s=function(e,t,n){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=c.from(t,n)),t}(t,r,i);r!==s&&(n=!0,i="buffer",r=s)}var o=t.objectMode?1:r.length;t.length+=o;var u=t.length-1))throw new _(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(x.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(x.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),x.prototype._write=function(e,t,n){n(new m("_write()"))},x.prototype._writev=null,x.prototype.end=function(e,t,n){var r=this._writableState;return"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||function(e,t,n){t.ending=!0,P(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n)),t.ended=!0,e.writable=!1}(this,r,n),this},Object.defineProperty(x.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(x.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),x.prototype.destroy=f.destroy,x.prototype._undestroy=f.undestroy,x.prototype._destroy=function(e,t){t(e)}},66812(e,t,n){"use strict";var r=n(48431);function i(e){var t="https://react.dev/errors/"+e;if(1c});var r=n(70121),i=n(2273),a=n(91042),s=n(72634),o=n(60936);const u=3;function c(e,{abi:t,address:n,args:c,docsPath:l,functionName:f,sender:d}){const h=e instanceof a.$S?e:e instanceof i.C?e.walk(e=>"data"in e)||e.walk():{},{code:p,data:m,details:y,message:b,shortMessage:g}=h,v=e instanceof r.O?new a.rR({functionName:f}):[u,o.bq.code].includes(p)&&(m||y||b||g)||p===o.Di.code&&"execution reverted"===y&&m?new a.M({abi:t,data:"object"==typeof m?m.data:m,functionName:f,message:h instanceof s.J8?y:g??b}):e;return new a.bG(v,{abi:t,args:c,contractAddress:n,docsPath:l,functionName:f,sender:d})}},66949(e,t,n){"use strict";n.d(t,{tT:()=>r});const r=(e,t)=>{switch(t.length){case 0:return e;case 1:return t[0](e);case 2:return t[1](t[0](e));case 3:return t[2](t[1](t[0](e)));case 4:return t[3](t[2](t[1](t[0](e))));case 5:return t[4](t[3](t[2](t[1](t[0](e)))));case 6:return t[5](t[4](t[3](t[2](t[1](t[0](e))))));case 7:return t[6](t[5](t[4](t[3](t[2](t[1](t[0](e)))))));case 8:return t[7](t[6](t[5](t[4](t[3](t[2](t[1](t[0](e))))))));case 9:return t[8](t[7](t[6](t[5](t[4](t[3](t[2](t[1](t[0](e)))))))));default:{let n=e;for(let e=0,r=t.length;enew Uint8Array(e),t){return"function"==typeof e&&(e=e(t)),u("output",e,t),e}function f(e){return Object.prototype.toString.call(e).slice(8,-1)}e.exports=e=>({contextRandomize(t){if(o(null===t||t instanceof Uint8Array,"Expected seed to be an Uint8Array or null"),null!==t&&u("seed",t,32),1===e.contextRandomize(t))throw new Error("Unknow error on context randomization")},privateKeyVerify:t=>(u("private key",t,32),0===e.privateKeyVerify(t)),privateKeyNegate(n){switch(u("private key",n,32),e.privateKeyNegate(n)){case 0:return n;case 1:throw new Error(t)}},privateKeyTweakAdd(t,r){switch(u("private key",t,32),u("tweak",r,32),e.privateKeyTweakAdd(t,r)){case 0:return t;case 1:throw new Error(n)}},privateKeyTweakMul(t,n){switch(u("private key",t,32),u("tweak",n,32),e.privateKeyTweakMul(t,n)){case 0:return t;case 1:throw new Error(r)}},publicKeyVerify:t=>(u("public key",t,[33,65]),0===e.publicKeyVerify(t)),publicKeyCreate(t,n=!0,r){switch(u("private key",t,32),c(n),r=l(r,n?33:65),e.publicKeyCreate(r,t)){case 0:return r;case 1:throw new Error("Private Key is invalid");case 2:throw new Error(a)}},publicKeyConvert(t,n=!0,r){switch(u("public key",t,[33,65]),c(n),r=l(r,n?33:65),e.publicKeyConvert(r,t)){case 0:return r;case 1:throw new Error(i);case 2:throw new Error(a)}},publicKeyNegate(n,r=!0,s){switch(u("public key",n,[33,65]),c(r),s=l(s,r?33:65),e.publicKeyNegate(s,n)){case 0:return s;case 1:throw new Error(i);case 2:throw new Error(t);case 3:throw new Error(a)}},publicKeyCombine(t,n=!0,r){o(Array.isArray(t),"Expected public keys to be an Array"),o(t.length>0,"Expected public keys array will have more than zero items");for(const e of t)u("public key",e,[33,65]);switch(c(n),r=l(r,n?33:65),e.publicKeyCombine(r,t)){case 0:return r;case 1:throw new Error(i);case 2:throw new Error("The sum of the public keys is not valid");case 3:throw new Error(a)}},publicKeyTweakAdd(t,r,a=!0,s){switch(u("public key",t,[33,65]),u("tweak",r,32),c(a),s=l(s,a?33:65),e.publicKeyTweakAdd(s,t,r)){case 0:return s;case 1:throw new Error(i);case 2:throw new Error(n)}},publicKeyTweakMul(t,n,a=!0,s){switch(u("public key",t,[33,65]),u("tweak",n,32),c(a),s=l(s,a?33:65),e.publicKeyTweakMul(s,t,n)){case 0:return s;case 1:throw new Error(i);case 2:throw new Error(r)}},signatureNormalize(t){switch(u("signature",t,64),e.signatureNormalize(t)){case 0:return t;case 1:throw new Error(s)}},signatureExport(n,r){u("signature",n,64);const i={output:r=l(r,72),outputlen:72};switch(e.signatureExport(i,n)){case 0:return r.slice(0,i.outputlen);case 1:throw new Error(s);case 2:throw new Error(t)}},signatureImport(n,r){switch(u("signature",n),r=l(r,64),e.signatureImport(r,n)){case 0:return r;case 1:throw new Error(s);case 2:throw new Error(t)}},ecdsaSign(n,r,i={},a){u("message",n,32),u("private key",r,32),o("Object"===f(i),"Expected options to be an Object"),void 0!==i.data&&u("options.data",i.data),void 0!==i.noncefn&&o("Function"===f(i.noncefn),"Expected options.noncefn to be a Function");const s={signature:a=l(a,64),recid:null};switch(e.ecdsaSign(s,n,r,i.data,i.noncefn)){case 0:return s;case 1:throw new Error("The nonce generation function failed, or the private key was invalid");case 2:throw new Error(t)}},ecdsaVerify(t,n,r){switch(u("signature",t,64),u("message",n,32),u("public key",r,[33,65]),e.ecdsaVerify(t,n,r)){case 0:return!0;case 3:return!1;case 1:throw new Error(s);case 2:throw new Error(i)}},ecdsaRecover(n,r,i,a=!0,d){switch(u("signature",n,64),o("Number"===f(r)&&r>=0&&r<=3,"Expected recovery id to be a Number within interval [0, 3]"),u("message",i,32),c(a),d=l(d,a?33:65),e.ecdsaRecover(d,n,r,i)){case 0:return d;case 1:throw new Error(s);case 2:throw new Error("Public key could not be recover");case 3:throw new Error(t)}},ecdh(t,n,r={},a){switch(u("public key",t,[33,65]),u("private key",n,32),o("Object"===f(r),"Expected options to be an Object"),void 0!==r.data&&u("options.data",r.data),void 0!==r.hashfn?(o("Function"===f(r.hashfn),"Expected options.hashfn to be a Function"),void 0!==r.xbuf&&u("options.xbuf",r.xbuf,32),void 0!==r.ybuf&&u("options.ybuf",r.ybuf,32),u("output",a)):a=l(a,32),e.ecdh(a,t,n,r.data,r.hashfn,r.xbuf,r.ybuf)){case 0:return a;case 1:throw new Error(i);case 2:throw new Error("Scalar was invalid (zero or overflow)")}}})},68379(e){"use strict";var t=isFinite,n=Math.pow(2,30)-1;e.exports=function(e,r){if("number"!=typeof e)throw new TypeError("Iterations not a number");if(e<0||!t(e))throw new TypeError("Bad iterations");if("number"!=typeof r)throw new TypeError("Key length not a number");if(r<0||r>n||r!=r)throw new TypeError("Bad key length")}},68418(e,t,n){"use strict";n.d(t,{x:()=>c});var r=n(63287),i=n(84015),a=n(85501),s=n(58038),o=n(75209);function u(e){if(0===e||1===e)return e;if(27===e)return 0;if(28===e)return 1;throw new Error("Invalid yParityOrV value")}async function c({hash:e,signature:t}){return(0,r.M)(await async function({hash:e,signature:t}){const r=(0,i.q)(e)?e:(0,o.nj)(e),{secp256k1:c}=await Promise.resolve().then(n.bind(n,45264));return`0x${(()=>{if("object"==typeof t&&"r"in t&&"s"in t){const{r:e,s:n,v:r,yParity:i}=t,a=u(Number(i??r));return new c.Signature((0,s.uU)(e),(0,s.uU)(n)).addRecoveryBit(a)}const e=(0,i.q)(t)?t:(0,o.nj)(t);if(65!==(0,a.E)(e))throw new Error("invalid signature length");const n=u((0,s.ME)(`0x${e.slice(130)}`));return c.Signature.fromCompact(e.substring(2,130)).addRecoveryBit(n)})().recoverPublicKey(r.substring(2)).toHex(!1)}`}({hash:e,signature:t}))}},68449(e,t,n){"use strict";n.d(t,{An:()=>$,Bj:()=>z,D4:()=>g,GP:()=>K,MI:()=>k,Tn:()=>T,YA:()=>N,cF:()=>M,kE:()=>B,n$:()=>E,ne:()=>A,rs:()=>U,tb:()=>F,v_:()=>x});var r=n(72529),i=n(59329),a=n(46385),s=n(12717),o=n(36708),u=n(66949),c=n(82884);const l=Symbol.for("effect/Duration"),f=BigInt(0),d=BigInt(24),h=BigInt(60),p=BigInt(1e3),m=BigInt(1e6),y=BigInt(1e9),b=/^(-?\d+(?:\.\d+)?)\s+(nanos?|micros?|millis?|seconds?|minutes?|hours?|days?|weeks?)$/,g=e=>{if(E(e))return e;if((0,c.Et)(e))return A(e);if((0,c.sI)(e))return M(e);if(Array.isArray(e)&&2===e.length&&e.every(c.Et))return e[0]===-1/0||e[1]===-1/0||Number.isNaN(e[0])||Number.isNaN(e[1])?x:e[0]===1/0||e[1]===1/0?T:M(BigInt(Math.round(1e9*e[0]))+BigInt(Math.round(e[1])));if((0,c.Kg)(e)){const t=b.exec(e);if(t){const[e,n,r]=t,i=Number(n);switch(r){case"nano":case"nanos":return M(BigInt(n));case"micro":case"micros":return I(BigInt(n));case"milli":case"millis":return A(i);case"second":case"seconds":return N(i);case"minute":case"minutes":return P(i);case"hour":case"hours":return O(i);case"day":case"days":return R(i);case"week":case"weeks":return C(i)}}}throw new Error("Invalid DurationInput")},v={_tag:"Millis",millis:0},w={_tag:"Infinity"},_={[l]:l,[a.HR](){return a.PO(this,a.QK(this.value))},[r.HR](e){return E(e)&&V(this,e)},toString(){return`Duration(${K(this)})`},toJSON(){switch(this.value._tag){case"Millis":return{_id:"Duration",_tag:"Millis",millis:this.value.millis};case"Nanos":return{_id:"Duration",_tag:"Nanos",hrtime:L(this)};case"Infinity":return{_id:"Duration",_tag:"Infinity"}}},[s.FX](){return this.toJSON()},pipe(){return(0,u.tT)(this,arguments)}},S=e=>{const t=Object.create(_);return(0,c.Et)(e)?isNaN(e)||e<=0?t.value=v:Number.isFinite(e)?Number.isInteger(e)?t.value={_tag:"Millis",millis:e}:t.value={_tag:"Nanos",nanos:BigInt(Math.round(1e6*e))}:t.value=w:t.value=e<=f?v:{_tag:"Nanos",nanos:e},t},E=e=>(0,c.i5)(e,l),k=e=>"Infinity"!==e.value._tag,x=S(0),T=S(1/0),M=e=>S(e),I=e=>S(e*p),A=e=>S(e),N=e=>S(1e3*e),P=e=>S(6e4*e),O=e=>S(36e5*e),R=e=>S(864e5*e),C=e=>S(6048e5*e),B=e=>j(e,{onMillis:e=>e,onNanos:e=>Number(e)/1e6}),F=e=>{const t=g(e);switch(t.value._tag){case"Infinity":return o.dv();case"Nanos":return o.zN(t.value.nanos);case"Millis":return o.zN(BigInt(Math.round(1e6*t.value.millis)))}},L=e=>{const t=g(e);switch(t.value._tag){case"Infinity":return[1/0,0];case"Nanos":return[Number(t.value.nanos/y),Number(t.value.nanos%y)];case"Millis":return[Math.floor(t.value.millis/1e3),Math.round(t.value.millis%1e3*1e6)]}},j=(0,i.XY)(2,(e,t)=>{const n=g(e);switch(n.value._tag){case"Nanos":return t.onNanos(n.value.nanos);case"Infinity":return t.onMillis(1/0);case"Millis":return t.onMillis(n.value.millis)}}),D=(0,i.XY)(3,(e,t,n)=>{const r=g(e),i=g(t);if("Infinity"===r.value._tag||"Infinity"===i.value._tag)return n.onMillis(B(r),B(i));if("Nanos"===r.value._tag||"Nanos"===i.value._tag){const e="Nanos"===r.value._tag?r.value.nanos:BigInt(Math.round(1e6*r.value.millis)),t="Nanos"===i.value._tag?i.value.nanos:BigInt(Math.round(1e6*i.value.millis));return n.onNanos(e,t)}return n.onMillis(r.value.millis,i.value.millis)}),U=(e,t)=>D(e,t,{onMillis:(e,t)=>e===t,onNanos:(e,t)=>e===t}),z=(0,i.XY)(2,(e,t)=>D(e,t,{onMillis:(e,t)=>e<=t,onNanos:(e,t)=>e<=t})),$=(0,i.XY)(2,(e,t)=>D(e,t,{onMillis:(e,t)=>e>=t,onNanos:(e,t)=>e>=t})),V=(0,i.XY)(2,(e,t)=>U(g(e),g(t))),K=e=>{const t=g(e);if("Infinity"===t.value._tag)return"Infinity";if((e=>{switch(e.value._tag){case"Millis":return 0===e.value.millis;case"Nanos":return e.value.nanos===f;case"Infinity":return!1}})(t))return"0";const n=(e=>{const t=g(e);if("Infinity"===t.value._tag)return{days:1/0,hours:1/0,minutes:1/0,seconds:1/0,millis:1/0,nanos:1/0};const n=(e=>{const t=g(e);switch(t.value._tag){case"Infinity":throw new Error("Cannot convert infinite duration to nanos");case"Nanos":return t.value.nanos;case"Millis":return BigInt(Math.round(1e6*t.value.millis))}})(t),r=n/m,i=r/p,a=i/h,s=a/h;return{days:Number(s/d),hours:Number(s%d),minutes:Number(a%h),seconds:Number(i%h),millis:Number(r%p),nanos:Number(n%m)}})(t),r=[];return 0!==n.days&&r.push(`${n.days}d`),0!==n.hours&&r.push(`${n.hours}h`),0!==n.minutes&&r.push(`${n.minutes}m`),0!==n.seconds&&r.push(`${n.seconds}s`),0!==n.millis&&r.push(`${n.millis}ms`),0!==n.nanos&&r.push(`${n.nanos}ns`),r.join(" ")}},68616(e,t,n){"use strict";n.d(t,{b:()=>l,o:()=>c});var r=n(83815),i=n(81127),a=n(35593),s=n(71768),o=n(462);const u=new s.A(8192);function c(e,t){if(u.has(`${e}.${t}`))return u.get(`${e}.${t}`);const n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),r=(0,a.S)((0,i.Af)(n),"bytes"),s=(t?n.substring(`${t}0x`.length):n).split("");for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&s[e]&&(s[e]=s[e].toUpperCase()),(15&r[e>>1])>=8&&s[e+1]&&(s[e+1]=s[e+1].toUpperCase());const o=`0x${s.join("")}`;return u.set(`${e}.${t}`,o),o}function l(e,t){if(!(0,o.P)(e,{strict:!1}))throw new r.M({address:e});return c(e,t)}},68633(e){"use strict";e.exports=Function.prototype.apply},68929(e,t,n){"use strict";n.d(t,{L8:()=>p,hV:()=>c,iu:()=>u});var r=n(47726),i=n(68449),a=n(59329),s=n(89921),o=n(42649);const u=Symbol.for("effect/Clock"),c=r.Io("effect/Clock"),l={unsafeSchedule(e,t){const n=i.kE(t);if(n>2147483647)return a.f4;let r=!1;const s=setTimeout(()=>{r=!0,e()},n);return()=>(clearTimeout(s),!r)}},f=function(){const e=BigInt(1e6);if("undefined"==typeof performance||"function"!=typeof performance.now)return()=>BigInt(Date.now())*e;let t;return()=>(void 0===t&&(t=BigInt(Date.now())*e-BigInt(Math.round(1e6*performance.now()))),t+BigInt(Math.round(1e6*performance.now())))}(),d=function(){const e="object"==typeof o&&"hrtime"in o&&"function"==typeof o.hrtime.bigint?o.hrtime:void 0;if(!e)return f;const t=f()-e.bigint();return()=>t+e.bigint()}();class h{[u]=u;unsafeCurrentTimeMillis(){return Date.now()}unsafeCurrentTimeNanos(){return d()}currentTimeMillis=s.OH5(()=>this.unsafeCurrentTimeMillis());currentTimeNanos=s.OH5(()=>this.unsafeCurrentTimeNanos());scheduler(){return s.PyW(l)}sleep(e){return s.bIC(t=>{const n=l.unsafeSchedule(()=>t(s.rIH),e);return s.NLW(s.OH5(n))})}}const p=()=>new h},69225(e,t){"use strict";t.byteLength=function(e){var t=o(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,a=o(e),s=a[0],u=a[1],c=new i(function(e,t,n){return 3*(t+n)/4-n}(0,s,u)),l=0,f=u>0?s-4:s;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;return 2===u&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,c[l++]=255&t),1===u&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t),c},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,a=[],s=16383,o=0,u=r-i;ou?u:o+s));return 1===i?(t=e[r-1],a.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],a.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),a.join("")};for(var n=[],r=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0;s<64;++s)n[s]=a[s],r[a.charCodeAt(s)]=s;function o(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function u(e){return n[e>>18&63]+n[e>>12&63]+n[e>>6&63]+n[63&e]}function c(e,t,n){for(var r,i=[],a=t;av,J2:()=>b,L8:()=>p,Q$:()=>E,QZ:()=>w,cA:()=>m,cL:()=>d,iv:()=>y,pd:()=>_,yU:()=>k,yo:()=>S,zI:()=>g});var r=n(72529),i=n(59329),a=n(66949),s=n(7403),o=n(18193),u=n(49342),c=n(72084),l=n(5673),f=n(48905);const d=Symbol.for("effect/Differ"),h={[d]:{_P:i.D_,_V:i.D_},pipe(){return(0,a.tT)(this,arguments)}},p=e=>{const t=Object.create(h);return t.empty=e.empty,t.diff=e.diff,t.combine=e.combine,t.patch=e.patch,t},m=()=>p({empty:o.Ie(),combine:(e,t)=>o.kg(t)(e),diff:(e,t)=>o.Ui(e,t),patch:(e,t)=>o.F6(t)(e)}),y=e=>p({empty:s.Ie(),combine:(e,t)=>s.kg(t)(e),diff:(t,n)=>s.Ui({oldValue:t,newValue:n,differ:e}),patch:(t,n)=>s.F6(n,e)(t)}),b=e=>p({empty:u.Ie(),combine:(e,t)=>u.kg(t)(e),diff:(t,n)=>u.Ui({oldValue:t,newValue:n,differ:e}),patch:(t,n)=>u.F6(n,e)(t)}),g=()=>p({empty:c.Ie(),combine:(e,t)=>c.kg(t)(e),diff:(e,t)=>c.Ui(e,t),patch:(e,t)=>c.F6(t)(e)}),v=i.XY(2,(e,t)=>p({empty:l.Ie(),combine:(e,t)=>l.kg(e,t),diff:(n,r)=>l.Ui({oldValue:n,newValue:r,left:e,right:t}),patch:(n,r)=>l.F6(n,{oldValue:r,left:e,right:t})})),w=e=>p({empty:f.Ie(),combine:(e,t)=>f.kg(e,t),diff:(t,n)=>f.Ui({oldValue:t,newValue:n,differ:e}),patch:(t,n)=>f.F6(t,n,e)}),_=i.XY(2,(e,{toNew:t,toOld:n})=>p({empty:e.empty,combine:(t,n)=>e.combine(t,n),diff:(t,r)=>e.diff(n(t),n(r)),patch:(r,i)=>t(e.patch(r,n(i)))})),S=()=>E((e,t)=>t),E=e=>p({empty:i.D_,combine:(e,t)=>e===i.D_?t:t===i.D_?e:n=>t(e(n)),diff:(e,t)=>r.aI(e,t)?i.D_:(0,i.dY)(t),patch:(t,n)=>e(n,t(n))}),k=i.XY(2,(e,t)=>p({empty:[e.empty,t.empty],combine:(n,r)=>[e.combine(n[0],r[0]),t.combine(n[1],r[1])],diff:(n,r)=>[e.diff(n[0],r[0]),t.diff(n[1],r[1])],patch:(n,r)=>[e.patch(n[0],r[0]),t.patch(n[1],r[1])]}))},70004(e,t){"use strict";var n=t;function r(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",n=0;n>8,s=255&i;a?n.push(a,s):n.push(s)}return n},n.zero2=r,n.toHex=i,n.encode=function(e,t){return"hex"===t?i(e):e}},70121(e,t,n){"use strict";n.d(t,{BI:()=>E,EB:()=>_,Iy:()=>u,Iz:()=>v,MR:()=>w,M_:()=>g,Nc:()=>l,O:()=>c,Wl:()=>N,Wq:()=>m,YE:()=>d,YF:()=>o,YW:()=>s,ZP:()=>h,_z:()=>y,d_:()=>A,dm:()=>I,fo:()=>k,gH:()=>f,j:()=>M,kE:()=>b,l3:()=>x,nK:()=>T,nM:()=>S,yy:()=>p});var r=n(75672),i=n(85501),a=n(2273);class s extends a.C{constructor({docsPath:e}){super(["A constructor was not found on the ABI.","Make sure you are using the correct ABI and that the constructor exists on it."].join("\n"),{docsPath:e,name:"AbiConstructorNotFoundError"})}}class o extends a.C{constructor({docsPath:e}){super(["Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.","Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists."].join("\n"),{docsPath:e,name:"AbiConstructorParamsNotFoundError"})}}a.C;class u extends a.C{constructor({data:e,params:t,size:n}){super([`Data size of ${n} bytes is too small for given parameters.`].join("\n"),{metaMessages:[`Params: (${(0,r.A)(t,{includeName:!0})})`,`Data: ${e} (${n} bytes)`],name:"AbiDecodingDataSizeTooSmallError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=e,this.params=t,this.size=n}}class c extends a.C{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.',{name:"AbiDecodingZeroDataError"})}}class l extends a.C{constructor({expectedLength:e,givenLength:t,type:n}){super([`ABI encoding array length mismatch for type ${n}.`,`Expected length: ${e}`,`Given length: ${t}`].join("\n"),{name:"AbiEncodingArrayLengthMismatchError"})}}class f extends a.C{constructor({expectedSize:e,value:t}){super(`Size of bytes "${t}" (bytes${(0,i.E)(t)}) does not match expected size (bytes${e}).`,{name:"AbiEncodingBytesSizeMismatchError"})}}class d extends a.C{constructor({expectedLength:e,givenLength:t}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${e}`,`Given length (values): ${t}`].join("\n"),{name:"AbiEncodingLengthMismatchError"})}}class h extends a.C{constructor(e,{docsPath:t}){super([`Arguments (\`args\`) were provided to "${e}", but "${e}" on the ABI does not contain any parameters (\`inputs\`).`,"Cannot encode error result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the inputs exist on it."].join("\n"),{docsPath:t,name:"AbiErrorInputsNotFoundError"})}}class p extends a.C{constructor(e,{docsPath:t}={}){super([`Error ${e?`"${e}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it."].join("\n"),{docsPath:t,name:"AbiErrorNotFoundError"})}}class m extends a.C{constructor(e,{docsPath:t}){super([`Encoded error signature "${e}" not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${e}.`].join("\n"),{docsPath:t,name:"AbiErrorSignatureNotFoundError"}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=e}}class y extends a.C{constructor({docsPath:e}){super("Cannot extract event signature from empty topics.",{docsPath:e,name:"AbiEventSignatureEmptyTopicsError"})}}class b extends a.C{constructor(e,{docsPath:t}){super([`Encoded event signature "${e}" not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${e}.`].join("\n"),{docsPath:t,name:"AbiEventSignatureNotFoundError"})}}class g extends a.C{constructor(e,{docsPath:t}={}){super([`Event ${e?`"${e}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it."].join("\n"),{docsPath:t,name:"AbiEventNotFoundError"})}}class v extends a.C{constructor(e,{docsPath:t}={}){super([`Function ${e?`"${e}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it."].join("\n"),{docsPath:t,name:"AbiFunctionNotFoundError"})}}class w extends a.C{constructor(e,{docsPath:t}){super([`Function "${e}" does not contain any \`outputs\` on ABI.`,"Cannot decode function result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the function exists on it."].join("\n"),{docsPath:t,name:"AbiFunctionOutputsNotFoundError"})}}class _ extends a.C{constructor(e,{docsPath:t}){super([`Encoded function signature "${e}" not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${e}.`].join("\n"),{docsPath:t,name:"AbiFunctionSignatureNotFoundError"})}}class S extends a.C{constructor(e,t){super("Found ambiguous types in overloaded ABI items.",{metaMessages:[`\`${e.type}\` in \`${(0,r.B)(e.abiItem)}\`, and`,`\`${t.type}\` in \`${(0,r.B)(t.abiItem)}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."],name:"AbiItemAmbiguityError"})}}class E extends a.C{constructor({expectedSize:e,givenSize:t}){super(`Expected bytes${e}, got bytes${t}.`,{name:"BytesSizeMismatchError"})}}class k extends a.C{constructor({abiItem:e,data:t,params:n,size:i}){super([`Data size of ${i} bytes is too small for non-indexed event parameters.`].join("\n"),{metaMessages:[`Params: (${(0,r.A)(n,{includeName:!0})})`,`Data: ${t} (${i} bytes)`],name:"DecodeLogDataMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=e,this.data=t,this.params=n,this.size=i}}class x extends a.C{constructor({abiItem:e,param:t}){super([`Expected a topic for indexed event parameter${t.name?` "${t.name}"`:""} on event "${(0,r.B)(e,{includeName:!0})}".`].join("\n"),{name:"DecodeLogTopicsMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=e}}class T extends a.C{constructor(e,{docsPath:t}){super([`Type "${e}" is not a valid encoding type.`,"Please provide a valid ABI type."].join("\n"),{docsPath:t,name:"InvalidAbiEncodingType"})}}class M extends a.C{constructor(e,{docsPath:t}){super([`Type "${e}" is not a valid decoding type.`,"Please provide a valid ABI type."].join("\n"),{docsPath:t,name:"InvalidAbiDecodingType"})}}class I extends a.C{constructor(e){super([`Value "${e}" is not a valid array.`].join("\n"),{name:"InvalidArrayError"})}}class A extends a.C{constructor(e){super([`"${e}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join("\n"),{name:"InvalidDefinitionTypeError"})}}class N extends a.C{constructor(e){super(`Type "${e}" is not supported for packed encoding.`,{name:"UnsupportedPackedAbiType"})}}},70950(e,t,n){"use strict";var r=n(72258).Buffer,i=n(34043),a=n(2073),s=ArrayBuffer.isView||function(e){try{return a(e),!0}catch(e){return!1}},o="undefined"!=typeof Uint8Array,u="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,c=u&&(r.prototype instanceof Uint8Array||r.TYPED_ARRAY_SUPPORT);e.exports=function(e,t){if(r.isBuffer(e))return e.constructor&&!("isBuffer"in e)?r.from(e):e;if("string"==typeof e)return r.from(e,t);if(u&&s(e)){if(0===e.byteLength)return r.alloc(0);if(c){var n=r.from(e.buffer,e.byteOffset,e.byteLength);if(n.byteLength===e.byteLength)return n}var a=e instanceof Uint8Array?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength),l=r.from(a);if(l.length===e.byteLength)return l}if(o&&e instanceof Uint8Array)return r.from(e);var f=i(e);if(f)for(var d=0;d255||~~h!==h)throw new RangeError("Array items must be numbers in the range 0-255.")}if(f||r.isBuffer(e)&&e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e))return r.from(e);throw new TypeError('The "data" argument must be a string, an Array, a Buffer, a Uint8Array, or a DataView.')}},71098(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(66812)},71357(e,t,n){"use strict";async function r(e,{serializedTransaction:t}){return e.request({method:"eth_sendRawTransaction",params:[t]},{retryCount:0})}n.d(t,{L:()=>r})},71657(e){e.exports=function(e){for(var t,n=e.length;n--;){if(255!==(t=e.readUInt8(n))){t++,e.writeUInt8(t,n);break}e.writeUInt8(0,n)}}},71768(e,t,n){"use strict";n.d(t,{A:()=>r});class r extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){const t=super.get(e);return super.has(e)&&void 0!==t&&(this.delete(e),super.set(e,t)),t}set(e,t){if(super.set(e,t),this.maxSize&&this.size>this.maxSize){const e=this.keys().next().value;e&&this.delete(e)}return this}}},71778(e,t,n){"use strict";var r=n(95894),i=n(14356),a=n(37553)(),s=n(73906),o=n(4002),u=r("%Math.floor%");e.exports=function(e,t){if("function"!=typeof e)throw new o("`fn` is not a function");if("number"!=typeof t||t<0||t>4294967295||u(t)!==t)throw new o("`length` must be a positive 32-bit integer");var n=arguments.length>2&&!!arguments[2],r=!0,c=!0;if("length"in e&&s){var l=s(e,"length");l&&!l.configurable&&(r=!1),l&&!l.writable&&(c=!1)}return(r||c||!n)&&(a?i(e,"length",t,!0,!0):i(e,"length",t)),e}},71822(e,t,n){var r=n(73730).Buffer;e.exports=function(e,t){for(var n=Math.min(e.length,t.length),i=new r(n),a=0;ak,FO:()=>m,If:()=>_,Ji:()=>f,Rv:()=>u,WL:()=>p,Yo:()=>g,ej:()=>d,fC:()=>x,iB:()=>c,kz:()=>s,l9:()=>b,pc:()=>a,sP:()=>E,v7:()=>T,v8:()=>w});var r=n(8609);const i=/^error (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)$/;function a(e){return i.test(e)}function s(e){return(0,r.Yv)(i,e)}const o=/^event (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)$/;function u(e){return o.test(e)}function c(e){return(0,r.Yv)(o,e)}const l=/^function (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)(?: (?external|public{1}))?(?: (?pure|view|nonpayable|payable{1}))?(?: returns\s?\((?.*?)\))?$/;function f(e){return l.test(e)}function d(e){return(0,r.Yv)(l,e)}const h=/^struct (?[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?.*?)\}$/;function p(e){return h.test(e)}function m(e){return(0,r.Yv)(h,e)}const y=/^constructor\((?.*?)\)(?:\s(?payable{1}))?$/;function b(e){return y.test(e)}function g(e){return(0,r.Yv)(y,e)}const v=/^fallback\(\) external(?:\s(?payable{1}))?$/;function w(e){return v.test(e)}function _(e){return(0,r.Yv)(v,e)}const S=/^receive\(\) external payable$/;function E(e){return S.test(e)}const k=new Set(["memory","indexed","storage","calldata"]),x=new Set(["indexed"]),T=new Set(["calldata","memory","storage"])},72084(e,t,n){"use strict";n.d(t,{F6:()=>v,Ie:()=>d,Ui:()=>b,kg:()=>g,os:()=>o});var r=n(17388),i=n(59329),a=n(75169),s=n(53487);const o=Symbol.for("effect/DifferHashSetPatch");function u(e){return e}const c={...s.wC.prototype,[o]:{_Value:u,_Key:u,_Patch:u}},l=Object.assign(Object.create(c),{_tag:"Empty"}),f=Object.create(l),d=()=>f,h=Object.assign(Object.create(c),{_tag:"AndThen"}),p=Object.assign(Object.create(c),{_tag:"Add"}),m=e=>{const t=Object.create(p);return t.value=e,t},y=Object.assign(Object.create(c),{_tag:"Remove"}),b=(e,t)=>{const[n,r]=a.TS([e,d()],([e,t],n)=>a.zy(n)(e)?[a.TF(n)(e),t]:[e,g(m(n))(t)])(t);return a.TS(r,(e,t)=>g((e=>{const t=Object.create(y);return t.value=e,t})(t))(e))(n)},g=i.XY(2,(e,t)=>((e,t)=>{const n=Object.create(h);return n.first=e,n.second=t,n})(e,t)),v=i.XY(2,(e,t)=>{if("Empty"===e._tag)return t;let n=t,i=r.of(e);for(;r.J_(i);){const e=r.v4(i),t=r.Rx(i);switch(e._tag){case"Empty":i=t;break;case"AndThen":i=r.Hs(e.first)(r.Hs(e.second)(t));break;case"Add":n=a.WQ(e.value)(n),i=t;break;case"Remove":n=a.TF(e.value)(n),i=t}}return n})},72258(e,t,n){var r=n(73730),i=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function s(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=s),s.prototype=Object.create(i.prototype),a(i,s),s.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,n)},s.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},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 r.SlowBuffer(e)}},72368(e,t,n){"use strict";var r=n(23145),i=n(92772),a=i.assert;function s(e,t){if(e instanceof s)return e;this._importDER(e,t)||(a(e.r&&e.s,"Signature without r or s"),this.r=new r(e.r,16),this.s=new r(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function o(){this.place=0}function u(e,t){var n=e[t.place++];if(!(128&n))return n;var r=15&n;if(0===r||r>4)return!1;if(0===e[t.place])return!1;for(var i=0,a=0,s=t.place;a>>=0;return!(i<=127)&&(t.place=s,i)}function c(e){for(var t=0,n=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|n);--n;)e.push(t>>>(n<<3)&255);e.push(t)}}e.exports=s,s.prototype._importDER=function(e,t){e=i.toArray(e,t);var n=new o;if(48!==e[n.place++])return!1;var a=u(e,n);if(!1===a)return!1;if(a+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var s=u(e,n);if(!1===s)return!1;if(128&e[n.place])return!1;var c=e.slice(n.place,s+n.place);if(n.place+=s,2!==e[n.place++])return!1;var l=u(e,n);if(!1===l)return!1;if(e.length!==l+n.place)return!1;if(128&e[n.place])return!1;var f=e.slice(n.place,l+n.place);if(0===c[0]){if(!(128&c[1]))return!1;c=c.slice(1)}if(0===f[0]){if(!(128&f[1]))return!1;f=f.slice(1)}return this.r=new r(c),this.s=new r(f),this.recoveryParam=null,!0},s.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&n[0]&&(n=[0].concat(n)),t=c(t),n=c(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];l(r,t.length),(r=r.concat(t)).push(2),l(r,n.length);var a=r.concat(n),s=[48];return l(s,a.length),s=s.concat(a),i.encode(s,e)}},72529(e,t,n){"use strict";n.d(t,{HR:()=>s,XY:()=>l,aI:()=>o,n4:()=>c});var r=n(46385),i=n(82884),a=n(95644);const s=Symbol.for("effect/Equal");function o(){return 1===arguments.length?e=>u(e,arguments[0]):u(arguments[0],arguments[1])}function u(e,t){if(e===t)return!0;const n=typeof e;if(n!==typeof t)return!1;if("object"===n||"function"===n){if(null!==e&&null!==t){if(c(e)&&c(t))return!(r.tW(e)!==r.tW(t)||!e[s](t))||!(!a.Hi.enabled||!a.Hi.tester)&&a.Hi.tester(e,t);if(e instanceof Date&&t instanceof Date){const n=e.getTime(),r=t.getTime();return n===r||Number.isNaN(n)&&Number.isNaN(r)}if(e instanceof URL&&t instanceof URL)return e.href===t.href}if(a.Hi.enabled){if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every((e,n)=>u(e,t[n]));if(Object.getPrototypeOf(e)===Object.prototype&&Object.getPrototypeOf(e)===Object.prototype){const n=Object.keys(e),r=Object.keys(t);if(n.length===r.length){for(const r of n)if(!(r in t)||!u(e[r],t[r]))return!!a.Hi.tester&&a.Hi.tester(e,t);return!0}}return!!a.Hi.tester&&a.Hi.tester(e,t)}}return!(!a.Hi.enabled||!a.Hi.tester)&&a.Hi.tester(e,t)}const c=e=>(0,i.i5)(e,s),l=()=>o},72634(e,t,n){"use strict";n.d(t,{Ci:()=>s,J8:()=>o,MU:()=>u});var r=n(1060),i=n(2273),a=n(15190);class s extends i.C{constructor({body:e,cause:t,details:n,headers:i,status:s,url:o}){super("HTTP request failed.",{cause:t,details:n,metaMessages:[s&&`Status: ${s}`,`URL: ${(0,a.I)(o)}`,e&&`Request body: ${(0,r.A)(e)}`].filter(Boolean),name:"HttpRequestError"}),Object.defineProperty(this,"body",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.body=e,this.headers=i,this.status=s,this.url=o}}i.C;class o extends i.C{constructor({body:e,error:t,url:n}){super("RPC Request failed.",{cause:t,details:t.message,metaMessages:[`URL: ${(0,a.I)(n)}`,`Request body: ${(0,r.A)(e)}`],name:"RpcRequestError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=t.code,this.data=t.data,this.url=n}}i.C;class u extends i.C{constructor({body:e,url:t}){super("The request took too long to respond.",{details:"The request timed out.",metaMessages:[`URL: ${(0,a.I)(t)}`,`Request body: ${(0,r.A)(e)}`],name:"TimeoutError"}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.url=t}}},72981(e,t,n){"use strict";n.d(t,{W:()=>c});var r=n(97932),i=n(70121),a=n(65144),s=n(16720),o=n(348),u=n(75672);function c(e){const{abi:t,data:n}=e,c=(0,a.di)(n,0,4);if("0x"===c)throw new i.O;const l=[...t||[],r.Mc,r.J9].find(e=>"error"===e.type&&c===(0,s.V)((0,u.B)(e)));if(!l)throw new i.Wq(c,{docsPath:"/docs/contract/decodeErrorResult"});return{abiItem:l,args:"inputs"in l&&l.inputs&&l.inputs.length>0?(0,o.n)(l.inputs,(0,a.di)(n,4)):void 0,errorName:l.name}}},73004(e,t,n){var r=n(54966).Reporter,i=n(54966).EncoderBuffer,a=n(54966).DecoderBuffer,s=n(45366),o=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],u=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(o);function c(e,t){var n={};this._baseState=n,n.enc=e,n.parent=t||null,n.children=null,n.tag=null,n.args=null,n.reverseArgs=null,n.choice=null,n.optional=!1,n.any=!1,n.obj=!1,n.use=null,n.useDecoder=null,n.key=null,n.default=null,n.explicit=null,n.implicit=null,n.contains=null,n.parent||(n.children=[],this._wrap())}e.exports=c;var l=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];c.prototype.clone=function(){var e=this._baseState,t={};l.forEach(function(n){t[n]=e[n]});var n=new this.constructor(t.parent);return n._baseState=t,n},c.prototype._wrap=function(){var e=this._baseState;u.forEach(function(t){this[t]=function(){var n=new this.constructor(this);return e.children.push(n),n[t].apply(n,arguments)}},this)},c.prototype._init=function(e){var t=this._baseState;s(null===t.parent),e.call(this),t.children=t.children.filter(function(e){return e._baseState.parent===this},this),s.equal(t.children.length,1,"Root node can have only one child")},c.prototype._useArgs=function(e){var t=this._baseState,n=e.filter(function(e){return e instanceof this.constructor},this);e=e.filter(function(e){return!(e instanceof this.constructor)},this),0!==n.length&&(s(null===t.children),t.children=n,n.forEach(function(e){e._baseState.parent=this},this)),0!==e.length&&(s(null===t.args),t.args=e,t.reverseArgs=e.map(function(e){if("object"!=typeof e||e.constructor!==Object)return e;var t={};return Object.keys(e).forEach(function(n){n==(0|n)&&(n|=0);var r=e[n];t[r]=n}),t}))},["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"].forEach(function(e){c.prototype[e]=function(){var t=this._baseState;throw new Error(e+" not implemented for encoding: "+t.enc)}}),o.forEach(function(e){c.prototype[e]=function(){var t=this._baseState,n=Array.prototype.slice.call(arguments);return s(null===t.tag),t.tag=e,this._useArgs(n),this}}),c.prototype.use=function(e){s(e);var t=this._baseState;return s(null===t.use),t.use=e,this},c.prototype.optional=function(){return this._baseState.optional=!0,this},c.prototype.def=function(e){var t=this._baseState;return s(null===t.default),t.default=e,t.optional=!0,this},c.prototype.explicit=function(e){var t=this._baseState;return s(null===t.explicit&&null===t.implicit),t.explicit=e,this},c.prototype.implicit=function(e){var t=this._baseState;return s(null===t.explicit&&null===t.implicit),t.implicit=e,this},c.prototype.obj=function(){var e=this._baseState,t=Array.prototype.slice.call(arguments);return e.obj=!0,0!==t.length&&this._useArgs(t),this},c.prototype.key=function(e){var t=this._baseState;return s(null===t.key),t.key=e,this},c.prototype.any=function(){return this._baseState.any=!0,this},c.prototype.choice=function(e){var t=this._baseState;return s(null===t.choice),t.choice=e,this._useArgs(Object.keys(e).map(function(t){return e[t]})),this},c.prototype.contains=function(e){var t=this._baseState;return s(null===t.use),t.contains=e,this},c.prototype._decode=function(e,t){var n=this._baseState;if(null===n.parent)return e.wrapResult(n.children[0]._decode(e,t));var r,i=n.default,s=!0,o=null;if(null!==n.key&&(o=e.enterKey(n.key)),n.optional){var u=null;if(null!==n.explicit?u=n.explicit:null!==n.implicit?u=n.implicit:null!==n.tag&&(u=n.tag),null!==u||n.any){if(s=this._peekTag(e,u,n.any),e.isError(s))return s}else{var c=e.save();try{null===n.choice?this._decodeGeneric(n.tag,e,t):this._decodeChoice(e,t),s=!0}catch(e){s=!1}e.restore(c)}}if(n.obj&&s&&(r=e.enterObject()),s){if(null!==n.explicit){var l=this._decodeTag(e,n.explicit);if(e.isError(l))return l;e=l}var f=e.offset;if(null===n.use&&null===n.choice){n.any&&(c=e.save());var d=this._decodeTag(e,null!==n.implicit?n.implicit:n.tag,n.any);if(e.isError(d))return d;n.any?i=e.raw(c):e=d}if(t&&t.track&&null!==n.tag&&t.track(e.path(),f,e.length,"tagged"),t&&t.track&&null!==n.tag&&t.track(e.path(),e.offset,e.length,"content"),n.any||(i=null===n.choice?this._decodeGeneric(n.tag,e,t):this._decodeChoice(e,t)),e.isError(i))return i;if(n.any||null!==n.choice||null===n.children||n.children.forEach(function(n){n._decode(e,t)}),n.contains&&("octstr"===n.tag||"bitstr"===n.tag)){var h=new a(i);i=this._getUse(n.contains,e._reporterState.obj)._decode(h,t)}}return n.obj&&s&&(i=e.leaveObject(r)),null===n.key||null===i&&!0!==s?null!==o&&e.exitKey(o):e.leaveKey(o,n.key,i),i},c.prototype._decodeGeneric=function(e,t,n){var r=this._baseState;return"seq"===e||"set"===e?null:"seqof"===e||"setof"===e?this._decodeList(t,e,r.args[0],n):/str$/.test(e)?this._decodeStr(t,e,n):"objid"===e&&r.args?this._decodeObjid(t,r.args[0],r.args[1],n):"objid"===e?this._decodeObjid(t,null,null,n):"gentime"===e||"utctime"===e?this._decodeTime(t,e,n):"null_"===e?this._decodeNull(t,n):"bool"===e?this._decodeBool(t,n):"objDesc"===e?this._decodeStr(t,e,n):"int"===e||"enum"===e?this._decodeInt(t,r.args&&r.args[0],n):null!==r.use?this._getUse(r.use,t._reporterState.obj)._decode(t,n):t.error("unknown tag: "+e)},c.prototype._getUse=function(e,t){var n=this._baseState;return n.useDecoder=this._use(e,t),s(null===n.useDecoder._baseState.parent),n.useDecoder=n.useDecoder._baseState.children[0],n.implicit!==n.useDecoder._baseState.implicit&&(n.useDecoder=n.useDecoder.clone(),n.useDecoder._baseState.implicit=n.implicit),n.useDecoder},c.prototype._decodeChoice=function(e,t){var n=this._baseState,r=null,i=!1;return Object.keys(n.choice).some(function(a){var s=e.save(),o=n.choice[a];try{var u=o._decode(e,t);if(e.isError(u))return!1;r={type:a,value:u},i=!0}catch(t){return e.restore(s),!1}return!0},this),i?r:e.error("Choice not matched")},c.prototype._createEncoderBuffer=function(e){return new i(e,this.reporter)},c.prototype._encode=function(e,t,n){var r=this._baseState;if(null===r.default||r.default!==e){var i=this._encodeValue(e,t,n);if(void 0!==i&&!this._skipDefault(i,t,n))return i}},c.prototype._encodeValue=function(e,t,n){var i=this._baseState;if(null===i.parent)return i.children[0]._encode(e,t||new r);var a=null;if(this.reporter=t,i.optional&&void 0===e){if(null===i.default)return;e=i.default}var s=null,o=!1;if(i.any)a=this._createEncoderBuffer(e);else if(i.choice)a=this._encodeChoice(e,t);else if(i.contains)s=this._getUse(i.contains,n)._encode(e,t),o=!0;else if(i.children)s=i.children.map(function(n){if("null_"===n._baseState.tag)return n._encode(null,t,e);if(null===n._baseState.key)return t.error("Child should have a key");var r=t.enterKey(n._baseState.key);if("object"!=typeof e)return t.error("Child expected, but input is not object");var i=n._encode(e[n._baseState.key],t,e);return t.leaveKey(r),i},this).filter(function(e){return e}),s=this._createEncoderBuffer(s);else if("seqof"===i.tag||"setof"===i.tag){if(!i.args||1!==i.args.length)return t.error("Too many args for : "+i.tag);if(!Array.isArray(e))return t.error("seqof/setof, but data is not Array");var u=this.clone();u._baseState.implicit=null,s=this._createEncoderBuffer(e.map(function(n){var r=this._baseState;return this._getUse(r.args[0],e)._encode(n,t)},u))}else null!==i.use?a=this._getUse(i.use,n)._encode(e,t):(s=this._encodePrimitive(i.tag,e),o=!0);if(!i.any&&null===i.choice){var c=null!==i.implicit?i.implicit:i.tag,l=null===i.implicit?"universal":"context";null===c?null===i.use&&t.error("Tag could be omitted only for .use()"):null===i.use&&(a=this._encodeComposite(c,o,l,s))}return null!==i.explicit&&(a=this._encodeComposite(i.explicit,!1,"context",a)),a},c.prototype._encodeChoice=function(e,t){var n=this._baseState,r=n.choice[e.type];return r||s(!1,e.type+" not found in "+JSON.stringify(Object.keys(n.choice))),r._encode(e.value,t)},c.prototype._encodePrimitive=function(e,t){var n=this._baseState;if(/str$/.test(e))return this._encodeStr(t,e);if("objid"===e&&n.args)return this._encodeObjid(t,n.reverseArgs[0],n.args[1]);if("objid"===e)return this._encodeObjid(t,null,null);if("gentime"===e||"utctime"===e)return this._encodeTime(t,e);if("null_"===e)return this._encodeNull();if("int"===e||"enum"===e)return this._encodeInt(t,n.args&&n.reverseArgs[0]);if("bool"===e)return this._encodeBool(t);if("objDesc"===e)return this._encodeStr(t,e);throw new Error("Unsupported tag: "+e)},c.prototype._isNumstr=function(e){return/^[0-9 ]*$/.test(e)},c.prototype._isPrintstr=function(e){return/^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(e)}},73076(e,t,n){var r=n(72258).Buffer;function i(e,t,n){var i=e._cipher.encryptBlock(e._prev)[0]^t;return e._prev=r.concat([e._prev.slice(1),r.from([n?t:i])]),i}t.encrypt=function(e,t,n){for(var a=t.length,s=r.allocUnsafe(a),o=-1;++oi,i:()=>r});const r="Pending",i="Done"},73400(e,t,n){"use strict";n.d(t,{C2:()=>s,Jt:()=>a,L8:()=>i,yo:()=>o});var r=n(4014);r.ll;const i=r.L8,a=r.Jt,s=r.C2,o=(r.Ru,r.$N,r.JP,r.ni,r.hZ,r._c,r.yo);r.lF,r.gH,r.VH,r.s$},73418(e,t,n){"use strict";n.d(t,{q:()=>b});var r=n(70121),i=n(60936),a=n(59398),s=n(78451),o=n(63183),u=n(26015),c=n(36093),l=n(46644),f=n(1060),d=n(96349),h=n(44166),p=n(65306),m=n(66502),y=n(38149);function b(e,t){const{abi:n,address:b,args:g,batch:v=!0,eventName:w,fromBlock:_,onError:S,onLogs:E,poll:k,pollingInterval:x=e.pollingInterval,strict:T}=t;return(void 0!==k?k:"bigint"==typeof _||"webSocket"!==e.transport.type&&"ipc"!==e.transport.type&&("fallback"!==e.transport.type||"webSocket"!==e.transport.transports[0].config.type&&"ipc"!==e.transport.transports[0].config.type))?(()=>{const t=T??!1,r=(0,f.A)(["watchContractEvent",b,g,v,e.uid,w,x,t,_]);return(0,c.lB)(r,{onLogs:E,onError:S},r=>{let a,s;void 0!==_&&(a=_-1n);let o=!1;const c=(0,l.w)(async()=>{if(o)try{let i;if(s)i=await(0,u.T)(e,m.I,"getFilterChanges")({filter:s});else{const r=await(0,u.T)(e,h.G,"getBlockNumber")({});i=a&&a{s&&await(0,u.T)(e,y.Z,"uninstallFilter")({filter:s}),c()}})})():(()=>{const t=T??!1,i=(0,f.A)(["watchContractEvent",b,g,v,e.uid,w,x,t]);let u=!0,l=()=>u=!1;return(0,c.lB)(i,{onLogs:E,onError:S},t=>((async()=>{try{const i=(()=>{if("fallback"===e.transport.type){const t=e.transport.transports.find(e=>"webSocket"===e.config.type||"ipc"===e.config.type);return t?t.value:e.transport}return e.transport})(),c=w?(0,s.R)({abi:n,eventName:w,args:g}):[],{unsubscribe:f}=await i.subscribe({params:["logs",{address:b,topics:c}],onData(e){if(!u)return;const i=e.result;try{const{eventName:e,args:r}=(0,a.j)({abi:n,data:i.data,topics:i.topics,strict:T}),s=(0,o.e)(i,{args:r,eventName:e});t.onLogs([s])}catch(e){let n,a;if(e instanceof r.fo||e instanceof r.l3){if(T)return;n=e.abiItem.name,a=e.abiItem.inputs?.some(e=>!("name"in e&&e.name))}const s=(0,o.e)(i,{args:a?[]:{},eventName:n});t.onLogs([s])}},onError(e){t.onError?.(e)}});l=f,u||l()}catch(e){S?.(e)}})(),()=>l()))})()}},73730(e,t,n){"use strict";const r=n(69225),i=n(65632),a="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=u,t.SlowBuffer=function(e){return+e!=e&&(e=0),u.alloc(+e)},t.INSPECT_MAX_BYTES=50;const s=2147483647;function o(e){if(e>s)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,u.prototype),t}function u(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return f(e)}return c(e,t,n)}function c(e,t,n){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!u.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const n=0|m(e,t);let r=o(n);const i=r.write(e,t);return i!==n&&(r=r.slice(0,i)),r}(e,t);if(ArrayBuffer.isView(e))return function(e){if(W(e,Uint8Array)){const t=new Uint8Array(e);return h(t.buffer,t.byteOffset,t.byteLength)}return d(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(W(e,ArrayBuffer)||e&&W(e.buffer,ArrayBuffer))return h(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(W(e,SharedArrayBuffer)||e&&W(e.buffer,SharedArrayBuffer)))return h(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const r=e.valueOf&&e.valueOf();if(null!=r&&r!==e)return u.from(r,t,n);const i=function(e){if(u.isBuffer(e)){const t=0|p(e.length),n=o(t);return 0===n.length||e.copy(n,0,0,t),n}return void 0!==e.length?"number"!=typeof e.length||X(e.length)?o(0):d(e):"Buffer"===e.type&&Array.isArray(e.data)?d(e.data):void 0}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return u.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function l(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 f(e){return l(e),o(e<0?0:0|p(e))}function d(e){const t=e.length<0?0:0|p(e.length),n=o(t);for(let r=0;r=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return 0|e}function m(e,t){if(u.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||W(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 n=e.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return q(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(i)return r?-1:q(e).length;t=(""+t).toLowerCase(),i=!0}}function y(e,t,n){let r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return N(this,t,n);case"utf8":case"utf-8":return T(this,t,n);case"ascii":return I(this,t,n);case"latin1":case"binary":return A(this,t,n);case"base64":return x(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function b(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function g(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),X(n=+n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=u.from(t,r)),u.isBuffer(t))return 0===t.length?-1:v(e,t,n,r,i);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):v(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function v(e,t,n,r,i){let a,s=1,o=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;s=2,o/=2,u/=2,n/=2}function c(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(i){let r=-1;for(a=n;ao&&(n=o-u),a=n;a>=0;a--){let n=!0;for(let r=0;ri&&(r=i):r=i;const a=t.length;let s;for(r>a/2&&(r=a/2),s=0;s>8,i=n%256,a.push(i),a.push(r);return a}(t,e.length-n),e,n,r)}function x(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function T(e,t,n){n=Math.min(e.length,n);const r=[];let i=t;for(;i239?4:t>223?3:t>191?2:1;if(i+s<=n){let n,r,o,u;switch(s){case 1:t<128&&(a=t);break;case 2:n=e[i+1],128==(192&n)&&(u=(31&t)<<6|63&n,u>127&&(a=u));break;case 3:n=e[i+1],r=e[i+2],128==(192&n)&&128==(192&r)&&(u=(15&t)<<12|(63&n)<<6|63&r,u>2047&&(u<55296||u>57343)&&(a=u));break;case 4:n=e[i+1],r=e[i+2],o=e[i+3],128==(192&n)&&128==(192&r)&&128==(192&o)&&(u=(15&t)<<18|(63&n)<<12|(63&r)<<6|63&o,u>65535&&u<1114112&&(a=u))}}null===a?(a=65533,s=1):a>65535&&(a-=65536,r.push(a>>>10&1023|55296),a=56320|1023&a),r.push(a),i+=s}return function(e){const t=e.length;if(t<=M)return String.fromCharCode.apply(String,e);let n="",r=0;for(;rr.length?(u.isBuffer(t)||(t=u.from(t)),t.copy(r,i)):Uint8Array.prototype.set.call(r,t,i);else{if(!u.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(r,i)}i+=t.length}return r},u.byteLength=m,u.prototype._isBuffer=!0,u.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;tn&&(e+=" ... "),""},a&&(u.prototype[a]=u.prototype.inspect),u.prototype.compare=function(e,t,n,r,i){if(W(e,Uint8Array)&&(e=u.from(e,e.offset,e.byteLength)),!u.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===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;let a=(i>>>=0)-(r>>>=0),s=(n>>>=0)-(t>>>=0);const o=Math.min(a,s),c=this.slice(r,i),l=e.slice(t,n);for(let e=0;e>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}const i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");let a=!1;for(;;)switch(r){case"hex":return w(this,e,t,n);case"utf8":case"utf-8":return _(this,e,t,n);case"ascii":case"latin1":case"binary":return S(this,e,t,n);case"base64":return E(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const M=4096;function I(e,t,n){let r="";n=Math.min(e.length,n);for(let i=t;ir)&&(n=r);let i="";for(let r=t;rn)throw new RangeError("Trying to access beyond buffer length")}function R(e,t,n,r,i,a){if(!u.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 C(e,t,n,r,i){$(t,r,i,e,n,7);let a=Number(t&BigInt(4294967295));e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=s,s>>=8,e[n++]=s,s>>=8,e[n++]=s,s>>=8,e[n++]=s,n}function B(e,t,n,r,i){$(t,r,i,e,n,7);let a=Number(t&BigInt(4294967295));e[n+7]=a,a>>=8,e[n+6]=a,a>>=8,e[n+5]=a,a>>=8,e[n+4]=a;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=s,s>>=8,e[n+2]=s,s>>=8,e[n+1]=s,s>>=8,e[n]=s,n+8}function F(e,t,n,r,i,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function L(e,t,n,r,a){return t=+t,n>>>=0,a||F(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function j(e,t,n,r,a){return t=+t,n>>>=0,a||F(e,0,n,8),i.write(e,t,n,r,52,8),n+8}u.prototype.slice=function(e,t){const n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,n||O(e,t,this.length);let r=this[e],i=1,a=0;for(;++a>>=0,t>>>=0,n||O(e,t,this.length);let r=this[e+--t],i=1;for(;t>0&&(i*=256);)r+=this[e+--t]*i;return r},u.prototype.readUint8=u.prototype.readUInt8=function(e,t){return e>>>=0,t||O(e,1,this.length),this[e]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(e,t){return e>>>=0,t||O(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(e,t){return e>>>=0,t||O(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(e,t){return e>>>=0,t||O(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(e,t){return e>>>=0,t||O(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readBigUInt64LE=Z(function(e){V(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||K(e,this.length-8);const r=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,i=this[++e]+256*this[++e]+65536*this[++e]+n*2**24;return BigInt(r)+(BigInt(i)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||K(e,this.length-8);const r=t*2**24+65536*this[++e]+256*this[++e]+this[++e],i=this[++e]*2**24+65536*this[++e]+256*this[++e]+n;return(BigInt(r)<>>=0,t>>>=0,n||O(e,t,this.length);let r=this[e],i=1,a=0;for(;++a=i&&(r-=Math.pow(2,8*t)),r},u.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||O(e,t,this.length);let r=t,i=1,a=this[e+--r];for(;r>0&&(i*=256);)a+=this[e+--r]*i;return i*=128,a>=i&&(a-=Math.pow(2,8*t)),a},u.prototype.readInt8=function(e,t){return e>>>=0,t||O(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){e>>>=0,t||O(e,2,this.length);const n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){e>>>=0,t||O(e,2,this.length);const n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return e>>>=0,t||O(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return e>>>=0,t||O(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readBigInt64LE=Z(function(e){V(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||K(e,this.length-8);const r=this[e+4]+256*this[e+5]+65536*this[e+6]+(n<<24);return(BigInt(r)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||K(e,this.length-8);const r=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(r)<>>=0,t||O(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return e>>>=0,t||O(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return e>>>=0,t||O(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return e>>>=0,t||O(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUintLE=u.prototype.writeUIntLE=function(e,t,n,r){e=+e,t>>>=0,n>>>=0,r||R(this,e,t,n,Math.pow(2,8*n)-1,0);let i=1,a=0;for(this[t]=255&e;++a>>=0,n>>>=0,r||R(this,e,t,n,Math.pow(2,8*n)-1,0);let i=n-1,a=1;for(this[t+i]=255&e;--i>=0&&(a*=256);)this[t+i]=e/a&255;return t+n},u.prototype.writeUint8=u.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,1,255,0),this[t]=255&e,t+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||R(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},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||R(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},u.prototype.writeBigUInt64LE=Z(function(e,t=0){return C(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))}),u.prototype.writeBigUInt64BE=Z(function(e,t=0){return B(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))}),u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);R(this,e,t,n,r-1,-r)}let i=0,a=1,s=0;for(this[t]=255&e;++i>>=0,!r){const r=Math.pow(2,8*n-1);R(this,e,t,n,r-1,-r)}let i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a|0)-s&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||R(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},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||R(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},u.prototype.writeBigInt64LE=Z(function(e,t=0){return C(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),u.prototype.writeBigInt64BE=Z(function(e,t=0){return B(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),u.prototype.writeFloatLE=function(e,t,n){return L(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return L(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return j(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return j(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(!u.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function $(e,t,n,r,i,a){if(e>n||e3?0===t||t===BigInt(0)?`>= 0${r} and < 2${r} ** ${8*(a+1)}${r}`:`>= -(2${r} ** ${8*(a+1)-1}${r}) and < 2 ** ${8*(a+1)-1}${r}`:`>= ${t}${r} and <= ${n}${r}`,new D.ERR_OUT_OF_RANGE("value",i,e)}!function(e,t,n){V(t,"offset"),void 0!==e[t]&&void 0!==e[t+n]||K(t,e.length-(n+1))}(r,i,a)}function V(e,t){if("number"!=typeof e)throw new D.ERR_INVALID_ARG_TYPE(t,"number",e)}function K(e,t,n){if(Math.floor(e)!==e)throw V(e,n),new D.ERR_OUT_OF_RANGE(n||"offset","an integer",e);if(t<0)throw new D.ERR_BUFFER_OUT_OF_BOUNDS;throw new D.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${t}`,e)}U("ERR_BUFFER_OUT_OF_BOUNDS",function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),U("ERR_INVALID_ARG_TYPE",function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`},TypeError),U("ERR_OUT_OF_RANGE",function(e,t,n){let r=`The value of "${e}" is out of range.`,i=n;return Number.isInteger(n)&&Math.abs(n)>2**32?i=z(String(n)):"bigint"==typeof n&&(i=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(i=z(i)),i+="n"),r+=` It must be ${t}. Received ${i}`,r},RangeError);const Y=/[^+/0-9A-Za-z-_]/g;function q(e,t){let n;t=t||1/0;const r=e.length;let i=null;const a=[];for(let s=0;s55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(s+1===r){(t-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function H(e){return r.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(Y,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function G(e,t,n,r){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function W(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function X(e){return e!=e}const J=function(){const e="0123456789abcdef",t=new Array(256);for(let n=0;n<16;++n){const r=16*n;for(let i=0;i<16;++i)t[r+i]=e[n]+e[i]}return t}();function Z(e){return"undefined"==typeof BigInt?Q:e}function Q(){throw new Error("BigInt not supported")}},73906(e,t,n){"use strict";var r=n(86262);if(r)try{r([],"length")}catch(e){r=null}e.exports=r},73934(e,t,n){"use strict";n.d(t,{k:()=>o});var r=n(81127),i=n(35593);var a=n(13059),s=n(2273);function o(e){return t=function(e){let t=!0,n="",r=0,i="",a=!1;for(let s=0;si});var r=n(58038);async function i(e){const t=await e.request({method:"eth_chainId"},{dedupe:!0});return(0,r.ME)(t)}},74014(e,t,n){"use strict";function r(e){return"string"==typeof e?{address:e,type:"json-rpc"}:e}n.d(t,{J:()=>r})},74017(e,t,n){"use strict";e.exports=s;var r=n(60991),i=Object.create(n(1833));function a(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+e)}function u(e,t,n){var r=o(e,n);return n-1>=t&&(r|=o(e,n-1)<<4),r}function c(e,t,n,i){for(var a=0,s=0,o=Math.min(e.length,n),u=t;u=49?c-49+10:c>=17?c-17+10:c,r(c>=0&&s0?e:t},a.min=function(e,t){return e.cmp(t)<0?e:t},a.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(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[a]|=s<>>26-o&67108863,(o+=24)>=26&&(o-=26,a++);else if("le"===n)for(i=0,a=0;i>>26-o&67108863,(o+=24)>=26&&(o-=26,a++);return this._strip()},a.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=2)i=u(e,t,r)<=18?(a-=18,s+=1,this.words[s]|=i>>>26):a+=8;else for(r=(e.length-t)%2==0?t+1:t;r=18?(a-=18,s+=1,this.words[s]|=i>>>26):a+=8;this._strip()},a.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var a=e.length-n,s=a%r,o=Math.min(a,a-s)+n,u=0,l=n;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{a.prototype[Symbol.for("nodejs.util.inspect.custom")]=f}catch(e){a.prototype.inspect=f}else a.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 m(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],a=0|t.words[0],s=i*a,o=67108863&s,u=s/67108864|0;n.words[0]=o;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])*(a=0|t.words[h])+f)/67108864|0,f=67108863&s}n.words[c]=0|f,u=0|l}return 0!==u?n.words[c]=0|u:n.length--,n._strip()}a.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,a=0,s=0;s>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),n=0!==a||s!==this.length-1?d[6-u.length]+u+n:u+n}for(0!==a&&(n=a.toString(16)+n);n.length%t!==0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var c=h[e],l=p[e];n="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modrn(l).toString(e);n=(f=f.idivn(l)).isZero()?m+n:d[c-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!==0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},a.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&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},a.prototype.toJSON=function(){return this.toString(16,2)},s&&(a.prototype.toBuffer=function(e,t){return this.toArrayLike(s,e,t)}),a.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},a.prototype.toArrayLike=function(e,t,n){this._strip();var i=this.byteLength(),a=n||Math.max(1,i);r(i<=a,"byte array longer than desired length"),r(a>0,"Requested array length <= 0");var s=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,a);return this["_toArrayLike"+("le"===t?"LE":"BE")](s,i),s},a.prototype._toArrayLikeLE=function(e,t){for(var n=0,r=0,i=0,a=0;i>8&255),n>16&255),6===a?(n>24&255),r=0,a=0):(r=s>>>24,a+=2)}if(n=0&&(e[n--]=s>>8&255),n>=0&&(e[n--]=s>>16&255),6===a?(n>=0&&(e[n--]=s>>24&255),r=0,a=0):(r=s>>>24,a+=2)}if(n>=0)for(e[n--]=r;n>=0;)e[n--]=0},Math.clz32?a.prototype._countBits=function(e){return 32-Math.clz32(e)}:a.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},a.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 8191&t||(n+=13,t>>>=13),127&t||(n+=7,t>>>=7),15&t||(n+=4,t>>>=4),3&t||(n+=2,t>>>=2),1&t||n++,n},a.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},a.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},a.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},a.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},a.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;re.length?this.clone().ixor(e):e.clone().ixor(this)},a.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},a.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-n),this._strip()},a.prototype.notn=function(e){return this.clone().inotn(e)},a.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(n=this,r=e):(n=e,r=this);for(var i=0,a=0;a>>26;for(;0!==i&&a>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;ae.length?this.clone().iadd(e):e.clone().iadd(this)},a.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 n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var a=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==a&&s>26,this.words[s]=67108863&t;if(0===a&&s>>13,h=0|s[1],p=8191&h,m=h>>>13,y=0|s[2],b=8191&y,g=y>>>13,v=0|s[3],w=8191&v,_=v>>>13,S=0|s[4],E=8191&S,k=S>>>13,x=0|s[5],T=8191&x,M=x>>>13,I=0|s[6],A=8191&I,N=I>>>13,P=0|s[7],O=8191&P,R=P>>>13,C=0|s[8],B=8191&C,F=C>>>13,L=0|s[9],j=8191&L,D=L>>>13,U=0|o[0],z=8191&U,$=U>>>13,V=0|o[1],K=8191&V,Y=V>>>13,q=0|o[2],H=8191&q,G=q>>>13,W=0|o[3],X=8191&W,J=W>>>13,Z=0|o[4],Q=8191&Z,ee=Z>>>13,te=0|o[5],ne=8191&te,re=te>>>13,ie=0|o[6],ae=8191&ie,se=ie>>>13,oe=0|o[7],ue=8191&oe,ce=oe>>>13,le=0|o[8],fe=8191&le,de=le>>>13,he=0|o[9],pe=8191&he,me=he>>>13;n.negative=e.negative^t.negative,n.length=19;var ye=(c+(r=Math.imul(f,z))|0)+((8191&(i=(i=Math.imul(f,$))+Math.imul(d,z)|0))<<13)|0;c=((a=Math.imul(d,$))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(p,z),i=(i=Math.imul(p,$))+Math.imul(m,z)|0,a=Math.imul(m,$);var be=(c+(r=r+Math.imul(f,K)|0)|0)+((8191&(i=(i=i+Math.imul(f,Y)|0)+Math.imul(d,K)|0))<<13)|0;c=((a=a+Math.imul(d,Y)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(b,z),i=(i=Math.imul(b,$))+Math.imul(g,z)|0,a=Math.imul(g,$),r=r+Math.imul(p,K)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(m,K)|0,a=a+Math.imul(m,Y)|0;var ge=(c+(r=r+Math.imul(f,H)|0)|0)+((8191&(i=(i=i+Math.imul(f,G)|0)+Math.imul(d,H)|0))<<13)|0;c=((a=a+Math.imul(d,G)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(w,z),i=(i=Math.imul(w,$))+Math.imul(_,z)|0,a=Math.imul(_,$),r=r+Math.imul(b,K)|0,i=(i=i+Math.imul(b,Y)|0)+Math.imul(g,K)|0,a=a+Math.imul(g,Y)|0,r=r+Math.imul(p,H)|0,i=(i=i+Math.imul(p,G)|0)+Math.imul(m,H)|0,a=a+Math.imul(m,G)|0;var ve=(c+(r=r+Math.imul(f,X)|0)|0)+((8191&(i=(i=i+Math.imul(f,J)|0)+Math.imul(d,X)|0))<<13)|0;c=((a=a+Math.imul(d,J)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(E,z),i=(i=Math.imul(E,$))+Math.imul(k,z)|0,a=Math.imul(k,$),r=r+Math.imul(w,K)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(_,K)|0,a=a+Math.imul(_,Y)|0,r=r+Math.imul(b,H)|0,i=(i=i+Math.imul(b,G)|0)+Math.imul(g,H)|0,a=a+Math.imul(g,G)|0,r=r+Math.imul(p,X)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(m,X)|0,a=a+Math.imul(m,J)|0;var we=(c+(r=r+Math.imul(f,Q)|0)|0)+((8191&(i=(i=i+Math.imul(f,ee)|0)+Math.imul(d,Q)|0))<<13)|0;c=((a=a+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(T,z),i=(i=Math.imul(T,$))+Math.imul(M,z)|0,a=Math.imul(M,$),r=r+Math.imul(E,K)|0,i=(i=i+Math.imul(E,Y)|0)+Math.imul(k,K)|0,a=a+Math.imul(k,Y)|0,r=r+Math.imul(w,H)|0,i=(i=i+Math.imul(w,G)|0)+Math.imul(_,H)|0,a=a+Math.imul(_,G)|0,r=r+Math.imul(b,X)|0,i=(i=i+Math.imul(b,J)|0)+Math.imul(g,X)|0,a=a+Math.imul(g,J)|0,r=r+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(m,Q)|0,a=a+Math.imul(m,ee)|0;var _e=(c+(r=r+Math.imul(f,ne)|0)|0)+((8191&(i=(i=i+Math.imul(f,re)|0)+Math.imul(d,ne)|0))<<13)|0;c=((a=a+Math.imul(d,re)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(A,z),i=(i=Math.imul(A,$))+Math.imul(N,z)|0,a=Math.imul(N,$),r=r+Math.imul(T,K)|0,i=(i=i+Math.imul(T,Y)|0)+Math.imul(M,K)|0,a=a+Math.imul(M,Y)|0,r=r+Math.imul(E,H)|0,i=(i=i+Math.imul(E,G)|0)+Math.imul(k,H)|0,a=a+Math.imul(k,G)|0,r=r+Math.imul(w,X)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,X)|0,a=a+Math.imul(_,J)|0,r=r+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,ee)|0)+Math.imul(g,Q)|0,a=a+Math.imul(g,ee)|0,r=r+Math.imul(p,ne)|0,i=(i=i+Math.imul(p,re)|0)+Math.imul(m,ne)|0,a=a+Math.imul(m,re)|0;var Se=(c+(r=r+Math.imul(f,ae)|0)|0)+((8191&(i=(i=i+Math.imul(f,se)|0)+Math.imul(d,ae)|0))<<13)|0;c=((a=a+Math.imul(d,se)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(O,z),i=(i=Math.imul(O,$))+Math.imul(R,z)|0,a=Math.imul(R,$),r=r+Math.imul(A,K)|0,i=(i=i+Math.imul(A,Y)|0)+Math.imul(N,K)|0,a=a+Math.imul(N,Y)|0,r=r+Math.imul(T,H)|0,i=(i=i+Math.imul(T,G)|0)+Math.imul(M,H)|0,a=a+Math.imul(M,G)|0,r=r+Math.imul(E,X)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(k,X)|0,a=a+Math.imul(k,J)|0,r=r+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,a=a+Math.imul(_,ee)|0,r=r+Math.imul(b,ne)|0,i=(i=i+Math.imul(b,re)|0)+Math.imul(g,ne)|0,a=a+Math.imul(g,re)|0,r=r+Math.imul(p,ae)|0,i=(i=i+Math.imul(p,se)|0)+Math.imul(m,ae)|0,a=a+Math.imul(m,se)|0;var Ee=(c+(r=r+Math.imul(f,ue)|0)|0)+((8191&(i=(i=i+Math.imul(f,ce)|0)+Math.imul(d,ue)|0))<<13)|0;c=((a=a+Math.imul(d,ce)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(B,z),i=(i=Math.imul(B,$))+Math.imul(F,z)|0,a=Math.imul(F,$),r=r+Math.imul(O,K)|0,i=(i=i+Math.imul(O,Y)|0)+Math.imul(R,K)|0,a=a+Math.imul(R,Y)|0,r=r+Math.imul(A,H)|0,i=(i=i+Math.imul(A,G)|0)+Math.imul(N,H)|0,a=a+Math.imul(N,G)|0,r=r+Math.imul(T,X)|0,i=(i=i+Math.imul(T,J)|0)+Math.imul(M,X)|0,a=a+Math.imul(M,J)|0,r=r+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(k,Q)|0,a=a+Math.imul(k,ee)|0,r=r+Math.imul(w,ne)|0,i=(i=i+Math.imul(w,re)|0)+Math.imul(_,ne)|0,a=a+Math.imul(_,re)|0,r=r+Math.imul(b,ae)|0,i=(i=i+Math.imul(b,se)|0)+Math.imul(g,ae)|0,a=a+Math.imul(g,se)|0,r=r+Math.imul(p,ue)|0,i=(i=i+Math.imul(p,ce)|0)+Math.imul(m,ue)|0,a=a+Math.imul(m,ce)|0;var ke=(c+(r=r+Math.imul(f,fe)|0)|0)+((8191&(i=(i=i+Math.imul(f,de)|0)+Math.imul(d,fe)|0))<<13)|0;c=((a=a+Math.imul(d,de)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(j,z),i=(i=Math.imul(j,$))+Math.imul(D,z)|0,a=Math.imul(D,$),r=r+Math.imul(B,K)|0,i=(i=i+Math.imul(B,Y)|0)+Math.imul(F,K)|0,a=a+Math.imul(F,Y)|0,r=r+Math.imul(O,H)|0,i=(i=i+Math.imul(O,G)|0)+Math.imul(R,H)|0,a=a+Math.imul(R,G)|0,r=r+Math.imul(A,X)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(N,X)|0,a=a+Math.imul(N,J)|0,r=r+Math.imul(T,Q)|0,i=(i=i+Math.imul(T,ee)|0)+Math.imul(M,Q)|0,a=a+Math.imul(M,ee)|0,r=r+Math.imul(E,ne)|0,i=(i=i+Math.imul(E,re)|0)+Math.imul(k,ne)|0,a=a+Math.imul(k,re)|0,r=r+Math.imul(w,ae)|0,i=(i=i+Math.imul(w,se)|0)+Math.imul(_,ae)|0,a=a+Math.imul(_,se)|0,r=r+Math.imul(b,ue)|0,i=(i=i+Math.imul(b,ce)|0)+Math.imul(g,ue)|0,a=a+Math.imul(g,ce)|0,r=r+Math.imul(p,fe)|0,i=(i=i+Math.imul(p,de)|0)+Math.imul(m,fe)|0,a=a+Math.imul(m,de)|0;var xe=(c+(r=r+Math.imul(f,pe)|0)|0)+((8191&(i=(i=i+Math.imul(f,me)|0)+Math.imul(d,pe)|0))<<13)|0;c=((a=a+Math.imul(d,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(j,K),i=(i=Math.imul(j,Y))+Math.imul(D,K)|0,a=Math.imul(D,Y),r=r+Math.imul(B,H)|0,i=(i=i+Math.imul(B,G)|0)+Math.imul(F,H)|0,a=a+Math.imul(F,G)|0,r=r+Math.imul(O,X)|0,i=(i=i+Math.imul(O,J)|0)+Math.imul(R,X)|0,a=a+Math.imul(R,J)|0,r=r+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(N,Q)|0,a=a+Math.imul(N,ee)|0,r=r+Math.imul(T,ne)|0,i=(i=i+Math.imul(T,re)|0)+Math.imul(M,ne)|0,a=a+Math.imul(M,re)|0,r=r+Math.imul(E,ae)|0,i=(i=i+Math.imul(E,se)|0)+Math.imul(k,ae)|0,a=a+Math.imul(k,se)|0,r=r+Math.imul(w,ue)|0,i=(i=i+Math.imul(w,ce)|0)+Math.imul(_,ue)|0,a=a+Math.imul(_,ce)|0,r=r+Math.imul(b,fe)|0,i=(i=i+Math.imul(b,de)|0)+Math.imul(g,fe)|0,a=a+Math.imul(g,de)|0;var Te=(c+(r=r+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;c=((a=a+Math.imul(m,me)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(j,H),i=(i=Math.imul(j,G))+Math.imul(D,H)|0,a=Math.imul(D,G),r=r+Math.imul(B,X)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(F,X)|0,a=a+Math.imul(F,J)|0,r=r+Math.imul(O,Q)|0,i=(i=i+Math.imul(O,ee)|0)+Math.imul(R,Q)|0,a=a+Math.imul(R,ee)|0,r=r+Math.imul(A,ne)|0,i=(i=i+Math.imul(A,re)|0)+Math.imul(N,ne)|0,a=a+Math.imul(N,re)|0,r=r+Math.imul(T,ae)|0,i=(i=i+Math.imul(T,se)|0)+Math.imul(M,ae)|0,a=a+Math.imul(M,se)|0,r=r+Math.imul(E,ue)|0,i=(i=i+Math.imul(E,ce)|0)+Math.imul(k,ue)|0,a=a+Math.imul(k,ce)|0,r=r+Math.imul(w,fe)|0,i=(i=i+Math.imul(w,de)|0)+Math.imul(_,fe)|0,a=a+Math.imul(_,de)|0;var Me=(c+(r=r+Math.imul(b,pe)|0)|0)+((8191&(i=(i=i+Math.imul(b,me)|0)+Math.imul(g,pe)|0))<<13)|0;c=((a=a+Math.imul(g,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(j,X),i=(i=Math.imul(j,J))+Math.imul(D,X)|0,a=Math.imul(D,J),r=r+Math.imul(B,Q)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(F,Q)|0,a=a+Math.imul(F,ee)|0,r=r+Math.imul(O,ne)|0,i=(i=i+Math.imul(O,re)|0)+Math.imul(R,ne)|0,a=a+Math.imul(R,re)|0,r=r+Math.imul(A,ae)|0,i=(i=i+Math.imul(A,se)|0)+Math.imul(N,ae)|0,a=a+Math.imul(N,se)|0,r=r+Math.imul(T,ue)|0,i=(i=i+Math.imul(T,ce)|0)+Math.imul(M,ue)|0,a=a+Math.imul(M,ce)|0,r=r+Math.imul(E,fe)|0,i=(i=i+Math.imul(E,de)|0)+Math.imul(k,fe)|0,a=a+Math.imul(k,de)|0;var Ie=(c+(r=r+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,me)|0)+Math.imul(_,pe)|0))<<13)|0;c=((a=a+Math.imul(_,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(j,Q),i=(i=Math.imul(j,ee))+Math.imul(D,Q)|0,a=Math.imul(D,ee),r=r+Math.imul(B,ne)|0,i=(i=i+Math.imul(B,re)|0)+Math.imul(F,ne)|0,a=a+Math.imul(F,re)|0,r=r+Math.imul(O,ae)|0,i=(i=i+Math.imul(O,se)|0)+Math.imul(R,ae)|0,a=a+Math.imul(R,se)|0,r=r+Math.imul(A,ue)|0,i=(i=i+Math.imul(A,ce)|0)+Math.imul(N,ue)|0,a=a+Math.imul(N,ce)|0,r=r+Math.imul(T,fe)|0,i=(i=i+Math.imul(T,de)|0)+Math.imul(M,fe)|0,a=a+Math.imul(M,de)|0;var Ae=(c+(r=r+Math.imul(E,pe)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(k,pe)|0))<<13)|0;c=((a=a+Math.imul(k,me)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(j,ne),i=(i=Math.imul(j,re))+Math.imul(D,ne)|0,a=Math.imul(D,re),r=r+Math.imul(B,ae)|0,i=(i=i+Math.imul(B,se)|0)+Math.imul(F,ae)|0,a=a+Math.imul(F,se)|0,r=r+Math.imul(O,ue)|0,i=(i=i+Math.imul(O,ce)|0)+Math.imul(R,ue)|0,a=a+Math.imul(R,ce)|0,r=r+Math.imul(A,fe)|0,i=(i=i+Math.imul(A,de)|0)+Math.imul(N,fe)|0,a=a+Math.imul(N,de)|0;var Ne=(c+(r=r+Math.imul(T,pe)|0)|0)+((8191&(i=(i=i+Math.imul(T,me)|0)+Math.imul(M,pe)|0))<<13)|0;c=((a=a+Math.imul(M,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(j,ae),i=(i=Math.imul(j,se))+Math.imul(D,ae)|0,a=Math.imul(D,se),r=r+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,ce)|0)+Math.imul(F,ue)|0,a=a+Math.imul(F,ce)|0,r=r+Math.imul(O,fe)|0,i=(i=i+Math.imul(O,de)|0)+Math.imul(R,fe)|0,a=a+Math.imul(R,de)|0;var Pe=(c+(r=r+Math.imul(A,pe)|0)|0)+((8191&(i=(i=i+Math.imul(A,me)|0)+Math.imul(N,pe)|0))<<13)|0;c=((a=a+Math.imul(N,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,r=Math.imul(j,ue),i=(i=Math.imul(j,ce))+Math.imul(D,ue)|0,a=Math.imul(D,ce),r=r+Math.imul(B,fe)|0,i=(i=i+Math.imul(B,de)|0)+Math.imul(F,fe)|0,a=a+Math.imul(F,de)|0;var Oe=(c+(r=r+Math.imul(O,pe)|0)|0)+((8191&(i=(i=i+Math.imul(O,me)|0)+Math.imul(R,pe)|0))<<13)|0;c=((a=a+Math.imul(R,me)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(j,fe),i=(i=Math.imul(j,de))+Math.imul(D,fe)|0,a=Math.imul(D,de);var Re=(c+(r=r+Math.imul(B,pe)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(F,pe)|0))<<13)|0;c=((a=a+Math.imul(F,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863;var Ce=(c+(r=Math.imul(j,pe))|0)+((8191&(i=(i=Math.imul(j,me))+Math.imul(D,pe)|0))<<13)|0;return c=((a=Math.imul(D,me))+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,u[0]=ye,u[1]=be,u[2]=ge,u[3]=ve,u[4]=we,u[5]=_e,u[6]=Se,u[7]=Ee,u[8]=ke,u[9]=xe,u[10]=Te,u[11]=Me,u[12]=Ie,u[13]=Ae,u[14]=Ne,u[15]=Pe,u[16]=Oe,u[17]=Re,u[18]=Ce,0!==c&&(u[19]=c,n.length++),n};function b(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,a=0;a>>26)|0)>>>26,s&=67108863}n.words[a]=o,r=s,s=i}return 0!==r?n.words[a]=r:n.length--,n._strip()}function g(e,t,n){return b(e,t,n)}function v(e,t){this.x=e,this.y=t}Math.imul||(y=m),a.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?y(this,e,t):n<63?m(this,e,t):n<1024?b(this,e,t):g(this,e,t)},v.prototype.makeRBT=function(e){for(var t=new Array(e),n=a.prototype._countBits(e)-1,r=0;r>=1;return r},v.prototype.permute=function(e,t,n,r,i,a){for(var s=0;s>>=1)i++;return 1<>>=13,n[2*s+1]=8191&a,a>>>=13;for(s=2*t;s>=26,n+=a/67108864|0,n+=s>>>26,this.words[i]=67108863&s}return 0!==n&&(this.words[i]=n,this.length++),this.length=0===e?1:this.length,t?this.ineg():this},a.prototype.muln=function(e){return this.clone().imuln(e)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n>>i&1}return t}(e);if(0===t.length)return new a(1);for(var n=this,r=0;r=0);var t,n=e%26,i=(e-n)/26,a=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t>>26-n}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 a=e%26,s=Math.min((e-a)/26,this.length),o=67108863^67108863>>>a<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-a|f>>>a,l=f&o}return u&&0!==l&&(u.words[u.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},a.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},a.prototype.shln=function(e){return this.clone().ishln(e)},a.prototype.ushln=function(e){return this.clone().iushln(e)},a.prototype.shrn=function(e){return this.clone().ishrn(e)},a.prototype.ushrn=function(e){return this.clone().iushrn(e)},a.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,i=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,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},a.prototype.isubn=function(e){if(r("number"==typeof e),r(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+n]=67108863&a}for(;i>26,this.words[i+n]=67108863&a;if(0===o)return this._strip();for(r(-1===o),o=0,i=0;i>26,this.words[i]=67108863&a;return this.negative=1,this._strip()},a.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),i=e,s=0|i.words[i.length-1];0!=(n=26-this._countBits(s))&&(i=i.ushln(n),r.iushln(n),s=0|i.words[i.length-1]);var o,u=r.length-i.length;if("mod"!==t){(o=new a(null)).length=u+1,o.words=new Array(o.length);for(var c=0;c=0;f--){var d=67108864*(0|r.words[i.length+f])+(0|r.words[i.length+f-1]);for(d=Math.min(d/s|0,67108863),r._ishlnsubmul(i,d,f);0!==r.negative;)d--,r.negative=0,r._ishlnsubmul(i,1,f),r.isZero()||(r.negative^=1);o&&(o.words[f]=d)}return o&&o._strip(),r._strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:o||null,mod:r}},a.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===e.negative?(o=this.neg().divmod(e,t),"mod"!==t&&(i=o.div.neg()),"div"!==t&&(s=o.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:i,mod:s}):0===this.negative&&0!==e.negative?(o=this.divmod(e.neg(),t),"mod"!==t&&(i=o.div.neg()),{div:i,mod:o.mod}):0!==(this.negative&e.negative)?(o=this.neg().divmod(e.neg(),t),"div"!==t&&(s=o.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:o.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new a(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new a(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new a(this.modrn(e.words[0]))}:this._wordDiv(e,t);var i,s,o},a.prototype.div=function(e){return this.divmod(e,"div",!1).div},a.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},a.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},a.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),a=n.cmp(r);return a<0||1===i&&0===a?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},a.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,i=0,a=this.length-1;a>=0;a--)i=(n*i+(0|this.words[a]))%e;return t?-i:i},a.prototype.modn=function(e){return this.modrn(e)},a.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,i=this.length-1;i>=0;i--){var a=(0|this.words[i])+67108864*n;this.words[i]=a/e|0,n=a%e}return this._strip(),t?this.ineg():this},a.prototype.divn=function(e){return this.clone().idivn(e)},a.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new a(1),s=new a(0),o=new a(0),u=new a(1),c=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++c;for(var l=n.clone(),f=t.clone();!t.isZero();){for(var d=0,h=1;0===(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,m=1;0===(n.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(o.isOdd()||u.isOdd())&&(o.iadd(l),u.isub(f)),o.iushrn(1),u.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(o),s.isub(u)):(n.isub(t),o.isub(i),u.isub(s))}return{a:o,b:u,gcd:n.iushln(c)}},a.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,s=new a(1),o=new a(0),u=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var c=0,l=1;0===(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;0===(n.words[0]&d)&&f<26;++f,d<<=1);if(f>0)for(n.iushrn(f);f-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(o)):(n.isub(t),o.isub(s))}return(i=0===t.cmpn(1)?s:o).cmpn(0)<0&&i.iadd(e),i},a.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var a=t;t=n,n=a}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},a.prototype.invm=function(e){return this.egcd(e).a.umod(e)},a.prototype.isEven=function(){return!(1&this.words[0])},a.prototype.isOdd=function(){return!(1&~this.words[0])},a.prototype.andln=function(e){return this.words[0]&e},a.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<>>26,o&=67108863,this.words[s]=o}return 0!==a&&(this.words[s]=a,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:ie.length)return 1;if(this.length=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){ri&&(t=1);break}}return t},a.prototype.gtn=function(e){return 1===this.cmpn(e)},a.prototype.gt=function(e){return 1===this.cmp(e)},a.prototype.gten=function(e){return this.cmpn(e)>=0},a.prototype.gte=function(e){return this.cmp(e)>=0},a.prototype.ltn=function(e){return-1===this.cmpn(e)},a.prototype.lt=function(e){return-1===this.cmp(e)},a.prototype.lten=function(e){return this.cmpn(e)<=0},a.prototype.lte=function(e){return this.cmp(e)<=0},a.prototype.eqn=function(e){return 0===this.cmpn(e)},a.prototype.eq=function(e){return 0===this.cmp(e)},a.red=function(e){return new T(e)},a.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},a.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(e){return this.red=e,this},a.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},a.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},a.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},a.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},a.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},a.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},a.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},a.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},a.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var w={k256:null,p224:null,p192:null,p25519:null};function _(e,t){this.name=e,this.p=new a(t,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function S(){_.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function E(){_.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function k(){_.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function x(){_.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function T(e){if("string"==typeof e){var t=a._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function M(e){T.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(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 a(null);return e.words=new Array(Math.ceil(this.n/13)),e},_.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},_.prototype.split=function(e,t){e.iushrn(this.n,0,t)},_.prototype.imulK=function(e){return e.imul(this.k)},i(S,_),S.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i>>22,a=s}a>>>=22,e.words[i-10]=a,0===a&&e.length>10?e.length-=10:e.length-=9},S.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},a._prime=function(e){if(w[e])return w[e];var t;if("k256"===e)t=new S;else if("p224"===e)t=new E;else if("p192"===e)t=new k;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new x}return w[e]=t,t},T.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},T.prototype._verify2=function(e,t){r(0===(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},T.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(l(e,e.umod(this.m)._forceRed(this)),e)},T.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},T.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},T.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},T.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},T.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},T.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},T.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},T.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},T.prototype.isqr=function(e){return this.imul(e,e.clone())},T.prototype.sqr=function(e){return this.mul(e,e)},T.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new a(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var o=new a(1).toRed(this),u=o.redNeg(),c=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new a(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(o);){for(var m=h,y=0;0!==m.cmp(o);y++)m=m.redSqr();r(y=0;r--){for(var c=t.words[r],l=u-1;l>=0;l--){var f=c>>l&1;i!==n[0]&&(i=this.sqr(i)),0!==f||0!==s?(s<<=1,s|=f,(4===++o||0===r&&0===l)&&(i=this.mul(i,n[s]),o=0,s=0)):o=0}u=26}return i},T.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},T.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new M(e)},i(M,T),M.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},M.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},M.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},M.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new a(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).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)},M.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=n.nmd(e),this)},74839(e,t,n){var r=n(81979),i=n(72258).Buffer,a=n(81475),s=n(33213),o=n(88881),u=n(71822),c=n(71657);function l(e,t,n,s){a.call(this);var u=i.alloc(4,0);this._cipher=new r.AES(t);var l=this._cipher.encryptBlock(u);this._ghash=new o(l),n=function(e,t,n){if(12===t.length)return e._finID=i.concat([t,i.from([0,0,0,1])]),i.concat([t,i.from([0,0,0,2])]);var r=new o(n),a=t.length,s=a%16;r.update(t),s&&(s=16-s,r.update(i.alloc(s,0))),r.update(i.alloc(8,0));var u=8*a,l=i.alloc(8);l.writeUIntBE(u,0,8),r.update(l),e._finID=r.state;var f=i.from(e._finID);return c(f),f}(this,n,l),this._prev=i.from(n),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=s,this._alen=0,this._len=0,this._mode=e,this._authTag=null,this._called=!1}s(l,a),l.prototype._update=function(e){if(!this._called&&this._alen){var t=16-this._alen%16;t<16&&(t=i.alloc(t,0),this._ghash.update(t))}this._called=!0;var n=this._mode.encrypt(this,e);return this._decrypt?this._ghash.update(e):this._ghash.update(n),this._len+=e.length,n},l.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var e=u(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(e,t){var n=0;e.length!==t.length&&n++;for(var r=Math.min(e.length,t.length),i=0;ic,Ie:()=>i,KC:()=>h,L8:()=>s,Si:()=>u,TF:()=>f,TS:()=>y,Tj:()=>p,Ts:()=>a,WQ:()=>l,iv:()=>d,qI:()=>m,zy:()=>o});var r=n(44815);r.oC,r.fi;const i=r.Ie,a=r.Ts,s=r.L8,o=r.zy,u=(r.zN,r.Si),c=(r.HS,r.zu,r.Ej),l=(r.jT,r.bV,r.Tk,r.WQ),f=r.TF,d=r.iv,h=(r.E$,r.KC),p=(r.L$,r.Tj),m=r.qI,y=(r.jJ,r.TS);r.pb,r.jB},75209(e,t,n){"use strict";n.d(t,{$P:()=>u,My:()=>c,cK:()=>l,i3:()=>d,nj:()=>o});var r=n(20518),i=n(92155),a=n(58038);const s=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function o(e,t={}){return"number"==typeof e||"bigint"==typeof e?l(e,t):"string"==typeof e?d(e,t):"boolean"==typeof e?u(e,t):c(e,t)}function u(e,t={}){const n=`0x${Number(e)}`;return"number"==typeof t.size?((0,a.Sl)(n,{size:t.size}),(0,i.eV)(n,{size:t.size})):n}function c(e,t={}){let n="";for(let t=0;to||so,nA:()=>s,rv:()=>a});var r=n(59688),i=n(89921);r.PX,i.R8K,i.jo7,i.owM,i.VwM,i.PDv,i.g1R,i.igQ,i.VbV,i.Wc6,r.Ie,r.fJ,r.F_,r.G,r._7,r.il,r.Aj,r.uH;const a=r.rv,s=(r.VY,r.Ep,r.yl,r.I2,r.Ej,r.Im,r.N6,r.Jq,r.fT,r.t9,r.e9,r.RU,r.ml,r.od,r.vE,r.Ki,r.Co,r.FQ,r.AW,r.Q6,r.el,r.Rw,r.as,r.Tj,r.qI,r.hg,r.Bq,r.gR,i.ReC,i.R_7,r.I6,r.pb,r.YW,r.TS,r.og,i.s2,i.OTT,i.nAV),o=(i.xt1,i.kJg,i.QRo,i.AlI,i.MrQ,i.nv8,i.xUJ,i.Uis,i.sAm,i.THF,i.p2e,r.j9);r.Yu,i.RkE},75672(e,t,n){"use strict";n.d(t,{A:()=>a,B:()=>i});var r=n(70121);function i(e,{includeName:t=!1}={}){if("function"!==e.type&&"event"!==e.type&&"error"!==e.type)throw new r.d_(e.type);return`${e.name}(${a(e.inputs,{includeName:t})})`}function a(e,{includeName:t=!1}={}){return e?e.map(e=>function(e,{includeName:t}){return e.type.startsWith("tuple")?`(${a(e.components,{includeName:t})})${e.type.slice(5)}`:e.type+(t&&e.name?` ${e.name}`:"")}(e,{includeName:t})).join(t?", ":","):""}},75749(e,t,n){"use strict";var r=n(30512);e.exports=function(e){return!!r(e)}},75879(e,t,n){"use strict";n.d(t,{iY:()=>u});var r=n(70121),i=n(84015),a=n(462),s=n(18056),o=n(16720);function u(e){const{abi:t,args:n=[],name:a}=e,u=(0,i.q)(a,{strict:!1}),f=t.filter(e=>u?"function"===e.type?(0,o.V)(e)===a:"event"===e.type&&(0,s.h)(e)===a:"name"in e&&e.name===a);if(0===f.length)return;if(1===f.length)return f[0];let d;for(const e of f)if("inputs"in e)if(n&&0!==n.length){if(e.inputs&&0!==e.inputs.length&&e.inputs.length===n.length&&n.every((t,n)=>{const r="inputs"in e&&e.inputs[n];return!!r&&c(t,r)})){if(d&&"inputs"in d&&d.inputs){const t=l(e.inputs,d.inputs,n);if(t)throw new r.nM({abiItem:e,type:t[0]},{abiItem:d,type:t[1]})}d=e}}else if(!e.inputs||0===e.inputs.length)return e;return d||f[0]}function c(e,t){const n=typeof e,r=t.type;switch(r){case"address":return(0,a.P)(e,{strict:!1});case"bool":return"boolean"===n;case"function":case"string":return"string"===n;default:return"tuple"===r&&"components"in t?Object.values(t.components).every((t,r)=>"object"===n&&c(Object.values(e)[r],t)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(r)?"number"===n||"bigint"===n:/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(r)?"string"===n||e instanceof Uint8Array:!!/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(r)&&Array.isArray(e)&&e.every(e=>c(e,{...t,type:r.replace(/(\[[0-9]{0,}\])$/,"")}))}}function l(e,t,n){for(const r in e){const i=e[r],s=t[r];if("tuple"===i.type&&"tuple"===s.type&&"components"in i&&"components"in s)return l(i.components,s.components,n[r]);const o=[i.type,s.type];if((()=>!(!o.includes("address")||!o.includes("bytes20"))||(o.includes("address")&&o.includes("string")||!(!o.includes("address")||!o.includes("bytes")))&&(0,a.P)(n[r],{strict:!1}))())return o}}},76035(e,t,n){"use strict";var r=n(24763),i=n(8776),a=n(35951),s=n(72258).Buffer,o=n(68379),u=n(55116),c=n(98839),l=s.alloc(128),f={__proto__:null,md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,"sha512-256":32,ripemd160:20,rmd160:20},d={__proto__:null,"sha-1":"sha1","sha-224":"sha224","sha-256":"sha256","sha-384":"sha384","sha-512":"sha512","ripemd-160":"ripemd160"};function h(e){return(new i).update(e).digest()}function p(e,t,n){var i=function(e){return"rmd160"===e||"ripemd160"===e?h:"md5"===e?r:function(t){return a(e).update(t).digest()}}(e),o="sha512"===e||"sha384"===e?128:64;t.length>o?t=i(t):t.lengthu});var r=n(50309),i=n(88924),a=n(66893),s=n(26015),o=n(45011);async function u(e,t){const{abi:n,address:u,args:c,functionName:l,...f}=t,d=(0,i.p)({abi:n,args:c,functionName:l});try{const{data:t}=await(0,s.T)(e,o.T,"call")({...f,data:d,to:u});return(0,r.e)({abi:n,args:c,functionName:l,data:t||"0x"})}catch(e){throw(0,a.j)(e,{abi:n,address:u,args:c,docsPath:"/docs/contract/readContract",functionName:l})}}},76221(e){"use strict";e.exports=Math.round},76329(e,t,n){"use strict";n.d(t,{Lj:()=>o,WB:()=>c,uL:()=>u});var r=n(58038),i=n(31963),a=n(63183),s=n(47457);const o={"0x0":"reverted","0x1":"success"};function u(e,t){const n={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map(e=>(0,a.e)(e)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?(0,r.ME)(e.transactionIndex):null,status:e.status?o[e.status]:null,type:e.type?s.b4[e.type]||e.type:null};return e.blobGasPrice&&(n.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(n.blobGasUsed=BigInt(e.blobGasUsed)),n}const c=(0,i.q)("transactionReceipt",u)},76524(e,t,n){"use strict";n.d(t,{i:()=>r}),n(82884).gd;const r=e=>e.replace(/[/\\^$*+?.()|[\]{}]/g,"\\$&")},76528(e,t,n){"use strict";var r=n(97103),i=n(79601),a=n(39482),s=r.rotl32,o=r.sum32,u=r.sum32_5,c=a.ft_1,l=i.BlockHash,f=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;l.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(d,l),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;rj||(e.current=L[j],L[j]=null,j--)}function z(e,t){j++,L[j]=e.current,e.current=t}var $,V,K=D(null),Y=D(null),q=D(null),H=D(null);function G(e,t){switch(z(q,t),z(Y,e),z(K,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?gf(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)e=vf(t=gf(t),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}U(K),z(K,e)}function W(){U(K),U(Y),U(q)}function X(e){null!==e.memoizedState&&z(H,e);var t=K.current,n=vf(t,e.type);t!==n&&(z(Y,e),z(K,n))}function J(e){Y.current===e&&(U(K),U(Y)),H.current===e&&(U(H),fd._currentValue=F)}function Z(e){if(void 0===$)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);$=t&&t[1]||"",V=-1)":-1--i||u[r]!==c[i]){var l="\n"+u[r].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}}while(1<=r&&0<=i);break}}}finally{Q=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?Z(n):""}function te(e,t){switch(e.tag){case 26:case 27:case 5:return Z(e.type);case 16:return Z("Lazy");case 13:return e.child!==t&&null!==t?Z("Suspense Fallback"):Z("Suspense");case 19:return Z("SuspenseList");case 0:case 15:return ee(e.type,!1);case 11:return ee(e.type.render,!1);case 1:return ee(e.type,!0);case 31:return Z("Activity");default:return""}}function ne(e){try{var t="",n=null;do{t+=te(e,n),n=e,e=e.return}while(e);return t}catch(e){return"\nError generating stack: "+e.message+"\n"+e.stack}}var re=Object.prototype.hasOwnProperty,ie=i.unstable_scheduleCallback,ae=i.unstable_cancelCallback,se=i.unstable_shouldYield,oe=i.unstable_requestPaint,ue=i.unstable_now,ce=i.unstable_getCurrentPriorityLevel,le=i.unstable_ImmediatePriority,fe=i.unstable_UserBlockingPriority,de=i.unstable_NormalPriority,he=i.unstable_LowPriority,pe=i.unstable_IdlePriority,me=i.log,ye=i.unstable_setDisableYieldValue,be=null,ge=null;function ve(e){if("function"==typeof me&&ye(e),ge&&"function"==typeof ge.setStrictMode)try{ge.setStrictMode(be,e)}catch(e){}}var we=Math.clz32?Math.clz32:function(e){return 0==(e>>>=0)?32:31-(_e(e)/Se|0)|0},_e=Math.log,Se=Math.LN2,Ee=256,ke=262144,xe=4194304;function Te(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return 261888&e;case 262144:case 524288:case 1048576:case 2097152:return 3932160&e;case 4194304:case 8388608:case 16777216:case 33554432:return 62914560&e;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Me(e,t,n){var r=e.pendingLanes;if(0===r)return 0;var i=0,a=e.suspendedLanes,s=e.pingedLanes;e=e.warmLanes;var o=134217727&r;return 0!==o?0!==(r=o&~a)?i=Te(r):0!==(s&=o)?i=Te(s):n||0!==(n=o&~e)&&(i=Te(n)):0!==(o=r&~a)?i=Te(o):0!==s?i=Te(s):n||0!==(n=r&~e)&&(i=Te(n)),0===i?0:0!==t&&t!==i&&0===(t&a)&&((a=i&-i)>=(n=t&-t)||32===a&&4194048&n)?t:i}function Ie(e,t){return 0===(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function Ae(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function Ne(){var e=xe;return!(62914560&(xe<<=1))&&(xe=4194304),e}function Pe(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Oe(e,t){e.pendingLanes|=t,268435456!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Re(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-we(t);e.entangledLanes|=t,e.entanglements[r]=1073741824|e.entanglements[r]|261930&n}function Ce(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-we(n),i=1<=Tn),An=String.fromCharCode(32),Nn=!1;function Pn(e,t){switch(e){case"keyup":return-1!==kn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function On(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Rn=!1,Cn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Bn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Cn[e.type]:"textarea"===t}function Fn(e,t,n,r){Bt?Ft?Ft.push(r):Ft=[r]:Bt=r,0<(t=rf(t,"onChange")).length&&(n=new nn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Ln=null,jn=null;function Dn(e){Wl(e,0)}function Un(e){if(pt(Ze(e)))return e}function zn(e,t){if("change"===e)return t}var $n=!1;if(zt){var Vn;if(zt){var Kn="oninput"in document;if(!Kn){var Yn=document.createElement("div");Yn.setAttribute("oninput","return;"),Kn="function"==typeof Yn.oninput}Vn=Kn}else Vn=!1;$n=Vn&&(!document.documentMode||9=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=er(r)}}function nr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?nr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function rr(e){for(var t=mt((e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window).document);t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;t=mt((e=t.contentWindow).document)}return t}function ir(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var ar=zt&&"documentMode"in document&&11>=document.documentMode,sr=null,or=null,ur=null,cr=!1;function lr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;cr||null==sr||sr!==mt(r)||(r="selectionStart"in(r=sr)&&ir(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},ur&&Qn(ur,r)||(ur=r,0<(r=rf(or,"onSelect")).length&&(t=new nn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=sr)))}function fr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var dr={animationend:fr("Animation","AnimationEnd"),animationiteration:fr("Animation","AnimationIteration"),animationstart:fr("Animation","AnimationStart"),transitionrun:fr("Transition","TransitionRun"),transitionstart:fr("Transition","TransitionStart"),transitioncancel:fr("Transition","TransitionCancel"),transitionend:fr("Transition","TransitionEnd")},hr={},pr={};function mr(e){if(hr[e])return hr[e];if(!dr[e])return e;var t,n=dr[e];for(t in n)if(n.hasOwnProperty(t)&&t in pr)return hr[e]=n[t];return e}zt&&(pr=document.createElement("div").style,"AnimationEvent"in window||(delete dr.animationend.animation,delete dr.animationiteration.animation,delete dr.animationstart.animation),"TransitionEvent"in window||delete dr.transitionend.transition);var yr=mr("animationend"),br=mr("animationiteration"),gr=mr("animationstart"),vr=mr("transitionrun"),wr=mr("transitionstart"),_r=mr("transitioncancel"),Sr=mr("transitionend"),Er=new Map,kr="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function xr(e,t){Er.set(e,t),rt(t,[e])}kr.push("scrollEnd");var Tr="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof r&&"function"==typeof r.emit)return void r.emit("uncaughtException",e);console.error(e)},Mr=[],Ir=0,Ar=0;function Nr(){for(var e=Ir,t=Ar=Ir=0;t>=s,i-=s,ni=1<<32-we(t)+i|n<m?(y=f,f=null):y=f.sibling;var b=h(i,f,o[m],u);if(null===b){null===f&&(f=y);break}e&&f&&null===b.alternate&&t(i,f),s=a(b,s,m),null===l?c=b:l.sibling=b,l=b,f=y}if(m===o.length)return n(i,f),fi&&ii(i,m),c;if(null===f){for(;my?(b=m,m=null):b=m.sibling;var v=h(i,m,g.value,c);if(null===v){null===m&&(m=b);break}e&&m&&null===v.alternate&&t(i,m),s=a(v,s,y),null===f?l=v:f.sibling=v,f=v,m=b}if(g.done)return n(i,m),fi&&ii(i,y),l;if(null===m){for(;!g.done;y++,g=u.next())null!==(g=d(i,g.value,c))&&(s=a(g,s,y),null===f?l=g:f.sibling=g,f=g);return fi&&ii(i,y),l}for(m=r(m);!g.done;y++,g=u.next())null!==(g=p(m,i,y,g.value,c))&&(e&&null!==g.alternate&&m.delete(null===g.key?y:g.key),s=a(g,s,y),null===f?l=g:f.sibling=g,f=g);return e&&m.forEach(function(e){return t(i,e)}),fi&&ii(i,y),l}(u,c,l=v.call(l),f)}if("function"==typeof l.then)return g(u,c,ca(l),f);if(l.$$typeof===_)return g(u,c,Ri(u,l),f);fa(u,l)}return"string"==typeof l&&""!==l||"number"==typeof l||"bigint"==typeof l?(l=""+l,null!==c&&6===c.tag?(n(u,c.sibling),(f=i(c,l)).return=u,u=f):(n(u,c),(f=Kr(l,u.mode,f)).return=u,u=f),s(u)):n(u,c)}return function(e,t,n,r){try{ua=0;var i=g(e,t,n,r);return oa=null,i}catch(t){if(t===Ji||t===Qi)throw t;var a=jr(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var ha=da(!0),pa=da(!1),ma=!1;function ya(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function ba(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function ga(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function va(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,2&hc){var i=r.pending;return null===i?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=Br(e),Cr(e,null,n),t}return Pr(e,r,t,n),Br(e)}function wa(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,4194048&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,Ce(e,n)}}function _a(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var i=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var s={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};null===a?i=a=s:a=a.next=s,n=n.next}while(null!==n);null===a?i=a=t:a=a.next=t}else i=a=t;return n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Sa=!1;function Ea(){if(Sa&&null!==Ki)throw Ki}function ka(e,t,n,r){Sa=!1;var i=e.updateQueue;ma=!1;var a=i.firstBaseUpdate,s=i.lastBaseUpdate,o=i.shared.pending;if(null!==o){i.shared.pending=null;var u=o,c=u.next;u.next=null,null===s?a=c:s.next=c,s=u;var l=e.alternate;null!==l&&(o=(l=l.updateQueue).lastBaseUpdate)!==s&&(null===o?l.firstBaseUpdate=c:o.next=c,l.lastBaseUpdate=u)}if(null!==a){var f=i.baseState;for(s=0,l=c=u=null,o=a;;){var d=-536870913&o.lane,p=d!==o.lane;if(p?(yc&d)===d:(r&d)===d){0!==d&&d===Vi&&(Sa=!0),null!==l&&(l=l.next={lane:0,tag:o.tag,payload:o.payload,callback:null,next:null});e:{var m=e,y=o;d=t;var b=n;switch(y.tag){case 1:if("function"==typeof(m=y.payload)){f=m.call(b,f,d);break e}f=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null==(d="function"==typeof(m=y.payload)?m.call(b,f,d):m))break e;f=h({},f,d);break e;case 2:ma=!0}}null!==(d=o.callback)&&(e.flags|=64,p&&(e.flags|=8192),null===(p=i.callbacks)?i.callbacks=[d]:p.push(d))}else p={lane:d,tag:o.tag,payload:o.payload,callback:o.callback,next:null},null===l?(c=l=p,u=f):l=l.next=p,s|=d;if(null===(o=o.next)){if(null===(o=i.shared.pending))break;o=(p=o).next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}null===l&&(u=f),i.baseState=u,i.firstBaseUpdate=c,i.lastBaseUpdate=l,null===a&&(i.shared.lanes=0),kc|=s,e.lanes=s,e.memoizedState=f}}function xa(e,t){if("function"!=typeof e)throw Error(o(191,e));e.call(t)}function Ta(e,t){var n=e.callbacks;if(null!==n)for(e.callbacks=null,e=0;ea?a:8;var s,o,u,c=C.T,l={};C.T=l,lo(e,!1,t,n);try{var f=i(),d=C.S;null!==d&&d(l,f),null!==f&&"object"==typeof f&&"function"==typeof f.then?co(e,t,(s=r,o=[],u={status:"pending",value:null,reason:null,then:function(e){o.push(e)}},f.then(function(){u.status="fulfilled",u.value=s;for(var e=0;e<\/script>",a=a.removeChild(a.firstChild);break;case"select":a="string"==typeof r.is?s.createElement("select",{is:r.is}):s.createElement("select"),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a="string"==typeof r.is?s.createElement(i,{is:r.is}):s.createElement(i)}}a[ze]=t,a[$e]=r;e:for(s=t.child;null!==s;){if(5===s.tag||6===s.tag)a.appendChild(s.stateNode);else if(4!==s.tag&&27!==s.tag&&null!==s.child){s.child.return=s,s=s.child;continue}if(s===t)break e;for(;null===s.sibling;){if(null===s.return||s.return===t)break e;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=a;e:switch(hf(a,i,r),i){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}r&&ou(t)}}return du(t),uu(t,t.type,null===e||e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&ou(t);else{if("string"!=typeof r&&null===t.stateNode)throw Error(o(166));if(e=q.current,gi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(i=ci))switch(i.tag){case 27:case 5:r=i.memoizedProps}e[ze]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||lf(e.nodeValue,n)))||mi(t,!0)}else(e=bf(e).createTextNode(r))[ze]=t,t.stateNode=e}return du(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=gi(t),null!==n){if(null===e){if(!r)throw Error(o(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(o(557));e[ze]=t}else vi(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;du(t),e=!1}else n=wi(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return 256&t.flags?(ja(t),t):(ja(t),null);if(128&t.flags)throw Error(o(558))}return du(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(i=gi(t),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(o(318));if(!(i=null!==(i=t.memoizedState)?i.dehydrated:null))throw Error(o(317));i[ze]=t}else vi(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;du(t),i=!1}else i=wi(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return 256&t.flags?(ja(t),t):(ja(t),null)}return ja(t),128&t.flags?(t.lanes=n,t):(n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(i=null,null!==(r=t.child).alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(i=r.alternate.memoizedState.cachePool.pool),a=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(a=r.memoizedState.cachePool.pool),a!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),lu(t,t.updateQueue),du(t),null);case 4:return W(),null===e&&Ql(t.stateNode.containerInfo),du(t),null;case 10:return Ti(t.type),du(t),null;case 19:if(U(Da),null===(r=t.memoizedState))return du(t),null;if(i=!!(128&t.flags),null===(a=r.rendering))if(i)fu(r,!1);else{if(0!==Ec||null!==e&&128&e.flags)for(e=t.child;null!==e;){if(null!==(a=Ua(e))){for(t.flags|=128,fu(r,!1),e=a.updateQueue,t.updateQueue=e,lu(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)zr(n,e),n=n.sibling;return z(Da,1&Da.current|2),fi&&ii(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&ue()>Cc&&(t.flags|=128,i=!0,fu(r,!1),t.lanes=4194304)}else{if(!i)if(null!==(e=Ua(a))){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,lu(t,e),fu(r,!0),null===r.tail&&"hidden"===r.tailMode&&!a.alternate&&!fi)return du(t),null}else 2*ue()-r.renderingStartTime>Cc&&536870912!==n&&(t.flags|=128,i=!0,fu(r,!1),t.lanes=4194304);r.isBackwards?(a.sibling=t.child,t.child=a):(null!==(e=r.last)?e.sibling=a:t.child=a,r.last=a)}return null!==r.tail?(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=ue(),e.sibling=null,n=Da.current,z(Da,i?1&n|2:1&n),fi&&ii(t,r.treeForkCount),e):(du(t),null);case 22:case 23:return ja(t),Pa(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?!!(536870912&n)&&!(128&t.flags)&&(du(t),6&t.subtreeFlags&&(t.flags|=8192)):du(t),null!==(n=t.updateQueue)&&lu(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&U(Hi),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Ti(ji),du(t),null;case 25:case 30:return null}throw Error(o(156,t.tag))}function pu(e,t){switch(oi(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return Ti(ji),W(),65536&(e=t.flags)&&!(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return J(t),null;case 31:if(null!==t.memoizedState){if(ja(t),null===t.alternate)throw Error(o(340));vi()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(ja(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(o(340));vi()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return U(Da),null;case 4:return W(),null;case 10:return Ti(t.type),null;case 22:case 23:return ja(t),Pa(),null!==e&&U(Hi),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return Ti(ji),null;default:return null}}function mu(e,t){switch(oi(t),t.tag){case 3:Ti(ji),W();break;case 26:case 27:case 5:J(t);break;case 4:W();break;case 31:null!==t.memoizedState&&ja(t);break;case 13:ja(t);break;case 19:U(Da);break;case 10:Ti(t.type);break;case 22:case 23:ja(t),Pa(),null!==e&&U(Hi);break;case 24:Ti(ji)}}function yu(e,t){try{var n=t.updateQueue,r=null!==n?n.lastEffect:null;if(null!==r){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,s=n.inst;r=a(),s.destroy=r}n=n.next}while(n!==i)}}catch(e){El(t,t.return,e)}}function bu(e,t,n){try{var r=t.updateQueue,i=null!==r?r.lastEffect:null;if(null!==i){var a=i.next;r=a;do{if((r.tag&e)===e){var s=r.inst,o=s.destroy;if(void 0!==o){s.destroy=void 0,i=t;var u=n,c=o;try{c()}catch(e){El(i,u,e)}}}r=r.next}while(r!==a)}}catch(e){El(t,t.return,e)}}function gu(e){var t=e.updateQueue;if(null!==t){var n=e.stateNode;try{Ta(t,n)}catch(t){El(e,e.return,t)}}}function vu(e,t,n){n.props=Eo(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){El(e,t,n)}}function wu(e,t){try{var n=e.ref;if(null!==n){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;default:r=e.stateNode}"function"==typeof n?e.refCleanup=n(r):n.current=r}}catch(n){El(e,t,n)}}function _u(e,t){var n=e.ref,r=e.refCleanup;if(null!==n)if("function"==typeof r)try{r()}catch(n){El(e,t,n)}finally{e.refCleanup=null,null!=(e=e.alternate)&&(e.refCleanup=null)}else if("function"==typeof n)try{n(null)}catch(n){El(e,t,n)}else n.current=null}function Su(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&r.focus();break e;case"img":n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){El(e,e.return,t)}}function Eu(e,t,n){try{var r=e.stateNode;!function(e,t,n,r){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var i=null,a=null,s=null,u=null,c=null,l=null,f=null;for(p in n){var d=n[p];if(n.hasOwnProperty(p)&&null!=d)switch(p){case"checked":case"value":break;case"defaultValue":c=d;default:r.hasOwnProperty(p)||ff(e,t,p,null,r,d)}}for(var h in r){var p=r[h];if(d=n[h],r.hasOwnProperty(h)&&(null!=p||null!=d))switch(h){case"type":a=p;break;case"name":i=p;break;case"checked":l=p;break;case"defaultChecked":f=p;break;case"value":s=p;break;case"defaultValue":u=p;break;case"children":case"dangerouslySetInnerHTML":if(null!=p)throw Error(o(137,t));break;default:p!==d&&ff(e,t,h,p,r,d)}}return void gt(e,s,u,c,l,f,a,i);case"select":for(a in p=s=u=h=null,n)if(c=n[a],n.hasOwnProperty(a)&&null!=c)switch(a){case"value":break;case"multiple":p=c;default:r.hasOwnProperty(a)||ff(e,t,a,null,r,c)}for(i in r)if(a=r[i],c=n[i],r.hasOwnProperty(i)&&(null!=a||null!=c))switch(i){case"value":h=a;break;case"defaultValue":u=a;break;case"multiple":s=a;default:a!==c&&ff(e,t,i,a,r,c)}return t=u,n=s,r=p,void(null!=h?_t(e,!!n,h,!1):!!r!=!!n&&(null!=t?_t(e,!!n,t,!0):_t(e,!!n,n?[]:"",!1)));case"textarea":for(u in p=h=null,n)if(i=n[u],n.hasOwnProperty(u)&&null!=i&&!r.hasOwnProperty(u))switch(u){case"value":case"children":break;default:ff(e,t,u,null,r,i)}for(s in r)if(i=r[s],a=n[s],r.hasOwnProperty(s)&&(null!=i||null!=a))switch(s){case"value":h=i;break;case"defaultValue":p=i;break;case"children":break;case"dangerouslySetInnerHTML":if(null!=i)throw Error(o(91));break;default:i!==a&&ff(e,t,s,i,r,a)}return void St(e,h,p);case"option":for(var m in n)h=n[m],n.hasOwnProperty(m)&&null!=h&&!r.hasOwnProperty(m)&&("selected"===m?e.selected=!1:ff(e,t,m,null,r,h));for(c in r)h=r[c],p=n[c],!r.hasOwnProperty(c)||h===p||null==h&&null==p||("selected"===c?e.selected=h&&"function"!=typeof h&&"symbol"!=typeof h:ff(e,t,c,h,r,p));return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var y in n)h=n[y],n.hasOwnProperty(y)&&null!=h&&!r.hasOwnProperty(y)&&ff(e,t,y,null,r,h);for(l in r)if(h=r[l],p=n[l],r.hasOwnProperty(l)&&h!==p&&(null!=h||null!=p))switch(l){case"children":case"dangerouslySetInnerHTML":if(null!=h)throw Error(o(137,t));break;default:ff(e,t,l,h,r,p)}return;default:if(It(t)){for(var b in n)h=n[b],n.hasOwnProperty(b)&&void 0!==h&&!r.hasOwnProperty(b)&&df(e,t,b,void 0,r,h);for(f in r)h=r[f],p=n[f],!r.hasOwnProperty(f)||h===p||void 0===h&&void 0===p||df(e,t,f,h,r,p);return}}for(var g in n)h=n[g],n.hasOwnProperty(g)&&null!=h&&!r.hasOwnProperty(g)&&ff(e,t,g,null,r,h);for(d in r)h=r[d],p=n[d],!r.hasOwnProperty(d)||h===p||null==h&&null==p||ff(e,t,d,h,r,p)}(r,e.type,n,t),r[$e]=t}catch(t){El(e,e.return,t)}}function ku(e){return 5===e.tag||3===e.tag||26===e.tag||27===e.tag&&Mf(e.type)||4===e.tag}function xu(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||ku(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(27===e.tag&&Mf(e.type))continue e;if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function Tu(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?(9===n.nodeType?n.body:"HTML"===n.nodeName?n.ownerDocument.body:n).insertBefore(e,t):((t=9===n.nodeType?n.body:"HTML"===n.nodeName?n.ownerDocument.body:n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Ot));else if(4!==r&&(27===r&&Mf(e.type)&&(n=e.stateNode,t=null),null!==(e=e.child)))for(Tu(e,t,n),e=e.sibling;null!==e;)Tu(e,t,n),e=e.sibling}function Mu(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&(27===r&&Mf(e.type)&&(n=e.stateNode),null!==(e=e.child)))for(Mu(e,t,n),e=e.sibling;null!==e;)Mu(e,t,n),e=e.sibling}function Iu(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);hf(t,r,n),t[ze]=e,t[$e]=n}catch(t){El(e,e.return,t)}}var Au=!1,Nu=!1,Pu=!1,Ou="function"==typeof WeakSet?WeakSet:Set,Ru=null;function Cu(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:Gu(e,n),4&r&&yu(5,n);break;case 1:if(Gu(e,n),4&r)if(e=n.stateNode,null===t)try{e.componentDidMount()}catch(e){El(n,n.return,e)}else{var i=Eo(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){El(n,n.return,e)}}64&r&&gu(n),512&r&&wu(n,n.return);break;case 3:if(Gu(e,n),64&r&&null!==(e=n.updateQueue)){if(t=null,null!==n.child)switch(n.child.tag){case 27:case 5:case 1:t=n.child.stateNode}try{Ta(e,t)}catch(e){El(n,n.return,e)}}break;case 27:null===t&&4&r&&Iu(n);case 26:case 5:Gu(e,n),null===t&&4&r&&Su(n),512&r&&wu(n,n.return);break;case 12:Gu(e,n);break;case 31:Gu(e,n),4&r&&Uu(e,n);break;case 13:Gu(e,n),4&r&&zu(e,n),64&r&&null!==(e=n.memoizedState)&&null!==(e=e.dehydrated)&&function(e,t){var n=e.ownerDocument;if("$~"===e.data)e._reactRetry=t;else if("$?"!==e.data||"loading"!==n.readyState)t();else{var r=function(){t(),n.removeEventListener("DOMContentLoaded",r)};n.addEventListener("DOMContentLoaded",r),e._reactRetry=r}}(e,n=Ml.bind(null,n));break;case 22:if(!(r=null!==n.memoizedState||Au)){t=null!==t&&null!==t.memoizedState||Nu,i=Au;var a=Nu;Au=r,(Nu=t)&&!a?Xu(e,n,!!(8772&n.subtreeFlags)):Gu(e,n),Au=i,Nu=a}break;case 30:break;default:Gu(e,n)}}function Bu(e){var t=e.alternate;null!==t&&(e.alternate=null,Bu(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&null!==(t=e.stateNode)&&We(t),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Fu=null,Lu=!1;function ju(e,t,n){for(n=n.child;null!==n;)Du(e,t,n),n=n.sibling}function Du(e,t,n){if(ge&&"function"==typeof ge.onCommitFiberUnmount)try{ge.onCommitFiberUnmount(be,n)}catch(e){}switch(n.tag){case 26:Nu||_u(n,t),ju(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode).parentNode.removeChild(n);break;case 27:Nu||_u(n,t);var r=Fu,i=Lu;Mf(n.type)&&(Fu=n.stateNode,Lu=!1),ju(e,t,n),Df(n.stateNode),Fu=r,Lu=i;break;case 5:Nu||_u(n,t);case 6:if(r=Fu,i=Lu,Fu=null,ju(e,t,n),Lu=i,null!==(Fu=r))if(Lu)try{(9===Fu.nodeType?Fu.body:"HTML"===Fu.nodeName?Fu.ownerDocument.body:Fu).removeChild(n.stateNode)}catch(e){El(n,t,e)}else try{Fu.removeChild(n.stateNode)}catch(e){El(n,t,e)}break;case 18:null!==Fu&&(Lu?(If(9===(e=Fu).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e,n.stateNode),Vd(e)):If(Fu,n.stateNode));break;case 4:r=Fu,i=Lu,Fu=n.stateNode.containerInfo,Lu=!0,ju(e,t,n),Fu=r,Lu=i;break;case 0:case 11:case 14:case 15:bu(2,n,t),Nu||bu(4,n,t),ju(e,t,n);break;case 1:Nu||(_u(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount&&vu(n,t,r)),ju(e,t,n);break;case 21:ju(e,t,n);break;case 22:Nu=(r=Nu)||null!==n.memoizedState,ju(e,t,n),Nu=r;break;default:ju(e,t,n)}}function Uu(e,t){if(null===t.memoizedState&&null!==(e=t.alternate)&&null!==(e=e.memoizedState)){e=e.dehydrated;try{Vd(e)}catch(e){El(t,t.return,e)}}}function zu(e,t){if(null===t.memoizedState&&null!==(e=t.alternate)&&null!==(e=e.memoizedState)&&null!==(e=e.dehydrated))try{Vd(e)}catch(e){El(t,t.return,e)}}function $u(e,t){var n=function(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return null===t&&(t=e.stateNode=new Ou),t;case 22:return null===(t=(e=e.stateNode)._retryCache)&&(t=e._retryCache=new Ou),t;default:throw Error(o(435,e.tag))}}(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=Il.bind(null,e,t);t.then(r,r)}})}function Vu(e,t){var n=t.deletions;if(null!==n)for(var r=0;r title"))),hf(a,r,n),a[ze]=e,et(a),r=a;break e;case"link":var s=rd("link","href",i).get(r+(n.href||""));if(s)for(var u=0;uo)break;var l=u.transferSize,f=u.initiatorType;l&&pf(f)&&(s+=l*((u=u.responseEnd)sd?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}(f,p)))return Uc=a,e.cancelPendingCommit=p(ml.bind(null,e,t,a,n,r,i,s,o,u,l,f,null,d,h)),void Zc(e,a,s,!c)}ml(e,t,a,n,r,i,s,o,u)}function Jc(e){for(var t=e;;){var n=t.tag;if((0===n||11===n||15===n)&&16384&t.flags&&null!==(n=t.updateQueue)&&null!==(n=n.stores))for(var r=0;ry&&(s=y,y=m,m=s);var b=tr(o,m),g=tr(o,y);if(b&&g&&(1!==h.rangeCount||h.anchorNode!==b.node||h.anchorOffset!==b.offset||h.focusNode!==g.node||h.focusOffset!==g.offset)){var v=f.createRange();v.setStart(b.node,b.offset),h.removeAllRanges(),m>y?(h.addRange(v),h.extend(g.node,g.offset)):(v.setEnd(g.node,g.offset),h.addRange(v))}}}}for(f=[],h=o;h=h.parentNode;)1===h.nodeType&&f.push({element:h,left:h.scrollLeft,top:h.scrollTop});for("function"==typeof o.focus&&o.focus(),o=0;on?32:n,C.T=null,n=$c,$c=null;var a=jc,s=Uc;if(Lc=0,Dc=jc=null,Uc=0,6&hc)throw Error(o(331));var u=hc;if(hc|=4,uc(a.current),ec(a,a.current,s,n),hc=u,Fl(0,!1),ge&&"function"==typeof ge.onPostCommitFiberRoot)try{ge.onPostCommitFiberRoot(be,a)}catch(e){}return!0}finally{B.p=i,C.T=r,vl(e,t)}}function Sl(e,t,n){t=Gr(n,t),null!==(e=va(e,t=Ao(e.stateNode,t,2),2))&&(Oe(e,2),Bl(e))}function El(e,t,n){if(3===e.tag)Sl(e,e,n);else for(;null!==t;){if(3===t.tag){Sl(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Fc||!Fc.has(r))){e=Gr(n,e),null!==(r=va(t,n=No(2),2))&&(Po(n,r,t,e),Oe(r,2),Bl(r));break}}t=t.return}}function kl(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new dc;var i=new Set;r.set(t,i)}else void 0===(i=r.get(t))&&(i=new Set,r.set(t,i));i.has(n)||(_c=!0,i.add(n),e=xl.bind(null,e,t,n),t.then(e,e))}function xl(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,pc===e&&(yc&n)===n&&(4===Ec||3===Ec&&(62914560&yc)===yc&&300>ue()-Oc?!(2&hc)&&tl(e,0):Tc|=n,Ic===yc&&(Ic=0)),Bl(e)}function Tl(e,t){0===t&&(t=Ne()),null!==(e=Rr(e,t))&&(Oe(e,t),Bl(e))}function Ml(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Tl(e,n)}function Il(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;null!==i&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(o(314))}null!==r&&r.delete(t),Tl(e,n)}var Al=null,Nl=null,Pl=!1,Ol=!1,Rl=!1,Cl=0;function Bl(e){e!==Nl&&null===e.next&&(null===Nl?Al=Nl=e:Nl=Nl.next=e),Ol=!0,Pl||(Pl=!0,xf(function(){6&hc?ie(le,Ll):jl()}))}function Fl(e,t){if(!Rl&&Ol){Rl=!0;do{for(var n=!1,r=Al;null!==r;){if(!t)if(0!==e){var i=r.pendingLanes;if(0===i)var a=0;else{var s=r.suspendedLanes,o=r.pingedLanes;a=(1<<31-we(42|e)+1)-1,a=201326741&(a&=i&~(s&~o))?201326741&a|1:a?2|a:0}0!==a&&(n=!0,zl(r,a))}else a=yc,!(3&(a=Me(r,r===pc?a:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||Ie(r,a)||(n=!0,zl(r,a));r=r.next}}while(n);Rl=!1}}function Ll(){jl()}function jl(){Ol=Pl=!1;var e,t=0;0!==Cl&&((e=window.event)&&"popstate"===e.type?e!==_f&&(_f=e,1):(_f=null,0))&&(t=Cl);for(var n=ue(),r=null,i=Al;null!==i;){var a=i.next,s=Dl(i,n);0===s?(i.next=null,null===r?Al=a:r.next=a,null===a&&(Nl=r)):(r=i,(0!==t||3&s)&&(Ol=!0)),i=a}0!==Lc&&5!==Lc||Fl(t,!1),0!==Cl&&(Cl=0)}function Dl(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=-62914561&e.pendingLanes;0 title"):null)}function ad(e){return!!("stylesheet"!==e.type||3&e.state.loading)}var sd=0;function od(){if(this.count--,0===this.count&&(0===this.imgCount||!this.waitingForImages))if(this.stylesheets)cd(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}var ud=null;function cd(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,ud=new Map,t.forEach(ld,e),ud=null,od.call(e))}function ld(e,t){if(!(4&t.state.loading)){var n=ud.get(e);if(n)var r=n.get(null);else{n=new Map,ud.set(e,n);for(var i=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;ac});var r=n(58038),i=n(26015),a=n(36093),s=n(46644),o=n(1060),u=n(44166);function c(e,{emitOnBegin:t=!1,emitMissed:n=!1,onBlockNumber:c,onError:l,poll:f,pollingInterval:d=e.pollingInterval}){let h;return(void 0!==f?f:"webSocket"!==e.transport.type&&"ipc"!==e.transport.type&&("fallback"!==e.transport.type||"webSocket"!==e.transport.transports[0].config.type&&"ipc"!==e.transport.transports[0].config.type))?(()=>{const r=(0,o.A)(["watchBlockNumber",e.uid,t,n,d]);return(0,a.lB)(r,{onBlockNumber:c,onError:l},r=>(0,s.w)(async()=>{try{const t=await(0,i.T)(e,u.G,"getBlockNumber")({cacheTime:0});if(void 0!==h){if(t===h)return;if(t-h>1&&n)for(let e=h+1n;eh)&&(r.onBlockNumber(t,h),h=t)}catch(e){r.onError?.(e)}},{emitOnBegin:t,interval:d}))})():(()=>{const i=(0,o.A)(["watchBlockNumber",e.uid,t,n]);return(0,a.lB)(i,{onBlockNumber:c,onError:l},t=>{let n=!0,i=()=>n=!1;return(async()=>{try{const a=(()=>{if("fallback"===e.transport.type){const t=e.transport.transports.find(e=>"webSocket"===e.config.type||"ipc"===e.config.type);return t?t.value:e.transport}return e.transport})(),{unsubscribe:s}=await a.subscribe({params:["newHeads"],onData(e){if(!n)return;const i=(0,r.uU)(e.result?.number);t.onBlockNumber(i,h),h=i},onError(e){t.onError?.(e)}});i=s,n||i()}catch(e){l?.(e)}})(),()=>i()})})()}},77411(e,t,n){"use strict";n.d(t,{l:()=>a});var r=n(2273),i=n(61355);function a(e,t){const n=(e.details||"").toLowerCase(),a=e instanceof r.C?e.walk(e=>e?.code===i.A7.code):e;return a instanceof r.C?new i.A7({cause:e,message:a.details}):i.A7.nodeMessage.test(n)?new i.A7({cause:e,message:e.details}):i.BG.nodeMessage.test(n)?new i.BG({cause:e,maxFeePerGas:t?.maxFeePerGas}):i.jj.nodeMessage.test(n)?new i.jj({cause:e,maxFeePerGas:t?.maxFeePerGas}):i.K0.nodeMessage.test(n)?new i.K0({cause:e,nonce:t?.nonce}):i.Oh.nodeMessage.test(n)?new i.Oh({cause:e,nonce:t?.nonce}):i.vW.nodeMessage.test(n)?new i.vW({cause:e,nonce:t?.nonce}):i.k5.nodeMessage.test(n)?new i.k5({cause:e}):i.lY.nodeMessage.test(n)?new i.lY({cause:e,gas:t?.gas}):i.Fo.nodeMessage.test(n)?new i.Fo({cause:e,gas:t?.gas}):i.uC.nodeMessage.test(n)?new i.uC({cause:e}):i.lN.nodeMessage.test(n)?new i.lN({cause:e,maxFeePerGas:t?.maxFeePerGas,maxPriorityFeePerGas:t?.maxPriorityFeePerGas}):new i.RM({cause:e})}},77561(e,t,n){"use strict";var r=n(11644),i=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=f;var a=Object.create(n(1833));a.inherits=n(33213);var s=n(90639),o=n(6179);a.inherits(f,s);for(var u=i(o.prototype),c=0;ca});var r=n(75209);const i={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"};function a(e,t){const n={};return void 0!==e.authorizationList&&(n.authorizationList=e.authorizationList.map(e=>({address:e.address,r:e.r?(0,r.cK)(BigInt(e.r)):e.r,s:e.s?(0,r.cK)(BigInt(e.s)):e.s,chainId:(0,r.cK)(e.chainId),nonce:(0,r.cK)(e.nonce),...void 0!==e.yParity?{yParity:(0,r.cK)(e.yParity)}:{},...void 0!==e.v&&void 0===e.yParity?{v:(0,r.cK)(e.v)}:{}}))),void 0!==e.accessList&&(n.accessList=e.accessList),void 0!==e.blobVersionedHashes&&(n.blobVersionedHashes=e.blobVersionedHashes),void 0!==e.blobs&&("string"!=typeof e.blobs[0]?n.blobs=e.blobs.map(e=>(0,r.My)(e)):n.blobs=e.blobs),void 0!==e.data&&(n.data=e.data),e.account&&(n.from=e.account.address),void 0!==e.from&&(n.from=e.from),void 0!==e.gas&&(n.gas=(0,r.cK)(e.gas)),void 0!==e.gasPrice&&(n.gasPrice=(0,r.cK)(e.gasPrice)),void 0!==e.maxFeePerBlobGas&&(n.maxFeePerBlobGas=(0,r.cK)(e.maxFeePerBlobGas)),void 0!==e.maxFeePerGas&&(n.maxFeePerGas=(0,r.cK)(e.maxFeePerGas)),void 0!==e.maxPriorityFeePerGas&&(n.maxPriorityFeePerGas=(0,r.cK)(e.maxPriorityFeePerGas)),void 0!==e.nonce&&(n.nonce=(0,r.cK)(e.nonce)),void 0!==e.to&&(n.to=e.to),void 0!==e.type&&(n.type=i[e.type]),void 0!==e.value&&(n.value=(0,r.cK)(e.value)),n}},77701(e,t,n){"use strict";n.d(t,{U:()=>a});var r=n(74014),i=n(31763);function a(e){const{batch:t,chain:n,ccipRead:a,key:s="base",name:o="Base Client",type:u="base"}=e,c=e.experimental_blockTag??("number"==typeof n?.experimental_preconfirmationTime?"pending":void 0),l=n?.blockTime??12e3,f=Math.min(Math.max(Math.floor(l/2),500),4e3),d=e.pollingInterval??f,h=e.cacheTime??d,p=e.account?(0,r.J)(e.account):void 0,{config:m,request:y,value:b}=e.transport({account:p,chain:n,pollingInterval:d}),g={account:p,batch:t,cacheTime:h,ccipRead:a,chain:n,key:s,name:o,pollingInterval:d,request:y,transport:{...m,...b},type:u,uid:(0,i.L)(),...c?{experimental_blockTag:c}:{}};return Object.assign(g,{extend:function e(t){return n=>{const r=n(t);for(const e in g)delete r[e];const i={...t,...r};return Object.assign(i,{extend:e(i)})}}(g)})}},77805(e,t,n){"use strict";var r=t;r.base=n(14248),r.short=n(8983),r.mont=n(96359),r.edwards=n(31757)},77901(e,t,n){"use strict";var r=n(33213),i=n(96811),a=n(72258).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],o=new Array(80);function u(){this.init(),this._w=o,i.call(this,64,56)}function c(e){return e<<5|e>>>27}function l(e){return e<<30|e>>>2}function f(e,t,n,r){return 0===e?t&n|~t&r:2===e?t&n|t&r|n&r:t^n^r}r(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(e){for(var t=this._w,n=0|this._a,r=0|this._b,i=0|this._c,a=0|this._d,o=0|this._e,u=0;u<16;++u)t[u]=e.readInt32BE(4*u);for(;u<80;++u)t[u]=t[u-3]^t[u-8]^t[u-14]^t[u-16];for(var d=0;d<80;++d){var h=~~(d/20),p=c(n)+f(h,r,i,a)+o+t[d]+s[h]|0;o=a,a=i,i=l(r),r=n,n=p}this._a=n+this._a|0,this._b=r+this._b|0,this._c=i+this._c|0,this._d=a+this._d|0,this._e=o+this._e|0},u.prototype._hash=function(){var e=a.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=u},77962(e,t,n){"use strict";n.d(t,{$N:()=>d,CB:()=>f,Do:()=>c,dK:()=>l,dv:()=>i,fA:()=>a,gb:()=>o,kg:()=>u,sN:()=>s});var r=n(35156);r.lm;const i=r.dv,a=r.fA,s=r.sN,o=r.gb,u=(r.$I,r.vk,r.mO,r.kg),c=(r.pM,r.Do),l=r.dK,f=(r.L8,r.CB),d=(r.zL,r.M1,r.$N)},77971(e,t,n){var r=n(72258).Buffer;function i(e,t,n){for(var r,i,s=-1,o=0;++s<8;)r=t&1<<7-s?128:0,o+=(128&(i=e._cipher.encryptBlock(e._prev)[0]^r))>>s%8,e._prev=a(e._prev,n?r:i);return o}function a(e,t){var n=e.length,i=-1,a=r.allocUnsafe(e.length);for(e=r.concat([e,r.from([t])]);++i>7;return a}t.encrypt=function(e,t,n){for(var a=t.length,s=r.allocUnsafe(a),o=-1;++op});var r=n(58074),i=n(85327),a=n(26015),s=n(36093),o=n(3320),u=n(50693),c=n(1060),l=n(13940),f=n(12129),d=n(9481),h=n(77156);async function p(e,t){const{checkReplacement:n=!0,confirmations:p=1,hash:m,onReplaced:y,retryCount:b=6,retryDelay:g=({count:e})=>200*(1<{T?.(),x?.(),N(new i.WA({hash:m}))},v):void 0;return x=(0,s.lB)(w,{onReplaced:y,resolve:A,reject:N},async t=>{if(k=await(0,a.T)(e,d.h,"getTransactionReceipt")({hash:m}).catch(()=>{}),k&&p<=1)return clearTimeout(P),t.resolve(k),void x?.();T=(0,a.T)(e,h.q,"watchBlockNumber")({emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:_,async onBlockNumber(s){const o=e=>{clearTimeout(P),T?.(),e(),x?.()};let c=s;if(!M)try{if(k){if(p>1&&(!k.blockNumber||c-k.blockNumber+1nt.resolve(k))}if(n&&!S&&(M=!0,await(0,u.b)(async()=>{S=await(0,a.T)(e,f.x,"getTransaction")({hash:m}),S.blockNumber&&(c=S.blockNumber)},{delay:g,retryCount:b}),M=!1),k=await(0,a.T)(e,d.h,"getTransactionReceipt")({hash:m}),p>1&&(!k.blockNumber||c-k.blockNumber+1nt.resolve(k))}catch(n){if(n instanceof i.Kz||n instanceof i.Kc){if(!S)return void(M=!1);try{E=S,M=!0;const n=await(0,u.b)(()=>(0,a.T)(e,l.g,"getBlock")({blockNumber:c,includeTransactions:!0}),{delay:g,retryCount:b,shouldRetry:({error:e})=>e instanceof r.l});M=!1;const i=n.transactions.find(({from:e,nonce:t})=>e===E.from&&t===E.nonce);if(!i)return;if(k=await(0,a.T)(e,d.h,"getTransactionReceipt")({hash:i.hash}),p>1&&(!k.blockNumber||c-k.blockNumber+1n{t.onReplaced?.({reason:s,replacedTransaction:E,transaction:i,transactionReceipt:k}),t.resolve(k)})}catch(e){o(()=>t.reject(e))}}else o(()=>t.reject(n))}}})}),I}},78451(e,t,n){"use strict";n.d(t,{R:()=>h});var r=n(70121),i=n(2273);class a extends i.C{constructor(e){super(`Filter type "${e}" is not supported.`,{name:"FilterTypeNotSupportedError"})}}var s=n(81127),o=n(35593),u=n(18056),c=n(28780),l=n(75672),f=n(75879);const d="/docs/contract/encodeEventTopics";function h(e){const{abi:t,eventName:n,args:i}=e;let a=t[0];if(n){const e=(0,f.iY)({abi:t,name:n});if(!e)throw new r.M_(n,{docsPath:d});a=e}if("event"!==a.type)throw new r.M_(void 0,{docsPath:d});const s=(0,l.B)(a),o=(0,u.h)(s);let c=[];if(i&&"inputs"in a){const e=a.inputs?.filter(e=>"indexed"in e&&e.indexed),t=Array.isArray(i)?i:Object.values(i).length>0?e?.map(e=>i[e.name])??[]:[];t.length>0&&(c=e?.map((e,n)=>Array.isArray(t[n])?t[n].map((r,i)=>p({param:e,value:t[n][i]})):void 0!==t[n]&&null!==t[n]?p({param:e,value:t[n]}):null)??[])}return[o,...c]}function p({param:e,value:t}){if("string"===e.type||"bytes"===e.type)return(0,o.S)((0,s.ZJ)(t));if("tuple"===e.type||e.type.match(/^(.*)\[(\d+)?\]$/))throw new a(e.type);return(0,c.h)([e],[t])}},78821(e,t,n){"use strict";var r=n(40371).Buffer,i=n(28929);function a(e,t,n){e.copy(t,n)}e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},e.prototype.concat=function(e){if(0===this.length)return r.alloc(0);for(var t=r.allocUnsafe(e>>>0),n=this.head,i=0;n;)a(n.data,t,i),i+=n.data.length,n=n.next;return t},e}(),i&&i.inspect&&i.inspect.custom&&(e.exports.prototype[i.inspect.custom]=function(){var e=i.inspect({length:this.length});return this.constructor.name+" "+e})},79050(e,t,n){var r=n(21379),i=n(85984),a=n(67779),s=n(36455),o=n(81207);function u(e,t,n){if(e=e.toLowerCase(),a[e])return i.createCipheriv(e,t,n);if(s[e])return new r({key:t,iv:n,mode:e});throw new TypeError("invalid suite type")}function c(e,t,n){if(e=e.toLowerCase(),a[e])return i.createDecipheriv(e,t,n);if(s[e])return new r({key:t,iv:n,mode:e,decrypt:!0});throw new TypeError("invalid suite type")}t.createCipher=t.Cipher=function(e,t){var n,r;if(e=e.toLowerCase(),a[e])n=a[e].key,r=a[e].iv;else{if(!s[e])throw new TypeError("invalid suite type");n=8*s[e].key,r=s[e].iv}var i=o(t,!1,n,r);return u(e,i.key,i.iv)},t.createCipheriv=t.Cipheriv=u,t.createDecipher=t.Decipher=function(e,t){var n,r;if(e=e.toLowerCase(),a[e])n=a[e].key,r=a[e].iv;else{if(!s[e])throw new TypeError("invalid suite type");n=8*s[e].key,r=s[e].iv}var i=o(t,!1,n,r);return c(e,i.key,i.iv)},t.createDecipheriv=t.Decipheriv=c,t.listCiphers=t.getCiphers=function(){return Object.keys(s).concat(i.getCiphers())}},79383(e,t,n){"use strict";n.d(t,{Am:()=>R,sF:()=>F});var r=n(28062),i=n(47726),a=n(84468),s=n(59329),o=n(91269),u=n(75169),c=n(28876),l=n(36708),f=n(66949),d=n(76524);const h="InvalidData",p="MissingData",m="SourceUnavailable",y="Unsupported",b=Symbol.for("effect/ConfigError"),g={_tag:"ConfigError",[b]:b},v=(e,t)=>{const n=Object.create(g);return n._op="And",n.left=e,n.right=t,Object.defineProperty(n,"toString",{enumerable:!1,value(){return`${this.left} and ${this.right}`}}),Object.defineProperty(n,"message",{enumerable:!1,get(){return this.toString()}}),n},w=(e,t)=>{const n=Object.create(g);return n._op="Or",n.left=e,n.right=t,Object.defineProperty(n,"toString",{enumerable:!1,value(){return`${this.left} or ${this.right}`}}),Object.defineProperty(n,"message",{enumerable:!1,get(){return this.toString()}}),n},_=(e,t,n={pathDelim:"."})=>{const i=Object.create(g);return i._op=h,i.path=e,i.message=t,Object.defineProperty(i,"toString",{enumerable:!1,value(){return`(Invalid data at ${(0,s.Fs)(this.path,r.fj(n.pathDelim))}: "${this.message}")`}}),i},S=(e,t,n={pathDelim:"."})=>{const i=Object.create(g);return i._op=p,i.path=e,i.message=t,Object.defineProperty(i,"toString",{enumerable:!1,value(){return`(Missing data at ${(0,s.Fs)(this.path,r.fj(n.pathDelim))}: "${this.message}")`}}),i},E=(e,t,n,i={pathDelim:"."})=>{const a=Object.create(g);return a._op=m,a.path=e,a.message=t,a.cause=n,Object.defineProperty(a,"toString",{enumerable:!1,value(){return`(Source unavailable at ${(0,s.Fs)(this.path,r.fj(i.pathDelim))}: "${this.message}")`}}),a},k=(e,t,n={pathDelim:"."})=>{const i=Object.create(g);return i._op=y,i.path=e,i.message=t,Object.defineProperty(i,"toString",{enumerable:!1,value(){return`(Unsupported operation at ${(0,s.Fs)(this.path,r.fj(n.pathDelim))}: "${this.message}")`}}),i},x=(0,s.XY)(2,(e,t)=>{switch(e._op){case"And":return v(x(e.left,t),x(e.right,t));case"Or":return w(x(e.left,t),x(e.right,t));case h:return _([...t,...e.path],e.message);case p:return S([...t,...e.path],e.message);case m:return E([...t,...e.path],e.message,e.cause);case y:return k([...t,...e.path],e.message)}});s.f4,s.ue,s.f4,s.f4;var T=n(84025);const M={_tag:"Empty"},I=(0,s.XY)(2,(e,t)=>{let n=T.of(t),i=e;for(;T.ae(n);){const e=n.head;switch(e._tag){case"Empty":n=n.tail;break;case"AndThen":n=T.qu(e.first,T.qu(e.second,n.tail));break;case"MapName":i=r.Tj(i,e.f),n=n.tail;break;case"Nested":i=r.Hs(i,e.name),n=n.tail;break;case"Unnested":if(!(0,s.Fs)(r.d5(i),l.gR(e.name)))return a.kb(S(i,`Expected ${e.name} to be in path in ConfigProvider#unnested`));i=r.Rx(i),n=n.tail}}return a.pG(i)});var A=n(89921),N=n(42649);const P=(e,t)=>[...e,...t],O=Symbol.for("effect/ConfigProvider"),R=i.Io("effect/ConfigProvider"),C=Symbol.for("effect/ConfigProviderFlat"),B=e=>({[O]:O,pipe(){return(0,f.tT)(this,arguments)},...e}),F=e=>{const{pathDelim:t,seqDelim:n}=Object.assign({},{pathDelim:"_",seqDelim:","},e),i=()=>void 0!==N&&"env"in N&&"object"==typeof N.env?N.env:{};return a=(e=>({[C]:C,patch:e.patch,load:(t,n,r=!0)=>e.load(t,n,r),enumerateChildren:e.enumerateChildren}))({load:(e,a,o=!0)=>{const u=(e=>(0,s.Fs)(e,r.fj(t)))(e),c=i(),f=u in c?l.zN(c[u]):l.dv();return(0,s.Fs)(f,A.xm_(()=>S(e,`Expected ${u} to exist in the process context`)),A.qIB(t=>D(t,e,a,n,o)))},enumerateChildren:e=>A.OH5(()=>{const n=i(),a=Object.keys(n).map(e=>e.toUpperCase().split(t)).filter(t=>{for(let n=0;nt.slice(e.length,e.length+1));return u.Ts(a)}),patch:M}),B({load:e=>A.qIB(L(a,r.Ie(),e,!1),t=>l.YW(r.d5(t),{onNone:()=>A.fJG(S(r.Ie(),`Expected a single value having structure: ${e}`)),onSome:A.PyW})),flattened:a});var a},L=(e,t,n,i)=>{const u=n;switch(u._tag){case"Constant":return A.PyW(r.of(u.value));case"Described":return A.DYE(()=>L(e,t,u.config,i));case"Fail":return A.fJG(S(t,u.message));case"Fallback":return(0,s.Fs)(A.DYE(()=>L(e,t,u.first,i)),A.h9N(n=>u.condition(n)?(0,s.Fs)(L(e,t,u.second,i),A.h9N(e=>A.fJG(w(n,e)))):A.fJG(n)));case"Lazy":return A.DYE(()=>L(e,t,u.config(),i));case"MapOrFail":return A.DYE(()=>(0,s.Fs)(L(e,t,u.original,i),A.qIB(A.CFK(e=>(0,s.Fs)(u.mapOrFail(e),A.xm_(x(((e,t)=>{let n=t;if("Nested"===n._tag){const t=e.slice();for(;"Nested"===n._tag;)t.push(n.name),n=n.config;return t}return e})(t,u.original))))))));case"Nested":return A.DYE(()=>L(e,P(t,r.of(u.name)),u.config,i));case"Primitive":return(0,s.Fs)(I(t,e.patch),A.qIB(t=>(0,s.Fs)(e.load(t,u,i),A.qIB(e=>{if(0===e.length){const e=(0,s.Fs)(r.HV(t),l.WL(()=>""));return A.fJG(S([],`Expected ${u.description} with name ${e}`))}return A.PyW(e)}))));case"Sequence":return(0,s.Fs)(I(t,e.patch),A.qIB(n=>(0,s.Fs)(e.enumerateChildren(n),A.qIB(z),A.qIB(n=>0===n.length?A.DYE(()=>A.TjK(L(e,t,u.config,!0),r.of)):(0,s.Fs)(A.CFK(n,n=>L(e,r.BC(t,`[${n}]`),u.config,!0)),A.TjK(e=>{const t=r.Bq(e);return 0===t.length?r.of(r.Ie()):r.of(t)}))))));case"HashMap":return A.DYE(()=>(0,s.Fs)(I(t,e.patch),A.qIB(t=>(0,s.Fs)(e.enumerateChildren(t),A.qIB(n=>(0,s.Fs)(n,A.CFK(n=>L(e,P(t,r.of(n)),u.valueConfig,i)),A.TjK(e=>0===e.length?r.of(o.Ie()):(0,s.Fs)(U(e),r.Tj(e=>o.Ts(r.yU(r.Ts(n),e)))))))))));case"ZipWith":return A.DYE(()=>(0,s.Fs)(L(e,t,u.left,i),A.gPK,A.qIB(n=>(0,s.Fs)(L(e,t,u.right,i),A.gPK,A.qIB(e=>{if(a.OC(n)&&a.OC(e))return A.fJG(v(n.left,e.left));if(a.OC(n)&&a.FG(e))return A.fJG(n.left);if(a.FG(n)&&a.OC(e))return A.fJG(e.left);if(a.FG(n)&&a.FG(e)){const i=(0,s.Fs)(t,r.fj(".")),o=j(t,i),[c,f]=((e,t,n,i)=>{const a=r.t8(n.length,t=>t>=i.length?l.dv():l.zN([e(t),t+1])),s=r.t8(i.length,e=>e>=n.length?l.dv():l.zN([t(e),e+1]));return[P(n,a),P(i,s)]})(o,o,(0,s.Fs)(n.right,r.Tj(a.pG)),(0,s.Fs)(e.right,r.Tj(a.pG)));return(0,s.Fs)(c,r.yU(f),A.CFK(([e,t])=>(0,s.Fs)(A.yU6(e,t),A.TjK(([e,t])=>u.zip(e,t)))))}throw new Error("BUG: ConfigProvider.fromFlatLoop - please report an issue at https://github.com/Effect-TS/effect/issues")})))))}},j=(e,t)=>n=>a.kb(S(e,`The element at index ${n} in a sequence at path "${t}" was missing`)),D=(e,t,n,i,a)=>a?(0,s.Fs)(((e,t)=>e.split(new RegExp(`\\s*${d.i(t)}\\s*`)))(e,i),A.CFK(e=>n.parse(e.trim())),A.xm_(x(t))):(0,s.Fs)(n.parse(e),A.UcN({onFailure:x(t),onSuccess:r.of})),U=e=>Object.keys(e[0]).map(t=>e.map(e=>e[t])),z=e=>(0,s.Fs)(A.CFK(e,V),A.UcN({onFailure:()=>r.Ie(),onSuccess:r.di(c.pH)}),A.gPK,A.TjK(a.h1)),$=/^(\[(\d+)\])$/,V=e=>{const t=e.match($);if(null!==t){const e=t[2];return(0,s.Fs)(void 0!==e&&e.length>0?l.zN(e):l.dv(),l.qI(K))}return l.dv()},K=e=>{const t=Number.parseInt(e);return Number.isNaN(t)?l.dv():l.zN(t)}},79553(e,t,n){"use strict";var r=n(95894),i=n(85889),a=i([r("%String.prototype.indexOf%")]);e.exports=function(e,t){var n=r(e,!!t);return"function"==typeof n&&a(e,".prototype.")>-1?i([n]):n}},79601(e,t,n){"use strict";var r=n(97103),i=n(45366);function a(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=a,a.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var i=0;i>>24&255,r[i++]=e>>>16&255,r[i++]=e>>>8&255,r[i++]=255&e}else for(r[i++]=255&e,r[i++]=e>>>8&255,r[i++]=e>>>16&255,r[i++]=e>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,a=8;au,iq:()=>a,uP:()=>o,zF:()=>s});var r=n(95775),i=n(2273);class a extends i.C{constructor({maxSize:e,size:t}){super("Blob size is too large.",{metaMessages:[`Max: ${e} bytes`,`Given: ${t} bytes`],name:"BlobSizeTooLargeError"})}}class s extends i.C{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class o extends i.C{constructor({hash:e,size:t}){super(`Versioned hash "${e}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${t}`],name:"InvalidVersionedHashSizeError"})}}class u extends i.C{constructor({hash:e,version:t}){super(`Versioned hash "${e}" version is invalid.`,{metaMessages:[`Expected: ${r.E}`,`Received: ${t}`],name:"InvalidVersionedHashVersionError"})}}},80960(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=new Uint32Array([0,1,0,32898,2147483648,32906,2147483648,2147516416,0,32907,0,2147483649,2147483648,2147516545,2147483648,32777,0,138,0,136,0,2147516425,0,2147483658,0,2147516555,2147483648,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,0,32778,2147483648,2147483658,2147483648,2147516545,2147483648,32896,0,2147483649,2147483648,2147516424]);t.default=n},81127(e,t,n){"use strict";n.d(t,{Af:()=>d,ZJ:()=>c,aT:()=>f});var r=n(2273),i=n(84015),a=n(92155),s=n(58038),o=n(75209);const u=new TextEncoder;function c(e,t={}){return"number"==typeof e||"bigint"==typeof e?function(e,t){return f((0,o.cK)(e,t))}(e,t):"boolean"==typeof e?function(e,t={}){const n=new Uint8Array(1);return n[0]=Number(e),"number"==typeof t.size?((0,s.Sl)(n,{size:t.size}),(0,a.eV)(n,{size:t.size})):n}(e,t):(0,i.q)(e)?f(e,t):d(e,t)}function l(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function f(e,t={}){let n=e;t.size&&((0,s.Sl)(n,{size:t.size}),n=(0,a.eV)(n,{dir:"right",size:t.size}));let i=n.slice(2);i.length%2&&(i=`0${i}`);const o=i.length/2,u=new Uint8Array(o);for(let e=0,t=0;e>>l,s[(c+1)%2]=u<>>l,(0,a.default)(s,0)(t,d),(0,a.default)(n,0)(s,0)}}},81207(e,t,n){var r=n(72258).Buffer,i=n(10457);e.exports=function(e,t,n,a){if(r.isBuffer(e)||(e=r.from(e,"binary")),t&&(r.isBuffer(t)||(t=r.from(t,"binary")),8!==t.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var s=n/8,o=r.alloc(s),u=r.alloc(a||0),c=r.alloc(0);s>0||a>0;){var l=new i;l.update(c),l.update(e),t&&l.update(t),c=l.digest();var f=0;if(s>0){var d=o.length-s;f=Math.min(s,c.length),c.copy(o,d,0,f),s-=f}if(f0){var h=u.length-a,p=Math.min(a,c.length-f);c.copy(u,h,f,f+p),a-=p}}return c.fill(0),{key:o,iv:u}}},81271(e,t,n){"use strict";var r=n(97103),i=n(45366);function a(e,t,n){if(!(this instanceof a))return new a(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(r.toArray(t,n))}e.exports=a,a.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),i(e.length<=this.blockSize);for(var t=e.length;t>>0},t.writeUInt32BE=function(e,t,n){e[0+n]=t>>>24,e[1+n]=t>>>16&255,e[2+n]=t>>>8&255,e[3+n]=255&t},t.ip=function(e,t,n,r){for(var i=0,a=0,s=6;s>=0;s-=2){for(var o=0;o<=24;o+=8)i<<=1,i|=t>>>o+s&1;for(o=0;o<=24;o+=8)i<<=1,i|=e>>>o+s&1}for(s=6;s>=0;s-=2){for(o=1;o<=25;o+=8)a<<=1,a|=t>>>o+s&1;for(o=1;o<=25;o+=8)a<<=1,a|=e>>>o+s&1}n[r+0]=i>>>0,n[r+1]=a>>>0},t.rip=function(e,t,n,r){for(var i=0,a=0,s=0;s<4;s++)for(var o=24;o>=0;o-=8)i<<=1,i|=t>>>o+s&1,i<<=1,i|=e>>>o+s&1;for(s=4;s<8;s++)for(o=24;o>=0;o-=8)a<<=1,a|=t>>>o+s&1,a<<=1,a|=e>>>o+s&1;n[r+0]=i>>>0,n[r+1]=a>>>0},t.pc1=function(e,t,n,r){for(var i=0,a=0,s=7;s>=5;s--){for(var o=0;o<=24;o+=8)i<<=1,i|=t>>o+s&1;for(o=0;o<=24;o+=8)i<<=1,i|=e>>o+s&1}for(o=0;o<=24;o+=8)i<<=1,i|=t>>o+s&1;for(s=1;s<=3;s++){for(o=0;o<=24;o+=8)a<<=1,a|=t>>o+s&1;for(o=0;o<=24;o+=8)a<<=1,a|=e>>o+s&1}for(o=0;o<=24;o+=8)a<<=1,a|=e>>o+s&1;n[r+0]=i>>>0,n[r+1]=a>>>0},t.r28shl=function(e,t){return e<>>28-t};var n=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];t.pc2=function(e,t,r,i){for(var a=0,s=0,o=n.length>>>1,u=0;u>>n[u]&1;for(u=o;u>>n[u]&1;r[i+0]=a>>>0,r[i+1]=s>>>0},t.expand=function(e,t,n){var r=0,i=0;r=(1&e)<<5|e>>>27;for(var a=23;a>=15;a-=4)r<<=6,r|=e>>>a&63;for(a=11;a>=3;a-=4)i|=e>>>a&63,i<<=6;i|=(31&e)<<1|e>>>31,t[n+0]=r>>>0,t[n+1]=i>>>0};var r=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];t.substitute=function(e,t){for(var n=0,i=0;i<4;i++)n<<=4,n|=r[64*i+(e>>>18-6*i&63)];for(i=0;i<4;i++)n<<=4,n|=r[256+64*i+(t>>>18-6*i&63)];return n>>>0};var i=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];t.permute=function(e){for(var t=0,n=0;n>>i[n]&1;return t>>>0},t.padSplit=function(e,t,n){for(var r=e.toString(2);r.lengthi,m:()=>r});const r="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",i="0x0000000000000000000000000000000000000000"},81699(e,t,n){var r=n(73730).Buffer,i=n(24554),a=n(23145);e.exports=function(e){return new o(e)};var s={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};function o(e){this.curveType=s[e],this.curveType||(this.curveType={name:e}),this.curve=new i.ec(this.curveType.name),this.keys=void 0}function u(e,t,n){Array.isArray(e)||(e=e.toArray());var i=new r(e);if(n&&i.length>>24]^l[p>>>16&255]^f[m>>>8&255]^d[255&y]^t[b++],s=c[p>>>24]^l[m>>>16&255]^f[y>>>8&255]^d[255&h]^t[b++],o=c[m>>>24]^l[y>>>16&255]^f[h>>>8&255]^d[255&p]^t[b++],u=c[y>>>24]^l[h>>>16&255]^f[p>>>8&255]^d[255&m]^t[b++],h=a,p=s,m=o,y=u;return a=(r[h>>>24]<<24|r[p>>>16&255]<<16|r[m>>>8&255]<<8|r[255&y])^t[b++],s=(r[p>>>24]<<24|r[m>>>16&255]<<16|r[y>>>8&255]<<8|r[255&h])^t[b++],o=(r[m>>>24]<<24|r[y>>>16&255]<<16|r[h>>>8&255]<<8|r[255&p])^t[b++],u=(r[y>>>24]<<24|r[h>>>16&255]<<16|r[p>>>8&255]<<8|r[255&m])^t[b++],[a>>>=0,s>>>=0,o>>>=0,u>>>=0]}var o=[0,1,2,4,8,16,32,64,128,27,54],u=function(){for(var e=new Array(256),t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;for(var n=[],r=[],i=[[],[],[],[]],a=[[],[],[],[]],s=0,o=0,u=0;u<256;++u){var c=o^o<<1^o<<2^o<<3^o<<4;c=c>>>8^255&c^99,n[s]=c,r[c]=s;var l=e[s],f=e[l],d=e[f],h=257*e[c]^16843008*c;i[0][s]=h<<24|h>>>8,i[1][s]=h<<16|h>>>16,i[2][s]=h<<8|h>>>24,i[3][s]=h,h=16843009*d^65537*f^257*l^16843008*s,a[0][c]=h<<24|h>>>8,a[1][c]=h<<16|h>>>16,a[2][c]=h<<8|h>>>24,a[3][c]=h,0===s?s=o=1:(s=l^e[e[e[d^l]]],o^=e[e[o]])}return{SBOX:n,INV_SBOX:r,SUB_MIX:i,INV_SUB_MIX:a}}();function c(e){this._key=i(e),this._reset()}c.blockSize=16,c.keySize=32,c.prototype.blockSize=c.blockSize,c.prototype.keySize=c.keySize,c.prototype._reset=function(){for(var e=this._key,t=e.length,n=t+6,r=4*(n+1),i=[],a=0;a>>24,s=u.SBOX[s>>>24]<<24|u.SBOX[s>>>16&255]<<16|u.SBOX[s>>>8&255]<<8|u.SBOX[255&s],s^=o[a/t|0]<<24):t>6&&a%t===4&&(s=u.SBOX[s>>>24]<<24|u.SBOX[s>>>16&255]<<16|u.SBOX[s>>>8&255]<<8|u.SBOX[255&s]),i[a]=i[a-t]^s}for(var c=[],l=0;l>>24]]^u.INV_SUB_MIX[1][u.SBOX[d>>>16&255]]^u.INV_SUB_MIX[2][u.SBOX[d>>>8&255]]^u.INV_SUB_MIX[3][u.SBOX[255&d]]}this._nRounds=n,this._keySchedule=i,this._invKeySchedule=c},c.prototype.encryptBlockRaw=function(e){return s(e=i(e),this._keySchedule,u.SUB_MIX,u.SBOX,this._nRounds)},c.prototype.encryptBlock=function(e){var t=this.encryptBlockRaw(e),n=r.allocUnsafe(16);return n.writeUInt32BE(t[0],0),n.writeUInt32BE(t[1],4),n.writeUInt32BE(t[2],8),n.writeUInt32BE(t[3],12),n},c.prototype.decryptBlock=function(e){var t=(e=i(e))[1];e[1]=e[3],e[3]=t;var n=s(e,this._invKeySchedule,u.INV_SUB_MIX,u.INV_SBOX,this._nRounds),a=r.allocUnsafe(16);return a.writeUInt32BE(n[0],0),a.writeUInt32BE(n[3],4),a.writeUInt32BE(n[2],8),a.writeUInt32BE(n[1],12),a},c.prototype.scrub=function(){a(this._keySchedule),a(this._invKeySchedule),a(this._key)},e.exports.AES=c},82150(e,t,n){"use strict";n.d(t,{EQ:()=>o});var r=n(2273),i=n(7411),a=n(81127),s=n(75209);function o(e,t="hex"){const n=u(e),r=(0,i.l)(new Uint8Array(n.length));return n.encode(r),"hex"===t?(0,s.My)(r.bytes):r.bytes}function u(e){return Array.isArray(e)?function(e){const t=e.reduce((e,t)=>e+t.length,0),n=c(t);return{length:t<=55?1+t:1+n+t,encode(r){t<=55?r.pushByte(192+t):(r.pushByte(247+n),1===n?r.pushUint8(t):2===n?r.pushUint16(t):3===n?r.pushUint24(t):r.pushUint32(t));for(const{encode:t}of e)t(r)}}}(e.map(e=>u(e))):function(e){const t="string"==typeof e?(0,a.aT)(e):e,n=c(t.length);return{length:1===t.length&&t[0]<128?1:t.length<=55?1+t.length:1+n+t.length,encode(e){1===t.length&&t[0]<128?e.pushBytes(t):t.length<=55?(e.pushByte(128+t.length),e.pushBytes(t)):(e.pushByte(183+n),1===n?e.pushUint8(t.length):2===n?e.pushUint16(t.length):3===n?e.pushUint24(t.length):e.pushUint32(t.length),e.pushBytes(t))}}}(e)}function c(e){if(e<256)return 1;if(e<65536)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new r.C("Length is too large.")}},82849(e,t,n){"use strict";var r,i,a=n(72258).Buffer,s=n(68379),o=n(55116),u=n(76035),c=n(98839),l=n.g.crypto&&n.g.crypto.subtle,f={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},d=[];function h(){return i||(i=n.g.process&&n.g.process.nextTick?n.g.process.nextTick:n.g.queueMicrotask?n.g.queueMicrotask:n.g.setImmediate?n.g.setImmediate:n.g.setTimeout)}function p(e,t,n,r,i){return l.importKey("raw",e,{name:"PBKDF2"},!1,["deriveBits"]).then(function(e){return l.deriveBits({name:"PBKDF2",salt:t,iterations:n,hash:{name:i}},e,r<<3)}).then(function(e){return a.from(e)})}e.exports=function(e,t,i,m,y,b){if("function"==typeof y&&(b=y,y=void 0),s(i,m),e=c(e,o,"Password"),t=c(t,o,"Salt"),"function"!=typeof b)throw new Error("No callback provided to pbkdf2");var g=f[(y=y||"sha1").toLowerCase()];g&&"function"==typeof n.g.Promise?function(e,t){e.then(function(e){h()(function(){t(null,e)})},function(e){h()(function(){t(e)})})}(function(e){if(n.g.process&&!n.g.process.browser)return Promise.resolve(!1);if(!l||!l.importKey||!l.deriveBits)return Promise.resolve(!1);if(void 0!==d[e])return d[e];var t=p(r=r||a.alloc(8),r,10,128,e).then(function(){return!0},function(){return!1});return d[e]=t,t}(g).then(function(n){return n?p(e,t,i,m,g):u(e,t,i,m,y)}),b):h()(function(){var n;try{n=u(e,t,i,m,y)}catch(e){return void b(e)}b(null,n)})}},82860(e){e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},82884(e,t,n){"use strict";n.d(t,{$J:()=>y,$P:()=>w,$X:()=>E,$y:()=>g,Bm:()=>c,Et:()=>s,Gv:()=>p,Kg:()=>a,Lm:()=>o,Pd:()=>d,Tn:()=>l,_3:()=>h,b0:()=>f,gd:()=>k,i5:()=>m,mg:()=>v,sI:()=>u,u4:()=>S,wD:()=>b,xZ:()=>_,zz:()=>i});var r=n(59329);const i=e=>!!e,a=e=>"string"==typeof e,s=e=>"number"==typeof e,o=e=>"boolean"==typeof e,u=e=>"bigint"==typeof e,c=e=>"symbol"==typeof e,l=r.Tn,f=e=>void 0===e,d=e=>!1,h=e=>"object"==typeof e&&null!==e,p=e=>h(e)||l(e),m=(0,r.XY)(2,(e,t)=>p(e)&&t in e),y=(0,r.XY)(2,(e,t)=>m(e,"_tag")&&e._tag===t),b=e=>null==e,g=e=>null!=e,v=e=>e instanceof Uint8Array,w=e=>e instanceof Date,_=e=>"string"==typeof e||m(e,Symbol.iterator),S=e=>h(e)&&!Array.isArray(e),E=e=>m(e,"then")&&l(e.then),k=e=>e instanceof RegExp},82988(e,t,n){"use strict";var r=n(45366),i=n(33213),a={};function s(e){r.equal(e.length,8,"Invalid IV length"),this.iv=new Array(8);for(var t=0;ty,v8:()=>p,$$:()=>m});var r=n(70121),i=n(83815),a=n(1060),s=n(2273);class o extends s.C{constructor({domain:e}){super(`Invalid domain "${(0,a.A)(e)}".`,{metaMessages:["Must be a valid EIP-712 domain."]})}}class u extends s.C{constructor({primaryType:e,types:t}){super(`Invalid primary type \`${e}\` must be one of \`${JSON.stringify(Object.keys(t))}\`.`,{docsPath:"/api/glossary/Errors#typeddatainvalidprimarytypeerror",metaMessages:["Check that the primary type is a key in `types`."]})}}class c extends s.C{constructor({type:e}){super(`Struct type "${e}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."],name:"InvalidStructTypeError"})}}var l=n(462),f=n(85501),d=n(75209),h=n(92546);function p(e){const{domain:t,message:n,primaryType:r,types:i}=e,s=(e,t)=>{const n={...t};for(const t of e){const{name:e,type:r}=t;"address"===r&&(n[e]=n[e].toLowerCase())}return n},o=i.EIP712Domain&&t?s(i.EIP712Domain,t):{},u=(()=>{if("EIP712Domain"!==r)return s(i[r],n)})();return(0,a.A)({domain:o,message:u,primaryType:r,types:i})}function m(e){const{domain:t,message:n,primaryType:a,types:s}=e,c=(e,t)=>{for(const n of e){const{name:e,type:a}=n,o=t[e],u=a.match(h.Ge);if(u&&("number"==typeof o||"bigint"==typeof o)){const[e,t,n]=u;(0,d.cK)(o,{signed:"int"===t,size:Number.parseInt(n,10)/8})}if("address"===a&&"string"==typeof o&&!(0,l.P)(o))throw new i.M({address:o});const p=a.match(h.BD);if(p){const[e,t]=p;if(t&&(0,f.E)(o)!==Number.parseInt(t,10))throw new r.BI({expectedSize:Number.parseInt(t,10),givenSize:(0,f.E)(o)})}const m=s[a];m&&(b(a),c(m,o))}};if(s.EIP712Domain&&t){if("object"!=typeof t)throw new o({domain:t});c(s.EIP712Domain,t)}if("EIP712Domain"!==a){if(!s[a])throw new u({primaryType:a,types:s});c(s[a],n)}}function y({domain:e}){return["string"==typeof e?.name&&{name:"name",type:"string"},e?.version&&{name:"version",type:"string"},("number"==typeof e?.chainId||"bigint"==typeof e?.chainId)&&{name:"chainId",type:"uint256"},e?.verifyingContract&&{name:"verifyingContract",type:"address"},e?.salt&&{name:"salt",type:"bytes32"}].filter(Boolean)}function b(e){if("address"===e||"bool"===e||"string"===e||e.startsWith("bytes")||e.startsWith("uint")||e.startsWith("int"))throw new c({type:e})}},83439(e,t,n){"use strict";var r=n(41065),i=n(92079),a=n(64781);e.exports=r?function(e){return r(e)}:i?function(e){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new TypeError("getProto: not an object");return i(e)}:a?function(e){return a(e)}:null},83506(e,t,n){"use strict";var r=n(45366),i=n(33213),a=n(81675),s=n(50007);function o(){this.tmp=new Array(2),this.keys=null}function u(e){s.call(this,e);var t=new o;this._desState=t,this.deriveKeys(t,e.key)}i(u,s),e.exports=u,u.create=function(e){return new u(e)};var c=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];u.prototype.deriveKeys=function(e,t){e.keys=new Array(32),r.equal(t.length,this.blockSize,"Invalid key length");var n=a.readUInt32BE(t,0),i=a.readUInt32BE(t,4);a.pc1(n,i,e.tmp,0),n=e.tmp[0],i=e.tmp[1];for(var s=0;s>>1];n=a.r28shl(n,o),i=a.r28shl(i,o),a.pc2(n,i,e.keys,s)}},u.prototype._update=function(e,t,n,r){var i=this._desState,s=a.readUInt32BE(e,t),o=a.readUInt32BE(e,t+4);a.ip(s,o,i.tmp,0),s=i.tmp[0],o=i.tmp[1],"encrypt"===this.type?this._encrypt(i,s,o,i.tmp,0):this._decrypt(i,s,o,i.tmp,0),s=i.tmp[0],o=i.tmp[1],a.writeUInt32BE(n,s,r),a.writeUInt32BE(n,o,r+4)},u.prototype._pad=function(e,t){if(!1===this.padding)return!1;for(var n=e.length-t,r=t;r>>0,s=d}a.rip(o,s,r,i)},u.prototype._decrypt=function(e,t,n,r,i){for(var s=n,o=t,u=e.keys.length-2;u>=0;u-=2){var c=e.keys[u],l=e.keys[u+1];a.expand(s,e.tmp,0),c^=e.tmp[0],l^=e.tmp[1];var f=a.substitute(c,l),d=s;s=(o^a.permute(f))>>>0,o=d}a.rip(s,o,r,i)}},83815(e,t,n){"use strict";n.d(t,{M:()=>i});var r=n(2273);class i extends r.C{constructor({address:e}){super(`Address "${e}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}},83835(e,t,n){"use strict";n.d(t,{v:()=>i});var r=n(57834);function i({chain:e,currentChainId:t}){if(!e)throw new r.jF;if(t!==e.id)throw new r.EH({chain:e,currentChainId:t})}},84015(e,t,n){"use strict";function r(e,{strict:t=!0}={}){return!!e&&"string"==typeof e&&(t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x"))}n.d(t,{q:()=>r})},84025(e,t,n){"use strict";n.d(t,{BE:()=>A,Hs:()=>T,Ie:()=>E,TS:()=>I,ae:()=>_,gD:()=>w,of:()=>k,qu:()=>S,u2:()=>x});var r=n(28062),i=n(72529),a=n(91893),s=n(59329),o=n(46385),u=n(12717),c=n(66949),l=n(82884);const f=Symbol.for("effect/List"),d=e=>r.Ts(e),h=(e=>a.zQ(r.bt(e),d))(i.aI),p={[f]:f,_tag:"Cons",toString(){return(0,u.GP)(this.toJSON())},toJSON(){return{_id:"List",_tag:"Cons",values:d(this).map(u.U2)}},[u.FX](){return this.toJSON()},[i.HR](e){return v(e)&&this._tag===e._tag&&h(this,e)},[o.HR](){return o.PO(this,o.YO(d(this)))},[Symbol.iterator](){let e=!1,t=this;return{next(){if(e)return this.return();if("Nil"===t._tag)return e=!0,this.return();const n=t.head;return t=t.tail,{done:e,value:n}},return:t=>(e||(e=!0),{done:!0,value:t})}},pipe(){return(0,c.tT)(this,arguments)}},m=(e,t)=>{const n=Object.create(p);return n.head=e,n.tail=t,n},y=o.Yj("Nil"),b={[f]:f,_tag:"Nil",toString(){return(0,u.GP)(this.toJSON())},toJSON:()=>({_id:"List",_tag:"Nil"}),[u.FX](){return this.toJSON()},[o.HR]:()=>y,[i.HR](e){return v(e)&&this._tag===e._tag},[Symbol.iterator]:()=>({next:()=>({done:!0,value:void 0})}),pipe(){return(0,c.tT)(this,arguments)}},g=Object.create(b),v=e=>(0,l.i5)(e,f),w=e=>"Nil"===e._tag,_=e=>"Cons"===e._tag,S=(e,t)=>m(e,t),E=()=>g,k=e=>m(e,g),x=(0,s.XY)(2,(e,t)=>M(t,e)),T=(0,s.XY)(2,(e,t)=>S(t,e)),M=(0,s.XY)(2,(e,t)=>{if(w(e))return t;if(w(t))return e;{const n=m(t.head,e);let r=n,i=t.tail;for(;!w(i);){const t=m(i.head,e);r.tail=t,r=t,i=i.tail}return n}}),I=(0,s.XY)(3,(e,t,n)=>{let r=t,i=e;for(;!w(i);)r=n(r,i.head),i=i.tail;return r}),A=e=>{let t=E(),n=e;for(;!w(n);)t=T(t,n.head),n=n.tail;return t}},84468(e,t,n){"use strict";n.d(t,{FG:()=>d,Gu:()=>g,OC:()=>f,Sv:()=>c,Tj:()=>m,Uc:()=>h,Wc:()=>l,YW:()=>y,h1:()=>b,kb:()=>o,n4:()=>v,pG:()=>s,qE:()=>p,sV:()=>u});var r=n(59329),i=n(56802),a=n(82884);i.ii;const s=i.pG,o=i.kb,u=i.sV,c=e=>{if((0,a.Tn)(e))try{return s(e())}catch(e){return o(e)}else try{return s(e.try())}catch(t){return o(e.catch(t))}},l=i.Wc,f=i.OC,d=i.FG,h=(i.j4,i.Gp,(0,r.XY)(2,(e,{onLeft:t,onRight:n})=>f(e)?o(t(e.left)):s(n(e.right)))),p=(0,r.XY)(2,(e,t)=>f(e)?o(t(e.left)):s(e.right)),m=(0,r.XY)(2,(e,t)=>d(e)?s(t(e.right)):o(e.left)),y=(0,r.XY)(2,(e,{onLeft:t,onRight:n})=>f(e)?t(e.left):n(e.right)),b=y({onLeft:r.D_,onRight:r.D_}),g=(0,r.XY)(2,(e,t)=>{if(d(e))return e.right;throw t(e.left)}),v=g(()=>new Error("getOrThrow called on a Left"))},84722(e,t,n){"use strict";n.d(t,{HN:()=>u,Ie:()=>a,b8:()=>o,sS:()=>s});var r=n(91484),i=n(56312);const a=i.Ie,s=(i.L8,i.sS),o=i.b8,u=(i.Im,i.$m,i.Ol,i.d6,i.$m,i.hg,i.WP,i.gP,i.HN);i.DI,r.qB,r.Vh,r.hY},85144(e,t,n){"use strict";n.d(t,{W:()=>u});var r=n(74014),i=n(88924),a=n(66893),s=n(26015),o=n(93543);async function u(e,t){const{abi:n,address:u,args:c,functionName:l,dataSuffix:f,...d}=t,h=(0,i.p)({abi:n,args:c,functionName:l});try{return await(0,s.T)(e,o.Q,"estimateGas")({data:`${h}${f?f.replace("0x",""):""}`,to:u,...d})}catch(e){const t=d.account?(0,r.J)(d.account):void 0;throw(0,a.j)(e,{abi:n,address:u,args:c,docsPath:"/docs/contract/estimateContractGas",functionName:l,sender:t?.address})}}},85327(e,t,n){"use strict";n.d(t,{$s:()=>l,Kc:()=>d,Kz:()=>f,Sq:()=>h,Vg:()=>u,WA:()=>p,aO:()=>s,fZ:()=>c,zW:()=>o});var r=n(49925),i=n(60077),a=n(2273);function s(e){const t=Object.entries(e).map(([e,t])=>void 0===t||!1===t?null:[e,t]).filter(Boolean),n=t.reduce((e,[t])=>Math.max(e,t.length),0);return t.map(([e,t])=>` ${`${e}:`.padEnd(n+1)} ${t}`).join("\n")}a.C;class o extends a.C{constructor({v:e}){super(`Invalid \`v\` value "${e}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class u extends a.C{constructor({transaction:e}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",s(e),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}}a.C,a.C;class c extends a.C{constructor({storageKey:e}){super(`Size for storage key "${e}" is invalid. Expected 32 bytes. Got ${Math.floor((e.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}}class l extends a.C{constructor(e,{account:t,docsPath:n,chain:a,data:o,gas:u,gasPrice:c,maxFeePerGas:l,maxPriorityFeePerGas:f,nonce:d,to:h,value:p}){const m=s({chain:a&&`${a?.name} (id: ${a?.id})`,from:t?.address,to:h,value:void 0!==p&&`${(0,r.c)(p)} ${a?.nativeCurrency?.symbol||"ETH"}`,data:o,gas:u,gasPrice:void 0!==c&&`${(0,i.Q)(c)} gwei`,maxFeePerGas:void 0!==l&&`${(0,i.Q)(l)} gwei`,maxPriorityFeePerGas:void 0!==f&&`${(0,i.Q)(f)} gwei`,nonce:d});super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],"Request Arguments:",m].filter(Boolean),name:"TransactionExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=e}}class f extends a.C{constructor({blockHash:e,blockNumber:t,blockTag:n,hash:r,index:i}){let a="Transaction";n&&void 0!==i&&(a=`Transaction at block time "${n}" at index "${i}"`),e&&void 0!==i&&(a=`Transaction at block hash "${e}" at index "${i}"`),t&&void 0!==i&&(a=`Transaction at block number "${t}" at index "${i}"`),r&&(a=`Transaction with hash "${r}"`),super(`${a} could not be found.`,{name:"TransactionNotFoundError"})}}class d extends a.C{constructor({hash:e}){super(`Transaction receipt with hash "${e}" could not be found. The Transaction may not be processed on a block yet.`,{name:"TransactionReceiptNotFoundError"})}}class h extends a.C{constructor({receipt:e}){super(`Transaction with hash "${e.transactionHash}" reverted.`,{metaMessages:['The receipt marked the transaction as "reverted". This could mean that the function on the contract you are trying to call threw an error.'," ","You can attempt to extract the revert reason by:","- calling the `simulateContract` or `simulateCalls` Action with the `abi` and `functionName` of the contract","- using the `call` Action with raw `data`"],name:"TransactionReceiptRevertedError"}),Object.defineProperty(this,"receipt",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.receipt=e}}class p extends a.C{constructor({hash:e}){super(`Timed out while waiting for transaction with hash "${e}" to be confirmed.`,{name:"WaitForTransactionReceiptTimeoutError"})}}},85501(e,t,n){"use strict";n.d(t,{E:()=>i});var r=n(84015);function i(e){return(0,r.q)(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}},85889(e,t,n){"use strict";var r=n(62460),i=n(4002),a=n(17821),s=n(6255);e.exports=function(e){if(e.length<1||"function"!=typeof e[0])throw new i("a function is required");return s(r,a,e)}},85984(e,t,n){var r=n(29562),i=n(50786),a=n(64464);t.createCipher=t.Cipher=r.createCipher,t.createCipheriv=t.Cipheriv=r.createCipheriv,t.createDecipher=t.Decipher=i.createDecipher,t.createDecipheriv=t.Decipheriv=i.createDecipheriv,t.listCiphers=t.getCiphers=function(){return Object.keys(a)}},86020(e,t,n){"use strict";n.d(t,{G:()=>r,Z:()=>i});const r=[{type:"constructor",inputs:[{name:"salt",internalType:"bytes32",type:"bytes32"},{name:"_incoVerifier",internalType:"contract IIncoVerifier",type:"address"}],stateMutability:"nonpayable"},{type:"fallback",stateMutability:"nonpayable"},{type:"function",inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"account",internalType:"address",type:"address"}],name:"allow",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"account",internalType:"address",type:"address"}],name:"allowTransient",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"account",internalType:"address",type:"address"}],name:"allowedTransient",outputs:[{name:"",internalType:"bool",type:"bool"}],stateMutability:"view"},{type:"function",inputs:[{name:"value",internalType:"address",type:"address"}],name:"asEaddress",outputs:[{name:"newEaddress",internalType:"eaddress",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"value",internalType:"bool",type:"bool"}],name:"asEbool",outputs:[{name:"newEbool",internalType:"ebool",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"value",internalType:"uint256",type:"uint256"}],name:"asEuint256",outputs:[{name:"newEuint256",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"proof",internalType:"struct AllowanceProof",type:"tuple",components:[{name:"sharer",internalType:"address",type:"address"},{name:"voucher",internalType:"struct AllowanceVoucher",type:"tuple",components:[{name:"sessionNonce",internalType:"bytes32",type:"bytes32"},{name:"verifyingContract",internalType:"address",type:"address"},{name:"callFunction",internalType:"bytes4",type:"bytes4"},{name:"sharerArgData",internalType:"bytes",type:"bytes"}]},{name:"voucherSignature",internalType:"bytes",type:"bytes"},{name:"requesterArgData",internalType:"bytes",type:"bytes"}]}],name:"claimHandle",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"cleanTransientStorage",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eAdd",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"bytes32",type:"bytes32"},{name:"rhs",internalType:"bytes32",type:"bytes32"}],name:"eBitAnd",outputs:[{name:"result",internalType:"bytes32",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"bytes32",type:"bytes32"},{name:"rhs",internalType:"bytes32",type:"bytes32"}],name:"eBitOr",outputs:[{name:"result",internalType:"bytes32",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"bytes32",type:"bytes32"},{name:"rhs",internalType:"bytes32",type:"bytes32"}],name:"eBitXor",outputs:[{name:"result",internalType:"bytes32",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"ct",internalType:"bytes32",type:"bytes32"},{name:"toType",internalType:"enum ETypes",type:"uint8"}],name:"eCast",outputs:[{name:"result",internalType:"bytes32",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eDiv",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"bytes32",type:"bytes32"},{name:"rhs",internalType:"bytes32",type:"bytes32"}],name:"eEq",outputs:[{name:"result",internalType:"ebool",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eGe",outputs:[{name:"result",internalType:"ebool",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eGt",outputs:[{name:"result",internalType:"ebool",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"control",internalType:"ebool",type:"bytes32"},{name:"ifTrue",internalType:"bytes32",type:"bytes32"},{name:"ifFalse",internalType:"bytes32",type:"bytes32"}],name:"eIfThenElse",outputs:[{name:"result",internalType:"bytes32",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eLe",outputs:[{name:"result",internalType:"ebool",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eLt",outputs:[{name:"result",internalType:"ebool",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eMax",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eMin",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eMul",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"bytes32",type:"bytes32"},{name:"rhs",internalType:"bytes32",type:"bytes32"}],name:"eNe",outputs:[{name:"result",internalType:"ebool",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"operand",internalType:"ebool",type:"bytes32"}],name:"eNot",outputs:[{name:"result",internalType:"ebool",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"randType",internalType:"enum ETypes",type:"uint8"}],name:"eRand",outputs:[{name:"result",internalType:"bytes32",type:"bytes32"}],stateMutability:"payable"},{type:"function",inputs:[{name:"upperBound",internalType:"bytes32",type:"bytes32"},{name:"randType",internalType:"enum ETypes",type:"uint8"}],name:"eRandBounded",outputs:[{name:"result",internalType:"bytes32",type:"bytes32"}],stateMutability:"payable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eRem",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eRotl",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eRotr",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eShl",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eShr",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eSub",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"getEventCounter",outputs:[{name:"",internalType:"uint256",type:"uint256"}],stateMutability:"view"},{type:"function",inputs:[],name:"getFee",outputs:[{name:"",internalType:"uint256",type:"uint256"}],stateMutability:"pure"},{type:"function",inputs:[],name:"getMajorVersion",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[],name:"getName",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[],name:"getNextEventId",outputs:[{name:"",internalType:"uint256",type:"uint256"}],stateMutability:"view"},{type:"function",inputs:[{name:"op",internalType:"enum EOps",type:"uint8"},{name:"returnType",internalType:"enum ETypes",type:"uint8"},{name:"packedInputs",internalType:"bytes",type:"bytes"}],name:"getOpResultHandle",outputs:[{name:"generatedHandle",internalType:"bytes32",type:"bytes32"}],stateMutability:"pure"},{type:"function",inputs:[{name:"plaintextBytes",internalType:"bytes32",type:"bytes32"},{name:"handleType",internalType:"enum ETypes",type:"uint8"}],name:"getTrivialEncryptHandle",outputs:[{name:"generatedHandle",internalType:"bytes32",type:"bytes32"}],stateMutability:"pure"},{type:"function",inputs:[],name:"getVersion",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[],name:"getVersionedName",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[],name:"incoVerifier",outputs:[{name:"",internalType:"contract IIncoVerifier",type:"address"}],stateMutability:"view"},{type:"function",inputs:[{name:"owner",internalType:"address",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"account",internalType:"address",type:"address"}],name:"isAllowed",outputs:[{name:"",internalType:"bool",type:"bool"}],stateMutability:"view"},{type:"function",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"}],name:"isRevealed",outputs:[{name:"",internalType:"bool",type:"bool"}],stateMutability:"view"},{type:"function",inputs:[],name:"majorVersion",outputs:[{name:"",internalType:"uint8",type:"uint8"}],stateMutability:"view"},{type:"function",inputs:[],name:"minorVersion",outputs:[{name:"",internalType:"uint8",type:"uint8"}],stateMutability:"view"},{type:"function",inputs:[{name:"input",internalType:"bytes",type:"bytes"},{name:"user",internalType:"address",type:"address"}],name:"newEaddress",outputs:[{name:"newValue",internalType:"eaddress",type:"bytes32"}],stateMutability:"payable"},{type:"function",inputs:[{name:"input",internalType:"bytes",type:"bytes"},{name:"user",internalType:"address",type:"address"}],name:"newEbool",outputs:[{name:"newValue",internalType:"ebool",type:"bytes32"}],stateMutability:"payable"},{type:"function",inputs:[{name:"input",internalType:"bytes",type:"bytes"},{name:"user",internalType:"address",type:"address"}],name:"newEuint256",outputs:[{name:"newValue",internalType:"euint256",type:"bytes32"}],stateMutability:"payable"},{type:"function",inputs:[],name:"owner",outputs:[{name:"",internalType:"address",type:"address"}],stateMutability:"view"},{type:"function",inputs:[],name:"patchVersion",outputs:[{name:"",internalType:"uint8",type:"uint8"}],stateMutability:"view"},{type:"function",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"account",internalType:"address",type:"address"}],name:"persistAllowed",outputs:[{name:"",internalType:"bool",type:"bool"}],stateMutability:"view"},{type:"function",inputs:[],name:"proxiableUUID",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"}],name:"reveal",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"salt",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[{name:"newOwner",internalType:"address",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"newImplementation",internalType:"address",type:"address"},{name:"data",internalType:"bytes",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable"},{type:"event",anonymous:!1,inputs:[{name:"handle",internalType:"bytes32",type:"bytes32",indexed:!1},{name:"account",internalType:"address",type:"address",indexed:!1},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"Allow"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EAdd"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"rhs",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"result",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EBitAnd"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"rhs",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"result",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EBitOr"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"rhs",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"result",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EBitXor"},{type:"event",anonymous:!1,inputs:[{name:"ct",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"toType",internalType:"uint8",type:"uint8",indexed:!0},{name:"result",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ECast"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EDiv"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"rhs",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"result",internalType:"ebool",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EEq"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"ebool",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EGe"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"ebool",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EGt"},{type:"event",anonymous:!1,inputs:[{name:"control",internalType:"ebool",type:"bytes32",indexed:!1},{name:"ifTrue",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"ifFalse",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"result",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EIfThenElse"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"ebool",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ELe"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"ebool",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ELt"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EMax"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EMin"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EMul"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"rhs",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"result",internalType:"ebool",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ENe"},{type:"event",anonymous:!1,inputs:[{name:"operand",internalType:"ebool",type:"bytes32",indexed:!0},{name:"result",internalType:"ebool",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ENot"},{type:"event",anonymous:!1,inputs:[{name:"counter",internalType:"uint256",type:"uint256",indexed:!0},{name:"randType",internalType:"enum ETypes",type:"uint8",indexed:!1},{name:"result",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ERand"},{type:"event",anonymous:!1,inputs:[{name:"counter",internalType:"uint256",type:"uint256",indexed:!0},{name:"randType",internalType:"enum ETypes",type:"uint8",indexed:!1},{name:"upperBound",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"result",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ERandBounded"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ERem"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ERotl"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ERotr"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EShl"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EShr"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ESub"},{type:"event",anonymous:!1,inputs:[{name:"version",internalType:"uint64",type:"uint64",indexed:!1}],name:"Initialized"},{type:"event",anonymous:!1,inputs:[{name:"result",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"contractAddress",internalType:"address",type:"address",indexed:!0},{name:"user",internalType:"address",type:"address",indexed:!0},{name:"ciphertext",internalType:"bytes",type:"bytes",indexed:!1},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"NewInput"},{type:"event",anonymous:!1,inputs:[{name:"previousOwner",internalType:"address",type:"address",indexed:!0},{name:"newOwner",internalType:"address",type:"address",indexed:!0}],name:"OwnershipTransferred"},{type:"event",anonymous:!1,inputs:[{name:"handle",internalType:"bytes32",type:"bytes32",indexed:!1},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"Reveal"},{type:"event",anonymous:!1,inputs:[{name:"result",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"plainTextBytes",internalType:"bytes32",type:"bytes32",indexed:!1},{name:"handleType",internalType:"enum ETypes",type:"uint8",indexed:!1},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"TrivialEncrypt"},{type:"event",anonymous:!1,inputs:[{name:"implementation",internalType:"address",type:"address",indexed:!0}],name:"Upgraded"},{type:"error",inputs:[{name:"target",internalType:"address",type:"address"}],name:"AddressEmptyCode"},{type:"error",inputs:[{name:"implementation",internalType:"address",type:"address"}],name:"ERC1967InvalidImplementation"},{type:"error",inputs:[],name:"ERC1967NonPayable"},{type:"error",inputs:[{name:"externalHandle",internalType:"bytes32",type:"bytes32"},{name:"computedHandle",internalType:"bytes32",type:"bytes32"},{name:"chainId",internalType:"uint256",type:"uint256"},{name:"aclAddress",internalType:"address",type:"address"},{name:"userAddress",internalType:"address",type:"address"},{name:"contractAddress",internalType:"address",type:"address"}],name:"ExternalHandleDoesNotMatchComputedHandle"},{type:"error",inputs:[],name:"FailedCall"},{type:"error",inputs:[],name:"FeeNotPaid"},{type:"error",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"}],name:"HandleAlreadyExists"},{type:"error",inputs:[],name:"InvalidInitialization"},{type:"error",inputs:[],name:"InvalidShortString"},{type:"error",inputs:[],name:"NotInitializing"},{type:"error",inputs:[{name:"owner",internalType:"address",type:"address"}],name:"OwnableInvalidOwner"},{type:"error",inputs:[{name:"account",internalType:"address",type:"address"}],name:"OwnableUnauthorizedAccount"},{type:"error",inputs:[{name:"verifyingContract",internalType:"address",type:"address"},{name:"callFunction",internalType:"bytes4",type:"bytes4"},{name:"argData",internalType:"bytes",type:"bytes"}],name:"ProofVerificationFailed"},{type:"error",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"sender",internalType:"address",type:"address"}],name:"SenderNotAllowedForHandle"},{type:"error",inputs:[{name:"str",internalType:"string",type:"string"}],name:"StringTooLong"},{type:"error",inputs:[],name:"UUPSUnauthorizedCallContext"},{type:"error",inputs:[{name:"slot",internalType:"bytes32",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID"},{type:"error",inputs:[{name:"actual",internalType:"enum ETypes",type:"uint8"},{name:"expectedTypes",internalType:"bytes32",type:"bytes32"}],name:"UnexpectedType"},{type:"error",inputs:[{name:"actual",internalType:"enum ETypes",type:"uint8"}],name:"UnsupportedType"}],i=[{type:"constructor",inputs:[{name:"salt",internalType:"bytes32",type:"bytes32"}],stateMutability:"nonpayable"},{type:"fallback",stateMutability:"nonpayable"},{type:"function",inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[{name:"",internalType:"bytes32",type:"bytes32"},{name:"account",internalType:"address",type:"address"},{name:"sharerArgData",internalType:"bytes",type:"bytes"},{name:"",internalType:"bytes",type:"bytes"}],name:"canUseSession",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[],name:"getMajorVersion",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[],name:"getName",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[],name:"getVersion",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[],name:"getVersionedName",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[{name:"owner",internalType:"address",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"majorVersion",outputs:[{name:"",internalType:"uint8",type:"uint8"}],stateMutability:"view"},{type:"function",inputs:[],name:"minorVersion",outputs:[{name:"",internalType:"uint8",type:"uint8"}],stateMutability:"view"},{type:"function",inputs:[],name:"owner",outputs:[{name:"",internalType:"address",type:"address"}],stateMutability:"view"},{type:"function",inputs:[],name:"patchVersion",outputs:[{name:"",internalType:"uint8",type:"uint8"}],stateMutability:"view"},{type:"function",inputs:[],name:"proxiableUUID",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"salt",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[{name:"newOwner",internalType:"address",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"newImplementation",internalType:"address",type:"address"},{name:"data",internalType:"bytes",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable"},{type:"event",anonymous:!1,inputs:[{name:"version",internalType:"uint64",type:"uint64",indexed:!1}],name:"Initialized"},{type:"event",anonymous:!1,inputs:[{name:"previousOwner",internalType:"address",type:"address",indexed:!0},{name:"newOwner",internalType:"address",type:"address",indexed:!0}],name:"OwnershipTransferred"},{type:"event",anonymous:!1,inputs:[{name:"implementation",internalType:"address",type:"address",indexed:!0}],name:"Upgraded"},{type:"error",inputs:[{name:"target",internalType:"address",type:"address"}],name:"AddressEmptyCode"},{type:"error",inputs:[{name:"implementation",internalType:"address",type:"address"}],name:"ERC1967InvalidImplementation"},{type:"error",inputs:[],name:"ERC1967NonPayable"},{type:"error",inputs:[],name:"FailedCall"},{type:"error",inputs:[],name:"InvalidInitialization"},{type:"error",inputs:[],name:"InvalidShortString"},{type:"error",inputs:[],name:"NotInitializing"},{type:"error",inputs:[{name:"owner",internalType:"address",type:"address"}],name:"OwnableInvalidOwner"},{type:"error",inputs:[{name:"account",internalType:"address",type:"address"}],name:"OwnableUnauthorizedAccount"},{type:"error",inputs:[{name:"str",internalType:"string",type:"string"}],name:"StringTooLong"},{type:"error",inputs:[],name:"UUPSUnauthorizedCallContext"},{type:"error",inputs:[{name:"slot",internalType:"bytes32",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID"}]},86262(e){"use strict";e.exports=Object.getOwnPropertyDescriptor},86937(e,t,n){"use strict";n.d(t,{Au:()=>o,Fh:()=>a,Ie:()=>c,Jt:()=>i,rl:()=>s,vG:()=>u});var r=n(35191);r.gU,r.Rt,r.rQ,r.BG;const i=r.Jt,a=r.Fh,s=r.rl,o=r.Au,u=(r.aI,r.vG),c=(r.$N,r.Ie)},88096(e){"use strict";e.exports=EvalError},88196(e,t,n){"use strict";function r(e,{method:t}){const n={};return"fallback"===e.transport.type&&e.transport.onResponse?.(({method:e,response:r,status:i,transport:a})=>{"success"===i&&t===e&&(n[r]=a.request)}),t=>n[t]||e.request}n.d(t,{g:()=>r})},88881(e,t,n){var r=n(72258).Buffer,i=r.alloc(16,0);function a(e){var t=r.allocUnsafe(16);return t.writeUInt32BE(e[0]>>>0,0),t.writeUInt32BE(e[1]>>>0,4),t.writeUInt32BE(e[2]>>>0,8),t.writeUInt32BE(e[3]>>>0,12),t}function s(e){this.h=e,this.state=r.alloc(16,0),this.cache=r.allocUnsafe(0)}s.prototype.ghash=function(e){for(var t=-1;++t0;t--)r[t]=r[t]>>>1|(1&r[t-1])<<31;r[0]=r[0]>>>1,n&&(r[0]=r[0]^225<<24)}this.state=a(i)},s.prototype.update=function(e){var t;for(this.cache=r.concat([this.cache,e]);this.cache.length>=16;)t=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(t)},s.prototype.final=function(e,t){return this.cache.length&&this.ghash(r.concat([this.cache,i],16)),this.ghash(a([0,e,0,t])),this.state},e.exports=s},88924(e,t,n){"use strict";n.d(t,{p:()=>l});var r=n(33640),i=n(28780),a=n(70121),s=n(16720),o=n(75672),u=n(75879);const c="/docs/contract/encodeFunctionData";function l(e){const{args:t}=e,{abi:n,functionName:l}=1===e.abi.length&&e.functionName?.startsWith("0x")?e:function(e){const{abi:t,args:n,functionName:r}=e;let i=t[0];if(r){const e=(0,u.iY)({abi:t,args:n,name:r});if(!e)throw new a.Iz(r,{docsPath:c});i=e}if("function"!==i.type)throw new a.Iz(void 0,{docsPath:c});return{abi:[i],functionName:(0,s.V)((0,o.B)(i))}}(e),f=n[0],d=l,h="inputs"in f&&f.inputs?(0,i.h)(f.inputs,t??[]):void 0;return(0,r.aP)([d,h??"0x"])}},89068(e,t,n){"use strict";var r=n(64116);e.exports=function(e){return r(e)||0===e?e:e<0?-1:1}},89921(e,t,n){"use strict";n.d(t,{APi:()=>rn,$n1:()=>R,THF:()=>Mn,g1R:()=>Tn,nAV:()=>wn,owM:()=>vn,s2:()=>bn,jo7:()=>yn,PDv:()=>xn,kJg:()=>En,VwM:()=>Sn,yPL:()=>C,AlI:()=>pn,R8K:()=>hn,kWD:()=>nn,nv8:()=>Nn,igQ:()=>An,Uis:()=>Cn,VbV:()=>Rn,Wc6:()=>fn,jGc:()=>U,HTn:()=>_t,hgn:()=>he,as:()=>z,NLW:()=>$,bIC:()=>q,QUl:()=>Y,Z5i:()=>P,FgE:()=>ee,h9N:()=>G,uPo:()=>H,XWm:()=>W,_Oy:()=>X,ReC:()=>cn,R_7:()=>ln,_5X:()=>J,_OA:()=>Ur,d_m:()=>zr,D$Q:()=>Vt,Fi1:()=>Bt,CdZ:()=>Xt,LGt:()=>Jt,Umi:()=>jt,w6U:()=>Dt,krO:()=>Ut,KAb:()=>Lt,b1P:()=>Gt,pX6:()=>Kt,QPU:()=>Ft,S_H:()=>Hr,MP9:()=>Zt,BzD:()=>en,s$T:()=>tn,QYw:()=>Qt,bRS:()=>Yt,G2Y:()=>qt,IeY:()=>V,gn0:()=>_r,$1O:()=>Sr,ZI2:()=>Er,AR8:()=>Ar,lN4:()=>Nr,AsN:()=>kr,Ao:()=>xr,FIO:()=>Mr,un1:()=>Ir,jxG:()=>Tr,ZM1:()=>Pr,bdM:()=>Or,_fI:()=>Rr,WW4:()=>vr,sDf:()=>wr,vwO:()=>Cr,syF:()=>Br,BCV:()=>Fr,q_p:()=>Lr,MIt:()=>gr,F_Q:()=>te,GSS:()=>ne,Kbz:()=>re,gPK:()=>ie,NS5:()=>ae,VuY:()=>Un,Hox:()=>zn,n9O:()=>$n,Q9S:()=>Vn,V2G:()=>Kn,JUF:()=>Yn,Rkt:()=>qn,cbD:()=>Hn,ygP:()=>Gn,NG:()=>Wn,T12:()=>Xn,m_i:()=>Jn,eec:()=>Zn,Cau:()=>Qn,t9n:()=>er,_sz:()=>tr,h0c:()=>Fn,VE1:()=>Ln,dWJ:()=>Dn,CoE:()=>jn,v9O:()=>nr,EkE:()=>rr,zPu:()=>ir,o7R:()=>ar,Wtn:()=>sr,dDX:()=>or,xtk:()=>ur,x5l:()=>cr,cpb:()=>lr,TBR:()=>fr,pLZ:()=>hr,CrW:()=>pr,$sd:()=>mr,il9:()=>dr,wnO:()=>yr,fJG:()=>se,ATB:()=>ue,pVV:()=>ce,gOk:()=>oe,ABT:()=>le,g1G:()=>fe,U8_:()=>kt,uPR:()=>xt,woH:()=>It,q1t:()=>At,Ecz:()=>Tt,QID:()=>Nt,bzD:()=>Ot,_Pd:()=>Pt,sH6:()=>Rt,nlF:()=>Ct,_z2:()=>Yr,HyR:()=>qr,qIB:()=>de,Bqz:()=>me,UUz:()=>ye,D9k:()=>Qe,CFK:()=>we,QZV:()=>_e,JkU:()=>Ze,tDT:()=>Se,GaK:()=>Ee,_tB:()=>dt,OLv:()=>ft,IPo:()=>ke,Inz:()=>xe,eMl:()=>Te,_ig:()=>Me,yw5:()=>j,p2e:()=>In,xt1:()=>_n,OTT:()=>gn,QRo:()=>kn,MrQ:()=>mn,xUJ:()=>On,sAm:()=>Bn,whK:()=>ht,OM4:()=>gt,DxM:()=>mt,xah:()=>pt,VEq:()=>bt,zg6:()=>wt,_$:()=>vt,PuW:()=>yt,TjK:()=>Ie,UcN:()=>Ae,xm_:()=>Ne,kyh:()=>Kr,D$$:()=>be,khu:()=>ge,tvg:()=>ve,SLb:()=>Wt,ZmZ:()=>lt,bVS:()=>Wr,S5A:()=>Pe,cfM:()=>Oe,nAr:()=>Re,QgK:()=>Be,kS9:()=>Fe,NWQ:()=>Ce,RkE:()=>Q,rTm:()=>Le,PpN:()=>$r,$1l:()=>Vr,UFt:()=>O,m$m:()=>je,iLB:()=>an,Uio:()=>sn,vDJ:()=>on,Z$R:()=>un,PMw:()=>pe,PyW:()=>De,DYE:()=>Ue,OH5:()=>ze,Mim:()=>$e,x6Q:()=>Pn,sK9:()=>Ve,rfi:()=>Ye,FcF:()=>qe,t04:()=>K,$QS:()=>Ge,rIH:()=>He,iK2:()=>We,iMI:()=>Xe,KyM:()=>et,$we:()=>D,jDN:()=>$t,mHP:()=>tt,cay:()=>nt,FRe:()=>zt,nDN:()=>rt,MaT:()=>it,EYO:()=>Ht,m9E:()=>at,yU6:()=>st,piH:()=>ot,aNH:()=>ut,OYO:()=>ct});var r=n(28062),i=n(17388),a=n(47726),s=n(68449),o=n(84468),u=n(72529),c=n(77962),l=n(59329),f=n(55661),d=n(46385),h=n(91269),p=n(12717),m=n(84025),y=n(61346),b=n(36708),g=n(66949),v=n(82884),w=n(84722),_=n(95644),S=n(59688),E=n(34520),k=n(69995),x=n(20490),T=n(65668),M=n(73360),I=n(17442),A=n(91484);class N{self;called=!1;constructor(e){this.self=e}next(e){return this.called?{value:e,done:!0}:(this.called=!0,{value:this.self,done:!1})}return(e){return{value:e,done:!0}}throw(e){throw e}[Symbol.iterator](){return new N(this.self)}}const P=(e,t)=>{const n=new B("Blocked");return n.effect_instruction_i0=e,n.effect_instruction_i1=t,n},O=e=>{const t=new B("RunBlocked");return t.effect_instruction_i0=e,t},R=Symbol.for("effect/Effect");class C{patch;op;_op=I.Ni;constructor(e,t){this.patch=e,this.op=t}}class B{_op;effect_instruction_i0=void 0;effect_instruction_i1=void 0;effect_instruction_i2=void 0;trace=void 0;[R]=x.Hs;constructor(e){this._op=e}[u.HR](e){return this===e}[d.HR](){return d.PO(this,d.yT(this))}pipe(){return(0,g.tT)(this,arguments)}toJSON(){return{_id:"Effect",_op:this._op,effect_instruction_i0:(0,p.U2)(this.effect_instruction_i0),effect_instruction_i1:(0,p.U2)(this.effect_instruction_i1),effect_instruction_i2:(0,p.U2)(this.effect_instruction_i2)}}toString(){return(0,p.GP)(this.toJSON())}[p.FX](){return this.toJSON()}[Symbol.iterator](){return new N(new _.WT(this))}}class F{_op;effect_instruction_i0=void 0;effect_instruction_i1=void 0;effect_instruction_i2=void 0;trace=void 0;[R]=x.Hs;constructor(e){this._op=e,this._tag=e}[u.HR](e){return Fn(e)&&"Failure"===e._op&&u.aI(this.effect_instruction_i0,e.effect_instruction_i0)}[d.HR](){return(0,l.Fs)(d.Yj(this._tag),d.kg(d.tW(this.effect_instruction_i0)),d.PO(this))}get cause(){return this.effect_instruction_i0}pipe(){return(0,g.tT)(this,arguments)}toJSON(){return{_id:"Exit",_tag:this._op,cause:this.cause.toJSON()}}toString(){return(0,p.GP)(this.toJSON())}[p.FX](){return this.toJSON()}[Symbol.iterator](){return new N(new _.WT(this))}}class L{_op;effect_instruction_i0=void 0;effect_instruction_i1=void 0;effect_instruction_i2=void 0;trace=void 0;[R]=x.Hs;constructor(e){this._op=e,this._tag=e}[u.HR](e){return Fn(e)&&"Success"===e._op&&u.aI(this.effect_instruction_i0,e.effect_instruction_i0)}[d.HR](){return(0,l.Fs)(d.Yj(this._tag),d.kg(d.tW(this.effect_instruction_i0)),d.PO(this))}get value(){return this.effect_instruction_i0}pipe(){return(0,g.tT)(this,arguments)}toJSON(){return{_id:"Exit",_tag:this._op,value:(0,p.U2)(this.value)}}toString(){return(0,p.GP)(this.toJSON())}[p.FX](){return this.toJSON()}[Symbol.iterator](){return new N(new _.WT(this))}}const j=e=>(0,v.i5)(e,R),D=e=>{const t=new B(I.mm);return t.effect_instruction_i0=e,t},U=(0,l.XY)(3,(e,t,n)=>qe(r=>de(e,e=>de(ae(Ue(()=>r(t(e)))),t=>Ue(()=>n(e,t)).pipe(ge({onFailure:e=>{switch(t._tag){case I.N9:return ue(S.il(t.effect_instruction_i0,e));case I._l:return ue(e)}},onSuccess:()=>t})))))),z=(0,l.XY)(2,(e,t)=>de(e,()=>De(t))),$=e=>z(e,void 0),V=function(){const e=new B(I.kK);switch(arguments.length){case 2:e.effect_instruction_i0=arguments[0],e.commit=arguments[1];break;case 3:e.effect_instruction_i0=arguments[0],e.effect_instruction_i1=arguments[1],e.commit=arguments[2];break;case 4:e.effect_instruction_i0=arguments[0],e.effect_instruction_i1=arguments[1],e.effect_instruction_i2=arguments[2],e.commit=arguments[3];break;default:throw new Error((0,T.k)("you're not supposed to end up here"))}return e},K=(e,t=c.dv)=>{const n=new B(I.ZO);let r;return n.effect_instruction_i0=t=>{r=e(t)},n.effect_instruction_i1=t,Re(n,e=>j(r)?r:He)},Y=(e,t=c.dv)=>Ue(()=>K(e,t)),q=(e,t=c.dv)=>V(e,function(){let e,n;function r(t){e?e(t):void 0===n&&(n=t)}const i=new B(I.ZO);let a,s;return i.effect_instruction_i0=t=>{e=t,n&&t(n)},i.effect_instruction_i1=t,1!==this.effect_instruction_i0.length?(s=new AbortController,a=(0,_.sn)(()=>this.effect_instruction_i0(r,s.signal))):a=(0,_.sn)(()=>this.effect_instruction_i0(r)),a||s?Re(i,e=>(s&&s.abort(),a??He)):i}),H=(0,l.XY)(2,(e,t)=>{const n=new B(I.JJ);return n.effect_instruction_i0=e,n.effect_instruction_i1=t,n}),G=(0,l.XY)(2,(e,t)=>ve(e,{onFailure:t,onSuccess:De})),W=(0,l.XY)(3,(e,t,n)=>H(e,e=>{const r=S.vE(e);switch(r._tag){case"Left":return t(r.left)?n(r.left):ue(e);case"Right":return ue(r.right)}})),X=(0,l.XY)(2,(e,t)=>H(e,e=>{const n=S.vE(e);switch(n._tag){case"Left":return(0,l.Fs)(t(n.left),b.WL(()=>ue(e)));case"Right":return ue(n.right)}})),J=e=>D((t,n)=>e(A.YW(n.runtimeFlags))),Z=Symbol.for("effect/OriginalAnnotation"),Q=e=>(0,v.i5)(e,Z)?e[Z]:e,ee=(e,t)=>b.Ru(t)?new Proxy(e,{has:(e,t)=>t===S.Hn||t===Z||t in e,get:(n,r)=>r===S.Hn?t.value:r===Z?e:n[r]}):e,te=e=>(0,v.Gv)(e)&&!(S.Hn in e)?D(t=>ue(S.F_(ee(e,Hr(t))))):ue(S.F_(e)),ne=e=>ce(()=>S.F_(new pn(e))),re=e=>de(ze(e),te),ie=e=>ve(e,{onFailure:e=>De(o.kb(e)),onSuccess:e=>De(o.pG(e))}),ae=e=>be(e,{onFailure:Hn,onSuccess:ur}),se=e=>(0,v.Gv)(e)&&!(S.Hn in e)?D(t=>ue(S.fJ(ee(e,Hr(t))))):ue(S.fJ(e)),oe=e=>de(ze(e),se),ue=e=>{const t=new F(I.N9);return t.effect_instruction_i0=e,t},ce=e=>de(ze(e),ue),le=D(e=>De(e.id())),fe=e=>D(t=>e(t.id())),de=(0,l.XY)(2,(e,t)=>{const n=new B(I.Gj);return n.effect_instruction_i0=e,n.effect_instruction_i1=t,n}),he=(0,l.XY)(2,(e,t)=>de(e,e=>{const n="function"==typeof t?t(e):t;return j(n)?n:(0,v.$X)(n)?K(e=>{n.then(t=>e(De(t)),t=>e(se(new Cn(t,"An unknown error occurred in Effect.andThen"))))}):De(n)})),pe=e=>{const t=new B("OnStep");return t.effect_instruction_i0=e,t},me=e=>de(e,l.D_),ye=e=>ve(e,{onFailure:De,onSuccess:se}),be=(0,l.XY)(2,(e,t)=>ge(e,{onFailure:e=>De(t.onFailure(e)),onSuccess:e=>De(t.onSuccess(e))})),ge=(0,l.XY)(2,(e,t)=>{const n=new B(I.du);return n.effect_instruction_i0=e,n.effect_instruction_i1=t.onFailure,n.effect_instruction_i2=t.onSuccess,n}),ve=(0,l.XY)(2,(e,t)=>ge(e,{onFailure:e=>{if(S.RU(e).length>0)return ue(S.rA(e));const n=S.e9(e);return n.length>0?t.onFailure(i.z1(n)):ue(e)},onSuccess:t.onSuccess})),we=(0,l.XY)(2,(e,t)=>Ue(()=>{const n=r.Ts(e),i=r.CN(n.length);let a=0;return z(Xe({while:()=>at(n[a],a),step:e=>{i[a++]=e}}),i)})),_e=(0,l.XY)(2,(e,t)=>Ue(()=>{const n=r.Ts(e);let i=0;return Xe({while:()=>it(n[i],i),step:()=>{i++}})})),Se=(0,l.XY)(e=>"boolean"==typeof e[0]||j(e[0]),(e,t)=>j(e)?de(e,e=>e?t.onTrue():t.onFalse()):e?t.onTrue():t.onFalse()),Ee=de(le,e=>ke(e)),ke=e=>ue(S.G(e)),xe=e=>{const t=new B(I.NM);return t.effect_instruction_i0=w.sS(A._n),t.effect_instruction_i1=()=>e,t},Te=e=>V(e,function(){const e=new B(I.NM);return e.effect_instruction_i0=w.sS(A._n),e.effect_instruction_i1=e=>A.YW(e)?(0,_.sn)(()=>this.effect_instruction_i0(xe)):(0,_.sn)(()=>this.effect_instruction_i0(Ye)),e}),Me=(0,l.XY)(2,(e,t)=>qe(n=>de(ae(n(e)),e=>kr(t,e)))),Ie=(0,l.XY)(2,(e,t)=>de(e,e=>ze(()=>t(e)))),Ae=(0,l.XY)(2,(e,t)=>ve(e,{onFailure:e=>oe(()=>t.onFailure(e)),onSuccess:e=>ze(()=>t.onSuccess(e))})),Ne=(0,l.XY)(2,(e,t)=>ge(e,{onFailure:e=>{const n=S.vE(e);switch(n._tag){case"Left":return oe(()=>t(n.left));case"Right":return ue(n.right)}},onSuccess:De})),Pe=(0,l.XY)(2,(e,t)=>Oe(e,e=>jn(e)?He:t(e.effect_instruction_i0))),Oe=(0,l.XY)(2,(e,t)=>qe(n=>ge(n(e),{onFailure:e=>{const n=Hn(e);return ge(t(n),{onFailure:t=>Hn(S.il(e,t)),onSuccess:()=>n})},onSuccess:e=>{const n=ur(e);return ut(t(n),n)}}))),Re=(0,l.XY)(2,(e,t)=>Oe(e,sr({onFailure:e=>S.t9(e)?$(t(S.ml(e))):He,onSuccess:()=>He}))),Ce=(0,l.XY)(2,(e,t)=>Ke(e,t,De)),Be=e=>Fe(e,l.D_),Fe=(0,l.XY)(2,(e,t)=>ve(e,{onFailure:e=>te(t(e)),onSuccess:De})),Le=r.rT,je=D((e,t)=>De(t.runtimeFlags)),De=e=>{const t=new L(I._l);return t.effect_instruction_i0=e,t},Ue=e=>{const t=new B(I.kK);return t.commit=e,t},ze=e=>{const t=new B(I.EF);return t.effect_instruction_i0=e,t},$e=(0,l.XY)(e=>3===e.length||2===e.length&&!((0,v.Gv)(e[1])&&"onlyEffect"in e[1]),(e,t)=>de(e,e=>{const n="function"==typeof t?t(e):t;return j(n)?z(n,e):(0,v.$X)(n)?K(t=>{n.then(n=>t(De(e)),e=>t(se(new Cn(e,"An unknown error occurred in Effect.tap"))))}):De(e)})),Ve=e=>D(t=>{const n=t.getFiberRef(Xt),r=(0,l.Fs)(n,b.WL(()=>t.scope()));return e(It(Xt,b.zN(r)))}),Ke=(0,l.XY)(3,(e,t,n)=>ge(e,{onFailure:e=>S.RU(e).length>0?ue(b.n4(S.$7(e))):t(),onSuccess:n})),Ye=e=>{const t=new B(I.NM);return t.effect_instruction_i0=w.b8(A._n),t.effect_instruction_i1=()=>e,t},qe=e=>V(e,function(){const e=new B(I.NM);return e.effect_instruction_i0=w.b8(A._n),e.effect_instruction_i1=e=>A.YW(e)?(0,_.sn)(()=>this.effect_instruction_i0(xe)):(0,_.sn)(()=>this.effect_instruction_i0(Ye)),e}),He=De(void 0),Ge=e=>{const t=new B(I.NM);return t.effect_instruction_i0=e,t.effect_instruction_i1=void 0,t},We=(0,l.XY)(2,(e,t)=>de(t,t=>t?(0,l.Fs)(e,Ie(b.zN)):De(b.dv()))),Xe=e=>{const t=new B(I.mM);return t.effect_instruction_i0=e.while,t.effect_instruction_i1=e.body,t.effect_instruction_i2=e.step,t},Je=e=>Ue(()=>{const t=new B(I.xS);return t.effect_instruction_i0=e(),t}),Ze=function(){const e=1===arguments.length?arguments[0]:arguments[1].bind(arguments[0]);return Je(()=>e(l.Fs))},Qe=(e,...t)=>Object.defineProperty(0===t.length?function(...t){return Je(()=>e.apply(this,t))}:function(...n){let r=Je(()=>e.apply(this,n));for(const e of t)r=e(r,...n);return r},"length",{value:e.length,configurable:!0}),et=(0,l.XY)(2,(e,t)=>It(e,Vt,t)),tt=(0,l.XY)(2,(e,t)=>It(e,Kt,t)),nt=(0,l.XY)(2,(e,t)=>{const n=new B(I.NM);return n.effect_instruction_i0=t,n.effect_instruction_i1=()=>e,n}),rt=(0,l.XY)(2,(e,t)=>It(e,Zt,t)),it=(0,l.XY)(2,(e,t)=>It(e,Qt,t)),at=e=>{const t=new B(I.u4);return void 0!==e?.priority?zt(t,e.priority):t},st=(0,l.XY)(2,(e,t)=>de(e,e=>Ie(t,t=>[e,t]))),ot=(0,l.XY)(2,(e,t)=>de(e,e=>z(t,e))),ut=(0,l.XY)(2,(e,t)=>de(e,()=>t)),ct=(0,l.XY)(3,(e,t,n)=>de(e,e=>Ie(t,t=>n(e,t)))),lt=Y(()=>{const e=setInterval(()=>{},2**31-1);return ze(()=>clearInterval(e))}),ft=e=>de(le,t=>(0,l.Fs)(e,dt(t))),dt=(0,l.XY)(2,(e,t)=>de(e.interruptAsFork(t),()=>e.await)),ht={_tag:"All",syslog:0,label:"ALL",ordinal:Number.MIN_SAFE_INTEGER,pipe(){return(0,g.tT)(this,arguments)}},pt={_tag:"Fatal",syslog:2,label:"FATAL",ordinal:5e4,pipe(){return(0,g.tT)(this,arguments)}},mt={_tag:"Error",syslog:3,label:"ERROR",ordinal:4e4,pipe(){return(0,g.tT)(this,arguments)}},yt={_tag:"Warning",syslog:4,label:"WARN",ordinal:3e4,pipe(){return(0,g.tT)(this,arguments)}},bt={_tag:"Info",syslog:6,label:"INFO",ordinal:2e4,pipe(){return(0,g.tT)(this,arguments)}},gt={_tag:"Debug",syslog:7,label:"DEBUG",ordinal:1e4,pipe(){return(0,g.tT)(this,arguments)}},vt={_tag:"Trace",syslog:7,label:"TRACE",ordinal:0,pipe(){return(0,g.tT)(this,arguments)}},wt={_tag:"None",syslog:7,label:"OFF",ordinal:Number.MAX_SAFE_INTEGER,pipe(){return(0,g.tT)(this,arguments)}},_t=[ht,vt,gt,bt,yt,mt,pt,wt],St=Symbol.for("effect/FiberRef"),Et={_A:e=>e},kt=e=>D(t=>ur(t.getFiberRef(e))),xt=(0,l.XY)(2,(e,t)=>de(kt(e),t)),Tt=(0,l.XY)(2,(e,t)=>Mt(e,()=>[void 0,t])),Mt=(0,l.XY)(2,(e,t)=>D(n=>{const[r,i]=t(n.getFiberRef(e));return n.setFiberRef(e,i),De(r)}));d.HR,u.HR;const It=(0,l.XY)(3,(e,t,n)=>U(ot(kt(t),Tt(t,n)),()=>e,e=>Tt(t,e))),At=(0,l.XY)(3,(e,t,n)=>xt(t,r=>It(e,t,n(r)))),Nt=(e,t)=>Rt(e,{differ:k.yo(),fork:t?.fork??l.D_,join:t?.join}),Pt=e=>{const t=k.zI();return Rt(e,{differ:t,fork:t.empty})},Ot=e=>{const t=k.cA();return Rt(e,{differ:t,fork:t.empty})},Rt=(e,t)=>({...x.Em,[St]:Et,initial:e,commit(){return kt(this)},diff:(e,n)=>t.differ.diff(e,n),combine:(e,n)=>t.differ.combine(e,n),patch:e=>n=>t.differ.patch(e,n),fork:t.fork,join:t.join??((e,t)=>t)}),Ct=e=>Rt(e,{differ:A.Tx,fork:A.Tx.empty}),Bt=(0,f.V)(Symbol.for("effect/FiberRef/currentContext"),()=>Ot(a.Ie())),Ft=(0,f.V)(Symbol.for("effect/FiberRef/currentSchedulingPriority"),()=>Nt(0)),Lt=(0,f.V)(Symbol.for("effect/FiberRef/currentMaxOpsBeforeYield"),()=>Nt(2048)),jt=(0,f.V)(Symbol.for("effect/FiberRef/currentLogAnnotation"),()=>Nt(h.Ie())),Dt=(0,f.V)(Symbol.for("effect/FiberRef/currentLogLevel"),()=>Nt(bt)),Ut=(0,f.V)(Symbol.for("effect/FiberRef/currentLogSpan"),()=>Nt(m.Ie())),zt=(0,l.XY)(2,(e,t)=>It(e,Ft,t)),$t=(0,l.XY)(2,(e,t)=>It(e,Lt,t)),Vt=(0,f.V)(Symbol.for("effect/FiberRef/currentConcurrency"),()=>Nt("unbounded")),Kt=(0,f.V)(Symbol.for("effect/FiberRef/currentRequestBatching"),()=>Nt(!0)),Yt=(0,f.V)(Symbol.for("effect/FiberRef/currentUnhandledErrorLogLevel"),()=>Nt(b.zN(gt))),qt=(0,f.V)(Symbol.for("effect/FiberRef/versionMismatchErrorLogLevel"),()=>Nt(b.zN(yt))),Ht=(0,l.XY)(2,(e,t)=>It(e,Yt,t)),Gt=(0,f.V)(Symbol.for("effect/FiberRef/currentMetricLabels"),()=>(e=>{const t=k.QZ(k.yo());return Rt(e,{differ:t,fork:t.empty})})(r.Ie())),Wt=kt(Gt),Xt=(0,f.V)(Symbol.for("effect/FiberRef/currentForkScopeOverride"),()=>Nt(b.dv(),{fork:()=>b.dv(),join:(e,t)=>e})),Jt=(0,f.V)(Symbol.for("effect/FiberRef/currentInterruptedCause"),()=>Nt(S.Ie,{fork:()=>S.Ie,join:(e,t)=>e})),Zt=(0,f.V)(Symbol.for("effect/FiberRef/currentTracerEnabled"),()=>Nt(!0)),Qt=(0,f.V)(Symbol.for("effect/FiberRef/currentTracerTiming"),()=>Nt(!0)),en=(0,f.V)(Symbol.for("effect/FiberRef/currentTracerSpanAnnotations"),()=>Nt(h.Ie())),tn=(0,f.V)(Symbol.for("effect/FiberRef/currentTracerSpanLinks"),()=>Nt(i.Ie())),nn=Symbol.for("effect/Scope"),rn=Symbol.for("effect/CloseableScope"),an=(e,t)=>e.addFinalizer(()=>$(t)),sn=(e,t)=>e.addFinalizer(t),on=(e,t)=>e.close(t),un=(e,t)=>e.fork(t),cn=e=>ln(l.D_)(e),ln=(0,l.XY)(2,(e,t)=>{const n=(0,l.Fs)(e,S.od,b.Tj(t));switch(n._tag){case"None":return(0,l.Fs)(S.RU(e),i.d5,b.YW({onNone:()=>{const t=r.Ts(S.ml(e)).flatMap(e=>r.Ts(c.dK(e)).map(e=>`#${e}`));return new bn(t?`Interrupted by fibers: ${t.join(", ")}`:void 0)},onSome:l.D_}));case"Some":return n.value}}),fn=function(){class e extends globalThis.Error{commit(){return se(this)}toJSON(){const e={...this};return this.message&&(e.message=this.message),this.cause&&(e.cause=this.cause),e}[p.FX](){return this.toString!==globalThis.Error.prototype.toString?this.stack?`${this.toString()}\n${this.stack.split("\n").slice(1).join("\n")}`:this.toString():"Bun"in globalThis?S.j9(S.fJ(this),{renderErrorCause:!0}):this}}return Object.assign(e.prototype,x.Pe),e}(),dn=(e,t)=>{class n extends fn{_tag=t}return Object.assign(n.prototype,e),n.prototype.name=t,n},hn=Symbol.for("effect/Cause/errors/RuntimeException"),pn=dn({[hn]:hn},"RuntimeException"),mn=e=>(0,v.i5)(e,hn),yn=Symbol.for("effect/Cause/errors/InterruptedException"),bn=dn({[yn]:yn},"InterruptedException"),gn=e=>(0,v.i5)(e,yn),vn=Symbol.for("effect/Cause/errors/IllegalArgument"),wn=dn({[vn]:vn},"IllegalArgumentException"),_n=e=>(0,v.i5)(e,vn),Sn=Symbol.for("effect/Cause/errors/NoSuchElement"),En=dn({[Sn]:Sn},"NoSuchElementException"),kn=e=>(0,v.i5)(e,Sn),xn=Symbol.for("effect/Cause/errors/InvalidPubSubCapacityException"),Tn=Symbol.for("effect/Cause/errors/ExceededCapacityException"),Mn=dn({[Tn]:Tn},"ExceededCapacityException"),In=e=>(0,v.i5)(e,Tn),An=Symbol.for("effect/Cause/errors/Timeout"),Nn=dn({[An]:An},"TimeoutException"),Pn=e=>new Nn(`Operation timed out after '${s.GP(e)}'`),On=e=>(0,v.i5)(e,An),Rn=Symbol.for("effect/Cause/errors/UnknownException"),Cn=function(){class e extends fn{_tag="UnknownException";error;constructor(e,t){super(t??"An unknown error occurred",{cause:e}),this.error=e}}return Object.assign(e.prototype,{[Rn]:Rn,name:"UnknownException"}),e}(),Bn=e=>(0,v.i5)(e,Rn),Fn=e=>j(e)&&"_tag"in e&&("Success"===e._tag||"Failure"===e._tag),Ln=e=>"Failure"===e._tag,jn=e=>"Success"===e._tag,Dn=e=>{switch(e._tag){case I.N9:return S.fT(e.effect_instruction_i0);case I._l:return!1}},Un=(0,l.XY)(2,(e,t)=>{switch(e._tag){case I.N9:return Hn(e.effect_instruction_i0);case I._l:return ur(t)}}),zn=e=>Un(e,void 0),$n=e=>{switch(e._tag){case I.N9:return b.zN(e.effect_instruction_i0);case I._l:return b.dv()}},Vn=(e,t)=>br(e,t?.parallel?S._7:S.il),Kn=e=>Hn(S.F_(e)),Yn=(0,l.XY)(2,(e,t)=>{switch(e._tag){case I.N9:return!1;case I._l:return t(e.effect_instruction_i0)}}),qn=e=>Hn(S.fJ(e)),Hn=e=>{const t=new F(I.N9);return t.effect_instruction_i0=e,t},Gn=(0,l.XY)(2,(e,t)=>{switch(e._tag){case I.N9:return Hn(e.effect_instruction_i0);case I._l:return t(e.effect_instruction_i0)}}),Wn=(0,l.XY)(2,(e,t)=>{switch(e._tag){case I.N9:return De(Hn(e.effect_instruction_i0));case I._l:return t(e.effect_instruction_i0)}}),Xn=e=>(0,l.Fs)(e,Gn(l.D_)),Jn=(0,l.XY)(2,(e,t)=>{switch(e._tag){case I.N9:return De(Hn(e.effect_instruction_i0));case I._l:return ae(t(e.effect_instruction_i0))}}),Zn=e=>{switch(e._tag){case"Left":return qn(e.left);case"Right":return ur(e.right)}},Qn=e=>{switch(e._tag){case"None":return qn(void 0);case"Some":return ur(e.value)}},er=(0,l.XY)(2,(e,t)=>{switch(e._tag){case I.N9:return t(e.effect_instruction_i0);case I._l:return e.effect_instruction_i0}}),tr=e=>Hn(S.G(e)),nr=(0,l.XY)(2,(e,t)=>{switch(e._tag){case I.N9:return Hn(e.effect_instruction_i0);case I._l:return ur(t(e.effect_instruction_i0))}}),rr=(0,l.XY)(2,(e,{onFailure:t,onSuccess:n})=>{switch(e._tag){case I.N9:return Hn((0,l.Fs)(e.effect_instruction_i0,S.Tj(t)));case I._l:return ur(n(e.effect_instruction_i0))}}),ir=(0,l.XY)(2,(e,t)=>{switch(e._tag){case I.N9:return Hn((0,l.Fs)(e.effect_instruction_i0,S.Tj(t)));case I._l:return ur(e.effect_instruction_i0)}}),ar=(0,l.XY)(2,(e,t)=>{switch(e._tag){case I.N9:return Hn(t(e.effect_instruction_i0));case I._l:return ur(e.effect_instruction_i0)}}),sr=(0,l.XY)(2,(e,{onFailure:t,onSuccess:n})=>{switch(e._tag){case I.N9:return t(e.effect_instruction_i0);case I._l:return n(e.effect_instruction_i0)}}),or=(0,l.XY)(2,(e,{onFailure:t,onSuccess:n})=>{switch(e._tag){case I.N9:return t(e.effect_instruction_i0);case I._l:return n(e.effect_instruction_i0)}}),ur=e=>{const t=new L(I._l);return t.effect_instruction_i0=e,t},cr=ur(void 0),lr=(0,l.XY)(2,(e,t)=>yr(e,t,{onSuccess:(e,t)=>[e,t],onFailure:S.il})),fr=(0,l.XY)(2,(e,t)=>yr(e,t,{onSuccess:(e,t)=>e,onFailure:S.il})),dr=(0,l.XY)(2,(e,t)=>yr(e,t,{onSuccess:(e,t)=>t,onFailure:S.il})),hr=(0,l.XY)(2,(e,t)=>yr(e,t,{onSuccess:(e,t)=>[e,t],onFailure:S._7})),pr=(0,l.XY)(2,(e,t)=>yr(e,t,{onSuccess:(e,t)=>e,onFailure:S._7})),mr=(0,l.XY)(2,(e,t)=>yr(e,t,{onSuccess:(e,t)=>t,onFailure:S._7})),yr=(0,l.XY)(3,(e,t,{onFailure:n,onSuccess:r})=>{switch(e._tag){case I.N9:switch(t._tag){case I._l:return Hn(e.effect_instruction_i0);case I.N9:return Hn(n(e.effect_instruction_i0,t.effect_instruction_i0))}case I._l:switch(t._tag){case I._l:return ur(r(e.effect_instruction_i0,t.effect_instruction_i0));case I.N9:return Hn(t.effect_instruction_i0)}}}),br=(e,t)=>{const n=i.Ts(e);return i.J_(n)?(0,l.Fs)(i.Rx(n),r.TS((0,l.Fs)(i.v4(n),nr(i.of)),(e,n)=>(0,l.Fs)(e,yr(n,{onSuccess:(e,t)=>(0,l.Fs)(e,i.Hs(t)),onFailure:t}))),nr(i.BE),nr(e=>i.h3(e)),b.zN):b.dv()},gr=e=>({...x.Em,[E.FX]:E.do,state:y.L8(E.Ub([])),commit(){return _r(this)},blockingOn:e}),vr=()=>de(le,e=>wr(e)),wr=e=>ze(()=>gr(e)),_r=e=>Y(t=>{const n=y.Jt(e.state);switch(n._tag){case M.R:return t(n.effect);case M.i:return n.joiners.push(t),jr(e,t)}},e.blockingOn),Sr=(0,l.XY)(2,(e,t)=>Me(t,e)),Er=(0,l.XY)(2,(e,t)=>ze(()=>{const n=y.Jt(e.state);switch(n._tag){case M.R:return!1;case M.i:y.hZ(e.state,E.Vw(t));for(let e=0,r=n.joiners.length;eEr(e,t)),xr=(0,l.XY)(2,(e,t)=>Er(e,se(t))),Tr=(0,l.XY)(2,(e,t)=>Er(e,oe(t))),Mr=(0,l.XY)(2,(e,t)=>Er(e,ue(t))),Ir=(0,l.XY)(2,(e,t)=>Er(e,ce(t))),Ar=(0,l.XY)(2,(e,t)=>Er(e,te(t))),Nr=(0,l.XY)(2,(e,t)=>Er(e,re(t))),Pr=e=>de(le,t=>Er(e,ke(t))),Or=(0,l.XY)(2,(e,t)=>Er(e,ke(t))),Rr=e=>ze(()=>y.Jt(e.state)._tag===M.R),Cr=e=>ze(()=>{const t=y.Jt(e.state);switch(t._tag){case M.R:return b.zN(t.effect);case M.i:return b.dv()}}),Br=(0,l.XY)(2,(e,t)=>Er(e,De(t))),Fr=(0,l.XY)(2,(e,t)=>Er(e,ze(t))),Lr=(e,t)=>{const n=y.Jt(e.state);if(n._tag===M.i){y.hZ(e.state,E.Vw(t));for(let e=0,r=n.joiners.length;eze(()=>{const n=y.Jt(e.state);if(n._tag===M.i){const e=n.joiners.indexOf(t);e>=0&&n.joiners.splice(e,1)}}),Dr=D(e=>ur(e.currentContext)),Ur=()=>Dr,zr=e=>de(Ur(),e),$r=(0,l.XY)(2,(e,t)=>It(Bt,t)(e)),Vr=(0,l.XY)(2,(e,t)=>At(Bt,e=>a.h1(e,t))(e)),Kr=(0,l.XY)(2,(e,t)=>zr(n=>$r(e,t(n)))),Yr=(0,l.XY)(2,(e,t)=>de(e,e=>de(t.predicate(e),n=>n?De(e):t.orElse(e)))),qr=(0,l.XY)(2,(e,t)=>Yr(e,{predicate:t.predicate,orElse:e=>se(t.orFailWith(e))})),Hr=e=>{const t=e.currentSpan;return void 0!==t&&"Span"===t._tag?b.zN(t):b.dv()},Gr={_tag:"Span",spanId:"noop",traceId:"noop",sampled:!1,status:{_tag:"Ended",startTime:BigInt(0),endTime:BigInt(0),exit:cr},attributes:new Map,links:[],kind:"internal",attribute(){},event(){},end(){},addLinks(){}},Wr=e=>Object.assign(Object.create(Gr),e)},90303(e,t,n){"use strict";var r=n(18277).Buffer,i=n(30903);function a(e,t,n){e.copy(t,n)}e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},e.prototype.concat=function(e){if(0===this.length)return r.alloc(0);for(var t=r.allocUnsafe(e>>>0),n=this.head,i=0;n;)a(n.data,t,i),i+=n.data.length,n=n.next;return t},e}(),i&&i.inspect&&i.inspect.custom&&(e.exports.prototype[i.inspect.custom]=function(){var e=i.inspect({length:this.length});return this.constructor.name+" "+e})},90580(e,t,n){"use strict";n.d(t,{J:()=>a});var r=n(21506);function i(e){return{address:e.address,amount:r.oB(e.amount),index:r.oB(e.index),validatorIndex:r.oB(e.validatorIndex)}}function a(e){return{..."bigint"==typeof e.baseFeePerGas&&{baseFeePerGas:r.oB(e.baseFeePerGas)},..."bigint"==typeof e.blobBaseFee&&{blobBaseFee:r.oB(e.blobBaseFee)},..."string"==typeof e.feeRecipient&&{feeRecipient:e.feeRecipient},..."bigint"==typeof e.gasLimit&&{gasLimit:r.oB(e.gasLimit)},..."bigint"==typeof e.number&&{number:r.oB(e.number)},..."bigint"==typeof e.prevRandao&&{prevRandao:r.oB(e.prevRandao)},..."bigint"==typeof e.time&&{time:r.oB(e.time)},...e.withdrawals&&{withdrawals:e.withdrawals.map(i)}}}},90639(e,t,n){"use strict";var r=n(42649),i=n(11644);e.exports=v;var a,s=n(17777);v.ReadableState=g,n(3640).EventEmitter;var o=function(e,t){return e.listeners(t).length},u=n(4880),c=n(18277).Buffer,l=(void 0!==n.g?n.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){},f=Object.create(n(1833));f.inherits=n(33213);var d=n(42187),h=void 0;h=d&&d.debuglog?d.debuglog("stream"):function(){};var p,m=n(90303),y=n(48743);f.inherits(v,u);var b=["error","close","destroy","pause","resume"];function g(e,t){e=e||{};var r=t instanceof(a=a||n(77561));this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var i=e.highWaterMark,s=e.readableHighWaterMark,o=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:r&&(s||0===s)?s:o,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(p||(p=n(55037).I),this.decoder=new p(e.encoding),this.encoding=e.encoding)}function v(e){if(a=a||n(77561),!(this instanceof v))return new v(e);this._readableState=new g(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),u.call(this)}function w(e,t,n,r,i){var a,s=e._readableState;return null===t?(s.reading=!1,function(e,t){if(!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,k(e)}}(e,s)):(i||(a=function(e,t){var n,r;return r=t,c.isBuffer(r)||r instanceof l||"string"==typeof t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk")),n}(s,t)),a?e.emit("error",a):s.objectMode||t&&t.length>0?("string"==typeof t||s.objectMode||Object.getPrototypeOf(t)===c.prototype||(t=function(e){return c.from(e)}(t)),r?s.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):_(e,s,t,!0):s.ended?e.emit("error",new Error("stream.push() after EOF")):(s.reading=!1,s.decoder&&!n?(t=s.decoder.write(t),s.objectMode||0!==t.length?_(e,s,t,!1):T(e,s)):_(e,s,t,!1))):r||(s.reading=!1)),function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=S?e=S:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function k(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(h("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?i.nextTick(x,e):x(e))}function x(e){h("emit readable"),e.emit("readable"),N(e)}function T(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(M,e,t))}function M(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;return ea.length?a.length:e;if(s===a.length?i+=a:i+=a.slice(0,e),0===(e-=s)){s===a.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=a.slice(s));break}++r}return t.length-=r,i}(e,t):function(e,t){var n=c.allocUnsafe(e),r=t.head,i=1;for(r.data.copy(n),e-=r.data.length;r=r.next;){var a=r.data,s=e>a.length?a.length:e;if(a.copy(n,n.length-e,0,s),0===(e-=s)){s===a.length?(++i,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=a.slice(s));break}++i}return t.length-=i,n}(e,t),r}(e,t.buffer,t.decoder),n);var n}function O(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,i.nextTick(R,t,e))}function R(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function C(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return h("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?O(this):k(this),null;if(0===(e=E(e,t))&&t.ended)return 0===t.length&&O(this),null;var r,i=t.needReadable;return h("need readable",i),(0===t.length||t.length-e0?P(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&O(this)),null!==r&&this.emit("data",r),r},v.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},v.prototype.pipe=function(e,t){var n=this,a=this._readableState;switch(a.pipesCount){case 0:a.pipes=e;break;case 1:a.pipes=[a.pipes,e];break;default:a.pipes.push(e)}a.pipesCount+=1,h("pipe count=%d opts=%j",a.pipesCount,t);var u=t&&!1===t.end||e===r.stdout||e===r.stderr?g:c;function c(){h("onend"),e.end()}a.endEmitted?i.nextTick(u):n.once("end",u),e.on("unpipe",function t(r,i){h("onunpipe"),r===n&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,h("cleanup"),e.removeListener("close",y),e.removeListener("finish",b),e.removeListener("drain",l),e.removeListener("error",m),e.removeListener("unpipe",t),n.removeListener("end",c),n.removeListener("end",g),n.removeListener("data",p),f=!0,!a.awaitDrain||e._writableState&&!e._writableState.needDrain||l())});var l=function(e){return function(){var t=e._readableState;h("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&o(e,"data")&&(t.flowing=!0,N(e))}}(n);e.on("drain",l);var f=!1,d=!1;function p(t){h("ondata"),d=!1,!1!==e.write(t)||d||((1===a.pipesCount&&a.pipes===e||a.pipesCount>1&&-1!==C(a.pipes,e))&&!f&&(h("false write response, pause",a.awaitDrain),a.awaitDrain++,d=!0),n.pause())}function m(t){h("onerror",t),g(),e.removeListener("error",m),0===o(e,"error")&&e.emit("error",t)}function y(){e.removeListener("finish",b),g()}function b(){h("onfinish"),e.removeListener("close",y),g()}function g(){h("unpipe"),n.unpipe(e)}return n.on("data",p),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?s(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",m),e.once("close",y),e.once("finish",b),e.emit("pipe",n),a.flowing||(h("pipe resume"),n.resume()),e},v.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;ab,bG:()=>g,M:()=>v,rR:()=>w,Po:()=>_,$S:()=>S});var r=n(74014),i=n(97932),a=n(72981),s=n(75672),o=n(1060);function u({abiItem:e,args:t,includeFunctionName:n=!0,includeName:r=!1}){if("name"in e&&"inputs"in e&&e.inputs)return`${n?e.name:""}(${e.inputs.map((e,n)=>`${r&&e.name?`${e.name}: `:""}${"object"==typeof t[n]?(0,o.A)(t[n]):t[n]}`).join(", ")})`}var c=n(75879),l=n(49925),f=n(60077),d=n(70121),h=n(2273),p=n(94622),m=n(85327),y=n(15190);class b extends h.C{constructor(e,{account:t,docsPath:n,chain:i,data:a,gas:s,gasPrice:o,maxFeePerGas:u,maxPriorityFeePerGas:c,nonce:d,to:h,value:y,stateOverride:b}){const g=t?(0,r.J)(t):void 0;let v=(0,m.aO)({from:g?.address,to:h,value:void 0!==y&&`${(0,l.c)(y)} ${i?.nativeCurrency?.symbol||"ETH"}`,data:a,gas:s,gasPrice:void 0!==o&&`${(0,f.Q)(o)} gwei`,maxFeePerGas:void 0!==u&&`${(0,f.Q)(u)} gwei`,maxPriorityFeePerGas:void 0!==c&&`${(0,f.Q)(c)} gwei`,nonce:d});b&&(v+=`\n${(0,p.uj)(b)}`),super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],"Raw Call Arguments:",v].filter(Boolean),name:"CallExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=e}}class g extends h.C{constructor(e,{abi:t,args:n,contractAddress:r,docsPath:i,functionName:a,sender:o}){const l=(0,c.iY)({abi:t,args:n,name:a}),f=l?u({abiItem:l,args:n,includeFunctionName:!1,includeName:!1}):void 0,d=l?(0,s.B)(l,{includeName:!0}):void 0,h=(0,m.aO)({address:r&&(0,y.R)(r),function:d,args:f&&"()"!==f&&`${[...Array(a?.length??0).keys()].map(()=>" ").join("")}${f}`,sender:o});super(e.shortMessage||`An unknown error occurred while executing the contract function "${a}".`,{cause:e,docsPath:i,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],h&&"Contract Call:",h].filter(Boolean),name:"ContractFunctionExecutionError"}),Object.defineProperty(this,"abi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"contractAddress",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"formattedArgs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"functionName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sender",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abi=t,this.args=n,this.cause=e,this.contractAddress=r,this.functionName=a,this.sender=o}}class v extends h.C{constructor({abi:e,data:t,functionName:n,message:r}){let o,c,l,f,h;if(t&&"0x"!==t)try{c=(0,a.W)({abi:e,data:t});const{abiItem:n,errorName:r,args:o}=c;if("Error"===r)f=o[0];else if("Panic"===r){const[e]=o;f=i.fD[e]}else{const e=n?(0,s.B)(n,{includeName:!0}):void 0,t=n&&o?u({abiItem:n,args:o,includeFunctionName:!1,includeName:!1}):void 0;l=[e?`Error: ${e}`:"",t&&"()"!==t?` ${[...Array(r?.length??0).keys()].map(()=>" ").join("")}${t}`:""]}}catch(e){o=e}else r&&(f=r);o instanceof d.Wq&&(h=o.signature,l=[`Unable to decode signature "${h}" as it was not found on the provided ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${h}.`]),super(f&&"execution reverted"!==f||h?[`The contract function "${n}" reverted with the following ${h?"signature":"reason"}:`,f||h].join("\n"):`The contract function "${n}" reverted.`,{cause:o,metaMessages:l,name:"ContractFunctionRevertedError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reason",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=c,this.raw=t,this.reason=f,this.signature=h}}class w extends h.C{constructor({functionName:e}){super(`The contract function "${e}" returned no data ("0x").`,{metaMessages:["This could be due to any of the following:",` - The contract does not have the function "${e}",`," - The parameters passed to the contract function may be invalid, or"," - The address is not a contract."],name:"ContractFunctionZeroDataError"})}}class _ extends h.C{constructor({factory:e}){super("Deployment for counterfactual contract call failed"+(e?` for factory "${e}".`:""),{metaMessages:["Please ensure:","- The `factory` is a valid contract deployment factory (ie. Create2 Factory, ERC-4337 Factory, etc).","- The `factoryData` is a valid encoded function call for contract deployment function on the factory."],name:"CounterfactualDeploymentFailedError"})}}class S extends h.C{constructor({data:e,message:t}){super(t||"",{name:"RawContractError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=e}}},91170(e,t,n){"use strict";n.d(t,{L8:()=>l});var r=n(72529),i=n(46385),a=n(66949),s=n(82884);const o="effect/MetricLabel",u=Symbol.for(o);class c{key;value;[u]=u;_hash;constructor(e,t){this.key=e,this.value=t,this._hash=i.Yj(o+this.key+this.value)}[i.HR](){return this._hash}[r.HR](e){return f(e)&&this.key===e.key&&this.value===e.value}pipe(){return(0,a.tT)(this,arguments)}}const l=(e,t)=>new c(e,t),f=e=>(0,s.i5)(e,u)},91269(e,t,n){"use strict";n.d(t,{Ie:()=>i,jJ:()=>m,Ts:()=>a,Jt:()=>o,Im:()=>s,HP:()=>c,Tj:()=>p,qt:()=>d,Tk:()=>f,TS:()=>y,TF:()=>h,hZ:()=>u,Ej:()=>l});var r=n(49362);n(44815),r.eY,r.Fu;const i=r.Ie,a=(r.L8,r.Ts),s=r.Im,o=r.Jt,u=(r.Zd,r.$v,r.zy,r.Fp,r.it,r.hZ),c=r.HP,l=(r.zu,r.jO,r.Ej),f=(r.Tr,r.jT,r.bV,r.Tk),d=r.qt,h=(r.Nt,r.JP,r.KC,r.TF),p=(r.kg,r.Tj),m=(r.qI,r.jJ),y=r.TS;r.pb,r.oE,r.x1,r.i8,r.zN,r.Si},91484(e,t,n){"use strict";n.d(t,{F6:()=>M,In:()=>y,L8:()=>v,Ps:()=>h,Tx:()=>A,Ui:()=>T,Vh:()=>x,YW:()=>b,Zd:()=>l,_n:()=>s,b8:()=>p,dv:()=>w,hY:()=>I,qB:()=>k,qg:()=>_,rS:()=>c,sS:()=>m,sd:()=>u,zb:()=>o});var r=n(59329),i=n(69995),a=n(56312);const s=1,o=2,u=4,c=16,l=32,f=[0,s,o,u,c,l],d=e=>{switch(e){case l:return"CooperativeYielding";case c:return"WindDown";case u:return"RuntimeMetrics";case o:return"OpSupervision";case s:return"Interruption";case 0:return"None"}},h=e=>g(e,l),p=(0,r.XY)(2,(e,t)=>e&~t),m=(0,r.XY)(2,(e,t)=>e|t),y=e=>b(e)&&!E(e),b=e=>g(e,s),g=(0,r.XY)(2,(e,t)=>0!==(e&t)),v=(...e)=>e.reduce((e,t)=>e|t,0),w=v(0),_=e=>g(e,u),S=e=>new Set(f.filter(t=>g(e,t))),E=e=>g(e,c),k=e=>S(a.vu(e)&a.Sn(e)),x=e=>S(a.vu(e)&~a.Sn(e)),T=(0,r.XY)(2,(e,t)=>a.L8(e^t,t)),M=(0,r.XY)(2,(e,t)=>e&(a.B8(a.vu(t))|a.Sn(t))|a.vu(t)&a.Sn(t)),I=e=>`RuntimeFlagsPatch(enabled = (${Array.from(k(e)).map(e=>d(e)).join(", ")}), disabled = (${Array.from(x(e)).map(e=>d(e)).join(", ")}))`,A=i.L8({empty:a.Ie,diff:(e,t)=>T(e,t),combine:(e,t)=>a.hg(t)(e),patch:(e,t)=>M(t,e)})},91552(e){"use strict";var t=Object.prototype.toString,n=Math.max,r=function(e,t){for(var n=[],r=0;ri,PV:()=>h,YO:()=>p,Yj:()=>o,ai:()=>u,n9:()=>d,o:()=>l,w3:()=>m,zM:()=>c,zQ:()=>f});var r=n(59329);const i=e=>(t,n)=>t===n||e(t,n),a=(e,t)=>e===t,s=()=>a,o=s(),u=s(),c=s(),l=s(),f=(0,r.XY)(2,(e,t)=>i((n,r)=>e(t(n),t(r)))),d=f(u,e=>e.getTime()),h=(...e)=>{return t=e,i((e,n)=>{const r=Math.min(e.length,n.length);let i=0;for(const a of t){if(i>=r)break;if(!a(e[i],n[i]))return!1;i++}return!0});var t},p=e=>i((t,n)=>{if(t.length!==n.length)return!1;for(let r=0;r{const t=Object.keys(e);return i((n,r)=>{for(const i of t)if(!e[i](n[i],r[i]))return!1;return!0})}},92079(e,t,n){"use strict";var r=n(58983);e.exports=r.getPrototypeOf||null},92092(e,t,n){"use strict";e.exports=n(61894)},92155(e,t,n){"use strict";n.d(t,{db:()=>a,eV:()=>i});var r=n(93775);function i(e,{dir:t,size:n=32}={}){return"string"==typeof e?a(e,{dir:t,size:n}):function(e,{dir:t,size:n=32}={}){if(null===n)return e;if(e.length>n)throw new r.Fl({size:e.length,targetSize:n,type:"bytes"});const i=new Uint8Array(n);for(let r=0;r2*n)throw new r.Fl({size:Math.ceil(i.length/2),targetSize:n,type:"hex"});return`0x${i["right"===t?"padEnd":"padStart"](2*n,"0")}`}},92359(e,t,n){"use strict";n.d(t,{MM:()=>v,ft:()=>S});var r=n(74014),i=n(20582),a=n(93543),s=n(13940),o=n(64030),u=n(44535),c=n(22420),l=n(4667),f=n(95639),d=n(26480),h=n(26015),p=n(71768),m=n(42169),y=n(33932),b=n(54046),g=n(73989);const v=["blobVersionedHashes","chainId","fees","gas","nonce","type"],w=new Map,_=new p.A(128);async function S(e,t){let n=t;n.account??=e.account,n.parameters??=v;const{account:p,chain:S=e.chain,nonceManager:E,parameters:k}=n,x="function"==typeof S?.prepareTransactionRequest?{fn:S.prepareTransactionRequest,runAt:["beforeFillTransaction"]}:Array.isArray(S?.prepareTransactionRequest)?{fn:S.prepareTransactionRequest[0],runAt:S.prepareTransactionRequest[1].runAt}:void 0;let T;async function M(){if(T)return T;if(void 0!==n.chainId)return n.chainId;if(S)return S.id;const t=await(0,h.T)(e,g.T,"getChainId")({});return T=t,T}const I=p?(0,r.J)(p):p;let A=n.nonce;if(k.includes("nonce")&&void 0===A&&I&&E){const t=await M();A=await E.consume({address:I.address,chainId:t,client:e})}x?.fn&&x.runAt?.includes("beforeFillTransaction")&&(n=await x.fn({...n,chain:S},{phase:"beforeFillTransaction"}),A??=n.nonce);const N=(k.includes("blobVersionedHashes")||k.includes("sidecars"))&&n.kzg&&n.blobs||!1===_.get(e.uid)||!["fees","gas"].some(e=>k.includes(e))||!(k.includes("chainId")&&"number"!=typeof n.chainId||k.includes("nonce")&&"number"!=typeof A||k.includes("fees")&&"bigint"!=typeof n.gasPrice&&("bigint"!=typeof n.maxFeePerGas||"bigint"!=typeof n.maxPriorityFeePerGas)||k.includes("gas")&&"bigint"!=typeof n.gas)?n:await(0,h.T)(e,b.a,"fillTransaction")({...n,nonce:A}).then(t=>{const{chainId:r,from:i,gas:a,gasPrice:s,nonce:o,maxFeePerBlobGas:u,maxFeePerGas:c,maxPriorityFeePerGas:l,type:f,...d}=t.transaction;return _.set(e.uid,!0),{...n,...i?{from:i}:{},...f?{type:f}:{},...void 0!==r?{chainId:r}:{},...void 0!==a?{gas:a}:{},...void 0!==s?{gasPrice:s}:{},...void 0!==o?{nonce:o}:{},...void 0!==u?{maxFeePerBlobGas:u}:{},...void 0!==c?{maxFeePerGas:c}:{},...void 0!==l?{maxPriorityFeePerGas:l}:{},..."nonceKey"in d&&void 0!==d.nonceKey?{nonceKey:d.nonceKey}:{}}}).catch(t=>{const r=t;if("TransactionExecutionError"!==r.name)return n;const i=r.walk?.(e=>{const t=e;return"MethodNotFoundRpcError"===t.name||"MethodNotSupportedRpcError"===t.name});return i&&_.set(e.uid,!1),n});A??=N.nonce,n={...N,...I?{from:I?.address}:{},...A?{nonce:A}:{}};const{blobs:P,gas:O,kzg:R,type:C}=n;let B;async function F(){return B||(B=await(0,h.T)(e,s.g,"getBlock")({blockTag:"latest"}),B)}if(x?.fn&&x.runAt?.includes("beforeFillParameters")&&(n=await x.fn({...n,chain:S},{phase:"beforeFillParameters"})),k.includes("nonce")&&void 0===A&&I&&!E&&(n.nonce=await(0,h.T)(e,o.y,"getTransactionCount")({address:I.address,blockTag:"pending"})),(k.includes("blobVersionedHashes")||k.includes("sidecars"))&&P&&R){const e=(0,c.S)({blobs:P,kzg:R});if(k.includes("blobVersionedHashes")){const t=(0,f.d)({commitments:e,to:"hex"});n.blobVersionedHashes=t}if(k.includes("sidecars")){const t=(0,l.t)({blobs:P,commitments:e,kzg:R}),r=(0,d.T)({blobs:P,commitments:e,proofs:t,to:"hex"});n.sidecars=r}}if(k.includes("chainId")&&(n.chainId=await M()),(k.includes("fees")||k.includes("type"))&&void 0===C)try{n.type=(0,y.L)(n)}catch{let t=w.get(e.uid);if(void 0===t){const n=await F();t="bigint"==typeof n?.baseFeePerGas,w.set(e.uid,t)}n.type=t?"eip1559":"legacy"}if(k.includes("fees"))if("legacy"!==n.type&&"eip2930"!==n.type){if(void 0===n.maxFeePerGas||void 0===n.maxPriorityFeePerGas){const t=await F(),{maxFeePerGas:r,maxPriorityFeePerGas:a}=await(0,i.O)(e,{block:t,chain:S,request:n});if(void 0===n.maxPriorityFeePerGas&&n.maxFeePerGas&&n.maxFeePerGasi,D5:()=>r,Ge:()=>a});const r=/^(.*)\[([0-9]*)\]$/,i=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,a=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/},92666(e,t,n){"use strict";n.d(t,{UG:()=>s,xo:()=>i,zz:()=>a});var r=n(20094);class i extends r.C{constructor({signature:e}){super("Failed to parse ABI item.",{details:`parseAbiItem(${JSON.stringify(e,null,2)})`,docsPath:"/api/human#parseabiitem-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiItemError"})}}class a extends r.C{constructor({type:e}){super("Unknown type.",{metaMessages:[`Type "${e}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}}class s extends r.C{constructor({type:e}){super("Unknown type.",{metaMessages:[`Type "${e}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}}},92772(e,t,n){"use strict";var r=t,i=n(23145),a=n(45366),s=n(70004);r.assert=a,r.toArray=s.toArray,r.zero2=s.zero2,r.toHex=s.toHex,r.encode=s.encode,r.getNAF=function(e,t,n){var r,i=new Array(Math.max(e.bitLength(),n)+1);for(r=0;r(a>>1)-1?(a>>1)-u:u,s.isubn(o)):o=0,i[r]=o,s.iushrn(1)}return i},r.getJSF=function(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var r,i=0,a=0;e.cmpn(-i)>0||t.cmpn(-a)>0;){var s,o,u=e.andln(3)+i&3,c=t.andln(3)+a&3;3===u&&(u=-1),3===c&&(c=-1),s=1&u?3!=(r=e.andln(7)+i&7)&&5!==r||2!==c?u:-u:0,n[0].push(s),o=1&c?3!=(r=t.andln(7)+a&7)&&5!==r||2!==u?c:-c:0,n[1].push(o),2*i===s+1&&(i=1-i),2*a===o+1&&(a=1-a),e.iushrn(1),t.iushrn(1)}return n},r.cachedProperty=function(e,t,n){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new i(e,"hex","le")}},92783(e,t,n){"use strict";var r=n(42649),i=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=l;var a=n(61037),s=n(66573);n(33213)(l,a);for(var o=i(s.prototype),u=0;ug});var r=n(74014),i=n(2273),a=n(65696),s=n(75209),o=n(49925),u=n(60077),c=n(85327);class l extends i.C{constructor(e,{account:t,docsPath:n,chain:r,data:i,gas:a,gasPrice:s,maxFeePerGas:l,maxPriorityFeePerGas:f,nonce:d,to:h,value:p}){const m=(0,c.aO)({from:t?.address,to:h,value:void 0!==p&&`${(0,o.c)(p)} ${r?.nativeCurrency?.symbol||"ETH"}`,data:i,gas:a,gasPrice:void 0!==s&&`${(0,u.Q)(s)} gwei`,maxFeePerGas:void 0!==l&&`${(0,u.Q)(l)} gwei`,maxPriorityFeePerGas:void 0!==f&&`${(0,u.Q)(f)} gwei`,nonce:d});super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],"Estimate Gas Arguments:",m].filter(Boolean),name:"EstimateGasExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=e}}var f=n(61355),d=n(77411),h=n(98156),p=n(77576),m=n(61144),y=n(42169),b=n(92359);async function g(e,t){const{account:n=e.account,prepare:o=!0}=t,u=n?(0,r.J)(n):void 0,c=Array.isArray(o)?o:"local"!==u?.type?["blobVersionedHashes"]:void 0;try{const n=await(async()=>t.to?t.to:t.authorizationList&&t.authorizationList.length>0?await(0,a.g)({authorization:t.authorizationList[0]}).catch(()=>{throw new i.C("`to` is required. Could not infer from `authorizationList`")}):void 0)(),{accessList:r,authorizationList:l,blobs:f,blobVersionedHashes:d,blockNumber:g,blockTag:v,data:w,gas:_,gasPrice:S,maxFeePerBlobGas:E,maxFeePerGas:k,maxPriorityFeePerGas:x,nonce:T,value:M,stateOverride:I,...A}=o?await(0,b.ft)(e,{...t,parameters:c,to:n}):t;if(_&&t.gas!==_)return _;const N=("bigint"==typeof g?(0,s.cK)(g):void 0)||v,P=(0,m.yH)(I);(0,y.c)(t);const O=e.chain?.formatters?.transactionRequest?.format,R=(O||p.Bv)({...(0,h.o)(A,{format:O}),account:u,accessList:r,authorizationList:l,blobs:f,blobVersionedHashes:d,data:w,gasPrice:S,maxFeePerBlobGas:E,maxFeePerGas:k,maxPriorityFeePerGas:x,nonce:T,to:n,value:M},"estimateGas");return BigInt(await e.request({method:"eth_estimateGas",params:P?[R,N??e.experimental_blockTag??"latest",P]:N?[R,N]:[R]}))}catch(n){throw function(e,{docsPath:t,...n}){const r=(()=>{const t=(0,d.l)(e,n);return t instanceof f.RM?e:t})();return new l(r,{docsPath:t,...n})}(n,{...t,account:u,chain:e.chain})}}},93604(e,t){"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0>>1,i=e[r];if(!(0>>1;ra(u,n))ca(l,u)?(e[r]=l,e[c]=n,r=c):(e[r]=u,e[o]=n,r=o);else{if(!(ca(l,n)))break e;e[r]=l,e[c]=n,r=c}}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var s=performance;t.unstable_now=function(){return s.now()}}else{var o=Date,u=o.now();t.unstable_now=function(){return o.now()-u}}var c=[],l=[],f=1,d=null,h=3,p=!1,m=!1,y=!1,b=!1,g="function"==typeof setTimeout?setTimeout:null,v="function"==typeof clearTimeout?clearTimeout:null,w="undefined"!=typeof setImmediate?setImmediate:null;function _(e){for(var t=r(l);null!==t;){if(null===t.callback)i(l);else{if(!(t.startTime<=e))break;i(l),t.sortIndex=t.expirationTime,n(c,t)}t=r(l)}}function S(e){if(y=!1,_(e),!m)if(null!==r(c))m=!0,k||(k=!0,E());else{var t=r(l);null!==t&&O(S,t.startTime-e)}}var E,k=!1,x=-1,T=5,M=-1;function I(){return!(!b&&t.unstable_now()-Me&&I());){var s=d.callback;if("function"==typeof s){d.callback=null,h=d.priorityLevel;var o=s(d.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof o){d.callback=o,_(e),n=!0;break t}d===r(c)&&i(c),_(e)}else i(c);d=r(c)}if(null!==d)n=!0;else{var u=r(l);null!==u&&O(S,u.startTime-e),n=!1}}break e}finally{d=null,h=a,p=!1}n=void 0}}finally{n?E():k=!1}}}if("function"==typeof w)E=function(){w(A)};else if("undefined"!=typeof MessageChannel){var N=new MessageChannel,P=N.port2;N.port1.onmessage=A,E=function(){P.postMessage(null)}}else E=function(){g(A,0)};function O(e,n){x=g(function(){e(t.unstable_now())},n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_forceFrameRate=function(e){0>e||125s?(e.sortIndex=a,n(l,e),null===r(c)&&e===r(l)&&(y?(v(x),x=-1):y=!0,O(S,a-s))):(e.sortIndex=o,n(c,e),m||p||(m=!0,k||(k=!0,E()))),e},t.unstable_shouldYield=I,t.unstable_wrapCallback=function(e){var t=h;return function(){var n=h;h=t;try{return e.apply(this,arguments)}finally{h=n}}}},93775(e,t,n){"use strict";n.d(t,{Fl:()=>a,NV:()=>s,ii:()=>i});var r=n(2273);class i extends r.C{constructor({offset:e,position:t,size:n}){super(`Slice ${"start"===t?"starting":"ending"} at offset "${e}" is out-of-bounds (size: ${n}).`,{name:"SliceOffsetOutOfBoundsError"})}}class a extends r.C{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${e}) exceeds padding size (${t}).`,{name:"SizeExceedsPaddingSizeError"})}}class s extends r.C{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} is expected to be ${t} ${n} long, but is ${e} ${n} long.`,{name:"InvalidBytesLengthError"})}}},93976(e,t,n){"use strict";n.d(t,{Em:()=>a,MS:()=>i,Xs:()=>o});var r=n(20490);r.$n,r.O4,r.TW,r.le;const i=r.MS,a=r.Em,s=(r.Pe,r.C6);r.bw;class o extends s{}},94622(e,t,n){"use strict";n.d(t,{Hi:()=>i,ft:()=>a,uj:()=>o});var r=n(2273);class i extends r.C{constructor({address:e}){super(`State for account "${e}" is set multiple times.`,{name:"AccountStateConflictError"})}}class a extends r.C{constructor(){super("state and stateDiff are set on the same account.",{name:"StateAssignmentConflictError"})}}function s(e){return e.reduce((e,{slot:t,value:n})=>`${e} ${t}: ${n}\n`,"")}function o(e){return e.reduce((e,{address:t,...n})=>{let r=`${e} ${t}:\n`;return n.nonce&&(r+=` nonce: ${n.nonce}\n`),n.balance&&(r+=` balance: ${n.balance}\n`),n.code&&(r+=` code: ${n.code}\n`),n.state&&(r+=" state:\n",r+=s(n.state)),n.stateDiff&&(r+=" stateDiff:\n",r+=s(n.stateDiff)),r}," State Override:\n").slice(0,-1)}},95516(e,t,n){"use strict";n.d(t,{L8:()=>p,k_:()=>l});var r=n(17388),i=n(47726),a=n(59329),s=n(46385),o=n(95644),u=n(89921);const c=Symbol.for("effect/Random"),l=i.Io("effect/Random");class f{seed;[c]=c;PRNG;constructor(e){this.seed=e,this.PRNG=new o.Cz(e)}get next(){return u.OH5(()=>this.PRNG.number())}get nextBoolean(){return u.TjK(this.next,e=>e>.5)}get nextInt(){return u.OH5(()=>this.PRNG.integer(Number.MAX_SAFE_INTEGER))}nextRange(e,t){return u.TjK(this.next,n=>(t-e)*n+e)}nextIntBetween(e,t){return u.OH5(()=>this.PRNG.integer(t-e)+e)}shuffle(e){return d(e,e=>this.nextIntBetween(0,e))}}const d=(e,t)=>u.DYE(()=>(0,a.Fs)(u.OH5(()=>Array.from(e)),u.qIB(e=>{const n=[];for(let t=e.length;t>=2;t-=1)n.push(t);return(0,a.Fs)(n,u.QZV(n=>(0,a.Fs)(t(n),u.TjK(t=>h(e,n-1,t)))),u.as(r.Ts(e)))}))),h=(e,t,n)=>{const r=e[t];return e[t]=e[n],e[n]=r,e},p=e=>new f(s.tW(e))},95611(e,t,n){"use strict";n.d(t,{X:()=>b,J:()=>y});var r=n(56342),i=n(97932),a=n(70121),s=n(65144),o=n(16720),u=n(348),c=n(75672),l=n(33640),f=n(28780),d=n(75879);const h="/docs/contract/encodeErrorResult";function p(e){const{abi:t,errorName:n,args:r}=e;let i=t[0];if(n){const e=(0,d.iY)({abi:t,args:r,name:n});if(!e)throw new a.yy(n,{docsPath:h});i=e}if("error"!==i.type)throw new a.yy(void 0,{docsPath:h});const s=(0,c.B)(i),u=(0,o.V)(s);let p="0x";if(r&&r.length>0){if(!i.inputs)throw new a.ZP(i.name,{docsPath:h});p=(0,f.h)(i.inputs,r)}return(0,l.aP)([u,p])}const m="/docs/contract/encodeFunctionResult",y="x-batch-gateway:true";async function b(e){const{data:t,ccipRequest:n}=e,{args:[l]}=function(e){const{abi:t,data:n}=e,r=(0,s.di)(n,0,4),i=t.find(e=>"function"===e.type&&r===(0,o.V)((0,c.B)(e)));if(!i)throw new a.EB(r,{docsPath:"/docs/contract/decodeFunctionData"});return{functionName:i.name,args:"inputs"in i&&i.inputs&&i.inputs.length>0?(0,u.n)(i.inputs,(0,s.di)(n,4)):void 0}}({abi:r.b2,data:t}),h=[],g=[];return await Promise.all(l.map(async(e,t)=>{try{g[t]=e.urls.includes(y)?await b({data:e.data,ccipRequest:n}):await n(e),h[t]=!1}catch(e){h[t]=!0,g[t]="HttpRequestError"===(a=e).name&&a.status?p({abi:r.b2,errorName:"HttpError",args:[a.status,a.shortMessage]}):p({abi:[i.Mc],errorName:"Error",args:["shortMessage"in a?a.shortMessage:a.message]})}var a})),function(e){const{abi:t,functionName:n,result:r}=e;let i=t[0];if(n){const e=(0,d.iY)({abi:t,name:n});if(!e)throw new a.Iz(n,{docsPath:m});i=e}if("function"!==i.type)throw new a.Iz(void 0,{docsPath:m});if(!i.outputs)throw new a.MR(i.name,{docsPath:m});const s=(()=>{if(0===i.outputs.length)return[];if(1===i.outputs.length)return[r];if(Array.isArray(r))return r;throw new a.dm(r)})();return(0,f.h)(i.outputs,s)}({abi:r.b2,functionName:"query",result:[h,g]})}},95639(e,t,n){"use strict";n.d(t,{d:()=>u});var r=n(75209);const i=n(23777).sc;var a=n(84015),s=n(81127);function o(e){const{commitment:t,version:n=1}=e,o=e.to??("string"==typeof t?"hex":"bytes"),u=function(e){const t=i((0,a.q)(e,{strict:!1})?(0,s.ZJ)(e):e);return t}(t);return u.set([n],0),"bytes"===o?u:(0,r.My)(u)}function u(e){const{commitments:t,version:n}=e,r=e.to??("string"==typeof t[0]?"hex":"bytes"),i=[];for(const e of t)i.push(o({commitment:e,to:r,version:n}));return i}},95644(e,t,n){"use strict";n.d(t,{BW:()=>s,Cz:()=>o,Hi:()=>d,WT:()=>l,ku:()=>f,sn:()=>p}),n(59329);var r=n(55661),i=n(65668),a=n(82884);Symbol.iterator;class s{self;called=!1;constructor(e){this.self=e}next(e){return this.called?{value:e,done:!0}:(this.called=!0,{value:this.self,done:!1})}return(e){return{value:e,done:!0}}throw(e){throw e}[Symbol.iterator](){return new s(this.self)}}class o{_state;constructor(e,t,n,r){return(0,a.wD)(t)&&(0,a.wD)(e)?(t=4294967295*Math.random()>>>0,e=0):(0,a.wD)(t)&&(t=e,e=0),(0,a.wD)(r)&&(0,a.wD)(n)?(r=this._state?this._state[3]:4150755663,n=this._state?this._state[2]:335903614):(0,a.wD)(r)&&(r=n,n=0),this._state=new Int32Array([0,0,n>>>0,(1|(r||0))>>>0]),this._next(),u(this._state,this._state[0],this._state[1],e>>>0,t>>>0),this._next(),this}getState(){return[this._state[0],this._state[1],this._state[2],this._state[3]]}setState(e){this._state[0]=e[0],this._state[1]=e[1],this._state[2]=e[2],this._state[3]=1|e[3]}integer(e){return Math.round(this.number()*Number.MAX_SAFE_INTEGER)%e}number(){return(1*(67108863&this._next())*134217728+1*(134217727&this._next()))/9007199254740992}_next(){const e=this._state[0]>>>0,t=this._state[1]>>>0;!function(e,t,n,r,i){let a=32557*(n>>>16)>>>0,s=19605*(65535&n)>>>0,o=32557*(65535&n)>>>0,u=19605*(n>>>16)+((s>>>16)+(a>>>16))>>>0;s=s<<16>>>0,o=o+s>>>0,o>>>0>>0&&(u=u+1>>>0),a=a<<16>>>0,o=o+a>>>0,o>>>0>>0&&(u=u+1>>>0),u=u+Math.imul(n,1481765933)>>>0,u=u+Math.imul(t,i)>>>0,e[0]=u,e[1]=o}(this._state,e,t,0,1284865837),u(this._state,this._state[0],this._state[1],this._state[2],this._state[3]);let n=e>>>18,r=(t>>>18|e<<14)>>>0;n=(n^e)>>>0,r=(r^t)>>>0;const i=(r>>>27|n<<5)>>>0,a=e>>>27;return(i>>>a|i<<((-a>>>0&31)>>>0))>>>0}}function u(e,t,n,r,i){let a=t+r>>>0;const s=n+i>>>0;s>>>0>>0&&(a=a+1|0),e[0]=a,e[1]=s}const c=Symbol.for("effect/Utils/YieldWrap");class l{#e;constructor(e){this.#e=e}[c](){return this.#e}}function f(e){if("object"==typeof e&&null!==e&&c in e)return e[c]();throw new Error((0,i.k)("yieldWrapGet"))}const d=(0,r.V)("effect/Utils/isStructuralRegion",()=>({enabled:!1,tester:void 0})),h={effect_internal_function:e=>e()},p=!0===h.effect_internal_function(()=>(new Error).stack)?.includes("effect_internal_function")?h.effect_internal_function:e=>{try{return e()}finally{}}},95775(e,t,n){"use strict";n.d(t,{E:()=>r});const r=1},95894(e,t,n){"use strict";var r,i=n(58983),a=n(18052),s=n(88096),o=n(37049),u=n(21977),c=n(32873),l=n(4002),f=n(24002),d=n(38105),h=n(28299),p=n(65243),m=n(9465),y=n(65587),b=n(76221),g=n(89068),v=Function,w=function(e){try{return v('"use strict"; return ('+e+").constructor;")()}catch(e){}},_=n(73906),S=n(37526),E=function(){throw new l},k=_?function(){try{return E}catch(e){try{return _(arguments,"callee").get}catch(e){return E}}}():E,x=n(52040)(),T=n(83439),M=n(92079),I=n(41065),A=n(68633),N=n(17821),P={},O="undefined"!=typeof Uint8Array&&T?T(Uint8Array):r,R={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":x&&T?T([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":P,"%AsyncGenerator%":P,"%AsyncGeneratorFunction%":P,"%AsyncIteratorPrototype%":P,"%Atomics%":"undefined"==typeof Atomics?r:Atomics,"%BigInt%":"undefined"==typeof BigInt?r:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?r:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?r:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":a,"%eval%":eval,"%EvalError%":s,"%Float16Array%":"undefined"==typeof Float16Array?r:Float16Array,"%Float32Array%":"undefined"==typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":v,"%GeneratorFunction%":P,"%Int8Array%":"undefined"==typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":x&&T?T(T([][Symbol.iterator]())):r,"%JSON%":"object"==typeof JSON?JSON:r,"%Map%":"undefined"==typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&x&&T?T((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":i,"%Object.getOwnPropertyDescriptor%":_,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?r:Promise,"%Proxy%":"undefined"==typeof Proxy?r:Proxy,"%RangeError%":o,"%ReferenceError%":u,"%Reflect%":"undefined"==typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&x&&T?T((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":x&&T?T(""[Symbol.iterator]()):r,"%Symbol%":x?Symbol:r,"%SyntaxError%":c,"%ThrowTypeError%":k,"%TypedArray%":O,"%TypeError%":l,"%Uint8Array%":"undefined"==typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?r:Uint32Array,"%URIError%":f,"%WeakMap%":"undefined"==typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?r:WeakSet,"%Function.prototype.call%":N,"%Function.prototype.apply%":A,"%Object.defineProperty%":S,"%Object.getPrototypeOf%":M,"%Math.abs%":d,"%Math.floor%":h,"%Math.max%":p,"%Math.min%":m,"%Math.pow%":y,"%Math.round%":b,"%Math.sign%":g,"%Reflect.getPrototypeOf%":I};if(T)try{null.error}catch(e){var C=T(T(e));R["%Error.prototype%"]=C}var B=function e(t){var n;if("%AsyncFunction%"===t)n=w("async function () {}");else if("%GeneratorFunction%"===t)n=w("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=w("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var i=e("%AsyncGenerator%");i&&T&&(n=T(i.prototype))}return R[t]=n,n},F={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},L=n(62460),j=n(2204),D=L.call(N,Array.prototype.concat),U=L.call(A,Array.prototype.splice),z=L.call(N,String.prototype.replace),$=L.call(N,String.prototype.slice),V=L.call(N,RegExp.prototype.exec),K=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,Y=/\\(\\)?/g,q=function(e,t){var n,r=e;if(j(F,r)&&(r="%"+(n=F[r])[0]+"%"),j(R,r)){var i=R[r];if(i===P&&(i=B(r)),void 0===i&&!t)throw new l("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:i}}throw new c("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new l("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new l('"allowMissing" argument must be a boolean');if(null===V(/^%?[^%]*%?$/,e))throw new c("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=function(e){var t=$(e,0,1),n=$(e,-1);if("%"===t&&"%"!==n)throw new c("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new c("invalid intrinsic syntax, expected opening `%`");var r=[];return z(e,K,function(e,t,n,i){r[r.length]=n?z(i,Y,"$1"):t||e}),r}(e),r=n.length>0?n[0]:"",i=q("%"+r+"%",t),a=i.name,s=i.value,o=!1,u=i.alias;u&&(r=u[0],U(n,D([0,1],u)));for(var f=1,d=!0;f=n.length){var y=_(s,h);s=(d=!!y)&&"get"in y&&!("originalValue"in y.get)?y.get:s[h]}else d=j(s,h),s=s[h];d&&!o&&(R[a]=s)}}return s}},96349(e,t,n){"use strict";n.d(t,{X:()=>s});var r=n(78451),i=n(75209),a=n(88196);async function s(e,t){const{address:n,abi:s,args:o,eventName:u,fromBlock:c,strict:l,toBlock:f}=t,d=(0,a.g)(e,{method:"eth_newFilter"}),h=u?(0,r.R)({abi:s,args:o,eventName:u}):void 0,p=await e.request({method:"eth_newFilter",params:[{address:n,fromBlock:"bigint"==typeof c?(0,i.cK)(c):c,toBlock:"bigint"==typeof f?(0,i.cK)(f):f,topics:h}]});return{abi:s,args:o,eventName:u,id:p,request:d(p),strict:Boolean(l),type:"event"}}},96359(e,t,n){"use strict";var r=n(23145),i=n(33213),a=n(14248),s=n(92772);function o(e){a.call(this,"mont",e),this.a=new r(e.a,16).toRed(this.red),this.b=new r(e.b,16).toRed(this.red),this.i4=new r(4).toRed(this.red).redInvm(),this.two=new r(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function u(e,t,n){a.BasePoint.call(this,e,"projective"),null===t&&null===n?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new r(t,16),this.z=new r(n,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(o,a),e.exports=o,o.prototype.validate=function(e){var t=e.normalize().x,n=t.redSqr(),r=n.redMul(t).redAdd(n.redMul(this.a)).redAdd(t);return 0===r.redSqrt().redSqr().cmp(r)},i(u,a.BasePoint),o.prototype.decodePoint=function(e,t){return this.point(s.toArray(e,t),1)},o.prototype.point=function(e,t){return new u(this,e,t)},o.prototype.pointFromJSON=function(e){return u.fromJSON(this,e)},u.prototype.precompute=function(){},u.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},u.fromJSON=function(e,t){return new u(e,t[0],t[1]||e.one)},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},u.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),n=e.redSub(t),r=e.redMul(t),i=n.redMul(t.redAdd(this.curve.a24.redMul(n)));return this.curve.point(r,i)},u.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.diffAdd=function(e,t){var n=this.x.redAdd(this.z),r=this.x.redSub(this.z),i=e.x.redAdd(e.z),a=e.x.redSub(e.z).redMul(n),s=i.redMul(r),o=t.z.redMul(a.redAdd(s).redSqr()),u=t.x.redMul(a.redISub(s).redSqr());return this.curve.point(o,u)},u.prototype.mul=function(e){for(var t=e.clone(),n=this,r=this.curve.point(null,null),i=[];0!==t.cmpn(0);t.iushrn(1))i.push(t.andln(1));for(var a=i.length-1;a>=0;a--)0===i[a]?(n=n.diffAdd(r,this),r=r.dbl()):(r=n.diffAdd(r,this),n=n.dbl());return r},u.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},u.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},96602(e,t,n){"use strict";var r=n(72258).Buffer,i=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=u,this.end=c,t=4;break;case"utf8":this.fillLast=o,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=d,void(this.end=h)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function s(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function o(e){var t=this.lastTotal-this.lastNeed,n=function(e,t){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function u(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function d(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}t.I=a,a.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0?(i>0&&(e.lastNeed=i-1),i):--r=0?(i>0&&(e.lastNeed=i-2),i):--r=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},a.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},96811(e,t,n){"use strict";var r=n(72258).Buffer,i=n(70950);function a(e,t){this._block=r.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}a.prototype.update=function(e,t){e=i(e,t||"utf8");for(var n=this._block,r=this._blockSize,a=e.length,s=this._len,o=0;o=this._finalSize&&(this._update(this._block),this._block.fill(0));var n=8*this._len;if(n<=4294967295)this._block.writeUInt32BE(n,this._blockSize-4);else{var r=(4294967295&n)>>>0,i=(n-r)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(r,this._blockSize-4)}this._update(this._block);var a=this._hash();return e?a.toString(e):a},a.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=a},97103(e,t,n){"use strict";var r=n(45366),i=n(33213);function a(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function s(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function o(e){return 1===e.length?"0"+e:e}function u(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=i,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i>6|192,n[r++]=63&s|128):a(e,i)?(s=65536+((1023&s)<<10)+(1023&e.charCodeAt(++i)),n[r++]=s>>18|240,n[r++]=s>>12&63|128,n[r++]=s>>6&63|128,n[r++]=63&s|128):(n[r++]=s>>12|224,n[r++]=s>>6&63|128,n[r++]=63&s|128)}else for(i=0;i>>0}return s},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,i=0;r>>24,n[i+1]=a>>>16&255,n[i+2]=a>>>8&255,n[i+3]=255&a):(n[i+3]=a>>>24,n[i+2]=a>>>16&255,n[i+1]=a>>>8&255,n[i]=255&a)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,i){return e+t+n+r+i>>>0},t.sum64=function(e,t,n,r){var i=e[t],a=r+e[t+1]>>>0,s=(a>>0,e[t+1]=a},t.sum64_hi=function(e,t,n,r){return(t+r>>>0>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,i,a,s,o){var u=0,c=t;return u+=(c=c+r>>>0)>>0)>>0)>>0},t.sum64_4_lo=function(e,t,n,r,i,a,s,o){return t+r+a+o>>>0},t.sum64_5_hi=function(e,t,n,r,i,a,s,o,u,c){var l=0,f=t;return l+=(f=f+r>>>0)>>0)>>0)>>0)>>0},t.sum64_5_lo=function(e,t,n,r,i,a,s,o,u,c){return t+r+a+o+c>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},97216(e,t,n){"use strict";var r=n(37279),i="undefined"==typeof globalThis?n.g:globalThis;e.exports=function(){for(var e=[],t=0;ta});var r=n(83815),i=n(462);function a(e,t){if(!(0,i.P)(e,{strict:!1}))throw new r.M({address:e});if(!(0,i.P)(t,{strict:!1}))throw new r.M({address:t});return e.toLowerCase()===t.toLowerCase()}},97932(e,t,n){"use strict";n.d(t,{J9:()=>a,Mc:()=>i,fD:()=>r});const r={1:"An `assert` condition failed.",17:"Arithmetic operation resulted in underflow or overflow.",18:"Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).",33:"Attempted to convert to an invalid type.",34:"Attempted to access a storage byte array that is incorrectly encoded.",49:"Performed `.pop()` on an empty array",50:"Array index is out of bounds.",65:"Allocated too much memory or created an array which is too large.",81:"Attempted to call a zero-initialized variable of internal function type."},i={inputs:[{name:"message",type:"string"}],name:"Error",type:"error"},a={inputs:[{name:"reason",type:"uint256"}],name:"Panic",type:"error"}},98156(e,t,n){"use strict";function r(e,{format:t}){if(!t)return{};const n={};return function t(r){const i=Object.keys(r);for(const a of i)a in e&&(n[a]=e[a]),r[a]&&"object"==typeof r[a]&&!Array.isArray(r[a])&&t(r[a])}(t(e||{})),n}n.d(t,{o:()=>r})},98490(e,t,n){"use strict";n.d(t,{K:()=>r});const r=[{type:"constructor",inputs:[{name:"_incoLightningAddress",internalType:"address",type:"address"}],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"ADD_NODE_RESULT_STRUCT_HASH",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[],name:"BOOTSTRAP_RESULT_STRUCT_HASH",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[],name:"QUOTE_VERIFIER_VERSION",outputs:[{name:"",internalType:"uint16",type:"uint16"}],stateMutability:"view"},{type:"function",inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[],name:"UPGRADE_RESULT_STRUCT_HASH",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[{name:"addNodeResult",internalType:"struct AddNodeResult",type:"tuple",components:[{name:"networkPubkey",internalType:"bytes",type:"bytes"}]}],name:"addNodeResultDigest",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[{name:"voucher",internalType:"struct AllowanceVoucher",type:"tuple",components:[{name:"sessionNonce",internalType:"bytes32",type:"bytes32"},{name:"verifyingContract",internalType:"address",type:"address"},{name:"callFunction",internalType:"bytes4",type:"bytes4"},{name:"sharerArgData",internalType:"bytes",type:"bytes"}]}],name:"allowanceVoucherDigest",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[{name:"newMrAggregated",internalType:"bytes32",type:"bytes32"}],name:"approveNewTeeVersion",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"index",internalType:"uint256",type:"uint256"}],name:"approvedTeeVersions",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[{name:"bootstrapResult",internalType:"struct BootstrapResult",type:"tuple",components:[{name:"ecies_pubkey",internalType:"bytes",type:"bytes"}]}],name:"bootstrapResultDigest",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[{name:"mrTd",internalType:"bytes",type:"bytes"},{name:"rtMr0",internalType:"bytes",type:"bytes"},{name:"rtMr1",internalType:"bytes",type:"bytes"},{name:"rtMr2",internalType:"bytes",type:"bytes"}],name:"computeMrAggregated",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"pure"},{type:"function",inputs:[{name:"decryption",internalType:"struct DecryptionAttestation",type:"tuple",components:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"value",internalType:"bytes32",type:"bytes32"}]}],name:"decryptionAttestationDigest",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[],name:"eciesPubkey",outputs:[{name:"",internalType:"bytes",type:"bytes"}],stateMutability:"view"},{type:"function",inputs:[],name:"eip712Domain",outputs:[{name:"fields",internalType:"bytes1",type:"bytes1"},{name:"name",internalType:"string",type:"string"},{name:"version",internalType:"string",type:"string"},{name:"chainId",internalType:"uint256",type:"uint256"},{name:"verifyingContract",internalType:"address",type:"address"},{name:"salt",internalType:"bytes32",type:"bytes32"},{name:"extensions",internalType:"uint256[]",type:"uint256[]"}],stateMutability:"view"},{type:"function",inputs:[{name:"account",internalType:"address",type:"address"}],name:"getActiveVouchersSessionNonce",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[],name:"getEIP712Name",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[],name:"getEIP712Version",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[{name:"index",internalType:"uint256",type:"uint256"}],name:"getSignerAtIndex",outputs:[{name:"",internalType:"address",type:"address"}],stateMutability:"view"},{type:"function",inputs:[],name:"getSignersCount",outputs:[{name:"",internalType:"uint256",type:"uint256"}],stateMutability:"view"},{type:"function",inputs:[],name:"getThreshold",outputs:[{name:"",internalType:"uint256",type:"uint256"}],stateMutability:"view"},{type:"function",inputs:[{name:"owner",internalType:"address",type:"address"},{name:"name",internalType:"string",type:"string"},{name:"version",internalType:"string",type:"string"},{name:"quoteVerifier",internalType:"contract IQuoteVerifier",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"account",internalType:"address",type:"address"},{name:"proof",internalType:"struct AllowanceProof",type:"tuple",components:[{name:"sharer",internalType:"address",type:"address"},{name:"voucher",internalType:"struct AllowanceVoucher",type:"tuple",components:[{name:"sessionNonce",internalType:"bytes32",type:"bytes32"},{name:"verifyingContract",internalType:"address",type:"address"},{name:"callFunction",internalType:"bytes4",type:"bytes4"},{name:"sharerArgData",internalType:"bytes",type:"bytes"}]},{name:"voucherSignature",internalType:"bytes",type:"bytes"},{name:"requesterArgData",internalType:"bytes",type:"bytes"}]}],name:"isAllowedWithProof",outputs:[{name:"",internalType:"bool",type:"bool"}],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"isBootstrapComplete",outputs:[{name:"",internalType:"bool",type:"bool"}],stateMutability:"view"},{type:"function",inputs:[{name:"signerAddress",internalType:"address",type:"address"}],name:"isSigner",outputs:[{name:"",internalType:"bool",type:"bool"}],stateMutability:"view"},{type:"function",inputs:[{name:"decryption",internalType:"struct DecryptionAttestation",type:"tuple",components:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"value",internalType:"bytes32",type:"bytes32"}]},{name:"signatures",internalType:"bytes[]",type:"bytes[]"}],name:"isValidDecryptionAttestation",outputs:[{name:"",internalType:"bool",type:"bool"}],stateMutability:"view"},{type:"function",inputs:[{name:"digest",internalType:"bytes32",type:"bytes32"},{name:"signatures",internalType:"bytes[]",type:"bytes[]"}],name:"isValidSignature",outputs:[{name:"",internalType:"bool",type:"bool"}],stateMutability:"view"},{type:"function",inputs:[],name:"owner",outputs:[{name:"",internalType:"address",type:"address"}],stateMutability:"view"},{type:"function",inputs:[{name:"tdReport",internalType:"struct Td10ReportBody",type:"tuple",components:[{name:"teeTcbSvn",internalType:"bytes16",type:"bytes16"},{name:"mrSeam",internalType:"bytes",type:"bytes"},{name:"mrsignerSeam",internalType:"bytes",type:"bytes"},{name:"seamAttributes",internalType:"bytes8",type:"bytes8"},{name:"tdAttributes",internalType:"bytes8",type:"bytes8"},{name:"xFAM",internalType:"bytes8",type:"bytes8"},{name:"mrTd",internalType:"bytes",type:"bytes"},{name:"mrConfigId",internalType:"bytes",type:"bytes"},{name:"mrOwner",internalType:"bytes",type:"bytes"},{name:"mrOwnerConfig",internalType:"bytes",type:"bytes"},{name:"rtMr0",internalType:"bytes",type:"bytes"},{name:"rtMr1",internalType:"bytes",type:"bytes"},{name:"rtMr2",internalType:"bytes",type:"bytes"},{name:"rtMr3",internalType:"bytes",type:"bytes"},{name:"reportData",internalType:"bytes",type:"bytes"}]}],name:"parseReport",outputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"pure"},{type:"function",inputs:[{name:"rawQuote",internalType:"bytes",type:"bytes"}],name:"parseTd10ReportBody",outputs:[{name:"report",internalType:"struct Td10ReportBody",type:"tuple",components:[{name:"teeTcbSvn",internalType:"bytes16",type:"bytes16"},{name:"mrSeam",internalType:"bytes",type:"bytes"},{name:"mrsignerSeam",internalType:"bytes",type:"bytes"},{name:"seamAttributes",internalType:"bytes8",type:"bytes8"},{name:"tdAttributes",internalType:"bytes8",type:"bytes8"},{name:"xFAM",internalType:"bytes8",type:"bytes8"},{name:"mrTd",internalType:"bytes",type:"bytes"},{name:"mrConfigId",internalType:"bytes",type:"bytes"},{name:"mrOwner",internalType:"bytes",type:"bytes"},{name:"mrOwnerConfig",internalType:"bytes",type:"bytes"},{name:"rtMr0",internalType:"bytes",type:"bytes"},{name:"rtMr1",internalType:"bytes",type:"bytes"},{name:"rtMr2",internalType:"bytes",type:"bytes"},{name:"rtMr3",internalType:"bytes",type:"bytes"},{name:"reportData",internalType:"bytes",type:"bytes"}]}],stateMutability:"pure"},{type:"function",inputs:[],name:"proxiableUUID",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[],name:"quoteVerifier",outputs:[{name:"",internalType:"contract IQuoteVerifier",type:"address"}],stateMutability:"view"},{type:"function",inputs:[{name:"signerAddress",internalType:"address",type:"address"}],name:"removeSigner",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"newThreshold",internalType:"uint256",type:"uint256"}],name:"setThreshold",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"newOwner",internalType:"address",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"updateActiveVouchersSessionNonce",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"upgradeResult",internalType:"struct UpgradeResult",type:"tuple",components:[{name:"networkPubkey",internalType:"bytes",type:"bytes"}]}],name:"upgradeResultDigest",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[{name:"newImplementation",internalType:"address",type:"address"},{name:"data",internalType:"bytes",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable"},{type:"function",inputs:[{name:"tcbInfo",internalType:"struct TcbInfoJsonObj",type:"tuple",components:[{name:"tcbInfoStr",internalType:"string",type:"string"},{name:"signature",internalType:"bytes",type:"bytes"}]},{name:"identity",internalType:"struct EnclaveIdentityJsonObj",type:"tuple",components:[{name:"identityStr",internalType:"string",type:"string"},{name:"signature",internalType:"bytes",type:"bytes"}]}],name:"uploadCollateral",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"newMrAggregated",internalType:"bytes32",type:"bytes32"},{name:"addNodeResult",internalType:"struct AddNodeResult",type:"tuple",components:[{name:"networkPubkey",internalType:"bytes",type:"bytes"}]},{name:"quote",internalType:"bytes",type:"bytes"},{name:"signature",internalType:"bytes",type:"bytes"}],name:"verifyAddNodeResult",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"bootstrapResult",internalType:"struct BootstrapResult",type:"tuple",components:[{name:"ecies_pubkey",internalType:"bytes",type:"bytes"}]},{name:"quote",internalType:"bytes",type:"bytes"},{name:"signature",internalType:"bytes",type:"bytes"}],name:"verifyBootstrapResult",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"newMrAggregated",internalType:"bytes32",type:"bytes32"},{name:"upgradeResult",internalType:"struct UpgradeResult",type:"tuple",components:[{name:"networkPubkey",internalType:"bytes",type:"bytes"}]},{name:"quote",internalType:"bytes",type:"bytes"},{name:"signature",internalType:"bytes",type:"bytes"}],name:"verifyUpgradeResult",outputs:[],stateMutability:"nonpayable"},{type:"event",anonymous:!1,inputs:[{name:"signerAddress",internalType:"address",type:"address",indexed:!1}],name:"AddedSignatureVerifier"},{type:"event",anonymous:!1,inputs:[{name:"newEoaSigner",internalType:"address",type:"address",indexed:!0},{name:"bootstrapResult",internalType:"struct BootstrapResult",type:"tuple",components:[{name:"ecies_pubkey",internalType:"bytes",type:"bytes"}],indexed:!1}],name:"BootstrapStageComplete"},{type:"event",anonymous:!1,inputs:[],name:"EIP712DomainChanged"},{type:"event",anonymous:!1,inputs:[{name:"version",internalType:"uint64",type:"uint64",indexed:!1}],name:"Initialized"},{type:"event",anonymous:!1,inputs:[{name:"covalidatorAddress",internalType:"address",type:"address",indexed:!1},{name:"quote",internalType:"bytes",type:"bytes",indexed:!1}],name:"NewCovalidatorAdded"},{type:"event",anonymous:!1,inputs:[{name:"version",internalType:"uint256",type:"uint256",indexed:!0},{name:"mrAggregated",internalType:"bytes32",type:"bytes32",indexed:!0}],name:"NewTEEVersionApproved"},{type:"event",anonymous:!1,inputs:[{name:"previousOwner",internalType:"address",type:"address",indexed:!0},{name:"newOwner",internalType:"address",type:"address",indexed:!0}],name:"OwnershipTransferred"},{type:"event",anonymous:!1,inputs:[{name:"signerAddress",internalType:"address",type:"address",indexed:!1}],name:"RemovedSignatureVerifier"},{type:"event",anonymous:!1,inputs:[{name:"eoaSigner",internalType:"address",type:"address",indexed:!0},{name:"mrAggregated",internalType:"bytes32",type:"bytes32",indexed:!0}],name:"SignerHasUpdatedTDX"},{type:"event",anonymous:!1,inputs:[{name:"oldThreshold",internalType:"uint256",type:"uint256",indexed:!1},{name:"newThreshold",internalType:"uint256",type:"uint256",indexed:!1}],name:"ThresholdChanged"},{type:"event",anonymous:!1,inputs:[{name:"implementation",internalType:"address",type:"address",indexed:!0}],name:"Upgraded"},{type:"error",inputs:[{name:"target",internalType:"address",type:"address"}],name:"AddressEmptyCode"},{type:"error",inputs:[],name:"BootstrapAlreadyCompleted"},{type:"error",inputs:[],name:"BootstrapNotComplete"},{type:"error",inputs:[],name:"ECDSAInvalidSignature"},{type:"error",inputs:[{name:"length",internalType:"uint256",type:"uint256"}],name:"ECDSAInvalidSignatureLength"},{type:"error",inputs:[{name:"s",internalType:"bytes32",type:"bytes32"}],name:"ECDSAInvalidSignatureS"},{type:"error",inputs:[{name:"implementation",internalType:"address",type:"address"}],name:"ERC1967InvalidImplementation"},{type:"error",inputs:[],name:"ERC1967NonPayable"},{type:"error",inputs:[],name:"EmptyIdentity"},{type:"error",inputs:[],name:"EmptyTcbInfo"},{type:"error",inputs:[],name:"FailedCall"},{type:"error",inputs:[],name:"IndexOutOfBounds"},{type:"error",inputs:[],name:"InvalidEIP712Signature"},{type:"error",inputs:[],name:"InvalidInitialization"},{type:"error",inputs:[],name:"InvalidNetworkPubkey"},{type:"error",inputs:[{name:"actual",internalType:"uint16",type:"uint16"},{name:"expected",internalType:"uint16",type:"uint16"}],name:"InvalidQuoteVerifierVersion"},{type:"error",inputs:[],name:"InvalidReportDataSigner"},{type:"error",inputs:[],name:"InvalidReportMrAggregated"},{type:"error",inputs:[{name:"threshold",internalType:"uint256",type:"uint256"},{name:"nbOfSigners",internalType:"uint256",type:"uint256"}],name:"InvalidThreshold"},{type:"error",inputs:[{name:"providedSessionNonce",internalType:"bytes32",type:"bytes32"},{name:"activeSessionNonce",internalType:"bytes32",type:"bytes32"}],name:"InvalidVoucherSessionNonce"},{type:"error",inputs:[{name:"signer",internalType:"address",type:"address"},{name:"digest",internalType:"bytes32",type:"bytes32"},{name:"signature",internalType:"bytes",type:"bytes"}],name:"InvalidVoucherSignature"},{type:"error",inputs:[],name:"NotInitializing"},{type:"error",inputs:[{name:"owner",internalType:"address",type:"address"}],name:"OwnableInvalidOwner"},{type:"error",inputs:[{name:"account",internalType:"address",type:"address"}],name:"OwnableUnauthorizedAccount"},{type:"error",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"sharer",internalType:"address",type:"address"}],name:"SharerNotAllowedForHandle"},{type:"error",inputs:[{name:"signerAddress",internalType:"address",type:"address"}],name:"SignerAlreadyAdded"},{type:"error",inputs:[{name:"signerAddress",internalType:"address",type:"address"}],name:"SignerNotFound"},{type:"error",inputs:[{name:"currentSigner",internalType:"address",type:"address"},{name:"lastSigner",internalType:"address",type:"address"}],name:"SignersNotInAscendingOrder"},{type:"error",inputs:[],name:"TEEVersionNotFound"},{type:"error",inputs:[],name:"UUPSUnauthorizedCallContext"},{type:"error",inputs:[{name:"slot",internalType:"bytes32",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID"}]},98839(e,t,n){"use strict";var r=n(72258).Buffer,i=n(70950),a="undefined"!=typeof Uint8Array,s=a&&"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView;e.exports=function(e,t,n){if("string"==typeof e||r.isBuffer(e)||a&&e instanceof Uint8Array||s&&s(e))return i(e,t);throw new TypeError(n+" must be a string, a Buffer, a Uint8Array, or a DataView")}},99053(e,t,n){"use strict";n.d(t,{AU:()=>a});var r=n(91893),i=n(4909);n(82884).Lm,r.zM,i.zM;const a=e=>!e},99342(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=[10,7,11,17,18,3,5,16,8,21,24,4,15,23,19,13,12,2,20,14,22,9,6,1]},99344(e,t,n){"use strict";n.d(t,{O31:()=>ue,QwO:()=>Oe,v8c:()=>ne,uSQ:()=>X,wSs:()=>re,mSG:()=>Ee,QfV:()=>te,_kM:()=>_e,k_Z:()=>J,gPz:()=>ae,wkx:()=>xe,pbD:()=>Ae,lqM:()=>ge,K$g:()=>Pe});var r=n(28062),i=n(72529),a=n(91893),s=n(59329),o=n(46385),u=n(12717),c=n(36708),l=n(66949),f=n(82884);const d=Symbol.for("effect/BigDecimal"),h={[d]:d,[o.HR](){const e=w(this);return(0,s.Fs)(o.tW(e.value),o.kg(o.ai(e.scale)),o.PO(this))},[i.HR](e){return p(e)&&E(this,e)},toString(){return`BigDecimal(${k(this)})`},toJSON(){return{_id:"BigDecimal",value:String(this.value),scale:this.scale}},[u.FX](){return this.toJSON()},pipe(){return(0,l.tT)(this,arguments)}},p=e=>(0,f.i5)(e,d),m=(e,t)=>{const n=Object.create(h);return n.value=e,n.scale=t,n},y=(e,t)=>{if(e!==b&&e%g===b)throw new RangeError("Value must be normalized");const n=m(e,t);return n.normalized=n,n},b=BigInt(0),g=BigInt(10),v=y(b,0),w=e=>{if(void 0===e.normalized)if(e.value===b)e.normalized=v;else{const t=`${e.value}`;let n=0;for(let e=t.length-1;e>=0&&"0"===t[e];e--)n++;0===n&&(e.normalized=e);const r=BigInt(t.substring(0,t.length-n)),i=e.scale-n;e.normalized=y(r,i)}return e.normalized},_=(0,s.XY)(2,(e,t)=>t>e.scale?m(e.value*g**BigInt(t-e.scale),t):te.scale>t.scale?_(t,e.scale).value===e.value:e.scaleS(e,t)),k=e=>{const t=w(e);if(Math.abs(t.scale)>=16)return x(t);const n=t.value=r.length)i="0",a="0".repeat(t.scale-r.length)+r;else{const e=r.length-t.scale;if(e>r.length){const t=e-r.length;i=`${r}${"0".repeat(t)}`,a=""}else a=r.slice(e),i=r.slice(0,e)}const s=""===a?i:`${i}.${a}`;return n?`-${s}`:s},x=e=>{if(T(e))return"0e+0";const t=w(e),n=`${(e=>e.value=0?"+":""}${s}`},T=e=>e.value===b,M=e=>e.valuef.i5(e,P)),B=(A.Ru,A.Ru,e=>new Date(e.epochMillis));var F=n(77962);n(59688);var L=n(23343),j=(n(28876),n(9100)),D=n(50168);f.Kg,a.Yj,I.Yj,Symbol.iterator;const U=(0,s.XY)(e=>f.Gv(e[0]),(e,...t)=>{const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}),z=(0,s.XY)(e=>f.Gv(e[0]),(e,...t)=>{const n={...e};for(const e of t)delete n[e];return n}),$=(a.w3,I.w3,Symbol.for("effect/Schema"));function V(e){return class{[$]=K;static ast=e;static annotations(e){return V(H(this.ast,e))}static pipe(){return(0,l.tT)(this,arguments)}static toString(){return String(e)}static Type;static Encoded;static Context;static[$]=K}}const K={_A:e=>e,_I:e=>e,_R:e=>e},Y={typeConstructor:D.HS,schemaId:D.Ho,message:D.YN,missingMessage:D.Ey,identifier:D.On,title:D.Z8,description:D.Uh,examples:D.U4,default:D.u7,documentation:D.DH,jsonSchema:D.Ad,arbitrary:D.BW,pretty:D.TN,equivalence:D.RP,concurrency:D.MR,batching:D.Jo,parseIssueTitle:D.J5,parseOptions:D.E_,decodingFallback:D.Yw},q=e=>{if(!e)return{};const t={...e};for(const n in Y)n in e&&(t[Y[n]]=e[n],delete t[n]);return t},H=(e,t)=>D.hk(e,q(t)),G=e=>f.i5(e,$)&&f.Gv(e[$]);function W(e,t=function(e){return D.gV(e)?D.gP.make(D.Mz(e,e=>new D.uS(e))):new D.uS(e[0])}(e)){return class extends(V(t)){static annotations(e){return W(this.literals,H(this.ast,e))}static literals=[...e]}}function X(...e){return r.iI(e)?W(e):Q}const J=(...[e,...t])=>{const n=[];let i="",a=t;G(e)?D.c$(e.ast)?i=String(e.ast.literal):a=[e,...a]:i=String(e);for(let e=0;eD.gP.make(e.map(e=>e.ast)))(e)){return class extends(V(t)){static annotations(e){return ie(this.members,H(this.ast,e))}static members=[...e]}}function ae(...e){return D.gV(e)?ie(e):r.iI(e)?e[0]:Q}function se(e,t,n=((e,t)=>new D.TD(e.map(e=>G(e)?new D.zh(e.ast,!1):e.ast),t.map(e=>G(e)?new D.ZU(e.ast):e.ast),!0))(e,t)){return class extends(V(n)){static annotations(e){return se(this.elements,this.rest,H(this.ast,e))}static elements=[...e];static rest=[...t]}}function oe(e,t){return class extends(se([],[e],t)){static annotations(e){return oe(this.value,H(this.ast,e))}static value=e}}const ue=e=>oe(e),ce=e=>e?'"?:"':'":"';class le extends D.zh{isReadonly;defaultValue;_tag="PropertySignatureDeclaration";constructor(e,t,n,r,i){super(e,t,r),this.isReadonly=n,this.defaultValue=i}toString(){const e=ce(this.isOptional),t=String(this.type);return`PropertySignature<${e}, ${t}, never, ${e}, ${t}>`}}D.zh;class fe extends D.zh{isReadonly;defaultValue;constructor(e,t,n,r,i){super(e,t,r),this.isReadonly=n,this.defaultValue=i}}class de{from;to;decode;encode;_tag="PropertySignatureTransformation";constructor(e,t,n,r){this.from=e,this.to=t,this.decode=n,this.encode=r}toString(){return`PropertySignature<${ce(this.to.isOptional)}, ${this.to.type}, ${e=this.from.fromKey,void 0===e?"never":f.Kg(e)?JSON.stringify(e):String(e)}, ${ce(this.from.isOptional)}, ${this.from.type}>`;var e}}const he=(e,t)=>{switch(e._tag){case"PropertySignatureDeclaration":return new le(e.type,e.isOptional,e.isReadonly,{...e.annotations,...t},e.defaultValue);case"PropertySignatureTransformation":return new de(e.from,new fe(e.to.type,e.to.isOptional,e.to.isReadonly,{...e.to.annotations,...t},e.to.defaultValue),e.decode,e.encode)}},pe=Symbol.for("effect/PropertySignature"),me=e=>f.i5(e,pe);class ye{ast;[$];[pe]=null;_TypeToken;_Key;_EncodedToken;_HasDefault;constructor(e){this.ast=e}pipe(){return(0,l.tT)(this,arguments)}annotations(e){return new ye(he(this.ast,q(e)))}toString(){return String(this.ast)}}class be extends ye{from;constructor(e,t){super(e),this.from=t}annotations(e){return new be(he(this.ast,q(e)),this.from)}}const ge=e=>{const t=e.ast===D.oA||e.ast===D.M3?D.oA:(e=>ae(e,Z))(e).ast;return new be(new le(t,!0,!0,{},void 0),e)},ve=D.g0([D.Ey]);function we(e,t,n=((e,t)=>{const n=Reflect.ownKeys(e),i=[];if(n.length>0){const a=[],s=[],o=[];for(let t=0;t{a.push(e),s.push(new D.Gb(e.name,D.p$(e.type),e.isOptional,e.isReadonly,e.annotations))}),t.forEach(t=>{e.push(t),n.push(new D.NH(t.parameter,D.p$(t.type),t.isReadonly))})}return new D.IT(new D.Ky(a,e,{[D.aG]:"Struct (Encoded side)"}),new D.Ky(s,n,{[D.aG]:"Struct (Type side)"}),new D.nt(o))}}const a=[];for(const e of t){const{indexSignatures:t,propertySignatures:n}=D.g1(e.key.ast,e.value.ast);n.forEach(e=>i.push(e)),t.forEach(e=>a.push(e))}return new D.Ky(i,a)})(e,t)){return class extends(V(n)){static annotations(e){return we(this.fields,this.records,H(this.ast,e))}static fields={...e};static records=[...t];static make=(t,n)=>{const r=((e,t)=>{const n=Reflect.ownKeys(e);for(const r of n){const n=e[r];if(void 0===t[r]&&me(n)){const e=n.ast,i="PropertySignatureDeclaration"===e._tag?e.defaultValue:e.to.defaultValue;void 0!==i&&(t[r]=i())}}return t})(e,{...t});return Re(n)?r:j.eq(this)(r)};static pick(...t){return _e(U(e,...t))}static omit(...t){return _e(z(e,...t))}}}function _e(e,...t){return we(e,t)}function Se(e,t,n){return class extends(we({},[{key:e,value:t}],n)){static annotations(n){return Se(e,t,H(this.ast,n))}static key=e;static value=t}}const Ee=e=>Se(e.key,e.value);function ke(e,t){return class extends(V(t)){static annotations(e){return ke(this.from,H(this.ast,e))}static make=(e,t)=>Re(t)?e:j.eq(this)(e);static from=e}}const xe=(e,t)=>n=>{const r=c.YW(D.$N(n.ast),{onNone:()=>[e],onSome:t=>[...t,e]});return ke(n,D.hk(n.ast,q({[D.SB]:r,...t})))},Te=(D.On,Symbol.for("effect/SchemaId/Refine"));function Me(e,t,n){return class extends(V(n)){static annotations(e){return Me(this.from,this.filter,H(this.ast,e))}static[Te]=e;static from=e;static filter=t;static make=(e,t)=>Re(t)?e:j.eq(this)(e)}}const Ie=(e,t,n)=>{if(f.Lm(e))return e?c.dv():c.zN(new j.ZU(t,n));if(f.Kg(e))return c.zN(new j.ZU(t,n,e));if(void 0!==e){if("_tag"in e)return c.zN(e);const i=new j.ZU(t,n,e.message);return c.zN(r.iI(e.path)?new j.gm(e.path,n,i):i)}return c.dv()};function Ae(e,t){return n=>{function i(t,n,i){return((e,t,n)=>{if(L.vX(e))return Ie(e,t,n);if(r.iI(e)){const i=r.x1(e,e=>Ie(e,t,n));if(r.iI(i))return c.zN(1===i.length?i[0]:new j.eC(t,n,i))}return c.dv()})(e(t,n,i),i,t)}return Me(n,i,new D.kV(n.ast,i,q(t)))}}function Ne(e,t,n){return class extends(V(n)){static annotations(e){return Ne(this.from,this.to,H(this.ast,e))}static from=e;static to=t}}const Pe=(0,s.XY)(e=>G(e[0])&&G(e[1]),(e,t,n)=>Ne(e,t,new D.IT(e.ast,t.ast,new D.EK(n.decode,n.encode))));URL;class Oe extends(Pe(te.annotations({description:"a string to be decoded into a bigint"}),ee,{strict:!0,decode:(e,t,n)=>j.sV((e=>{try{return""===e.trim()?c.dv():c.zN(BigInt(e))}catch{return c.dv()}})(e),()=>new j.ZU(n,e,`Unable to decode ${JSON.stringify(e)} into a bigint`)),encode:e=>j.Py(String(e))}).annotations({identifier:"BigInt"})){}N.n$,f.mg;function Re(e){return f.Lm(e)?e:e?.disableValidation??!1}f.$P;F.gb;D.RP},99701(e,t,n){var r=n(33213),i=n(73730).Buffer,a=n(39197),s=a.base,o=a.constants.der;function u(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new c,this.tree._init(e.body)}function c(e){s.Node.call(this,"der",e)}function l(e){return e<10?"0"+e:e}e.exports=u,u.prototype.encode=function(e,t){return this.tree._encode(e,t).join()},r(c,s.Node),c.prototype._encodeComposite=function(e,t,n,r){var a,s=function(e,t,n,r){var i;if("seqof"===e?e="seq":"setof"===e&&(e="set"),o.tagByName.hasOwnProperty(e))i=o.tagByName[e];else{if("number"!=typeof e||(0|e)!==e)return r.error("Unknown tag: "+e);i=e}return i>=31?r.error("Multi-octet tag encoding unsupported"):(t||(i|=32),i|=o.tagClassByName[n||"universal"]<<6)}(e,t,n,this.reporter);if(r.length<128)return(a=new i(2))[0]=s,a[1]=r.length,this._createEncoderBuffer([a,r]);for(var u=1,c=r.length;c>=256;c>>=8)u++;(a=new i(2+u))[0]=s,a[1]=128|u,c=1+u;for(var l=r.length;l>0;c--,l>>=8)a[c]=255&l;return this._createEncoderBuffer([a,r])},c.prototype._encodeStr=function(e,t){if("bitstr"===t)return this._createEncoderBuffer([0|e.unused,e.data]);if("bmpstr"===t){for(var n=new i(2*e.length),r=0;r=40)return this.reporter.error("Second objid identifier OOB");e.splice(0,2,40*e[0]+e[1])}var a=0;for(r=0;r=128;s>>=7)a++}var o=new i(a),u=o.length-1;for(r=e.length-1;r>=0;r--)for(s=e[r],o[u--]=127&s;(s>>=7)>0;)o[u--]=128|127&s;return this._createEncoderBuffer(o)},c.prototype._encodeTime=function(e,t){var n,r=new Date(e);return"gentime"===t?n=[l(r.getFullYear()),l(r.getUTCMonth()+1),l(r.getUTCDate()),l(r.getUTCHours()),l(r.getUTCMinutes()),l(r.getUTCSeconds()),"Z"].join(""):"utctime"===t?n=[l(r.getFullYear()%100),l(r.getUTCMonth()+1),l(r.getUTCDate()),l(r.getUTCHours()),l(r.getUTCMinutes()),l(r.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+t+" time is not supported yet"),this._encodeStr(n,"octstr")},c.prototype._encodeNull=function(){return this._createEncoderBuffer("")},c.prototype._encodeInt=function(e,t){if("string"==typeof e){if(!t)return this.reporter.error("String int or enum given, but no values map");if(!t.hasOwnProperty(e))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(e));e=t[e]}if("number"!=typeof e&&!i.isBuffer(e)){var n=e.toArray();!e.sign&&128&n[0]&&n.unshift(0),e=new i(n)}if(i.isBuffer(e)){var r=e.length;0===e.length&&r++;var a=new i(r);return e.copy(a),0===e.length&&(a[0]=0),this._createEncoderBuffer(a)}if(e<128)return this._createEncoderBuffer(e);if(e<256)return this._createEncoderBuffer([0,e]);r=1;for(var s=e;s>=256;s>>=8)r++;for(s=(a=new Array(r)).length-1;s>=0;s--)a[s]=255&e,e>>=8;return 128&a[0]&&a.unshift(0),this._createEncoderBuffer(new i(a))},c.prototype._encodeBool=function(e){return this._createEncoderBuffer(e?255:0)},c.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getEncoder("der").tree},c.prototype._skipDefault=function(e,t,n){var r,i=this._baseState;if(null===i.default)return!1;var a=e.join();if(void 0===i.defaultBuffer&&(i.defaultBuffer=this._encodeValue(i.default,t,n).join()),a.length!==i.defaultBuffer.length)return!1;for(r=0;rZi});var r=n(81127),i=n(56050),a=n(58359),s=n(19109),o=n(81689),u=n(58038),c=n(11956),l=n(47457),f=n(76329);const d={block:(0,c.R)({format(e){const t=e.transactions?.map(e=>{if("string"==typeof e)return e;const t=(0,l.uP)(e);return"0x7e"===t.typeHex&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?(0,u.uU)(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t});return{transactions:t,stateRoot:e.stateRoot}}}),transaction:(0,l.gU)({format(e){const t={};return"0x7e"===e.type&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?(0,u.uU)(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:(0,f.WB)({format:e=>({l1GasPrice:e.l1GasPrice?(0,u.uU)(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?(0,u.uU)(e.l1GasUsed):null,l1Fee:e.l1Fee?(0,u.uU)(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null})})};var h=n(83815),p=n(462),m=n(33640),y=n(75209),b=n(82150),g=n(33026);const v={blockTime:2e3,contracts:{gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}},formatters:d,serializers:{transaction:function(e,t){return function(e){return"deposit"===e.type||void 0!==e.sourceHash}(e)?function(e){!function(e){const{from:t,to:n}=e;if(t&&!(0,p.P)(t))throw new h.M({address:t});if(n&&!(0,p.P)(n))throw new h.M({address:n})}(e);const{sourceHash:t,data:n,from:r,gas:i,isSystemTx:a,mint:s,to:o,value:u}=e,c=[t,r,o??"0x",s?(0,y.nj)(s):"0x",u?(0,y.nj)(u):"0x",i?(0,y.nj)(i):"0x",a?"0x1":"0x",n??"0x"];return(0,m.aP)(["0x7e",(0,b.EQ)(c)])}(e):(0,g.b)(e,t)}}};var w=n(38963);const _=11155111,S=(0,w.x)({...v,id:84532,network:"base-sepolia",name:"Base Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://sepolia.basescan.org",apiUrl:"https://api-sepolia.basescan.org/api"}},contracts:{...v.contracts,disputeGameFactory:{[_]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[_]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[_]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[_]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:_});function E(e,t){return!(null===e||"object"!=typeof e||!("$typeName"in e)||"string"!=typeof e.$typeName||void 0!==t&&t.typeName!==e.$typeName)}var k,x;function T(){let e=0,t=0;for(let n=0;n<28;n+=7){let r=this.buf[this.pos++];if(e|=(127&r)<>4,!(128&n))return this.assertBounds(),[e,t];for(let n=3;n<=31;n+=7){let r=this.buf[this.pos++];if(t|=(127&r)<>>r,a=!(i>>>7==0&&0==t),s=255&(a?128|i:i);if(n.push(s),!a)return}const r=e>>>28&15|(7&t)<<4,i=!!(t>>3);if(n.push(255&(i?128|r:r)),i){for(let e=3;e<31;e+=7){const r=t>>>e,i=!(r>>>7==0),a=255&(i?128|r:r);if(n.push(a),!i)return}n.push(t>>>31&1)}}(x=k||(k={}))[x.DOUBLE=1]="DOUBLE",x[x.FLOAT=2]="FLOAT",x[x.INT64=3]="INT64",x[x.UINT64=4]="UINT64",x[x.INT32=5]="INT32",x[x.FIXED64=6]="FIXED64",x[x.FIXED32=7]="FIXED32",x[x.BOOL=8]="BOOL",x[x.STRING=9]="STRING",x[x.BYTES=12]="BYTES",x[x.UINT32=13]="UINT32",x[x.SFIXED32=15]="SFIXED32",x[x.SFIXED64=16]="SFIXED64",x[x.SINT32=17]="SINT32",x[x.SINT64=18]="SINT64";const I=4294967296;function A(e){const t="-"===e[0];t&&(e=e.slice(1));const n=1e6;let r=0,i=0;function a(t,a){const s=Number(e.slice(t,a));i*=n,r=r*n+s,r>=I&&(i+=r/I|0,r%=I)}return a(-24,-18),a(-18,-12),a(-12,-6),a(-6),t?O(r,i):P(r,i)}function N(e,t){if(({lo:e,hi:t}=function(e,t){return{lo:e>>>0,hi:t>>>0}}(e,t)),t<=2097151)return String(I*t+e);const n=16777215&(e>>>24|t<<8),r=t>>16&65535;let i=(16777215&e)+6777216*n+6710656*r,a=n+8147497*r,s=2*r;const o=1e7;return i>=o&&(a+=Math.floor(i/o),i%=o),a>=o&&(s+=Math.floor(a/o),a%=o),s.toString()+R(a)+R(i)}function P(e,t){return{lo:0|e,hi:0|t}}function O(e,t){return t=~t,e?e=1+~e:t+=1,P(e,t)}const R=e=>{const t=String(e);return"0000000".slice(t.length)+t};function C(e,t){if(e>=0){for(;e>127;)t.push(127&e|128),e>>>=7;t.push(e)}else{for(let n=0;n<9;n++)t.push(127&e|128),e>>=7;t.push(1)}}function B(){let e=this.buf[this.pos++],t=127&e;if(!(128&e))return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(127&e)<<7,!(128&e))return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(127&e)<<14,!(128&e))return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(127&e)<<21,!(128&e))return this.assertBounds(),t;e=this.buf[this.pos++],t|=(15&e)<<28;for(let t=5;128&e&&t<10;t++)e=this.buf[this.pos++];if(128&e)throw new Error("invalid varint");return this.assertBounds(),t>>>0}var F=n(42649);const L=j();function j(){const e=new DataView(new ArrayBuffer(8));if("function"==typeof BigInt&&"function"==typeof e.getBigInt64&&"function"==typeof e.getBigUint64&&"function"==typeof e.setBigInt64&&"function"==typeof e.setBigUint64&&(globalThis.Deno||"object"!=typeof F||"object"!=typeof F.env||"1"!==F.env.BUF_BIGINT_DISABLE)){const t=BigInt("-9223372036854775808"),n=BigInt("9223372036854775807"),r=BigInt("0"),i=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(e){const r="bigint"==typeof e?e:BigInt(e);if(r>n||ri||t(e.setInt32(0,t,!0),e.setInt32(4,n,!0),e.getBigInt64(0,!0)),uDec:(t,n)=>(e.setInt32(0,t,!0),e.setInt32(4,n,!0),e.getBigUint64(0,!0))}}return{zero:"0",supported:!1,parse:e=>("string"!=typeof e&&(e=e.toString()),D(e),e),uParse:e=>("string"!=typeof e&&(e=e.toString()),U(e),e),enc:e=>("string"!=typeof e&&(e=e.toString()),D(e),A(e)),uEnc:e=>("string"!=typeof e&&(e=e.toString()),U(e),A(e)),dec:(e,t)=>function(e,t){let n=P(e,t);const r=2147483648&n.hi;r&&(n=O(n.lo,n.hi));const i=N(n.lo,n.hi);return r?"-"+i:i}(e,t),uDec:(e,t)=>N(e,t)}}function D(e){if(!/^-?[0-9]+$/.test(e))throw new Error("invalid int64: "+e)}function U(e){if(!/^[0-9]+$/.test(e))throw new Error("invalid uint64: "+e)}function z(e,t){switch(e){case k.STRING:return"";case k.BOOL:return!1;case k.DOUBLE:case k.FLOAT:return 0;case k.INT64:case k.UINT64:case k.SFIXED64:case k.FIXED64:case k.SINT64:return t?"0":L.zero;case k.BYTES:return new Uint8Array(0);default:return 0}}const $=Symbol.for("reflect unsafe local");function V(e,t){const n=e[t.localName].case;return void 0===n?n:t.fields.find(e=>e.localName===n)}function K(e,t){return Object.prototype.hasOwnProperty.call(e,t)&&void 0!==e[t]}function Y(e,t){if(t.oneof){const n=e[t.oneof.localName];return n.case===t.localName?n.value:void 0}return e[t.localName]}function q(e,t,n){t.oneof?e[t.oneof.localName]={case:t.localName,value:n}:e[t.localName]=n}function H(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function G(e,t){var n,r,i,a;if(H(e)&&$ in e&&"add"in e&&"field"in e&&"function"==typeof e.field){if(void 0!==t){const s=t,o=e.field();return s.listKind==o.listKind&&s.scalar===o.scalar&&(null===(n=s.message)||void 0===n?void 0:n.typeName)===(null===(r=o.message)||void 0===r?void 0:r.typeName)&&(null===(i=s.enum)||void 0===i?void 0:i.typeName)===(null===(a=o.enum)||void 0===a?void 0:a.typeName)}return!0}return!1}function W(e,t){var n,r,i,a;if(H(e)&&$ in e&&"has"in e&&"field"in e&&"function"==typeof e.field){if(void 0!==t){const s=t,o=e.field();return s.mapKey===o.mapKey&&s.mapKind==o.mapKind&&s.scalar===o.scalar&&(null===(n=s.message)||void 0===n?void 0:n.typeName)===(null===(r=o.message)||void 0===r?void 0:r.typeName)&&(null===(i=s.enum)||void 0===i?void 0:i.typeName)===(null===(a=o.enum)||void 0===a?void 0:a.typeName)}return!0}return!1}function X(e,t){return H(e)&&$ in e&&"desc"in e&&H(e.desc)&&"message"===e.desc.kind&&(void 0===t||e.desc.typeName==t.typeName)}function J(e){const t=e.fields[0];return Z(e.typeName)&&void 0!==t&&"scalar"==t.fieldKind&&"value"==t.name&&1==t.number}function Z(e){return e.startsWith("google.protobuf.")&&["DoubleValue","FloatValue","Int64Value","UInt64Value","Int32Value","UInt32Value","BoolValue","StringValue","BytesValue"].includes(e.substring(16))}function Q(e,t){if(E(t,e))return t;const n=function(e){let t;if(function(e){switch(e.file.edition){case 999:return!1;case 998:return!0;default:return e.fields.some(e=>2!=e.presence&&"message"!=e.fieldKind&&!e.oneof)}}(e)){const n=oe.get(e);let r,i;if(n)({prototype:r,members:i}=n);else{r={},i=new Set;for(const t of e.members)"oneof"!=t.kind&&("scalar"!=t.fieldKind&&"enum"!=t.fieldKind||2!=t.presence&&(i.add(t),r[t.localName]=ue(t)));oe.set(e,{prototype:r,members:i})}t=Object.create(r),t.$typeName=e.typeName;for(const n of e.members)if(!i.has(n)){if("field"==n.kind){if("message"==n.fieldKind)continue;if(("scalar"==n.fieldKind||"enum"==n.fieldKind)&&2!=n.presence)continue}t[n.localName]=ue(n)}}else{t={$typeName:e.typeName};for(const n of e.members)"oneof"!=n.kind&&2!=n.presence||(t[n.localName]=ue(n))}return t}(e);return void 0!==t&&function(e,t,n){for(const r of e.members){let e,i=n[r.localName];if(null!=i){if("oneof"==r.kind){const t=V(n,r);if(!t)continue;e=t,i=Y(n,t)}else e=r;switch(e.fieldKind){case"message":i=re(e,i);break;case"scalar":i=ee(e,i);break;case"list":i=ne(e,i);break;case"map":i=te(e,i)}q(t,e,i)}}}(e,n,t),n}function ee(e,t){return e.scalar==k.BYTES?ie(t):t}function te(e,t){if(H(t)){if(e.scalar==k.BYTES)return ae(t,ie);if("message"==e.mapKind)return ae(t,t=>re(e,t))}return t}function ne(e,t){if(Array.isArray(t)){if(e.scalar==k.BYTES)return t.map(ie);if("message"==e.listKind)return t.map(t=>re(e,t))}return t}function re(e,t){if("message"==e.fieldKind&&!e.oneof&&J(e.message))return ee(e.message.fields[0],t);if(H(t)){if("google.protobuf.Struct"==e.message.typeName&&"google.protobuf.Value"!==e.parent.typeName)return t;if(!E(t,e.message))return Q(e.message,t)}return t}function ie(e){return Array.isArray(e)?new Uint8Array(e):e}function ae(e,t){const n={};for(const r of Object.entries(e))n[r[0]]=t(r[1]);return n}const se=Symbol(),oe=new WeakMap;function ue(e){if("oneof"==e.kind)return{case:void 0};if("list"==e.fieldKind)return[];if("map"==e.fieldKind)return{};if("message"==e.fieldKind)return se;const t=e.getDefaultValue();return void 0!==t?"scalar"==e.fieldKind&&e.longAsString?t.toString():t:"scalar"==e.fieldKind?z(e.scalar,e.longAsString):e.enum.values[0].number}var ce=n(28780),le=n(16720),fe=n(17617),de=n(99344),he=n(34105),pe=n(33781);const me={euint64:pe.uU.euint64,euint160:pe.uU.euint160,euint256:pe.uU.euint256,ebool:pe.uU.ebool},ye=Object.keys(me),be=(de.uSQ(...ye),de.uSQ(...Object.values(me))),ge=de.uSQ(1),ve=de._kM({scheme:ge,type:be,value:he.hJ}),we=(de._kM({ciphertext:ve,context:pe.E0}),de._kM({ciphertext:ve,context:pe.E0,prehandle:he.Xn,handle:he.Xn}),de.gPz(de._kM({scheme:ge,type:de.uSQ(pe.uU.euint64,pe.uU.euint160,pe.uU.euint256),value:de.QwO}),de._kM({scheme:ge,type:de.uSQ(pe.uU.ebool),value:de.v8c})));function _e(e,t,n){switch(t){case pe.uU.euint64:case pe.uU.euint160:case pe.uU.euint256:return{scheme:e,type:t,value:n};case pe.uU.ebool:return{scheme:e,type:t,value:0n!==n};default:console.warn(`bigintToPlaintext: Unsupported Encryption Scheme type ${t}`)}throw new Error(`Unsupported Encryption Scheme type: ${t}`)}de._kM({plaintext:we,context:pe.E0});const Se=[{name:"handle",type:"bytes32"},{name:"ciphertext",type:"bytes"}];function Ee(e,t){return(0,ce.h)(Se,[e,t])}function ke(e){return(0,he.A2)(function(e){switch(e.type){case pe.uU.euint64:case pe.uU.euint160:case pe.uU.euint256:return e.value;case pe.uU.ebool:return e.value?1n:0n}}(e))}const xe=[{type:"function",inputs:[],name:"getSession",outputs:[{name:"",internalType:"struct Session",type:"tuple",components:[{name:"decrypter",internalType:"address",type:"address"},{name:"expiresAt",internalType:"uint256",type:"uint256"}]}],stateMutability:"pure"}],Te=[{type:"function",inputs:[{name:"voucher",internalType:"struct AllowanceVoucher",type:"tuple",components:[{name:"sessionNonce",internalType:"bytes32",type:"bytes32"},{name:"verifyingContract",internalType:"address",type:"address"},{name:"callFunction",internalType:"bytes4",type:"bytes4"},{name:"sharerArgData",internalType:"bytes",type:"bytes"}]}],name:"allowanceVoucherDigest",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[],name:"eip712Domain",outputs:[{name:"fields",internalType:"bytes1",type:"bytes1"},{name:"name",internalType:"string",type:"string"},{name:"version",internalType:"string",type:"string"},{name:"chainId",internalType:"uint256",type:"uint256"},{name:"verifyingContract",internalType:"address",type:"address"},{name:"salt",internalType:"bytes32",type:"bytes32"},{name:"extensions",internalType:"uint256[]",type:"uint256[]"}],stateMutability:"view"},{type:"function",inputs:[{name:"account",internalType:"address",type:"address"}],name:"getActiveVouchersSessionNonce",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"account",internalType:"address",type:"address"},{name:"proof",internalType:"struct AllowanceProof",type:"tuple",components:[{name:"sharer",internalType:"address",type:"address"},{name:"voucher",internalType:"struct AllowanceVoucher",type:"tuple",components:[{name:"sessionNonce",internalType:"bytes32",type:"bytes32"},{name:"verifyingContract",internalType:"address",type:"address"},{name:"callFunction",internalType:"bytes4",type:"bytes4"},{name:"sharerArgData",internalType:"bytes",type:"bytes"}]},{name:"voucherSignature",internalType:"bytes",type:"bytes"},{name:"requesterArgData",internalType:"bytes",type:"bytes"}]}],name:"isAllowedWithProof",outputs:[{name:"",internalType:"bool",type:"bool"}],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"updateActiveVouchersSessionNonce",outputs:[],stateMutability:"nonpayable"},{type:"event",anonymous:!1,inputs:[],name:"EIP712DomainChanged"},{type:"event",anonymous:!1,inputs:[{name:"version",internalType:"uint64",type:"uint64",indexed:!1}],name:"Initialized"},{type:"error",inputs:[],name:"InvalidInitialization"},{type:"error",inputs:[{name:"providedSessionNonce",internalType:"bytes32",type:"bytes32"},{name:"activeSessionNonce",internalType:"bytes32",type:"bytes32"}],name:"InvalidVoucherSessionNonce"},{type:"error",inputs:[{name:"signer",internalType:"address",type:"address"},{name:"digest",internalType:"bytes32",type:"bytes32"},{name:"signature",internalType:"bytes",type:"bytes"}],name:"InvalidVoucherSignature"},{type:"error",inputs:[],name:"NotInitializing"},{type:"error",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"sharer",internalType:"address",type:"address"}],name:"SharerNotAllowedForHandle"}];var Me=n(86020),Ie=n(98490);function Ae(e){const t=function(){if(!Re){Re=[];const e=Ce("std");for(let t=0;t>4,o=r,s=2;break;case 2:i[a++]=(15&o)<<4|(60&r)>>2,o=r,s=3;break;case 3:i[a++]=(3&o)<<6|r,s=0}}if(1==s)throw Error("invalid base64 string");return i.subarray(0,a)}function Ne(e,t="std"){const n=Ce(t),r="std"==t;let i,a="",s=0,o=0;for(let t=0;t>2],o=(3&i)<<4,s=1;break;case 1:a+=n[o|i>>4],o=(15&i)<<2,s=2;break;case 2:a+=n[o|i>>6],a+=n[63&i],s=0}return s&&(a+=n[o],r&&(a+="=",1==s&&(a+="="))),a}let Pe,Oe,Re;function Ce(e){return Pe||(Pe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),Oe=Pe.slice(0,-2).concat("-","_")),"url"==e?Oe:Pe}function Be(e){let t=!1;const n=[];for(let r=0;re.values(),get files(){return n.values()},addFile(e,t,r){if(n.set(e.proto.name,e),!t)for(const t of De(e))this.add(t);if(r)for(const n of e.dependencies)this.addFile(n,t,r)},add(n){if("extension"==n.kind){let e=t.get(n.extendee.typeName);e||t.set(n.extendee.typeName,e=new Map),e.set(n.number,n)}e.set(n.typeName,n)},get:t=>e.get(t),getFile:e=>n.get(e),getMessage(t){const n=e.get(t);return"message"==(null==n?void 0:n.kind)?n:void 0},getEnum(t){const n=e.get(t);return"enum"==(null==n?void 0:n.kind)?n:void 0},getExtension(t){const n=e.get(t);return"extension"==(null==n?void 0:n.kind)?n:void 0},getExtensionFor(e,n){var r;return null===(r=t.get(e.typeName))||void 0===r?void 0:r.get(n)},getService(t){const n=e.get(t);return"service"==(null==n?void 0:n.kind)?n:void 0}}}();if(!e.length)return t;if("$typeName"in e[0]&&"google.protobuf.FileDescriptorSet"==e[0].$typeName){for(const n of e[0].file)$e(n,t);return t}if("$typeName"in e[0]){const r=e[0],i=e[1],a=new Set;function s(e){const n=[];for(const r of e.dependency){if(null!=t.getFile(r))continue;if(a.has(r))continue;const s=i(r);if(!s)throw new Error(`Unable to resolve ${r}, imported by ${e.name}`);"kind"in s?t.addFile(s,!1,!0):(a.add(s.name),n.push(s))}return n.concat(...n.map(s))}for(const o of[r,...s(r)].reverse())$e(o,t)}else for(const u of e)for(const c of u.files)t.addFile(c);return t}const ze={998:{fieldPresence:1,enumType:2,repeatedFieldEncoding:2,utf8Validation:3,messageEncoding:1,jsonFormat:2,enforceNamingStyle:2,defaultSymbolVisibility:1},999:{fieldPresence:2,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1},1e3:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1},1001:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:1,defaultSymbolVisibility:2}};function $e(e,t){var n,r;const i={kind:"file",proto:e,deprecated:null!==(r=null===(n=e.options)||void 0===n?void 0:n.deprecated)&&void 0!==r&&r,edition:Xe(e),name:e.name.replace(/\.proto$/,""),dependencies:Je(e,t),enums:[],messages:[],extensions:[],services:[],toString:()=>`file ${e.name}`},a=new Map,s={get:e=>a.get(e),add(e){var t;it(!0===(null===(t=e.proto.options)||void 0===t?void 0:t.mapEntry)),a.set(e.typeName,e)}};for(const n of e.enumType)Ye(n,i,void 0,t);for(const n of e.messageType)qe(n,i,void 0,t,s);for(const n of e.service)He(n,i,t);Ve(i,t);for(const e of a.values())Ke(e,t,s);for(const e of i.messages)Ke(e,t,s),Ve(e,t);t.addFile(i,!0)}function Ve(e,t){switch(e.kind){case"file":for(const n of e.proto.extension){const r=We(n,e,t);e.extensions.push(r),t.add(r)}break;case"message":for(const n of e.proto.extension){const r=We(n,e,t);e.nestedExtensions.push(r),t.add(r)}for(const n of e.nestedMessages)Ve(n,t)}}function Ke(e,t,n){const r=e.proto.oneofDecl.map(t=>function(e,t){return{kind:"oneof",proto:e,deprecated:!1,parent:t,fields:[],name:e.name,localName:Le(Be(e.name)),toString(){return`oneof ${t.typeName}.${this.name}`}}}(t,e)),i=new Set;for(const a of e.proto.field){const s=et(a,r),o=We(a,e,t,s,n);e.fields.push(o),e.field[o.localName]=o,void 0===s?e.members.push(o):(s.fields.push(o),i.has(s)||(i.add(s),e.members.push(s)))}for(const t of r.filter(e=>i.has(e)))e.oneofs.push(t);for(const r of e.nestedMessages)Ke(r,t,n)}function Ye(e,t,n,r){var i,a,s,o,u;const c=function(e,t){const n=((r=e).substring(0,1)+r.substring(1).replace(/[A-Z]/g,e=>"_"+e)).toLowerCase()+"_";var r;for(const e of t){if(!e.name.toLowerCase().startsWith(n))return;const t=e.name.substring(n.length);if(0==t.length)return;if(/^\d/.test(t))return}return n}(e.name,e.value),l={kind:"enum",proto:e,deprecated:null!==(a=null===(i=e.options)||void 0===i?void 0:i.deprecated)&&void 0!==a&&a,file:t,parent:n,open:!0,name:e.name,typeName:Ze(e,n,t),value:{},values:[],sharedPrefix:c,toString(){return`enum ${this.typeName}`}};l.open=function(e){var t;return 1==rt("enumType",{proto:e.proto,parent:null!==(t=e.parent)&&void 0!==t?t:e.file})}(l),r.add(l);for(const t of e.value){const e=t.name;l.values.push(l.value[t.number]={kind:"enum_value",proto:t,deprecated:null!==(o=null===(s=t.options)||void 0===s?void 0:s.deprecated)&&void 0!==o&&o,parent:l,name:e,localName:Le(null==c?e:e.substring(c.length)),number:t.number,toString:()=>`enum value ${l.typeName}.${e}`})}(null!==(u=null==n?void 0:n.nestedEnums)&&void 0!==u?u:t.enums).push(l)}function qe(e,t,n,r,i){var a,s,o,u;const c={kind:"message",proto:e,deprecated:null!==(s=null===(a=e.options)||void 0===a?void 0:a.deprecated)&&void 0!==s&&s,file:t,parent:n,name:e.name,typeName:Ze(e,n,t),fields:[],field:{},oneofs:[],members:[],nestedEnums:[],nestedMessages:[],nestedExtensions:[],toString(){return`message ${this.typeName}`}};!0===(null===(o=e.options)||void 0===o?void 0:o.mapEntry)?i.add(c):((null!==(u=null==n?void 0:n.nestedMessages)&&void 0!==u?u:t.messages).push(c),r.add(c));for(const n of e.enumType)Ye(n,t,c,r);for(const n of e.nestedType)qe(n,t,c,r,i)}function He(e,t,n){var r,i;const a={kind:"service",proto:e,deprecated:null!==(i=null===(r=e.options)||void 0===r?void 0:r.deprecated)&&void 0!==i&&i,file:t,name:e.name,typeName:Ze(e,void 0,t),methods:[],method:{},toString(){return`service ${this.typeName}`}};t.services.push(a),n.add(a);for(const t of e.method){const e=Ge(t,a,n);a.methods.push(e),a.method[e.localName]=e}}function Ge(e,t,n){var r,i,a,s;let o;o=e.clientStreaming&&e.serverStreaming?"bidi_streaming":e.clientStreaming?"client_streaming":e.serverStreaming?"server_streaming":"unary";const u=n.getMessage(Qe(e.inputType)),c=n.getMessage(Qe(e.outputType));it(u,`invalid MethodDescriptorProto: input_type ${e.inputType} not found`),it(c,`invalid MethodDescriptorProto: output_type ${e.inputType} not found`);const l=e.name;return{kind:"rpc",proto:e,deprecated:null!==(i=null===(r=e.options)||void 0===r?void 0:r.deprecated)&&void 0!==i&&i,parent:t,name:l,localName:Le(l.length?Le(l[0].toLowerCase()+l.substring(1)):l),methodKind:o,input:u,output:c,idempotency:null!==(s=null===(a=e.options)||void 0===a?void 0:a.idempotencyLevel)&&void 0!==s?s:0,toString:()=>`rpc ${t.typeName}.${l}`}}function We(e,t,n,r,i){var a,s,o;const u=void 0===i,c={kind:"field",proto:e,deprecated:null!==(s=null===(a=e.options)||void 0===a?void 0:a.deprecated)&&void 0!==s&&s,name:e.name,number:e.number,scalar:void 0,message:void 0,enum:void 0,presence:tt(e,r,u,t),listKind:void 0,mapKind:void 0,mapKey:void 0,delimitedEncoding:void 0,packed:void 0,longAsString:!1,getDefaultValue:void 0};if(u){const r="file"==t.kind?t:t.file,i="file"==t.kind?void 0:t,a=Ze(e,i,r);c.kind="extension",c.file=r,c.parent=i,c.oneof=void 0,c.typeName=a,c.jsonName=`[${a}]`,c.toString=()=>`extension ${a}`;const s=n.getMessage(Qe(e.extendee));it(s,`invalid FieldDescriptorProto: extendee ${e.extendee} not found`),c.extendee=s}else{const n=t;it("message"==n.kind),c.parent=n,c.oneof=r,c.localName=r?Be(e.name):Le(Be(e.name)),c.jsonName=e.jsonName,c.toString=()=>`field ${n.typeName}.${e.name}`}const l=e.label,f=e.type,d=null===(o=e.options)||void 0===o?void 0:o.jstype;if(3===l){const r=11==f?null==i?void 0:i.get(Qe(e.typeName)):void 0;if(r){c.fieldKind="map";const{key:e,value:t}=function(e){const t=e.fields.find(e=>1===e.number),n=e.fields.find(e=>2===e.number);return it(t&&"scalar"==t.fieldKind&&t.scalar!=k.BYTES&&t.scalar!=k.FLOAT&&t.scalar!=k.DOUBLE&&n&&"list"!=n.fieldKind&&"map"!=n.fieldKind),{key:t,value:n}}(r);return c.mapKey=e.scalar,c.mapKind=t.fieldKind,c.message=t.message,c.delimitedEncoding=!1,c.enum=t.enum,c.scalar=t.scalar,c}switch(c.fieldKind="list",f){case 11:case 10:c.listKind="message",c.message=n.getMessage(Qe(e.typeName)),it(c.message),c.delimitedEncoding=nt(e,t);break;case 14:c.listKind="enum",c.enum=n.getEnum(Qe(e.typeName)),it(c.enum);break;default:c.listKind="scalar",c.scalar=f,c.longAsString=1==d}return c.packed=function(e,t){if(3!=e.label)return!1;switch(e.type){case 9:case 12:case 10:case 11:return!1}const n=e.options;return n&&K(n,"packed")?n.packed:1==rt("repeatedFieldEncoding",{proto:e,parent:t})}(e,t),c}switch(f){case 11:case 10:c.fieldKind="message",c.message=n.getMessage(Qe(e.typeName)),it(c.message,`invalid FieldDescriptorProto: type_name ${e.typeName} not found`),c.delimitedEncoding=nt(e,t),c.getDefaultValue=()=>{};break;case 14:{const t=n.getEnum(Qe(e.typeName));it(void 0!==t,`invalid FieldDescriptorProto: type_name ${e.typeName} not found`),c.fieldKind="enum",c.enum=n.getEnum(Qe(e.typeName)),c.getDefaultValue=()=>K(e,"defaultValue")?function(e,t){const n=e.values.find(e=>e.name===t);if(!n)throw new Error(`cannot parse ${e} default value: ${t}`);return n.number}(t,e.defaultValue):void 0;break}default:c.fieldKind="scalar",c.scalar=f,c.longAsString=1==d,c.getDefaultValue=()=>K(e,"defaultValue")?function(e,t){switch(e){case k.STRING:return t;case k.BYTES:{const n=function(e){const t=[],n={tail:e,c:"",next(){return 0!=this.tail.length&&(this.c=this.tail[0],this.tail=this.tail.substring(1),!0)},take(e){if(this.tail.length>=e){const t=this.tail.substring(0,e);return this.tail=this.tail.substring(e),t}return!1}};for(;n.next();)if("\\"===n.c){if(n.next())switch(n.c){case"\\":t.push(n.c.charCodeAt(0));break;case"b":t.push(8);break;case"f":t.push(12);break;case"n":t.push(10);break;case"r":t.push(13);break;case"t":t.push(9);break;case"v":t.push(11);break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{const e=n.c,r=n.take(2);if(!1===r)return!1;const i=parseInt(e+r,8);if(Number.isNaN(i))return!1;t.push(i);break}case"x":{const e=n.c,r=n.take(2);if(!1===r)return!1;const i=parseInt(e+r,16);if(Number.isNaN(i))return!1;t.push(i);break}case"u":{const e=n.c,r=n.take(4);if(!1===r)return!1;const i=parseInt(e+r,16);if(Number.isNaN(i))return!1;const a=new Uint8Array(4);new DataView(a.buffer).setInt32(0,i,!0),t.push(a[0],a[1],a[2],a[3]);break}case"U":{const e=n.c,r=n.take(8);if(!1===r)return!1;const i=L.uEnc(e+r),a=new Uint8Array(8),s=new DataView(a.buffer);s.setInt32(0,i.lo,!0),s.setInt32(4,i.hi,!0),t.push(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7]);break}}}else t.push(n.c.charCodeAt(0));return new Uint8Array(t)}(t);if(!1===n)throw new Error(`cannot parse ${k[e]} default value: ${t}`);return n}case k.INT64:case k.SFIXED64:case k.SINT64:return L.parse(t);case k.UINT64:case k.FIXED64:return L.uParse(t);case k.DOUBLE:case k.FLOAT:switch(t){case"inf":return Number.POSITIVE_INFINITY;case"-inf":return Number.NEGATIVE_INFINITY;case"nan":return Number.NaN;default:return parseFloat(t)}case k.BOOL:return"true"===t;case k.INT32:case k.UINT32:case k.SINT32:case k.FIXED32:case k.SFIXED32:return parseInt(t,10)}}(f,e.defaultValue):void 0}return c}function Xe(e){switch(e.syntax){case"":case"proto2":return 998;case"proto3":return 999;case"editions":if(e.edition in ze)return e.edition;throw new Error(`${e.name}: unsupported edition`);default:throw new Error(`${e.name}: unsupported syntax "${e.syntax}"`)}}function Je(e,t){return e.dependency.map(n=>{const r=t.getFile(n);if(!r)throw new Error(`Cannot find ${n}, imported by ${e.name}`);return r})}function Ze(e,t,n){let r;return r=t?`${t.typeName}.${e.name}`:n.proto.package.length>0?`${n.proto.package}.${e.name}`:`${e.name}`,r}function Qe(e){return e.startsWith(".")?e.substring(1):e}function et(e,t){if(!K(e,"oneofIndex"))return;if(e.proto3Optional)return;const n=t[e.oneofIndex];return it(n,`invalid FieldDescriptorProto: oneof #${e.oneofIndex} for field #${e.number} not found`),n}function tt(e,t,n,r){if(2==e.label)return 3;if(3==e.label)return 2;if(t||e.proto3Optional)return 1;if(n)return 1;const i=rt("fieldPresence",{proto:e,parent:r});return 2!=i||11!=e.type&&10!=e.type?i:1}function nt(e,t){return 10==e.type||2==rt("messageEncoding",{proto:e,parent:t})}function rt(e,t){var n,r;const i=null===(n=t.proto.options)||void 0===n?void 0:n.features;if(i){const t=i[e];if(0!=t)return t}if("kind"in t){if("message"==t.kind)return rt(e,null!==(r=t.parent)&&void 0!==r?r:t.file);const n=ze[t.edition];if(!n)throw new Error(`feature default for edition ${t.edition} not found`);return n[e]}return rt(e,t.parent)}function it(e,t){if(!e)throw new Error(t)}function at(e){const t=function(e){const t=Object.create({syntax:"",edition:0});return Object.assign(t,Object.assign(Object.assign({$typeName:"google.protobuf.FileDescriptorProto",dependency:[],publicDependency:[],weakDependency:[],optionDependency:[],service:[],extension:[]},e),{messageType:e.messageType.map(st),enumType:e.enumType.map(ct)}))}(e);return t.messageType.forEach(je),Ue(t,()=>{}).getFile(t.name)}function st(e){var t,n,r,i,a,s,o,u;const c=Object.create({visibility:0});return Object.assign(c,{$typeName:"google.protobuf.DescriptorProto",name:e.name,field:null!==(n=null===(t=e.field)||void 0===t?void 0:t.map(ot))&&void 0!==n?n:[],extension:[],nestedType:null!==(i=null===(r=e.nestedType)||void 0===r?void 0:r.map(st))&&void 0!==i?i:[],enumType:null!==(s=null===(a=e.enumType)||void 0===a?void 0:a.map(ct))&&void 0!==s?s:[],extensionRange:null!==(u=null===(o=e.extensionRange)||void 0===o?void 0:o.map(e=>Object.assign({$typeName:"google.protobuf.DescriptorProto.ExtensionRange"},e)))&&void 0!==u?u:[],oneofDecl:[],reservedRange:[],reservedName:[]})}function ot(e){const t=Object.create({label:1,typeName:"",extendee:"",defaultValue:"",oneofIndex:0,jsonName:"",proto3Optional:!1});return Object.assign(t,Object.assign(Object.assign({$typeName:"google.protobuf.FieldDescriptorProto"},e),{options:e.options?ut(e.options):void 0}))}function ut(e){var t,n,r;const i=Object.create({ctype:0,packed:!1,jstype:0,lazy:!1,unverifiedLazy:!1,deprecated:!1,weak:!1,debugRedact:!1,retention:0});return Object.assign(i,Object.assign(Object.assign({$typeName:"google.protobuf.FieldOptions"},e),{targets:null!==(t=e.targets)&&void 0!==t?t:[],editionDefaults:null!==(r=null===(n=e.editionDefaults)||void 0===n?void 0:n.map(e=>Object.assign({$typeName:"google.protobuf.FieldOptions.EditionDefault"},e)))&&void 0!==r?r:[],uninterpretedOption:[]}))}function ct(e){const t=Object.create({visibility:0});return Object.assign(t,{$typeName:"google.protobuf.EnumDescriptorProto",name:e.name,reservedName:[],reservedRange:[],value:e.value.map(e=>Object.assign({$typeName:"google.protobuf.EnumValueDescriptorProto"},e))})}function lt(e,t,...n){return n.reduce((e,t)=>e.nestedMessages[t],e.messages[t])}const ft=lt(at({name:"google/protobuf/descriptor.proto",package:"google.protobuf",messageType:[{name:"FileDescriptorSet",field:[{name:"file",number:1,type:11,label:3,typeName:".google.protobuf.FileDescriptorProto"}],extensionRange:[{start:536e6,end:536000001}]},{name:"FileDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"package",number:2,type:9,label:1},{name:"dependency",number:3,type:9,label:3},{name:"public_dependency",number:10,type:5,label:3},{name:"weak_dependency",number:11,type:5,label:3},{name:"option_dependency",number:15,type:9,label:3},{name:"message_type",number:4,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:5,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"service",number:6,type:11,label:3,typeName:".google.protobuf.ServiceDescriptorProto"},{name:"extension",number:7,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FileOptions"},{name:"source_code_info",number:9,type:11,label:1,typeName:".google.protobuf.SourceCodeInfo"},{name:"syntax",number:12,type:9,label:1},{name:"edition",number:14,type:14,label:1,typeName:".google.protobuf.Edition"}]},{name:"DescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"field",number:2,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"extension",number:6,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"nested_type",number:3,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"extension_range",number:5,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ExtensionRange"},{name:"oneof_decl",number:8,type:11,label:3,typeName:".google.protobuf.OneofDescriptorProto"},{name:"options",number:7,type:11,label:1,typeName:".google.protobuf.MessageOptions"},{name:"reserved_range",number:9,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ReservedRange"},{name:"reserved_name",number:10,type:9,label:3},{name:"visibility",number:11,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"ExtensionRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ExtensionRangeOptions"}]},{name:"ReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"ExtensionRangeOptions",field:[{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"},{name:"declaration",number:2,type:11,label:3,typeName:".google.protobuf.ExtensionRangeOptions.Declaration",options:{retention:2}},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"verification",number:3,type:14,label:1,typeName:".google.protobuf.ExtensionRangeOptions.VerificationState",defaultValue:"UNVERIFIED",options:{retention:2}}],nestedType:[{name:"Declaration",field:[{name:"number",number:1,type:5,label:1},{name:"full_name",number:2,type:9,label:1},{name:"type",number:3,type:9,label:1},{name:"reserved",number:5,type:8,label:1},{name:"repeated",number:6,type:8,label:1}]}],enumType:[{name:"VerificationState",value:[{name:"DECLARATION",number:0},{name:"UNVERIFIED",number:1}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"FieldDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:3,type:5,label:1},{name:"label",number:4,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Label"},{name:"type",number:5,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Type"},{name:"type_name",number:6,type:9,label:1},{name:"extendee",number:2,type:9,label:1},{name:"default_value",number:7,type:9,label:1},{name:"oneof_index",number:9,type:5,label:1},{name:"json_name",number:10,type:9,label:1},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FieldOptions"},{name:"proto3_optional",number:17,type:8,label:1}],enumType:[{name:"Type",value:[{name:"TYPE_DOUBLE",number:1},{name:"TYPE_FLOAT",number:2},{name:"TYPE_INT64",number:3},{name:"TYPE_UINT64",number:4},{name:"TYPE_INT32",number:5},{name:"TYPE_FIXED64",number:6},{name:"TYPE_FIXED32",number:7},{name:"TYPE_BOOL",number:8},{name:"TYPE_STRING",number:9},{name:"TYPE_GROUP",number:10},{name:"TYPE_MESSAGE",number:11},{name:"TYPE_BYTES",number:12},{name:"TYPE_UINT32",number:13},{name:"TYPE_ENUM",number:14},{name:"TYPE_SFIXED32",number:15},{name:"TYPE_SFIXED64",number:16},{name:"TYPE_SINT32",number:17},{name:"TYPE_SINT64",number:18}]},{name:"Label",value:[{name:"LABEL_OPTIONAL",number:1},{name:"LABEL_REPEATED",number:3},{name:"LABEL_REQUIRED",number:2}]}]},{name:"OneofDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"options",number:2,type:11,label:1,typeName:".google.protobuf.OneofOptions"}]},{name:"EnumDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"value",number:2,type:11,label:3,typeName:".google.protobuf.EnumValueDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumOptions"},{name:"reserved_range",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto.EnumReservedRange"},{name:"reserved_name",number:5,type:9,label:3},{name:"visibility",number:6,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"EnumReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"EnumValueDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumValueOptions"}]},{name:"ServiceDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"method",number:2,type:11,label:3,typeName:".google.protobuf.MethodDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ServiceOptions"}]},{name:"MethodDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"input_type",number:2,type:9,label:1},{name:"output_type",number:3,type:9,label:1},{name:"options",number:4,type:11,label:1,typeName:".google.protobuf.MethodOptions"},{name:"client_streaming",number:5,type:8,label:1,defaultValue:"false"},{name:"server_streaming",number:6,type:8,label:1,defaultValue:"false"}]},{name:"FileOptions",field:[{name:"java_package",number:1,type:9,label:1},{name:"java_outer_classname",number:8,type:9,label:1},{name:"java_multiple_files",number:10,type:8,label:1,defaultValue:"false"},{name:"java_generate_equals_and_hash",number:20,type:8,label:1,options:{deprecated:!0}},{name:"java_string_check_utf8",number:27,type:8,label:1,defaultValue:"false"},{name:"optimize_for",number:9,type:14,label:1,typeName:".google.protobuf.FileOptions.OptimizeMode",defaultValue:"SPEED"},{name:"go_package",number:11,type:9,label:1},{name:"cc_generic_services",number:16,type:8,label:1,defaultValue:"false"},{name:"java_generic_services",number:17,type:8,label:1,defaultValue:"false"},{name:"py_generic_services",number:18,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:23,type:8,label:1,defaultValue:"false"},{name:"cc_enable_arenas",number:31,type:8,label:1,defaultValue:"true"},{name:"objc_class_prefix",number:36,type:9,label:1},{name:"csharp_namespace",number:37,type:9,label:1},{name:"swift_prefix",number:39,type:9,label:1},{name:"php_class_prefix",number:40,type:9,label:1},{name:"php_namespace",number:41,type:9,label:1},{name:"php_metadata_namespace",number:44,type:9,label:1},{name:"ruby_package",number:45,type:9,label:1},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"OptimizeMode",value:[{name:"SPEED",number:1},{name:"CODE_SIZE",number:2},{name:"LITE_RUNTIME",number:3}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"MessageOptions",field:[{name:"message_set_wire_format",number:1,type:8,label:1,defaultValue:"false"},{name:"no_standard_descriptor_accessor",number:2,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"map_entry",number:7,type:8,label:1},{name:"deprecated_legacy_json_field_conflicts",number:11,type:8,label:1,options:{deprecated:!0}},{name:"features",number:12,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"FieldOptions",field:[{name:"ctype",number:1,type:14,label:1,typeName:".google.protobuf.FieldOptions.CType",defaultValue:"STRING"},{name:"packed",number:2,type:8,label:1},{name:"jstype",number:6,type:14,label:1,typeName:".google.protobuf.FieldOptions.JSType",defaultValue:"JS_NORMAL"},{name:"lazy",number:5,type:8,label:1,defaultValue:"false"},{name:"unverified_lazy",number:15,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"weak",number:10,type:8,label:1,defaultValue:"false",options:{deprecated:!0}},{name:"debug_redact",number:16,type:8,label:1,defaultValue:"false"},{name:"retention",number:17,type:14,label:1,typeName:".google.protobuf.FieldOptions.OptionRetention"},{name:"targets",number:19,type:14,label:3,typeName:".google.protobuf.FieldOptions.OptionTargetType"},{name:"edition_defaults",number:20,type:11,label:3,typeName:".google.protobuf.FieldOptions.EditionDefault"},{name:"features",number:21,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"feature_support",number:22,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],nestedType:[{name:"EditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"value",number:2,type:9,label:1}]},{name:"FeatureSupport",field:[{name:"edition_introduced",number:1,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"edition_deprecated",number:2,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"deprecation_warning",number:3,type:9,label:1},{name:"edition_removed",number:4,type:14,label:1,typeName:".google.protobuf.Edition"}]}],enumType:[{name:"CType",value:[{name:"STRING",number:0},{name:"CORD",number:1},{name:"STRING_PIECE",number:2}]},{name:"JSType",value:[{name:"JS_NORMAL",number:0},{name:"JS_STRING",number:1},{name:"JS_NUMBER",number:2}]},{name:"OptionRetention",value:[{name:"RETENTION_UNKNOWN",number:0},{name:"RETENTION_RUNTIME",number:1},{name:"RETENTION_SOURCE",number:2}]},{name:"OptionTargetType",value:[{name:"TARGET_TYPE_UNKNOWN",number:0},{name:"TARGET_TYPE_FILE",number:1},{name:"TARGET_TYPE_EXTENSION_RANGE",number:2},{name:"TARGET_TYPE_MESSAGE",number:3},{name:"TARGET_TYPE_FIELD",number:4},{name:"TARGET_TYPE_ONEOF",number:5},{name:"TARGET_TYPE_ENUM",number:6},{name:"TARGET_TYPE_ENUM_ENTRY",number:7},{name:"TARGET_TYPE_SERVICE",number:8},{name:"TARGET_TYPE_METHOD",number:9}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"OneofOptions",field:[{name:"features",number:1,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"EnumOptions",field:[{name:"allow_alias",number:2,type:8,label:1},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"deprecated_legacy_json_field_conflicts",number:6,type:8,label:1,options:{deprecated:!0}},{name:"features",number:7,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"EnumValueOptions",field:[{name:"deprecated",number:1,type:8,label:1,defaultValue:"false"},{name:"features",number:2,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"debug_redact",number:3,type:8,label:1,defaultValue:"false"},{name:"feature_support",number:4,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"ServiceOptions",field:[{name:"features",number:34,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"MethodOptions",field:[{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"idempotency_level",number:34,type:14,label:1,typeName:".google.protobuf.MethodOptions.IdempotencyLevel",defaultValue:"IDEMPOTENCY_UNKNOWN"},{name:"features",number:35,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"IdempotencyLevel",value:[{name:"IDEMPOTENCY_UNKNOWN",number:0},{name:"NO_SIDE_EFFECTS",number:1},{name:"IDEMPOTENT",number:2}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"UninterpretedOption",field:[{name:"name",number:2,type:11,label:3,typeName:".google.protobuf.UninterpretedOption.NamePart"},{name:"identifier_value",number:3,type:9,label:1},{name:"positive_int_value",number:4,type:4,label:1},{name:"negative_int_value",number:5,type:3,label:1},{name:"double_value",number:6,type:1,label:1},{name:"string_value",number:7,type:12,label:1},{name:"aggregate_value",number:8,type:9,label:1}],nestedType:[{name:"NamePart",field:[{name:"name_part",number:1,type:9,label:2},{name:"is_extension",number:2,type:8,label:2}]}]},{name:"FeatureSet",field:[{name:"field_presence",number:1,type:14,label:1,typeName:".google.protobuf.FeatureSet.FieldPresence",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPLICIT",edition:900},{value:"IMPLICIT",edition:999},{value:"EXPLICIT",edition:1e3}]}},{name:"enum_type",number:2,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnumType",options:{retention:1,targets:[6,1],editionDefaults:[{value:"CLOSED",edition:900},{value:"OPEN",edition:999}]}},{name:"repeated_field_encoding",number:3,type:14,label:1,typeName:".google.protobuf.FeatureSet.RepeatedFieldEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPANDED",edition:900},{value:"PACKED",edition:999}]}},{name:"utf8_validation",number:4,type:14,label:1,typeName:".google.protobuf.FeatureSet.Utf8Validation",options:{retention:1,targets:[4,1],editionDefaults:[{value:"NONE",edition:900},{value:"VERIFY",edition:999}]}},{name:"message_encoding",number:5,type:14,label:1,typeName:".google.protobuf.FeatureSet.MessageEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"LENGTH_PREFIXED",edition:900}]}},{name:"json_format",number:6,type:14,label:1,typeName:".google.protobuf.FeatureSet.JsonFormat",options:{retention:1,targets:[3,6,1],editionDefaults:[{value:"LEGACY_BEST_EFFORT",edition:900},{value:"ALLOW",edition:999}]}},{name:"enforce_naming_style",number:7,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnforceNamingStyle",options:{retention:2,targets:[1,2,3,4,5,6,7,8,9],editionDefaults:[{value:"STYLE_LEGACY",edition:900},{value:"STYLE2024",edition:1001}]}},{name:"default_symbol_visibility",number:8,type:14,label:1,typeName:".google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility",options:{retention:2,targets:[1],editionDefaults:[{value:"EXPORT_ALL",edition:900},{value:"EXPORT_TOP_LEVEL",edition:1001}]}}],nestedType:[{name:"VisibilityFeature",enumType:[{name:"DefaultSymbolVisibility",value:[{name:"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",number:0},{name:"EXPORT_ALL",number:1},{name:"EXPORT_TOP_LEVEL",number:2},{name:"LOCAL_ALL",number:3},{name:"STRICT",number:4}]}]}],enumType:[{name:"FieldPresence",value:[{name:"FIELD_PRESENCE_UNKNOWN",number:0},{name:"EXPLICIT",number:1},{name:"IMPLICIT",number:2},{name:"LEGACY_REQUIRED",number:3}]},{name:"EnumType",value:[{name:"ENUM_TYPE_UNKNOWN",number:0},{name:"OPEN",number:1},{name:"CLOSED",number:2}]},{name:"RepeatedFieldEncoding",value:[{name:"REPEATED_FIELD_ENCODING_UNKNOWN",number:0},{name:"PACKED",number:1},{name:"EXPANDED",number:2}]},{name:"Utf8Validation",value:[{name:"UTF8_VALIDATION_UNKNOWN",number:0},{name:"VERIFY",number:2},{name:"NONE",number:3}]},{name:"MessageEncoding",value:[{name:"MESSAGE_ENCODING_UNKNOWN",number:0},{name:"LENGTH_PREFIXED",number:1},{name:"DELIMITED",number:2}]},{name:"JsonFormat",value:[{name:"JSON_FORMAT_UNKNOWN",number:0},{name:"ALLOW",number:1},{name:"LEGACY_BEST_EFFORT",number:2}]},{name:"EnforceNamingStyle",value:[{name:"ENFORCE_NAMING_STYLE_UNKNOWN",number:0},{name:"STYLE2024",number:1},{name:"STYLE_LEGACY",number:2}]}],extensionRange:[{start:1e3,end:9995},{start:9995,end:1e4},{start:1e4,end:10001}]},{name:"FeatureSetDefaults",field:[{name:"defaults",number:1,type:11,label:3,typeName:".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"},{name:"minimum_edition",number:4,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"maximum_edition",number:5,type:14,label:1,typeName:".google.protobuf.Edition"}],nestedType:[{name:"FeatureSetEditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"overridable_features",number:4,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"fixed_features",number:5,type:11,label:1,typeName:".google.protobuf.FeatureSet"}]}]},{name:"SourceCodeInfo",field:[{name:"location",number:1,type:11,label:3,typeName:".google.protobuf.SourceCodeInfo.Location"}],nestedType:[{name:"Location",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"span",number:2,type:5,label:3,options:{packed:!0}},{name:"leading_comments",number:3,type:9,label:1},{name:"trailing_comments",number:4,type:9,label:1},{name:"leading_detached_comments",number:6,type:9,label:3}]}],extensionRange:[{start:536e6,end:536000001}]},{name:"GeneratedCodeInfo",field:[{name:"annotation",number:1,type:11,label:3,typeName:".google.protobuf.GeneratedCodeInfo.Annotation"}],nestedType:[{name:"Annotation",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"source_file",number:2,type:9,label:1},{name:"begin",number:3,type:5,label:1},{name:"end",number:4,type:5,label:1},{name:"semantic",number:5,type:14,label:1,typeName:".google.protobuf.GeneratedCodeInfo.Annotation.Semantic"}],enumType:[{name:"Semantic",value:[{name:"NONE",number:0},{name:"SET",number:1},{name:"ALIAS",number:2}]}]}]}],enumType:[{name:"Edition",value:[{name:"EDITION_UNKNOWN",number:0},{name:"EDITION_LEGACY",number:900},{name:"EDITION_PROTO2",number:998},{name:"EDITION_PROTO3",number:999},{name:"EDITION_2023",number:1e3},{name:"EDITION_2024",number:1001},{name:"EDITION_UNSTABLE",number:9999},{name:"EDITION_1_TEST_ONLY",number:1},{name:"EDITION_2_TEST_ONLY",number:2},{name:"EDITION_99997_TEST_ONLY",number:99997},{name:"EDITION_99998_TEST_ONLY",number:99998},{name:"EDITION_99999_TEST_ONLY",number:99999},{name:"EDITION_MAX",number:2147483647}]},{name:"SymbolVisibility",value:[{name:"VISIBILITY_UNSET",number:0},{name:"VISIBILITY_LOCAL",number:1},{name:"VISIBILITY_EXPORT",number:2}]}]}),1);var dt,ht,pt,mt,yt,bt,gt,vt,wt,_t,St,Et,kt,xt,Tt,Mt,It,At,Nt,Pt;!function(e){e[e.DECLARATION=0]="DECLARATION",e[e.UNVERIFIED=1]="UNVERIFIED"}(dt||(dt={})),function(e){e[e.DOUBLE=1]="DOUBLE",e[e.FLOAT=2]="FLOAT",e[e.INT64=3]="INT64",e[e.UINT64=4]="UINT64",e[e.INT32=5]="INT32",e[e.FIXED64=6]="FIXED64",e[e.FIXED32=7]="FIXED32",e[e.BOOL=8]="BOOL",e[e.STRING=9]="STRING",e[e.GROUP=10]="GROUP",e[e.MESSAGE=11]="MESSAGE",e[e.BYTES=12]="BYTES",e[e.UINT32=13]="UINT32",e[e.ENUM=14]="ENUM",e[e.SFIXED32=15]="SFIXED32",e[e.SFIXED64=16]="SFIXED64",e[e.SINT32=17]="SINT32",e[e.SINT64=18]="SINT64"}(ht||(ht={})),function(e){e[e.OPTIONAL=1]="OPTIONAL",e[e.REPEATED=3]="REPEATED",e[e.REQUIRED=2]="REQUIRED"}(pt||(pt={})),function(e){e[e.SPEED=1]="SPEED",e[e.CODE_SIZE=2]="CODE_SIZE",e[e.LITE_RUNTIME=3]="LITE_RUNTIME"}(mt||(mt={})),function(e){e[e.STRING=0]="STRING",e[e.CORD=1]="CORD",e[e.STRING_PIECE=2]="STRING_PIECE"}(yt||(yt={})),function(e){e[e.JS_NORMAL=0]="JS_NORMAL",e[e.JS_STRING=1]="JS_STRING",e[e.JS_NUMBER=2]="JS_NUMBER"}(bt||(bt={})),function(e){e[e.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",e[e.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",e[e.RETENTION_SOURCE=2]="RETENTION_SOURCE"}(gt||(gt={})),function(e){e[e.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",e[e.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",e[e.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",e[e.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",e[e.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",e[e.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",e[e.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",e[e.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",e[e.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",e[e.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"}(vt||(vt={})),function(e){e[e.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",e[e.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",e[e.IDEMPOTENT=2]="IDEMPOTENT"}(wt||(wt={})),function(e){e[e.DEFAULT_SYMBOL_VISIBILITY_UNKNOWN=0]="DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",e[e.EXPORT_ALL=1]="EXPORT_ALL",e[e.EXPORT_TOP_LEVEL=2]="EXPORT_TOP_LEVEL",e[e.LOCAL_ALL=3]="LOCAL_ALL",e[e.STRICT=4]="STRICT"}(_t||(_t={})),function(e){e[e.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",e[e.EXPLICIT=1]="EXPLICIT",e[e.IMPLICIT=2]="IMPLICIT",e[e.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"}(St||(St={})),function(e){e[e.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",e[e.OPEN=1]="OPEN",e[e.CLOSED=2]="CLOSED"}(Et||(Et={})),function(e){e[e.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",e[e.PACKED=1]="PACKED",e[e.EXPANDED=2]="EXPANDED"}(kt||(kt={})),function(e){e[e.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",e[e.VERIFY=2]="VERIFY",e[e.NONE=3]="NONE"}(xt||(xt={})),function(e){e[e.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",e[e.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",e[e.DELIMITED=2]="DELIMITED"}(Tt||(Tt={})),function(e){e[e.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",e[e.ALLOW=1]="ALLOW",e[e.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"}(Mt||(Mt={})),function(e){e[e.ENFORCE_NAMING_STYLE_UNKNOWN=0]="ENFORCE_NAMING_STYLE_UNKNOWN",e[e.STYLE2024=1]="STYLE2024",e[e.STYLE_LEGACY=2]="STYLE_LEGACY"}(It||(It={})),function(e){e[e.NONE=0]="NONE",e[e.SET=1]="SET",e[e.ALIAS=2]="ALIAS"}(At||(At={})),function(e){e[e.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",e[e.EDITION_LEGACY=900]="EDITION_LEGACY",e[e.EDITION_PROTO2=998]="EDITION_PROTO2",e[e.EDITION_PROTO3=999]="EDITION_PROTO3",e[e.EDITION_2023=1e3]="EDITION_2023",e[e.EDITION_2024=1001]="EDITION_2024",e[e.EDITION_UNSTABLE=9999]="EDITION_UNSTABLE",e[e.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",e[e.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",e[e.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",e[e.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",e[e.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY",e[e.EDITION_MAX=2147483647]="EDITION_MAX"}(Nt||(Nt={})),function(e){e[e.VISIBILITY_UNSET=0]="VISIBILITY_UNSET",e[e.VISIBILITY_LOCAL=1]="VISIBILITY_LOCAL",e[e.VISIBILITY_EXPORT=2]="VISIBILITY_EXPORT"}(Pt||(Pt={}));const Ot=["FieldValueInvalidError","FieldListRangeError","ForeignFieldError"];class Rt extends Error{constructor(e,t,n="FieldValueInvalidError"){super(t),this.name=n,this.field=()=>e}}const Ct=Symbol.for("@bufbuild/protobuf/text-encoding");function Bt(){if(null==globalThis[Ct]){const e=new globalThis.TextEncoder,t=new globalThis.TextDecoder;globalThis[Ct]={encodeUtf8:t=>e.encode(t),decodeUtf8:e=>t.decode(e),checkUtf8(e){try{return encodeURIComponent(e),!0}catch(e){return!1}}}}return globalThis[Ct]}var Ft;!function(e){e[e.Varint=0]="Varint",e[e.Bit64=1]="Bit64",e[e.LengthDelimited=2]="LengthDelimited",e[e.StartGroup=3]="StartGroup",e[e.EndGroup=4]="EndGroup",e[e.Bit32=5]="Bit32"}(Ft||(Ft={}));const Lt=34028234663852886e22,jt=-34028234663852886e22,Dt=4294967295,Ut=2147483647,zt=-2147483648;class $t{constructor(e=Bt().encodeUtf8){this.encodeUtf8=e,this.stack=[],this.chunks=[],this.buf=[]}finish(){this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]);let e=0;for(let t=0;t>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(Yt(e);e>127;)this.buf.push(127&e|128),e>>>=7;return this.buf.push(e),this}int32(e){return Kt(e),C(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let t=this.encodeUtf8(e);return this.uint32(t.byteLength),this.raw(t)}float(e){!function(e){if("string"==typeof e){const t=e;if(e=Number(e),Number.isNaN(e)&&"NaN"!==t)throw new Error("invalid float32: "+t)}else if("number"!=typeof e)throw new Error("invalid float32: "+typeof e);if(Number.isFinite(e)&&(e>Lt||e>31)>>>0,this.buf),this}sfixed64(e){let t=new Uint8Array(8),n=new DataView(t.buffer),r=L.enc(e);return n.setInt32(0,r.lo,!0),n.setInt32(4,r.hi,!0),this.raw(t)}fixed64(e){let t=new Uint8Array(8),n=new DataView(t.buffer),r=L.uEnc(e);return n.setInt32(0,r.lo,!0),n.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=L.enc(e);return M(t.lo,t.hi,this.buf),this}sint64(e){const t=L.enc(e),n=t.hi>>31;return M(t.lo<<1^n,(t.hi<<1|t.lo>>>31)^n,this.buf),this}uint64(e){const t=L.uEnc(e);return M(t.lo,t.hi,this.buf),this}}class Vt{constructor(e,t=Bt().decodeUtf8){this.decodeUtf8=t,this.varint64=T,this.uint32=B,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength)}tag(){let e=this.uint32(),t=e>>>3,n=7&e;if(t<=0||n<0||n>5)throw new Error("illegal tag: field no "+t+" wire type "+n);return[t,n]}skip(e,t){let n=this.pos;switch(e){case Ft.Varint:for(;128&this.buf[this.pos++];);break;case Ft.Bit64:this.pos+=4;case Ft.Bit32:this.pos+=4;break;case Ft.LengthDelimited:let n=this.uint32();this.pos+=n;break;case Ft.StartGroup:for(;;){const[e,n]=this.tag();if(n===Ft.EndGroup){if(void 0!==t&&e!==t)throw new Error("invalid end group tag");break}this.skip(n,e)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(n,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return 0|this.uint32()}sint32(){let e=this.uint32();return e>>>1^-(1&e)}int64(){return L.dec(...this.varint64())}uint64(){return L.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),n=-(1&e);return e=(e>>>1|(1&t)<<31)^n,t=t>>>1^n,L.dec(e,t)}bool(){let[e,t]=this.varint64();return 0!==e||0!==t}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return L.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return L.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(){return this.decodeUtf8(this.bytes())}}function Kt(e){if("string"==typeof e)e=Number(e);else if("number"!=typeof e)throw new Error("invalid int32: "+typeof e);if(!Number.isInteger(e)||e>Ut||eDt||e<0)throw new Error("invalid uint32: "+e)}function qt(e,t){const n="list"==e.fieldKind?G(t,e):"map"==e.fieldKind?W(t,e):Gt(e,t);if(!0===n)return;let r;switch(e.fieldKind){case"list":r=`expected ${Qt(e)}, got ${Jt(t)}`;break;case"map":r=`expected ${en(e)}, got ${Jt(t)}`;break;default:r=Xt(e,t,n)}return new Rt(e,r)}function Ht(e,t,n){const r=Gt(e,n);if(!0!==r)return new Rt(e,`list item #${t+1}: ${Xt(e,n,r)}`)}function Gt(e,t){return void 0!==e.scalar?Wt(t,e.scalar):void 0!==e.enum?e.enum.open?Number.isInteger(t):e.enum.values.some(e=>e.number===t):X(t,e.message)}function Wt(e,t){switch(t){case k.DOUBLE:return"number"==typeof e;case k.FLOAT:return"number"==typeof e&&(!(!Number.isNaN(e)&&Number.isFinite(e))||!(e>Lt||eUt||eDt||e<0)||`${e.toFixed()} out of range`);case k.BOOL:return"boolean"==typeof e;case k.STRING:return"string"==typeof e&&(Bt().checkUtf8(e)||"invalid UTF8");case k.BYTES:return e instanceof Uint8Array;case k.INT64:case k.SFIXED64:case k.SINT64:if("bigint"==typeof e||"number"==typeof e||"string"==typeof e&&e.length>0)try{return L.parse(e),!0}catch(t){return`${e} out of range`}return!1;case k.FIXED64:case k.UINT64:if("bigint"==typeof e||"number"==typeof e||"string"==typeof e&&e.length>0)try{return L.uParse(e),!0}catch(t){return`${e} out of range`}return!1}}function Xt(e,t,n){return n="string"==typeof n?`: ${n}`:`, got ${Jt(t)}`,void 0!==e.scalar?`expected ${function(e){switch(e){case k.STRING:return"string";case k.BOOL:return"boolean";case k.INT64:case k.SINT64:case k.SFIXED64:return"bigint (int64)";case k.UINT64:case k.FIXED64:return"bigint (uint64)";case k.BYTES:return"Uint8Array";case k.DOUBLE:return"number (float64)";case k.FLOAT:return"number (float32)";case k.FIXED32:case k.UINT32:return"number (uint32)";case k.INT32:case k.SFIXED32:case k.SINT32:return"number (int32)"}}(e.scalar)}`+n:void 0!==e.enum?`expected ${e.enum.toString()}`+n:`expected ${Zt(e.message)}`+n}function Jt(e){switch(typeof e){case"object":return null===e?"null":e instanceof Uint8Array?`Uint8Array(${e.length})`:Array.isArray(e)?`Array(${e.length})`:G(e)?Qt(e.field()):W(e)?en(e.field()):X(e)?Zt(e.desc):E(e)?`message ${e.$typeName}`:"object";case"string":return e.length>30?"string":`"${e.split('"').join('\\"')}"`;case"boolean":case"number":return String(e);case"bigint":return String(e)+"n";default:return typeof e}}function Zt(e){return`ReflectMessage (${e.typeName})`}function Qt(e){switch(e.listKind){case"message":return`ReflectList (${e.message.toString()})`;case"enum":return`ReflectList (${e.enum.toString()})`;case"scalar":return`ReflectList (${k[e.scalar]})`}}function en(e){switch(e.mapKind){case"message":return`ReflectMap (${k[e.mapKey]}, ${e.message.toString()})`;case"enum":return`ReflectMap (${k[e.mapKey]}, ${e.enum.toString()})`;case"scalar":return`ReflectMap (${k[e.mapKey]}, ${k[e.scalar]})`}}function tn(e,t,n=!0){return new rn(e,t,n)}const nn=new WeakMap;class rn{get sortedFields(){const e=nn.get(this.desc);if(e)return e;const t=this.desc.fields.concat().sort((e,t)=>e.number-t.number);return nn.set(this.desc,t),t}constructor(e,t,n=!0){this.lists=new Map,this.maps=new Map,this.check=n,this.desc=e,this.message=this[$]=null!=t?t:Q(e),this.fields=e.fields,this.oneofs=e.oneofs,this.members=e.members}findNumber(e){return this._fieldsByNumber||(this._fieldsByNumber=new Map(this.desc.fields.map(e=>[e.number,e]))),this._fieldsByNumber.get(e)}oneofCase(e){return an(this.message,e),V(this.message,e)}isSet(e){return an(this.message,e),function(e,t){const n=t.localName;if(t.oneof)return e[t.oneof.localName].case===n;if(2!=t.presence)return void 0!==e[n]&&Object.prototype.hasOwnProperty.call(e,n);switch(t.fieldKind){case"list":return e[n].length>0;case"map":return Object.keys(e[n]).length>0;case"scalar":return!function(e,t){switch(e){case k.BOOL:return!1===t;case k.STRING:return""===t;case k.BYTES:return t instanceof Uint8Array&&!t.byteLength;default:return 0==t}}(t.scalar,e[n]);case"enum":return e[n]!==t.enum.values[0].number}throw new Error("message field with implicit presence")}(this.message,e)}clear(e){an(this.message,e),function(e,t){const n=t.localName;if(t.oneof){const r=t.oneof.localName;e[r].case===n&&(e[r]={case:void 0})}else if(2!=t.presence)delete e[n];else switch(t.fieldKind){case"map":e[n]={};break;case"list":e[n]=[];break;case"enum":e[n]=t.enum.values[0].number;break;case"scalar":e[n]=z(t.scalar,t.longAsString)}}(this.message,e)}get(e){an(this.message,e);const t=Y(this.message,e);switch(e.fieldKind){case"list":let n=this.lists.get(e);return n&&n[$]===t||this.lists.set(e,n=new sn(e,t,this.check)),n;case"map":let r=this.maps.get(e);return r&&r[$]===t||this.maps.set(e,r=new on(e,t,this.check)),r;case"message":return cn(e,t,this.check);case"scalar":return void 0===t?z(e.scalar,!1):mn(e,t);case"enum":return null!=t?t:e.enum.values[0].number}}set(e,t){if(an(this.message,e),this.check){const n=qt(e,t);if(n)throw n}let n;n="message"==e.fieldKind?un(e,t):W(t)||G(t)?t[$]:yn(e,t),q(this.message,e,n)}getUnknown(){return this.message.$unknown}setUnknown(e){this.message.$unknown=e}}function an(e,t){if(t.parent.typeName!==e.$typeName)throw new Rt(t,`cannot use ${t.toString()} with message ${e.$typeName}`,"ForeignFieldError")}class sn{field(){return this._field}get size(){return this._arr.length}constructor(e,t,n){this._field=e,this._arr=this[$]=t,this.check=n}get(e){const t=this._arr[e];return void 0===t?void 0:fn(this._field,t,this.check)}set(e,t){if(e<0||e>=this._arr.length)throw new Rt(this._field,`list item #${e+1}: out of range`);if(this.check){const n=Ht(this._field,e,t);if(n)throw n}this._arr[e]=ln(this._field,t)}add(e){if(this.check){const t=Ht(this._field,this._arr.length,e);if(t)throw t}this._arr.push(ln(this._field,e))}clear(){this._arr.splice(0,this._arr.length)}[Symbol.iterator](){return this.values()}keys(){return this._arr.keys()}*values(){for(const e of this._arr)yield fn(this._field,e,this.check)}*entries(){for(let e=0;e0&&e.setUnknown(c)}function kn(e,t,n,r,i){var a;switch(n.fieldKind){case"scalar":e.set(n,Tn(t,n.scalar));break;case"enum":const s=Tn(t,k.INT32);if(n.enum.open)e.set(n,s);else if(n.enum.values.some(e=>e.number===s))e.set(n,s);else if(i.readUnknownFields){const t=[];C(s,t);const i=null!==(a=e.getUnknown())&&void 0!==a?a:[];i.push({no:n.number,wireType:r,data:new Uint8Array(t)}),e.setUnknown(i)}break;case"message":e.set(n,xn(t,i,n,e.get(n)));break;case"list":!function(e,t,n,r){var i;const a=n.field();if("message"===a.listKind)return void n.add(xn(e,r,a));const s=null!==(i=a.scalar)&&void 0!==i?i:k.INT32;if(!(t==Ft.LengthDelimited&&s!=k.STRING&&s!=k.BYTES))return void n.add(Tn(e,s));const o=e.uint32()+e.pos;for(;e.pose.proto.name))&&void 0!==n?n:[],Ue(r,e=>null==t?void 0:t.find(t=>t.proto.name===e)).getFile(r.name)}function In(e,t,...n){if(n.length>0)throw new Error;return e.services[t]}const An=Mn("ChxpbmNvL2ttcy9saXRlL3YxL3R5cGVzLnByb3RvEhBpbmNvLmttcy5saXRlLnYxIhkKC0VDSUVTS2V5c2V0EgoKAnBrGAEgASgMIrUBCghBQ0xQcm9vZhJMChlpbmNvX2xpdGVfYmFzaWNfYWNsX3Byb29mGAogASgLMicuaW5jby5rbXMubGl0ZS52MS5JbmNvTGl0ZUJhc2ljQUNMUHJvb2ZIABJSChxpbmNvX2xpdGVfYWR2YW5jZWRfYWNsX3Byb29mGAsgASgLMiouaW5jby5rbXMubGl0ZS52MS5JbmNvTGl0ZUFkdmFuY2VkQUNMUHJvb2ZIAEIHCgVwcm9vZiJQCg9IYW5kbGVXaXRoUHJvb2YSDgoGaGFuZGxlGAEgASgJEi0KCWFjbF9wcm9vZhgCIAEoCzIaLmluY28ua21zLmxpdGUudjEuQUNMUHJvb2YiFwoVSW5jb0xpdGVCYXNpY0FDTFByb29mInUKEEFsbG93YW5jZVZvdWNoZXISGgoSdmVyaWZ5aW5nX2NvbnRyYWN0GAEgASgJEhUKDWNhbGxfZnVuY3Rpb24YAiABKAwSFwoPc2hhcmVyX2FyZ19kYXRhGAMgASgMEhUKDXNlc3Npb25fbm9uY2UYBCABKAwijAEKDkFsbG93YW5jZVByb29mEg4KBnNoYXJlchgBIAEoCRIzCgd2b3VjaGVyGAIgASgLMiIuaW5jby5rbXMubGl0ZS52MS5BbGxvd2FuY2VWb3VjaGVyEhkKEXZvdWNoZXJfc2lnbmF0dXJlGAMgASgMEhoKEnJlcXVlc3Rlcl9hcmdfZGF0YRgEIAEoDCJVChhJbmNvTGl0ZUFkdmFuY2VkQUNMUHJvb2YSOQoPYWxsb3dhbmNlX3Byb29mGAEgASgLMiAuaW5jby5rbXMubGl0ZS52MS5BbGxvd2FuY2VQcm9vZkI7WjlnaXRodWIuY29tL2luY28tZmhldm0vaW5jby1tb25vcmVwby9jb3ZhbGlkYXRvci9rbXMvdHlwZXNiBnByb3RvMw"),Nn=lt(An,2),Pn=lt(An,4),On=lt(An,5),Rn=lt(An,6),Cn=Mn("CiJpbmNvL2ttcy9saXRlL3YxL2ttc19zZXJ2aWNlLnByb3RvEhBpbmNvLmttcy5saXRlLnYxIgwKCktleVJlcXVlc3QiVQoLS2V5UmVzcG9uc2USLQoGa2V5c2V0GAEgASgLMh0uaW5jby5rbXMubGl0ZS52MS5FQ0lFU0tleXNldBIXCg9zaWduaW5nX2FkZHJlc3MYAiABKAkiowEKFkF0dGVzdGVkRGVjcnlwdFJlcXVlc3QSFAoMdXNlcl9hZGRyZXNzGAEgASgJEhkKEXJlZW5jcnlwdF9wdWJfa2V5GAIgASgMEhgKEGVpcDcxMl9zaWduYXR1cmUYAyABKAwSPgoTaGFuZGxlc193aXRoX3Byb29mcxgEIAMoCzIhLmluY28ua21zLmxpdGUudjEuSGFuZGxlV2l0aFByb29mIigKFUF0dGVzdGVkUmV2ZWFsUmVxdWVzdBIPCgdoYW5kbGVzGAMgAygJIvQBChZBdHRlc3RlZENvbXB1dGVSZXF1ZXN0EhQKDHVzZXJfYWRkcmVzcxgBIAEoCRIZChFyZWVuY3J5cHRfcHViX2tleRgCIAEoDBIYChBlaXA3MTJfc2lnbmF0dXJlGAMgASgMEjUKAm9wGAQgASgOMikuaW5jby5rbXMubGl0ZS52MS5TdXBwb3J0ZWRTY2FsYXJCaW5hcnlPcBISCgpsaHNfaGFuZGxlGAUgASgJEhUKDXJoc19wbGFpbnRleHQYBiABKAkSLQoJYWNsX3Byb29mGAcgASgLMhouaW5jby5rbXMubGl0ZS52MS5BQ0xQcm9vZiJjChdBdHRlc3RlZERlY3J5cHRSZXNwb25zZRJIChdkZWNyeXB0aW9uX2F0dGVzdGF0aW9ucxgBIAMoCzInLmluY28ua21zLmxpdGUudjEuRGVjcnlwdGlvbkF0dGVzdGF0aW9uImIKFkF0dGVzdGVkUmV2ZWFsUmVzcG9uc2USSAoXZGVjcnlwdGlvbl9hdHRlc3RhdGlvbnMYASADKAsyJy5pbmNvLmttcy5saXRlLnYxLkRlY3J5cHRpb25BdHRlc3RhdGlvbiJiChdBdHRlc3RlZENvbXB1dGVSZXNwb25zZRJHChZkZWNyeXB0aW9uX2F0dGVzdGF0aW9uGAEgASgLMicuaW5jby5rbXMubGl0ZS52MS5EZWNyeXB0aW9uQXR0ZXN0YXRpb24iGgoJUGxhaW50ZXh0Eg0KBXZhbHVlGAEgASgMIkQKDFJlZW5jcnlwdGlvbhIXCg91c2VyX2NpcGhlcnRleHQYASABKAwSGwoTZW5jcnlwdGVkX3NpZ25hdHVyZRgDIAEoDCKtAQoVRGVjcnlwdGlvbkF0dGVzdGF0aW9uEg4KBmhhbmRsZRgBIAEoCRIwCglwbGFpbnRleHQYAiABKAsyGy5pbmNvLmttcy5saXRlLnYxLlBsYWludGV4dEgAEjYKDHJlZW5jcnlwdGlvbhgDIAEoCzIeLmluY28ua21zLmxpdGUudjEuUmVlbmNyeXB0aW9uSAASEQoJc2lnbmF0dXJlGAQgASgMQgcKBXZhbHVlKqQCChdTdXBwb3J0ZWRTY2FsYXJCaW5hcnlPcBILCgdGSEVfQUREEAASCwoHRkhFX1NVQhABEgsKB0ZIRV9NVUwQAhILCgdGSEVfRElWEAMSCwoHRkhFX1JFTRAEEg8KC0ZIRV9CSVRfQU5EEAUSDgoKRkhFX0JJVF9PUhAGEg8KC0ZIRV9CSVRfWE9SEAcSCwoHRkhFX1NITBAIEgsKB0ZIRV9TSFIQCRIMCghGSEVfUk9UTBAKEgwKCEZIRV9ST1RSEAsSCgoGRkhFX0VREAwSCgoGRkhFX05FEA0SCgoGRkhFX0dFEA4SCgoGRkhFX0dUEA8SCgoGRkhFX0xFEBASCgoGRkhFX0xUEBESCwoHRkhFX01JThASEgsKB0ZIRV9NQVgQEzKFAwoKS21zU2VydmljZRJCCgNLZXkSHC5pbmNvLmttcy5saXRlLnYxLktleVJlcXVlc3QaHS5pbmNvLmttcy5saXRlLnYxLktleVJlc3BvbnNlEmYKD0F0dGVzdGVkRGVjcnlwdBIoLmluY28ua21zLmxpdGUudjEuQXR0ZXN0ZWREZWNyeXB0UmVxdWVzdBopLmluY28ua21zLmxpdGUudjEuQXR0ZXN0ZWREZWNyeXB0UmVzcG9uc2USZgoPQXR0ZXN0ZWRDb21wdXRlEiguaW5jby5rbXMubGl0ZS52MS5BdHRlc3RlZENvbXB1dGVSZXF1ZXN0GikuaW5jby5rbXMubGl0ZS52MS5BdHRlc3RlZENvbXB1dGVSZXNwb25zZRJjCg5BdHRlc3RlZFJldmVhbBInLmluY28ua21zLmxpdGUudjEuQXR0ZXN0ZWRSZXZlYWxSZXF1ZXN0GiguaW5jby5rbXMubGl0ZS52MS5BdHRlc3RlZFJldmVhbFJlc3BvbnNlQjtaOWdpdGh1Yi5jb20vaW5jby1maGV2bS9pbmNvLW1vbm9yZXBvL2NvdmFsaWRhdG9yL2ttcy90eXBlc2IGcHJvdG8z",[An]),Bn=lt(Cn,2),Fn=lt(Cn,3),Ln=lt(Cn,4);var jn;!function(e){e[e.FHE_ADD=0]="FHE_ADD",e[e.FHE_SUB=1]="FHE_SUB",e[e.FHE_MUL=2]="FHE_MUL",e[e.FHE_DIV=3]="FHE_DIV",e[e.FHE_REM=4]="FHE_REM",e[e.FHE_BIT_AND=5]="FHE_BIT_AND",e[e.FHE_BIT_OR=6]="FHE_BIT_OR",e[e.FHE_BIT_XOR=7]="FHE_BIT_XOR",e[e.FHE_SHL=8]="FHE_SHL",e[e.FHE_SHR=9]="FHE_SHR",e[e.FHE_ROTL=10]="FHE_ROTL",e[e.FHE_ROTR=11]="FHE_ROTR",e[e.FHE_EQ=12]="FHE_EQ",e[e.FHE_NE=13]="FHE_NE",e[e.FHE_GE=14]="FHE_GE",e[e.FHE_GT=15]="FHE_GT",e[e.FHE_LE=16]="FHE_LE",e[e.FHE_LT=17]="FHE_LT",e[e.FHE_MIN=18]="FHE_MIN",e[e.FHE_MAX=19]="FHE_MAX"}(jn||(jn={}));const Dn=In(Cn,0);var Un=n(5324),zn=n(24554);const $n={writeUnknownFields:!0};function Vn(e,t,n){return Kn(new $t,function(e){return e?Object.assign(Object.assign({},$n),e):$n}(n),tn(e,t)).finish()}function Kn(e,t,n){var r;for(const r of n.sortedFields)if(n.isSet(r))Yn(e,t,n,r);else if(3==r.presence)throw new Error(`cannot encode ${r} to binary: required field not set`);if(t.writeUnknownFields)for(const{no:t,wireType:i,data:a}of null!==(r=n.getUnknown())&&void 0!==r?r:[])e.tag(t,i).raw(a);return e}function Yn(e,t,n,r){var i;switch(r.fieldKind){case"scalar":case"enum":qn(e,n.desc.typeName,r.name,null!==(i=r.scalar)&&void 0!==i?i:k.INT32,r.number,n.get(r));break;case"list":!function(e,t,n,r){var i;if("message"==n.listKind){for(const i of r)Hn(e,t,n,i);return}const a=null!==(i=n.scalar)&&void 0!==i?i:k.INT32;if(n.packed){if(!r.size)return;e.tag(n.number,Ft.LengthDelimited).fork();for(const t of r)Wn(e,n.parent.typeName,n.name,a,t);e.join()}else for(const t of r)qn(e,n.parent.typeName,n.name,a,n.number,t)}(e,t,r,n.get(r));break;case"message":Hn(e,t,r,n.get(r));break;case"map":for(const[i,a]of n.get(r))Gn(e,t,r,i,a)}}function qn(e,t,n,r,i,a){Wn(e.tag(i,function(e){switch(e){case k.BYTES:case k.STRING:return Ft.LengthDelimited;case k.DOUBLE:case k.FIXED64:case k.SFIXED64:return Ft.Bit64;case k.FIXED32:case k.SFIXED32:case k.FLOAT:return Ft.Bit32;default:return Ft.Varint}}(r)),t,n,r,a)}function Hn(e,t,n,r){n.delimitedEncoding?Kn(e.tag(n.number,Ft.StartGroup),t,r).tag(n.number,Ft.EndGroup):Kn(e.tag(n.number,Ft.LengthDelimited).fork(),t,r).join()}function Gn(e,t,n,r,i){var a;switch(e.tag(n.number,Ft.LengthDelimited).fork(),qn(e,n.parent.typeName,n.name,n.mapKey,1,r),n.mapKind){case"scalar":case"enum":qn(e,n.parent.typeName,n.name,null!==(a=n.scalar)&&void 0!==a?a:k.INT32,2,i);break;case"message":Kn(e.tag(2,Ft.LengthDelimited).fork(),t,i).join()}e.join()}function Wn(e,t,n,r,i){try{switch(r){case k.STRING:e.string(i);break;case k.BOOL:e.bool(i);break;case k.DOUBLE:e.double(i);break;case k.FLOAT:e.float(i);break;case k.INT32:e.int32(i);break;case k.INT64:e.int64(i);break;case k.UINT64:e.uint64(i);break;case k.FIXED64:e.fixed64(i);break;case k.BYTES:e.bytes(i);break;case k.FIXED32:e.fixed32(i);break;case k.SFIXED32:e.sfixed32(i);break;case k.SFIXED64:e.sfixed64(i);break;case k.SINT64:e.sint64(i);break;case k.UINT32:e.uint32(i);break;case k.SINT32:e.sint32(i)}}catch(e){if(e instanceof Error)throw new Error(`cannot encode field ${t}.${n} to binary: ${e.message}`);throw e}}const Xn=Mn("CidpbmNvL2NvdmFsaWRhdG9yL2NvbXB1dGUvdjEvdHlwZXMucHJvdG8SG2luY28uY292YWxpZGF0b3IuY29tcHV0ZS52MSJqCgxJbnB1dENvbnRleHQSFQoNaG9zdF9jaGFpbl9pZBgBIAEoCRITCgthY2xfYWRkcmVzcxgCIAEoCRIUCgx1c2VyX2FkZHJlc3MYAyABKAkSGAoQY29udHJhY3RfYWRkcmVzcxgEIAEoCSJeCg9JbnB1dENyeXB0b2dyYW0SOgoHY29udGV4dBgBIAEoCzIpLmluY28uY292YWxpZGF0b3IuY29tcHV0ZS52MS5JbnB1dENvbnRleHQSDwoHcGF5bG9hZBgCIAEoDCJbCgxJbnB1dFBheWxvYWQSFAoMY29udGV4dF9oYXNoGAEgASgMEjUKBnZhbHVlcxgCIAMoCzIlLmluY28uY292YWxpZGF0b3IuY29tcHV0ZS52MS5BbnlWYWx1ZSJ9CghBbnlWYWx1ZRI1CgZzY2FsYXIYAiABKAsyIy5pbmNvLmNvdmFsaWRhdG9yLmNvbXB1dGUudjEuU2NhbGFySAASMQoEbGlzdBgDIAEoCzIhLmluY28uY292YWxpZGF0b3IuY29tcHV0ZS52MS5MaXN0SABCBwoFdmFsdWUiJQoGU2NhbGFyEgwKBHR5cGUYASABKAUSDQoFdmFsdWUYAiABKAwiKwoETGlzdBITCgtlbGVtZW50VHlwZRgBIAEoBRIOCgZ2YWx1ZXMYAiADKAwiMwoQU3RvcmVkQ3J5cHRvZ3JhbRIOCgZoYW5kbGUYASABKAwSDwoHcGF5bG9hZBgCIAEoDEI3WjVnaXRodWIuY29tL2luY28tZmhldm0vaW5jby1tb25vcmVwby9jb3ZhbGlkYXRvci90eXBlc2IGcHJvdG8z"),Jn=lt(Xn,2),Zn=lt(Xn,4);var Qn=n(73730).Buffer;const er=new zn.ec("secp256k1");function tr(){return{scheme:1,kp:e=er.genKeyPair(),encodePublicKey:()=>new Uint8Array(e.getPublic().encode("array",!0))};var e}async function nr(e,t){const n=e.kp.getPrivate().toArrayLike(Qn,"be",32),r=await(0,Un.decrypt)(n,Qn.from(t));return new Uint8Array(r)}function rr({chainId:e,primaryType:t,primaryTypeFields:n,message:r,verifyingContract:i,domainName:a,domainVersion:s}){const o={EIP712Domain:[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"}],[t]:n};i&&o.EIP712Domain.push({name:"verifyingContract",type:"address"});const u=Object.keys(r),c=n.map(e=>e.name);if(u.length!==c.length)throw new Error("Message keys do not match primaryTypeFields keys");for(const e of u)if(!c.includes(e))throw new Error(`Message key ${e} does not match primaryTypeFields key`);return{types:o,primaryType:t,domain:{name:a,version:s,chainId:e,verifyingContract:i},message:r}}de._kM({domain:de._kM({chainId:de.QwO,name:de.QfV,version:de.QfV,verifyingContract:de.lqM(he.hJ)}),primaryType:de.QfV,types:de.mSG({key:de.QfV,value:de.O31(de._kM({name:de.QfV,type:de.QfV}))})});class ir extends Error{cause;constructor(e,t){super(e),this.cause=t,this.name="AttestedDecryptError"}}const ar="IncoAttestedDecrypt";async function sr({handles:e,backoffConfig:t,walletClient:n,chainId:i,reencryptPubKey:a,reencryptKeypair:s,kmsQuorumClient:o,executorAddress:u}){try{e.forEach(cr);const l=await async function(e){const t=await or(e.executorAddress,"2",e.walletClient);return rr({chainId:BigInt(e.chainId),primaryType:"AttestedDecryptRequest",primaryTypeFields:[{name:"handles",type:"bytes32[]"},{name:"publicKey",type:"bytes"}],message:{handles:e.handles,publicKey:(0,y.My)(e.reencryptPubKey?e.reencryptPubKey:new Uint8Array)},domainName:ar,domainVersion:t})}({executorAddress:u,...n?{walletClient:n}:{},chainId:i,handles:e,...void 0!==a?{reencryptPubKey:a}:{}});let f;if(n){const i=await async function(e,t){return await e.signTypedData(t)}(n,l),u=function(e){return e.map(e=>Q(Nn,{handle:e,aclProof:{proof:{case:"incoLiteBasicAclProof",value:{}}}}))}(e),d=(c={userAddress:n.account.address,handlesWithProofs:u,eip712Signature:(0,r.aT)(i),...void 0!==a?{reencryptPubKey:a}:{}},Q(Bn,{userAddress:c.userAddress,handlesWithProofs:c.handlesWithProofs,eip712Signature:c.eip712Signature,reencryptPubKey:c.reencryptPubKey?c.reencryptPubKey:new Uint8Array}));f=await o.attestedDecrypt(d,t),void 0!==a&&s&&(f=await ur(f,s))}else{const n=Q(Fn,{handles:e});f=await o.attestedReveal(n,t)}return f}catch(e){if(e instanceof ir)throw e;throw new ir("Failed to decrypt handles",e)}var c}async function or(e,t,n){let r;if(n&&e&&"UNUSED IN TEST"!==n.transport.url){const t=(0,s.PF)({address:e,abi:Me.G,client:n}),i=await t.read.incoVerifier(),a=(0,s.PF)({address:i,abi:Ie.K,client:n});r=await a.read.getEIP712Version()}else r=t;return r}async function ur(e,t){return Promise.all(e.map(async e=>{if("plaintext"in e&&void 0!==e.plaintext)return e;if("encryptedPlaintext"in e&&void 0!==e.encryptedPlaintext){const n=e,i=(0,r.aT)(n.encryptedPlaintext.ciphertext.value),a=await nr(t,i),s=(0,he.U8)(a),o=(0,pe.hY)(n.handle),u=await Promise.all(n.encryptedSignatures.map(async e=>await nr(t,e)));return{handle:n.handle,plaintext:_e(1,o,s),covalidatorSignatures:u}}throw new ir("Attestation is neither plaintext nor encrypted")}))}function cr(e){if(!e.startsWith("0x")||66!==e.length)throw new ir("Invalid handle format: must be a 32-byte hex string with 0x prefix")}jn.FHE_EQ,jn.FHE_NE,jn.FHE_GE,jn.FHE_GT,jn.FHE_LE,jn.FHE_LT;class lr extends Error{cause;constructor(e,t){super(e),this.cause=t,this.name="AttestedComputeError"}}const fr="IncoAttestedCompute";async function dr({executorAddress:e,lhsHandle:t,op:n,rhsPlaintext:i,backoffConfig:a,walletClient:s,kmsQuorumClient:o,chainId:u,reencryptPubKey:c,reencryptKeypair:l}){try{cr(t);const f="boolean"==typeof i?i?1n:0n:BigInt(i),d=await or(e,"2",s),h=rr({chainId:BigInt(u),primaryType:"AttestedComputeRequest",primaryTypeFields:[{name:"op",type:"uint8"},{name:"lhsHandle",type:"bytes32"},{name:"rhsPlaintext",type:"bytes32"},{name:"publicKey",type:"bytes"}],message:{op:n,lhsHandle:t,rhsPlaintext:(0,he.X)(f),publicKey:(0,y.My)(c||new Uint8Array)},domainName:fr,domainVersion:d}),p=await s.signTypedData(h),m=Q(Ln,{userAddress:s.account.address,reencryptPubKey:c||new Uint8Array,op:n,lhsHandle:t,rhsPlaintext:f.toString(16),eip712Signature:(0,r.aT)(p),aclProof:{proof:{case:"incoLiteBasicAclProof",value:{}}}});let b=await o.attestedCompute(m,a);if(c&&l){const[e]=await ur([b],l);return e}return b}catch(e){if(e instanceof lr)throw e;throw new lr("Failed to perform attested compute",e)}}async function hr({lhsHandle:e,op:t,rhsPlaintext:n,backoffConfig:i,chainId:a,kmsQuorumClient:s,ephemeralKeypair:o,allowanceVoucherWithSig:u,ethClient:c,executorAddress:l,reencryptPubKey:f,reencryptKeypair:d}){const h=(0,fe.R)(`0x${o.kp.getPrivate("hex")}`),p=BigInt(n),m=(_e(1,(0,pe.hY)(e),p),await or(l,"2",c)),b=rr({chainId:BigInt(a),primaryType:"AttestedComputeRequest",primaryTypeFields:[{name:"op",type:"uint8"},{name:"lhsHandle",type:"bytes32"},{name:"rhsPlaintext",type:"bytes32"},{name:"publicKey",type:"bytes"}],message:{op:t,lhsHandle:e,rhsPlaintext:(0,he.X)(p),publicKey:(0,y.My)(f||new Uint8Array)},domainName:fr,domainVersion:m}),g=await h.signTypedData(b),v=Q(Ln,{userAddress:h.address,reencryptPubKey:f||new Uint8Array,op:t,lhsHandle:e,rhsPlaintext:p.toString(16),eip712Signature:(0,r.aT)(g),aclProof:{proof:{case:"incoLiteAdvancedAclProof",value:Q(Rn,{allowanceProof:Q(On,{sharer:u.sharer,voucher:Q(Pn,{sessionNonce:(0,r.aT)(u.voucher.sessionNonce),verifyingContract:u.voucher.verifyingContract,callFunction:(0,r.aT)(u.voucher.callFunction),sharerArgData:(0,r.aT)(u.voucher.sharerArgData)}),voucherSignature:(0,r.aT)(u.voucherSignature),requesterArgData:new Uint8Array})})}}});let w=await s.attestedCompute(v,i);if(f&&d){const[e]=await ur([w],d);return e}return w}async function pr({chainId:e,kmsQuorumClient:t,handles:n,ephemeralKeypair:i,allowanceVoucherWithSig:a,backoffConfig:s,reencryptPubKey:o,reencryptKeypair:u,ethClient:c,executorAddress:l}){const f=(0,fe.R)(`0x${i.kp.getPrivate("hex")}`),d=await or(l,"2",c),h=rr({chainId:BigInt(e),primaryType:"AttestedDecryptRequest",primaryTypeFields:[{name:"handles",type:"bytes32[]"},{name:"publicKey",type:"bytes"}],message:{handles:n,publicKey:(0,y.My)(o||Uint8Array.from([]))},domainName:ar,domainVersion:d}),p=await f.signTypedData(h),m=n.map(e=>Q(Nn,{handle:e,aclProof:{proof:{case:"incoLiteAdvancedAclProof",value:Q(Rn,{allowanceProof:Q(On,{sharer:a.sharer,voucher:Q(Pn,{sessionNonce:(0,r.aT)(a.voucher.sessionNonce),verifyingContract:a.voucher.verifyingContract,callFunction:(0,r.aT)(a.voucher.callFunction),sharerArgData:(0,r.aT)(a.voucher.sharerArgData)}),voucherSignature:(0,r.aT)(a.voucherSignature),requesterArgData:new Uint8Array})})}}})),b=Q(Bn,{userAddress:f.address,handlesWithProofs:m,eip712Signature:(0,r.aT)(p),reencryptPubKey:o||Uint8Array.from([])});let g=await t.attestedDecrypt(b,s);return void 0!==o&&u&&(g=await ur(g,u)),g}function mr(){const e=Te.find(e=>"allowanceVoucherDigest"===e.name);if(!e)throw new Error("allowanceVoucherDigest not found");const t=e.inputs.find(e=>"struct AllowanceVoucher"===e.internalType);if(!t)throw new Error("allowanceVoucherInput not found");return t.components}async function yr(e,t){const n=function(e,t){return(0,s.PF)({address:e,abi:Me.G,client:t})}(e,t),r=await n.read.incoVerifier();return(0,s.PF)({address:r,abi:Ie.K,client:t})}const br=[{name:"incoLightningPreview_2_0_0__889158349",majorVersion:2,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"testnet",executorAddress:"0x168FDc3Ae19A5d5b03614578C58974FF30FCBe92",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc005e0f44aac1a914b715cecd",chainId:84532,chainName:"Base Sepolia",version:{major:2,minor:0,patch:0,shortSalt:"889158349"},blockNumber:35063463,deployDate:"2025-12-16T14:26:58.303Z",commit:"v0.7.5-1-g770d7d08-dirty",active:!0,includesPreviewFeatures:!0},{name:"incoLightningPreview_2_0_0__467437523",majorVersion:2,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"demonet",executorAddress:"0xA95EAbCE575f5f1e52605358Ee893F6536166378",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc0071f74686446f14c7b469d3",chainId:84532,chainName:"Base Sepolia",version:{major:2,minor:0,patch:0,shortSalt:"467437523"},blockNumber:35796550,deployDate:"2026-01-02T13:43:12.741Z",commit:"v0.7.6-testnet-1-dirty",active:!0,includesPreviewFeatures:!0},{name:"incoLightningPreview_2_0_0__976644394",majorVersion:2,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"alphanet",executorAddress:"0xc0d693DeEF0A91CE39208676b6da09B822abd199",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc000822f11f6e30f933e76d2a",chainId:84532,chainName:"Base Sepolia",version:{major:2,minor:0,patch:0,shortSalt:"976644394"},blockNumber:34459258,deployDate:"2025-12-02T14:46:46.026Z",commit:"v0.6.9-17-g217794f3-dirty",active:!0,includesPreviewFeatures:!0},{name:"incoLightningPreview_2_0_0__295237520",majorVersion:2,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"devnet",executorAddress:"0xC64BB070D6F5aa796e79fA19c1008647ffF736ED",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc008d5a963bd519d8493f5190",chainId:9746,chainName:"Plasma Testnet",version:{major:2,minor:0,patch:0,shortSalt:"295237520"},blockNumber:9978173,deployDate:"2025-12-15T09:08:41.845Z",commit:"v0.7.4-dirty",active:!0,includesPreviewFeatures:!0},{name:"incoLightningPreview_2_0_0__295237520",majorVersion:2,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"devnet",executorAddress:"0xC64BB070D6F5aa796e79fA19c1008647ffF736ED",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc008d5a963bd519d8493f5190",chainId:84532,chainName:"Base Sepolia",version:{major:2,minor:0,patch:0,shortSalt:"295237520"},blockNumber:34835187,deployDate:"2025-12-11T07:37:48.943Z",commit:"v0.7.2-3-g4d31fa62-dirty",active:!0,includesPreviewFeatures:!0},{name:"incoLightningPreview_1_1_0__725458969",majorVersion:1,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"alphanet",executorAddress:"0x28676Cd3b10b03b2FDF105Ba280425b45a674F2A",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc004dfbe338c6966a22bcca19",chainId:84532,chainName:"Base Sepolia",version:{major:1,minor:1,patch:0,shortSalt:"725458969"},blockNumber:34456535,deployDate:"2025-12-02T13:16:00.594Z",commit:"v0.6.9-16-g428d1837-dirty",active:!0,includesPreviewFeatures:!0},{name:"incoLightningPreview_1_0_2__725458969",majorVersion:1,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"alphanet",executorAddress:"0x28676Cd3b10b03b2FDF105Ba280425b45a674F2A",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc004dfbe338c6966a22bcca19",chainId:84532,chainName:"Base Sepolia",version:{major:1,minor:0,patch:2,shortSalt:"725458969"},blockNumber:32124925,deployDate:"2025-10-09T13:55:42.997Z",commit:"v0.5.3-10-ga4f2312d",active:!0},{name:"incoLightningPreview_1_0_2__904635675",majorVersion:1,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"devnet",executorAddress:"0x3473820DcAa71Af8157b93C7f2bf1c676A2A39A6",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc007d63c0fdca6698ac7cc51b",chainId:9746,chainName:"Plasma Testnet",version:{major:1,minor:0,patch:2,shortSalt:"904635675"},blockNumber:3696905,deployDate:"2025-10-03T13:24:44.682Z",commit:"v0.5.3-6-g8db0f27f-dirty",active:!0},{name:"incoLightningPreview_1_0_0__904635675",majorVersion:1,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"devnet",executorAddress:"0x3473820DcAa71Af8157b93C7f2bf1c676A2A39A6",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc007d63c0fdca6698ac7cc51b",chainId:9746,chainName:"Plasma Testnet",version:{major:1,minor:0,patch:0,shortSalt:"904635675"},blockNumber:3344310,deployDate:"2025-09-29T11:14:02.599Z",commit:"v0.5.1-5-g4135c790-dirty",active:!0},{name:"incoLightning_0_2_0__183408998",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"testnet",executorAddress:"0x63D8135aF4D393B1dB43B649010c8D3EE19FC9fd",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00d75ffa0caf0797c3f12d66",chainId:84532,chainName:"Base Sepolia",version:{major:0,minor:2,patch:0,shortSalt:"183408998"},blockNumber:26296576,deployDate:"2025-05-27T15:57:24.175Z",commit:"v5-3-gec8b6aae-dirty",active:!0},{name:"incoLightning_0_1_29__183408998",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"testnet",executorAddress:"0x63D8135aF4D393B1dB43B649010c8D3EE19FC9fd",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00d75ffa0caf0797c3f12d66",chainId:10143,chainName:"Monad Testnet",version:{major:0,minor:1,patch:29,shortSalt:"183408998"},blockNumber:13464615,deployDate:"2025-04-22T16:01:14.380Z",commit:"v3-28-g93c05a49-dirty",active:!0},{name:"incoLightning_0_1_29__183408998",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"testnet",executorAddress:"0x63D8135aF4D393B1dB43B649010c8D3EE19FC9fd",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00d75ffa0caf0797c3f12d66",chainId:84532,chainName:"Base Sepolia",version:{major:0,minor:1,patch:29,shortSalt:"183408998"},blockNumber:24784654,deployDate:"2025-04-22T16:00:02.028Z",commit:"v3-28-g93c05a49-dirty",active:!0},{name:"incoLightning_0_2_0__863421733",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"demonet",executorAddress:"0xeBAFF6D578733E4603b99CBdbb221482F29a78E1",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00834654f6d289ccc7e5ab25",chainId:84532,chainName:"Base Sepolia",version:{major:0,minor:2,patch:0,shortSalt:"863421733"},blockNumber:25737175,deployDate:"2025-05-14T17:10:44.285Z",commit:"v4-11-g4a1f413a-dirty",active:!0},{name:"incoLightning_0_1_29__863421733",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"demonet",executorAddress:"0xeBAFF6D578733E4603b99CBdbb221482F29a78E1",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00834654f6d289ccc7e5ab25",chainId:84532,chainName:"Base Sepolia",version:{major:0,minor:1,patch:29,shortSalt:"863421733"},blockNumber:25719113,deployDate:"2025-05-14T07:08:39.059Z",commit:"v4",active:!0},{name:"incoLightningPreview_0_2_1__297966649",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"alphanet",executorAddress:"0x4651DfD7729aE5568092E7351fAaD872266d4CBd",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc0023f7798f470fdf5e9da639",chainId:84532,chainName:"Base Sepolia",version:{major:0,minor:2,patch:1,shortSalt:"297966649"},blockNumber:27543410,deployDate:"2025-06-25T12:38:32.856Z",commit:"v5-17-ga03e4b32-dirty",active:!0},{name:"incoLightningPreview_0_2_0__297966649",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"alphanet",executorAddress:"0x4651DfD7729aE5568092E7351fAaD872266d4CBd",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc0023f7798f470fdf5e9da639",chainId:84532,chainName:"Base Sepolia",version:{major:0,minor:2,patch:0,shortSalt:"297966649"},blockNumber:26894782,deployDate:"2025-06-10T12:17:35.790Z",commit:"v5-13-gd6b19c10-dirty",active:!0},{name:"incoLightningPreview_0_2_1__340846814",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"devnet",executorAddress:"0x3B22be60Ae699933959CA3cE147C96caa88Ccd3D",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00b001d6742fded0dd599ede",chainId:9746,chainName:"Plasma Testnet",version:{major:0,minor:2,patch:1,shortSalt:"340846814"},blockNumber:1718868,deployDate:"2025-09-10T15:20:25.654Z",commit:"v6-7-gf96f358e-dirty",active:!0},{name:"incoLightning_0_2_1__340846814",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"devnet",executorAddress:"0x3B22be60Ae699933959CA3cE147C96caa88Ccd3D",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00b001d6742fded0dd599ede",chainId:9746,chainName:"Plasma Testnet",version:{major:0,minor:2,patch:1,shortSalt:"340846814"},blockNumber:1717229,deployDate:"2025-09-10T14:53:07.218Z",commit:"v6-7-gf96f358e-dirty",active:!0},{name:"incoLightningPreview_0_2_1__340846814",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"devnet",executorAddress:"0x3B22be60Ae699933959CA3cE147C96caa88Ccd3D",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00b001d6742fded0dd599ede",chainId:4801,chainName:"World Chain Sepolia",version:{major:0,minor:2,patch:1,shortSalt:"340846814"},blockNumber:17365942,deployDate:"2025-08-15T17:35:15.208Z",commit:"v0.2.17-35-g8cca6b4e-dirty",active:!0},{name:"incoLightning_0_2_0__340846814",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"devnet",executorAddress:"0x3B22be60Ae699933959CA3cE147C96caa88Ccd3D",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00b001d6742fded0dd599ede",chainId:84532,chainName:"Base Sepolia",version:{major:0,minor:2,patch:0,shortSalt:"340846814"},blockNumber:26122863,deployDate:"2025-05-23T15:26:57.031Z",commit:"v5-2-g8957c16b-dirty",active:!0},{name:"incoLightning_0_1_29__340846814",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"devnet",executorAddress:"0x3B22be60Ae699933959CA3cE147C96caa88Ccd3D",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00b001d6742fded0dd599ede",chainId:10143,chainName:"Monad Testnet",version:{major:0,minor:1,patch:29,shortSalt:"340846814"},blockNumber:13464197,deployDate:"2025-04-22T15:57:26.862Z",commit:"v3-28-g93c05a49-dirty",active:!0},{name:"incoLightning_0_1_29__340846814",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"devnet",executorAddress:"0x3B22be60Ae699933959CA3cE147C96caa88Ccd3D",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00b001d6742fded0dd599ede",chainId:84532,chainName:"Base Sepolia",version:{major:0,minor:1,patch:29,shortSalt:"340846814"},blockNumber:24784527,deployDate:"2025-04-22T15:55:47.828Z",commit:"v3-28-g93c05a49-dirty",active:!0}],gr={testnet:{executorAddress:"0x168FDc3Ae19A5d5b03614578C58974FF30FCBe92",chainId:31337,covalidatorUrls:["http://localhost:50055"],signers:["0x8586714c02340Dc28935977d8E864f1F8E1c30B2"],hostChainRpcUrl:"http://localhost:8545",senderPrivateKey:"0x3ff395b755c4dc09837d0672dd421915e9b9835a4733edf63d8fd12b3fe4475c"},devnet:{executorAddress:"0xC64BB070D6F5aa796e79fA19c1008647ffF736ED",chainId:31337,covalidatorUrls:["http://localhost:50055"],signers:["0xe615dc3628F1cff966707A902104f8D96e19B7A2"],hostChainRpcUrl:"http://localhost:8545",senderPrivateKey:"0x8505bef7355f09a839822de30d48ab50d466303e61553a2df00e3efeff64a79f"},alphanet:{executorAddress:"0xc0d693DeEF0A91CE39208676b6da09B822abd199",chainId:31337,covalidatorUrls:["http://localhost:50055"],signers:["0x8E873085348a3406A07907E5d1465B9824bA07cd"],hostChainRpcUrl:"http://localhost:8545",senderPrivateKey:"0x279c172cf3638a79642daa5f7666c600befde318550d7579cf96280920e318b6"},scratch:{executorAddress:"0x230b8fb0201E621Be3612ab7387d164f8AdC863f",chainId:31337,covalidatorUrls:["http://localhost:50055"],signers:["0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"],hostChainRpcUrl:"http://127.0.0.1:8567",senderPrivateKey:"0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80"}},vr=(0,w.x)({id:11155111,name:"Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://11155111.rpc.thirdweb.com"]}},blockExplorers:{default:{name:"Etherscan",url:"https://sepolia.etherscan.io",apiUrl:"https://api-sepolia.etherscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:751532},ensUniversalResolver:{address:"0xeeeeeeee14d718c2b47d9923deab1335e144eeee",blockCreated:8928790}},testnet:!0}),wr=(0,w.x)({id:10143,name:"Monad Testnet",blockTime:400,nativeCurrency:{name:"Testnet MON Token",symbol:"MON",decimals:18},rpcUrls:{default:{http:["https://testnet-rpc.monad.xyz"]}},blockExplorers:{default:{name:"Monad Testnet explorer",url:"https://testnet.monadexplorer.com"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:251449}},testnet:!0}),_r=(0,w.x)({id:9746,name:"Plasma Testnet",nativeCurrency:{name:"Testnet Plasma",symbol:"XPL",decimals:18},rpcUrls:{default:{http:["https://testnet-rpc.plasma.to"]}},blockExplorers:{default:{name:"RouteScan",url:"https://testnet.plasmascan.to"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:0}},testnet:!0});var Sr=n(4297);const Er=11155111,kr=(0,w.x)({...v,id:4801,name:"World Chain Sepolia",network:"worldchain-sepolia",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://worldchain-sepolia.g.alchemy.com/public"]}},blockExplorers:{default:{name:"Worldscan Sepolia",url:"https://sepolia.worldscan.org",apiUrl:"https://api-sepolia.worldscan.org/api"},blockscout:{name:"Blockscout",url:"https://worldchain-sepolia.explorer.alchemy.com",apiUrl:"https://worldchain-sepolia.explorer.alchemy.com/api"}},contracts:{...v.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:0},disputeGameFactory:{[Er]:{address:"0x8Ec1111f67Dad6b6A93B3F42DfBC92D81c98449A"}},l2OutputOracle:{[Er]:{address:"0xc8886f8BAb6Eaeb215aDB5f1c686BF699248300e"}},portal:{[Er]:{address:"0xFf6EBa109271fe6d4237EeeD4bAb1dD9A77dD1A4"}},l1StandardBridge:{[Er]:{address:"0xd7DF54b3989855eb66497301a4aAEc33Dbb3F8DE"}}},testnet:!0,sourceId:Er}),xr={baseSepolia:84532,sepolia:11155111,monadTestnet:10143,plasmaTestnet:9746,worldchainSepolia:4801,anvil:31337},Tr={sepolia:vr,baseSepolia:S,monadTestnet:wr,plasmaTestnet:_r,anvil:Sr.N,worldchainSepolia:kr};function Mr(e){const{name:t}=function(e){const t="number"==typeof e||"bigint"==typeof e?Object.entries(xr).find(([,t])=>t===Number(e)):"object"==typeof e?Object.entries(xr).find(([,t])=>t===Number(e.id)):Object.entries(xr).find(([t])=>t===e);if(!t)throw new Error(`Supported chain ${e} not found`);const[n,r]=t;return{name:n,id:r}}(e),n=Tr[t];if(!n)throw new Error(`Unable to get viem chain: ${t}`);return n}var Ir;function Ar(e){const t=Ir[e];return"string"!=typeof t?e.toString():t[0].toLowerCase()+t.substring(1).replace(/[A-Z]/g,e=>"_"+e.toLowerCase())}let Nr;var Pr;(Pr=Ir||(Ir={}))[Pr.Canceled=1]="Canceled",Pr[Pr.Unknown=2]="Unknown",Pr[Pr.InvalidArgument=3]="InvalidArgument",Pr[Pr.DeadlineExceeded=4]="DeadlineExceeded",Pr[Pr.NotFound=5]="NotFound",Pr[Pr.AlreadyExists=6]="AlreadyExists",Pr[Pr.PermissionDenied=7]="PermissionDenied",Pr[Pr.ResourceExhausted=8]="ResourceExhausted",Pr[Pr.FailedPrecondition=9]="FailedPrecondition",Pr[Pr.Aborted=10]="Aborted",Pr[Pr.OutOfRange=11]="OutOfRange",Pr[Pr.Unimplemented=12]="Unimplemented",Pr[Pr.Internal=13]="Internal",Pr[Pr.Unavailable=14]="Unavailable",Pr[Pr.DataLoss=15]="DataLoss",Pr[Pr.Unauthenticated=16]="Unauthenticated";class Or extends Error{constructor(e,t=Ir.Unknown,n,r,i){super(function(e,t){return e.length?`[${Ar(t)}] ${e}`:`[${Ar(t)}]`}(e,t)),this.name="ConnectError",Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=e,this.code=t,this.metadata=new Headers(null!=n?n:{}),this.details=null!=r?r:[],this.cause=i}static from(e,t=Ir.Unknown){return e instanceof Or?e:e instanceof Error?"AbortError"==e.name||"TimeoutError"==e.name?new Or(e.message,Ir.Canceled):new Or(e.message,t,void 0,void 0,e):new Or(String(e),t,void 0,void 0,e)}static[Symbol.hasInstance](e){return e instanceof Error&&(Object.getPrototypeOf(e)===Or.prototype||"ConnectError"===e.name&&"code"in e&&"number"==typeof e.code&&"metadata"in e&&"details"in e&&Array.isArray(e.details)&&"rawMessage"in e&&"string"==typeof e.rawMessage&&"cause"in e)}findDetails(e){const t="message"===e.kind?{getMessage:t=>t===e.typeName?e:void 0}:e,n=[];for(const e of this.details){if("desc"in e){t.getMessage(e.desc.typeName)&&n.push(Q(e.desc,e.value));continue}const r=t.getMessage(e.type);if(r)try{n.push(Sn(r,e.value))}catch(e){}}return n}}var Rr=function(e){return this instanceof Rr?(this.v=e,this):new Rr(e)},Cr=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,i){!function(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)}(r,i,(t=e[n](t)).done,t.value)})}}},Br=function(e){return this instanceof Br?(this.v=e,this):new Br(e)};function Fr(e,t){return function(e,t){const n={};for(const r of e.methods){const e=t(r);null!=e&&(n[r.localName]=e)}return n}(e,e=>{switch(e.methodKind){case"unary":return function(e,t){return async(n,r)=>{var i,a;const s=await e.unary(t,null==r?void 0:r.signal,null==r?void 0:r.timeoutMs,null==r?void 0:r.headers,n,null==r?void 0:r.contextValues);return null===(i=null==r?void 0:r.onHeader)||void 0===i||i.call(r,s.header),null===(a=null==r?void 0:r.onTrailer)||void 0===a||a.call(r,s.trailer),s.message}}(t,e);case"server_streaming":return function(e,t){return(n,r)=>Lr(e.stream(t,null==r?void 0:r.signal,null==r?void 0:r.timeoutMs,null==r?void 0:r.headers,function(e){return function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=n.apply(e,t||[]),a=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",function(e){return function(t){return Promise.resolve(t).then(e,c)}}),r[Symbol.asyncIterator]=function(){return this},r;function s(e,t){i[e]&&(r[e]=function(t){return new Promise(function(n,r){a.push([e,t,n,r])>1||o(e,t)})},t&&(r[e]=t(r[e])))}function o(e,t){try{(n=i[e](t)).value instanceof Rr?Promise.resolve(n.value.v).then(u,c):l(a[0][2],n)}catch(e){l(a[0][3],e)}var n}function u(e){o("next",e)}function c(e){o("throw",e)}function l(e,t){e(t),a.shift(),a.length&&o(a[0][0],a[0][1])}}(this,arguments,function*(){yield Rr(yield*function(e){var t,n;return t={},r("next"),r("throw",function(e){throw e}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,i){t[r]=e[r]?function(t){return(n=!n)?{value:Rr(e[r](t)),done:!1}:i?i(t):t}:i}}(function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,i){!function(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)}(r,i,(t=e[n](t)).done,t.value)})}}}(e)))})}([n]),null==r?void 0:r.contextValues),r)}(t,e);case"client_streaming":return function(e,t){return async(n,r)=>{var i,a,s,o,u,c;const l=await e.stream(t,null==r?void 0:r.signal,null==r?void 0:r.timeoutMs,null==r?void 0:r.headers,n,null==r?void 0:r.contextValues);let f;null===(u=null==r?void 0:r.onHeader)||void 0===u||u.call(r,l.header);let d=0;try{for(var h,p=!0,m=Cr(l.message);!(i=(h=await m.next()).done);p=!0)o=h.value,p=!1,f=o,d++}catch(e){a={error:e}}finally{try{p||i||!(s=m.return)||await s.call(m)}finally{if(a)throw a.error}}if(!f)throw new Or("protocol error: missing response message",Ir.Unimplemented);if(d>1)throw new Or("protocol error: received extra messages for client streaming method",Ir.Unimplemented);return null===(c=null==r?void 0:r.onTrailer)||void 0===c||c.call(r,l.trailer),f}}(t,e);case"bidi_streaming":return function(e,t){return(n,r)=>Lr(e.stream(t,null==r?void 0:r.signal,null==r?void 0:r.timeoutMs,null==r?void 0:r.headers,n,null==r?void 0:r.contextValues),r)}(t,e);default:return null}})}function Lr(e,t){const n=function(){return function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=n.apply(e,t||[]),a=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",function(e){return function(t){return Promise.resolve(t).then(e,c)}}),r[Symbol.asyncIterator]=function(){return this},r;function s(e,t){i[e]&&(r[e]=function(t){return new Promise(function(n,r){a.push([e,t,n,r])>1||o(e,t)})},t&&(r[e]=t(r[e])))}function o(e,t){try{(n=i[e](t)).value instanceof Br?Promise.resolve(n.value.v).then(u,c):l(a[0][2],n)}catch(e){l(a[0][3],e)}var n}function u(e){o("next",e)}function c(e){o("throw",e)}function l(e,t){e(t),a.shift(),a.length&&o(a[0][0],a[0][1])}}(this,arguments,function*(){var n,r;const i=yield Br(e);null===(n=null==t?void 0:t.onHeader)||void 0===n||n.call(t,i.header),yield Br(yield*function(e){var t,n;return t={},r("next"),r("throw",function(e){throw e}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,i){t[r]=e[r]?function(t){return(n=!n)?{value:Br(e[r](t)),done:!1}:i?i(t):t}:i}}(Cr(i.message))),null===(r=null==t?void 0:t.onTrailer)||void 0===r||r.call(t,i.trailer)})}()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>n.next()})}}const jr=lt(Mn("Chlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiJgoDQW55EhAKCHR5cGVfdXJsGAEgASgJEg0KBXZhbHVlGAIgASgMQnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFueVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FueXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),0);function Dr(e){const t=e.lastIndexOf("/"),n=t>=0?e.substring(t+1):e;if(!n.length)throw new Error(`invalid type url: ${e}`);return n}const Ur=Mn("Chxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvEg9nb29nbGUucHJvdG9idWYihAEKBlN0cnVjdBIzCgZmaWVsZHMYASADKAsyIy5nb29nbGUucHJvdG9idWYuU3RydWN0LkZpZWxkc0VudHJ5GkUKC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEi6gEKBVZhbHVlEjAKCm51bGxfdmFsdWUYASABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSAASFgoMbnVtYmVyX3ZhbHVlGAIgASgBSAASFgoMc3RyaW5nX3ZhbHVlGAMgASgJSAASFAoKYm9vbF92YWx1ZRgEIAEoCEgAEi8KDHN0cnVjdF92YWx1ZRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIABIwCgpsaXN0X3ZhbHVlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZUgAQgYKBGtpbmQiMwoJTGlzdFZhbHVlEiYKBnZhbHVlcxgBIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSobCglOdWxsVmFsdWUSDgoKTlVMTF9WQUxVRRAAQn8KE2NvbS5nb29nbGUucHJvdG9idWZCC1N0cnVjdFByb3RvUAFaL2dvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3N0cnVjdHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),zr=lt(Ur,0),$r=lt(Ur,1),Vr=lt(Ur,2);var Kr;function Yr(e,t){Gr(t,e);const n=function(e,t){if(void 0===e)return[];if("enum"===t.fieldKind||"scalar"===t.fieldKind){for(let n=e.length-1;n>=0;--n)if(e[n].no==t.number)return[e[n]];return[]}return e.filter(e=>e.no===t.number)}(e.$unknown,t),[r,i,a]=Hr(t);for(const e of n)kn(r,new Vt(e.data),i,e.wireType,{readUnknownFields:!0});return a()}function qr(e,t,n){var r;Gr(t,e);const i=(null!==(r=e.$unknown)&&void 0!==r?r:[]).filter(e=>e.no!==t.number),[a,s]=Hr(t,n),o=new $t;Yn(o,{writeUnknownFields:!0},a,s);const u=new Vt(o.finish());for(;u.pos{const t=a[n];if(void 0===t){const t=e.message;return J(t)?z(t.fields[0].scalar,t.fields[0].longAsString):Q(t)}return t}]}function Gr(e,t){if(e.extendee.typeName!=t.$typeName)throw new Error(`extension ${e.typeName} can only be applied to message ${e.extendee.typeName}`)}!function(e){e[e.NULL_VALUE=0]="NULL_VALUE"}(Kr||(Kr={}));const Wr={ignoreUnknownFields:!1};function Xr(e,t,n){const r=tn(e);try{Jr(r,t,function(e){return e?Object.assign(Object.assign({},Wr),e):Wr}(n))}catch(e){if((i=e)instanceof Error&&Ot.includes(i.name)&&"field"in i&&"function"==typeof i.field)throw new Error(`cannot decode ${e.field()} from JSON: ${e.message}`,{cause:e});throw e}var i;return r.message}function Jr(e,t,n){var r;if(function(e,t,n){if(!e.desc.typeName.startsWith("google.protobuf."))return!1;switch(e.desc.typeName){case"google.protobuf.Any":return function(e,t,n){var r;if(null===t||Array.isArray(t)||"object"!=typeof t)throw new Error(`cannot decode message ${e.$typeName} from JSON: expected object but got ${Jt(t)}`);if(0==Object.keys(t).length)return;const i=t["@type"];if("string"!=typeof i||""==i)throw new Error(`cannot decode message ${e.$typeName} from JSON: "@type" is empty`);const a=i.includes("/")?i.substring(i.lastIndexOf("/")+1):i;if(!a.length)throw new Error(`cannot decode message ${e.$typeName} from JSON: "@type" is invalid`);const s=null===(r=n.registry)||void 0===r?void 0:r.getMessage(a);if(!s)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${i} is not in the type registry`);const o=tn(s);if(a.startsWith("google.protobuf.")&&Object.prototype.hasOwnProperty.call(t,"value"))Jr(o,t.value,n);else{const e=Object.assign({},t);delete e["@type"],Jr(o,e,n)}!function(e,t,n){let r=!1;n||(n=Q(jr)),n.value=Vn(e,t),n.typeUrl=`type.googleapis.com/${t.$typeName}`}(o.desc,o.message,e)}(e.message,t,n),!0;case"google.protobuf.Timestamp":return function(e,t){if("string"!=typeof t)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${Jt(t)}`);const n=t.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:\.([0-9]{1,9}))?(?:Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!n)throw new Error(`cannot decode message ${e.$typeName} from JSON: invalid RFC 3339 string`);const r=Date.parse(n[1]+"-"+n[2]+"-"+n[3]+"T"+n[4]+":"+n[5]+":"+n[6]+(n[8]?n[8]:"Z"));if(Number.isNaN(r))throw new Error(`cannot decode message ${e.$typeName} from JSON: invalid RFC 3339 string`);if(rDate.parse("9999-12-31T23:59:59Z"))throw new Error(`cannot decode message ${e.$typeName} from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);e.seconds=L.parse(r/1e3),e.nanos=0,n[7]&&(e.nanos=parseInt("1"+n[7]+"0".repeat(9-n[7].length))-1e9)}(e.message,t),!0;case"google.protobuf.Duration":return function(e,t){if("string"!=typeof t)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${Jt(t)}`);const n=t.match(/^(-?[0-9]+)(?:\.([0-9]+))?s/);if(null===n)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${Jt(t)}`);const r=Number(n[1]);if(r>315576e6||r<-315576e6)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${Jt(t)}`);if(e.seconds=L.parse(r),"string"!=typeof n[2])return;const i=n[2]+"0".repeat(9-n[2].length);e.nanos=parseInt(i),(r<0||Object.is(r,-0))&&(e.nanos=-e.nanos)}(e.message,t),!0;case"google.protobuf.FieldMask":return function(e,t){if("string"!=typeof t)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${Jt(t)}`);""!==t&&(e.paths=t.split(",").map(function(t){if(t.includes("_"))throw new Error(`cannot decode message ${e.$typeName} from JSON: path names must be lowerCamelCase`);const n=t.replace(/[A-Z]/g,e=>"_"+e.toLowerCase());return"_"===n[0]?n.substring(1):n}))}(e.message,t),!0;case"google.protobuf.Struct":return si(e.message,t),!0;case"google.protobuf.Value":return oi(e.message,t),!0;case"google.protobuf.ListValue":return ui(e.message,t),!0;default:if(J(e.desc)){const n=e.desc.fields[0];return null===t?e.clear(n):e.set(n,ri(n,t,!0)),!0}return!1}}(e,t,n))return;if(null==t||Array.isArray(t)||"object"!=typeof t)throw new Error(`cannot decode ${e.desc} from JSON: ${Jt(t)}`);const i=new Map,a=new Map;for(const t of e.desc.fields)a.set(t.name,t).set(t.jsonName,t);for(const[s,o]of Object.entries(t)){const t=a.get(s);if(t){if(t.oneof){if(null===o&&"scalar"==t.fieldKind)continue;const e=i.get(t.oneof);if(void 0!==e)throw new Rt(t.oneof,`oneof set multiple times by ${e.name} and ${t.name}`);i.set(t.oneof,t)}Zr(e,t,o,n)}else{let t;if(s.startsWith("[")&&s.endsWith("]")&&(t=null===(r=n.registry)||void 0===r?void 0:r.getExtension(s.substring(1,s.length-1)))&&t.extendee.typeName===e.desc.typeName){const[r,i,a]=Hr(t);Zr(r,i,o,n),qr(e.message,t,a())}if(!t&&!n.ignoreUnknownFields)throw new Error(`cannot decode ${e.desc} from JSON: key "${s}" is unknown`)}}}function Zr(e,t,n,r){switch(t.fieldKind){case"scalar":!function(e,t,n){const r=ri(t,n,!1);r===ni?e.clear(t):e.set(t,r)}(e,t,n);break;case"enum":!function(e,t,n,r){const i=ti(t.enum,n,r.ignoreUnknownFields,!1);i===ni?e.clear(t):i!==ei&&e.set(t,i)}(e,t,n,r);break;case"message":!function(e,t,n,r){if(null===n&&"google.protobuf.Value"!=t.message.typeName)return void e.clear(t);const i=e.isSet(t)?e.get(t):tn(t.message);Jr(i,n,r),e.set(t,i)}(e,t,n,r);break;case"list":!function(e,t,n){if(null===t)return;const r=e.field();if(!Array.isArray(t))throw new Rt(r,"expected Array, got "+Jt(t));for(const i of t){if(null===i&&!Qr(r))throw new Rt(r,"list item must not be null");switch(r.listKind){case"message":const t=tn(r.message);Jr(t,i,n),e.add(t);break;case"enum":const a=ti(r.enum,i,n.ignoreUnknownFields,!0);a!==ei&&e.add(a);break;case"scalar":e.add(ri(r,i,!0))}}}(e.get(t),n,r);break;case"map":!function(e,t,n){if(null===t)return;const r=e.field();if("object"!=typeof t||Array.isArray(t))throw new Rt(r,"expected object, got "+Jt(t));for(const[i,a]of Object.entries(t)){if(null===a&&!Qr(r))throw new Rt(r,"map value must not be null");let t;switch(r.mapKind){case"message":const e=tn(r.message);Jr(e,a,n),t=e;break;case"enum":if(t=ti(r.enum,a,n.ignoreUnknownFields,!0),t===ei)return;break;case"scalar":t=ri(r,a,!0)}const s=ii(r.mapKey,i);e.set(s,t)}}(e.get(t),n,r)}}function Qr(e){var t,n;return"google.protobuf.Value"==(null===(t=e.message)||void 0===t?void 0:t.typeName)||"google.protobuf.NullValue"==(null===(n=e.enum)||void 0===n?void 0:n.typeName)}const ei=Symbol();function ti(e,t,n,r){if(null===t)return"google.protobuf.NullValue"==e.typeName?0:r?e.values[0].number:ni;switch(typeof t){case"number":if(Number.isInteger(t))return t;break;case"string":const r=e.values.find(e=>e.name===t);if(void 0!==r)return r.number;if(n)return ei}throw new Error(`cannot decode ${e} from JSON: ${Jt(t)}`)}const ni=Symbol();function ri(e,t,n){if(null===t)return n?z(e.scalar,!1):ni;switch(e.scalar){case k.DOUBLE:case k.FLOAT:if("NaN"===t)return NaN;if("Infinity"===t)return Number.POSITIVE_INFINITY;if("-Infinity"===t)return Number.NEGATIVE_INFINITY;if("number"==typeof t){if(Number.isNaN(t))throw new Rt(e,"unexpected NaN number");if(!Number.isFinite(t))throw new Rt(e,"unexpected infinite number");break}if("string"==typeof t){if(""===t)break;if(t.trim().length!==t.length)break;const e=Number(t);if(!Number.isFinite(e))break;return e}break;case k.INT32:case k.FIXED32:case k.SFIXED32:case k.SINT32:case k.UINT32:return ai(t);case k.BYTES:if("string"==typeof t){if(""===t)return new Uint8Array(0);try{return Ae(t)}catch(t){const n=t instanceof Error?t.message:String(t);throw new Rt(e,n)}}}return t}function ii(e,t){switch(e){case k.BOOL:switch(t){case"true":return!0;case"false":return!1}return t;case k.INT32:case k.FIXED32:case k.UINT32:case k.SFIXED32:case k.SINT32:return ai(t);default:return t}}function ai(e){if("string"==typeof e){if(""===e)return e;if(e.trim().length!==e.length)return e;const t=Number(e);return Number.isNaN(t)?e:t}return e}function si(e,t){if("object"!=typeof t||null==t||Array.isArray(t))throw new Error(`cannot decode message ${e.$typeName} from JSON ${Jt(t)}`);for(const[n,r]of Object.entries(t)){const t=Q($r);oi(t,r),e.fields[n]=t}}function oi(e,t){switch(typeof t){case"number":e.kind={case:"numberValue",value:t};break;case"string":e.kind={case:"stringValue",value:t};break;case"boolean":e.kind={case:"boolValue",value:t};break;case"object":if(null===t)e.kind={case:"nullValue",value:Kr.NULL_VALUE};else if(Array.isArray(t)){const n=Q(Vr);ui(n,t),e.kind={case:"listValue",value:n}}else{const n=Q(zr);si(n,t),e.kind={case:"structValue",value:n}}break;default:throw new Error(`cannot decode message ${e.$typeName} from JSON ${Jt(t)}`)}return e}function ui(e,t){if(!Array.isArray(t))throw new Error(`cannot decode message ${e.$typeName} from JSON ${Jt(t)}`);for(const n of t){const t=Q($r);oi(t,n),e.values.push(t)}}function ci(){return{get(e){return e.id in this?this[e.id]:e.defaultValue},set(e,t){return this[e.id]=t,this},delete(e){return delete this[e.id],this}}}const li={alwaysEmitImplicit:!1,enumAsInteger:!1,useProtoFieldName:!1};function fi(e,t){var n;const r=function(e,t){var n;if(e.desc.typeName.startsWith("google.protobuf."))switch(e.desc.typeName){case"google.protobuf.Any":return function(e,t){if(""===e.typeUrl)return{};const{registry:n}=t;let r,i;if(n&&(r=function(e,t){if(""===e.typeUrl)return;const n="message"==t.kind?t:t.getMessage(Dr(e.typeUrl));return n&&function(e,t){return""!==e.typeUrl&&("string"==typeof t?t:t.typeName)===Dr(e.typeUrl)}(e,n)?Sn(n,e.value):void 0}(e,n),r&&(i=n.getMessage(r.$typeName))),!i||!r)throw new Error(`cannot encode message ${e.$typeName} to JSON: "${e.typeUrl}" is not in the type registry`);let a=fi(tn(i,r),t);return(i.typeName.startsWith("google.protobuf.")||null===a||Array.isArray(a)||"object"!=typeof a)&&(a={value:a}),a["@type"]=e.typeUrl,a}(e.message,t);case"google.protobuf.Timestamp":return function(e){const t=1e3*Number(e.seconds);if(tDate.parse("9999-12-31T23:59:59Z"))throw new Error(`cannot encode message ${e.$typeName} to JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);if(e.nanos<0)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos must not be negative`);if(e.nanos>999999999)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos must not be greater than 99999999`);let n="Z";if(e.nanos>0){const t=(e.nanos+1e9).toString().substring(1);n="000000"===t.substring(3)?"."+t.substring(0,3)+"Z":"000"===t.substring(6)?"."+t.substring(0,6)+"Z":"."+t+"Z"}return new Date(t).toISOString().replace(".000Z",n)}(e.message);case"google.protobuf.Duration":return function(e){const t=Number(e.seconds),n=e.nanos;if(t>315576e6||t<-315576e6)throw new Error(`cannot encode message ${e.$typeName} to JSON: value out of range`);if(t>0&&n<0||t<0&&n>0)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos sign must match seconds sign`);let r=e.seconds.toString();if(0!==n){let e=Math.abs(n).toString();e="0".repeat(9-e.length)+e,"000000"===e.substring(3)?e=e.substring(0,3):"000"===e.substring(6)&&(e=e.substring(0,6)),r+="."+e,n<0&&0==t&&(r="-"+r)}return r+"s"}(e.message);case"google.protobuf.FieldMask":return(n=e.message).paths.map(e=>{if(e.match(/_[0-9]?_/g)||e.match(/[A-Z]/g))throw new Error(`cannot encode message ${n.$typeName} to JSON: lowerCamelCase of path name "`+e+'" is irreversible');return Be(e)}).join(",");case"google.protobuf.Struct":return yi(e.message);case"google.protobuf.Value":return bi(e.message);case"google.protobuf.ListValue":return gi(e.message);default:if(J(e.desc)){const t=e.desc.fields[0];return pi(t,e.get(t))}return}}(e,t);if(void 0!==r)return r;const i={};for(const n of e.sortedFields){if(!e.isSet(n)){if(3==n.presence)throw new Error(`cannot encode ${n} to JSON: required field not set`);if(!t.alwaysEmitImplicit||2!==n.presence)continue}const r=di(n,e.get(n),t);void 0!==r&&(i[mi(n,t)]=r)}if(t.registry){const r=new Set;for(const{no:a}of null!==(n=e.getUnknown())&&void 0!==n?n:[])if(!r.has(a)){r.add(a);const n=t.registry.getExtensionFor(e.desc,a);if(!n)continue;const s=Yr(e.message,n),[o,u]=Hr(n,s),c=di(u,o.get(u),t);void 0!==c&&(i[n.jsonName]=c)}}return i}function di(e,t,n){switch(e.fieldKind){case"scalar":return pi(e,t);case"message":return fi(t,n);case"enum":return hi(e.enum,t,n.enumAsInteger);case"list":return function(e,t){const n=e.field(),r=[];switch(n.listKind){case"scalar":for(const t of e)r.push(pi(n,t));break;case"enum":for(const i of e)r.push(hi(n.enum,i,t.enumAsInteger));break;case"message":for(const n of e)r.push(fi(n,t))}return t.alwaysEmitImplicit||r.length>0?r:void 0}(t,n);case"map":return function(e,t){const n=e.field(),r={};switch(n.mapKind){case"scalar":for(const[t,i]of e)r[t]=pi(n,i);break;case"message":for(const[n,i]of e)r[n]=fi(i,t);break;case"enum":for(const[i,a]of e)r[i]=hi(n.enum,a,t.enumAsInteger)}return t.alwaysEmitImplicit||e.size>0?r:void 0}(t,n)}}function hi(e,t,n){var r;if("number"!=typeof t)throw new Error(`cannot encode ${e} to JSON: expected number, got ${Jt(t)}`);if("google.protobuf.NullValue"==e.typeName)return null;if(n)return t;const i=e.value[t];return null!==(r=null==i?void 0:i.name)&&void 0!==r?r:t}function pi(e,t){var n,r,i,a,s,o;switch(e.scalar){case k.INT32:case k.SFIXED32:case k.SINT32:case k.FIXED32:case k.UINT32:if("number"!=typeof t)throw new Error(`cannot encode ${e} to JSON: ${null===(n=qt(e,t))||void 0===n?void 0:n.message}`);return t;case k.FLOAT:case k.DOUBLE:if("number"!=typeof t)throw new Error(`cannot encode ${e} to JSON: ${null===(r=qt(e,t))||void 0===r?void 0:r.message}`);return Number.isNaN(t)?"NaN":t===Number.POSITIVE_INFINITY?"Infinity":t===Number.NEGATIVE_INFINITY?"-Infinity":t;case k.STRING:if("string"!=typeof t)throw new Error(`cannot encode ${e} to JSON: ${null===(i=qt(e,t))||void 0===i?void 0:i.message}`);return t;case k.BOOL:if("boolean"!=typeof t)throw new Error(`cannot encode ${e} to JSON: ${null===(a=qt(e,t))||void 0===a?void 0:a.message}`);return t;case k.UINT64:case k.FIXED64:case k.INT64:case k.SFIXED64:case k.SINT64:if("bigint"!=typeof t&&"string"!=typeof t)throw new Error(`cannot encode ${e} to JSON: ${null===(s=qt(e,t))||void 0===s?void 0:s.message}`);return t.toString();case k.BYTES:if(t instanceof Uint8Array)return Ne(t);throw new Error(`cannot encode ${e} to JSON: ${null===(o=qt(e,t))||void 0===o?void 0:o.message}`)}}function mi(e,t){return t.useProtoFieldName?e.name:e.jsonName}function yi(e){const t={};for(const[n,r]of Object.entries(e.fields))t[n]=bi(r);return t}function bi(e){switch(e.kind.case){case"nullValue":return null;case"numberValue":if(!Number.isFinite(e.kind.value))throw new Error(`${e.$typeName} cannot be NaN or Infinity`);return e.kind.value;case"boolValue":case"stringValue":return e.kind.value;case"structValue":return yi(e.kind.value);case"listValue":return gi(e.kind.value);default:throw new Error(`${e.$typeName} must have a value`)}}function gi(e){return e.values.map(bi)}function vi(e){var t;const n=Object.assign({},e);return null!==(t=n.ignoreUnknownFields)&&void 0!==t||(n.ignoreUnknownFields=!0),n}function wi(e,t,n,r){const i=t?_i(e.input,r):Si(e.input,n);return{parse:(t?_i(e.output,r):Si(e.output,n)).parse,serialize:i.serialize}}function _i(e,t){return{parse(n){try{return Sn(e,n,t)}catch(e){const t=e instanceof Error?e.message:String(e);throw new Or(`parse binary: ${t}`,Ir.Internal)}},serialize(n){try{return Vn(e,n,t)}catch(e){const t=e instanceof Error?e.message:String(e);throw new Or(`serialize binary: ${t}`,Ir.Internal)}}}}function Si(e,t){var n,r;const i=null!==(n=null==t?void 0:t.textEncoder)&&void 0!==n?n:new TextEncoder,a=null!==(r=null==t?void 0:t.textDecoder)&&void 0!==r?r:new TextDecoder,s=vi(t);return{parse(t){try{const n=a.decode(t);return function(e,t,n){return Xr(e,function(e,t){try{return JSON.parse(e)}catch(e){const n=e instanceof Error?e.message:String(e);throw new Error(`cannot decode message ${t} from JSON: ${n}`,{cause:e})}}(t,e.typeName),n)}(e,n,s)}catch(e){throw Or.from(e,Ir.InvalidArgument)}},serialize(t){try{const n=function(e,t,n){var r;const i=function(e,t,n){return fi(tn(e,t),function(e){return e?Object.assign(Object.assign({},li),e):li}(n))}(e,t,n);return JSON.stringify(i,null,null!==(r=null==n?void 0:n.prettySpaces)&&void 0!==r?r:0)}(e,t,s);return i.encode(n)}catch(e){throw Or.from(e,Ir.Internal)}}}}function Ei(e,t){if(!t)return e;for(const n of t.concat().reverse())e=n(e);return e}function ki(e){if(!e.aborted)return;if(void 0!==e.reason)return e.reason;const t=new Error("This operation was aborted");return t.name="AbortError",t}function xi(e,t){return Q(e,t)}function Ti(e,t){function n(t){return!0===t.done?t:{done:t.done,value:xi(e,t.value)}}return{[Symbol.asyncIterator](){const e=t[Symbol.asyncIterator](),r={next:()=>e.next().then(n)};return void 0!==e.throw&&(r.throw=t=>e.throw(t).then(n)),void 0!==e.return&&(r.return=t=>e.return(t).then(n)),r}}}function Mi(e){const{signal:t,cleanup:n}=function(e){const t=new AbortController,n=()=>{t.abort(new Or("the operation timed out",Ir.DeadlineExceeded))};let r;return void 0!==e&&(e<=0?n():r=setTimeout(n,e)),{signal:t.signal,cleanup:()=>clearTimeout(r)}}(e.timeoutMs),r=function(...e){const t=new AbortController,n=e.filter(e=>void 0!==e).concat(t.signal);for(const e of n){if(e.aborted){r.apply(e);break}e.addEventListener("abort",r)}function r(){t.signal.aborted||t.abort(ki(this));for(const e of n)e.removeEventListener("abort",r)}return t}(e.signal,t);return[r.signal,function(e){const i=Or.from(t.aborted?ki(t):e);return r.abort(i),n(),Promise.reject(i)},function(){n(),r.abort()}]}function Ii(e,t){return e.toString().replace(/\/?$/,`/${t.parent.typeName}/${t.name}`)}class Ai{constructor(e){this.readMaxBytes=e,this.header=new Uint8Array(5),this.headerView=new DataView(this.header.buffer),this.buf=[]}get byteLength(){return this.buf.reduce((e,t)=>e+t.byteLength,0)}decode(e){this.buf.push(e);const t=[];for(;;){let e=this.pop();if(!e)break;t.push(e)}return t}pop(){if((this.env||(this.env=this.head(),this.env))&&this.cons(this.env.data)){const e=this.env;return this.env=void 0,e}}head(){if(!this.cons(this.header))return;const e=this.headerView.getUint8(0),t=this.headerView.getUint32(1);return function(e,t,n=!1){if(t>e){let r=`message size is larger than configured readMaxBytes ${e}`;throw n&&(r=`message size ${t} is larger than configured readMaxBytes ${e}`),new Or(r,Ir.ResourceExhausted)}}(this.readMaxBytes,t,!0),{flags:e,data:new Uint8Array(t)}}cons(e){const t=e.byteLength;if(this.byteLengtht-n?(e.set(r.subarray(0,t-n),n),this.buf.unshift(r.subarray(t-n)),n+=t-n):(e.set(r,n),n+=r.byteLength)}return!0}}const Ni="Content-Type",Pi="Content-Encoding",Oi="Connect-Protocol-Version",Ri="User-Agent",Ci=/^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;function Bi(e,t,n,r,i){const a=new Headers(null!=r?r:{});return void 0!==n&&a.set("Connect-Timeout-Ms",`${n}`),a.set(Ni,"unary"==e?t?"application/proto":"application/json":t?"application/connect+proto":"application/connect+json"),a.set(Oi,"1"),!a.has(Ri)&&i&&a.set(Ri,"connect-es/2.1.1"),a}function Fi(e,t,n,r){const i=r.get(Ni),a=function(e){const t=null==e?void 0:e.match(Ci);if(t)return{stream:!!t[1],binary:!!t[3]}}(i);if(200!==n){const t=new Or(`HTTP ${n}`,function(e){switch(e){case 400:return Ir.Internal;case 401:return Ir.Unauthenticated;case 403:return Ir.PermissionDenied;case 404:return Ir.Unimplemented;case 429:case 502:case 503:case 504:return Ir.Unavailable;default:return Ir.Unknown}}(n),r);if("unary"==e&&a&&!a.binary)return{isUnaryError:!0,unaryError:t};throw t}const s=t,o="unary"!==e;if((null==a?void 0:a.binary)!==s||a.stream!==o)throw new Or(`unsupported content type ${i}`,void 0===a?Ir.Unknown:Ir.Internal,r);return{isUnaryError:!1}}function Li(e,t,n){var r;if(t&&new Headers(t).forEach((e,t)=>n.metadata.append(t,e)),"object"!=typeof e||null==e||Array.isArray(e))throw n;let i=n.code;"code"in e&&"string"==typeof e.code&&(i=null!==(r=function(e){if(!Nr){Nr={};for(const e of Object.values(Ir))"string"!=typeof e&&(Nr[Ar(e)]=e)}return Nr[e]}(e.code))&&void 0!==r?r:i);const a=e.message;if(null!=a&&"string"!=typeof a)throw n;const s=new Or(null!=a?a:"",i,t);if("details"in e&&Array.isArray(e.details))for(const t of e.details){if(null===t||"object"!=typeof t||Array.isArray(t)||"string"!=typeof t.type||"string"!=typeof t.value)throw n;try{s.details.push({type:t.type,value:Ae(t.value),debug:t.debug})}catch(e){throw n}}return s}function ji(e){const t=new Headers,n=new Headers;return e.forEach((e,r)=>{r.toLowerCase().startsWith("trailer-")?n.append(r.substring(8),e):t.append(r,e)}),[t,n]}function Di(e){const t=new Or("invalid end stream",Ir.Unknown);let n;try{n=JSON.parse("string"==typeof e?e:(new TextDecoder).decode(e))}catch(e){throw t}if("object"!=typeof n||null==n||Array.isArray(n))throw t;const r=new Headers;if("metadata"in n){if("object"!=typeof n.metadata||null==n.metadata||Array.isArray(n.metadata))throw t;for(const[e,i]of Object.entries(n.metadata)){if(!Array.isArray(i)||i.some(e=>"string"!=typeof e))throw t;for(const t of i)r.append(e,t)}}return{metadata:r,error:"error"in n&&null!=n.error?Li(n.error,r,t):void 0}}var Ui=function(e){return this instanceof Ui?(this.v=e,this):new Ui(e)};const zi={redirect:"error"};function $i(e){var t;!function(){try{new Headers}catch(e){throw new Error("connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.")}}();const n=null!==(t=e.useBinaryFormat)&&void 0!==t&&t;return{async unary(t,r,i,a,s,o){const{serialize:u,parse:c}=wi(t,n,e.jsonOptions,e.binaryOptions);return i=void 0===i?e.defaultTimeoutMs:i<=0?void 0:i,await function(e){const t=Ei(e.next,e.interceptors),[n,r,i]=Mi(e);return t(Object.assign(Object.assign({},e.req),{message:xi(e.req.method.input,e.req.message),signal:n})).then(e=>(i(),e),r)}({interceptors:e.interceptors,signal:r,timeoutMs:i,req:{stream:!1,service:t.parent,method:t,requestMethod:"POST",url:Ii(e.baseUrl,t),header:Bi(t.methodKind,n,i,a,!1),contextValues:null!=o?o:ci(),message:s},next:async r=>{var i;let a=null;!0===e.useHttpGet&&t.idempotency===wt.NO_SIDE_EFFECTS?r=function(e,t,n){let r="?connect=v1";const i=e.header.get(Ni);0===(null==i?void 0:i.indexOf("application/"))&&(r+="&encoding="+encodeURIComponent(i.slice(12)));const a=e.header.get(Pi);null!==a&&"identity"!==a&&(r+="&compression="+encodeURIComponent(a),n=!0),n&&(r+="&base64=1"),r+="&message="+function(e,t){return t?Ne(e,"url"):encodeURIComponent((new TextDecoder).decode(e))}(t,n);const s=e.url+r,o=new Headers(e.header);for(const e of[Oi,Ni,"Content-Length",Pi,"Accept-Encoding"])o.delete(e);return Object.assign(Object.assign({},e),{requestMethod:"GET",url:s,header:o})}(r,u(r.message),n):a=u(r.message);const s=null!==(i=e.fetch)&&void 0!==i?i:globalThis.fetch,o=await s(r.url,Object.assign(Object.assign({},zi),{method:r.requestMethod,headers:r.header,signal:r.signal,body:a})),{isUnaryError:l,unaryError:f}=Fi(t.methodKind,n,o.status,o.headers);if(l)throw Li(await o.json(),function(...e){const t=new Headers;for(const n of e)n.forEach((e,n)=>{t.append(n,e)});return t}(...ji(o.headers)),f);const[d,h]=ji(o.headers);return{stream:!1,service:t.parent,method:t,header:d,message:n?c(new Uint8Array(await o.arrayBuffer())):Xr(t.output,await o.json(),vi(e.jsonOptions)),trailer:h}}})},async stream(t,r,i,a,s,o){const{serialize:u,parse:c}=wi(t,n,e.jsonOptions,e.binaryOptions);function l(e,t,n,r){return function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=n.apply(e,t||[]),a=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",function(e){return function(t){return Promise.resolve(t).then(e,c)}}),r[Symbol.asyncIterator]=function(){return this},r;function s(e,t){i[e]&&(r[e]=function(t){return new Promise(function(n,r){a.push([e,t,n,r])>1||o(e,t)})},t&&(r[e]=t(r[e])))}function o(e,t){try{(n=i[e](t)).value instanceof Ui?Promise.resolve(n.value.v).then(u,c):l(a[0][2],n)}catch(e){l(a[0][3],e)}var n}function u(e){o("next",e)}function c(e){o("throw",e)}function l(e,t){e(t),a.shift(),a.length&&o(a[0][0],a[0][1])}}(this,arguments,function*(){const i=function(e){let t;const n=new Ai(4294967295);return new ReadableStream({start(){t=e.getReader()},async pull(e){let r=!1;for(;!r;){const i=await t.read();if(i.done)n.byteLength>0&&e.error(new Or("protocol error: incomplete envelope",Ir.InvalidArgument)),e.close();else for(const t of n.decode(i.value))e.enqueue(t),r=!0}}})}(e).getReader();let a=!1;for(;;){const e=yield Ui(i.read());if(e.done)break;const{flags:r,data:s}=e.value;if(!(1&~r))throw new Or("protocol error: received unsupported compressed output",Ir.Internal);if(!(2&~r)){a=!0;const e=Di(s);if(e.error){const t=e.error;throw n.forEach((e,n)=>{t.metadata.append(n,e)}),t}e.metadata.forEach((e,n)=>t.set(n,e));continue}yield yield Ui(c(s))}if("throwIfAborted"in r&&r.throwIfAborted(),!a)throw"missing EndStreamResponse"})}async function f(e){if("server_streaming"!=t.methodKind)throw"The fetch API does not support streaming request bodies";const n=await e[Symbol.asyncIterator]().next();if(1==n.done)throw"missing request message";return function(e,t){const n=new Uint8Array(t.length+5);n.set(t,5);const r=new DataView(n.buffer,n.byteOffset,n.byteLength);return r.setUint8(0,0),r.setUint32(1,t.length),n}(0,u(n.value))}return i=void 0===i?e.defaultTimeoutMs:i<=0?void 0:i,await function(e){const t=Ei(e.next,e.interceptors),[n,r,i]=Mi(e),a=Object.assign(Object.assign({},e.req),{message:Ti(e.req.method.input,e.req.message),signal:n});let s=!1;return n.addEventListener("abort",function(){var t,n;const r=e.req.message[Symbol.asyncIterator]();s||null===(t=r.throw)||void 0===t||t.call(r,this.reason).catch(()=>{}),null===(n=r.return)||void 0===n||n.call(r).catch(()=>{})}),t(a).then(e=>Object.assign(Object.assign({},e),{message:{[Symbol.asyncIterator](){const t=e.message[Symbol.asyncIterator]();return{next:()=>t.next().then(e=>(1==e.done&&(s=!0,i()),e),r)}}}}),r)}({interceptors:e.interceptors,timeoutMs:i,signal:r,req:{stream:!0,service:t.parent,method:t,requestMethod:"POST",url:Ii(e.baseUrl,t),header:Bi(t.methodKind,n,i,a,!1),contextValues:null!=o?o:ci(),message:s},next:async r=>{var i;const a=null!==(i=e.fetch)&&void 0!==i?i:globalThis.fetch,s=await a(r.url,Object.assign(Object.assign({},zi),{method:r.requestMethod,headers:r.header,signal:r.signal,body:await f(r.message)}));if(Fi(t.methodKind,n,s.status,s.headers),null===s.body)throw"missing response body";const o=new Headers;return Object.assign(Object.assign({},r),{header:s.headers,trailer:o,message:l(s.body,o,s.headers,r.signal)})}})}}}function Vi(e,t){if("string"==typeof e){const n=$i({baseUrl:e}),r=Fr(Dn,n);return Object.assign(r,{signerAddress:t})}return Object.assign(e,{signerAddress:t})}class Ki{kmss;threshold;constructor(e,t){if(0===e.length)throw new Error("At least one attester or KMS client is required");if(t<1||t>e.length)throw new Error(`Threshold must be between 1 and ${e.length}`);if(e.length>0&&"attestedDecrypt"in e[0]){const t=e;this.kmss=t.map(e=>({client:e,signer:e.signerAddress}))}else{const t=e;this.kmss=t.map(e=>({client:Vi(e.url,e.signer),signer:e.signer}))}this.threshold=t}static fromUrls(e,t,n){if(0===e.length)throw new Error("At least one URL is required");if(t.length!==e.length)throw new Error(`Signers array length (${t.length}) must match URLs array length (${e.length})`);if(n<1||n>e.length)throw new Error(`Threshold must be between 1 and ${e.length} (number of URLs)`);const r=e.map((e,n)=>({url:e,signer:t[n]}));return new Ki(r,n)}static fromKmsClients(e,t){if(0===e.length)throw new Error("At least one KMS client is required");if(t<1||t>e.length)throw new Error(`Threshold must be between 1 and ${e.length} (number of KMS clients)`);return new Ki(e,t)}async attestedDecrypt(e,t){const n=await this.executeKmsOperationWithThreshold(async t=>await t.client.attestedDecrypt(e),t),r=n.map(e=>e.response),i=n.map(e=>e.signer),a=this.verifyResponseConsistency(r);return this.buildAggregatedAttestations(a,r,i)}async attestedCompute(e,t){const n=await this.executeKmsOperationWithThreshold(async t=>await t.client.attestedCompute(e),t),r=n.map(e=>e.response),i=n.map(e=>e.signer),a=this.verifyComputeResponseConsistency(r,e);return this.buildAggregatedComputeAttestation(a,r,i)}async attestedReveal(e,t){const n=await this.executeKmsOperationWithThreshold(async t=>await t.client.attestedReveal(e),t),r=n.map(e=>e.response),i=n.map(e=>e.signer),a=this.verifyResponseConsistency(r);return this.buildAggregatedAttestations(a,r,i)}async executeKmsOperationWithThreshold(e,t){const n=this.kmss.map(async(n,r)=>{try{return{response:await async function(e,{maxRetries:t=10,baseDelayInMs:n=1e3,backoffFactor:r=1.5,errHandler:i=()=>"continue"}={}){let a;for(let s=0;ssetTimeout(e,o))}throw a}(async()=>await e(n),t),signer:n.signer}}catch(e){throw new Error(`KMS client ${r} failed: ${e}`)}});return await async function(e,t){if(t<0)throw new Error("Threshold cannot be negative");if(0===t)return[];if(0===e.length&&t>0)throw new Error("Cannot reach positive threshold with no promises");if(t>e.length)throw new Error(`Threshold ${t} exceeds number of promises ${e.length}`);const n=[];let r=0;return new Promise((i,a)=>{e.forEach(s=>{s.then(e=>{n.length{console.error(`Error executing promise: ${i}`),r++,e.length-n.length-r({signature:e,signer:t[n]}));return n.sort((e,t)=>{const n=BigInt(e.signer),r=BigInt(t.signer);return nr?1:0}),n.map(e=>e.signature)}buildPlaintextAttestation(e,t){if(!e.value||"plaintext"!==e.value.case)throw new Error("Expected plaintext attestation");const n=e.value.value.value,r=e.handle;return{handle:r,plaintext:_e(1,(0,pe.hY)(r),(0,he.U8)(n)),covalidatorSignatures:t}}buildAggregatedAttestations(e,t,n){const r=e.decryptionAttestations.length;return new Array(r).fill(void 0).map((r,i)=>{const a=e.decryptionAttestations[i];if(!a.value)throw new Error("No value in attestation");const s=t.map(e=>e.decryptionAttestations[i].signature),o=this.collectAndSortSignatures(s,n);if("plaintext"===a.value.case)return this.buildPlaintextAttestation(a,o);if("reencryption"===a.value.case){const e=t.map(e=>{if("reencryption"===e.decryptionAttestations[i].value.case)return e.decryptionAttestations[i].value.value.encryptedSignature;throw new Error(`Expected reencryption attestation but received '${e.decryptionAttestations[i].value.case}'`)}),r=this.collectAndSortSignatures(e,n),s=a.value.value.userCiphertext,u=(0,pe.hY)((0,he.jR)(a.handle));return{handle:a.handle,encryptedPlaintext:{ciphertext:{value:(0,he.My)(s),scheme:1,type:u}},encryptedSignatures:r,covalidatorSignatures:o}}throw new Error(`Unexpected attestation type: ${a.value.case}, expected 'plaintext' or 'reencryption'`)})}buildAggregatedComputeAttestation(e,t,n){const r=e.decryptionAttestation;if(!r)throw new Error("No decryption attestation in reference response");if(!r.value)throw new Error("No value in reference attestation");const i=[];for(const e of t){const t=e.decryptionAttestation;t&&i.push(t.signature)}const a=this.collectAndSortSignatures(i,n);if("plaintext"===r.value.case)return this.buildPlaintextAttestation(r,a);if("reencryption"===r.value.case){const e=r.value.value.userCiphertext;if(!e)throw new Error("No ciphertext in reencryption");const i=(0,pe.hY)((0,he.jR)(r.handle)),s=t.map(e=>{if("reencryption"===e.decryptionAttestation?.value.case){const t=e.decryptionAttestation?.value.value;return t.encryptedSignature}throw new Error(`Expected reencryption attestation but received '${e.decryptionAttestation?.value.case}'`)}),o=this.collectAndSortSignatures(s,n);return{handle:r.handle,encryptedPlaintext:{ciphertext:{value:(0,he.My)(e),scheme:1,type:i}},encryptedSignatures:o,covalidatorSignatures:a}}throw new Error(`Unexpected attestation type: ${r.value.case}, expected 'plaintext' or 'reencryption'`)}verifyResponseConsistency(e){if(0===e.length)throw new Error("No responses collected to verify");const t=e[0];for(let n=1;n0;if("reencryption"===i&&!c)throw new Error("Unexpected attestation type: reencryption, expected 'plaintext'");for(let t=1;t{if(1!==e.scheme)throw new Error(`Plaintext with scheme ${function(e){if(1===e)return"ECIES";throw new Error(`Unknown encryption scheme: ${e}`)}(e.scheme)} cannot be encrypted with ECIES`);const i=Qn.from(function({plaintext:e,context:t}){const n=Q(Jn,{contextHash:(0,pe.Ek)(t),values:[{value:{case:"scalar",value:Q(Zn,{type:e.type,value:ke(e)})}}]});return Vn(Jn,n)}({plaintext:e,context:t})),a=await(0,Un.encrypt)(n,i,{ephemPrivateKey:r}),s=(0,pe.HT)({ciphertext:a,handleType:e.type,indexHandle:0,handleVersion:0}),o=(0,pe.I3)({prehandle:s,context:t});return{prehandle:(0,he.rr)(s),handle:(0,he.rr)(o),context:t,ciphertext:{scheme:1,type:e.type,value:Ee((0,he.My)(o),(0,he.My)(a))}}}}({pubKeyA:(s=(0,r.aT)((0,Gi.Z)(he.hJ,this.eciesPubKey)),er.keyFromPublic(s,"array").getPublic()),privKeyB:this.ephemeralKeypair}),this.kmsQuorumClient=Ki.fromUrls(this.covalidatorUrls,this.signers,this.threshold)}static async baseSepoliaTestnet(){return Zi.latest("testnet",S.id)}static async localNode(e){if(!e){const e=gr[Xi];return Zi.custom({...e,covalidatorUrls:[...e.covalidatorUrls],signers:e.signers.map(e=>(0,he.or)(e))})}if("string"==typeof e){const t=gr[e];return Zi.custom({...t,covalidatorUrls:[...t.covalidatorUrls],signers:t.signers.map(e=>(0,he.or)(e))})}const t=gr[Xi];return Zi.custom({chainId:e.COVALIDATOR_HOST_CHAIN_ID?Number(e.COVALIDATOR_HOST_CHAIN_ID):t.chainId,covalidatorUrls:e.COVALIDATOR_URL?e.COVALIDATOR_URL.split(","):[...t.covalidatorUrls],signers:e.EIP712_SIGNER_ADDRESS?e.EIP712_SIGNER_ADDRESS.split(",").map(e=>(0,he.or)(e)):t.signers.map(e=>(0,he.or)(e)),hostChainRpcUrl:e.COVALIDATOR_HOST_CHAIN_RPC_URL??t.hostChainRpcUrl??"http://localhost:8545",executorAddress:e.EXECUTOR_ADDRESS,senderPrivateKey:e.SENDER_PRIVATE_KEY})}static async localNodeFromEnv(e){let t;if((r=e)&&"object"==typeof r&&"filePath"in r&&"string"==typeof r.filePath){if(void 0===Wi||!Wi.versions?.node)throw new Error("Lightning.localNodeFromEnv with a file path is only available in Node environments.");const{readFile:r}=await n.e(137).then(n.t.bind(n,95137,23));t=await r(e.filePath)}else t=e;var r;const i=function(e){const t=e?function(e){let t={};const n=e.split("\n");for(const e of n){const n=e.trim();if(n&&!n.startsWith("#")){const e=n.indexOf("=");if(-1!==e){const r=n.substring(0,e).trim();let i=n.substring(e+1).trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.substring(1,i.length-1)),t[r]=i}}}for(const[e,n]of Object.entries(t))t[e]=n.replace(/\${?(\w+)}?/g,(e,n)=>t[n]??"");return t}(e.toString()):qi.env;return Yi.sv(Hi)(t)}(t);return await Zi.localNode(i)}static async at(e){const t=this.isIdByName(e)?br.find(t=>t.name===e.name&&t.chainId===e.chainId):br.find(t=>t.executorAddress===e.executorAddress&&t.chainId===e.chainId);if(!t)throw new Error(`No deployment found for ${JSON.stringify(e)}`);const n=Mr({id:t.chainId}),r=(0,i.l)({chain:n,transport:(0,a.L)()}),{threshold:s,signers:o,eciesPubKey:u}=await Zi.getChainConfig(t,r);return new Zi(t,Zi.getCovalidatorUrls(t,s),o,s,u)}static async custom(e){const t=Mr({id:e.chainId}),n=(0,i.l)({chain:t,transport:e.hostChainRpcUrl?(0,a.L)(e.hostChainRpcUrl):(0,a.L)()}),{threshold:r,signers:s,eciesPubKey:o}=await Zi.getVerifierContractDetails(e.executorAddress,n);return new Zi(e,e.covalidatorUrls,s,r,o)}static latestDeployment(e,t){const n=br.find(n=>n.pepper===e&&n.chainId===t);if(!n)throw new Error(`No deployment found for pepper ${e}`);return n}static async latest(e,t){return Zi.at(Zi.latestDeployment(e,t))}get deployment(){return{...this._deployment}}async encrypt(e,{accountAddress:t,dappAddress:n,handleType:r}){const{ciphertext:i}=await this.encryptor({plaintext:Zi.plaintextFromValue(e,r),context:{hostChainId:this.chainId,aclAddress:this.executorAddress,userAddress:(0,he.or)(t),contractAddress:(0,he.or)(n)}});return i.value}grantSessionKeyAllowanceVoucher(e,t,n,r){return async function({chainId:e,incoLiteAddress:t,sessionVerifierContractAddress:n,granteeAddress:r,sharerWalletClient:i,expiresAt:a}){const s={decrypter:r,expiresAt:BigInt(Math.floor(a.getTime()/1e3))},o=(0,ce.h)(function(){const e=xe.find(e=>"name"in e&&"getSession"===e.name);if(!e)throw new Error("getSession not found");const t=e.outputs[0];if(!t)throw new Error("session not found");return t.components}(),[s.decrypter,s.expiresAt]),u=await yr(t,i),c=await u.read.eip712Domain(),l=c[1],f=c[2],d=await async function(e,t,n,r,i){const a=await yr(e,t);return{sessionNonce:await a.read.getActiveVouchersSessionNonce([t.account.address]),verifyingContract:n,callFunction:r,sharerArgData:i}}(t,i,n,(0,le.V)(function(){const e=Me.Z.find(e=>"name"in e&&"canUseSession"===e.name);if(!e)throw new Error("canUseSession not found");return e}()),o),h=rr({chainId:e,primaryType:"AllowanceVoucher",primaryTypeFields:mr(),message:d,verifyingContract:u.address,domainName:l,domainVersion:f}),p=await i.signTypedData(h);return{sharer:i.account.address,voucher:d,voucherSignature:p}}({chainId:this.chainId,incoLiteAddress:this.executorAddress,sessionVerifierContractAddress:(0,he.or)(r),granteeAddress:(0,he.or)(t),sharerWalletClient:e,expiresAt:n})}updateActiveVouchersSessionNonce(e){return async function(e,t){const n=await yr(e,t);return await n.write.updateActiveVouchersSessionNonce()}(this.executorAddress,e)}attestedDecrypt(e,t,n,r,i){if(n instanceof Uint8Array){const a=n;let s,o;return r&&Ji(r)?(s=r,o=i):o=r,sr(s?{handles:t,backoffConfig:o,chainId:Number(this.chainId),walletClient:e,kmsQuorumClient:this.kmsQuorumClient,executorAddress:this.executorAddress,reencryptPubKey:a,reencryptKeypair:s}:{executorAddress:this.executorAddress,handles:t,backoffConfig:o,chainId:Number(this.chainId),walletClient:e,kmsQuorumClient:this.kmsQuorumClient,reencryptPubKey:a})}const a=n,s=tr(),o=s.encodePublicKey();return sr({handles:t,backoffConfig:a,chainId:Number(this.chainId),walletClient:e,kmsQuorumClient:this.kmsQuorumClient,executorAddress:this.executorAddress,reencryptPubKey:o,reencryptKeypair:s})}attestedDecryptWithVoucher(e,t,n,r,i,a,s){if(i instanceof Uint8Array){const o=i;let u,c;return a&&Ji(a)?(u=a,c=s):c=a,pr(u?{backoffConfig:c,chainId:Number(this.chainId),kmsQuorumClient:this.kmsQuorumClient,ephemeralKeypair:e,allowanceVoucherWithSig:t,handles:r,reencryptPubKey:o,reencryptKeypair:u,ethClient:n,executorAddress:this.executorAddress}:{backoffConfig:c,chainId:Number(this.chainId),kmsQuorumClient:this.kmsQuorumClient,ephemeralKeypair:e,allowanceVoucherWithSig:t,handles:r,reencryptPubKey:o,ethClient:n,executorAddress:this.executorAddress})}const o=i,u=tr(),c=u.encodePublicKey();return pr({backoffConfig:o,chainId:Number(this.chainId),kmsQuorumClient:this.kmsQuorumClient,ephemeralKeypair:e,allowanceVoucherWithSig:t,handles:r,ethClient:n,executorAddress:this.executorAddress,reencryptPubKey:c,reencryptKeypair:u})}attestedCompute(e,t,n,r,i,a,s){if(i instanceof Uint8Array){const o=i;let u,c;return a&&Ji(a)?(u=a,c=s):c=a,dr(u?{executorAddress:this.executorAddress,walletClient:e,kmsQuorumClient:this.kmsQuorumClient,chainId:Number(this.chainId),lhsHandle:t,op:n,rhsPlaintext:r,reencryptPubKey:o,reencryptKeypair:u,backoffConfig:c}:{executorAddress:this.executorAddress,walletClient:e,kmsQuorumClient:this.kmsQuorumClient,chainId:Number(this.chainId),lhsHandle:t,op:n,rhsPlaintext:r,reencryptPubKey:o,backoffConfig:c})}const o=i,u=tr(),c=u.encodePublicKey();return dr({executorAddress:this.executorAddress,walletClient:e,kmsQuorumClient:this.kmsQuorumClient,chainId:Number(this.chainId),lhsHandle:t,op:n,rhsPlaintext:r,reencryptPubKey:c,reencryptKeypair:u,backoffConfig:o})}attestedComputeWithVoucher(e,t,n,r,i,a,s,o,u){if(s instanceof Uint8Array){const c=s;let l,f;return o&&Ji(o)?(l=o,f=u):f=o,hr(l?{chainId:Number(this.chainId),kmsQuorumClient:this.kmsQuorumClient,ephemeralKeypair:e,allowanceVoucherWithSig:t,lhsHandle:r,op:i,rhsPlaintext:a,ethClient:n,executorAddress:this.executorAddress,reencryptPubKey:c,reencryptKeypair:l,backoffConfig:f}:{chainId:Number(this.chainId),kmsQuorumClient:this.kmsQuorumClient,ephemeralKeypair:e,allowanceVoucherWithSig:t,lhsHandle:r,op:i,rhsPlaintext:a,ethClient:n,executorAddress:this.executorAddress,reencryptPubKey:c,backoffConfig:f})}const c=s,l=tr(),f=l.encodePublicKey();return hr({chainId:Number(this.chainId),kmsQuorumClient:this.kmsQuorumClient,ephemeralKeypair:e,allowanceVoucherWithSig:t,lhsHandle:r,op:i,rhsPlaintext:a,ethClient:n,executorAddress:this.executorAddress,reencryptPubKey:f,reencryptKeypair:l,backoffConfig:c})}attestedReveal(e,t){return sr({executorAddress:this.executorAddress,handles:e,backoffConfig:t,chainId:Number(this.chainId),kmsQuorumClient:this.kmsQuorumClient})}static getCovalidatorUrls(e,t){const{executorAddress:n,chainId:r,pepper:i}=e;return Array.from({length:t},(e,t)=>`https://${n.toLowerCase()}.${r}.${i}.inco.org`)}static isIdByName(e){return void 0!==e.name}static plaintextFromValue(e,t){if("boolean"==typeof e)return{scheme:1,type:pe.uU.ebool,value:e};if("bigint"==typeof e||"number"==typeof e)return{scheme:1,type:t??pe.uU.euint256,value:BigInt(e)};throw new Error("Unsupported type "+typeof e)}static async getEciesPublicKey(e,t){const n=await Zi.getIncoVerifierContract(e,t);return await n.read.eciesPubkey()}static async getIncoVerifierContract(e,t){const n=(0,s.PF)({abi:Me.G,address:t,client:e}),r=await n.read.incoVerifier(),i=(0,s.PF)({abi:Ie.K,address:r,client:e});return console.log("inco executor",n.address),console.log("inco verifier",i.address),i}static async getVerifierContractDetails(e,t){const n=await Zi.getIncoVerifierContract(t,e),r=await n.read.getThreshold(),i=await n.read.eciesPubkey(),a=await n.read.getSignersCount(),s=[];for(let e=BigInt(0);e1||1===t&&n>=1}static getDefaultThresholdAndSigners(){return{threshold:1,signers:[o.X],eciesPubKey:"0x02516bda9e68a1c3dce74dc1b6ed7d91a91d51c1e1933947f06331cef59631e9eb"}}}},99942(e,t,n){"use strict";var r=n(33213),i=n(72258).Buffer,a=n(81475),s=i.alloc(128),o=64;function u(e,t){a.call(this,"digest"),"string"==typeof t&&(t=i.from(t)),this._alg=e,this._key=t,t.length>o?t=e(t):t.length + * @license MIT + */ + +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ + +/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ + +/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */ + +/*! safe-buffer. MIT License. Feross Aboukhadijeh */ + +/** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * scheduler.production.js + * + * Copyright (c) Meta Platforms, Inc. and 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/backend/src/test/react-example/build/static/js/vendors.358533ae.js.map b/backend/src/test/react-example/build/static/js/vendors.358533ae.js.map new file mode 100644 index 0000000..f4cea55 --- /dev/null +++ b/backend/src/test/react-example/build/static/js/vendors.358533ae.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/vendors.358533ae.js","mappings":"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A,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,UACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,YAGGC,EAAI,IAAI9S,MAAM,KAElB,SAAS+uK,IACRj4K,KAAKuW,OACLvW,KAAKkc,GAAKF,EAEVF,EAAK/b,KAAKC,KAAM,IAAK,IACtB,CA0BA,SAAS04F,EAAGhlF,EAAG0I,EAAGC,GACjB,OAAOA,EAAK3I,GAAK0I,EAAIC,EACtB,CAEA,SAASC,EAAI5I,EAAG0I,EAAGC,GAClB,OAAQ3I,EAAI0I,EAAMC,GAAK3I,EAAI0I,EAC5B,CAEA,SAASG,EAAO7I,EAAG+9D,GAClB,OAAS/9D,IAAM,GAAO+9D,GAAM,IAAQA,IAAO,EAAM/9D,GAAK,KAAS+9D,IAAO,EAAM/9D,GAAK,GAClF,CAEA,SAAS8I,EAAO9I,EAAG+9D,GAClB,OAAS/9D,IAAM,GAAO+9D,GAAM,KAAS/9D,IAAM,GAAO+9D,GAAM,KAASA,IAAO,EAAM/9D,GAAK,GACpF,CAEA,SAASwkK,EAAOxkK,E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L,EAC7D,CACF,MACE6yN,GACE7D,EACA/C,EACA6G,EACAC,GAEJ,MAiBF,KAAK,GACH,MACF,KAAK,GACHE,EAAyBhH,EAAap2B,UACtCx9K,EAAK4zM,EAAav/B,UAClB,OAASu/B,EAAan/B,cACmB,EAArCmmC,EAAuB5oB,YACrBwoB,GACE7D,EACA/C,EACA6G,EACAC,GAEFK,GAAwCpE,EAAc/C,GACnB,EAArCgH,EAAuB5oB,YACrBwoB,GACE7D,EACA/C,EACA6G,EACAC,IAEAE,EAAuB5oB,aAAe,EACxCgpB,GACErE,EACA/C,EACA6G,EACAC,KACmC,MAA5B9G,EAAajhB,gBAAyB,IAE7C,KAAR78L,GAAgBukN,GAAmCr6M,EAAI4zM,GACvD,MACF,KAAK,GACH4G,GACE7D,EACA/C,EACA6G,EACAC,GAEM,KAAR5kN,GACEykN,GAA8B3G,EAAav/B,UAAWu/B,GAU9D,CACA,SAASoH,GACPb,EACA/yL,EACA6zL,EACAC,EACAd,GAKA,IAHAA,EACEA,OACmC,MAA3BhzL,EAAYurK,gBAAyB,GAC1CvrK,EAAcA,EAAYL,MAAO,OAASK,GAAe,CAC5D,IAAIuvL,EAAewD,EACjBvG,EAAexsL,EACfqzL,EAAiBQ,EACjBP,EAAuBQ,EACvBplN,EAAQ89M,EAAa99M,MACvB,OAAQ89M,EAAa14L,KACnB,KAAK,EACL,KAAK,GACL,KAAK,GACH8/L,GACErE,EACA/C,EACA6G,EACAC,EACAN,GAEFzG,GAA0B,EAAGC,GAC7B,MACF,KAAK,GACH,MACF,KAAK,GACH,IAAInyI,EAAWmyI,EAAap2B,UAC5B,OAASo2B,EAAan/B,cACK,EAAvBhzG,EAASuwH,YACPgpB,GACErE,EACA/C,EACA6G,EACAC,EACAN,GAEFW,GACEpE,EACA/C,IAEFnyI,EAASuwH,aAAe,EAC1BgpB,GACErE,EACA/C,EACA6G,EACAC,EACAN,IAENA,GACU,KAARtkN,GACAukN,GACEzG,EAAav/B,UACbu/B,GAEJ,MACF,KAAK,GACHoH,GACErE,EACA/C,EACA6G,EACAC,EACAN,GAEFA,GACU,KAARtkN,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A,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINa,IAAK,CACHC,IAAK,EACLd,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oE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","sources":["webpack://react-example/../../../../node_modules/create-hmac/browser.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/constants/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/encoding/fromBytes.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/decodeAbiParameters.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/address/isAddress.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://react-example/../../../../node_modules/public-encrypt/privateDecrypt.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/stringify.js","webpack://react-example/../../../../node_modules/core-util-is/lib/util.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/index.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js","webpack://react-example/../../../../node_modules/typed-array-buffer/index.js","webpack://react-example/../../../../node_modules/hasown/index.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/version.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/base.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/promise/withResolvers.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/to-buffer.js","webpack://react-example/../../../../node_modules/events/events.js","webpack://react-example/../../../../node_modules/public-encrypt/publicEncrypt.js","webpack://react-example/../../../../node_modules/has-symbols/shams.js","webpack://react-example/../../../../node_modules/sha.js/sha256.js","webpack://react-example/../../../../node_modules/des.js/lib/des/ede.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/sendTransaction.js","webpack://react-example/../../../../node_modules/es-errors/type.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/ref.js","webpack://react-example/../../../../node_modules/call-bind/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/authorization/hashAuthorization.js","webpack://react-example/../../../../node_modules/viem/_esm/chains/definitions/anvil.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/blob/blobsToProofs.js","webpack://react-example/../../../../node_modules/diffie-hellman/lib/dh.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Order.js","webpack://react-example/../../../../node_modules/ecies-geth/dist/lib/src/typescript/index.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/differ/orPatch.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js","webpack://react-example/../../../../node_modules/call-bind-apply-helpers/actualApply.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/differ/chunkPatch.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/cursor.js","webpack://react-example/../../../../node_modules/public-encrypt/mgf.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/regex.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/data/trim.js","webpack://react-example/../../../../node_modules/ripemd160/index.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/curve/short.js","webpack://react-example/../../../../node_modules/miller-rabin/lib/mr.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/errors/signature.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Data.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/executionStrategy.js","webpack://react-example/../../../../node_modules/effect/dist/esm/ExecutionStrategy.js","webpack://react-example/../../../../node_modules/effect/dist/esm/FiberRefsPatch.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/fiberStatus.js","webpack://react-example/../../../../node_modules/effect/dist/esm/FiberStatus.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Micro.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Scheduler.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/blockedRequests.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/completedRequestMap.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/concurrency.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Exit.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/fiberMessage.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/fiberScope.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/fiber.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/logger.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/metric/keyType.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/metric/key.js","webpack://react-example/../../../../node_modules/effect/dist/esm/MutableHashMap.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/metric/state.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/metric/hook.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/metric/pair.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/metric/registry.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/metric.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/metric/boundaries.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/request.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/supervisor.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Differ.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/supervisor/patch.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/fiberRuntime.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/console.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/effect/circular.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Fiber.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Scope.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/runtime.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/schedule.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Deferred.js","webpack://react-example/../../../../node_modules/effect/dist/esm/MutableList.js","webpack://react-example/../../../../node_modules/effect/dist/esm/MutableQueue.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/cache.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Effect.js","webpack://react-example/../../../../node_modules/effect/dist/esm/ParseResult.js","webpack://react-example/../../../../node_modules/math-intrinsics/min.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getTransactionReceipt.js","webpack://react-example/../../../../node_modules/react-dom/client.js","webpack://react-example/../../../../node_modules/hmac-drbg/lib/hmac-drbg.js","webpack://react-example/../../../../node_modules/ecies-geth/dist/lib/src/typescript/node.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/sha/384.js","webpack://react-example/../../../../node_modules/browserify-aes/streamCipher.js","webpack://react-example/../../../../node_modules/md5.js/index.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/wait.js","webpack://react-example/../../../../node_modules/parse-asn1/certificate.js","webpack://react-example/../../../../node_modules/has-tostringtag/shams.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/context.js","webpack://react-example/../../../../node_modules/browserify-rsa/index.js","webpack://react-example/../../../../node_modules/process-nextick-args/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/formatters/block.js","webpack://react-example/../../../../node_modules/util-deprecate/browser.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getTransaction.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Inspectable.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/simulateContract.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/formatAbiItem.js","webpack://react-example/../../../../node_modules/sha.js/sha384.js","webpack://react-example/../../../../node_modules/sha3/sponge/permute/copy/index.js","webpack://react-example/../../../../node_modules/sha3/index.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getBlock.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/estimateMaxPriorityFeePerGas.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/curve/base.js","webpack://react-example/../../../../node_modules/define-data-property/index.js","webpack://react-example/../../../../node_modules/viem/_esm/constants/unit.js","webpack://react-example/../../../../node_modules/browserify-aes/modes/ecb.js","webpack://react-example/../../../../node_modules/crypto-browserify/index.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/account.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/utils.js","webpack://react-example/../../../../node_modules/brorand/index.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/base/buffer.js","webpack://react-example/../../../../node_modules/ox/_esm/core/internal/hex.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Clock.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/sha/512.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/hash/toFunctionSelector.js","webpack://react-example/../../../../node_modules/sha3/sponge/index.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/errors/abiParameter.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Readable.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Chunk.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/opCodes/effect.js","webpack://react-example/../../../../node_modules/viem/_esm/accounts/utils/sign.js","webpack://react-example/../../../../node_modules/viem/_esm/accounts/privateKeyToAccount.js","webpack://react-example/../../../../node_modules/viem/_esm/accounts/toAccount.js","webpack://react-example/../../../../node_modules/viem/_esm/accounts/utils/signAuthorization.js","webpack://react-example/../../../../node_modules/viem/_esm/accounts/utils/signMessage.js","webpack://react-example/../../../../node_modules/viem/_esm/accounts/utils/signTransaction.js","webpack://react-example/../../../../node_modules/viem/_esm/accounts/utils/signTypedData.js","webpack://react-example/../../../../node_modules/isarray/index.js","webpack://react-example/../../../../node_modules/call-bind-apply-helpers/functionCall.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Json.js","webpack://react-example/../../../../node_modules/es-errors/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/hash/toEventSelector.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/differ/contextPatch.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/node_modules/safe-buffer/index.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/errors/splitParameters.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/runtime/cache.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/runtime/utils.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/signature/hashTypedData.js","webpack://react-example/../../../../node_modules/stream-browserify/index.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/getContract.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/constants/der.js","webpack://react-example/../../../../node_modules/viem/_esm/constants/number.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/errors.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/effectable.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/encoding.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/estimateFeesPerGas.js","webpack://react-example/../../../../node_modules/browserify-des/index.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Hex.js","webpack://react-example/../../../../node_modules/es-errors/ref.js","webpack://react-example/../../../../node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://react-example/../../../../node_modules/diffie-hellman/lib/generatePrime.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/blob/blobsToCommitments.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/chain/getChainContractAddress.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/readable-browser.js","webpack://react-example/../../../../node_modules/sha3/sponge/permute/chi/index.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/errors/struct.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/runtime/structs.js","webpack://react-example/../../../../node_modules/bn.js/lib/bn.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/unit/parseGwei.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/ripemd.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/schema/util.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/errors/getTransactionError.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/unit/parseEther.js","webpack://react-example/../../../../node_modules/@noble/hashes/esm/_md.js","webpack://react-example/../../../../node_modules/@noble/hashes/esm/sha2.js","webpack://react-example/../../../../node_modules/es-errors/uri.js","webpack://react-example/../../../../node_modules/browserify-sign/browser/verify.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic.js","webpack://react-example/../../../../node_modules/create-hash/md5.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/signature/serializeSignature.js","webpack://react-example/../../../../node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/unit.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/unit/parseUnits.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/errors/getCallError.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/getAction.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/sha/224.js","webpack://react-example/../../../../node_modules/viem/_esm/constants/blob.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/blob/toBlobSidecars.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/blob/toBlobs.js","webpack://react-example/../../../../node_modules/@noble/hashes/esm/sha3.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/encoders/index.js","webpack://react-example/../../../../node_modules/readable-stream/lib/_stream_transform.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/array.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Iterable.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Record.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Tuple.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Array.js","webpack://react-example/../../../../node_modules/math-intrinsics/floor.js","webpack://react-example/../../../../node_modules/randomfill/browser.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/encodeAbiParameters.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Number.js","webpack://react-example/../../../../node_modules/hash-base/index.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/ec/key.js","webpack://react-example/../../../../node_modules/browserify-aes/encrypter.js","webpack://react-example/../../../../node_modules/browserify-sign/browser/index.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/tracer.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/decoders/der.js","webpack://react-example/../../../../node_modules/which-typed-array/index.js","webpack://react-example/../../../../node_modules/for-each/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/unit/formatUnits.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/ec/index.js","webpack://react-example/../../../../node_modules/viem/_esm/constants/contracts.js","webpack://react-example/../../../../node_modules/sha3/sponge/permute/iota/index.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/uid.js","webpack://react-example/../../../../node_modules/sha3/sponge/permute/theta/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/formatters/formatter.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/formatAbiParameter.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/formatAbiParameters.js","webpack://react-example/../../../../node_modules/es-errors/syntax.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/transaction/assertTransaction.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/transaction/serializeAccessList.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/transaction/serializeTransaction.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/authorization/serializeAuthorizationList.js","webpack://react-example/../../../../node_modules/parse-asn1/fixProc.js","webpack://react-example/../../../../node_modules/inherits/inherits_browser.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/data/concat.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/encodePacked.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/handle.js","webpack://react-example/../../../../node_modules/ecies-geth/dist/lib/src/typescript/browser.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/transaction/getTransactionType.js","webpack://react-example/../../../../node_modules/to-buffer/node_modules/isarray/index.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/binary.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getGasPrice.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/deferred.js","webpack://react-example/../../../../node_modules/browserify-aes/modes/cbc.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/fiberId.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/fiberRefs.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/sendRawTransactionSync.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/hash/keccak256.js","webpack://react-example/../../../../node_modules/sha3/sponge/permute/index.js","webpack://react-example/../../../../node_modules/sha.js/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/observe.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/defaultServices/console.js","webpack://react-example/../../../../node_modules/readable-stream/lib/internal/streams/state.js","webpack://react-example/../../../../node_modules/browserify-des/modes.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Option.js","webpack://react-example/../../../../node_modules/es-errors/range.js","webpack://react-example/../../../../node_modules/possible-typed-array-names/index.js","webpack://react-example/../../../../node_modules/es-define-property/index.js","webpack://react-example/../../../../node_modules/has-property-descriptors/index.js","webpack://react-example/../../../../node_modules/math-intrinsics/abs.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/uninstallFilter.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/decoders/pem.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/sha/256.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/chain/defineChain.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1.js","webpack://react-example/../../../../node_modules/diffie-hellman/browser.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/sha/common.js","webpack://react-example/../../../../node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer/index.js","webpack://react-example/../../../../node_modules/@noble/hashes/esm/crypto.js","webpack://react-example/../../../../node_modules/@noble/hashes/esm/utils.js","webpack://react-example/../../../../node_modules/browserify-aes/modes/ctr.js","webpack://react-example/../../../../node_modules/get-proto/Reflect.getPrototypeOf.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/cursor.js","webpack://react-example/../../../../node_modules/randombytes/browser.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/writeContract.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/transaction/assertRequest.js","webpack://react-example/../../../../node_modules/react/jsx-runtime.js","webpack://react-example/../../../../node_modules/process/browser.js","webpack://react-example/../../../../node_modules/ecies-geth/dist/lib/src/typescript/model.js","webpack://react-example/../../../../node_modules/readable-stream/lib/_stream_passthrough.js","webpack://react-example/../../../../node_modules/sha.js/sha1.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/promise/withCache.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getBlockNumber.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/fee.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/parseEventLogs.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/hashSet.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/parseAbi.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/call.js","webpack://react-example/../../../../node_modules/viem/_esm/constants/contract.js","webpack://react-example/../../../../node_modules/@noble/hashes/esm/hmac.js","webpack://react-example/../../../../node_modules/@noble/curves/esm/abstract/utils.js","webpack://react-example/../../../../node_modules/@noble/curves/esm/abstract/modular.js","webpack://react-example/../../../../node_modules/@noble/curves/esm/abstract/curve.js","webpack://react-example/../../../../node_modules/@noble/curves/esm/abstract/weierstrass.js","webpack://react-example/../../../../node_modules/@noble/curves/esm/_shortw_utils.js","webpack://react-example/../../../../node_modules/@noble/curves/esm/secp256k1.js","webpack://react-example/../../../../node_modules/minimalistic-assert/index.js","webpack://react-example/../../../../node_modules/parse-asn1/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/promise/createBatchScheduler.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/fiberRefs/patch.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Hash.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/poll.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/node_modules/string_decoder/lib/string_decoder.js","webpack://react-example/../../../../node_modules/public-encrypt/xor.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/decoders/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/signature/hashMessage.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/signature/toPrefixedMessage.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/formatters/transaction.js","webpack://react-example/../../../../node_modules/@noble/hashes/esm/_u64.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Context.js","webpack://react-example/../../../../node_modules/react/cjs/react.production.js","webpack://react-example/../../../../node_modules/react/index.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/differ/readonlyArrayPatch.js","webpack://react-example/../../../../node_modules/browserify-aes/modes/ofb.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/differ/hashMapPatch.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/hashMap/config.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/hashMap/bitwise.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/stack.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/hashMap/array.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/hashMap/node.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/hashMap.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getLogs.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/unit/formatEther.js","webpack://react-example/../../../../node_modules/des.js/lib/des/cipher.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/schema/errors.js","webpack://react-example/../../../../node_modules/effect/dist/esm/SchemaAST.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/decodeFunctionResult.js","webpack://react-example/../../../../node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://react-example/../../../../node_modules/secp256k1/elliptic.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/promise/withRetry.js","webpack://react-example/../../../../node_modules/browserify-aes/decrypter.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/encodeDeployData.js","webpack://react-example/../../../../node_modules/pbkdf2/browser.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/encoders/pem.js","webpack://react-example/../../../../node_modules/has-symbols/index.js","webpack://react-example/../../../../node_modules/vm-browserify/index.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/ccip.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/ccip.js","webpack://react-example/../../../../node_modules/react/cjs/react-jsx-runtime.production.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/curves.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Errors.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/data.js","webpack://react-example/../../../../node_modules/browserify-sign/browser/sign.js","webpack://react-example/../../../../node_modules/effect/dist/esm/LogSpan.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Tracer.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/doNotation.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/core-effect.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/fillTransaction.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/base/index.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/node_modules/string_decoder/lib/string_decoder.js","webpack://react-example/../../../../node_modules/pbkdf2/lib/default-encoding.js","webpack://react-example/../../../../node_modules/create-hash/browser.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/defaultServices.js","webpack://react-example/../../../../node_modules/browserify-rsa/node_modules/bn.js/lib/bn.js","webpack://react-example/../../../../node_modules/effect/dist/esm/GlobalValue.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/ens/errors.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/ens/encodedLabelToLabelhash.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/ens/namehash.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/ens/encodeLabelhash.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/ens/labelhash.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/ens/packetToBytes.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/ens.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/ens/avatar/utils.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/ens/getEnsText.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/createAccessList.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/createEventFilter.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/createPendingTransactionFilter.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getCode.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/eip712.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getEip712Domain.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/simulateBlocks.js","webpack://react-example/../../../../node_modules/ox/_esm/core/internal/bytes.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Bytes.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Hash.js","webpack://react-example/../../../../node_modules/ox/_esm/core/internal/lru.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Caches.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Address.js","webpack://react-example/../../../../node_modules/ox/_esm/core/internal/abiItem.js","webpack://react-example/../../../../node_modules/ox/_esm/core/AbiItem.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/parseAbiItem.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Solidity.js","webpack://react-example/../../../../node_modules/ox/_esm/core/internal/abiParameters.js","webpack://react-example/../../../../node_modules/ox/_esm/core/internal/cursor.js","webpack://react-example/../../../../node_modules/ox/_esm/core/AbiParameters.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/parseAbiParameters.js","webpack://react-example/../../../../node_modules/ox/_esm/core/AbiConstructor.js","webpack://react-example/../../../../node_modules/ox/_esm/core/AbiFunction.js","webpack://react-example/../../../../node_modules/ox/_esm/erc6492/SignatureErc6492.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Signature.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Authorization.js","webpack://react-example/../../../../node_modules/ox/_esm/erc8010/SignatureErc8010.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/verifyHash.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/authorization/verifyAuthorization.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/siwe/parseSiweMessage.js","webpack://react-example/../../../../node_modules/viem/_esm/clients/decorators/public.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/createBlockFilter.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getBalance.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getBlobBaseFee.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getBlockTransactionCount.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/ens/getEnsAddress.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/ens/getEnsAvatar.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/ens/avatar/parseAvatarRecord.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/ens/getEnsName.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/ens/getEnsResolver.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getFeeHistory.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/formatters/feeHistory.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getFilterLogs.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getProof.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/formatters/proof.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getStorageAt.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getTransactionConfirmations.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/multicall.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/simulateCalls.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/verifyMessage.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/siwe/verifySiweMessage.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/siwe/validateSiweMessage.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/verifyTypedData.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/watchBlocks.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/watchEvent.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/watchPendingTransactions.js","webpack://react-example/../../../../node_modules/viem/_esm/clients/createPublicClient.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/api.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/runtimeFlagsPatch.js","webpack://react-example/../../../../node_modules/viem/_esm/constants/abis.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/either.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/logSpan.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/chain.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/encoding/fromHex.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/block.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/transport.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/rpc/id.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/promise/withDedupe.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/buildRequest.js","webpack://react-example/../../../../node_modules/viem/_esm/clients/transports/http.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/rpc/http.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/promise/withTimeout.js","webpack://react-example/../../../../node_modules/viem/_esm/clients/transports/createTransport.js","webpack://react-example/../../../../node_modules/public-encrypt/withPublic.js","webpack://react-example/../../../../node_modules/es-object-atoms/index.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Function.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/decodeEventLog.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/opCodes/cause.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/cause.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/sendCalls.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/getCallsStatus.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/prepareAuthorization.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/calls.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/waitForCallsStatus.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/sendTransactionSync.js","webpack://react-example/../../../../node_modules/viem/_esm/clients/decorators/wallet.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/addChain.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/deployContract.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/getAddresses.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/getCapabilities.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/getPermissions.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/requestAddresses.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/requestPermissions.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/sendCallsSync.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/showCallsStatus.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/signAuthorization.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/signMessage.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/signTransaction.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/signTypedData.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/switchChain.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/watchAsset.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/writeContractSync.js","webpack://react-example/../../../../node_modules/viem/_esm/clients/createWalletClient.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/unit/formatGwei.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/version.js","webpack://react-example/../../../../node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/rpc.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js","webpack://react-example/../../../../node_modules/readable-stream/lib/_stream_readable.js","webpack://react-example/../../../../node_modules/readable-stream/errors-browser.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/stateOverride.js","webpack://react-example/../../../../node_modules/browserify-aes/modes/cfb.js","webpack://react-example/../../../../node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://react-example/../../../../node_modules/effect/dist/esm/MutableRef.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/node.js","webpack://react-example/../../../../node_modules/function-bind/index.js","webpack://react-example/../../../../node_modules/sha.js/sha224.js","webpack://react-example/../../../../node_modules/sha3/sponge/permute/rho-pi/rho-offsets/index.js","webpack://react-example/../../../../node_modules/effect/dist/esm/LogLevel.js","webpack://react-example/../../../../node_modules/secp256k1/lib/elliptic.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/formatters/log.js","webpack://react-example/../../../../node_modules/viem/_esm/accounts/utils/publicKeyToAddress.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getTransactionCount.js","webpack://react-example/../../../../node_modules/math-intrinsics/isNaN.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/schema.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/option.js","webpack://react-example/../../../../node_modules/dunder-proto/get.js","webpack://react-example/../../../../node_modules/call-bind-apply-helpers/applyBind.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/data/slice.js","webpack://react-example/../../../../node_modules/math-intrinsics/max.js","webpack://react-example/../../../../node_modules/sha.js/sha512.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getContractEvents.js","webpack://react-example/../../../../node_modules/math-intrinsics/pow.js","webpack://react-example/../../../../node_modules/ieee754/index.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/errors.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/authorization/recoverAuthorizationAddress.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getFilterChanges.js","webpack://react-example/../../../../node_modules/readable-stream/lib/_stream_writable.js","webpack://react-example/../../../../node_modules/react-dom/cjs/react-dom.production.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/errors/getContractError.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Pipeable.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/sha.js","webpack://react-example/../../../../node_modules/browserify-aes/modes/index.js","webpack://react-example/../../../../node_modules/secp256k1/lib/index.js","webpack://react-example/../../../../node_modules/pbkdf2/lib/precondition.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/signature/recoverPublicKey.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/signature/recoverAddress.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Duration.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/address/getAddress.js","webpack://react-example/../../../../node_modules/call-bind-apply-helpers/functionApply.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/clock.js","webpack://react-example/../../../../node_modules/base64-js/index.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/differ.js","webpack://react-example/../../../../node_modules/minimalistic-crypto-utils/lib/utils.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/abi.js","webpack://react-example/../../../../node_modules/to-buffer/index.js","webpack://react-example/../../../../node_modules/react-dom/index.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/sendRawTransaction.js","webpack://react-example/../../../../node_modules/browserify-aes/incr32.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/lru.js","webpack://react-example/../../../../node_modules/set-function-length/index.js","webpack://react-example/../../../../node_modules/buffer-xor/index.js","webpack://react-example/../../../../node_modules/parse-asn1/asn1.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/runtime/signatures.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/differ/hashSetPatch.js","webpack://react-example/../../../../node_modules/safe-buffer/index.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/ec/signature.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Equal.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/request.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/decodeErrorResult.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/base/node.js","webpack://react-example/../../../../node_modules/browserify-aes/modes/cfb8.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/opCodes/deferred.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Ref.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/watchContractEvent.js","webpack://react-example/../../../../node_modules/buffer/index.js","webpack://react-example/../../../../node_modules/gopd/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/hash/toSignatureHash.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/hash/hashSignature.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/hash/normalizeSignature.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/hash/toSignature.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getChainId.js","webpack://react-example/../../../../node_modules/viem/_esm/accounts/utils/parseAccount.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/bn.js/lib/bn.js","webpack://react-example/../../../../node_modules/browserify-aes/authCipher.js","webpack://react-example/../../../../node_modules/is-callable/index.js","webpack://react-example/../../../../node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://react-example/../../../../node_modules/effect/dist/esm/HashSet.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/encoding/toHex.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/base/reporter.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Cause.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/formatAbiItem.js","webpack://react-example/../../../../node_modules/is-typed-array/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/getAbiItem.js","webpack://react-example/../../../../node_modules/pbkdf2/lib/sync-browser.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/readContract.js","webpack://react-example/../../../../node_modules/math-intrinsics/round.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/formatters/transactionReceipt.js","webpack://react-example/../../../../node_modules/effect/dist/esm/RegExp.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/sha/1.js","webpack://react-example/../../../../node_modules/react-dom/cjs/react-dom-client.production.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/watchBlockNumber.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/errors/getNodeError.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/formatters/transactionRequest.js","webpack://react-example/../../../../node_modules/viem/_esm/clients/createClient.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/curve/index.js","webpack://react-example/../../../../node_modules/sha.js/sha.js","webpack://react-example/../../../../node_modules/effect/dist/esm/FiberId.js","webpack://react-example/../../../../node_modules/browserify-aes/modes/cfb1.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/waitForTransactionReceipt.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/log.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/encodeEventTopics.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack://react-example/../../../../node_modules/browserify-cipher/browser.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/opCodes/configError.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/configError.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/configProvider/pathPatch.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/configProvider.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/opCodes/config.js","webpack://react-example/../../../../node_modules/call-bound/index.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/common.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/blob.js","webpack://react-example/../../../../node_modules/sha3/sponge/permute/iota/round-constants/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/encoding/toBytes.js","webpack://react-example/../../../../node_modules/sha3/sponge/permute/rho-pi/index.js","webpack://react-example/../../../../node_modules/evp_bytestokey/index.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/hmac.js","webpack://react-example/../../../../node_modules/cipher-base/index.js","webpack://react-example/../../../../node_modules/des.js/lib/des/utils.js","webpack://react-example/../../../../node_modules/viem/_esm/constants/address.js","webpack://react-example/../../../../node_modules/create-ecdh/browser.js","webpack://react-example/../../../../node_modules/call-bind-apply-helpers/reflectApply.js","webpack://react-example/../../../../node_modules/browserify-aes/aes.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/encoding/toRlp.js","webpack://react-example/../../../../node_modules/pbkdf2/lib/async.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Predicate.js","webpack://react-example/../../../../node_modules/des.js/lib/des/cbc.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/typedData.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/typedData.js","webpack://react-example/../../../../node_modules/get-proto/index.js","webpack://react-example/../../../../node_modules/des.js/lib/des/des.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/address.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/chain/assertCurrentChain.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/data/isHex.js","webpack://react-example/../../../../node_modules/effect/dist/esm/List.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Either.js","webpack://react-example/../../../../node_modules/effect/dist/esm/RuntimeFlagsPatch.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/estimateContractGas.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/transaction.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/data/size.js","webpack://react-example/../../../../node_modules/call-bind-apply-helpers/index.js","webpack://react-example/../../../../node_modules/browserify-aes/browser.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/generated/abis/lightning.js","webpack://react-example/../../../../node_modules/gopd/gOPD.js","webpack://react-example/../../../../node_modules/effect/dist/esm/FiberRefs.js","webpack://react-example/../../../../node_modules/es-errors/eval.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/filters/createFilterRequestScope.js","webpack://react-example/../../../../node_modules/browserify-aes/ghash.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/prepareEncodeFunctionData.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/encodeFunctionData.js","webpack://react-example/../../../../node_modules/math-intrinsics/sign.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/singleShotGen.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/core.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Withdrawal.js","webpack://react-example/../../../../node_modules/ox/_esm/core/BlockOverrides.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js","webpack://react-example/../../../../node_modules/public-encrypt/browser.js","webpack://react-example/../../../../node_modules/des.js/lib/des.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/formatAbiItemWithArgs.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/contract.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/metric/label.js","webpack://react-example/../../../../node_modules/effect/dist/esm/HashMap.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/runtimeFlags.js","webpack://react-example/../../../../node_modules/function-bind/implementation.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Equivalence.js","webpack://react-example/../../../../node_modules/get-proto/Object.getPrototypeOf.js","webpack://react-example/../../../../node_modules/browserify-sign/algos.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/data/pad.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/prepareTransactionRequest.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/regex.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/errors/abiItem.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/utils.js","webpack://react-example/../../../../node_modules/readable-stream/lib/_stream_duplex.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/estimateGas.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/estimateGas.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/errors/getEstimateGasError.js","webpack://react-example/../../../../node_modules/scheduler/cjs/scheduler.production.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/data.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Effectable.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/stateOverride.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/random.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/encodeErrorResult.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/encodeFunctionResult.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/ens/localBatchGatewayRequest.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/decodeFunctionData.js","webpack://react-example/../../../../node_modules/@noble/hashes/esm/sha256.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/blob/commitmentToVersionedHash.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/hash/sha256.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/blob/commitmentsToVersionedHashes.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Utils.js","webpack://react-example/../../../../node_modules/viem/_esm/constants/kzg.js","webpack://react-example/../../../../node_modules/get-intrinsic/index.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/createContractEventFilter.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/curve/mont.js","webpack://react-example/../../../../node_modules/string_decoder/lib/string_decoder.js","webpack://react-example/../../../../node_modules/sha.js/hash.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/utils.js","webpack://react-example/../../../../node_modules/available-typed-arrays/index.js","webpack://react-example/../../../../node_modules/scheduler/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/address/isAddressEqual.js","webpack://react-example/../../../../node_modules/viem/_esm/constants/solidity.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/formatters/extract.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/generated/abis/verifier.js","webpack://react-example/../../../../node_modules/pbkdf2/lib/to-buffer.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Boolean.js","webpack://react-example/../../../../node_modules/sha3/sponge/permute/rho-pi/pi-shuffles/index.js","webpack://react-example/../../../../node_modules/effect/dist/esm/BigDecimal.js","webpack://react-example/../../../../node_modules/effect/dist/esm/BigInt.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/dateTime.js","webpack://react-example/../../../../node_modules/effect/dist/esm/String.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Struct.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Schema.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/encoders/der.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js","webpack://react-example/../../../../node_modules/viem/_esm/op-stack/formatters.js","webpack://react-example/../../../../node_modules/viem/_esm/op-stack/chainConfig.js","webpack://react-example/../../../../node_modules/viem/_esm/op-stack/contracts.js","webpack://react-example/../../../../node_modules/viem/_esm/op-stack/serializers.js","webpack://react-example/../../../../node_modules/viem/_esm/chains/definitions/baseSepolia.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/is-message.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/descriptors.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/wire/varint.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/reflect/scalar.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/reflect/unsafe.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/reflect/guard.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/wkt/wrappers.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/create.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/encryption/encryption.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/generated/abis/lightning-preview.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/wire/base64-encoding.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/reflect/names.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/codegenv2/restore-json-names.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/reflect/nested-types.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/registry.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/wire/text-format.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/codegenv2/boot.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/codegenv2/message.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/reflect/error.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect-check.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/from-binary.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/codegenv2/file.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/codegenv2/service.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/generated/es/inco/kms/lite/v1/types_pb.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/to-binary.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/generated/es/inco/covalidator/compute/v1/types_pb.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/lite/ecies.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/reencryption/eip712.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/attesteddecrypt/types.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/attesteddecrypt/attested-decrypt.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/attestedcompute/types.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/attestedcompute/attested-compute.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/advancedacl/session-key.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/generated/lightning.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/generated/local-node.js","webpack://react-example/../../../../node_modules/viem/_esm/chains/definitions/sepolia.js","webpack://react-example/../../../../node_modules/viem/_esm/chains/definitions/monadTestnet.js","webpack://react-example/../../../../node_modules/viem/_esm/chains/definitions/plasmaTestnet.js","webpack://react-example/../../../../node_modules/viem/_esm/chains/definitions/worldchainSepolia.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/chain.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/viem.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/code.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/code-string.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/connect-error.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol/async-iterable.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/promise-client.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/any-client.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/any_pb.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/wkt/any.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/struct_pb.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/extensions.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/from-json.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/context-values.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/to-json.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol/serialization.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/interceptor.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol/signals.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol/normalize.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol/run-call.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol/create-method-url.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol/envelope.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol/limit-io.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/headers.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/content-type.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/request-header.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/version.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/validate-response.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/http-status.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/error-json.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/trailer-mux.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/end-stream.js","webpack://react-example/../../../../node_modules/@connectrpc/connect-web/dist/esm/connect-transport.js","webpack://react-example/../../../../node_modules/@connectrpc/connect-web/dist/esm/assert-fetch-api.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/get-request.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/http-headers.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol/compression.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/kms/client.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/kms/quorumClient.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/retry.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/kms/thresholdPromises.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/local/local-node.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/lite/lightning.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/lite/hadu.js","webpack://react-example/../../../../node_modules/create-hmac/legacy.js"],"sourcesContent":["'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","var constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n var res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n var value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","import { InvalidBytesBooleanError } from '../../errors/encoding.js';\nimport { trim } from '../data/trim.js';\nimport { assertSize, hexToBigInt, hexToNumber, } from './fromHex.js';\nimport { bytesToHex } from './toHex.js';\n/**\n * Decodes a byte array into a UTF-8 string, hex value, number, bigint or boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes\n * - Example: https://viem.sh/docs/utilities/fromBytes#usage\n *\n * @param bytes Byte array to decode.\n * @param toOrOpts Type to convert to or options.\n * @returns Decoded value.\n *\n * @example\n * import { fromBytes } from 'viem'\n * const data = fromBytes(new Uint8Array([1, 164]), 'number')\n * // 420\n *\n * @example\n * import { fromBytes } from 'viem'\n * const data = fromBytes(\n * new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\n * 'string'\n * )\n * // 'Hello world'\n */\nexport function fromBytes(bytes, toOrOpts) {\n const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts;\n const to = opts.to;\n if (to === 'number')\n return bytesToNumber(bytes, opts);\n if (to === 'bigint')\n return bytesToBigInt(bytes, opts);\n if (to === 'boolean')\n return bytesToBool(bytes, opts);\n if (to === 'string')\n return bytesToString(bytes, opts);\n return bytesToHex(bytes, opts);\n}\n/**\n * Decodes a byte array into a bigint.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes#bytestobigint\n *\n * @param bytes Byte array to decode.\n * @param opts Options.\n * @returns BigInt value.\n *\n * @example\n * import { bytesToBigInt } from 'viem'\n * const data = bytesToBigInt(new Uint8Array([1, 164]))\n * // 420n\n */\nexport function bytesToBigInt(bytes, opts = {}) {\n if (typeof opts.size !== 'undefined')\n assertSize(bytes, { size: opts.size });\n const hex = bytesToHex(bytes, opts);\n return hexToBigInt(hex, opts);\n}\n/**\n * Decodes a byte array into a boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes#bytestobool\n *\n * @param bytes Byte array to decode.\n * @param opts Options.\n * @returns Boolean value.\n *\n * @example\n * import { bytesToBool } from 'viem'\n * const data = bytesToBool(new Uint8Array([1]))\n * // true\n */\nexport function bytesToBool(bytes_, opts = {}) {\n let bytes = bytes_;\n if (typeof opts.size !== 'undefined') {\n assertSize(bytes, { size: opts.size });\n bytes = trim(bytes);\n }\n if (bytes.length > 1 || bytes[0] > 1)\n throw new InvalidBytesBooleanError(bytes);\n return Boolean(bytes[0]);\n}\n/**\n * Decodes a byte array into a number.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes#bytestonumber\n *\n * @param bytes Byte array to decode.\n * @param opts Options.\n * @returns Number value.\n *\n * @example\n * import { bytesToNumber } from 'viem'\n * const data = bytesToNumber(new Uint8Array([1, 164]))\n * // 420\n */\nexport function bytesToNumber(bytes, opts = {}) {\n if (typeof opts.size !== 'undefined')\n assertSize(bytes, { size: opts.size });\n const hex = bytesToHex(bytes, opts);\n return hexToNumber(hex, opts);\n}\n/**\n * Decodes a byte array into a UTF-8 string.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes#bytestostring\n *\n * @param bytes Byte array to decode.\n * @param opts Options.\n * @returns String value.\n *\n * @example\n * import { bytesToString } from 'viem'\n * const data = bytesToString(new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))\n * // 'Hello world'\n */\nexport function bytesToString(bytes_, opts = {}) {\n let bytes = bytes_;\n if (typeof opts.size !== 'undefined') {\n assertSize(bytes, { size: opts.size });\n bytes = trim(bytes, { dir: 'right' });\n }\n return new TextDecoder().decode(bytes);\n}\n//# sourceMappingURL=fromBytes.js.map","import { AbiDecodingDataSizeTooSmallError, AbiDecodingZeroDataError, InvalidAbiDecodingTypeError, } from '../../errors/abi.js';\nimport { checksumAddress, } from '../address/getAddress.js';\nimport { createCursor, } from '../cursor.js';\nimport { size } from '../data/size.js';\nimport { sliceBytes } from '../data/slice.js';\nimport { trim } from '../data/trim.js';\nimport { bytesToBigInt, bytesToBool, bytesToNumber, bytesToString, } from '../encoding/fromBytes.js';\nimport { hexToBytes } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\nimport { getArrayComponents } from './encodeAbiParameters.js';\nexport function decodeAbiParameters(params, data) {\n const bytes = typeof data === 'string' ? hexToBytes(data) : data;\n const cursor = createCursor(bytes);\n if (size(bytes) === 0 && params.length > 0)\n throw new AbiDecodingZeroDataError();\n if (size(data) && size(data) < 32)\n throw new AbiDecodingDataSizeTooSmallError({\n data: typeof data === 'string' ? data : bytesToHex(data),\n params: params,\n size: size(data),\n });\n let consumed = 0;\n const values = [];\n for (let i = 0; i < params.length; ++i) {\n const param = params[i];\n cursor.setPosition(consumed);\n const [data, consumed_] = decodeParameter(cursor, param, {\n staticPosition: 0,\n });\n consumed += consumed_;\n values.push(data);\n }\n return values;\n}\nfunction decodeParameter(cursor, param, { staticPosition }) {\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents) {\n const [length, type] = arrayComponents;\n return decodeArray(cursor, { ...param, type }, { length, staticPosition });\n }\n if (param.type === 'tuple')\n return decodeTuple(cursor, param, { staticPosition });\n if (param.type === 'address')\n return decodeAddress(cursor);\n if (param.type === 'bool')\n return decodeBool(cursor);\n if (param.type.startsWith('bytes'))\n return decodeBytes(cursor, param, { staticPosition });\n if (param.type.startsWith('uint') || param.type.startsWith('int'))\n return decodeNumber(cursor, param);\n if (param.type === 'string')\n return decodeString(cursor, { staticPosition });\n throw new InvalidAbiDecodingTypeError(param.type, {\n docsPath: '/docs/contract/decodeAbiParameters',\n });\n}\n////////////////////////////////////////////////////////////////////\n// Type Decoders\nconst sizeOfLength = 32;\nconst sizeOfOffset = 32;\nfunction decodeAddress(cursor) {\n const value = cursor.readBytes(32);\n return [checksumAddress(bytesToHex(sliceBytes(value, -20))), 32];\n}\nfunction decodeArray(cursor, param, { length, staticPosition }) {\n // If the length of the array is not known in advance (dynamic array),\n // this means we will need to wonder off to the pointer and decode.\n if (!length) {\n // Dealing with a dynamic type, so get the offset of the array data.\n const offset = bytesToNumber(cursor.readBytes(sizeOfOffset));\n // Start is the static position of current slot + offset.\n const start = staticPosition + offset;\n const startOfData = start + sizeOfLength;\n // Get the length of the array from the offset.\n cursor.setPosition(start);\n const length = bytesToNumber(cursor.readBytes(sizeOfLength));\n // Check if the array has any dynamic children.\n const dynamicChild = hasDynamicChild(param);\n let consumed = 0;\n const value = [];\n for (let i = 0; i < length; ++i) {\n // If any of the children is dynamic, then all elements will be offset pointer, thus size of one slot (32 bytes).\n // Otherwise, elements will be the size of their encoding (consumed bytes).\n cursor.setPosition(startOfData + (dynamicChild ? i * 32 : consumed));\n const [data, consumed_] = decodeParameter(cursor, param, {\n staticPosition: startOfData,\n });\n consumed += consumed_;\n value.push(data);\n }\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n }\n // If the length of the array is known in advance,\n // and the length of an element deeply nested in the array is not known,\n // we need to decode the offset of the array data.\n if (hasDynamicChild(param)) {\n // Dealing with dynamic types, so get the offset of the array data.\n const offset = bytesToNumber(cursor.readBytes(sizeOfOffset));\n // Start is the static position of current slot + offset.\n const start = staticPosition + offset;\n const value = [];\n for (let i = 0; i < length; ++i) {\n // Move cursor along to the next slot (next offset pointer).\n cursor.setPosition(start + i * 32);\n const [data] = decodeParameter(cursor, param, {\n staticPosition: start,\n });\n value.push(data);\n }\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n }\n // If the length of the array is known in advance and the array is deeply static,\n // then we can just decode each element in sequence.\n let consumed = 0;\n const value = [];\n for (let i = 0; i < length; ++i) {\n const [data, consumed_] = decodeParameter(cursor, param, {\n staticPosition: staticPosition + consumed,\n });\n consumed += consumed_;\n value.push(data);\n }\n return [value, consumed];\n}\nfunction decodeBool(cursor) {\n return [bytesToBool(cursor.readBytes(32), { size: 32 }), 32];\n}\nfunction decodeBytes(cursor, param, { staticPosition }) {\n const [_, size] = param.type.split('bytes');\n if (!size) {\n // Dealing with dynamic types, so get the offset of the bytes data.\n const offset = bytesToNumber(cursor.readBytes(32));\n // Set position of the cursor to start of bytes data.\n cursor.setPosition(staticPosition + offset);\n const length = bytesToNumber(cursor.readBytes(32));\n // If there is no length, we have zero data.\n if (length === 0) {\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return ['0x', 32];\n }\n const data = cursor.readBytes(length);\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [bytesToHex(data), 32];\n }\n const value = bytesToHex(cursor.readBytes(Number.parseInt(size, 10), 32));\n return [value, 32];\n}\nfunction decodeNumber(cursor, param) {\n const signed = param.type.startsWith('int');\n const size = Number.parseInt(param.type.split('int')[1] || '256', 10);\n const value = cursor.readBytes(32);\n return [\n size > 48\n ? bytesToBigInt(value, { signed })\n : bytesToNumber(value, { signed }),\n 32,\n ];\n}\nfunction decodeTuple(cursor, param, { staticPosition }) {\n // Tuples can have unnamed components (i.e. they are arrays), so we must\n // determine whether the tuple is named or unnamed. In the case of a named\n // tuple, the value will be an object where each property is the name of the\n // component. In the case of an unnamed tuple, the value will be an array.\n const hasUnnamedChild = param.components.length === 0 || param.components.some(({ name }) => !name);\n // Initialize the value to an object or an array, depending on whether the\n // tuple is named or unnamed.\n const value = hasUnnamedChild ? [] : {};\n let consumed = 0;\n // If the tuple has a dynamic child, we must first decode the offset to the\n // tuple data.\n if (hasDynamicChild(param)) {\n // Dealing with dynamic types, so get the offset of the tuple data.\n const offset = bytesToNumber(cursor.readBytes(sizeOfOffset));\n // Start is the static position of referencing slot + offset.\n const start = staticPosition + offset;\n for (let i = 0; i < param.components.length; ++i) {\n const component = param.components[i];\n cursor.setPosition(start + consumed);\n const [data, consumed_] = decodeParameter(cursor, component, {\n staticPosition: start,\n });\n consumed += consumed_;\n value[hasUnnamedChild ? i : component?.name] = data;\n }\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n }\n // If the tuple has static children, we can just decode each component\n // in sequence.\n for (let i = 0; i < param.components.length; ++i) {\n const component = param.components[i];\n const [data, consumed_] = decodeParameter(cursor, component, {\n staticPosition,\n });\n value[hasUnnamedChild ? i : component?.name] = data;\n consumed += consumed_;\n }\n return [value, consumed];\n}\nfunction decodeString(cursor, { staticPosition }) {\n // Get offset to start of string data.\n const offset = bytesToNumber(cursor.readBytes(32));\n // Start is the static position of current slot + offset.\n const start = staticPosition + offset;\n cursor.setPosition(start);\n const length = bytesToNumber(cursor.readBytes(32));\n // If there is no length, we have zero data (empty string).\n if (length === 0) {\n cursor.setPosition(staticPosition + 32);\n return ['', 32];\n }\n const data = cursor.readBytes(length, 32);\n const value = bytesToString(trim(data));\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n}\nfunction hasDynamicChild(param) {\n const { type } = param;\n if (type === 'string')\n return true;\n if (type === 'bytes')\n return true;\n if (type.endsWith('[]'))\n return true;\n if (type === 'tuple')\n return param.components?.some(hasDynamicChild);\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents &&\n hasDynamicChild({ ...param, type: arrayComponents[1] }))\n return true;\n return false;\n}\n//# sourceMappingURL=decodeAbiParameters.js.map","import { LruMap } from '../lru.js';\nimport { checksumAddress } from './getAddress.js';\nconst addressRegex = /^0x[a-fA-F0-9]{40}$/;\n/** @internal */\nexport const isAddressCache = /*#__PURE__*/ new LruMap(8192);\nexport function isAddress(address, options) {\n const { strict = true } = options ?? {};\n const cacheKey = `${address}.${strict}`;\n if (isAddressCache.has(cacheKey))\n return isAddressCache.get(cacheKey);\n const result = (() => {\n if (!addressRegex.test(address))\n return false;\n if (address.toLowerCase() === address)\n return true;\n if (strict)\n return checksumAddress(address) === address;\n return true;\n })();\n isAddressCache.set(cacheKey, result);\n return result;\n}\n//# sourceMappingURL=isAddress.js.map","module.exports = require('events').EventEmitter;\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","export const stringify = (value, replacer, space) => JSON.stringify(value, (key, value_) => {\n const value = typeof value_ === 'bigint' ? value_.toString() : value_;\n return typeof replacer === 'function' ? replacer(key, value) : value;\n}, space);\n//# sourceMappingURL=stringify.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar toBuffer = require('./to-buffer');\nvar Transform = require('readable-stream').Transform;\nvar inherits = require('inherits');\n\nfunction HashBase(blockSize) {\n\tTransform.call(this);\n\n\tthis._block = Buffer.allocUnsafe(blockSize);\n\tthis._blockSize = blockSize;\n\tthis._blockOffset = 0;\n\tthis._length = [0, 0, 0, 0];\n\n\tthis._finalized = false;\n}\n\ninherits(HashBase, Transform);\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n\tvar error = null;\n\ttry {\n\t\tthis.update(chunk, encoding);\n\t} catch (err) {\n\t\terror = err;\n\t}\n\n\tcallback(error);\n};\n\nHashBase.prototype._flush = function (callback) {\n\tvar error = null;\n\ttry {\n\t\tthis.push(this.digest());\n\t} catch (err) {\n\t\terror = err;\n\t}\n\n\tcallback(error);\n};\n\nHashBase.prototype.update = function (data, encoding) {\n\tif (this._finalized) {\n\t\tthrow new Error('Digest already called');\n\t}\n\n\tvar dataBuffer = toBuffer(data, encoding); // asserts correct input type\n\n\t// consume data\n\tvar block = this._block;\n\tvar offset = 0;\n\twhile (this._blockOffset + dataBuffer.length - offset >= this._blockSize) {\n\t\tfor (var i = this._blockOffset; i < this._blockSize;) {\n\t\t\tblock[i] = dataBuffer[offset];\n\t\t\ti += 1;\n\t\t\toffset += 1;\n\t\t}\n\t\tthis._update();\n\t\tthis._blockOffset = 0;\n\t}\n\twhile (offset < dataBuffer.length) {\n\t\tblock[this._blockOffset] = dataBuffer[offset];\n\t\tthis._blockOffset += 1;\n\t\toffset += 1;\n\t}\n\n\t// update length\n\tfor (var j = 0, carry = dataBuffer.length * 8; carry > 0; ++j) {\n\t\tthis._length[j] += carry;\n\t\tcarry = (this._length[j] / 0x0100000000) | 0;\n\t\tif (carry > 0) {\n\t\t\tthis._length[j] -= 0x0100000000 * carry;\n\t\t}\n\t}\n\n\treturn this;\n};\n\nHashBase.prototype._update = function () {\n\tthrow new Error('_update is not implemented');\n};\n\nHashBase.prototype.digest = function (encoding) {\n\tif (this._finalized) {\n\t\tthrow new Error('Digest already called');\n\t}\n\tthis._finalized = true;\n\n\tvar digest = this._digest();\n\tif (encoding !== undefined) {\n\t\tdigest = digest.toString(encoding);\n\t}\n\n\t// reset state\n\tthis._block.fill(0);\n\tthis._blockOffset = 0;\n\tfor (var i = 0; i < 4; ++i) {\n\t\tthis._length[i] = 0;\n\t}\n\n\treturn digest;\n};\n\nHashBase.prototype._digest = function () {\n\tthrow new Error('_digest is not implemented');\n};\n\nmodule.exports = HashBase;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","'use strict';\n\nvar $TypeError = require('es-errors/type');\n\nvar callBound = require('call-bound');\n\n/** @type {undefined | ((thisArg: import('.').TypedArray) => Buffer)} */\nvar $typedArrayBuffer = callBound('TypedArray.prototype.buffer', true);\n\nvar isTypedArray = require('is-typed-array');\n\n/** @type {import('.')} */\n// node <= 0.10, < 0.11.4 has a nonconfigurable own property instead of a prototype getter\nmodule.exports = $typedArrayBuffer || function typedArrayBuffer(x) {\n\tif (!isTypedArray(x)) {\n\t\tthrow new $TypeError('Not a Typed Array');\n\t}\n\treturn x.buffer;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","export const version = '2.43.5';\n//# sourceMappingURL=version.js.map","import { version } from './version.js';\nlet errorConfig = {\n getDocsUrl: ({ docsBaseUrl, docsPath = '', docsSlug, }) => docsPath\n ? `${docsBaseUrl ?? 'https://viem.sh'}${docsPath}${docsSlug ? `#${docsSlug}` : ''}`\n : undefined,\n version: `viem@${version}`,\n};\nexport function setErrorConfig(config) {\n errorConfig = config;\n}\nexport class BaseError extends Error {\n constructor(shortMessage, args = {}) {\n const details = (() => {\n if (args.cause instanceof BaseError)\n return args.cause.details;\n if (args.cause?.message)\n return args.cause.message;\n return args.details;\n })();\n const docsPath = (() => {\n if (args.cause instanceof BaseError)\n return args.cause.docsPath || args.docsPath;\n return args.docsPath;\n })();\n const docsUrl = errorConfig.getDocsUrl?.({ ...args, docsPath });\n const message = [\n shortMessage || 'An error occurred.',\n '',\n ...(args.metaMessages ? [...args.metaMessages, ''] : []),\n ...(docsUrl ? [`Docs: ${docsUrl}`] : []),\n ...(details ? [`Details: ${details}`] : []),\n ...(errorConfig.version ? [`Version: ${errorConfig.version}`] : []),\n ].join('\\n');\n super(message, args.cause ? { cause: args.cause } : undefined);\n Object.defineProperty(this, \"details\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"docsPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"metaMessages\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"shortMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'BaseError'\n });\n this.details = details;\n this.docsPath = docsPath;\n this.metaMessages = args.metaMessages;\n this.name = args.name ?? this.name;\n this.shortMessage = shortMessage;\n this.version = version;\n }\n walk(fn) {\n return walk(this, fn);\n }\n}\nfunction walk(err, fn) {\n if (fn?.(err))\n return err;\n if (err &&\n typeof err === 'object' &&\n 'cause' in err &&\n err.cause !== undefined)\n return walk(err.cause, fn);\n return fn ? null : err;\n}\n//# sourceMappingURL=base.js.map","/** @internal */\nexport function withResolvers() {\n let resolve = () => undefined;\n let reject = () => undefined;\n const promise = new Promise((resolve_, reject_) => {\n resolve = resolve_;\n reject = reject_;\n });\n return { promise, resolve, reject };\n}\n//# sourceMappingURL=withResolvers.js.map","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar toBuffer = require('to-buffer');\n\nvar useUint8Array = typeof Uint8Array !== 'undefined';\nvar useArrayBuffer = useUint8Array && typeof ArrayBuffer !== 'undefined';\nvar isView = useArrayBuffer && ArrayBuffer.isView;\n\nmodule.exports = function (thing, encoding) {\n\tif (\n\t\ttypeof thing === 'string'\n || Buffer.isBuffer(thing)\n || (useUint8Array && thing instanceof Uint8Array)\n || (isView && isView(thing))\n\t) {\n\t\treturn toBuffer(thing, encoding);\n\t}\n\tthrow new TypeError('The \"data\" argument must be a string, a Buffer, a Uint8Array, or a DataView');\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\n/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [\n\t0x428A2F98,\n\t0x71374491,\n\t0xB5C0FBCF,\n\t0xE9B5DBA5,\n\t0x3956C25B,\n\t0x59F111F1,\n\t0x923F82A4,\n\t0xAB1C5ED5,\n\t0xD807AA98,\n\t0x12835B01,\n\t0x243185BE,\n\t0x550C7DC3,\n\t0x72BE5D74,\n\t0x80DEB1FE,\n\t0x9BDC06A7,\n\t0xC19BF174,\n\t0xE49B69C1,\n\t0xEFBE4786,\n\t0x0FC19DC6,\n\t0x240CA1CC,\n\t0x2DE92C6F,\n\t0x4A7484AA,\n\t0x5CB0A9DC,\n\t0x76F988DA,\n\t0x983E5152,\n\t0xA831C66D,\n\t0xB00327C8,\n\t0xBF597FC7,\n\t0xC6E00BF3,\n\t0xD5A79147,\n\t0x06CA6351,\n\t0x14292967,\n\t0x27B70A85,\n\t0x2E1B2138,\n\t0x4D2C6DFC,\n\t0x53380D13,\n\t0x650A7354,\n\t0x766A0ABB,\n\t0x81C2C92E,\n\t0x92722C85,\n\t0xA2BFE8A1,\n\t0xA81A664B,\n\t0xC24B8B70,\n\t0xC76C51A3,\n\t0xD192E819,\n\t0xD6990624,\n\t0xF40E3585,\n\t0x106AA070,\n\t0x19A4C116,\n\t0x1E376C08,\n\t0x2748774C,\n\t0x34B0BCB5,\n\t0x391C0CB3,\n\t0x4ED8AA4A,\n\t0x5B9CCA4F,\n\t0x682E6FF3,\n\t0x748F82EE,\n\t0x78A5636F,\n\t0x84C87814,\n\t0x8CC70208,\n\t0x90BEFFFA,\n\t0xA4506CEB,\n\t0xBEF9A3F7,\n\t0xC67178F2\n];\n\nvar W = new Array(64);\n\nfunction Sha256() {\n\tthis.init();\n\n\tthis._w = W; // new Array(64)\n\n\tHash.call(this, 64, 56);\n}\n\ninherits(Sha256, Hash);\n\nSha256.prototype.init = function () {\n\tthis._a = 0x6a09e667;\n\tthis._b = 0xbb67ae85;\n\tthis._c = 0x3c6ef372;\n\tthis._d = 0xa54ff53a;\n\tthis._e = 0x510e527f;\n\tthis._f = 0x9b05688c;\n\tthis._g = 0x1f83d9ab;\n\tthis._h = 0x5be0cd19;\n\n\treturn this;\n};\n\nfunction ch(x, y, z) {\n\treturn z ^ (x & (y ^ z));\n}\n\nfunction maj(x, y, z) {\n\treturn (x & y) | (z & (x | y));\n}\n\nfunction sigma0(x) {\n\treturn ((x >>> 2) | (x << 30)) ^ ((x >>> 13) | (x << 19)) ^ ((x >>> 22) | (x << 10));\n}\n\nfunction sigma1(x) {\n\treturn ((x >>> 6) | (x << 26)) ^ ((x >>> 11) | (x << 21)) ^ ((x >>> 25) | (x << 7));\n}\n\nfunction gamma0(x) {\n\treturn ((x >>> 7) | (x << 25)) ^ ((x >>> 18) | (x << 14)) ^ (x >>> 3);\n}\n\nfunction gamma1(x) {\n\treturn ((x >>> 17) | (x << 15)) ^ ((x >>> 19) | (x << 13)) ^ (x >>> 10);\n}\n\nSha256.prototype._update = function (M) {\n\tvar w = this._w;\n\n\tvar a = this._a | 0;\n\tvar b = this._b | 0;\n\tvar c = this._c | 0;\n\tvar d = this._d | 0;\n\tvar e = this._e | 0;\n\tvar f = this._f | 0;\n\tvar g = this._g | 0;\n\tvar h = this._h | 0;\n\n\tfor (var i = 0; i < 16; ++i) {\n\t\tw[i] = M.readInt32BE(i * 4);\n\t}\n\tfor (; i < 64; ++i) {\n\t\tw[i] = (gamma1(w[i - 2]) + w[i - 7] + gamma0(w[i - 15]) + w[i - 16]) | 0;\n\t}\n\n\tfor (var j = 0; j < 64; ++j) {\n\t\tvar T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + w[j]) | 0;\n\t\tvar T2 = (sigma0(a) + maj(a, b, c)) | 0;\n\n\t\th = g;\n\t\tg = f;\n\t\tf = e;\n\t\te = (d + T1) | 0;\n\t\td = c;\n\t\tc = b;\n\t\tb = a;\n\t\ta = (T1 + T2) | 0;\n\t}\n\n\tthis._a = (a + this._a) | 0;\n\tthis._b = (b + this._b) | 0;\n\tthis._c = (c + this._c) | 0;\n\tthis._d = (d + this._d) | 0;\n\tthis._e = (e + this._e) | 0;\n\tthis._f = (f + this._f) | 0;\n\tthis._g = (g + this._g) | 0;\n\tthis._h = (h + this._h) | 0;\n};\n\nSha256.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(32);\n\n\tH.writeInt32BE(this._a, 0);\n\tH.writeInt32BE(this._b, 4);\n\tH.writeInt32BE(this._c, 8);\n\tH.writeInt32BE(this._d, 12);\n\tH.writeInt32BE(this._e, 16);\n\tH.writeInt32BE(this._f, 20);\n\tH.writeInt32BE(this._g, 24);\n\tH.writeInt32BE(this._h, 28);\n\n\treturn H;\n};\n\nmodule.exports = Sha256;\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError, AccountTypeNotSupportedError, } from '../../errors/account.js';\nimport { BaseError } from '../../errors/base.js';\nimport { recoverAuthorizationAddress, } from '../../utils/authorization/recoverAuthorizationAddress.js';\nimport { assertCurrentChain, } from '../../utils/chain/assertCurrentChain.js';\nimport { getTransactionError, } from '../../utils/errors/getTransactionError.js';\nimport { extract } from '../../utils/formatters/extract.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { LruMap } from '../../utils/lru.js';\nimport { assertRequest, } from '../../utils/transaction/assertRequest.js';\nimport { getChainId } from '../public/getChainId.js';\nimport { defaultParameters, prepareTransactionRequest, } from './prepareTransactionRequest.js';\nimport { sendRawTransaction, } from './sendRawTransaction.js';\nconst supportsWalletNamespace = new LruMap(128);\n/**\n * Creates, signs, and sends a new transaction to the network.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendTransaction\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\n * - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\n *\n * @param client - Client to use\n * @param parameters - {@link SendTransactionParameters}\n * @returns The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendTransaction } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const hash = await sendTransaction(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 1000000000000000000n,\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { sendTransaction } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const hash = await sendTransaction(client, {\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 1000000000000000000n,\n * })\n */\nexport async function sendTransaction(client, parameters) {\n const { account: account_ = client.account, chain = client.chain, accessList, authorizationList, blobs, data, gas, gasPrice, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, nonce, type, value, ...rest } = parameters;\n if (typeof account_ === 'undefined')\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/sendTransaction',\n });\n const account = account_ ? parseAccount(account_) : null;\n try {\n assertRequest(parameters);\n const to = await (async () => {\n // If `to` exists on the parameters, use that.\n if (parameters.to)\n return parameters.to;\n // If `to` is null, we are sending a deployment transaction.\n if (parameters.to === null)\n return undefined;\n // If no `to` exists, and we are sending a EIP-7702 transaction, use the\n // address of the first authorization in the list.\n if (authorizationList && authorizationList.length > 0)\n return await recoverAuthorizationAddress({\n authorization: authorizationList[0],\n }).catch(() => {\n throw new BaseError('`to` is required. Could not infer from `authorizationList`.');\n });\n // Otherwise, we are sending a deployment transaction.\n return undefined;\n })();\n if (account?.type === 'json-rpc' || account === null) {\n let chainId;\n if (chain !== null) {\n chainId = await getAction(client, getChainId, 'getChainId')({});\n assertCurrentChain({\n currentChainId: chainId,\n chain,\n });\n }\n const chainFormat = client.chain?.formatters?.transactionRequest?.format;\n const format = chainFormat || formatTransactionRequest;\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n accessList,\n account,\n authorizationList,\n blobs,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n type,\n value,\n }, 'sendTransaction');\n const isWalletNamespaceSupported = supportsWalletNamespace.get(client.uid);\n const method = isWalletNamespaceSupported\n ? 'wallet_sendTransaction'\n : 'eth_sendTransaction';\n try {\n return await client.request({\n method,\n params: [request],\n }, { retryCount: 0 });\n }\n catch (e) {\n if (isWalletNamespaceSupported === false)\n throw e;\n const error = e;\n // If the transport does not support the method or input, attempt to use the\n // `wallet_sendTransaction` method.\n if (error.name === 'InvalidInputRpcError' ||\n error.name === 'InvalidParamsRpcError' ||\n error.name === 'MethodNotFoundRpcError' ||\n error.name === 'MethodNotSupportedRpcError') {\n return await client\n .request({\n method: 'wallet_sendTransaction',\n params: [request],\n }, { retryCount: 0 })\n .then((hash) => {\n supportsWalletNamespace.set(client.uid, true);\n return hash;\n })\n .catch((e) => {\n const walletNamespaceError = e;\n if (walletNamespaceError.name === 'MethodNotFoundRpcError' ||\n walletNamespaceError.name === 'MethodNotSupportedRpcError') {\n supportsWalletNamespace.set(client.uid, false);\n throw error;\n }\n throw walletNamespaceError;\n });\n }\n throw error;\n }\n }\n if (account?.type === 'local') {\n // Prepare the request for signing (assign appropriate fees, etc.)\n const request = await getAction(client, prepareTransactionRequest, 'prepareTransactionRequest')({\n account,\n accessList,\n authorizationList,\n blobs,\n chain,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n nonceManager: account.nonceManager,\n parameters: [...defaultParameters, 'sidecars'],\n type,\n value,\n ...rest,\n to,\n });\n const serializer = chain?.serializers?.transaction;\n const serializedTransaction = (await account.signTransaction(request, {\n serializer,\n }));\n return await getAction(client, sendRawTransaction, 'sendRawTransaction')({\n serializedTransaction,\n });\n }\n if (account?.type === 'smart')\n throw new AccountTypeNotSupportedError({\n metaMessages: [\n 'Consider using the `sendUserOperation` Action instead.',\n ],\n docsPath: '/docs/actions/bundler/sendUserOperation',\n type: 'smart',\n });\n throw new AccountTypeNotSupportedError({\n docsPath: '/docs/actions/wallet/sendTransaction',\n type: account?.type,\n });\n }\n catch (err) {\n if (err instanceof AccountTypeNotSupportedError)\n throw err;\n throw getTransactionError(err, {\n ...parameters,\n account,\n chain: parameters.chain || undefined,\n });\n }\n}\n//# sourceMappingURL=sendTransaction.js.map","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","import * as Effectable from \"../Effectable.js\";\nimport { dual } from \"../Function.js\";\nimport * as MutableRef from \"../MutableRef.js\";\nimport * as Option from \"../Option.js\";\nimport * as Readable from \"../Readable.js\";\nimport * as core from \"./core.js\";\n/** @internal */\nexport const RefTypeId = /*#__PURE__*/Symbol.for(\"effect/Ref\");\n/** @internal */\nexport const refVariance = {\n /* c8 ignore next */\n _A: _ => _\n};\nclass RefImpl extends Effectable.Class {\n ref;\n commit() {\n return this.get;\n }\n [RefTypeId] = refVariance;\n [Readable.TypeId] = Readable.TypeId;\n constructor(ref) {\n super();\n this.ref = ref;\n this.get = core.sync(() => MutableRef.get(this.ref));\n }\n get;\n modify(f) {\n return core.sync(() => {\n const current = MutableRef.get(this.ref);\n const [b, a] = f(current);\n if (current !== a) {\n MutableRef.set(a)(this.ref);\n }\n return b;\n });\n }\n}\n/** @internal */\nexport const unsafeMake = value => new RefImpl(MutableRef.make(value));\n/** @internal */\nexport const make = value => core.sync(() => unsafeMake(value));\n/** @internal */\nexport const get = self => self.get;\n/** @internal */\nexport const set = /*#__PURE__*/dual(2, (self, value) => self.modify(() => [void 0, value]));\n/** @internal */\nexport const getAndSet = /*#__PURE__*/dual(2, (self, value) => self.modify(a => [a, value]));\n/** @internal */\nexport const getAndUpdate = /*#__PURE__*/dual(2, (self, f) => self.modify(a => [a, f(a)]));\n/** @internal */\nexport const getAndUpdateSome = /*#__PURE__*/dual(2, (self, pf) => self.modify(value => {\n const option = pf(value);\n switch (option._tag) {\n case \"None\":\n {\n return [value, value];\n }\n case \"Some\":\n {\n return [value, option.value];\n }\n }\n}));\n/** @internal */\nexport const setAndGet = /*#__PURE__*/dual(2, (self, value) => self.modify(() => [value, value]));\n/** @internal */\nexport const modify = /*#__PURE__*/dual(2, (self, f) => self.modify(f));\n/** @internal */\nexport const modifySome = /*#__PURE__*/dual(3, (self, fallback, pf) => self.modify(value => {\n const option = pf(value);\n switch (option._tag) {\n case \"None\":\n {\n return [fallback, value];\n }\n case \"Some\":\n {\n return option.value;\n }\n }\n}));\n/** @internal */\nexport const update = /*#__PURE__*/dual(2, (self, f) => self.modify(a => [void 0, f(a)]));\n/** @internal */\nexport const updateAndGet = /*#__PURE__*/dual(2, (self, f) => self.modify(a => {\n const result = f(a);\n return [result, result];\n}));\n/** @internal */\nexport const updateSome = /*#__PURE__*/dual(2, (self, f) => self.modify(a => [void 0, Option.match(f(a), {\n onNone: () => a,\n onSome: b => b\n})]));\n/** @internal */\nexport const updateSomeAndGet = /*#__PURE__*/dual(2, (self, pf) => self.modify(value => {\n const option = pf(value);\n switch (option._tag) {\n case \"None\":\n {\n return [value, value];\n }\n case \"Some\":\n {\n return [option.value, option.value];\n }\n }\n}));\n/** @internal */\nexport const unsafeGet = self => MutableRef.get(self.ref);\n//# sourceMappingURL=ref.js.map","'use strict';\n\nvar setFunctionLength = require('set-function-length');\n\nvar $defineProperty = require('es-define-property');\n\nvar callBindBasic = require('call-bind-apply-helpers');\nvar applyBind = require('call-bind-apply-helpers/applyBind');\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = callBindBasic(arguments);\n\tvar adjustedLength = originalFunction.length - (arguments.length - 1);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + (adjustedLength > 0 ? adjustedLength : 0),\n\t\ttrue\n\t);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","import { concatHex } from '../data/concat.js';\nimport { hexToBytes } from '../encoding/toBytes.js';\nimport { numberToHex } from '../encoding/toHex.js';\nimport { toRlp } from '../encoding/toRlp.js';\nimport { keccak256 } from '../hash/keccak256.js';\n/**\n * Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\n */\nexport function hashAuthorization(parameters) {\n const { chainId, nonce, to } = parameters;\n const address = parameters.contractAddress ?? parameters.address;\n const hash = keccak256(concatHex([\n '0x05',\n toRlp([\n chainId ? numberToHex(chainId) : '0x',\n address,\n nonce ? numberToHex(nonce) : '0x',\n ]),\n ]));\n if (to === 'bytes')\n return hexToBytes(hash);\n return hash;\n}\n//# sourceMappingURL=hashAuthorization.js.map","import { defineChain } from '../../utils/chain/defineChain.js';\nexport const anvil = /*#__PURE__*/ defineChain({\n id: 31_337,\n name: 'Anvil',\n nativeCurrency: {\n decimals: 18,\n name: 'Ether',\n symbol: 'ETH',\n },\n rpcUrls: {\n default: {\n http: ['http://127.0.0.1:8545'],\n webSocket: ['ws://127.0.0.1:8545'],\n },\n },\n});\n//# sourceMappingURL=anvil.js.map","import { hexToBytes } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\n/**\n * Compute the proofs for a list of blobs and their commitments.\n *\n * @example\n * ```ts\n * import {\n * blobsToCommitments,\n * toBlobs\n * } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const proofs = blobsToProofs({ blobs, commitments, kzg })\n * ```\n */\nexport function blobsToProofs(parameters) {\n const { kzg } = parameters;\n const to = parameters.to ?? (typeof parameters.blobs[0] === 'string' ? 'hex' : 'bytes');\n const blobs = (typeof parameters.blobs[0] === 'string'\n ? parameters.blobs.map((x) => hexToBytes(x))\n : parameters.blobs);\n const commitments = (typeof parameters.commitments[0] === 'string'\n ? parameters.commitments.map((x) => hexToBytes(x))\n : parameters.commitments);\n const proofs = [];\n for (let i = 0; i < blobs.length; i++) {\n const blob = blobs[i];\n const commitment = commitments[i];\n proofs.push(Uint8Array.from(kzg.computeBlobKzgProof(blob, commitment)));\n }\n return (to === 'bytes'\n ? proofs\n : proofs.map((x) => bytesToHex(x)));\n}\n//# sourceMappingURL=blobsToProofs.js.map","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","module.exports = require('events').EventEmitter;\n","/**\n * This module provides an implementation of the `Order` type class which is used to define a total ordering on some type `A`.\n * An order is defined by a relation `<=`, which obeys the following laws:\n *\n * - either `x <= y` or `y <= x` (totality)\n * - if `x <= y` and `y <= x`, then `x == y` (antisymmetry)\n * - if `x <= y` and `y <= z`, then `x <= z` (transitivity)\n *\n * The truth table for compare is defined as follows:\n *\n * | `x <= y` | `x >= y` | Ordering | |\n * | -------- | -------- | -------- | --------------------- |\n * | `true` | `true` | `0` | corresponds to x == y |\n * | `true` | `false` | `< 0` | corresponds to x < y |\n * | `false` | `true` | `> 0` | corresponds to x > y |\n *\n * @since 2.0.0\n */\nimport { dual } from \"./Function.js\";\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport const make = compare => (self, that) => self === that ? 0 : compare(self, that);\n/**\n * @category instances\n * @since 2.0.0\n */\nexport const string = /*#__PURE__*/make((self, that) => self < that ? -1 : 1);\n/**\n * @category instances\n * @since 2.0.0\n */\nexport const number = /*#__PURE__*/make((self, that) => self < that ? -1 : 1);\n/**\n * @category instances\n * @since 2.0.0\n */\nexport const boolean = /*#__PURE__*/make((self, that) => self < that ? -1 : 1);\n/**\n * @category instances\n * @since 2.0.0\n */\nexport const bigint = /*#__PURE__*/make((self, that) => self < that ? -1 : 1);\n/**\n * @since 2.0.0\n */\nexport const reverse = O => make((self, that) => O(that, self));\n/**\n * @category combining\n * @since 2.0.0\n */\nexport const combine = /*#__PURE__*/dual(2, (self, that) => make((a1, a2) => {\n const out = self(a1, a2);\n if (out !== 0) {\n return out;\n }\n return that(a1, a2);\n}));\n/**\n * @category combining\n * @since 2.0.0\n */\nexport const combineMany = /*#__PURE__*/dual(2, (self, collection) => make((a1, a2) => {\n let out = self(a1, a2);\n if (out !== 0) {\n return out;\n }\n for (const O of collection) {\n out = O(a1, a2);\n if (out !== 0) {\n return out;\n }\n }\n return out;\n}));\n/**\n * @since 2.0.0\n */\nexport const empty = () => make(() => 0);\n/**\n * @category combining\n * @since 2.0.0\n */\nexport const combineAll = collection => combineMany(empty(), collection);\n/**\n * @category mapping\n * @since 2.0.0\n */\nexport const mapInput = /*#__PURE__*/dual(2, (self, f) => make((b1, b2) => self(f(b1), f(b2))));\n/**\n * @category instances\n * @since 2.0.0\n */\nexport const Date = /*#__PURE__*/mapInput(number, date => date.getTime());\n/**\n * @category combining\n * @since 2.0.0\n */\nexport const product = /*#__PURE__*/dual(2, (self, that) => make(([xa, xb], [ya, yb]) => {\n const o = self(xa, ya);\n return o !== 0 ? o : that(xb, yb);\n}));\n/**\n * @category combining\n * @since 2.0.0\n */\nexport const all = collection => {\n return make((x, y) => {\n const len = Math.min(x.length, y.length);\n let collectionLength = 0;\n for (const O of collection) {\n if (collectionLength >= len) {\n break;\n }\n const o = O(x[collectionLength], y[collectionLength]);\n if (o !== 0) {\n return o;\n }\n collectionLength++;\n }\n return 0;\n });\n};\n/**\n * @category combining\n * @since 2.0.0\n */\nexport const productMany = /*#__PURE__*/dual(2, (self, collection) => {\n const O = all(collection);\n return make((x, y) => {\n const o = self(x[0], y[0]);\n return o !== 0 ? o : O(x.slice(1), y.slice(1));\n });\n});\n/**\n * Similar to `Promise.all` but operates on `Order`s.\n *\n * ```\n * [Order, Order, ...] -> Order<[A, B, ...]>\n * ```\n *\n * This function creates and returns a new `Order` for a tuple of values based on the given `Order`s for each element in the tuple.\n * The returned `Order` compares two tuples of the same type by applying the corresponding `Order` to each element in the tuple.\n * It is useful when you need to compare two tuples of the same type and you have a specific way of comparing each element\n * of the tuple.\n *\n * @category combinators\n * @since 2.0.0\n */\nexport const tuple = (...elements) => all(elements);\n/**\n * This function creates and returns a new `Order` for an array of values based on a given `Order` for the elements of the array.\n * The returned `Order` compares two arrays by applying the given `Order` to each element in the arrays.\n * If all elements are equal, the arrays are then compared based on their length.\n * It is useful when you need to compare two arrays of the same type and you have a specific way of comparing each element of the array.\n *\n * @category combinators\n * @since 2.0.0\n */\nexport const array = O => make((self, that) => {\n const aLen = self.length;\n const bLen = that.length;\n const len = Math.min(aLen, bLen);\n for (let i = 0; i < len; i++) {\n const o = O(self[i], that[i]);\n if (o !== 0) {\n return o;\n }\n }\n return number(aLen, bLen);\n});\n/**\n * This function creates and returns a new `Order` for a struct of values based on the given `Order`s\n * for each property in the struct.\n *\n * @category combinators\n * @since 2.0.0\n */\nexport const struct = fields => {\n const keys = Object.keys(fields);\n return make((self, that) => {\n for (const key of keys) {\n const o = fields[key](self[key], that[key]);\n if (o !== 0) {\n return o;\n }\n }\n return 0;\n });\n};\n/**\n * Test whether one value is _strictly less than_ another.\n *\n * @since 2.0.0\n */\nexport const lessThan = O => dual(2, (self, that) => O(self, that) === -1);\n/**\n * Test whether one value is _strictly greater than_ another.\n *\n * @since 2.0.0\n */\nexport const greaterThan = O => dual(2, (self, that) => O(self, that) === 1);\n/**\n * Test whether one value is _non-strictly less than_ another.\n *\n * @since 2.0.0\n */\nexport const lessThanOrEqualTo = O => dual(2, (self, that) => O(self, that) !== 1);\n/**\n * Test whether one value is _non-strictly greater than_ another.\n *\n * @since 2.0.0\n */\nexport const greaterThanOrEqualTo = O => dual(2, (self, that) => O(self, that) !== -1);\n/**\n * Take the minimum of two values. If they are considered equal, the first argument is chosen.\n *\n * @since 2.0.0\n */\nexport const min = O => dual(2, (self, that) => self === that || O(self, that) < 1 ? self : that);\n/**\n * Take the maximum of two values. If they are considered equal, the first argument is chosen.\n *\n * @since 2.0.0\n */\nexport const max = O => dual(2, (self, that) => self === that || O(self, that) > -1 ? self : that);\n/**\n * Clamp a value between a minimum and a maximum.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Order, Number } from \"effect\"\n *\n * const clamp = Order.clamp(Number.Order)({ minimum: 1, maximum: 5 })\n *\n * assert.equal(clamp(3), 3)\n * assert.equal(clamp(0), 1)\n * assert.equal(clamp(6), 5)\n * ```\n *\n * @since 2.0.0\n */\nexport const clamp = O => dual(2, (self, options) => min(O)(options.maximum, max(O)(options.minimum, self)));\n/**\n * Test whether a value is between a minimum and a maximum (inclusive).\n *\n * @since 2.0.0\n */\nexport const between = O => dual(2, (self, options) => !lessThan(O)(self, options.minimum) && !greaterThan(O)(self, options.maximum));\n//# sourceMappingURL=Order.js.map","\"use strict\";\n/*\nMIT License\n\nCopyright (c) 2019 Cyril Dever\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// try to use secp256k1, fallback to browser implementation\ntry {\n module.exports = require('./node'); // eslint-disable-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-require-imports\n}\ncatch (e) {\n if (typeof process !== 'undefined' && process.env.ECCRYPTO_NO_FALLBACK) { // eslint-disable-line @typescript-eslint/strict-boolean-expressions\n throw e;\n }\n else {\n module.exports = require('./browser'); // eslint-disable-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-require-imports\n }\n}\n//# sourceMappingURL=index.js.map","import * as Chunk from \"../../Chunk.js\";\nimport * as E from \"../../Either.js\";\nimport * as Equal from \"../../Equal.js\";\nimport * as Dual from \"../../Function.js\";\nimport { Structural } from \"../data.js\";\n/** @internal */\nexport const OrPatchTypeId = /*#__PURE__*/Symbol.for(\"effect/DifferOrPatch\");\nfunction variance(a) {\n return a;\n}\n/** @internal */\nconst PatchProto = {\n ...Structural.prototype,\n [OrPatchTypeId]: {\n _Value: variance,\n _Key: variance,\n _Patch: variance\n }\n};\nconst EmptyProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Empty\"\n});\nconst _empty = /*#__PURE__*/Object.create(EmptyProto);\n/** @internal */\nexport const empty = () => _empty;\nconst AndThenProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"AndThen\"\n});\n/** @internal */\nexport const makeAndThen = (first, second) => {\n const o = Object.create(AndThenProto);\n o.first = first;\n o.second = second;\n return o;\n};\nconst SetLeftProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"SetLeft\"\n});\n/** @internal */\nexport const makeSetLeft = value => {\n const o = Object.create(SetLeftProto);\n o.value = value;\n return o;\n};\nconst SetRightProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"SetRight\"\n});\n/** @internal */\nexport const makeSetRight = value => {\n const o = Object.create(SetRightProto);\n o.value = value;\n return o;\n};\nconst UpdateLeftProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"UpdateLeft\"\n});\n/** @internal */\nexport const makeUpdateLeft = patch => {\n const o = Object.create(UpdateLeftProto);\n o.patch = patch;\n return o;\n};\nconst UpdateRightProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"UpdateRight\"\n});\n/** @internal */\nexport const makeUpdateRight = patch => {\n const o = Object.create(UpdateRightProto);\n o.patch = patch;\n return o;\n};\n/** @internal */\nexport const diff = options => {\n switch (options.oldValue._tag) {\n case \"Left\":\n {\n switch (options.newValue._tag) {\n case \"Left\":\n {\n const valuePatch = options.left.diff(options.oldValue.left, options.newValue.left);\n if (Equal.equals(valuePatch, options.left.empty)) {\n return empty();\n }\n return makeUpdateLeft(valuePatch);\n }\n case \"Right\":\n {\n return makeSetRight(options.newValue.right);\n }\n }\n }\n case \"Right\":\n {\n switch (options.newValue._tag) {\n case \"Left\":\n {\n return makeSetLeft(options.newValue.left);\n }\n case \"Right\":\n {\n const valuePatch = options.right.diff(options.oldValue.right, options.newValue.right);\n if (Equal.equals(valuePatch, options.right.empty)) {\n return empty();\n }\n return makeUpdateRight(valuePatch);\n }\n }\n }\n }\n};\n/** @internal */\nexport const combine = /*#__PURE__*/Dual.dual(2, (self, that) => makeAndThen(self, that));\n/** @internal */\nexport const patch = /*#__PURE__*/Dual.dual(2, (self, {\n left,\n oldValue,\n right\n}) => {\n if (self._tag === \"Empty\") {\n return oldValue;\n }\n let patches = Chunk.of(self);\n let result = oldValue;\n while (Chunk.isNonEmpty(patches)) {\n const head = Chunk.headNonEmpty(patches);\n const tail = Chunk.tailNonEmpty(patches);\n switch (head._tag) {\n case \"Empty\":\n {\n patches = tail;\n break;\n }\n case \"AndThen\":\n {\n patches = Chunk.prepend(head.first)(Chunk.prepend(head.second)(tail));\n break;\n }\n case \"UpdateLeft\":\n {\n if (result._tag === \"Left\") {\n result = E.left(left.patch(head.patch, result.left));\n }\n patches = tail;\n break;\n }\n case \"UpdateRight\":\n {\n if (result._tag === \"Right\") {\n result = E.right(right.patch(head.patch, result.right));\n }\n patches = tail;\n break;\n }\n case \"SetLeft\":\n {\n result = E.left(head.value);\n patches = tail;\n break;\n }\n case \"SetRight\":\n {\n result = E.right(head.value);\n patches = tail;\n break;\n }\n }\n }\n return result;\n});\n//# sourceMappingURL=orPatch.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","import * as Chunk from \"../../Chunk.js\";\nimport * as Equal from \"../../Equal.js\";\nimport * as Dual from \"../../Function.js\";\nimport { pipe } from \"../../Function.js\";\nimport * as Data from \"../data.js\";\n/** @internal */\nexport const ChunkPatchTypeId = /*#__PURE__*/Symbol.for(\"effect/DifferChunkPatch\");\nfunction variance(a) {\n return a;\n}\nconst PatchProto = {\n ...Data.Structural.prototype,\n [ChunkPatchTypeId]: {\n _Value: variance,\n _Patch: variance\n }\n};\nconst EmptyProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Empty\"\n});\nconst _empty = /*#__PURE__*/Object.create(EmptyProto);\n/**\n * @internal\n */\nexport const empty = () => _empty;\nconst AndThenProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"AndThen\"\n});\nconst makeAndThen = (first, second) => {\n const o = Object.create(AndThenProto);\n o.first = first;\n o.second = second;\n return o;\n};\nconst AppendProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Append\"\n});\nconst makeAppend = values => {\n const o = Object.create(AppendProto);\n o.values = values;\n return o;\n};\nconst SliceProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Slice\"\n});\nconst makeSlice = (from, until) => {\n const o = Object.create(SliceProto);\n o.from = from;\n o.until = until;\n return o;\n};\nconst UpdateProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Update\"\n});\nconst makeUpdate = (index, patch) => {\n const o = Object.create(UpdateProto);\n o.index = index;\n o.patch = patch;\n return o;\n};\n/** @internal */\nexport const diff = options => {\n let i = 0;\n let patch = empty();\n while (i < options.oldValue.length && i < options.newValue.length) {\n const oldElement = Chunk.unsafeGet(i)(options.oldValue);\n const newElement = Chunk.unsafeGet(i)(options.newValue);\n const valuePatch = options.differ.diff(oldElement, newElement);\n if (!Equal.equals(valuePatch, options.differ.empty)) {\n patch = pipe(patch, combine(makeUpdate(i, valuePatch)));\n }\n i = i + 1;\n }\n if (i < options.oldValue.length) {\n patch = pipe(patch, combine(makeSlice(0, i)));\n }\n if (i < options.newValue.length) {\n patch = pipe(patch, combine(makeAppend(Chunk.drop(i)(options.newValue))));\n }\n return patch;\n};\n/** @internal */\nexport const combine = /*#__PURE__*/Dual.dual(2, (self, that) => makeAndThen(self, that));\n/** @internal */\nexport const patch = /*#__PURE__*/Dual.dual(3, (self, oldValue, differ) => {\n if (self._tag === \"Empty\") {\n return oldValue;\n }\n let chunk = oldValue;\n let patches = Chunk.of(self);\n while (Chunk.isNonEmpty(patches)) {\n const head = Chunk.headNonEmpty(patches);\n const tail = Chunk.tailNonEmpty(patches);\n switch (head._tag) {\n case \"Empty\":\n {\n patches = tail;\n break;\n }\n case \"AndThen\":\n {\n patches = Chunk.prepend(head.first)(Chunk.prepend(head.second)(tail));\n break;\n }\n case \"Append\":\n {\n chunk = Chunk.appendAll(head.values)(chunk);\n patches = tail;\n break;\n }\n case \"Slice\":\n {\n const array = Chunk.toReadonlyArray(chunk);\n chunk = Chunk.unsafeFromArray(array.slice(head.from, head.until));\n patches = tail;\n break;\n }\n case \"Update\":\n {\n const array = Chunk.toReadonlyArray(chunk);\n array[head.index] = differ.patch(head.patch, array[head.index]);\n chunk = Chunk.unsafeFromArray(array);\n patches = tail;\n break;\n }\n }\n }\n return chunk;\n});\n//# sourceMappingURL=chunkPatch.js.map","import { NegativeOffsetError, PositionOutOfBoundsError, RecursiveReadLimitExceededError, } from '../errors/cursor.js';\nconst staticCursor = {\n bytes: new Uint8Array(),\n dataView: new DataView(new ArrayBuffer(0)),\n position: 0,\n positionReadCount: new Map(),\n recursiveReadCount: 0,\n recursiveReadLimit: Number.POSITIVE_INFINITY,\n assertReadLimit() {\n if (this.recursiveReadCount >= this.recursiveReadLimit)\n throw new RecursiveReadLimitExceededError({\n count: this.recursiveReadCount + 1,\n limit: this.recursiveReadLimit,\n });\n },\n assertPosition(position) {\n if (position < 0 || position > this.bytes.length - 1)\n throw new PositionOutOfBoundsError({\n length: this.bytes.length,\n position,\n });\n },\n decrementPosition(offset) {\n if (offset < 0)\n throw new NegativeOffsetError({ offset });\n const position = this.position - offset;\n this.assertPosition(position);\n this.position = position;\n },\n getReadCount(position) {\n return this.positionReadCount.get(position || this.position) || 0;\n },\n incrementPosition(offset) {\n if (offset < 0)\n throw new NegativeOffsetError({ offset });\n const position = this.position + offset;\n this.assertPosition(position);\n this.position = position;\n },\n inspectByte(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position);\n return this.bytes[position];\n },\n inspectBytes(length, position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + length - 1);\n return this.bytes.subarray(position, position + length);\n },\n inspectUint8(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position);\n return this.bytes[position];\n },\n inspectUint16(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + 1);\n return this.dataView.getUint16(position);\n },\n inspectUint24(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + 2);\n return ((this.dataView.getUint16(position) << 8) +\n this.dataView.getUint8(position + 2));\n },\n inspectUint32(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + 3);\n return this.dataView.getUint32(position);\n },\n pushByte(byte) {\n this.assertPosition(this.position);\n this.bytes[this.position] = byte;\n this.position++;\n },\n pushBytes(bytes) {\n this.assertPosition(this.position + bytes.length - 1);\n this.bytes.set(bytes, this.position);\n this.position += bytes.length;\n },\n pushUint8(value) {\n this.assertPosition(this.position);\n this.bytes[this.position] = value;\n this.position++;\n },\n pushUint16(value) {\n this.assertPosition(this.position + 1);\n this.dataView.setUint16(this.position, value);\n this.position += 2;\n },\n pushUint24(value) {\n this.assertPosition(this.position + 2);\n this.dataView.setUint16(this.position, value >> 8);\n this.dataView.setUint8(this.position + 2, value & ~4294967040);\n this.position += 3;\n },\n pushUint32(value) {\n this.assertPosition(this.position + 3);\n this.dataView.setUint32(this.position, value);\n this.position += 4;\n },\n readByte() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectByte();\n this.position++;\n return value;\n },\n readBytes(length, size) {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectBytes(length);\n this.position += size ?? length;\n return value;\n },\n readUint8() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint8();\n this.position += 1;\n return value;\n },\n readUint16() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint16();\n this.position += 2;\n return value;\n },\n readUint24() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint24();\n this.position += 3;\n return value;\n },\n readUint32() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint32();\n this.position += 4;\n return value;\n },\n get remaining() {\n return this.bytes.length - this.position;\n },\n setPosition(position) {\n const oldPosition = this.position;\n this.assertPosition(position);\n this.position = position;\n return () => (this.position = oldPosition);\n },\n _touch() {\n if (this.recursiveReadLimit === Number.POSITIVE_INFINITY)\n return;\n const count = this.getReadCount();\n this.positionReadCount.set(this.position, count + 1);\n if (count > 0)\n this.recursiveReadCount++;\n },\n};\nexport function createCursor(bytes, { recursiveReadLimit = 8_192 } = {}) {\n const cursor = Object.create(staticCursor);\n cursor.bytes = bytes;\n cursor.dataView = new DataView(bytes.buffer ?? bytes, bytes.byteOffset, bytes.byteLength);\n cursor.positionReadCount = new Map();\n cursor.recursiveReadLimit = recursiveReadLimit;\n return cursor;\n}\n//# sourceMappingURL=cursor.js.map","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","// TODO: This looks cool. Need to check the performance of `new RegExp` versus defined inline though.\n// https://twitter.com/GabrielVergnaud/status/1622906834343366657\nexport function execTyped(regex, string) {\n const match = regex.exec(string);\n return match?.groups;\n}\n// `bytes`: binary type of `M` bytes, `0 < M <= 32`\n// https://regexr.com/6va55\nexport const bytesRegex = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/;\n// `(u)int`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n// https://regexr.com/6v8hp\nexport const integerRegex = /^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;\nexport const isTupleRegex = /^\\(.+?\\).*?$/;\n//# sourceMappingURL=regex.js.map","export function trim(hexOrBytes, { dir = 'left' } = {}) {\n let data = typeof hexOrBytes === 'string' ? hexOrBytes.replace('0x', '') : hexOrBytes;\n let sliceLength = 0;\n for (let i = 0; i < data.length - 1; i++) {\n if (data[dir === 'left' ? i : data.length - i - 1].toString() === '0')\n sliceLength++;\n else\n break;\n }\n data =\n dir === 'left'\n ? data.slice(sliceLength)\n : data.slice(0, data.length - sliceLength);\n if (typeof hexOrBytes === 'string') {\n if (data.length === 1 && dir === 'right')\n data = `${data}0`;\n return `0x${data.length % 2 === 1 ? `0${data}` : data}`;\n }\n return data;\n}\n//# sourceMappingURL=trim.js.map","'use strict';\n\nvar Buffer = require('buffer').Buffer;\nvar inherits = require('inherits');\nvar HashBase = require('hash-base');\n\nvar ARRAY16 = new Array(16);\n\nvar zl = [\n\t0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n\t3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n\t1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n\t4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar zr = [\n\t5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n\t6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n\t15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n\t8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n\t12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar sl = [\n\t11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n\t7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n\t11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n\t11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n\t9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sr = [\n\t8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n\t9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n\t9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n\t15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n\t8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e];\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000];\n\nfunction rotl(x, n) {\n\treturn (x << n) | (x >>> (32 - n));\n}\n\nfunction fn1(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0;\n}\n\nfunction fn2(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + ((b & c) | (~b & d)) + m + k) | 0, s) + e) | 0;\n}\n\nfunction fn3(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + ((b | ~c) ^ d) + m + k) | 0, s) + e) | 0;\n}\n\nfunction fn4(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + ((b & d) | (c & ~d)) + m + k) | 0, s) + e) | 0;\n}\n\nfunction fn5(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + (b ^ (c | ~d)) + m + k) | 0, s) + e) | 0;\n}\n\nfunction RIPEMD160() {\n\tHashBase.call(this, 64);\n\n\t// state\n\tthis._a = 0x67452301;\n\tthis._b = 0xefcdab89;\n\tthis._c = 0x98badcfe;\n\tthis._d = 0x10325476;\n\tthis._e = 0xc3d2e1f0;\n}\n\ninherits(RIPEMD160, HashBase);\n\nRIPEMD160.prototype._update = function () {\n\tvar words = ARRAY16;\n\tfor (var j = 0; j < 16; ++j) {\n\t\twords[j] = this._block.readInt32LE(j * 4);\n\t}\n\n\tvar al = this._a | 0;\n\tvar bl = this._b | 0;\n\tvar cl = this._c | 0;\n\tvar dl = this._d | 0;\n\tvar el = this._e | 0;\n\n\tvar ar = this._a | 0;\n\tvar br = this._b | 0;\n\tvar cr = this._c | 0;\n\tvar dr = this._d | 0;\n\tvar er = this._e | 0;\n\n\t// computation\n\tfor (var i = 0; i < 80; i += 1) {\n\t\tvar tl;\n\t\tvar tr;\n\t\tif (i < 16) {\n\t\t\ttl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i]);\n\t\t\ttr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i]);\n\t\t} else if (i < 32) {\n\t\t\ttl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i]);\n\t\t\ttr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i]);\n\t\t} else if (i < 48) {\n\t\t\ttl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i]);\n\t\t\ttr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i]);\n\t\t} else if (i < 64) {\n\t\t\ttl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i]);\n\t\t\ttr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i]);\n\t\t} else { // if (i<80) {\n\t\t\ttl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i]);\n\t\t\ttr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i]);\n\t\t}\n\n\t\tal = el;\n\t\tel = dl;\n\t\tdl = rotl(cl, 10);\n\t\tcl = bl;\n\t\tbl = tl;\n\n\t\tar = er;\n\t\ter = dr;\n\t\tdr = rotl(cr, 10);\n\t\tcr = br;\n\t\tbr = tr;\n\t}\n\n\t// update state\n\tvar t = (this._b + cl + dr) | 0;\n\tthis._b = (this._c + dl + er) | 0;\n\tthis._c = (this._d + el + ar) | 0;\n\tthis._d = (this._e + al + br) | 0;\n\tthis._e = (this._a + bl + cr) | 0;\n\tthis._a = t;\n};\n\nRIPEMD160.prototype._digest = function () {\n\t// create padding and handle blocks\n\tthis._block[this._blockOffset] = 0x80;\n\tthis._blockOffset += 1;\n\tif (this._blockOffset > 56) {\n\t\tthis._block.fill(0, this._blockOffset, 64);\n\t\tthis._update();\n\t\tthis._blockOffset = 0;\n\t}\n\n\tthis._block.fill(0, this._blockOffset, 56);\n\tthis._block.writeUInt32LE(this._length[0], 56);\n\tthis._block.writeUInt32LE(this._length[1], 60);\n\tthis._update();\n\n\t// produce result\n\tvar buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20); // eslint-disable-line no-buffer-constructor\n\tbuffer.writeInt32LE(this._a, 0);\n\tbuffer.writeInt32LE(this._b, 4);\n\tbuffer.writeInt32LE(this._c, 8);\n\tbuffer.writeInt32LE(this._d, 12);\n\tbuffer.writeInt32LE(this._e, 16);\n\treturn buffer;\n};\n\nmodule.exports = RIPEMD160;\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","import { BaseError } from '../../errors.js';\nexport class InvalidSignatureError extends BaseError {\n constructor({ signature, type, }) {\n super(`Invalid ${type} signature.`, {\n details: signature,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidSignatureError'\n });\n }\n}\nexport class UnknownSignatureError extends BaseError {\n constructor({ signature }) {\n super('Unknown signature.', {\n details: signature,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UnknownSignatureError'\n });\n }\n}\nexport class InvalidStructSignatureError extends BaseError {\n constructor({ signature }) {\n super('Invalid struct signature.', {\n details: signature,\n metaMessages: ['No properties exist.'],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidStructSignatureError'\n });\n }\n}\n//# sourceMappingURL=signature.js.map","import * as core from \"./internal/core.js\";\nimport * as internal from \"./internal/data.js\";\nimport { StructuralPrototype } from \"./internal/effectable.js\";\nimport * as Predicate from \"./Predicate.js\";\n/**\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Data, Equal } from \"effect\"\n *\n * const alice = Data.struct({ name: \"Alice\", age: 30 })\n *\n * const bob = Data.struct({ name: \"Bob\", age: 40 })\n *\n * assert.deepStrictEqual(Equal.equals(alice, alice), true)\n * assert.deepStrictEqual(Equal.equals(alice, Data.struct({ name: \"Alice\", age: 30 })), true)\n *\n * assert.deepStrictEqual(Equal.equals(alice, { name: \"Alice\", age: 30 }), false)\n * assert.deepStrictEqual(Equal.equals(alice, bob), false)\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const struct = internal.struct;\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport const unsafeStruct = as => Object.setPrototypeOf(as, StructuralPrototype);\n/**\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Data, Equal } from \"effect\"\n *\n * const alice = Data.tuple(\"Alice\", 30)\n *\n * const bob = Data.tuple(\"Bob\", 40)\n *\n * assert.deepStrictEqual(Equal.equals(alice, alice), true)\n * assert.deepStrictEqual(Equal.equals(alice, Data.tuple(\"Alice\", 30)), true)\n *\n * assert.deepStrictEqual(Equal.equals(alice, [\"Alice\", 30]), false)\n * assert.deepStrictEqual(Equal.equals(alice, bob), false)\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const tuple = (...as) => unsafeArray(as);\n/**\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Data, Equal } from \"effect\"\n *\n * const alice = Data.struct({ name: \"Alice\", age: 30 })\n * const bob = Data.struct({ name: \"Bob\", age: 40 })\n *\n * const persons = Data.array([alice, bob])\n *\n * assert.deepStrictEqual(\n * Equal.equals(\n * persons,\n * Data.array([\n * Data.struct({ name: \"Alice\", age: 30 }),\n * Data.struct({ name: \"Bob\", age: 40 })\n * ])\n * ),\n * true\n * )\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const array = as => unsafeArray(as.slice(0));\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport const unsafeArray = as => Object.setPrototypeOf(as, internal.ArrayProto);\nconst _case = () => args => args === undefined ? Object.create(StructuralPrototype) : struct(args);\nexport {\n/**\n * Provides a constructor for the specified `Case`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Data, Equal } from \"effect\"\n *\n * interface Person {\n * readonly name: string\n * }\n *\n * // Creating a constructor for the specified Case\n * const Person = Data.case()\n *\n * // Creating instances of Person\n * const mike1 = Person({ name: \"Mike\" })\n * const mike2 = Person({ name: \"Mike\" })\n * const john = Person({ name: \"John\" })\n *\n * // Checking equality\n * assert.deepStrictEqual(Equal.equals(mike1, mike2), true)\n * assert.deepStrictEqual(Equal.equals(mike1, john), false)\n *\n * ```\n * @since 2.0.0\n * @category constructors\n */\n_case as case };\n/**\n * Provides a tagged constructor for the specified `Case`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Data } from \"effect\"\n *\n * interface Person {\n * readonly _tag: \"Person\" // the tag\n * readonly name: string\n * }\n *\n * const Person = Data.tagged(\"Person\")\n *\n * const mike = Person({ name: \"Mike\" })\n *\n * assert.deepEqual(mike, { _tag: \"Person\", name: \"Mike\" })\n * ```\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const tagged = tag => args => {\n const value = args === undefined ? Object.create(StructuralPrototype) : struct(args);\n value._tag = tag;\n return value;\n};\n/**\n * Provides a constructor for a Case Class.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Data, Equal } from \"effect\"\n *\n * class Person extends Data.Class<{ readonly name: string }> {}\n *\n * // Creating instances of Person\n * const mike1 = new Person({ name: \"Mike\" })\n * const mike2 = new Person({ name: \"Mike\" })\n * const john = new Person({ name: \"John\" })\n *\n * // Checking equality\n * assert.deepStrictEqual(Equal.equals(mike1, mike2), true)\n * assert.deepStrictEqual(Equal.equals(mike1, john), false)\n * ```\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const Class = internal.Structural;\n/**\n * Provides a Tagged constructor for a Case Class.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Data, Equal } from \"effect\"\n *\n * class Person extends Data.TaggedClass(\"Person\")<{ readonly name: string }> {}\n *\n * // Creating instances of Person\n * const mike1 = new Person({ name: \"Mike\" })\n * const mike2 = new Person({ name: \"Mike\" })\n * const john = new Person({ name: \"John\" })\n *\n * // Checking equality\n * assert.deepStrictEqual(Equal.equals(mike1, mike2), true)\n * assert.deepStrictEqual(Equal.equals(mike1, john), false)\n *\n * assert.deepStrictEqual(mike1._tag, \"Person\")\n * ```\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const TaggedClass = tag => {\n class Base extends Class {\n _tag = tag;\n }\n return Base;\n};\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const Structural = internal.Structural;\n/**\n * Create a constructor for a tagged union of `Data` structs.\n *\n * You can also pass a `TaggedEnum.WithGenerics` if you want to add generics to\n * the constructor.\n *\n * @example\n * ```ts\n * import { Data } from \"effect\"\n *\n * const { BadRequest, NotFound } = Data.taggedEnum<\n * | { readonly _tag: \"BadRequest\"; readonly status: 400; readonly message: string }\n * | { readonly _tag: \"NotFound\"; readonly status: 404; readonly message: string }\n * >()\n *\n * const notFound = NotFound({ status: 404, message: \"Not Found\" })\n * ```\n *\n * @example\n * import { Data } from \"effect\"\n *\n * type MyResult = Data.TaggedEnum<{\n * Failure: { readonly error: E }\n * Success: { readonly value: A }\n * }>\n * interface MyResultDefinition extends Data.TaggedEnum.WithGenerics<2> {\n * readonly taggedEnum: MyResult\n * }\n * const { Failure, Success } = Data.taggedEnum()\n *\n * const success = Success({ value: 1 })\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const taggedEnum = () => new Proxy({}, {\n get(_target, tag, _receiver) {\n if (tag === \"$is\") {\n return Predicate.isTagged;\n } else if (tag === \"$match\") {\n return taggedMatch;\n }\n return tagged(tag);\n }\n});\nfunction taggedMatch() {\n if (arguments.length === 1) {\n const cases = arguments[0];\n return function (value) {\n return cases[value._tag](value);\n };\n }\n const value = arguments[0];\n const cases = arguments[1];\n return cases[value._tag](value);\n}\n/**\n * Provides a constructor for a Case Class.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const Error = /*#__PURE__*/function () {\n const plainArgsSymbol = /*#__PURE__*/Symbol.for(\"effect/Data/Error/plainArgs\");\n const O = {\n BaseEffectError: class extends core.YieldableError {\n constructor(args) {\n super(args?.message, args?.cause ? {\n cause: args.cause\n } : undefined);\n if (args) {\n Object.assign(this, args);\n // @effect-diagnostics-next-line floatingEffect:off\n Object.defineProperty(this, plainArgsSymbol, {\n value: args,\n enumerable: false\n });\n }\n }\n toJSON() {\n return {\n ...this[plainArgsSymbol],\n ...this\n };\n }\n }\n };\n return O.BaseEffectError;\n}();\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const TaggedError = tag => {\n const O = {\n BaseEffectError: class extends Error {\n _tag = tag;\n }\n };\n O.BaseEffectError.prototype.name = tag;\n return O.BaseEffectError;\n};\n//# sourceMappingURL=Data.js.map","import { dual } from \"../Function.js\";\n/** @internal */\nexport const OP_SEQUENTIAL = \"Sequential\";\n/** @internal */\nexport const OP_PARALLEL = \"Parallel\";\n/** @internal */\nexport const OP_PARALLEL_N = \"ParallelN\";\n/** @internal */\nexport const sequential = {\n _tag: OP_SEQUENTIAL\n};\n/** @internal */\nexport const parallel = {\n _tag: OP_PARALLEL\n};\n/** @internal */\nexport const parallelN = parallelism => ({\n _tag: OP_PARALLEL_N,\n parallelism\n});\n/** @internal */\nexport const isSequential = self => self._tag === OP_SEQUENTIAL;\n/** @internal */\nexport const isParallel = self => self._tag === OP_PARALLEL;\n/** @internal */\nexport const isParallelN = self => self._tag === OP_PARALLEL_N;\n/** @internal */\nexport const match = /*#__PURE__*/dual(2, (self, options) => {\n switch (self._tag) {\n case OP_SEQUENTIAL:\n {\n return options.onSequential();\n }\n case OP_PARALLEL:\n {\n return options.onParallel();\n }\n case OP_PARALLEL_N:\n {\n return options.onParallelN(self.parallelism);\n }\n }\n});\n//# sourceMappingURL=executionStrategy.js.map","import * as internal from \"./internal/executionStrategy.js\";\n/**\n * Execute effects sequentially.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const sequential = internal.sequential;\n/**\n * Execute effects in parallel.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const parallel = internal.parallel;\n/**\n * Execute effects in parallel, up to the specified number of concurrent fibers.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const parallelN = internal.parallelN;\n/**\n * Returns `true` if the specified `ExecutionStrategy` is an instance of\n * `Sequential`, `false` otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isSequential = internal.isSequential;\n/**\n * Returns `true` if the specified `ExecutionStrategy` is an instance of\n * `Sequential`, `false` otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isParallel = internal.isParallel;\n/**\n * Returns `true` if the specified `ExecutionStrategy` is an instance of\n * `Sequential`, `false` otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isParallelN = internal.isParallelN;\n/**\n * Folds over the specified `ExecutionStrategy` using the provided case\n * functions.\n *\n * @since 2.0.0\n * @category folding\n */\nexport const match = internal.match;\n//# sourceMappingURL=ExecutionStrategy.js.map","import * as internal from \"./internal/fiberRefs/patch.js\";\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const empty = internal.empty;\n/**\n * Constructs a patch that describes the changes between the specified\n * collections of `FiberRef`\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const diff = internal.diff;\n/**\n * Combines this patch and the specified patch to create a new patch that\n * describes applying the changes from this patch and the specified patch\n * sequentially.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const combine = internal.combine;\n/**\n * Applies the changes described by this patch to the specified collection\n * of `FiberRef` values.\n *\n * @since 2.0.0\n * @category destructors\n */\nexport const patch = internal.patch;\n//# sourceMappingURL=FiberRefsPatch.js.map","import * as Equal from \"../Equal.js\";\nimport { pipe } from \"../Function.js\";\nimport * as Hash from \"../Hash.js\";\nimport { hasProperty } from \"../Predicate.js\";\nconst FiberStatusSymbolKey = \"effect/FiberStatus\";\n/** @internal */\nexport const FiberStatusTypeId = /*#__PURE__*/Symbol.for(FiberStatusSymbolKey);\n/** @internal */\nexport const OP_DONE = \"Done\";\n/** @internal */\nexport const OP_RUNNING = \"Running\";\n/** @internal */\nexport const OP_SUSPENDED = \"Suspended\";\nconst DoneHash = /*#__PURE__*/Hash.string(`${FiberStatusSymbolKey}-${OP_DONE}`);\n/** @internal */\nclass Done {\n [FiberStatusTypeId] = FiberStatusTypeId;\n _tag = OP_DONE;\n [Hash.symbol]() {\n return DoneHash;\n }\n [Equal.symbol](that) {\n return isFiberStatus(that) && that._tag === OP_DONE;\n }\n}\n/** @internal */\nclass Running {\n runtimeFlags;\n [FiberStatusTypeId] = FiberStatusTypeId;\n _tag = OP_RUNNING;\n constructor(runtimeFlags) {\n this.runtimeFlags = runtimeFlags;\n }\n [Hash.symbol]() {\n return pipe(Hash.hash(FiberStatusSymbolKey), Hash.combine(Hash.hash(this._tag)), Hash.combine(Hash.hash(this.runtimeFlags)), Hash.cached(this));\n }\n [Equal.symbol](that) {\n return isFiberStatus(that) && that._tag === OP_RUNNING && this.runtimeFlags === that.runtimeFlags;\n }\n}\n/** @internal */\nclass Suspended {\n runtimeFlags;\n blockingOn;\n [FiberStatusTypeId] = FiberStatusTypeId;\n _tag = OP_SUSPENDED;\n constructor(runtimeFlags, blockingOn) {\n this.runtimeFlags = runtimeFlags;\n this.blockingOn = blockingOn;\n }\n [Hash.symbol]() {\n return pipe(Hash.hash(FiberStatusSymbolKey), Hash.combine(Hash.hash(this._tag)), Hash.combine(Hash.hash(this.runtimeFlags)), Hash.combine(Hash.hash(this.blockingOn)), Hash.cached(this));\n }\n [Equal.symbol](that) {\n return isFiberStatus(that) && that._tag === OP_SUSPENDED && this.runtimeFlags === that.runtimeFlags && Equal.equals(this.blockingOn, that.blockingOn);\n }\n}\n/** @internal */\nexport const done = /*#__PURE__*/new Done();\n/** @internal */\nexport const running = runtimeFlags => new Running(runtimeFlags);\n/** @internal */\nexport const suspended = (runtimeFlags, blockingOn) => new Suspended(runtimeFlags, blockingOn);\n/** @internal */\nexport const isFiberStatus = u => hasProperty(u, FiberStatusTypeId);\n/** @internal */\nexport const isDone = self => self._tag === OP_DONE;\n/** @internal */\nexport const isRunning = self => self._tag === OP_RUNNING;\n/** @internal */\nexport const isSuspended = self => self._tag === OP_SUSPENDED;\n//# sourceMappingURL=fiberStatus.js.map","import * as internal from \"./internal/fiberStatus.js\";\n/**\n * @since 2.0.0\n * @category symbols\n */\nexport const FiberStatusTypeId = internal.FiberStatusTypeId;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const done = internal.done;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const running = internal.running;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const suspended = internal.suspended;\n/**\n * Returns `true` if the specified value is a `FiberStatus`, `false` otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isFiberStatus = internal.isFiberStatus;\n/**\n * Returns `true` if the specified `FiberStatus` is `Done`, `false` otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isDone = internal.isDone;\n/**\n * Returns `true` if the specified `FiberStatus` is `Running`, `false`\n * otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isRunning = internal.isRunning;\n/**\n * Returns `true` if the specified `FiberStatus` is `Suspended`, `false`\n * otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isSuspended = internal.isSuspended;\n//# sourceMappingURL=FiberStatus.js.map","/**\n * A lightweight alternative to the `Effect` data type, with a subset of the functionality.\n *\n * @since 3.4.0\n * @experimental\n */\nimport * as Arr from \"./Array.js\";\nimport * as Context from \"./Context.js\";\nimport * as Effectable from \"./Effectable.js\";\nimport * as Either from \"./Either.js\";\nimport * as Equal from \"./Equal.js\";\nimport { constTrue, constVoid, dual, identity } from \"./Function.js\";\nimport { globalValue } from \"./GlobalValue.js\";\nimport * as Hash from \"./Hash.js\";\nimport { format, NodeInspectSymbol, toStringUnknown } from \"./Inspectable.js\";\nimport * as InternalContext from \"./internal/context.js\";\nimport * as doNotation from \"./internal/doNotation.js\";\nimport { StructuralPrototype } from \"./internal/effectable.js\";\nimport * as Option from \"./Option.js\";\nimport { pipeArguments } from \"./Pipeable.js\";\nimport { hasProperty, isIterable, isTagged } from \"./Predicate.js\";\nimport { SingleShotGen, YieldWrap, yieldWrapGet } from \"./Utils.js\";\n/**\n * @since 3.4.0\n * @experimental\n * @category type ids\n */\nexport const TypeId = /*#__PURE__*/Symbol.for(\"effect/Micro\");\n/**\n * @since 3.4.0\n * @experimental\n * @category MicroExit\n */\nexport const MicroExitTypeId = /*#__PURE__*/Symbol.for(\"effect/Micro/MicroExit\");\n/**\n * @since 3.4.0\n * @experimental\n * @category guards\n */\nexport const isMicro = u => typeof u === \"object\" && u !== null && TypeId in u;\n// ----------------------------------------------------------------------------\n// MicroCause\n// ----------------------------------------------------------------------------\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroCause\n */\nexport const MicroCauseTypeId = /*#__PURE__*/Symbol.for(\"effect/Micro/MicroCause\");\n/**\n * @since 3.6.6\n * @experimental\n * @category guards\n */\nexport const isMicroCause = self => hasProperty(self, MicroCauseTypeId);\nconst microCauseVariance = {\n _E: identity\n};\nclass MicroCauseImpl extends globalThis.Error {\n _tag;\n traces;\n [MicroCauseTypeId];\n constructor(_tag, originalError, traces) {\n const causeName = `MicroCause.${_tag}`;\n let name;\n let message;\n let stack;\n if (originalError instanceof globalThis.Error) {\n name = `(${causeName}) ${originalError.name}`;\n message = originalError.message;\n const messageLines = message.split(\"\\n\").length;\n stack = originalError.stack ? `(${causeName}) ${originalError.stack.split(\"\\n\").slice(0, messageLines + 3).join(\"\\n\")}` : `${name}: ${message}`;\n } else {\n name = causeName;\n message = toStringUnknown(originalError, 0);\n stack = `${name}: ${message}`;\n }\n if (traces.length > 0) {\n stack += `\\n ${traces.join(\"\\n \")}`;\n }\n super(message);\n this._tag = _tag;\n this.traces = traces;\n this[MicroCauseTypeId] = microCauseVariance;\n this.name = name;\n this.stack = stack;\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n toString() {\n return this.stack;\n }\n [NodeInspectSymbol]() {\n return this.stack;\n }\n}\nclass Fail extends MicroCauseImpl {\n error;\n constructor(error, traces = []) {\n super(\"Fail\", error, traces);\n this.error = error;\n }\n}\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroCause\n */\nexport const causeFail = (error, traces = []) => new Fail(error, traces);\nclass Die extends MicroCauseImpl {\n defect;\n constructor(defect, traces = []) {\n super(\"Die\", defect, traces);\n this.defect = defect;\n }\n}\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroCause\n */\nexport const causeDie = (defect, traces = []) => new Die(defect, traces);\nclass Interrupt extends MicroCauseImpl {\n constructor(traces = []) {\n super(\"Interrupt\", \"interrupted\", traces);\n }\n}\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroCause\n */\nexport const causeInterrupt = (traces = []) => new Interrupt(traces);\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroCause\n */\nexport const causeIsFail = self => self._tag === \"Fail\";\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroCause\n */\nexport const causeIsDie = self => self._tag === \"Die\";\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroCause\n */\nexport const causeIsInterrupt = self => self._tag === \"Interrupt\";\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroCause\n */\nexport const causeSquash = self => self._tag === \"Fail\" ? self.error : self._tag === \"Die\" ? self.defect : self;\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroCause\n */\nexport const causeWithTrace = /*#__PURE__*/dual(2, (self, trace) => {\n const traces = [...self.traces, trace];\n switch (self._tag) {\n case \"Die\":\n return causeDie(self.defect, traces);\n case \"Interrupt\":\n return causeInterrupt(traces);\n case \"Fail\":\n return causeFail(self.error, traces);\n }\n});\n// ----------------------------------------------------------------------------\n// MicroFiber\n// ----------------------------------------------------------------------------\n/**\n * @since 3.11.0\n * @experimental\n * @category MicroFiber\n */\nexport const MicroFiberTypeId = /*#__PURE__*/Symbol.for(\"effect/Micro/MicroFiber\");\nconst fiberVariance = {\n _A: identity,\n _E: identity\n};\nclass MicroFiberImpl {\n context;\n interruptible;\n [MicroFiberTypeId];\n _stack = [];\n _observers = [];\n _exit;\n _children;\n currentOpCount = 0;\n constructor(context, interruptible = true) {\n this.context = context;\n this.interruptible = interruptible;\n this[MicroFiberTypeId] = fiberVariance;\n }\n getRef(ref) {\n return InternalContext.unsafeGetReference(this.context, ref);\n }\n addObserver(cb) {\n if (this._exit) {\n cb(this._exit);\n return constVoid;\n }\n this._observers.push(cb);\n return () => {\n const index = this._observers.indexOf(cb);\n if (index >= 0) {\n this._observers.splice(index, 1);\n }\n };\n }\n _interrupted = false;\n unsafeInterrupt() {\n if (this._exit) {\n return;\n }\n this._interrupted = true;\n if (this.interruptible) {\n this.evaluate(exitInterrupt);\n }\n }\n unsafePoll() {\n return this._exit;\n }\n evaluate(effect) {\n if (this._exit) {\n return;\n } else if (this._yielded !== undefined) {\n const yielded = this._yielded;\n this._yielded = undefined;\n yielded();\n }\n const exit = this.runLoop(effect);\n if (exit === Yield) {\n return;\n }\n // the interruptChildren middlware is added in Micro.fork, so it can be\n // tree-shaken if not used\n const interruptChildren = fiberMiddleware.interruptChildren && fiberMiddleware.interruptChildren(this);\n if (interruptChildren !== undefined) {\n return this.evaluate(flatMap(interruptChildren, () => exit));\n }\n this._exit = exit;\n for (let i = 0; i < this._observers.length; i++) {\n this._observers[i](exit);\n }\n this._observers.length = 0;\n }\n runLoop(effect) {\n let yielding = false;\n let current = effect;\n this.currentOpCount = 0;\n try {\n while (true) {\n this.currentOpCount++;\n if (!yielding && this.getRef(CurrentScheduler).shouldYield(this)) {\n yielding = true;\n const prev = current;\n current = flatMap(yieldNow, () => prev);\n }\n current = current[evaluate](this);\n if (current === Yield) {\n const yielded = this._yielded;\n if (MicroExitTypeId in yielded) {\n this._yielded = undefined;\n return yielded;\n }\n return Yield;\n }\n }\n } catch (error) {\n if (!hasProperty(current, evaluate)) {\n return exitDie(`MicroFiber.runLoop: Not a valid effect: ${String(current)}`);\n }\n return exitDie(error);\n }\n }\n getCont(symbol) {\n while (true) {\n const op = this._stack.pop();\n if (!op) return undefined;\n const cont = op[ensureCont] && op[ensureCont](this);\n if (cont) return {\n [symbol]: cont\n };\n if (op[symbol]) return op;\n }\n }\n // cancel the yielded operation, or for the yielded exit value\n _yielded = undefined;\n yieldWith(value) {\n this._yielded = value;\n return Yield;\n }\n children() {\n return this._children ??= new Set();\n }\n}\nconst fiberMiddleware = /*#__PURE__*/globalValue(\"effect/Micro/fiberMiddleware\", () => ({\n interruptChildren: undefined\n}));\nconst fiberInterruptChildren = fiber => {\n if (fiber._children === undefined || fiber._children.size === 0) {\n return undefined;\n }\n return fiberInterruptAll(fiber._children);\n};\n/**\n * @since 3.11.0\n * @experimental\n * @category MicroFiber\n */\nexport const fiberAwait = self => async(resume => sync(self.addObserver(exit => resume(succeed(exit)))));\n/**\n * @since 3.11.2\n * @experimental\n * @category MicroFiber\n */\nexport const fiberJoin = self => flatten(fiberAwait(self));\n/**\n * @since 3.11.0\n * @experimental\n * @category MicroFiber\n */\nexport const fiberInterrupt = self => suspend(() => {\n self.unsafeInterrupt();\n return asVoid(fiberAwait(self));\n});\n/**\n * @since 3.11.0\n * @experimental\n * @category MicroFiber\n */\nexport const fiberInterruptAll = fibers => suspend(() => {\n for (const fiber of fibers) fiber.unsafeInterrupt();\n const iter = fibers[Symbol.iterator]();\n const wait = suspend(() => {\n let result = iter.next();\n while (!result.done) {\n if (result.value.unsafePoll()) {\n result = iter.next();\n continue;\n }\n const fiber = result.value;\n return async(resume => {\n fiber.addObserver(_ => {\n resume(wait);\n });\n });\n }\n return exitVoid;\n });\n return wait;\n});\nconst identifier = /*#__PURE__*/Symbol.for(\"effect/Micro/identifier\");\nconst args = /*#__PURE__*/Symbol.for(\"effect/Micro/args\");\nconst evaluate = /*#__PURE__*/Symbol.for(\"effect/Micro/evaluate\");\nconst successCont = /*#__PURE__*/Symbol.for(\"effect/Micro/successCont\");\nconst failureCont = /*#__PURE__*/Symbol.for(\"effect/Micro/failureCont\");\nconst ensureCont = /*#__PURE__*/Symbol.for(\"effect/Micro/ensureCont\");\nconst Yield = /*#__PURE__*/Symbol.for(\"effect/Micro/Yield\");\nconst microVariance = {\n _A: identity,\n _E: identity,\n _R: identity\n};\nconst MicroProto = {\n ...Effectable.EffectPrototype,\n _op: \"Micro\",\n [TypeId]: microVariance,\n pipe() {\n return pipeArguments(this, arguments);\n },\n [Symbol.iterator]() {\n return new SingleShotGen(new YieldWrap(this));\n },\n toJSON() {\n return {\n _id: \"Micro\",\n op: this[identifier],\n ...(args in this ? {\n args: this[args]\n } : undefined)\n };\n },\n toString() {\n return format(this);\n },\n [NodeInspectSymbol]() {\n return format(this);\n }\n};\nfunction defaultEvaluate(_fiber) {\n return exitDie(`Micro.evaluate: Not implemented`);\n}\nconst makePrimitiveProto = options => ({\n ...MicroProto,\n [identifier]: options.op,\n [evaluate]: options.eval ?? defaultEvaluate,\n [successCont]: options.contA,\n [failureCont]: options.contE,\n [ensureCont]: options.ensure\n});\nconst makePrimitive = options => {\n const Proto = makePrimitiveProto(options);\n return function () {\n const self = Object.create(Proto);\n self[args] = options.single === false ? arguments : arguments[0];\n return self;\n };\n};\nconst makeExit = options => {\n const Proto = {\n ...makePrimitiveProto(options),\n [MicroExitTypeId]: MicroExitTypeId,\n _tag: options.op,\n get [options.prop]() {\n return this[args];\n },\n toJSON() {\n return {\n _id: \"MicroExit\",\n _tag: options.op,\n [options.prop]: this[args]\n };\n },\n [Equal.symbol](that) {\n return isMicroExit(that) && that._tag === options.op && Equal.equals(this[args], that[args]);\n },\n [Hash.symbol]() {\n return Hash.cached(this, Hash.combine(Hash.string(options.op))(Hash.hash(this[args])));\n }\n };\n return function (value) {\n const self = Object.create(Proto);\n self[args] = value;\n self[successCont] = undefined;\n self[failureCont] = undefined;\n self[ensureCont] = undefined;\n return self;\n };\n};\n/**\n * Creates a `Micro` effect that will succeed with the specified constant value.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const succeed = /*#__PURE__*/makeExit({\n op: \"Success\",\n prop: \"value\",\n eval(fiber) {\n const cont = fiber.getCont(successCont);\n return cont ? cont[successCont](this[args], fiber) : fiber.yieldWith(this);\n }\n});\n/**\n * Creates a `Micro` effect that will fail with the specified `MicroCause`.\n *\n * @since 3.4.6\n * @experimental\n * @category constructors\n */\nexport const failCause = /*#__PURE__*/makeExit({\n op: \"Failure\",\n prop: \"cause\",\n eval(fiber) {\n let cont = fiber.getCont(failureCont);\n while (causeIsInterrupt(this[args]) && cont && fiber.interruptible) {\n cont = fiber.getCont(failureCont);\n }\n return cont ? cont[failureCont](this[args], fiber) : fiber.yieldWith(this);\n }\n});\n/**\n * Creates a `Micro` effect that fails with the given error.\n *\n * This results in a `Fail` variant of the `MicroCause` type, where the error is\n * tracked at the type level.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const fail = error => failCause(causeFail(error));\n/**\n * Creates a `Micro` effect that succeeds with a lazily evaluated value.\n *\n * If the evaluation of the value throws an error, the effect will fail with a\n * `Die` variant of the `MicroCause` type.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const sync = /*#__PURE__*/makePrimitive({\n op: \"Sync\",\n eval(fiber) {\n const value = this[args]();\n const cont = fiber.getCont(successCont);\n return cont ? cont[successCont](value, fiber) : fiber.yieldWith(exitSucceed(value));\n }\n});\n/**\n * Lazily creates a `Micro` effect from the given side-effect.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const suspend = /*#__PURE__*/makePrimitive({\n op: \"Suspend\",\n eval(_fiber) {\n return this[args]();\n }\n});\n/**\n * Pause the execution of the current `Micro` effect, and resume it on the next\n * scheduler tick.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const yieldNowWith = /*#__PURE__*/makePrimitive({\n op: \"Yield\",\n eval(fiber) {\n let resumed = false;\n fiber.getRef(CurrentScheduler).scheduleTask(() => {\n if (resumed) return;\n fiber.evaluate(exitVoid);\n }, this[args] ?? 0);\n return fiber.yieldWith(() => {\n resumed = true;\n });\n }\n});\n/**\n * Pause the execution of the current `Micro` effect, and resume it on the next\n * scheduler tick.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const yieldNow = /*#__PURE__*/yieldNowWith(0);\n/**\n * Creates a `Micro` effect that will succeed with the value wrapped in `Some`.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const succeedSome = a => succeed(Option.some(a));\n/**\n * Creates a `Micro` effect that succeeds with `None`.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const succeedNone = /*#__PURE__*/succeed(/*#__PURE__*/Option.none());\n/**\n * Creates a `Micro` effect that will fail with the lazily evaluated `MicroCause`.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const failCauseSync = evaluate => suspend(() => failCause(evaluate()));\n/**\n * Creates a `Micro` effect that will die with the specified error.\n *\n * This results in a `Die` variant of the `MicroCause` type, where the error is\n * not tracked at the type level.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const die = defect => exitDie(defect);\n/**\n * Creates a `Micro` effect that will fail with the lazily evaluated error.\n *\n * This results in a `Fail` variant of the `MicroCause` type, where the error is\n * tracked at the type level.\n *\n * @since 3.4.6\n * @experimental\n * @category constructors\n */\nexport const failSync = error => suspend(() => fail(error()));\n/**\n * Converts an `Option` into a `Micro` effect, that will fail with\n * `NoSuchElementException` if the option is `None`. Otherwise, it will succeed with the\n * value of the option.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const fromOption = option => option._tag === \"Some\" ? succeed(option.value) : fail(new NoSuchElementException({}));\n/**\n * Converts an `Either` into a `Micro` effect, that will fail with the left side\n * of the either if it is a `Left`. Otherwise, it will succeed with the right\n * side of the either.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const fromEither = either => either._tag === \"Right\" ? succeed(either.right) : fail(either.left);\nconst void_ = /*#__PURE__*/succeed(void 0);\nexport {\n/**\n * A `Micro` effect that will succeed with `void` (`undefined`).\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nvoid_ as void };\nconst try_ = options => suspend(() => {\n try {\n return succeed(options.try());\n } catch (err) {\n return fail(options.catch(err));\n }\n});\nexport {\n/**\n * The `Micro` equivalent of a try / catch block, which allows you to map\n * thrown errors to a specific error type.\n *\n * @example\n * ```ts\n * import { Micro } from \"effect\"\n *\n * Micro.try({\n * try: () => { throw new Error(\"boom\") },\n * catch: (cause) => new Error(\"caught\", { cause })\n * })\n * ```\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\ntry_ as try };\n/**\n * Wrap a `Promise` into a `Micro` effect.\n *\n * Any errors will result in a `Die` variant of the `MicroCause` type, where the\n * error is not tracked at the type level.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const promise = evaluate => asyncOptions(function (resume, signal) {\n evaluate(signal).then(a => resume(succeed(a)), e => resume(die(e)));\n}, evaluate.length !== 0);\n/**\n * Wrap a `Promise` into a `Micro` effect. Any errors will be caught and\n * converted into a specific error type.\n *\n * @example\n * ```ts\n * import { Micro } from \"effect\"\n *\n * Micro.tryPromise({\n * try: () => Promise.resolve(\"success\"),\n * catch: (cause) => new Error(\"caught\", { cause })\n * })\n * ```\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const tryPromise = options => asyncOptions(function (resume, signal) {\n try {\n options.try(signal).then(a => resume(succeed(a)), e => resume(fail(options.catch(e))));\n } catch (err) {\n resume(fail(options.catch(err)));\n }\n}, options.try.length !== 0);\n/**\n * Create a `Micro` effect using the current `MicroFiber`.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const withMicroFiber = /*#__PURE__*/makePrimitive({\n op: \"WithMicroFiber\",\n eval(fiber) {\n return this[args](fiber);\n }\n});\n/**\n * Flush any yielded effects that are waiting to be executed.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const yieldFlush = /*#__PURE__*/withMicroFiber(fiber => {\n fiber.getRef(CurrentScheduler).flush();\n return exitVoid;\n});\nconst asyncOptions = /*#__PURE__*/makePrimitive({\n op: \"Async\",\n single: false,\n eval(fiber) {\n const register = this[args][0];\n let resumed = false;\n let yielded = false;\n const controller = this[args][1] ? new AbortController() : undefined;\n const onCancel = register(effect => {\n if (resumed) return;\n resumed = true;\n if (yielded) {\n fiber.evaluate(effect);\n } else {\n yielded = effect;\n }\n }, controller?.signal);\n if (yielded !== false) return yielded;\n yielded = true;\n fiber._yielded = () => {\n resumed = true;\n };\n if (controller === undefined && onCancel === undefined) {\n return Yield;\n }\n fiber._stack.push(asyncFinalizer(() => {\n resumed = true;\n controller?.abort();\n return onCancel ?? exitVoid;\n }));\n return Yield;\n }\n});\nconst asyncFinalizer = /*#__PURE__*/makePrimitive({\n op: \"AsyncFinalizer\",\n ensure(fiber) {\n if (fiber.interruptible) {\n fiber.interruptible = false;\n fiber._stack.push(setInterruptible(true));\n }\n },\n contE(cause, _fiber) {\n return causeIsInterrupt(cause) ? flatMap(this[args](), () => failCause(cause)) : failCause(cause);\n }\n});\n/**\n * Create a `Micro` effect from an asynchronous computation.\n *\n * You can return a cleanup effect that will be run when the effect is aborted.\n * It is also passed an `AbortSignal` that is triggered when the effect is\n * aborted.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const async = register => asyncOptions(register, register.length >= 2);\n/**\n * A `Micro` that will never succeed or fail. It wraps `setInterval` to prevent\n * the Javascript runtime from exiting.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const never = /*#__PURE__*/async(function () {\n const interval = setInterval(constVoid, 2147483646);\n return sync(() => clearInterval(interval));\n});\n/**\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const gen = (...args) => suspend(() => fromIterator(args.length === 1 ? args[0]() : args[1].call(args[0])));\nconst fromIterator = /*#__PURE__*/makePrimitive({\n op: \"Iterator\",\n contA(value, fiber) {\n const state = this[args].next(value);\n if (state.done) return succeed(state.value);\n fiber._stack.push(this);\n return yieldWrapGet(state.value);\n },\n eval(fiber) {\n return this[successCont](undefined, fiber);\n }\n});\n// ----------------------------------------------------------------------------\n// mapping & sequencing\n// ----------------------------------------------------------------------------\n/**\n * Create a `Micro` effect that will replace the success value of the given\n * effect.\n *\n * @since 3.4.0\n * @experimental\n * @category mapping & sequencing\n */\nexport const as = /*#__PURE__*/dual(2, (self, value) => map(self, _ => value));\n/**\n * Wrap the success value of this `Micro` effect in a `Some`.\n *\n * @since 3.4.0\n * @experimental\n * @category mapping & sequencing\n */\nexport const asSome = self => map(self, Option.some);\n/**\n * Swap the error and success types of the `Micro` effect.\n *\n * @since 3.4.0\n * @experimental\n * @category mapping & sequencing\n */\nexport const flip = self => matchEffect(self, {\n onFailure: succeed,\n onSuccess: fail\n});\n/**\n * A more flexible version of `flatMap` that combines `map` and `flatMap` into a\n * single API.\n *\n * It also lets you directly pass a `Micro` effect, which will be executed after\n * the current effect.\n *\n * @since 3.4.0\n * @experimental\n * @category mapping & sequencing\n */\nexport const andThen = /*#__PURE__*/dual(2, (self, f) => flatMap(self, a => {\n const value = isMicro(f) ? f : typeof f === \"function\" ? f(a) : f;\n return isMicro(value) ? value : succeed(value);\n}));\n/**\n * Execute a side effect from the success value of the `Micro` effect.\n *\n * It is similar to the `andThen` api, but the success value is ignored.\n *\n * @since 3.4.0\n * @experimental\n * @category mapping & sequencing\n */\nexport const tap = /*#__PURE__*/dual(2, (self, f) => flatMap(self, a => {\n const value = isMicro(f) ? f : typeof f === \"function\" ? f(a) : f;\n return isMicro(value) ? as(value, a) : succeed(a);\n}));\n/**\n * Replace the success value of the `Micro` effect with `void`.\n *\n * @since 3.4.0\n * @experimental\n * @category mapping & sequencing\n */\nexport const asVoid = self => flatMap(self, _ => exitVoid);\n/**\n * Access the `MicroExit` of the given `Micro` effect.\n *\n * @since 3.4.6\n * @experimental\n * @category mapping & sequencing\n */\nexport const exit = self => matchCause(self, {\n onFailure: exitFailCause,\n onSuccess: exitSucceed\n});\n/**\n * Replace the error type of the given `Micro` with the full `MicroCause` object.\n *\n * @since 3.4.0\n * @experimental\n * @category mapping & sequencing\n */\nexport const sandbox = self => catchAllCause(self, fail);\n/**\n * Returns an effect that races all the specified effects,\n * yielding the value of the first effect to succeed with a value. Losers of\n * the race will be interrupted immediately\n *\n * @since 3.4.0\n * @experimental\n * @category sequencing\n */\nexport const raceAll = all => withMicroFiber(parent => async(resume => {\n const effects = Arr.fromIterable(all);\n const len = effects.length;\n let doneCount = 0;\n let done = false;\n const fibers = new Set();\n const causes = [];\n const onExit = exit => {\n doneCount++;\n if (exit._tag === \"Failure\") {\n causes.push(exit.cause);\n if (doneCount >= len) {\n resume(failCause(causes[0]));\n }\n return;\n }\n done = true;\n resume(fibers.size === 0 ? exit : flatMap(uninterruptible(fiberInterruptAll(fibers)), () => exit));\n };\n for (let i = 0; i < len; i++) {\n if (done) break;\n const fiber = unsafeFork(parent, interruptible(effects[i]), true, true);\n fibers.add(fiber);\n fiber.addObserver(exit => {\n fibers.delete(fiber);\n onExit(exit);\n });\n }\n return fiberInterruptAll(fibers);\n}));\n/**\n * Returns an effect that races all the specified effects,\n * yielding the value of the first effect to succeed or fail. Losers of\n * the race will be interrupted immediately.\n *\n * @since 3.4.0\n * @experimental\n * @category sequencing\n */\nexport const raceAllFirst = all => withMicroFiber(parent => async(resume => {\n let done = false;\n const fibers = new Set();\n const onExit = exit => {\n done = true;\n resume(fibers.size === 0 ? exit : flatMap(fiberInterruptAll(fibers), () => exit));\n };\n for (const effect of all) {\n if (done) break;\n const fiber = unsafeFork(parent, interruptible(effect), true, true);\n fibers.add(fiber);\n fiber.addObserver(exit => {\n fibers.delete(fiber);\n onExit(exit);\n });\n }\n return fiberInterruptAll(fibers);\n}));\n/**\n * Returns an effect that races two effects, yielding the value of the first\n * effect to succeed. Losers of the race will be interrupted immediately.\n *\n * @since 3.4.0\n * @experimental\n * @category sequencing\n */\nexport const race = /*#__PURE__*/dual(2, (self, that) => raceAll([self, that]));\n/**\n * Returns an effect that races two effects, yielding the value of the first\n * effect to succeed *or* fail. Losers of the race will be interrupted immediately.\n *\n * @since 3.4.0\n * @experimental\n * @category sequencing\n */\nexport const raceFirst = /*#__PURE__*/dual(2, (self, that) => raceAllFirst([self, that]));\n/**\n * Map the success value of this `Micro` effect to another `Micro` effect, then\n * flatten the result.\n *\n * @since 3.4.0\n * @experimental\n * @category mapping & sequencing\n */\nexport const flatMap = /*#__PURE__*/dual(2, (self, f) => {\n const onSuccess = Object.create(OnSuccessProto);\n onSuccess[args] = self;\n onSuccess[successCont] = f;\n return onSuccess;\n});\nconst OnSuccessProto = /*#__PURE__*/makePrimitiveProto({\n op: \"OnSuccess\",\n eval(fiber) {\n fiber._stack.push(this);\n return this[args];\n }\n});\n// ----------------------------------------------------------------------------\n// mapping & sequencing\n// ----------------------------------------------------------------------------\n/**\n * Flattens any nested `Micro` effects, merging the error and requirement types.\n *\n * @since 3.4.0\n * @experimental\n * @category mapping & sequencing\n */\nexport const flatten = self => flatMap(self, identity);\n/**\n * Transforms the success value of the `Micro` effect with the specified\n * function.\n *\n * @since 3.4.0\n * @experimental\n * @category mapping & sequencing\n */\nexport const map = /*#__PURE__*/dual(2, (self, f) => flatMap(self, a => succeed(f(a))));\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const isMicroExit = u => hasProperty(u, MicroExitTypeId);\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitSucceed = succeed;\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitFailCause = failCause;\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitInterrupt = /*#__PURE__*/exitFailCause(/*#__PURE__*/causeInterrupt());\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitFail = e => exitFailCause(causeFail(e));\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitDie = defect => exitFailCause(causeDie(defect));\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitIsSuccess = self => self._tag === \"Success\";\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitIsFailure = self => self._tag === \"Failure\";\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitIsInterrupt = self => exitIsFailure(self) && self.cause._tag === \"Interrupt\";\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitIsFail = self => exitIsFailure(self) && self.cause._tag === \"Fail\";\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitIsDie = self => exitIsFailure(self) && self.cause._tag === \"Die\";\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitVoid = /*#__PURE__*/exitSucceed(void 0);\n/**\n * @since 3.11.0\n * @experimental\n * @category MicroExit\n */\nexport const exitVoidAll = exits => {\n for (const exit of exits) {\n if (exit._tag === \"Failure\") {\n return exit;\n }\n }\n return exitVoid;\n};\nconst setImmediate = \"setImmediate\" in globalThis ? globalThis.setImmediate : f => setTimeout(f, 0);\n/**\n * @since 3.5.9\n * @experimental\n * @category scheduler\n */\nexport class MicroSchedulerDefault {\n tasks = [];\n running = false;\n /**\n * @since 3.5.9\n */\n scheduleTask(task, _priority) {\n this.tasks.push(task);\n if (!this.running) {\n this.running = true;\n setImmediate(this.afterScheduled);\n }\n }\n /**\n * @since 3.5.9\n */\n afterScheduled = () => {\n this.running = false;\n this.runTasks();\n };\n /**\n * @since 3.5.9\n */\n runTasks() {\n const tasks = this.tasks;\n this.tasks = [];\n for (let i = 0, len = tasks.length; i < len; i++) {\n tasks[i]();\n }\n }\n /**\n * @since 3.5.9\n */\n shouldYield(fiber) {\n return fiber.currentOpCount >= fiber.getRef(MaxOpsBeforeYield);\n }\n /**\n * @since 3.5.9\n */\n flush() {\n while (this.tasks.length > 0) {\n this.runTasks();\n }\n }\n}\n/**\n * Access the given `Context.Tag` from the environment.\n *\n * @since 3.4.0\n * @experimental\n * @category environment\n */\nexport const service = tag => withMicroFiber(fiber => succeed(Context.unsafeGet(fiber.context, tag)));\n/**\n * Access the given `Context.Tag` from the environment, without tracking the\n * dependency at the type level.\n *\n * It will return an `Option` of the service, depending on whether it is\n * available in the environment or not.\n *\n * @since 3.4.0\n * @experimental\n * @category environment\n */\nexport const serviceOption = tag => withMicroFiber(fiber => succeed(Context.getOption(fiber.context, tag)));\n/**\n * Update the Context with the given mapping function.\n *\n * @since 3.11.0\n * @experimental\n * @category environment\n */\nexport const updateContext = /*#__PURE__*/dual(2, (self, f) => withMicroFiber(fiber => {\n const prev = fiber.context;\n fiber.context = f(prev);\n return onExit(self, () => {\n fiber.context = prev;\n return void_;\n });\n}));\n/**\n * Update the service for the given `Context.Tag` in the environment.\n *\n * @since 3.11.0\n * @experimental\n * @category environment\n */\nexport const updateService = /*#__PURE__*/dual(3, (self, tag, f) => withMicroFiber(fiber => {\n const prev = Context.unsafeGet(fiber.context, tag);\n fiber.context = Context.add(fiber.context, tag, f(prev));\n return onExit(self, () => {\n fiber.context = Context.add(fiber.context, tag, prev);\n return void_;\n });\n}));\n/**\n * Access the current `Context` from the environment.\n *\n * @since 3.4.0\n * @experimental\n * @category environment\n */\nexport const context = () => getContext;\nconst getContext = /*#__PURE__*/withMicroFiber(fiber => succeed(fiber.context));\n/**\n * Merge the given `Context` with the current context.\n *\n * @since 3.4.0\n * @experimental\n * @category environment\n */\nexport const provideContext = /*#__PURE__*/dual(2, (self, provided) => updateContext(self, Context.merge(provided)));\n/**\n * Add the provided service to the current context.\n *\n * @since 3.4.0\n * @experimental\n * @category environment\n */\nexport const provideService = /*#__PURE__*/dual(3, (self, tag, service) => updateContext(self, Context.add(tag, service)));\n/**\n * Create a service using the provided `Micro` effect, and add it to the\n * current context.\n *\n * @since 3.4.6\n * @experimental\n * @category environment\n */\nexport const provideServiceEffect = /*#__PURE__*/dual(3, (self, tag, acquire) => flatMap(acquire, service => provideService(self, tag, service)));\n// ========================================================================\n// References\n// ========================================================================\n/**\n * @since 3.11.0\n * @experimental\n * @category references\n */\nexport class MaxOpsBeforeYield extends /*#__PURE__*/Context.Reference()(\"effect/Micro/currentMaxOpsBeforeYield\", {\n defaultValue: () => 2048\n}) {}\n/**\n * @since 3.11.0\n * @experimental\n * @category environment refs\n */\nexport class CurrentConcurrency extends /*#__PURE__*/Context.Reference()(\"effect/Micro/currentConcurrency\", {\n defaultValue: () => \"unbounded\"\n}) {}\n/**\n * @since 3.11.0\n * @experimental\n * @category environment refs\n */\nexport class CurrentScheduler extends /*#__PURE__*/Context.Reference()(\"effect/Micro/currentScheduler\", {\n defaultValue: () => new MicroSchedulerDefault()\n}) {}\n/**\n * If you have a `Micro` that uses `concurrency: \"inherit\"`, you can use this\n * api to control the concurrency of that `Micro` when it is run.\n *\n * @example\n * ```ts\n * import * as Micro from \"effect/Micro\"\n *\n * Micro.forEach([1, 2, 3], (n) => Micro.succeed(n), {\n * concurrency: \"inherit\"\n * }).pipe(\n * Micro.withConcurrency(2) // use a concurrency of 2\n * )\n * ```\n *\n * @since 3.4.0\n * @experimental\n * @category environment refs\n */\nexport const withConcurrency = /*#__PURE__*/dual(2, (self, concurrency) => provideService(self, CurrentConcurrency, concurrency));\n// ----------------------------------------------------------------------------\n// zipping\n// ----------------------------------------------------------------------------\n/**\n * Combine two `Micro` effects into a single effect that produces a tuple of\n * their results.\n *\n * @since 3.4.0\n * @experimental\n * @category zipping\n */\nexport const zip = /*#__PURE__*/dual(args => isMicro(args[1]), (self, that, options) => zipWith(self, that, (a, a2) => [a, a2], options));\n/**\n * The `Micro.zipWith` function combines two `Micro` effects and allows you to\n * apply a function to the results of the combined effects, transforming them\n * into a single value.\n *\n * @since 3.4.3\n * @experimental\n * @category zipping\n */\nexport const zipWith = /*#__PURE__*/dual(args => isMicro(args[1]), (self, that, f, options) => options?.concurrent\n// Use `all` exclusively for concurrent cases, as it introduces additional overhead due to the management of concurrency\n? map(all([self, that], {\n concurrency: 2\n}), ([a, a2]) => f(a, a2)) : flatMap(self, a => map(that, a2 => f(a, a2))));\n// ----------------------------------------------------------------------------\n// filtering & conditionals\n// ----------------------------------------------------------------------------\n/**\n * Filter the specified effect with the provided function, failing with specified\n * `MicroCause` if the predicate fails.\n *\n * In addition to the filtering capabilities discussed earlier, you have the option to further\n * refine and narrow down the type of the success channel by providing a\n *\n * @since 3.4.0\n * @experimental\n * @category filtering & conditionals\n */\nexport const filterOrFailCause = /*#__PURE__*/dual(args => isMicro(args[0]), (self, refinement, orFailWith) => flatMap(self, a => refinement(a) ? succeed(a) : failCause(orFailWith(a))));\n/**\n * Filter the specified effect with the provided function, failing with specified\n * error if the predicate fails.\n *\n * In addition to the filtering capabilities discussed earlier, you have the option to further\n * refine and narrow down the type of the success channel by providing a\n *\n * @since 3.4.0\n * @experimental\n * @category filtering & conditionals\n */\nexport const filterOrFail = /*#__PURE__*/dual(args => isMicro(args[0]), (self, refinement, orFailWith) => flatMap(self, a => refinement(a) ? succeed(a) : fail(orFailWith(a))));\n/**\n * The moral equivalent of `if (p) exp`.\n *\n * @since 3.4.0\n * @experimental\n * @category filtering & conditionals\n */\nexport const when = /*#__PURE__*/dual(2, (self, condition) => flatMap(isMicro(condition) ? condition : sync(condition), pass => pass ? asSome(self) : succeedNone));\n// ----------------------------------------------------------------------------\n// repetition\n// ----------------------------------------------------------------------------\n/**\n * Repeat the given `Micro` using the provided options.\n *\n * The `while` predicate will be checked after each iteration, and can use the\n * fall `MicroExit` of the effect to determine if the repetition should continue.\n *\n * @since 3.4.6\n * @experimental\n * @category repetition\n */\nexport const repeatExit = /*#__PURE__*/dual(2, (self, options) => suspend(() => {\n const startedAt = options.schedule ? Date.now() : 0;\n let attempt = 0;\n const loop = flatMap(exit(self), exit => {\n if (options.while !== undefined && !options.while(exit)) {\n return exit;\n } else if (options.times !== undefined && attempt >= options.times) {\n return exit;\n }\n attempt++;\n let delayEffect = yieldNow;\n if (options.schedule !== undefined) {\n const elapsed = Date.now() - startedAt;\n const duration = options.schedule(attempt, elapsed);\n if (Option.isNone(duration)) {\n return exit;\n }\n delayEffect = sleep(duration.value);\n }\n return flatMap(delayEffect, () => loop);\n });\n return loop;\n}));\n/**\n * Repeat the given `Micro` effect using the provided options. Only successful\n * results will be repeated.\n *\n * @since 3.4.0\n * @experimental\n * @category repetition\n */\nexport const repeat = /*#__PURE__*/dual(args => isMicro(args[0]), (self, options) => repeatExit(self, {\n ...options,\n while: exit => exit._tag === \"Success\" && (options?.while === undefined || options.while(exit.value))\n}));\n/**\n * Replicates the given effect `n` times.\n *\n * @since 3.11.0\n * @experimental\n * @category repetition\n */\nexport const replicate = /*#__PURE__*/dual(2, (self, n) => Array.from({\n length: n\n}, () => self));\n/**\n * Performs this effect the specified number of times and collects the\n * results.\n *\n * @since 3.11.0\n * @category repetition\n */\nexport const replicateEffect = /*#__PURE__*/dual(args => isMicro(args[0]), (self, n, options) => all(replicate(self, n), options));\n/**\n * Repeat the given `Micro` effect forever, only stopping if the effect fails.\n *\n * @since 3.4.0\n * @experimental\n * @category repetition\n */\nexport const forever = self => repeat(self);\n/**\n * Create a `MicroSchedule` that will stop repeating after the specified number\n * of attempts.\n *\n * @since 3.4.6\n * @experimental\n * @category scheduling\n */\nexport const scheduleRecurs = n => attempt => attempt <= n ? Option.some(0) : Option.none();\n/**\n * Create a `MicroSchedule` that will generate a constant delay.\n *\n * @since 3.4.6\n * @experimental\n * @category scheduling\n */\nexport const scheduleSpaced = millis => () => Option.some(millis);\n/**\n * Create a `MicroSchedule` that will generate a delay with an exponential backoff.\n *\n * @since 3.4.6\n * @experimental\n * @category scheduling\n */\nexport const scheduleExponential = (baseMillis, factor = 2) => attempt => Option.some(Math.pow(factor, attempt) * baseMillis);\n/**\n * Returns a new `MicroSchedule` with an added calculated delay to each delay\n * returned by this schedule.\n *\n * @since 3.4.6\n * @experimental\n * @category scheduling\n */\nexport const scheduleAddDelay = /*#__PURE__*/dual(2, (self, f) => (attempt, elapsed) => Option.map(self(attempt, elapsed), duration => duration + f()));\n/**\n * Transform a `MicroSchedule` to one that will have a delay that will never exceed\n * the specified maximum.\n *\n * @since 3.4.6\n * @experimental\n * @category scheduling\n */\nexport const scheduleWithMaxDelay = /*#__PURE__*/dual(2, (self, max) => (attempt, elapsed) => Option.map(self(attempt, elapsed), duration => Math.min(duration, max)));\n/**\n * Transform a `MicroSchedule` to one that will stop repeating after the specified\n * amount of time.\n *\n * @since 3.4.6\n * @experimental\n * @category scheduling\n */\nexport const scheduleWithMaxElapsed = /*#__PURE__*/dual(2, (self, max) => (attempt, elapsed) => elapsed < max ? self(attempt, elapsed) : Option.none());\n/**\n * Combines two `MicroSchedule`s, by recurring if either schedule wants to\n * recur, using the minimum of the two durations between recurrences.\n *\n * @since 3.4.6\n * @experimental\n * @category scheduling\n */\nexport const scheduleUnion = /*#__PURE__*/dual(2, (self, that) => (attempt, elapsed) => Option.zipWith(self(attempt, elapsed), that(attempt, elapsed), (d1, d2) => Math.min(d1, d2)));\n/**\n * Combines two `MicroSchedule`s, by recurring only if both schedules want to\n * recur, using the maximum of the two durations between recurrences.\n *\n * @since 3.4.6\n * @experimental\n * @category scheduling\n */\nexport const scheduleIntersect = /*#__PURE__*/dual(2, (self, that) => (attempt, elapsed) => Option.zipWith(self(attempt, elapsed), that(attempt, elapsed), (d1, d2) => Math.max(d1, d2)));\n// ----------------------------------------------------------------------------\n// error handling\n// ----------------------------------------------------------------------------\n/**\n * Catch the full `MicroCause` object of the given `Micro` effect, allowing you to\n * recover from any kind of cause.\n *\n * @since 3.4.6\n * @experimental\n * @category error handling\n */\nexport const catchAllCause = /*#__PURE__*/dual(2, (self, f) => {\n const onFailure = Object.create(OnFailureProto);\n onFailure[args] = self;\n onFailure[failureCont] = f;\n return onFailure;\n});\nconst OnFailureProto = /*#__PURE__*/makePrimitiveProto({\n op: \"OnFailure\",\n eval(fiber) {\n fiber._stack.push(this);\n return this[args];\n }\n});\n/**\n * Selectively catch a `MicroCause` object of the given `Micro` effect,\n * using the provided predicate to determine if the failure should be caught.\n *\n * @since 3.4.6\n * @experimental\n * @category error handling\n */\nexport const catchCauseIf = /*#__PURE__*/dual(3, (self, predicate, f) => catchAllCause(self, cause => predicate(cause) ? f(cause) : failCause(cause)));\n/**\n * Catch the error of the given `Micro` effect, allowing you to recover from it.\n *\n * It only catches expected errors.\n *\n * @since 3.4.6\n * @experimental\n * @category error handling\n */\nexport const catchAll = /*#__PURE__*/dual(2, (self, f) => catchCauseIf(self, causeIsFail, cause => f(cause.error)));\n/**\n * Catch any unexpected errors of the given `Micro` effect, allowing you to recover from them.\n *\n * @since 3.4.6\n * @experimental\n * @category error handling\n */\nexport const catchAllDefect = /*#__PURE__*/dual(2, (self, f) => catchCauseIf(self, causeIsDie, die => f(die.defect)));\n/**\n * Perform a side effect using the full `MicroCause` object of the given `Micro`.\n *\n * @since 3.4.6\n * @experimental\n * @category error handling\n */\nexport const tapErrorCause = /*#__PURE__*/dual(2, (self, f) => tapErrorCauseIf(self, constTrue, f));\n/**\n * Perform a side effect using if a `MicroCause` object matches the specified\n * predicate.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const tapErrorCauseIf = /*#__PURE__*/dual(3, (self, refinement, f) => catchCauseIf(self, refinement, cause => andThen(f(cause), failCause(cause))));\n/**\n * Perform a side effect from expected errors of the given `Micro`.\n *\n * @since 3.4.6\n * @experimental\n * @category error handling\n */\nexport const tapError = /*#__PURE__*/dual(2, (self, f) => tapErrorCauseIf(self, causeIsFail, fail => f(fail.error)));\n/**\n * Perform a side effect from unexpected errors of the given `Micro`.\n *\n * @since 3.4.6\n * @experimental\n * @category error handling\n */\nexport const tapDefect = /*#__PURE__*/dual(2, (self, f) => tapErrorCauseIf(self, causeIsDie, die => f(die.defect)));\n/**\n * Catch any expected errors that match the specified predicate.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const catchIf = /*#__PURE__*/dual(3, (self, predicate, f) => catchCauseIf(self, f => causeIsFail(f) && predicate(f.error), fail => f(fail.error)));\n/**\n * Recovers from the specified tagged error.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const catchTag = /*#__PURE__*/dual(3, (self, k, f) => catchIf(self, isTagged(k), f));\n/**\n * Transform the full `MicroCause` object of the given `Micro` effect.\n *\n * @since 3.4.6\n * @experimental\n * @category error handling\n */\nexport const mapErrorCause = /*#__PURE__*/dual(2, (self, f) => catchAllCause(self, cause => failCause(f(cause))));\n/**\n * Transform any expected errors of the given `Micro` effect.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const mapError = /*#__PURE__*/dual(2, (self, f) => catchAll(self, error => fail(f(error))));\n/**\n * Elevate any expected errors of the given `Micro` effect to unexpected errors,\n * resulting in an error type of `never`.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const orDie = self => catchAll(self, die);\n/**\n * Recover from all errors by succeeding with the given value.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const orElseSucceed = /*#__PURE__*/dual(2, (self, f) => catchAll(self, _ => sync(f)));\n/**\n * Ignore any expected errors of the given `Micro` effect, returning `void`.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const ignore = self => matchEffect(self, {\n onFailure: _ => void_,\n onSuccess: _ => void_\n});\n/**\n * Ignore any expected errors of the given `Micro` effect, returning `void`.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const ignoreLogged = self => matchEffect(self, {\n // eslint-disable-next-line no-console\n onFailure: error => sync(() => console.error(error)),\n onSuccess: _ => void_\n});\n/**\n * Replace the success value of the given `Micro` effect with an `Option`,\n * wrapping the success value in `Some` and returning `None` if the effect fails\n * with an expected error.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const option = self => match(self, {\n onFailure: Option.none,\n onSuccess: Option.some\n});\n/**\n * Replace the success value of the given `Micro` effect with an `Either`,\n * wrapping the success value in `Right` and wrapping any expected errors with\n * a `Left`.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const either = self => match(self, {\n onFailure: Either.left,\n onSuccess: Either.right\n});\n/**\n * Retry the given `Micro` effect using the provided options.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const retry = /*#__PURE__*/dual(args => isMicro(args[0]), (self, options) => repeatExit(self, {\n ...options,\n while: exit => exit._tag === \"Failure\" && exit.cause._tag === \"Fail\" && (options?.while === undefined || options.while(exit.cause.error))\n}));\n/**\n * Add a stack trace to any failures that occur in the effect. The trace will be\n * added to the `traces` field of the `MicroCause` object.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const withTrace = function () {\n const prevLimit = globalThis.Error.stackTraceLimit;\n globalThis.Error.stackTraceLimit = 2;\n const error = new globalThis.Error();\n globalThis.Error.stackTraceLimit = prevLimit;\n function generate(name, cause) {\n const stack = error.stack;\n if (!stack) {\n return cause;\n }\n const line = stack.split(\"\\n\")[2]?.trim().replace(/^at /, \"\");\n if (!line) {\n return cause;\n }\n const lineMatch = line.match(/\\((.*)\\)$/);\n return causeWithTrace(cause, `at ${name} (${lineMatch ? lineMatch[1] : line})`);\n }\n const f = name => self => onError(self, cause => failCause(generate(name, cause)));\n if (arguments.length === 2) {\n return f(arguments[1])(arguments[0]);\n }\n return f(arguments[0]);\n};\n// ----------------------------------------------------------------------------\n// pattern matching\n// ----------------------------------------------------------------------------\n/**\n * @since 3.4.6\n * @experimental\n * @category pattern matching\n */\nexport const matchCauseEffect = /*#__PURE__*/dual(2, (self, options) => {\n const primitive = Object.create(OnSuccessAndFailureProto);\n primitive[args] = self;\n primitive[successCont] = options.onSuccess;\n primitive[failureCont] = options.onFailure;\n return primitive;\n});\nconst OnSuccessAndFailureProto = /*#__PURE__*/makePrimitiveProto({\n op: \"OnSuccessAndFailure\",\n eval(fiber) {\n fiber._stack.push(this);\n return this[args];\n }\n});\n/**\n * @since 3.4.6\n * @experimental\n * @category pattern matching\n */\nexport const matchCause = /*#__PURE__*/dual(2, (self, options) => matchCauseEffect(self, {\n onFailure: cause => sync(() => options.onFailure(cause)),\n onSuccess: value => sync(() => options.onSuccess(value))\n}));\n/**\n * @since 3.4.6\n * @experimental\n * @category pattern matching\n */\nexport const matchEffect = /*#__PURE__*/dual(2, (self, options) => matchCauseEffect(self, {\n onFailure: cause => cause._tag === \"Fail\" ? options.onFailure(cause.error) : failCause(cause),\n onSuccess: options.onSuccess\n}));\n/**\n * @since 3.4.0\n * @experimental\n * @category pattern matching\n */\nexport const match = /*#__PURE__*/dual(2, (self, options) => matchEffect(self, {\n onFailure: error => sync(() => options.onFailure(error)),\n onSuccess: value => sync(() => options.onSuccess(value))\n}));\n// ----------------------------------------------------------------------------\n// delays & timeouts\n// ----------------------------------------------------------------------------\n/**\n * Create a `Micro` effect that will sleep for the specified duration.\n *\n * @since 3.4.0\n * @experimental\n * @category delays & timeouts\n */\nexport const sleep = millis => async(resume => {\n const timeout = setTimeout(() => {\n resume(void_);\n }, millis);\n return sync(() => {\n clearTimeout(timeout);\n });\n});\n/**\n * Returns an effect that will delay the execution of this effect by the\n * specified duration.\n *\n * @since 3.4.0\n * @experimental\n * @category delays & timeouts\n */\nexport const delay = /*#__PURE__*/dual(2, (self, millis) => andThen(sleep(millis), self));\n/**\n * Returns an effect that will timeout this effect, that will execute the\n * fallback effect if the timeout elapses before the effect has produced a value.\n *\n * If the timeout elapses, the running effect will be safely interrupted.\n *\n * @since 3.4.0\n * @experimental\n * @category delays & timeouts\n */\nexport const timeoutOrElse = /*#__PURE__*/dual(2, (self, options) => raceFirst(self, andThen(interruptible(sleep(options.duration)), options.onTimeout)));\n/**\n * Returns an effect that will timeout this effect, that will fail with a\n * `TimeoutException` if the timeout elapses before the effect has produced a\n * value.\n *\n * If the timeout elapses, the running effect will be safely interrupted.\n *\n * @since 3.4.0\n * @experimental\n * @category delays & timeouts\n */\nexport const timeout = /*#__PURE__*/dual(2, (self, millis) => timeoutOrElse(self, {\n duration: millis,\n onTimeout: () => fail(new TimeoutException())\n}));\n/**\n * Returns an effect that will timeout this effect, succeeding with a `None`\n * if the timeout elapses before the effect has produced a value; and `Some` of\n * the produced value otherwise.\n *\n * If the timeout elapses, the running effect will be safely interrupted.\n *\n * @since 3.4.0\n * @experimental\n * @category delays & timeouts\n */\nexport const timeoutOption = /*#__PURE__*/dual(2, (self, millis) => raceFirst(asSome(self), as(interruptible(sleep(millis)), Option.none())));\n// ----------------------------------------------------------------------------\n// resources & finalization\n// ----------------------------------------------------------------------------\n/**\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const MicroScopeTypeId = /*#__PURE__*/Symbol.for(\"effect/Micro/MicroScope\");\n/**\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const MicroScope = /*#__PURE__*/Context.GenericTag(\"effect/Micro/MicroScope\");\nclass MicroScopeImpl {\n [MicroScopeTypeId];\n state = {\n _tag: \"Open\",\n finalizers: /*#__PURE__*/new Set()\n };\n constructor() {\n this[MicroScopeTypeId] = MicroScopeTypeId;\n }\n unsafeAddFinalizer(finalizer) {\n if (this.state._tag === \"Open\") {\n this.state.finalizers.add(finalizer);\n }\n }\n addFinalizer(finalizer) {\n return suspend(() => {\n if (this.state._tag === \"Open\") {\n this.state.finalizers.add(finalizer);\n return void_;\n }\n return finalizer(this.state.exit);\n });\n }\n unsafeRemoveFinalizer(finalizer) {\n if (this.state._tag === \"Open\") {\n this.state.finalizers.delete(finalizer);\n }\n }\n close(microExit) {\n return suspend(() => {\n if (this.state._tag === \"Open\") {\n const finalizers = Array.from(this.state.finalizers).reverse();\n this.state = {\n _tag: \"Closed\",\n exit: microExit\n };\n return flatMap(forEach(finalizers, finalizer => exit(finalizer(microExit))), exitVoidAll);\n }\n return void_;\n });\n }\n get fork() {\n return sync(() => {\n const newScope = new MicroScopeImpl();\n if (this.state._tag === \"Closed\") {\n newScope.state = this.state;\n return newScope;\n }\n function fin(exit) {\n return newScope.close(exit);\n }\n this.state.finalizers.add(fin);\n newScope.unsafeAddFinalizer(_ => sync(() => this.unsafeRemoveFinalizer(fin)));\n return newScope;\n });\n }\n}\n/**\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const scopeMake = /*#__PURE__*/sync(() => new MicroScopeImpl());\n/**\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const scopeUnsafeMake = () => new MicroScopeImpl();\n/**\n * Access the current `MicroScope`.\n *\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const scope = /*#__PURE__*/service(MicroScope);\n/**\n * Provide a `MicroScope` to an effect.\n *\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const provideScope = /*#__PURE__*/dual(2, (self, scope) => provideService(self, MicroScope, scope));\n/**\n * Provide a `MicroScope` to the given effect, closing it after the effect has\n * finished executing.\n *\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const scoped = self => suspend(() => {\n const scope = new MicroScopeImpl();\n return onExit(provideService(self, MicroScope, scope), exit => scope.close(exit));\n});\n/**\n * Create a resource with a cleanup `Micro` effect, ensuring the cleanup is\n * executed when the `MicroScope` is closed.\n *\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const acquireRelease = (acquire, release) => uninterruptible(flatMap(scope, scope => tap(acquire, a => scope.addFinalizer(exit => release(a, exit)))));\n/**\n * Add a finalizer to the current `MicroScope`.\n *\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const addFinalizer = finalizer => flatMap(scope, scope => scope.addFinalizer(finalizer));\n/**\n * When the `Micro` effect is completed, run the given finalizer effect with the\n * `MicroExit` of the executed effect.\n *\n * @since 3.4.6\n * @experimental\n * @category resources & finalization\n */\nexport const onExit = /*#__PURE__*/dual(2, (self, f) => uninterruptibleMask(restore => matchCauseEffect(restore(self), {\n onFailure: cause => flatMap(f(exitFailCause(cause)), () => failCause(cause)),\n onSuccess: a => flatMap(f(exitSucceed(a)), () => succeed(a))\n})));\n/**\n * Regardless of the result of the this `Micro` effect, run the finalizer effect.\n *\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const ensuring = /*#__PURE__*/dual(2, (self, finalizer) => onExit(self, _ => finalizer));\n/**\n * When the `Micro` effect is completed, run the given finalizer effect if it\n * matches the specified predicate.\n *\n * @since 3.4.6\n * @experimental\n * @category resources & finalization\n */\nexport const onExitIf = /*#__PURE__*/dual(3, (self, refinement, f) => onExit(self, exit => refinement(exit) ? f(exit) : exitVoid));\n/**\n * When the `Micro` effect fails, run the given finalizer effect with the\n * `MicroCause` of the executed effect.\n *\n * @since 3.4.6\n * @experimental\n * @category resources & finalization\n */\nexport const onError = /*#__PURE__*/dual(2, (self, f) => onExitIf(self, exitIsFailure, exit => f(exit.cause)));\n/**\n * If this `Micro` effect is aborted, run the finalizer effect.\n *\n * @since 3.4.6\n * @experimental\n * @category resources & finalization\n */\nexport const onInterrupt = /*#__PURE__*/dual(2, (self, finalizer) => onExitIf(self, exitIsInterrupt, _ => finalizer));\n/**\n * Acquire a resource, use it, and then release the resource when the `use`\n * effect has completed.\n *\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const acquireUseRelease = (acquire, use, release) => uninterruptibleMask(restore => flatMap(acquire, a => flatMap(exit(restore(use(a))), exit => andThen(release(a, exit), exit))));\n// ----------------------------------------------------------------------------\n// interruption\n// ----------------------------------------------------------------------------\n/**\n * Abort the current `Micro` effect.\n *\n * @since 3.4.6\n * @experimental\n * @category interruption\n */\nexport const interrupt = /*#__PURE__*/failCause(/*#__PURE__*/causeInterrupt());\n/**\n * Flag the effect as uninterruptible, which means that when the effect is\n * interrupted, it will be allowed to continue running until completion.\n *\n * @since 3.4.0\n * @experimental\n * @category flags\n */\nexport const uninterruptible = self => withMicroFiber(fiber => {\n if (!fiber.interruptible) return self;\n fiber.interruptible = false;\n fiber._stack.push(setInterruptible(true));\n return self;\n});\nconst setInterruptible = /*#__PURE__*/makePrimitive({\n op: \"SetInterruptible\",\n ensure(fiber) {\n fiber.interruptible = this[args];\n if (fiber._interrupted && fiber.interruptible) {\n return () => exitInterrupt;\n }\n }\n});\n/**\n * Flag the effect as interruptible, which means that when the effect is\n * interrupted, it will be interrupted immediately.\n *\n * @since 3.4.0\n * @experimental\n * @category flags\n */\nexport const interruptible = self => withMicroFiber(fiber => {\n if (fiber.interruptible) return self;\n fiber.interruptible = true;\n fiber._stack.push(setInterruptible(false));\n if (fiber._interrupted) return exitInterrupt;\n return self;\n});\n/**\n * Wrap the given `Micro` effect in an uninterruptible region, preventing the\n * effect from being aborted.\n *\n * You can use the `restore` function to restore a `Micro` effect to the\n * interruptibility state before the `uninterruptibleMask` was applied.\n *\n * @example\n * ```ts\n * import * as Micro from \"effect/Micro\"\n *\n * Micro.uninterruptibleMask((restore) =>\n * Micro.sleep(1000).pipe( // uninterruptible\n * Micro.andThen(restore(Micro.sleep(1000))) // interruptible\n * )\n * )\n * ```\n *\n * @since 3.4.0\n * @experimental\n * @category interruption\n */\nexport const uninterruptibleMask = f => withMicroFiber(fiber => {\n if (!fiber.interruptible) return f(identity);\n fiber.interruptible = false;\n fiber._stack.push(setInterruptible(true));\n return f(interruptible);\n});\n/**\n * Runs all the provided effects in sequence respecting the structure provided in input.\n *\n * Supports multiple arguments, a single argument tuple / array or record / struct.\n *\n * @since 3.4.0\n * @experimental\n * @category collecting & elements\n */\nexport const all = (arg, options) => {\n if (Array.isArray(arg) || isIterable(arg)) {\n return forEach(arg, identity, options);\n } else if (options?.discard) {\n return forEach(Object.values(arg), identity, options);\n }\n return suspend(() => {\n const out = {};\n return as(forEach(Object.entries(arg), ([key, effect]) => map(effect, value => {\n out[key] = value;\n }), {\n discard: true,\n concurrency: options?.concurrency\n }), out);\n });\n};\n/**\n * @since 3.11.0\n * @experimental\n * @category collecting & elements\n */\nexport const whileLoop = /*#__PURE__*/makePrimitive({\n op: \"While\",\n contA(value, fiber) {\n this[args].step(value);\n if (this[args].while()) {\n fiber._stack.push(this);\n return this[args].body();\n }\n return exitVoid;\n },\n eval(fiber) {\n if (this[args].while()) {\n fiber._stack.push(this);\n return this[args].body();\n }\n return exitVoid;\n }\n});\n/**\n * For each element of the provided iterable, run the effect and collect the\n * results.\n *\n * If the `discard` option is set to `true`, the results will be discarded and\n * the effect will return `void`.\n *\n * The `concurrency` option can be set to control how many effects are run\n * concurrently. By default, the effects are run sequentially.\n *\n * @since 3.4.0\n * @experimental\n * @category collecting & elements\n */\nexport const forEach = (iterable, f, options) => withMicroFiber(parent => {\n const concurrencyOption = options?.concurrency === \"inherit\" ? parent.getRef(CurrentConcurrency) : options?.concurrency ?? 1;\n const concurrency = concurrencyOption === \"unbounded\" ? Number.POSITIVE_INFINITY : Math.max(1, concurrencyOption);\n const items = Arr.fromIterable(iterable);\n let length = items.length;\n if (length === 0) {\n return options?.discard ? void_ : succeed([]);\n }\n const out = options?.discard ? undefined : new Array(length);\n let index = 0;\n if (concurrency === 1) {\n return as(whileLoop({\n while: () => index < items.length,\n body: () => f(items[index], index),\n step: out ? b => out[index++] = b : _ => index++\n }), out);\n }\n return async(resume => {\n const fibers = new Set();\n let result = undefined;\n let inProgress = 0;\n let doneCount = 0;\n let pumping = false;\n let interrupted = false;\n function pump() {\n pumping = true;\n while (inProgress < concurrency && index < length) {\n const currentIndex = index;\n const item = items[currentIndex];\n index++;\n inProgress++;\n try {\n const child = unsafeFork(parent, f(item, currentIndex), true, true);\n fibers.add(child);\n child.addObserver(exit => {\n fibers.delete(child);\n if (interrupted) {\n return;\n } else if (exit._tag === \"Failure\") {\n if (result === undefined) {\n result = exit;\n length = index;\n fibers.forEach(fiber => fiber.unsafeInterrupt());\n }\n } else if (out !== undefined) {\n out[currentIndex] = exit.value;\n }\n doneCount++;\n inProgress--;\n if (doneCount === length) {\n resume(result ?? succeed(out));\n } else if (!pumping && inProgress < concurrency) {\n pump();\n }\n });\n } catch (err) {\n result = exitDie(err);\n length = index;\n fibers.forEach(fiber => fiber.unsafeInterrupt());\n }\n }\n pumping = false;\n }\n pump();\n return suspend(() => {\n interrupted = true;\n index = length;\n return fiberInterruptAll(fibers);\n });\n });\n});\n/**\n * Effectfully filter the elements of the provided iterable.\n *\n * Use the `concurrency` option to control how many elements are processed\n * concurrently.\n *\n * @since 3.4.0\n * @experimental\n * @category collecting & elements\n */\nexport const filter = (iterable, f, options) => filterMap(iterable, a => map(f(a), pass => {\n pass = options?.negate ? !pass : pass;\n return pass ? Option.some(a) : Option.none();\n}), options);\n/**\n * Effectfully filter the elements of the provided iterable.\n *\n * Use the `concurrency` option to control how many elements are processed\n * concurrently.\n *\n * @since 3.4.0\n * @experimental\n * @category collecting & elements\n */\nexport const filterMap = (iterable, f, options) => suspend(() => {\n const out = [];\n return as(forEach(iterable, a => map(f(a), o => {\n if (o._tag === \"Some\") {\n out.push(o.value);\n }\n }), {\n discard: true,\n concurrency: options?.concurrency\n }), out);\n});\n// ----------------------------------------------------------------------------\n// do notation\n// ----------------------------------------------------------------------------\n/**\n * Start a do notation block.\n *\n * @since 3.4.0\n * @experimental\n * @category do notation\n */\nexport const Do = /*#__PURE__*/succeed({});\n/**\n * Bind the success value of this `Micro` effect to the provided name.\n *\n * @since 3.4.0\n * @experimental\n * @category do notation\n */\nexport const bindTo = /*#__PURE__*/doNotation.bindTo(map);\n/**\n * Bind the success value of this `Micro` effect to the provided name.\n *\n * @since 3.4.0\n * @experimental\n * @category do notation\n */\nexport const bind = /*#__PURE__*/doNotation.bind(map, flatMap);\nconst let_ = /*#__PURE__*/doNotation.let_(map);\nexport {\n/**\n * Bind the result of a synchronous computation to the given name.\n *\n * @since 3.4.0\n * @experimental\n * @category do notation\n */\nlet_ as let };\n// ----------------------------------------------------------------------------\n// fibers & forking\n// ----------------------------------------------------------------------------\n/**\n * Run the `Micro` effect in a new `MicroFiber` that can be awaited, joined, or\n * aborted.\n *\n * When the parent `Micro` finishes, this `Micro` will be aborted.\n *\n * @since 3.4.0\n * @experimental\n * @category fiber & forking\n */\nexport const fork = self => withMicroFiber(fiber => {\n fiberMiddleware.interruptChildren ??= fiberInterruptChildren;\n return succeed(unsafeFork(fiber, self));\n});\nconst unsafeFork = (parent, effect, immediate = false, daemon = false) => {\n const child = new MicroFiberImpl(parent.context, parent.interruptible);\n if (!daemon) {\n parent.children().add(child);\n child.addObserver(() => parent.children().delete(child));\n }\n if (immediate) {\n child.evaluate(effect);\n } else {\n parent.getRef(CurrentScheduler).scheduleTask(() => child.evaluate(effect), 0);\n }\n return child;\n};\n/**\n * Run the `Micro` effect in a new `MicroFiber` that can be awaited, joined, or\n * aborted.\n *\n * It will not be aborted when the parent `Micro` finishes.\n *\n * @since 3.4.0\n * @experimental\n * @category fiber & forking\n */\nexport const forkDaemon = self => withMicroFiber(fiber => succeed(unsafeFork(fiber, self, false, true)));\n/**\n * Run the `Micro` effect in a new `MicroFiber` that can be awaited, joined, or\n * aborted.\n *\n * The lifetime of the handle will be attached to the provided `MicroScope`.\n *\n * @since 3.4.0\n * @experimental\n * @category fiber & forking\n */\nexport const forkIn = /*#__PURE__*/dual(2, (self, scope) => uninterruptibleMask(restore => flatMap(scope.fork, scope => tap(restore(forkDaemon(onExit(self, exit => scope.close(exit)))), fiber => scope.addFinalizer(_ => fiberInterrupt(fiber))))));\n/**\n * Run the `Micro` effect in a new `MicroFiber` that can be awaited, joined, or\n * aborted.\n *\n * The lifetime of the handle will be attached to the current `MicroScope`.\n *\n * @since 3.4.0\n * @experimental\n * @category fiber & forking\n */\nexport const forkScoped = self => flatMap(scope, scope => forkIn(self, scope));\n// ----------------------------------------------------------------------------\n// execution\n// ----------------------------------------------------------------------------\n/**\n * Execute the `Micro` effect and return a `MicroFiber` that can be awaited, joined,\n * or aborted.\n *\n * You can listen for the result by adding an observer using the handle's\n * `addObserver` method.\n *\n * @example\n * ```ts\n * import * as Micro from \"effect/Micro\"\n *\n * const handle = Micro.succeed(42).pipe(\n * Micro.delay(1000),\n * Micro.runFork\n * )\n *\n * handle.addObserver((exit) => {\n * console.log(exit)\n * })\n * ```\n *\n * @since 3.4.0\n * @experimental\n * @category execution\n */\nexport const runFork = (effect, options) => {\n const fiber = new MicroFiberImpl(CurrentScheduler.context(options?.scheduler ?? new MicroSchedulerDefault()));\n fiber.evaluate(effect);\n if (options?.signal) {\n if (options.signal.aborted) {\n fiber.unsafeInterrupt();\n } else {\n const abort = () => fiber.unsafeInterrupt();\n options.signal.addEventListener(\"abort\", abort, {\n once: true\n });\n fiber.addObserver(() => options.signal.removeEventListener(\"abort\", abort));\n }\n }\n return fiber;\n};\n/**\n * Execute the `Micro` effect and return a `Promise` that resolves with the\n * `MicroExit` of the computation.\n *\n * @since 3.4.6\n * @experimental\n * @category execution\n */\nexport const runPromiseExit = (effect, options) => new Promise((resolve, _reject) => {\n const handle = runFork(effect, options);\n handle.addObserver(resolve);\n});\n/**\n * Execute the `Micro` effect and return a `Promise` that resolves with the\n * successful value of the computation.\n *\n * @since 3.4.0\n * @experimental\n * @category execution\n */\nexport const runPromise = (effect, options) => runPromiseExit(effect, options).then(exit => {\n if (exit._tag === \"Failure\") {\n throw exit.cause;\n }\n return exit.value;\n});\n/**\n * Attempt to execute the `Micro` effect synchronously and return the `MicroExit`.\n *\n * If any asynchronous effects are encountered, the function will return a\n * `CauseDie` containing the `MicroFiber`.\n *\n * @since 3.4.6\n * @experimental\n * @category execution\n */\nexport const runSyncExit = effect => {\n const scheduler = new MicroSchedulerDefault();\n const fiber = runFork(effect, {\n scheduler\n });\n scheduler.flush();\n return fiber._exit ?? exitDie(fiber);\n};\n/**\n * Attempt to execute the `Micro` effect synchronously and return the success\n * value.\n *\n * @since 3.4.0\n * @experimental\n * @category execution\n */\nexport const runSync = effect => {\n const exit = runSyncExit(effect);\n if (exit._tag === \"Failure\") throw exit.cause;\n return exit.value;\n};\nconst YieldableError = /*#__PURE__*/function () {\n class YieldableError extends globalThis.Error {}\n // @effect-diagnostics-next-line floatingEffect:off\n Object.assign(YieldableError.prototype, MicroProto, StructuralPrototype, {\n [identifier]: \"Failure\",\n [evaluate]() {\n return fail(this);\n },\n toString() {\n return this.message ? `${this.name}: ${this.message}` : this.name;\n },\n toJSON() {\n return {\n ...this\n };\n },\n [NodeInspectSymbol]() {\n const stack = this.stack;\n if (stack) {\n return `${this.toString()}\\n${stack.split(\"\\n\").slice(1).join(\"\\n\")}`;\n }\n return this.toString();\n }\n });\n return YieldableError;\n}();\n/**\n * @since 3.4.0\n * @experimental\n * @category errors\n */\nexport const Error = /*#__PURE__*/function () {\n return class extends YieldableError {\n constructor(args) {\n super();\n if (args) {\n Object.assign(this, args);\n }\n }\n };\n}();\n/**\n * @since 3.4.0\n * @experimental\n * @category errors\n */\nexport const TaggedError = tag => {\n class Base extends Error {\n _tag = tag;\n }\n ;\n Base.prototype.name = tag;\n return Base;\n};\n/**\n * Represents a checked exception which occurs when an expected element was\n * unable to be found.\n *\n * @since 3.4.4\n * @experimental\n * @category errors\n */\nexport class NoSuchElementException extends /*#__PURE__*/TaggedError(\"NoSuchElementException\") {}\n/**\n * Represents a checked exception which occurs when a timeout occurs.\n *\n * @since 3.4.4\n * @experimental\n * @category errors\n */\nexport class TimeoutException extends /*#__PURE__*/TaggedError(\"TimeoutException\") {}\n//# sourceMappingURL=Micro.js.map","/**\n * @since 2.0.0\n */\nimport { dual } from \"./Function.js\";\nimport { globalValue } from \"./GlobalValue.js\";\nimport * as core from \"./internal/core.js\";\n/**\n * @since 2.0.0\n * @category utils\n */\nexport class PriorityBuckets {\n /**\n * @since 2.0.0\n */\n buckets = [];\n /**\n * @since 2.0.0\n */\n scheduleTask(task, priority) {\n const length = this.buckets.length;\n let bucket = undefined;\n let index = 0;\n for (; index < length; index++) {\n if (this.buckets[index][0] <= priority) {\n bucket = this.buckets[index];\n } else {\n break;\n }\n }\n if (bucket && bucket[0] === priority) {\n bucket[1].push(task);\n } else if (index === length) {\n this.buckets.push([priority, [task]]);\n } else {\n this.buckets.splice(index, 0, [priority, [task]]);\n }\n }\n}\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport class MixedScheduler {\n maxNextTickBeforeTimer;\n /**\n * @since 2.0.0\n */\n running = false;\n /**\n * @since 2.0.0\n */\n tasks = /*#__PURE__*/new PriorityBuckets();\n constructor(\n /**\n * @since 2.0.0\n */\n maxNextTickBeforeTimer) {\n this.maxNextTickBeforeTimer = maxNextTickBeforeTimer;\n }\n /**\n * @since 2.0.0\n */\n starveInternal(depth) {\n const tasks = this.tasks.buckets;\n this.tasks.buckets = [];\n for (const [_, toRun] of tasks) {\n for (let i = 0; i < toRun.length; i++) {\n toRun[i]();\n }\n }\n if (this.tasks.buckets.length === 0) {\n this.running = false;\n } else {\n this.starve(depth);\n }\n }\n /**\n * @since 2.0.0\n */\n starve(depth = 0) {\n if (depth >= this.maxNextTickBeforeTimer) {\n setTimeout(() => this.starveInternal(0), 0);\n } else {\n Promise.resolve(void 0).then(() => this.starveInternal(depth + 1));\n }\n }\n /**\n * @since 2.0.0\n */\n shouldYield(fiber) {\n return fiber.currentOpCount > fiber.getFiberRef(core.currentMaxOpsBeforeYield) ? fiber.getFiberRef(core.currentSchedulingPriority) : false;\n }\n /**\n * @since 2.0.0\n */\n scheduleTask(task, priority) {\n this.tasks.scheduleTask(task, priority);\n if (!this.running) {\n this.running = true;\n this.starve();\n }\n }\n}\n/**\n * @since 2.0.0\n * @category schedulers\n */\nexport const defaultScheduler = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Scheduler/defaultScheduler\"), () => new MixedScheduler(2048));\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport class SyncScheduler {\n /**\n * @since 2.0.0\n */\n tasks = /*#__PURE__*/new PriorityBuckets();\n /**\n * @since 2.0.0\n */\n deferred = false;\n /**\n * @since 2.0.0\n */\n scheduleTask(task, priority) {\n if (this.deferred) {\n defaultScheduler.scheduleTask(task, priority);\n } else {\n this.tasks.scheduleTask(task, priority);\n }\n }\n /**\n * @since 2.0.0\n */\n shouldYield(fiber) {\n return fiber.currentOpCount > fiber.getFiberRef(core.currentMaxOpsBeforeYield) ? fiber.getFiberRef(core.currentSchedulingPriority) : false;\n }\n /**\n * @since 2.0.0\n */\n flush() {\n while (this.tasks.buckets.length > 0) {\n const tasks = this.tasks.buckets;\n this.tasks.buckets = [];\n for (const [_, toRun] of tasks) {\n for (let i = 0; i < toRun.length; i++) {\n toRun[i]();\n }\n }\n }\n this.deferred = true;\n }\n}\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport class ControlledScheduler {\n /**\n * @since 2.0.0\n */\n tasks = /*#__PURE__*/new PriorityBuckets();\n /**\n * @since 2.0.0\n */\n deferred = false;\n /**\n * @since 2.0.0\n */\n scheduleTask(task, priority) {\n if (this.deferred) {\n defaultScheduler.scheduleTask(task, priority);\n } else {\n this.tasks.scheduleTask(task, priority);\n }\n }\n /**\n * @since 2.0.0\n */\n shouldYield(fiber) {\n return fiber.currentOpCount > fiber.getFiberRef(core.currentMaxOpsBeforeYield) ? fiber.getFiberRef(core.currentSchedulingPriority) : false;\n }\n /**\n * @since 2.0.0\n */\n step() {\n const tasks = this.tasks.buckets;\n this.tasks.buckets = [];\n for (const [_, toRun] of tasks) {\n for (let i = 0; i < toRun.length; i++) {\n toRun[i]();\n }\n }\n }\n}\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const makeMatrix = (...record) => {\n const index = record.sort(([p0], [p1]) => p0 < p1 ? -1 : p0 > p1 ? 1 : 0);\n return {\n shouldYield(fiber) {\n for (const scheduler of record) {\n const priority = scheduler[1].shouldYield(fiber);\n if (priority !== false) {\n return priority;\n }\n }\n return false;\n },\n scheduleTask(task, priority) {\n let scheduler = undefined;\n for (const i of index) {\n if (priority >= i[0]) {\n scheduler = i[1];\n } else {\n return (scheduler ?? defaultScheduler).scheduleTask(task, priority);\n }\n }\n return (scheduler ?? defaultScheduler).scheduleTask(task, priority);\n }\n };\n};\n/**\n * @since 2.0.0\n * @category utilities\n */\nexport const defaultShouldYield = fiber => {\n return fiber.currentOpCount > fiber.getFiberRef(core.currentMaxOpsBeforeYield) ? fiber.getFiberRef(core.currentSchedulingPriority) : false;\n};\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const make = (scheduleTask, shouldYield = defaultShouldYield) => ({\n scheduleTask,\n shouldYield\n});\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const makeBatched = (callback, shouldYield = defaultShouldYield) => {\n let running = false;\n const tasks = new PriorityBuckets();\n const starveInternal = () => {\n const tasksToRun = tasks.buckets;\n tasks.buckets = [];\n for (const [_, toRun] of tasksToRun) {\n for (let i = 0; i < toRun.length; i++) {\n toRun[i]();\n }\n }\n if (tasks.buckets.length === 0) {\n running = false;\n } else {\n starve();\n }\n };\n const starve = () => callback(starveInternal);\n return make((task, priority) => {\n tasks.scheduleTask(task, priority);\n if (!running) {\n running = true;\n starve();\n }\n }, shouldYield);\n};\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const timer = (ms, shouldYield = defaultShouldYield) => make(task => setTimeout(task, ms), shouldYield);\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const timerBatched = (ms, shouldYield = defaultShouldYield) => makeBatched(task => setTimeout(task, ms), shouldYield);\n/** @internal */\nexport const currentScheduler = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/FiberRef/currentScheduler\"), () => core.fiberRefUnsafeMake(defaultScheduler));\n/** @internal */\nexport const withScheduler = /*#__PURE__*/dual(2, (self, scheduler) => core.fiberRefLocally(self, currentScheduler, scheduler));\n//# sourceMappingURL=Scheduler.js.map","import * as Chunk from \"../Chunk.js\";\nimport * as Either from \"../Either.js\";\nimport * as Equal from \"../Equal.js\";\nimport * as HashMap from \"../HashMap.js\";\nimport * as List from \"../List.js\";\nimport * as Option from \"../Option.js\";\nimport { hasProperty } from \"../Predicate.js\";\n/** @internal */\nexport const empty = {\n _tag: \"Empty\"\n};\n/**\n * Combines this collection of blocked requests with the specified collection\n * of blocked requests, in parallel.\n *\n * @internal\n */\nexport const par = (self, that) => ({\n _tag: \"Par\",\n left: self,\n right: that\n});\n/**\n * Combines this collection of blocked requests with the specified collection\n * of blocked requests, in sequence.\n *\n * @internal\n */\nexport const seq = (self, that) => ({\n _tag: \"Seq\",\n left: self,\n right: that\n});\n/**\n * Constructs a collection of blocked requests from the specified blocked\n * request and data source.\n *\n * @internal\n */\nexport const single = (dataSource, blockedRequest) => ({\n _tag: \"Single\",\n dataSource: dataSource,\n blockedRequest\n});\n/** @internal */\nexport const MapRequestResolversReducer = f => ({\n emptyCase: () => empty,\n parCase: (left, right) => par(left, right),\n seqCase: (left, right) => seq(left, right),\n singleCase: (dataSource, blockedRequest) => single(f(dataSource), blockedRequest)\n});\n/**\n * Transforms all data sources with the specified data source aspect, which\n * can change the environment type of data sources but must preserve the\n * request type of each data source.\n *\n * @internal\n */\nexport const mapRequestResolvers = (self, f) => reduce(self, MapRequestResolversReducer(f));\n/**\n * Folds over the cases of this collection of blocked requests with the\n * specified functions.\n *\n * @internal\n */\nexport const reduce = (self, reducer) => {\n let input = List.of(self);\n let output = List.empty();\n while (List.isCons(input)) {\n const current = input.head;\n switch (current._tag) {\n case \"Empty\":\n {\n output = List.cons(Either.right(reducer.emptyCase()), output);\n input = input.tail;\n break;\n }\n case \"Par\":\n {\n output = List.cons(Either.left({\n _tag: \"ParCase\"\n }), output);\n input = List.cons(current.left, List.cons(current.right, input.tail));\n break;\n }\n case \"Seq\":\n {\n output = List.cons(Either.left({\n _tag: \"SeqCase\"\n }), output);\n input = List.cons(current.left, List.cons(current.right, input.tail));\n break;\n }\n case \"Single\":\n {\n const result = reducer.singleCase(current.dataSource, current.blockedRequest);\n output = List.cons(Either.right(result), output);\n input = input.tail;\n break;\n }\n }\n }\n const result = List.reduce(output, List.empty(), (acc, current) => {\n switch (current._tag) {\n case \"Left\":\n {\n const left = List.unsafeHead(acc);\n const right = List.unsafeHead(List.unsafeTail(acc));\n const tail = List.unsafeTail(List.unsafeTail(acc));\n switch (current.left._tag) {\n case \"ParCase\":\n {\n return List.cons(reducer.parCase(left, right), tail);\n }\n case \"SeqCase\":\n {\n return List.cons(reducer.seqCase(left, right), tail);\n }\n }\n }\n case \"Right\":\n {\n return List.cons(current.right, acc);\n }\n }\n });\n if (List.isNil(result)) {\n throw new Error(\"BUG: BlockedRequests.reduce - please report an issue at https://github.com/Effect-TS/effect/issues\");\n }\n return result.head;\n};\n/**\n * Flattens a collection of blocked requests into a collection of pipelined\n * and batched requests that can be submitted for execution.\n *\n * @internal\n */\nexport const flatten = self => {\n let current = List.of(self);\n let updated = List.empty();\n // eslint-disable-next-line no-constant-condition\n while (1) {\n const [parallel, sequential] = List.reduce(current, [parallelCollectionEmpty(), List.empty()], ([parallel, sequential], blockedRequest) => {\n const [par, seq] = step(blockedRequest);\n return [parallelCollectionCombine(parallel, par), List.appendAll(sequential, seq)];\n });\n updated = merge(updated, parallel);\n if (List.isNil(sequential)) {\n return List.reverse(updated);\n }\n current = sequential;\n }\n throw new Error(\"BUG: BlockedRequests.flatten - please report an issue at https://github.com/Effect-TS/effect/issues\");\n};\n/**\n * Takes one step in evaluating a collection of blocked requests, returning a\n * collection of blocked requests that can be performed in parallel and a list\n * of blocked requests that must be performed sequentially after those\n * requests.\n */\nconst step = requests => {\n let current = requests;\n let parallel = parallelCollectionEmpty();\n let stack = List.empty();\n let sequential = List.empty();\n // eslint-disable-next-line no-constant-condition\n while (1) {\n switch (current._tag) {\n case \"Empty\":\n {\n if (List.isNil(stack)) {\n return [parallel, sequential];\n }\n current = stack.head;\n stack = stack.tail;\n break;\n }\n case \"Par\":\n {\n stack = List.cons(current.right, stack);\n current = current.left;\n break;\n }\n case \"Seq\":\n {\n const left = current.left;\n const right = current.right;\n switch (left._tag) {\n case \"Empty\":\n {\n current = right;\n break;\n }\n case \"Par\":\n {\n const l = left.left;\n const r = left.right;\n current = par(seq(l, right), seq(r, right));\n break;\n }\n case \"Seq\":\n {\n const l = left.left;\n const r = left.right;\n current = seq(l, seq(r, right));\n break;\n }\n case \"Single\":\n {\n current = left;\n sequential = List.cons(right, sequential);\n break;\n }\n }\n break;\n }\n case \"Single\":\n {\n parallel = parallelCollectionAdd(parallel, current);\n if (List.isNil(stack)) {\n return [parallel, sequential];\n }\n current = stack.head;\n stack = stack.tail;\n break;\n }\n }\n }\n throw new Error(\"BUG: BlockedRequests.step - please report an issue at https://github.com/Effect-TS/effect/issues\");\n};\n/**\n * Merges a collection of requests that must be executed sequentially with a\n * collection of requests that can be executed in parallel. If the collections\n * are both from the same single data source then the requests can be\n * pipelined while preserving ordering guarantees.\n */\nconst merge = (sequential, parallel) => {\n if (List.isNil(sequential)) {\n return List.of(parallelCollectionToSequentialCollection(parallel));\n }\n if (parallelCollectionIsEmpty(parallel)) {\n return sequential;\n }\n const seqHeadKeys = sequentialCollectionKeys(sequential.head);\n const parKeys = parallelCollectionKeys(parallel);\n if (seqHeadKeys.length === 1 && parKeys.length === 1 && Equal.equals(seqHeadKeys[0], parKeys[0])) {\n return List.cons(sequentialCollectionCombine(sequential.head, parallelCollectionToSequentialCollection(parallel)), sequential.tail);\n }\n return List.cons(parallelCollectionToSequentialCollection(parallel), sequential);\n};\n//\n// circular\n//\n/** @internal */\nexport const EntryTypeId = /*#__PURE__*/Symbol.for(\"effect/RequestBlock/Entry\");\n/** @internal */\nclass EntryImpl {\n request;\n result;\n listeners;\n ownerId;\n state;\n [EntryTypeId] = blockedRequestVariance;\n constructor(request, result, listeners, ownerId, state) {\n this.request = request;\n this.result = result;\n this.listeners = listeners;\n this.ownerId = ownerId;\n this.state = state;\n }\n}\nconst blockedRequestVariance = {\n /* c8 ignore next */\n _R: _ => _\n};\n/** @internal */\nexport const isEntry = u => hasProperty(u, EntryTypeId);\n/** @internal */\nexport const makeEntry = options => new EntryImpl(options.request, options.result, options.listeners, options.ownerId, options.state);\n/** @internal */\nexport const RequestBlockParallelTypeId = /*#__PURE__*/Symbol.for(\"effect/RequestBlock/RequestBlockParallel\");\nconst parallelVariance = {\n /* c8 ignore next */\n _R: _ => _\n};\nclass ParallelImpl {\n map;\n [RequestBlockParallelTypeId] = parallelVariance;\n constructor(map) {\n this.map = map;\n }\n}\n/** @internal */\nexport const parallelCollectionEmpty = () => new ParallelImpl(HashMap.empty());\n/** @internal */\nexport const parallelCollectionMake = (dataSource, blockedRequest) => new ParallelImpl(HashMap.make([dataSource, Chunk.of(blockedRequest)]));\n/** @internal */\nexport const parallelCollectionAdd = (self, blockedRequest) => new ParallelImpl(HashMap.modifyAt(self.map, blockedRequest.dataSource, _ => Option.orElseSome(Option.map(_, Chunk.append(blockedRequest.blockedRequest)), () => Chunk.of(blockedRequest.blockedRequest))));\n/** @internal */\nexport const parallelCollectionCombine = (self, that) => new ParallelImpl(HashMap.reduce(self.map, that.map, (map, value, key) => HashMap.set(map, key, Option.match(HashMap.get(map, key), {\n onNone: () => value,\n onSome: other => Chunk.appendAll(value, other)\n}))));\n/** @internal */\nexport const parallelCollectionIsEmpty = self => HashMap.isEmpty(self.map);\n/** @internal */\nexport const parallelCollectionKeys = self => Array.from(HashMap.keys(self.map));\n/** @internal */\nexport const parallelCollectionToSequentialCollection = self => sequentialCollectionMake(HashMap.map(self.map, x => Chunk.of(x)));\n// TODO\n// /** @internal */\n// export const parallelCollectionToChunk = (\n// self: ParallelCollection\n// ): Array<[RequestResolver.RequestResolver, Array>]> => Array.from(self.map) as any\n/** @internal */\nexport const SequentialCollectionTypeId = /*#__PURE__*/Symbol.for(\"effect/RequestBlock/RequestBlockSequential\");\nconst sequentialVariance = {\n /* c8 ignore next */\n _R: _ => _\n};\nclass SequentialImpl {\n map;\n [SequentialCollectionTypeId] = sequentialVariance;\n constructor(map) {\n this.map = map;\n }\n}\n/** @internal */\nexport const sequentialCollectionMake = map => new SequentialImpl(map);\n/** @internal */\nexport const sequentialCollectionCombine = (self, that) => new SequentialImpl(HashMap.reduce(that.map, self.map, (map, value, key) => HashMap.set(map, key, Option.match(HashMap.get(map, key), {\n onNone: () => Chunk.empty(),\n onSome: a => Chunk.appendAll(a, value)\n}))));\n/** @internal */\nexport const sequentialCollectionIsEmpty = self => HashMap.isEmpty(self.map);\n/** @internal */\nexport const sequentialCollectionKeys = self => Array.from(HashMap.keys(self.map));\n/** @internal */\nexport const sequentialCollectionToChunk = self => Array.from(self.map);\n//# sourceMappingURL=blockedRequests.js.map","import { globalValue } from \"../GlobalValue.js\";\nimport { fiberRefUnsafeMake } from \"./core.js\";\n/** @internal */\nexport const currentRequestMap = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/FiberRef/currentRequestMap\"), () => fiberRefUnsafeMake(new Map()));\n//# sourceMappingURL=completedRequestMap.js.map","import * as core from \"./core.js\";\n/** @internal */\nexport const match = (concurrency, sequential, unbounded, bounded) => {\n switch (concurrency) {\n case undefined:\n return sequential();\n case \"unbounded\":\n return unbounded();\n case \"inherit\":\n return core.fiberRefGetWith(core.currentConcurrency, concurrency => concurrency === \"unbounded\" ? unbounded() : concurrency > 1 ? bounded(concurrency) : sequential());\n default:\n return concurrency > 1 ? bounded(concurrency) : sequential();\n }\n};\n/** @internal */\nexport const matchSimple = (concurrency, sequential, concurrent) => {\n switch (concurrency) {\n case undefined:\n return sequential();\n case \"unbounded\":\n return concurrent();\n case \"inherit\":\n return core.fiberRefGetWith(core.currentConcurrency, concurrency => concurrency === \"unbounded\" || concurrency > 1 ? concurrent() : sequential());\n default:\n return concurrency > 1 ? concurrent() : sequential();\n }\n};\n//# sourceMappingURL=concurrency.js.map","import * as core from \"./internal/core.js\";\n/**\n * Returns `true` if the specified value is an `Exit`, `false` otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isExit = core.exitIsExit;\n/**\n * Returns `true` if the specified `Exit` is a `Failure`, `false` otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isFailure = core.exitIsFailure;\n/**\n * Returns `true` if the specified `Exit` is a `Success`, `false` otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isSuccess = core.exitIsSuccess;\n/**\n * Returns `true` if the specified exit is a `Failure` **and** the `Cause` of\n * the failure was due to interruption, `false` otherwise.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const isInterrupted = core.exitIsInterrupted;\n/**\n * Maps the `Success` value of the specified exit to the provided constant\n * value.\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const as = core.exitAs;\n/**\n * Maps the `Success` value of the specified exit to a void.\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const asVoid = core.exitAsVoid;\n/**\n * Returns a `Some>` if the specified exit is a `Failure`, `None`\n * otherwise.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const causeOption = core.exitCauseOption;\n/**\n * Collects all of the specified exit values into a `Some, E>>`. If\n * the provided iterable contains no elements, `None` will be returned.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const all = core.exitCollectAll;\n/**\n * Constructs a new `Exit.Failure` from the specified unrecoverable defect.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const die = core.exitDie;\n/**\n * Executes the predicate on the value of the specified exit if it is a\n * `Success`, otherwise returns `false`.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const exists = core.exitExists;\n/**\n * Constructs a new `Exit.Failure` from the specified recoverable error of type\n * `E`.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const fail = core.exitFail;\n/**\n * Constructs a new `Exit.Failure` from the specified `Cause` of type `E`.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const failCause = core.exitFailCause;\n/**\n * @since 2.0.0\n * @category sequencing\n */\nexport const flatMap = core.exitFlatMap;\n/**\n * @since 2.0.0\n * @category sequencing\n */\nexport const flatMapEffect = core.exitFlatMapEffect;\n/**\n * @since 2.0.0\n * @category sequencing\n */\nexport const flatten = core.exitFlatten;\n/**\n * @since 2.0.0\n * @category traversing\n */\nexport const forEachEffect = core.exitForEachEffect;\n/**\n * Converts an `Either` into an `Exit`.\n *\n * @since 2.0.0\n * @category conversions\n */\nexport const fromEither = core.exitFromEither;\n/**\n * Converts an `Option` into an `Exit`.\n *\n * @since 2.0.0\n * @category conversions\n */\nexport const fromOption = core.exitFromOption;\n/**\n * Returns the `A` if specified exit is a `Success`, otherwise returns the\n * alternate `A` value computed from the specified function which receives the\n * `Cause` of the exit `Failure`.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const getOrElse = core.exitGetOrElse;\n/**\n * Constructs a new `Exit.Failure` from the specified `FiberId` indicating that\n * the `Fiber` running an `Effect` workflow was terminated due to interruption.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const interrupt = core.exitInterrupt;\n/**\n * Maps over the `Success` value of the specified exit using the provided\n * function.\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const map = core.exitMap;\n/**\n * Maps over the `Success` and `Failure` cases of the specified exit using the\n * provided functions.\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const mapBoth = core.exitMapBoth;\n/**\n * Maps over the error contained in the `Failure` of the specified exit using\n * the provided function.\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const mapError = core.exitMapError;\n/**\n * Maps over the `Cause` contained in the `Failure` of the specified exit using\n * the provided function.\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const mapErrorCause = core.exitMapErrorCause;\n/**\n * @since 2.0.0\n * @category folding\n */\nexport const match = core.exitMatch;\n/**\n * @since 2.0.0\n * @category folding\n */\nexport const matchEffect = core.exitMatchEffect;\n/**\n * Constructs a new `Exit.Success` containing the specified value of type `A`.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const succeed = core.exitSucceed;\nconst void_ = core.exitVoid;\nexport {\n/**\n * Represents an `Exit` which succeeds with `undefined`.\n *\n * @since 2.0.0\n * @category constructors\n */\nvoid_ as void };\n/**\n * Sequentially zips the this result with the specified result or else returns\n * the failed `Cause`.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zip = core.exitZip;\n/**\n * Sequentially zips the this result with the specified result discarding the\n * second element of the tuple or else returns the failed `Cause`.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zipLeft = core.exitZipLeft;\n/**\n * Sequentially zips the this result with the specified result discarding the\n * first element of the tuple or else returns the failed `Cause`.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zipRight = core.exitZipRight;\n/**\n * Parallelly zips the this result with the specified result or else returns\n * the failed `Cause`.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zipPar = core.exitZipPar;\n/**\n * Parallelly zips the this result with the specified result discarding the\n * second element of the tuple or else returns the failed `Cause`.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zipParLeft = core.exitZipParLeft;\n/**\n * Parallelly zips the this result with the specified result discarding the\n * first element of the tuple or else returns the failed `Cause`.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zipParRight = core.exitZipParRight;\n/**\n * Zips this exit together with that exit using the specified combination\n * functions.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zipWith = core.exitZipWith;\n//# sourceMappingURL=Exit.js.map","/** @internal */\nexport const OP_INTERRUPT_SIGNAL = \"InterruptSignal\";\n/** @internal */\nexport const OP_STATEFUL = \"Stateful\";\n/** @internal */\nexport const OP_RESUME = \"Resume\";\n/** @internal */\nexport const OP_YIELD_NOW = \"YieldNow\";\n/** @internal */\nexport const interruptSignal = cause => ({\n _tag: OP_INTERRUPT_SIGNAL,\n cause\n});\n/** @internal */\nexport const stateful = onFiber => ({\n _tag: OP_STATEFUL,\n onFiber\n});\n/** @internal */\nexport const resume = effect => ({\n _tag: OP_RESUME,\n effect\n});\n/** @internal */\nexport const yieldNow = () => ({\n _tag: OP_YIELD_NOW\n});\n//# sourceMappingURL=fiberMessage.js.map","import * as FiberId from \"../FiberId.js\";\nimport { globalValue } from \"../GlobalValue.js\";\nimport * as FiberMessage from \"./fiberMessage.js\";\n/** @internal */\nconst FiberScopeSymbolKey = \"effect/FiberScope\";\n/** @internal */\nexport const FiberScopeTypeId = /*#__PURE__*/Symbol.for(FiberScopeSymbolKey);\n/** @internal */\nclass Global {\n [FiberScopeTypeId] = FiberScopeTypeId;\n fiberId = FiberId.none;\n roots = /*#__PURE__*/new Set();\n add(_runtimeFlags, child) {\n this.roots.add(child);\n child.addObserver(() => {\n this.roots.delete(child);\n });\n }\n}\n/** @internal */\nclass Local {\n fiberId;\n parent;\n [FiberScopeTypeId] = FiberScopeTypeId;\n constructor(fiberId, parent) {\n this.fiberId = fiberId;\n this.parent = parent;\n }\n add(_runtimeFlags, child) {\n this.parent.tell(FiberMessage.stateful(parentFiber => {\n parentFiber.addChild(child);\n child.addObserver(() => {\n parentFiber.removeChild(child);\n });\n }));\n }\n}\n/** @internal */\nexport const unsafeMake = fiber => {\n return new Local(fiber.id(), fiber);\n};\n/** @internal */\nexport const globalScope = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/FiberScope/Global\"), () => new Global());\n//# sourceMappingURL=fiberScope.js.map","import * as Clock from \"../Clock.js\";\nimport * as Either from \"../Either.js\";\nimport * as Exit from \"../Exit.js\";\nimport * as FiberId from \"../FiberId.js\";\nimport * as FiberStatus from \"../FiberStatus.js\";\nimport { dual, pipe } from \"../Function.js\";\nimport * as HashSet from \"../HashSet.js\";\nimport * as number from \"../Number.js\";\nimport * as Option from \"../Option.js\";\nimport * as order from \"../Order.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport { hasProperty } from \"../Predicate.js\";\nimport * as core from \"./core.js\";\nimport * as effectable from \"./effectable.js\";\nimport * as fiberScope from \"./fiberScope.js\";\nimport * as runtimeFlags from \"./runtimeFlags.js\";\n/** @internal */\nconst FiberSymbolKey = \"effect/Fiber\";\n/** @internal */\nexport const FiberTypeId = /*#__PURE__*/Symbol.for(FiberSymbolKey);\n/** @internal */\nexport const fiberVariance = {\n /* c8 ignore next */\n _E: _ => _,\n /* c8 ignore next */\n _A: _ => _\n};\n/** @internal */\nconst fiberProto = {\n [FiberTypeId]: fiberVariance,\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\n/** @internal */\nconst RuntimeFiberSymbolKey = \"effect/Fiber\";\n/** @internal */\nexport const RuntimeFiberTypeId = /*#__PURE__*/Symbol.for(RuntimeFiberSymbolKey);\n/** @internal */\nexport const Order = /*#__PURE__*/pipe(/*#__PURE__*/order.tuple(number.Order, number.Order), /*#__PURE__*/order.mapInput(fiber => [fiber.id().startTimeMillis, fiber.id().id]));\n/** @internal */\nexport const isFiber = u => hasProperty(u, FiberTypeId);\n/** @internal */\nexport const isRuntimeFiber = self => RuntimeFiberTypeId in self;\n/** @internal */\nexport const _await = self => self.await;\n/** @internal */\nexport const children = self => self.children;\n/** @internal */\nexport const done = exit => {\n const _fiber = {\n ...effectable.CommitPrototype,\n commit() {\n return join(this);\n },\n ...fiberProto,\n id: () => FiberId.none,\n await: core.succeed(exit),\n children: core.succeed([]),\n inheritAll: core.void,\n poll: core.succeed(Option.some(exit)),\n interruptAsFork: () => core.void\n };\n return _fiber;\n};\n/** @internal */\nexport const dump = self => core.map(self.status, status => ({\n id: self.id(),\n status\n}));\n/** @internal */\nexport const dumpAll = fibers => core.forEachSequential(fibers, dump);\n/** @internal */\nexport const fail = error => done(Exit.fail(error));\n/** @internal */\nexport const failCause = cause => done(Exit.failCause(cause));\n/** @internal */\nexport const fromEffect = effect => core.map(core.exit(effect), done);\n/** @internal */\nexport const id = self => self.id();\n/** @internal */\nexport const inheritAll = self => self.inheritAll;\n/** @internal */\nexport const interrupted = fiberId => done(Exit.interrupt(fiberId));\n/** @internal */\nexport const interruptAll = fibers => core.flatMap(core.fiberId, fiberId => pipe(fibers, interruptAllAs(fiberId)));\n/** @internal */\nexport const interruptAllAs = /*#__PURE__*/dual(2, /*#__PURE__*/core.fnUntraced(function* (fibers, fiberId) {\n for (const fiber of fibers) {\n if (isRuntimeFiber(fiber)) {\n fiber.unsafeInterruptAsFork(fiberId);\n continue;\n }\n yield* fiber.interruptAsFork(fiberId);\n }\n for (const fiber of fibers) {\n if (isRuntimeFiber(fiber) && fiber.unsafePoll()) {\n continue;\n }\n yield* fiber.await;\n }\n}));\n/** @internal */\nexport const interruptAsFork = /*#__PURE__*/dual(2, (self, fiberId) => self.interruptAsFork(fiberId));\n/** @internal */\nexport const join = self => core.zipLeft(core.flatten(self.await), self.inheritAll);\n/** @internal */\nexport const map = /*#__PURE__*/dual(2, (self, f) => mapEffect(self, a => core.sync(() => f(a))));\n/** @internal */\nexport const mapEffect = /*#__PURE__*/dual(2, (self, f) => {\n const _fiber = {\n ...effectable.CommitPrototype,\n commit() {\n return join(this);\n },\n ...fiberProto,\n id: () => self.id(),\n await: core.flatMap(self.await, Exit.forEachEffect(f)),\n children: self.children,\n inheritAll: self.inheritAll,\n poll: core.flatMap(self.poll, result => {\n switch (result._tag) {\n case \"None\":\n return core.succeed(Option.none());\n case \"Some\":\n return pipe(Exit.forEachEffect(result.value, f), core.map(Option.some));\n }\n }),\n interruptAsFork: id => self.interruptAsFork(id)\n };\n return _fiber;\n});\n/** @internal */\nexport const mapFiber = /*#__PURE__*/dual(2, (self, f) => core.map(self.await, Exit.match({\n onFailure: cause => failCause(cause),\n onSuccess: a => f(a)\n})));\n/** @internal */\nexport const match = /*#__PURE__*/dual(2, (self, {\n onFiber,\n onRuntimeFiber\n}) => {\n if (isRuntimeFiber(self)) {\n return onRuntimeFiber(self);\n }\n return onFiber(self);\n});\n/** @internal */\nconst _never = {\n ...effectable.CommitPrototype,\n commit() {\n return join(this);\n },\n ...fiberProto,\n id: () => FiberId.none,\n await: core.never,\n children: /*#__PURE__*/core.succeed([]),\n inheritAll: core.never,\n poll: /*#__PURE__*/core.succeed(/*#__PURE__*/Option.none()),\n interruptAsFork: () => core.never\n};\n/** @internal */\nexport const never = _never;\n/** @internal */\nexport const orElse = /*#__PURE__*/dual(2, (self, that) => ({\n ...effectable.CommitPrototype,\n commit() {\n return join(this);\n },\n ...fiberProto,\n id: () => FiberId.getOrElse(self.id(), that.id()),\n await: core.zipWith(self.await, that.await, (exit1, exit2) => Exit.isSuccess(exit1) ? exit1 : exit2),\n children: self.children,\n inheritAll: core.zipRight(that.inheritAll, self.inheritAll),\n poll: core.zipWith(self.poll, that.poll, (option1, option2) => {\n switch (option1._tag) {\n case \"None\":\n {\n return Option.none();\n }\n case \"Some\":\n {\n return Exit.isSuccess(option1.value) ? option1 : option2;\n }\n }\n }),\n interruptAsFork: id => pipe(core.interruptAsFiber(self, id), core.zipRight(pipe(that, core.interruptAsFiber(id))), core.asVoid)\n}));\n/** @internal */\nexport const orElseEither = /*#__PURE__*/dual(2, (self, that) => orElse(map(self, Either.left), map(that, Either.right)));\n/** @internal */\nexport const poll = self => self.poll;\n// forked from https://github.com/sindresorhus/parse-ms/blob/4da2ffbdba02c6e288c08236695bdece0adca173/index.js\n// MIT License\n// Copyright (c) Sindre Sorhus (sindresorhus.com)\n/** @internal */\nconst parseMs = milliseconds => {\n const roundTowardsZero = milliseconds > 0 ? Math.floor : Math.ceil;\n return {\n days: roundTowardsZero(milliseconds / 86400000),\n hours: roundTowardsZero(milliseconds / 3600000) % 24,\n minutes: roundTowardsZero(milliseconds / 60000) % 60,\n seconds: roundTowardsZero(milliseconds / 1000) % 60,\n milliseconds: roundTowardsZero(milliseconds) % 1000,\n microseconds: roundTowardsZero(milliseconds * 1000) % 1000,\n nanoseconds: roundTowardsZero(milliseconds * 1e6) % 1000\n };\n};\n/** @internal */\nconst renderStatus = status => {\n if (FiberStatus.isDone(status)) {\n return \"Done\";\n }\n if (FiberStatus.isRunning(status)) {\n return \"Running\";\n }\n const isInterruptible = runtimeFlags.interruptible(status.runtimeFlags) ? \"interruptible\" : \"uninterruptible\";\n return `Suspended(${isInterruptible})`;\n};\n/** @internal */\nexport const pretty = self => core.flatMap(Clock.currentTimeMillis, now => core.map(dump(self), dump => {\n const time = now - dump.id.startTimeMillis;\n const {\n days,\n hours,\n milliseconds,\n minutes,\n seconds\n } = parseMs(time);\n const lifeMsg = (days === 0 ? \"\" : `${days}d`) + (days === 0 && hours === 0 ? \"\" : `${hours}h`) + (days === 0 && hours === 0 && minutes === 0 ? \"\" : `${minutes}m`) + (days === 0 && hours === 0 && minutes === 0 && seconds === 0 ? \"\" : `${seconds}s`) + `${milliseconds}ms`;\n const waitMsg = FiberStatus.isSuspended(dump.status) ? (() => {\n const ids = FiberId.ids(dump.status.blockingOn);\n return HashSet.size(ids) > 0 ? `waiting on ` + Array.from(ids).map(id => `${id}`).join(\", \") : \"\";\n })() : \"\";\n const statusMsg = renderStatus(dump.status);\n return `[Fiber](#${dump.id.id}) (${lifeMsg}) ${waitMsg}\\n Status: ${statusMsg}`;\n}));\n/** @internal */\nexport const unsafeRoots = () => Array.from(fiberScope.globalScope.roots);\n/** @internal */\nexport const roots = /*#__PURE__*/core.sync(unsafeRoots);\n/** @internal */\nexport const status = self => self.status;\n/** @internal */\nexport const succeed = value => done(Exit.succeed(value));\nconst void_ = /*#__PURE__*/succeed(void 0);\nexport { /** @internal */\nvoid_ as void };\n/** @internal */\nexport const currentFiberURI = \"effect/FiberCurrent\";\n/** @internal */\nexport const getCurrentFiber = () => Option.fromNullable(globalThis[currentFiberURI]);\n//# sourceMappingURL=fiber.js.map","import * as Arr from \"../Array.js\";\nimport * as Context from \"../Context.js\";\nimport * as FiberRefs from \"../FiberRefs.js\";\nimport { constVoid, dual } from \"../Function.js\";\nimport { globalValue } from \"../GlobalValue.js\";\nimport * as HashMap from \"../HashMap.js\";\nimport * as Inspectable from \"../Inspectable.js\";\nimport * as List from \"../List.js\";\nimport * as Option from \"../Option.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport * as Cause from \"./cause.js\";\nimport * as defaultServices from \"./defaultServices.js\";\nimport { consoleTag } from \"./defaultServices/console.js\";\nimport * as fiberId_ from \"./fiberId.js\";\nimport * as logSpan_ from \"./logSpan.js\";\n/** @internal */\nconst LoggerSymbolKey = \"effect/Logger\";\n/** @internal */\nexport const LoggerTypeId = /*#__PURE__*/Symbol.for(LoggerSymbolKey);\nconst loggerVariance = {\n /* c8 ignore next */\n _Message: _ => _,\n /* c8 ignore next */\n _Output: _ => _\n};\n/** @internal */\nexport const makeLogger = log => ({\n [LoggerTypeId]: loggerVariance,\n log,\n pipe() {\n return pipeArguments(this, arguments);\n }\n});\n/** @internal */\nexport const mapInput = /*#__PURE__*/dual(2, (self, f) => makeLogger(options => self.log({\n ...options,\n message: f(options.message)\n})));\n/** @internal */\nexport const mapInputOptions = /*#__PURE__*/dual(2, (self, f) => makeLogger(options => self.log(f(options))));\n/** @internal */\nexport const filterLogLevel = /*#__PURE__*/dual(2, (self, f) => makeLogger(options => f(options.logLevel) ? Option.some(self.log(options)) : Option.none()));\n/** @internal */\nexport const map = /*#__PURE__*/dual(2, (self, f) => makeLogger(options => f(self.log(options))));\n/** @internal */\nexport const none = {\n [LoggerTypeId]: loggerVariance,\n log: constVoid,\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\n/** @internal */\nexport const simple = log => ({\n [LoggerTypeId]: loggerVariance,\n log: ({\n message\n }) => log(message),\n pipe() {\n return pipeArguments(this, arguments);\n }\n});\n/** @internal */\nexport const succeed = value => {\n return simple(() => value);\n};\n/** @internal */\nexport const sync = evaluate => {\n return simple(evaluate);\n};\n/** @internal */\nexport const zip = /*#__PURE__*/dual(2, (self, that) => makeLogger(options => [self.log(options), that.log(options)]));\n/** @internal */\nexport const zipLeft = /*#__PURE__*/dual(2, (self, that) => map(zip(self, that), tuple => tuple[0]));\n/** @internal */\nexport const zipRight = /*#__PURE__*/dual(2, (self, that) => map(zip(self, that), tuple => tuple[1]));\n/**\n * Match strings that do not contain any whitespace characters, double quotes,\n * or equal signs.\n *\n * @internal\n */\nconst textOnly = /^[^\\s\"=]*$/;\n/**\n * Used by both {@link stringLogger} and {@link logfmtLogger} to render a log\n * message.\n *\n * @internal\n */\nconst format = (quoteValue, whitespace) => ({\n annotations,\n cause,\n date,\n fiberId,\n logLevel,\n message,\n spans\n}) => {\n const formatValue = value => value.match(textOnly) ? value : quoteValue(value);\n const format = (label, value) => `${logSpan_.formatLabel(label)}=${formatValue(value)}`;\n const append = (label, value) => \" \" + format(label, value);\n let out = format(\"timestamp\", date.toISOString());\n out += append(\"level\", logLevel.label);\n out += append(\"fiber\", fiberId_.threadName(fiberId));\n const messages = Arr.ensure(message);\n for (let i = 0; i < messages.length; i++) {\n out += append(\"message\", Inspectable.toStringUnknown(messages[i], whitespace));\n }\n if (!Cause.isEmptyType(cause)) {\n out += append(\"cause\", Cause.pretty(cause, {\n renderErrorCause: true\n }));\n }\n for (const span of spans) {\n out += \" \" + logSpan_.render(date.getTime())(span);\n }\n for (const [label, value] of annotations) {\n out += append(label, Inspectable.toStringUnknown(value, whitespace));\n }\n return out;\n};\n/** @internal */\nconst escapeDoubleQuotes = s => `\"${s.replace(/\\\\([\\s\\S])|(\")/g, \"\\\\$1$2\")}\"`;\n/** @internal */\nexport const stringLogger = /*#__PURE__*/makeLogger(/*#__PURE__*/format(escapeDoubleQuotes));\n/** @internal */\nexport const logfmtLogger = /*#__PURE__*/makeLogger(/*#__PURE__*/format(JSON.stringify, 0));\n/** @internal */\nexport const structuredLogger = /*#__PURE__*/makeLogger(({\n annotations,\n cause,\n date,\n fiberId,\n logLevel,\n message,\n spans\n}) => {\n const now = date.getTime();\n const annotationsObj = {};\n const spansObj = {};\n if (HashMap.size(annotations) > 0) {\n for (const [k, v] of annotations) {\n annotationsObj[k] = structuredMessage(v);\n }\n }\n if (List.isCons(spans)) {\n for (const span of spans) {\n spansObj[span.label] = now - span.startTime;\n }\n }\n const messageArr = Arr.ensure(message);\n return {\n message: messageArr.length === 1 ? structuredMessage(messageArr[0]) : messageArr.map(structuredMessage),\n logLevel: logLevel.label,\n timestamp: date.toISOString(),\n cause: Cause.isEmpty(cause) ? undefined : Cause.pretty(cause, {\n renderErrorCause: true\n }),\n annotations: annotationsObj,\n spans: spansObj,\n fiberId: fiberId_.threadName(fiberId)\n };\n});\n/** @internal */\nexport const structuredMessage = u => {\n switch (typeof u) {\n case \"bigint\":\n case \"function\":\n case \"symbol\":\n {\n return String(u);\n }\n default:\n {\n return Inspectable.toJSON(u);\n }\n }\n};\n/** @internal */\nexport const jsonLogger = /*#__PURE__*/map(structuredLogger, Inspectable.stringifyCircular);\n/** @internal */\nexport const isLogger = u => {\n return typeof u === \"object\" && u != null && LoggerTypeId in u;\n};\nconst withColor = (text, ...colors) => {\n let out = \"\";\n for (let i = 0; i < colors.length; i++) {\n out += `\\x1b[${colors[i]}m`;\n }\n return out + text + \"\\x1b[0m\";\n};\nconst withColorNoop = (text, ..._colors) => text;\nconst colors = {\n bold: \"1\",\n red: \"31\",\n green: \"32\",\n yellow: \"33\",\n blue: \"34\",\n cyan: \"36\",\n white: \"37\",\n gray: \"90\",\n black: \"30\",\n bgBrightRed: \"101\"\n};\nconst logLevelColors = {\n None: [],\n All: [],\n Trace: [colors.gray],\n Debug: [colors.blue],\n Info: [colors.green],\n Warning: [colors.yellow],\n Error: [colors.red],\n Fatal: [colors.bgBrightRed, colors.black]\n};\nconst logLevelStyle = {\n None: \"\",\n All: \"\",\n Trace: \"color:gray\",\n Debug: \"color:blue\",\n Info: \"color:green\",\n Warning: \"color:orange\",\n Error: \"color:red\",\n Fatal: \"background-color:red;color:white\"\n};\nconst defaultDateFormat = date => `${date.getHours().toString().padStart(2, \"0\")}:${date.getMinutes().toString().padStart(2, \"0\")}:${date.getSeconds().toString().padStart(2, \"0\")}.${date.getMilliseconds().toString().padStart(3, \"0\")}`;\nconst hasProcessStdout = typeof process === \"object\" && process !== null && typeof process.stdout === \"object\" && process.stdout !== null;\nconst processStdoutIsTTY = hasProcessStdout && process.stdout.isTTY === true;\nconst hasProcessStdoutOrDeno = hasProcessStdout || \"Deno\" in globalThis;\n/** @internal */\nexport const prettyLogger = options => {\n const mode_ = options?.mode ?? \"auto\";\n const mode = mode_ === \"auto\" ? hasProcessStdoutOrDeno ? \"tty\" : \"browser\" : mode_;\n const isBrowser = mode === \"browser\";\n const showColors = typeof options?.colors === \"boolean\" ? options.colors : processStdoutIsTTY || isBrowser;\n const formatDate = options?.formatDate ?? defaultDateFormat;\n return isBrowser ? prettyLoggerBrowser({\n colors: showColors,\n formatDate\n }) : prettyLoggerTty({\n colors: showColors,\n formatDate,\n stderr: options?.stderr === true\n });\n};\nconst prettyLoggerTty = options => {\n const color = options.colors ? withColor : withColorNoop;\n return makeLogger(({\n annotations,\n cause,\n context,\n date,\n fiberId,\n logLevel,\n message: message_,\n spans\n }) => {\n const services = FiberRefs.getOrDefault(context, defaultServices.currentServices);\n const console = Context.get(services, consoleTag).unsafe;\n const log = options.stderr === true ? console.error : console.log;\n const message = Arr.ensure(message_);\n let firstLine = color(`[${options.formatDate(date)}]`, colors.white) + ` ${color(logLevel.label, ...logLevelColors[logLevel._tag])}` + ` (${fiberId_.threadName(fiberId)})`;\n if (List.isCons(spans)) {\n const now = date.getTime();\n const render = logSpan_.render(now);\n for (const span of spans) {\n firstLine += \" \" + render(span);\n }\n }\n firstLine += \":\";\n let messageIndex = 0;\n if (message.length > 0) {\n const firstMaybeString = structuredMessage(message[0]);\n if (typeof firstMaybeString === \"string\") {\n firstLine += \" \" + color(firstMaybeString, colors.bold, colors.cyan);\n messageIndex++;\n }\n }\n log(firstLine);\n console.group();\n if (!Cause.isEmpty(cause)) {\n log(Cause.pretty(cause, {\n renderErrorCause: true\n }));\n }\n if (messageIndex < message.length) {\n for (; messageIndex < message.length; messageIndex++) {\n log(Inspectable.redact(message[messageIndex]));\n }\n }\n if (HashMap.size(annotations) > 0) {\n for (const [key, value] of annotations) {\n log(color(`${key}:`, colors.bold, colors.white), Inspectable.redact(value));\n }\n }\n console.groupEnd();\n });\n};\nconst prettyLoggerBrowser = options => {\n const color = options.colors ? \"%c\" : \"\";\n return makeLogger(({\n annotations,\n cause,\n context,\n date,\n fiberId,\n logLevel,\n message: message_,\n spans\n }) => {\n const services = FiberRefs.getOrDefault(context, defaultServices.currentServices);\n const console = Context.get(services, consoleTag).unsafe;\n const message = Arr.ensure(message_);\n let firstLine = `${color}[${options.formatDate(date)}]`;\n const firstParams = [];\n if (options.colors) {\n firstParams.push(\"color:gray\");\n }\n firstLine += ` ${color}${logLevel.label}${color} (${fiberId_.threadName(fiberId)})`;\n if (options.colors) {\n firstParams.push(logLevelStyle[logLevel._tag], \"\");\n }\n if (List.isCons(spans)) {\n const now = date.getTime();\n const render = logSpan_.render(now);\n for (const span of spans) {\n firstLine += \" \" + render(span);\n }\n }\n firstLine += \":\";\n let messageIndex = 0;\n if (message.length > 0) {\n const firstMaybeString = structuredMessage(message[0]);\n if (typeof firstMaybeString === \"string\") {\n firstLine += ` ${color}${firstMaybeString}`;\n if (options.colors) {\n firstParams.push(\"color:deepskyblue\");\n }\n messageIndex++;\n }\n }\n console.groupCollapsed(firstLine, ...firstParams);\n if (!Cause.isEmpty(cause)) {\n console.error(Cause.pretty(cause, {\n renderErrorCause: true\n }));\n }\n if (messageIndex < message.length) {\n for (; messageIndex < message.length; messageIndex++) {\n console.log(Inspectable.redact(message[messageIndex]));\n }\n }\n if (HashMap.size(annotations) > 0) {\n for (const [key, value] of annotations) {\n const redacted = Inspectable.redact(value);\n if (options.colors) {\n console.log(`%c${key}:`, \"color:gray\", redacted);\n } else {\n console.log(`${key}:`, redacted);\n }\n }\n }\n console.groupEnd();\n });\n};\n/** @internal */\nexport const prettyLoggerDefault = /*#__PURE__*/globalValue(\"effect/Logger/prettyLoggerDefault\", () => prettyLogger());\n//# sourceMappingURL=logger.js.map","import * as Duration from \"../../Duration.js\";\nimport * as Equal from \"../../Equal.js\";\nimport { pipe } from \"../../Function.js\";\nimport * as Hash from \"../../Hash.js\";\nimport { pipeArguments } from \"../../Pipeable.js\";\nimport { hasProperty } from \"../../Predicate.js\";\n/** @internal */\nconst MetricKeyTypeSymbolKey = \"effect/MetricKeyType\";\n/** @internal */\nexport const MetricKeyTypeTypeId = /*#__PURE__*/Symbol.for(MetricKeyTypeSymbolKey);\n/** @internal */\nconst CounterKeyTypeSymbolKey = \"effect/MetricKeyType/Counter\";\n/** @internal */\nexport const CounterKeyTypeTypeId = /*#__PURE__*/Symbol.for(CounterKeyTypeSymbolKey);\n/** @internal */\nconst FrequencyKeyTypeSymbolKey = \"effect/MetricKeyType/Frequency\";\n/** @internal */\nexport const FrequencyKeyTypeTypeId = /*#__PURE__*/Symbol.for(FrequencyKeyTypeSymbolKey);\n/** @internal */\nconst GaugeKeyTypeSymbolKey = \"effect/MetricKeyType/Gauge\";\n/** @internal */\nexport const GaugeKeyTypeTypeId = /*#__PURE__*/Symbol.for(GaugeKeyTypeSymbolKey);\n/** @internal */\nconst HistogramKeyTypeSymbolKey = \"effect/MetricKeyType/Histogram\";\n/** @internal */\nexport const HistogramKeyTypeTypeId = /*#__PURE__*/Symbol.for(HistogramKeyTypeSymbolKey);\n/** @internal */\nconst SummaryKeyTypeSymbolKey = \"effect/MetricKeyType/Summary\";\n/** @internal */\nexport const SummaryKeyTypeTypeId = /*#__PURE__*/Symbol.for(SummaryKeyTypeSymbolKey);\nconst metricKeyTypeVariance = {\n /* c8 ignore next */\n _In: _ => _,\n /* c8 ignore next */\n _Out: _ => _\n};\n/** @internal */\nclass CounterKeyType {\n incremental;\n bigint;\n [MetricKeyTypeTypeId] = metricKeyTypeVariance;\n [CounterKeyTypeTypeId] = CounterKeyTypeTypeId;\n constructor(incremental, bigint) {\n this.incremental = incremental;\n this.bigint = bigint;\n this._hash = Hash.string(CounterKeyTypeSymbolKey);\n }\n _hash;\n [Hash.symbol]() {\n return this._hash;\n }\n [Equal.symbol](that) {\n return isCounterKey(that);\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\nconst FrequencyKeyTypeHash = /*#__PURE__*/Hash.string(FrequencyKeyTypeSymbolKey);\n/** @internal */\nclass FrequencyKeyType {\n preregisteredWords;\n [MetricKeyTypeTypeId] = metricKeyTypeVariance;\n [FrequencyKeyTypeTypeId] = FrequencyKeyTypeTypeId;\n constructor(preregisteredWords) {\n this.preregisteredWords = preregisteredWords;\n }\n [Hash.symbol]() {\n return FrequencyKeyTypeHash;\n }\n [Equal.symbol](that) {\n return isFrequencyKey(that);\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\nconst GaugeKeyTypeHash = /*#__PURE__*/Hash.string(GaugeKeyTypeSymbolKey);\n/** @internal */\nclass GaugeKeyType {\n bigint;\n [MetricKeyTypeTypeId] = metricKeyTypeVariance;\n [GaugeKeyTypeTypeId] = GaugeKeyTypeTypeId;\n constructor(bigint) {\n this.bigint = bigint;\n }\n [Hash.symbol]() {\n return GaugeKeyTypeHash;\n }\n [Equal.symbol](that) {\n return isGaugeKey(that);\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nexport class HistogramKeyType {\n boundaries;\n [MetricKeyTypeTypeId] = metricKeyTypeVariance;\n [HistogramKeyTypeTypeId] = HistogramKeyTypeTypeId;\n constructor(boundaries) {\n this.boundaries = boundaries;\n this._hash = pipe(Hash.string(HistogramKeyTypeSymbolKey), Hash.combine(Hash.hash(this.boundaries)));\n }\n _hash;\n [Hash.symbol]() {\n return this._hash;\n }\n [Equal.symbol](that) {\n return isHistogramKey(that) && Equal.equals(this.boundaries, that.boundaries);\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nclass SummaryKeyType {\n maxAge;\n maxSize;\n error;\n quantiles;\n [MetricKeyTypeTypeId] = metricKeyTypeVariance;\n [SummaryKeyTypeTypeId] = SummaryKeyTypeTypeId;\n constructor(maxAge, maxSize, error, quantiles) {\n this.maxAge = maxAge;\n this.maxSize = maxSize;\n this.error = error;\n this.quantiles = quantiles;\n this._hash = pipe(Hash.string(SummaryKeyTypeSymbolKey), Hash.combine(Hash.hash(this.maxAge)), Hash.combine(Hash.hash(this.maxSize)), Hash.combine(Hash.hash(this.error)), Hash.combine(Hash.array(this.quantiles)));\n }\n _hash;\n [Hash.symbol]() {\n return this._hash;\n }\n [Equal.symbol](that) {\n return isSummaryKey(that) && Equal.equals(this.maxAge, that.maxAge) && this.maxSize === that.maxSize && this.error === that.error && Equal.equals(this.quantiles, that.quantiles);\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nexport const counter = options => new CounterKeyType(options?.incremental ?? false, options?.bigint ?? false);\n/** @internal */\nexport const frequency = options => new FrequencyKeyType(options?.preregisteredWords ?? []);\n/** @internal */\nexport const gauge = options => new GaugeKeyType(options?.bigint ?? false);\n/** @internal */\nexport const histogram = boundaries => {\n return new HistogramKeyType(boundaries);\n};\n/** @internal */\nexport const summary = options => {\n return new SummaryKeyType(Duration.decode(options.maxAge), options.maxSize, options.error, options.quantiles);\n};\n/** @internal */\nexport const isMetricKeyType = u => hasProperty(u, MetricKeyTypeTypeId);\n/** @internal */\nexport const isCounterKey = u => hasProperty(u, CounterKeyTypeTypeId);\n/** @internal */\nexport const isFrequencyKey = u => hasProperty(u, FrequencyKeyTypeTypeId);\n/** @internal */\nexport const isGaugeKey = u => hasProperty(u, GaugeKeyTypeTypeId);\n/** @internal */\nexport const isHistogramKey = u => hasProperty(u, HistogramKeyTypeTypeId);\n/** @internal */\nexport const isSummaryKey = u => hasProperty(u, SummaryKeyTypeTypeId);\n//# sourceMappingURL=keyType.js.map","import * as Arr from \"../../Array.js\";\nimport * as Equal from \"../../Equal.js\";\nimport { dual, pipe } from \"../../Function.js\";\nimport * as Hash from \"../../Hash.js\";\nimport * as Option from \"../../Option.js\";\nimport { pipeArguments } from \"../../Pipeable.js\";\nimport { hasProperty } from \"../../Predicate.js\";\nimport * as metricKeyType from \"./keyType.js\";\nimport * as metricLabel from \"./label.js\";\n/** @internal */\nconst MetricKeySymbolKey = \"effect/MetricKey\";\n/** @internal */\nexport const MetricKeyTypeId = /*#__PURE__*/Symbol.for(MetricKeySymbolKey);\nconst metricKeyVariance = {\n /* c8 ignore next */\n _Type: _ => _\n};\nconst arrayEquivilence = /*#__PURE__*/Arr.getEquivalence(Equal.equals);\n/** @internal */\nclass MetricKeyImpl {\n name;\n keyType;\n description;\n tags;\n [MetricKeyTypeId] = metricKeyVariance;\n constructor(name, keyType, description, tags = []) {\n this.name = name;\n this.keyType = keyType;\n this.description = description;\n this.tags = tags;\n this._hash = pipe(Hash.string(this.name + this.description), Hash.combine(Hash.hash(this.keyType)), Hash.combine(Hash.array(this.tags)));\n }\n _hash;\n [Hash.symbol]() {\n return this._hash;\n }\n [Equal.symbol](u) {\n return isMetricKey(u) && this.name === u.name && Equal.equals(this.keyType, u.keyType) && Equal.equals(this.description, u.description) && arrayEquivilence(this.tags, u.tags);\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nexport const isMetricKey = u => hasProperty(u, MetricKeyTypeId);\n/** @internal */\nexport const counter = (name, options) => new MetricKeyImpl(name, metricKeyType.counter(options), Option.fromNullable(options?.description));\n/** @internal */\nexport const frequency = (name, options) => new MetricKeyImpl(name, metricKeyType.frequency(options), Option.fromNullable(options?.description));\n/** @internal */\nexport const gauge = (name, options) => new MetricKeyImpl(name, metricKeyType.gauge(options), Option.fromNullable(options?.description));\n/** @internal */\nexport const histogram = (name, boundaries, description) => new MetricKeyImpl(name, metricKeyType.histogram(boundaries), Option.fromNullable(description));\n/** @internal */\nexport const summary = options => new MetricKeyImpl(options.name, metricKeyType.summary(options), Option.fromNullable(options.description));\n/** @internal */\nexport const tagged = /*#__PURE__*/dual(3, (self, key, value) => taggedWithLabels(self, [metricLabel.make(key, value)]));\n/** @internal */\nexport const taggedWithLabels = /*#__PURE__*/dual(2, (self, extraTags) => extraTags.length === 0 ? self : new MetricKeyImpl(self.name, self.keyType, self.description, Arr.union(self.tags, extraTags)));\n//# sourceMappingURL=key.js.map","import * as Equal from \"./Equal.js\";\nimport { dual } from \"./Function.js\";\nimport * as Hash from \"./Hash.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"./Inspectable.js\";\nimport * as Option from \"./Option.js\";\nimport { pipeArguments } from \"./Pipeable.js\";\nconst TypeId = /*#__PURE__*/Symbol.for(\"effect/MutableHashMap\");\nconst MutableHashMapProto = {\n [TypeId]: TypeId,\n [Symbol.iterator]() {\n return new MutableHashMapIterator(this);\n },\n toString() {\n return format(this.toJSON());\n },\n toJSON() {\n return {\n _id: \"MutableHashMap\",\n values: Array.from(this).map(toJSON)\n };\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\nclass MutableHashMapIterator {\n self;\n referentialIterator;\n bucketIterator;\n constructor(self) {\n this.self = self;\n this.referentialIterator = self.referential[Symbol.iterator]();\n }\n next() {\n if (this.bucketIterator !== undefined) {\n return this.bucketIterator.next();\n }\n const result = this.referentialIterator.next();\n if (result.done) {\n this.bucketIterator = new BucketIterator(this.self.buckets.values());\n return this.next();\n }\n return result;\n }\n [Symbol.iterator]() {\n return new MutableHashMapIterator(this.self);\n }\n}\nclass BucketIterator {\n backing;\n constructor(backing) {\n this.backing = backing;\n }\n currentBucket;\n next() {\n if (this.currentBucket === undefined) {\n const result = this.backing.next();\n if (result.done) {\n return result;\n }\n this.currentBucket = result.value[Symbol.iterator]();\n }\n const result = this.currentBucket.next();\n if (result.done) {\n this.currentBucket = undefined;\n return this.next();\n }\n return result;\n }\n}\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const empty = () => {\n const self = Object.create(MutableHashMapProto);\n self.referential = new Map();\n self.buckets = new Map();\n self.bucketsSize = 0;\n return self;\n};\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const make = (...entries) => fromIterable(entries);\n/**\n * Creates a new `MutableHashMap` from an iterable collection of key/value pairs.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const fromIterable = entries => {\n const self = empty();\n for (const [key, value] of entries) {\n set(self, key, value);\n }\n return self;\n};\n/**\n * @since 2.0.0\n * @category elements\n */\nexport const get = /*#__PURE__*/dual(2, (self, key) => {\n if (Equal.isEqual(key) === false) {\n return self.referential.has(key) ? Option.some(self.referential.get(key)) : Option.none();\n }\n const hash = key[Hash.symbol]();\n const bucket = self.buckets.get(hash);\n if (bucket === undefined) {\n return Option.none();\n }\n return getFromBucket(self, bucket, key);\n});\n/**\n * @since 3.8.0\n * @category elements\n */\nexport const keys = self => {\n const keys = Array.from(self.referential.keys());\n for (const bucket of self.buckets.values()) {\n for (let i = 0, len = bucket.length; i < len; i++) {\n keys.push(bucket[i][0]);\n }\n }\n return keys;\n};\n/**\n * @since 3.8.0\n * @category elements\n */\nexport const values = self => {\n const values = Array.from(self.referential.values());\n for (const bucket of self.buckets.values()) {\n for (let i = 0, len = bucket.length; i < len; i++) {\n values.push(bucket[i][1]);\n }\n }\n return values;\n};\nconst getFromBucket = (self, bucket, key, remove = false) => {\n for (let i = 0, len = bucket.length; i < len; i++) {\n if (key[Equal.symbol](bucket[i][0])) {\n const value = bucket[i][1];\n if (remove) {\n bucket.splice(i, 1);\n self.bucketsSize--;\n }\n return Option.some(value);\n }\n }\n return Option.none();\n};\n/**\n * @since 2.0.0\n * @category elements\n */\nexport const has = /*#__PURE__*/dual(2, (self, key) => Option.isSome(get(self, key)));\n/**\n * @since 2.0.0\n */\nexport const set = /*#__PURE__*/dual(3, (self, key, value) => {\n if (Equal.isEqual(key) === false) {\n self.referential.set(key, value);\n return self;\n }\n const hash = key[Hash.symbol]();\n const bucket = self.buckets.get(hash);\n if (bucket === undefined) {\n self.buckets.set(hash, [[key, value]]);\n self.bucketsSize++;\n return self;\n }\n removeFromBucket(self, bucket, key);\n bucket.push([key, value]);\n self.bucketsSize++;\n return self;\n});\nconst removeFromBucket = (self, bucket, key) => {\n for (let i = 0, len = bucket.length; i < len; i++) {\n if (key[Equal.symbol](bucket[i][0])) {\n bucket.splice(i, 1);\n self.bucketsSize--;\n return;\n }\n }\n};\n/**\n * Updates the value of the specified key within the `MutableHashMap` if it exists.\n *\n * @since 2.0.0\n */\nexport const modify = /*#__PURE__*/dual(3, (self, key, f) => {\n if (Equal.isEqual(key) === false) {\n if (self.referential.has(key)) {\n self.referential.set(key, f(self.referential.get(key)));\n }\n return self;\n }\n const hash = key[Hash.symbol]();\n const bucket = self.buckets.get(hash);\n if (bucket === undefined) {\n return self;\n }\n const value = getFromBucket(self, bucket, key, true);\n if (Option.isNone(value)) {\n return self;\n }\n bucket.push([key, f(value.value)]);\n self.bucketsSize++;\n return self;\n});\n/**\n * Set or remove the specified key in the `MutableHashMap` using the specified\n * update function.\n *\n * @since 2.0.0\n */\nexport const modifyAt = /*#__PURE__*/dual(3, (self, key, f) => {\n if (Equal.isEqual(key) === false) {\n const result = f(get(self, key));\n if (Option.isSome(result)) {\n set(self, key, result.value);\n } else {\n remove(self, key);\n }\n return self;\n }\n const hash = key[Hash.symbol]();\n const bucket = self.buckets.get(hash);\n if (bucket === undefined) {\n const result = f(Option.none());\n return Option.isSome(result) ? set(self, key, result.value) : self;\n }\n const result = f(getFromBucket(self, bucket, key, true));\n if (Option.isNone(result)) {\n if (bucket.length === 0) {\n self.buckets.delete(hash);\n }\n return self;\n }\n bucket.push([key, result.value]);\n self.bucketsSize++;\n return self;\n});\n/**\n * @since 2.0.0\n */\nexport const remove = /*#__PURE__*/dual(2, (self, key) => {\n if (Equal.isEqual(key) === false) {\n self.referential.delete(key);\n return self;\n }\n const hash = key[Hash.symbol]();\n const bucket = self.buckets.get(hash);\n if (bucket === undefined) {\n return self;\n }\n removeFromBucket(self, bucket, key);\n if (bucket.length === 0) {\n self.buckets.delete(hash);\n }\n return self;\n});\n/**\n * @since 2.0.0\n */\nexport const clear = self => {\n self.referential.clear();\n self.buckets.clear();\n self.bucketsSize = 0;\n return self;\n};\n/**\n * @since 2.0.0\n * @category elements\n */\nexport const size = self => {\n return self.referential.size + self.bucketsSize;\n};\n/**\n * @since 2.0.0\n */\nexport const isEmpty = self => size(self) === 0;\n/**\n * @since 2.0.0\n */\nexport const forEach = /*#__PURE__*/dual(2, (self, f) => {\n self.referential.forEach(f);\n for (const bucket of self.buckets.values()) {\n for (const [key, value] of bucket) {\n f(value, key);\n }\n }\n});\n//# sourceMappingURL=MutableHashMap.js.map","import * as Arr from \"../../Array.js\";\nimport * as Equal from \"../../Equal.js\";\nimport { pipe } from \"../../Function.js\";\nimport * as Hash from \"../../Hash.js\";\nimport { pipeArguments } from \"../../Pipeable.js\";\nimport { hasProperty } from \"../../Predicate.js\";\n/** @internal */\nconst MetricStateSymbolKey = \"effect/MetricState\";\n/** @internal */\nexport const MetricStateTypeId = /*#__PURE__*/Symbol.for(MetricStateSymbolKey);\n/** @internal */\nconst CounterStateSymbolKey = \"effect/MetricState/Counter\";\n/** @internal */\nexport const CounterStateTypeId = /*#__PURE__*/Symbol.for(CounterStateSymbolKey);\n/** @internal */\nconst FrequencyStateSymbolKey = \"effect/MetricState/Frequency\";\n/** @internal */\nexport const FrequencyStateTypeId = /*#__PURE__*/Symbol.for(FrequencyStateSymbolKey);\n/** @internal */\nconst GaugeStateSymbolKey = \"effect/MetricState/Gauge\";\n/** @internal */\nexport const GaugeStateTypeId = /*#__PURE__*/Symbol.for(GaugeStateSymbolKey);\n/** @internal */\nconst HistogramStateSymbolKey = \"effect/MetricState/Histogram\";\n/** @internal */\nexport const HistogramStateTypeId = /*#__PURE__*/Symbol.for(HistogramStateSymbolKey);\n/** @internal */\nconst SummaryStateSymbolKey = \"effect/MetricState/Summary\";\n/** @internal */\nexport const SummaryStateTypeId = /*#__PURE__*/Symbol.for(SummaryStateSymbolKey);\nconst metricStateVariance = {\n /* c8 ignore next */\n _A: _ => _\n};\n/** @internal */\nclass CounterState {\n count;\n [MetricStateTypeId] = metricStateVariance;\n [CounterStateTypeId] = CounterStateTypeId;\n constructor(count) {\n this.count = count;\n }\n [Hash.symbol]() {\n return pipe(Hash.hash(CounterStateSymbolKey), Hash.combine(Hash.hash(this.count)), Hash.cached(this));\n }\n [Equal.symbol](that) {\n return isCounterState(that) && this.count === that.count;\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\nconst arrayEquals = /*#__PURE__*/Arr.getEquivalence(Equal.equals);\n/** @internal */\nclass FrequencyState {\n occurrences;\n [MetricStateTypeId] = metricStateVariance;\n [FrequencyStateTypeId] = FrequencyStateTypeId;\n constructor(occurrences) {\n this.occurrences = occurrences;\n }\n _hash;\n [Hash.symbol]() {\n return pipe(Hash.string(FrequencyStateSymbolKey), Hash.combine(Hash.array(Arr.fromIterable(this.occurrences.entries()))), Hash.cached(this));\n }\n [Equal.symbol](that) {\n return isFrequencyState(that) && arrayEquals(Arr.fromIterable(this.occurrences.entries()), Arr.fromIterable(that.occurrences.entries()));\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nclass GaugeState {\n value;\n [MetricStateTypeId] = metricStateVariance;\n [GaugeStateTypeId] = GaugeStateTypeId;\n constructor(value) {\n this.value = value;\n }\n [Hash.symbol]() {\n return pipe(Hash.hash(GaugeStateSymbolKey), Hash.combine(Hash.hash(this.value)), Hash.cached(this));\n }\n [Equal.symbol](u) {\n return isGaugeState(u) && this.value === u.value;\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nexport class HistogramState {\n buckets;\n count;\n min;\n max;\n sum;\n [MetricStateTypeId] = metricStateVariance;\n [HistogramStateTypeId] = HistogramStateTypeId;\n constructor(buckets, count, min, max, sum) {\n this.buckets = buckets;\n this.count = count;\n this.min = min;\n this.max = max;\n this.sum = sum;\n }\n [Hash.symbol]() {\n return pipe(Hash.hash(HistogramStateSymbolKey), Hash.combine(Hash.hash(this.buckets)), Hash.combine(Hash.hash(this.count)), Hash.combine(Hash.hash(this.min)), Hash.combine(Hash.hash(this.max)), Hash.combine(Hash.hash(this.sum)), Hash.cached(this));\n }\n [Equal.symbol](that) {\n return isHistogramState(that) && Equal.equals(this.buckets, that.buckets) && this.count === that.count && this.min === that.min && this.max === that.max && this.sum === that.sum;\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nexport class SummaryState {\n error;\n quantiles;\n count;\n min;\n max;\n sum;\n [MetricStateTypeId] = metricStateVariance;\n [SummaryStateTypeId] = SummaryStateTypeId;\n constructor(error, quantiles, count, min, max, sum) {\n this.error = error;\n this.quantiles = quantiles;\n this.count = count;\n this.min = min;\n this.max = max;\n this.sum = sum;\n }\n [Hash.symbol]() {\n return pipe(Hash.hash(SummaryStateSymbolKey), Hash.combine(Hash.hash(this.error)), Hash.combine(Hash.hash(this.quantiles)), Hash.combine(Hash.hash(this.count)), Hash.combine(Hash.hash(this.min)), Hash.combine(Hash.hash(this.max)), Hash.combine(Hash.hash(this.sum)), Hash.cached(this));\n }\n [Equal.symbol](that) {\n return isSummaryState(that) && this.error === that.error && Equal.equals(this.quantiles, that.quantiles) && this.count === that.count && this.min === that.min && this.max === that.max && this.sum === that.sum;\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nexport const counter = count => new CounterState(count);\n/** @internal */\nexport const frequency = occurrences => {\n return new FrequencyState(occurrences);\n};\n/** @internal */\nexport const gauge = count => new GaugeState(count);\n/** @internal */\nexport const histogram = options => new HistogramState(options.buckets, options.count, options.min, options.max, options.sum);\n/** @internal */\nexport const summary = options => new SummaryState(options.error, options.quantiles, options.count, options.min, options.max, options.sum);\n/** @internal */\nexport const isMetricState = u => hasProperty(u, MetricStateTypeId);\n/** @internal */\nexport const isCounterState = u => hasProperty(u, CounterStateTypeId);\n/**\n * @since 2.0.0\n * @category refinements\n */\nexport const isFrequencyState = u => hasProperty(u, FrequencyStateTypeId);\n/**\n * @since 2.0.0\n * @category refinements\n */\nexport const isGaugeState = u => hasProperty(u, GaugeStateTypeId);\n/**\n * @since 2.0.0\n * @category refinements\n */\nexport const isHistogramState = u => hasProperty(u, HistogramStateTypeId);\n/**\n * @since 2.0.0\n * @category refinements\n */\nexport const isSummaryState = u => hasProperty(u, SummaryStateTypeId);\n//# sourceMappingURL=state.js.map","import * as Arr from \"../../Array.js\";\nimport * as Duration from \"../../Duration.js\";\nimport { dual, pipe } from \"../../Function.js\";\nimport * as number from \"../../Number.js\";\nimport * as Option from \"../../Option.js\";\nimport { pipeArguments } from \"../../Pipeable.js\";\nimport * as metricState from \"./state.js\";\n/** @internal */\nconst MetricHookSymbolKey = \"effect/MetricHook\";\n/** @internal */\nexport const MetricHookTypeId = /*#__PURE__*/Symbol.for(MetricHookSymbolKey);\nconst metricHookVariance = {\n /* c8 ignore next */\n _In: _ => _,\n /* c8 ignore next */\n _Out: _ => _\n};\n/** @internal */\nexport const make = options => ({\n [MetricHookTypeId]: metricHookVariance,\n pipe() {\n return pipeArguments(this, arguments);\n },\n ...options\n});\n/** @internal */\nexport const onModify = /*#__PURE__*/dual(2, (self, f) => ({\n [MetricHookTypeId]: metricHookVariance,\n pipe() {\n return pipeArguments(this, arguments);\n },\n get: self.get,\n update: self.update,\n modify: input => {\n self.modify(input);\n return f(input);\n }\n}));\n/** @internal */\nexport const onUpdate = /*#__PURE__*/dual(2, (self, f) => ({\n [MetricHookTypeId]: metricHookVariance,\n pipe() {\n return pipeArguments(this, arguments);\n },\n get: self.get,\n update: input => {\n self.update(input);\n return f(input);\n },\n modify: self.modify\n}));\nconst bigint0 = /*#__PURE__*/BigInt(0);\n/** @internal */\nexport const counter = key => {\n let sum = key.keyType.bigint ? bigint0 : 0;\n const canUpdate = key.keyType.incremental ? key.keyType.bigint ? value => value >= bigint0 : value => value >= 0 : _value => true;\n const update = value => {\n if (canUpdate(value)) {\n sum = sum + value;\n }\n };\n return make({\n get: () => metricState.counter(sum),\n update,\n modify: update\n });\n};\n/** @internal */\nexport const frequency = key => {\n const values = new Map();\n for (const word of key.keyType.preregisteredWords) {\n values.set(word, 0);\n }\n const update = word => {\n const slotCount = values.get(word) ?? 0;\n values.set(word, slotCount + 1);\n };\n return make({\n get: () => metricState.frequency(values),\n update,\n modify: update\n });\n};\n/** @internal */\nexport const gauge = (_key, startAt) => {\n let value = startAt;\n return make({\n get: () => metricState.gauge(value),\n update: v => {\n value = v;\n },\n modify: v => {\n value = value + v;\n }\n });\n};\n/** @internal */\nexport const histogram = key => {\n const bounds = key.keyType.boundaries.values;\n const size = bounds.length;\n const values = new Uint32Array(size + 1);\n // NOTE: while 64-bit floating point precision shoule be enough for any\n // practical histogram boundary values, there is still a small chance that\n // precision will be lost with very large / very small numbers. If we find\n // that is the case, a more complex approach storing the histogram boundary\n // values as a tuple of `[original: string, numeric: number]` may be warranted\n const boundaries = new Float64Array(size);\n let count = 0;\n let sum = 0;\n let min = Number.MAX_VALUE;\n let max = Number.MIN_VALUE;\n pipe(bounds, Arr.sort(number.Order), Arr.map((n, i) => {\n boundaries[i] = n;\n }));\n // Insert the value into the right bucket with a binary search\n const update = value => {\n let from = 0;\n let to = size;\n while (from !== to) {\n const mid = Math.floor(from + (to - from) / 2);\n const boundary = boundaries[mid];\n if (value <= boundary) {\n to = mid;\n } else {\n from = mid;\n }\n // The special case when to / from have a distance of one\n if (to === from + 1) {\n if (value <= boundaries[from]) {\n to = from;\n } else {\n from = to;\n }\n }\n }\n values[from] = values[from] + 1;\n count = count + 1;\n sum = sum + value;\n if (value < min) {\n min = value;\n }\n if (value > max) {\n max = value;\n }\n };\n const getBuckets = () => {\n const builder = Arr.allocate(size);\n let cumulated = 0;\n for (let i = 0; i < size; i++) {\n const boundary = boundaries[i];\n const value = values[i];\n cumulated = cumulated + value;\n builder[i] = [boundary, cumulated];\n }\n return builder;\n };\n return make({\n get: () => metricState.histogram({\n buckets: getBuckets(),\n count,\n min,\n max,\n sum\n }),\n update,\n modify: update\n });\n};\n/** @internal */\nexport const summary = key => {\n const {\n error,\n maxAge,\n maxSize,\n quantiles\n } = key.keyType;\n const sortedQuantiles = pipe(quantiles, Arr.sort(number.Order));\n const values = Arr.allocate(maxSize);\n let head = 0;\n let count = 0;\n let sum = 0;\n let min = 0;\n let max = 0;\n // Just before the snapshot we filter out all values older than maxAge\n const snapshot = now => {\n const builder = [];\n // If the buffer is not full yet it contains valid items at the 0..last\n // indices and null values at the rest of the positions.\n //\n // If the buffer is already full then all elements contains a valid\n // measurement with timestamp.\n //\n // At any given point in time we can enumerate all the non-null elements in\n // the buffer and filter them by timestamp to get a valid view of a time\n // window.\n //\n // The order does not matter because it gets sorted before passing to\n // `calculateQuantiles`.\n let i = 0;\n while (i !== maxSize - 1) {\n const item = values[i];\n if (item != null) {\n const [t, v] = item;\n const age = Duration.millis(now - t);\n if (Duration.greaterThanOrEqualTo(age, Duration.zero) && Duration.lessThanOrEqualTo(age, maxAge)) {\n builder.push(v);\n }\n }\n i = i + 1;\n }\n return calculateQuantiles(error, sortedQuantiles, Arr.sort(builder, number.Order));\n };\n const observe = (value, timestamp) => {\n if (maxSize > 0) {\n head = head + 1;\n const target = head % maxSize;\n values[target] = [timestamp, value];\n }\n min = count === 0 ? value : Math.min(min, value);\n max = count === 0 ? value : Math.max(max, value);\n count = count + 1;\n sum = sum + value;\n };\n return make({\n get: () => metricState.summary({\n error,\n quantiles: snapshot(Date.now()),\n count,\n min,\n max,\n sum\n }),\n update: ([value, timestamp]) => observe(value, timestamp),\n modify: ([value, timestamp]) => observe(value, timestamp)\n });\n};\n/** @internal */\nconst calculateQuantiles = (error, sortedQuantiles, sortedSamples) => {\n // The number of samples examined\n const sampleCount = sortedSamples.length;\n if (!Arr.isNonEmptyReadonlyArray(sortedQuantiles)) {\n return Arr.empty();\n }\n const head = sortedQuantiles[0];\n const tail = sortedQuantiles.slice(1);\n const resolvedHead = resolveQuantile(error, sampleCount, Option.none(), 0, head, sortedSamples);\n const resolved = Arr.of(resolvedHead);\n tail.forEach(quantile => {\n resolved.push(resolveQuantile(error, sampleCount, resolvedHead.value, resolvedHead.consumed, quantile, resolvedHead.rest));\n });\n return Arr.map(resolved, rq => [rq.quantile, rq.value]);\n};\n/** @internal */\nconst resolveQuantile = (error, sampleCount, current, consumed, quantile, rest) => {\n let error_1 = error;\n let sampleCount_1 = sampleCount;\n let current_1 = current;\n let consumed_1 = consumed;\n let quantile_1 = quantile;\n let rest_1 = rest;\n let error_2 = error;\n let sampleCount_2 = sampleCount;\n let current_2 = current;\n let consumed_2 = consumed;\n let quantile_2 = quantile;\n let rest_2 = rest;\n // eslint-disable-next-line no-constant-condition\n while (1) {\n // If the remaining list of samples is empty, there is nothing more to resolve\n if (!Arr.isNonEmptyReadonlyArray(rest_1)) {\n return {\n quantile: quantile_1,\n value: Option.none(),\n consumed: consumed_1,\n rest: []\n };\n }\n // If the quantile is the 100% quantile, we can take the maximum of all the\n // remaining values as the result\n if (quantile_1 === 1) {\n return {\n quantile: quantile_1,\n value: Option.some(Arr.lastNonEmpty(rest_1)),\n consumed: consumed_1 + rest_1.length,\n rest: []\n };\n }\n // Split into two chunks - the first chunk contains all elements of the same\n // value as the chunk head\n const headValue = Arr.headNonEmpty(rest_1); // Get head value since rest_1 is non-empty\n const sameHead = Arr.span(rest_1, n => n === headValue);\n // How many elements do we want to accept for this quantile\n const desired = quantile_1 * sampleCount_1;\n // The error margin\n const allowedError = error_1 / 2 * desired;\n // Taking into account the elements consumed from the samples so far and the\n // number of same elements at the beginning of the chunk, calculate the number\n // of elements we would have if we selected the current head as result\n const candConsumed = consumed_1 + sameHead[0].length;\n const candError = Math.abs(candConsumed - desired);\n // If we haven't got enough elements yet, recurse\n if (candConsumed < desired - allowedError) {\n error_2 = error_1;\n sampleCount_2 = sampleCount_1;\n current_2 = Arr.head(rest_1);\n consumed_2 = candConsumed;\n quantile_2 = quantile_1;\n rest_2 = sameHead[1];\n error_1 = error_2;\n sampleCount_1 = sampleCount_2;\n current_1 = current_2;\n consumed_1 = consumed_2;\n quantile_1 = quantile_2;\n rest_1 = rest_2;\n continue;\n }\n // If consuming this chunk leads to too many elements (rank is too high)\n if (candConsumed > desired + allowedError) {\n const valueToReturn = Option.isNone(current_1) ? Option.some(headValue) : current_1;\n return {\n quantile: quantile_1,\n value: valueToReturn,\n consumed: consumed_1,\n rest: rest_1\n };\n }\n // If we are in the target interval, select the current head and hand back the leftover after dropping all elements\n // from the sample chunk that are equal to the current head\n switch (current_1._tag) {\n case \"None\":\n {\n error_2 = error_1;\n sampleCount_2 = sampleCount_1;\n current_2 = Arr.head(rest_1);\n consumed_2 = candConsumed;\n quantile_2 = quantile_1;\n rest_2 = sameHead[1];\n error_1 = error_2;\n sampleCount_1 = sampleCount_2;\n current_1 = current_2;\n consumed_1 = consumed_2;\n quantile_1 = quantile_2;\n rest_1 = rest_2;\n continue;\n }\n case \"Some\":\n {\n const prevError = Math.abs(desired - current_1.value);\n if (candError < prevError) {\n error_2 = error_1;\n sampleCount_2 = sampleCount_1;\n current_2 = Arr.head(rest_1);\n consumed_2 = candConsumed;\n quantile_2 = quantile_1;\n rest_2 = sameHead[1];\n error_1 = error_2;\n sampleCount_1 = sampleCount_2;\n current_1 = current_2;\n consumed_1 = consumed_2;\n quantile_1 = quantile_2;\n rest_1 = rest_2;\n continue;\n }\n return {\n quantile: quantile_1,\n value: Option.some(current_1.value),\n consumed: consumed_1,\n rest: rest_1\n };\n }\n }\n }\n throw new Error(\"BUG: MetricHook.resolveQuantiles - please report an issue at https://github.com/Effect-TS/effect/issues\");\n};\n//# sourceMappingURL=hook.js.map","import { pipeArguments } from \"../../Pipeable.js\";\n/** @internal */\nconst MetricPairSymbolKey = \"effect/MetricPair\";\n/** @internal */\nexport const MetricPairTypeId = /*#__PURE__*/Symbol.for(MetricPairSymbolKey);\nconst metricPairVariance = {\n /* c8 ignore next */\n _Type: _ => _\n};\n/** @internal */\nexport const make = (metricKey, metricState) => {\n return {\n [MetricPairTypeId]: metricPairVariance,\n metricKey,\n metricState,\n pipe() {\n return pipeArguments(this, arguments);\n }\n };\n};\n/** @internal */\nexport const unsafeMake = (metricKey, metricState) => {\n return {\n [MetricPairTypeId]: metricPairVariance,\n metricKey,\n metricState,\n pipe() {\n return pipeArguments(this, arguments);\n }\n };\n};\n//# sourceMappingURL=pair.js.map","import { pipe } from \"../../Function.js\";\nimport * as MutableHashMap from \"../../MutableHashMap.js\";\nimport * as Option from \"../../Option.js\";\nimport * as metricHook from \"./hook.js\";\nimport * as metricKeyType from \"./keyType.js\";\nimport * as metricPair from \"./pair.js\";\n/** @internal */\nconst MetricRegistrySymbolKey = \"effect/MetricRegistry\";\n/** @internal */\nexport const MetricRegistryTypeId = /*#__PURE__*/Symbol.for(MetricRegistrySymbolKey);\n/** @internal */\nclass MetricRegistryImpl {\n [MetricRegistryTypeId] = MetricRegistryTypeId;\n map = /*#__PURE__*/MutableHashMap.empty();\n snapshot() {\n const result = [];\n for (const [key, hook] of this.map) {\n result.push(metricPair.unsafeMake(key, hook.get()));\n }\n return result;\n }\n get(key) {\n const hook = pipe(this.map, MutableHashMap.get(key), Option.getOrUndefined);\n if (hook == null) {\n if (metricKeyType.isCounterKey(key.keyType)) {\n return this.getCounter(key);\n }\n if (metricKeyType.isGaugeKey(key.keyType)) {\n return this.getGauge(key);\n }\n if (metricKeyType.isFrequencyKey(key.keyType)) {\n return this.getFrequency(key);\n }\n if (metricKeyType.isHistogramKey(key.keyType)) {\n return this.getHistogram(key);\n }\n if (metricKeyType.isSummaryKey(key.keyType)) {\n return this.getSummary(key);\n }\n throw new Error(\"BUG: MetricRegistry.get - unknown MetricKeyType - please report an issue at https://github.com/Effect-TS/effect/issues\");\n } else {\n return hook;\n }\n }\n getCounter(key) {\n let value = pipe(this.map, MutableHashMap.get(key), Option.getOrUndefined);\n if (value == null) {\n const counter = metricHook.counter(key);\n if (!pipe(this.map, MutableHashMap.has(key))) {\n pipe(this.map, MutableHashMap.set(key, counter));\n }\n value = counter;\n }\n return value;\n }\n getFrequency(key) {\n let value = pipe(this.map, MutableHashMap.get(key), Option.getOrUndefined);\n if (value == null) {\n const frequency = metricHook.frequency(key);\n if (!pipe(this.map, MutableHashMap.has(key))) {\n pipe(this.map, MutableHashMap.set(key, frequency));\n }\n value = frequency;\n }\n return value;\n }\n getGauge(key) {\n let value = pipe(this.map, MutableHashMap.get(key), Option.getOrUndefined);\n if (value == null) {\n const gauge = metricHook.gauge(key, key.keyType.bigint ? BigInt(0) : 0);\n if (!pipe(this.map, MutableHashMap.has(key))) {\n pipe(this.map, MutableHashMap.set(key, gauge));\n }\n value = gauge;\n }\n return value;\n }\n getHistogram(key) {\n let value = pipe(this.map, MutableHashMap.get(key), Option.getOrUndefined);\n if (value == null) {\n const histogram = metricHook.histogram(key);\n if (!pipe(this.map, MutableHashMap.has(key))) {\n pipe(this.map, MutableHashMap.set(key, histogram));\n }\n value = histogram;\n }\n return value;\n }\n getSummary(key) {\n let value = pipe(this.map, MutableHashMap.get(key), Option.getOrUndefined);\n if (value == null) {\n const summary = metricHook.summary(key);\n if (!pipe(this.map, MutableHashMap.has(key))) {\n pipe(this.map, MutableHashMap.set(key, summary));\n }\n value = summary;\n }\n return value;\n }\n}\n/** @internal */\nexport const make = () => {\n return new MetricRegistryImpl();\n};\n//# sourceMappingURL=registry.js.map","import * as Arr from \"../Array.js\";\nimport * as Clock from \"../Clock.js\";\nimport * as Duration from \"../Duration.js\";\nimport { constVoid, dual, identity, pipe } from \"../Function.js\";\nimport { globalValue } from \"../GlobalValue.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport * as Cause from \"./cause.js\";\nimport * as effect_ from \"./core-effect.js\";\nimport * as core from \"./core.js\";\nimport * as metricBoundaries from \"./metric/boundaries.js\";\nimport * as metricKey from \"./metric/key.js\";\nimport * as metricKeyType from \"./metric/keyType.js\";\nimport * as metricLabel from \"./metric/label.js\";\nimport * as metricRegistry from \"./metric/registry.js\";\n/** @internal */\nconst MetricSymbolKey = \"effect/Metric\";\n/** @internal */\nexport const MetricTypeId = /*#__PURE__*/Symbol.for(MetricSymbolKey);\nconst metricVariance = {\n /* c8 ignore next */\n _Type: _ => _,\n /* c8 ignore next */\n _In: _ => _,\n /* c8 ignore next */\n _Out: _ => _\n};\n/** @internal */\nexport const globalMetricRegistry = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Metric/globalMetricRegistry\"), () => metricRegistry.make());\n/** @internal */\nexport const make = function (keyType, unsafeUpdate, unsafeValue, unsafeModify) {\n const metric = Object.assign(effect => core.tap(effect, a => update(metric, a)), {\n [MetricTypeId]: metricVariance,\n keyType,\n unsafeUpdate,\n unsafeValue,\n unsafeModify,\n register() {\n this.unsafeValue([]);\n return this;\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n });\n return metric;\n};\n/** @internal */\nexport const mapInput = /*#__PURE__*/dual(2, (self, f) => make(self.keyType, (input, extraTags) => self.unsafeUpdate(f(input), extraTags), self.unsafeValue, (input, extraTags) => self.unsafeModify(f(input), extraTags)));\n/** @internal */\nexport const counter = (name, options) => fromMetricKey(metricKey.counter(name, options));\n/** @internal */\nexport const frequency = (name, options) => fromMetricKey(metricKey.frequency(name, options));\n/** @internal */\nexport const withConstantInput = /*#__PURE__*/dual(2, (self, input) => mapInput(self, () => input));\n/** @internal */\nexport const fromMetricKey = key => {\n let untaggedHook;\n const hookCache = new WeakMap();\n const hook = extraTags => {\n if (extraTags.length === 0) {\n if (untaggedHook !== undefined) {\n return untaggedHook;\n }\n untaggedHook = globalMetricRegistry.get(key);\n return untaggedHook;\n }\n let hook = hookCache.get(extraTags);\n if (hook !== undefined) {\n return hook;\n }\n hook = globalMetricRegistry.get(metricKey.taggedWithLabels(key, extraTags));\n hookCache.set(extraTags, hook);\n return hook;\n };\n return make(key.keyType, (input, extraTags) => hook(extraTags).update(input), extraTags => hook(extraTags).get(), (input, extraTags) => hook(extraTags).modify(input));\n};\n/** @internal */\nexport const gauge = (name, options) => fromMetricKey(metricKey.gauge(name, options));\n/** @internal */\nexport const histogram = (name, boundaries, description) => fromMetricKey(metricKey.histogram(name, boundaries, description));\n/* @internal */\nexport const increment = self => metricKeyType.isCounterKey(self.keyType) ? update(self, self.keyType.bigint ? BigInt(1) : 1) : modify(self, self.keyType.bigint ? BigInt(1) : 1);\n/* @internal */\nexport const incrementBy = /*#__PURE__*/dual(2, (self, amount) => metricKeyType.isCounterKey(self.keyType) ? update(self, amount) : modify(self, amount));\n/** @internal */\nexport const map = /*#__PURE__*/dual(2, (self, f) => make(self.keyType, self.unsafeUpdate, extraTags => f(self.unsafeValue(extraTags)), self.unsafeModify));\n/** @internal */\nexport const mapType = /*#__PURE__*/dual(2, (self, f) => make(f(self.keyType), self.unsafeUpdate, self.unsafeValue, self.unsafeModify));\n/** @internal */\nexport const modify = /*#__PURE__*/dual(2, (self, input) => core.fiberRefGetWith(core.currentMetricLabels, tags => core.sync(() => self.unsafeModify(input, tags))));\n/* @internal */\nexport const set = /*#__PURE__*/dual(2, (self, value) => update(self, value));\n/** @internal */\nexport const succeed = out => make(void 0, constVoid, () => out, constVoid);\n/** @internal */\nexport const sync = evaluate => make(void 0, constVoid, evaluate, constVoid);\n/** @internal */\nexport const summary = options => withNow(summaryTimestamp(options));\n/** @internal */\nexport const summaryTimestamp = options => fromMetricKey(metricKey.summary(options));\n/** @internal */\nexport const tagged = /*#__PURE__*/dual(3, (self, key, value) => taggedWithLabels(self, [metricLabel.make(key, value)]));\n/** @internal */\nexport const taggedWithLabelsInput = /*#__PURE__*/dual(2, (self, f) => map(make(self.keyType, (input, extraTags) => self.unsafeUpdate(input, Arr.union(f(input), extraTags)), self.unsafeValue, (input, extraTags) => self.unsafeModify(input, Arr.union(f(input), extraTags))), constVoid));\n/** @internal */\nexport const taggedWithLabels = /*#__PURE__*/dual(2, (self, extraTags) => {\n return make(self.keyType, (input, extraTags1) => self.unsafeUpdate(input, Arr.union(extraTags, extraTags1)), extraTags1 => self.unsafeValue(Arr.union(extraTags, extraTags1)), (input, extraTags1) => self.unsafeModify(input, Arr.union(extraTags, extraTags1)));\n});\n/** @internal */\nexport const timer = (name, description) => {\n const boundaries = metricBoundaries.exponential({\n start: 0.5,\n factor: 2,\n count: 35\n });\n const base = pipe(histogram(name, boundaries, description), tagged(\"time_unit\", \"milliseconds\"));\n return mapInput(base, Duration.toMillis);\n};\n/** @internal */\nexport const timerWithBoundaries = (name, boundaries, description) => {\n const base = pipe(histogram(name, metricBoundaries.fromIterable(boundaries), description), tagged(\"time_unit\", \"milliseconds\"));\n return mapInput(base, Duration.toMillis);\n};\n/* @internal */\nexport const trackAll = /*#__PURE__*/dual(2, (self, input) => effect => core.matchCauseEffect(effect, {\n onFailure: cause => core.zipRight(update(self, input), core.failCause(cause)),\n onSuccess: value => core.zipRight(update(self, input), core.succeed(value))\n}));\n/* @internal */\nexport const trackDefect = /*#__PURE__*/dual(2, (self, metric) => trackDefectWith(self, metric, identity));\n/* @internal */\nexport const trackDefectWith = /*#__PURE__*/dual(3, (self, metric, f) => {\n const updater = defect => update(metric, f(defect));\n return effect_.tapDefect(self, cause => core.forEachSequentialDiscard(Cause.defects(cause), updater));\n});\n/* @internal */\nexport const trackDuration = /*#__PURE__*/dual(2, (self, metric) => trackDurationWith(self, metric, identity));\n/* @internal */\nexport const trackDurationWith = /*#__PURE__*/dual(3, (self, metric, f) => Clock.clockWith(clock => {\n const startTime = clock.unsafeCurrentTimeNanos();\n return core.tap(self, _ => {\n const endTime = clock.unsafeCurrentTimeNanos();\n const duration = Duration.nanos(endTime - startTime);\n return update(metric, f(duration));\n });\n}));\n/* @internal */\nexport const trackError = /*#__PURE__*/dual(2, (self, metric) => trackErrorWith(self, metric, a => a));\n/* @internal */\nexport const trackErrorWith = /*#__PURE__*/dual(3, (self, metric, f) => {\n const updater = error => update(metric, f(error));\n return effect_.tapError(self, updater);\n});\n/* @internal */\nexport const trackSuccess = /*#__PURE__*/dual(2, (self, metric) => trackSuccessWith(self, metric, a => a));\n/* @internal */\nexport const trackSuccessWith = /*#__PURE__*/dual(3, (self, metric, f) => {\n const updater = value => update(metric, f(value));\n return core.tap(self, updater);\n});\n/* @internal */\nexport const update = /*#__PURE__*/dual(2, (self, input) => core.fiberRefGetWith(core.currentMetricLabels, tags => core.sync(() => self.unsafeUpdate(input, tags))));\n/* @internal */\nexport const value = self => core.fiberRefGetWith(core.currentMetricLabels, tags => core.sync(() => self.unsafeValue(tags)));\n/** @internal */\nexport const withNow = self => mapInput(self, input => [input, Date.now()]);\n/** @internal */\nexport const zip = /*#__PURE__*/dual(2, (self, that) => make([self.keyType, that.keyType], (input, extraTags) => {\n const [l, r] = input;\n self.unsafeUpdate(l, extraTags);\n that.unsafeUpdate(r, extraTags);\n}, extraTags => [self.unsafeValue(extraTags), that.unsafeValue(extraTags)], (input, extraTags) => {\n const [l, r] = input;\n self.unsafeModify(l, extraTags);\n that.unsafeModify(r, extraTags);\n}));\n/** @internal */\nexport const unsafeSnapshot = () => globalMetricRegistry.snapshot();\n/** @internal */\nexport const snapshot = /*#__PURE__*/core.sync(unsafeSnapshot);\n//# sourceMappingURL=metric.js.map","import * as Arr from \"../../Array.js\";\nimport * as Chunk from \"../../Chunk.js\";\nimport * as Equal from \"../../Equal.js\";\nimport { pipe } from \"../../Function.js\";\nimport * as Hash from \"../../Hash.js\";\nimport { pipeArguments } from \"../../Pipeable.js\";\nimport { hasProperty } from \"../../Predicate.js\";\n/** @internal */\nconst MetricBoundariesSymbolKey = \"effect/MetricBoundaries\";\n/** @internal */\nexport const MetricBoundariesTypeId = /*#__PURE__*/Symbol.for(MetricBoundariesSymbolKey);\n/** @internal */\nclass MetricBoundariesImpl {\n values;\n [MetricBoundariesTypeId] = MetricBoundariesTypeId;\n constructor(values) {\n this.values = values;\n this._hash = pipe(Hash.string(MetricBoundariesSymbolKey), Hash.combine(Hash.array(this.values)));\n }\n _hash;\n [Hash.symbol]() {\n return this._hash;\n }\n [Equal.symbol](u) {\n return isMetricBoundaries(u) && Equal.equals(this.values, u.values);\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nexport const isMetricBoundaries = u => hasProperty(u, MetricBoundariesTypeId);\n/** @internal */\nexport const fromIterable = iterable => {\n const values = pipe(iterable, Arr.appendAll(Chunk.of(Number.POSITIVE_INFINITY)), Arr.dedupe);\n return new MetricBoundariesImpl(values);\n};\n/** @internal */\nexport const linear = options => pipe(Arr.makeBy(options.count - 1, i => options.start + i * options.width), Chunk.unsafeFromArray, fromIterable);\n/** @internal */\nexport const exponential = options => pipe(Arr.makeBy(options.count - 1, i => options.start * Math.pow(options.factor, i)), Chunk.unsafeFromArray, fromIterable);\n//# sourceMappingURL=boundaries.js.map","import { dual } from \"../Function.js\";\nimport { hasProperty } from \"../Predicate.js\";\nimport * as completedRequestMap from \"./completedRequestMap.js\";\nimport * as core from \"./core.js\";\nimport { StructuralPrototype } from \"./effectable.js\";\n/** @internal */\nconst RequestSymbolKey = \"effect/Request\";\n/** @internal */\nexport const RequestTypeId = /*#__PURE__*/Symbol.for(RequestSymbolKey);\nconst requestVariance = {\n /* c8 ignore next */\n _E: _ => _,\n /* c8 ignore next */\n _A: _ => _\n};\nconst RequestPrototype = {\n ...StructuralPrototype,\n [RequestTypeId]: requestVariance\n};\n/** @internal */\nexport const isRequest = u => hasProperty(u, RequestTypeId);\n/** @internal */\nexport const of = () => args => Object.assign(Object.create(RequestPrototype), args);\n/** @internal */\nexport const tagged = tag => args => {\n const request = Object.assign(Object.create(RequestPrototype), args);\n request._tag = tag;\n return request;\n};\n/** @internal */\nexport const Class = /*#__PURE__*/function () {\n function Class(args) {\n if (args) {\n Object.assign(this, args);\n }\n }\n Class.prototype = RequestPrototype;\n return Class;\n}();\n/** @internal */\nexport const TaggedClass = tag => {\n return class TaggedClass extends Class {\n _tag = tag;\n };\n};\n/** @internal */\nexport const complete = /*#__PURE__*/dual(2, (self, result) => core.fiberRefGetWith(completedRequestMap.currentRequestMap, map => core.sync(() => {\n if (map.has(self)) {\n const entry = map.get(self);\n if (!entry.state.completed) {\n entry.state.completed = true;\n core.deferredUnsafeDone(entry.result, result);\n }\n }\n})));\n/** @internal */\nexport const completeEffect = /*#__PURE__*/dual(2, (self, effect) => core.matchEffect(effect, {\n onFailure: error => complete(self, core.exitFail(error)),\n onSuccess: value => complete(self, core.exitSucceed(value))\n}));\n/** @internal */\nexport const fail = /*#__PURE__*/dual(2, (self, error) => complete(self, core.exitFail(error)));\n/** @internal */\nexport const failCause = /*#__PURE__*/dual(2, (self, cause) => complete(self, core.exitFailCause(cause)));\n/** @internal */\nexport const succeed = /*#__PURE__*/dual(2, (self, value) => complete(self, core.exitSucceed(value)));\n/** @internal */\nexport class Listeners {\n count = 0;\n observers = /*#__PURE__*/new Set();\n interrupted = false;\n addObserver(f) {\n this.observers.add(f);\n }\n removeObserver(f) {\n this.observers.delete(f);\n }\n increment() {\n this.count++;\n this.observers.forEach(f => f(this.count));\n }\n decrement() {\n this.count--;\n this.observers.forEach(f => f(this.count));\n }\n}\n/**\n * @internal\n */\nexport const filterOutCompleted = requests => core.fiberRefGetWith(completedRequestMap.currentRequestMap, map => core.succeed(requests.filter(request => !(map.get(request)?.state.completed === true))));\n//# sourceMappingURL=request.js.map","import { pipe } from \"../Function.js\";\nimport { globalValue } from \"../GlobalValue.js\";\nimport * as MutableRef from \"../MutableRef.js\";\nimport { hasProperty, isTagged } from \"../Predicate.js\";\nimport * as SortedSet from \"../SortedSet.js\";\nimport * as core from \"./core.js\";\n/** @internal */\nconst SupervisorSymbolKey = \"effect/Supervisor\";\n/** @internal */\nexport const SupervisorTypeId = /*#__PURE__*/Symbol.for(SupervisorSymbolKey);\n/** @internal */\nexport const supervisorVariance = {\n /* c8 ignore next */\n _T: _ => _\n};\n/** @internal */\nexport class ProxySupervisor {\n underlying;\n value0;\n [SupervisorTypeId] = supervisorVariance;\n constructor(underlying, value0) {\n this.underlying = underlying;\n this.value0 = value0;\n }\n get value() {\n return this.value0;\n }\n onStart(context, effect, parent, fiber) {\n this.underlying.onStart(context, effect, parent, fiber);\n }\n onEnd(value, fiber) {\n this.underlying.onEnd(value, fiber);\n }\n onEffect(fiber, effect) {\n this.underlying.onEffect(fiber, effect);\n }\n onSuspend(fiber) {\n this.underlying.onSuspend(fiber);\n }\n onResume(fiber) {\n this.underlying.onResume(fiber);\n }\n map(f) {\n return new ProxySupervisor(this, pipe(this.value, core.map(f)));\n }\n zip(right) {\n return new Zip(this, right);\n }\n}\n/** @internal */\nexport class Zip {\n left;\n right;\n _tag = \"Zip\";\n [SupervisorTypeId] = supervisorVariance;\n constructor(left, right) {\n this.left = left;\n this.right = right;\n }\n get value() {\n return core.zip(this.left.value, this.right.value);\n }\n onStart(context, effect, parent, fiber) {\n this.left.onStart(context, effect, parent, fiber);\n this.right.onStart(context, effect, parent, fiber);\n }\n onEnd(value, fiber) {\n this.left.onEnd(value, fiber);\n this.right.onEnd(value, fiber);\n }\n onEffect(fiber, effect) {\n this.left.onEffect(fiber, effect);\n this.right.onEffect(fiber, effect);\n }\n onSuspend(fiber) {\n this.left.onSuspend(fiber);\n this.right.onSuspend(fiber);\n }\n onResume(fiber) {\n this.left.onResume(fiber);\n this.right.onResume(fiber);\n }\n map(f) {\n return new ProxySupervisor(this, pipe(this.value, core.map(f)));\n }\n zip(right) {\n return new Zip(this, right);\n }\n}\n/** @internal */\nexport const isZip = self => hasProperty(self, SupervisorTypeId) && isTagged(self, \"Zip\");\n/** @internal */\nexport class Track {\n [SupervisorTypeId] = supervisorVariance;\n fibers = /*#__PURE__*/new Set();\n get value() {\n return core.sync(() => Array.from(this.fibers));\n }\n onStart(_context, _effect, _parent, fiber) {\n this.fibers.add(fiber);\n }\n onEnd(_value, fiber) {\n this.fibers.delete(fiber);\n }\n onEffect(_fiber, _effect) {\n //\n }\n onSuspend(_fiber) {\n //\n }\n onResume(_fiber) {\n //\n }\n map(f) {\n return new ProxySupervisor(this, pipe(this.value, core.map(f)));\n }\n zip(right) {\n return new Zip(this, right);\n }\n onRun(execution, _fiber) {\n return execution();\n }\n}\n/** @internal */\nexport class Const {\n effect;\n [SupervisorTypeId] = supervisorVariance;\n constructor(effect) {\n this.effect = effect;\n }\n get value() {\n return this.effect;\n }\n onStart(_context, _effect, _parent, _fiber) {\n //\n }\n onEnd(_value, _fiber) {\n //\n }\n onEffect(_fiber, _effect) {\n //\n }\n onSuspend(_fiber) {\n //\n }\n onResume(_fiber) {\n //\n }\n map(f) {\n return new ProxySupervisor(this, pipe(this.value, core.map(f)));\n }\n zip(right) {\n return new Zip(this, right);\n }\n onRun(execution, _fiber) {\n return execution();\n }\n}\nclass FibersIn {\n ref;\n [SupervisorTypeId] = supervisorVariance;\n constructor(ref) {\n this.ref = ref;\n }\n get value() {\n return core.sync(() => MutableRef.get(this.ref));\n }\n onStart(_context, _effect, _parent, fiber) {\n pipe(this.ref, MutableRef.set(pipe(MutableRef.get(this.ref), SortedSet.add(fiber))));\n }\n onEnd(_value, fiber) {\n pipe(this.ref, MutableRef.set(pipe(MutableRef.get(this.ref), SortedSet.remove(fiber))));\n }\n onEffect(_fiber, _effect) {\n //\n }\n onSuspend(_fiber) {\n //\n }\n onResume(_fiber) {\n //\n }\n map(f) {\n return new ProxySupervisor(this, pipe(this.value, core.map(f)));\n }\n zip(right) {\n return new Zip(this, right);\n }\n onRun(execution, _fiber) {\n return execution();\n }\n}\n/** @internal */\nexport const unsafeTrack = () => {\n return new Track();\n};\n/** @internal */\nexport const track = /*#__PURE__*/core.sync(unsafeTrack);\n/** @internal */\nexport const fromEffect = effect => {\n return new Const(effect);\n};\n/** @internal */\nexport const none = /*#__PURE__*/globalValue(\"effect/Supervisor/none\", () => fromEffect(core.void));\n/** @internal */\nexport const fibersIn = ref => core.sync(() => new FibersIn(ref));\n//# sourceMappingURL=supervisor.js.map","import * as Dual from \"./Function.js\";\nimport * as internal from \"./internal/differ.js\";\nimport * as ChunkPatch from \"./internal/differ/chunkPatch.js\";\nimport * as ContextPatch from \"./internal/differ/contextPatch.js\";\nimport * as HashMapPatch from \"./internal/differ/hashMapPatch.js\";\nimport * as HashSetPatch from \"./internal/differ/hashSetPatch.js\";\nimport * as OrPatch from \"./internal/differ/orPatch.js\";\nimport * as ReadonlyArrayPatch from \"./internal/differ/readonlyArrayPatch.js\";\n/**\n * @since 2.0.0\n * @category symbol\n */\nexport const TypeId = internal.DifferTypeId;\nconst ChunkPatchTypeId = ChunkPatch.ChunkPatchTypeId;\nconst ContextPatchTypeId = ContextPatch.ContextPatchTypeId;\nconst HashMapPatchTypeId = HashMapPatch.HashMapPatchTypeId;\nconst HashSetPatchTypeId = HashSetPatch.HashSetPatchTypeId;\nconst OrPatchTypeId = OrPatch.OrPatchTypeId;\nconst ReadonlyArrayPatchTypeId = ReadonlyArrayPatch.ReadonlyArrayPatchTypeId;\n/**\n * An empty patch that describes no changes.\n *\n * @since 2.0.0\n * @category patch\n */\nexport const empty = self => self.empty;\n/**\n * @since 2.0.0\n * @category patch\n */\nexport const diff = /*#__PURE__*/Dual.dual(3, (self, oldValue, newValue) => self.diff(oldValue, newValue));\n/**\n * Combines two patches to produce a new patch that describes the updates of\n * the first patch and then the updates of the second patch. The combine\n * operation should be associative. In addition, if the combine operation is\n * commutative then joining multiple fibers concurrently will result in\n * deterministic `FiberRef` values.\n *\n * @since 2.0.0\n * @category patch\n */\nexport const combine = /*#__PURE__*/Dual.dual(3, (self, first, second) => self.combine(first, second));\n/**\n * Applies a patch to an old value to produce a new value that is equal to the\n * old value with the updates described by the patch.\n *\n * @since 2.0.0\n * @category patch\n */\nexport const patch = /*#__PURE__*/Dual.dual(3, (self, patch, oldValue) => self.patch(patch, oldValue));\n/**\n * Constructs a new `Differ`.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const make = internal.make;\n/**\n * Constructs a differ that knows how to diff `Env` values.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const environment = internal.environment;\n/**\n * Constructs a differ that knows how to diff a `Chunk` of values given a\n * differ that knows how to diff the values.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const chunk = internal.chunk;\n/**\n * Constructs a differ that knows how to diff a `HashMap` of keys and values given\n * a differ that knows how to diff the values.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const hashMap = internal.hashMap;\n/**\n * Constructs a differ that knows how to diff a `HashSet` of values.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const hashSet = internal.hashSet;\n/**\n * Combines this differ and the specified differ to produce a differ that\n * knows how to diff the sum of their values.\n *\n * @since 2.0.0\n */\nexport const orElseEither = internal.orElseEither;\n/**\n * Constructs a differ that knows how to diff a `ReadonlyArray` of values.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const readonlyArray = internal.readonlyArray;\n/**\n * Transforms the type of values that this differ knows how to differ using\n * the specified functions that map the new and old value types to each other.\n *\n * @since 2.0.0\n */\nexport const transform = internal.transform;\n/**\n * Constructs a differ that just diffs two values by returning a function that\n * sets the value to the new value. This differ does not support combining\n * multiple updates to the value compositionally and should only be used when\n * there is no compositional way to update them.\n *\n * @since 2.0.0\n */\nexport const update = internal.update;\n/**\n * A variant of `update` that allows specifying the function that will be used\n * to combine old values with new values.\n *\n * @since 2.0.0\n */\nexport const updateWith = internal.updateWith;\n/**\n * Combines this differ and the specified differ to produce a new differ that\n * knows how to diff the product of their values.\n *\n * @since 2.0.0\n */\nexport const zip = internal.zip;\n//# sourceMappingURL=Differ.js.map","import * as Chunk from \"../../Chunk.js\";\nimport * as Differ from \"../../Differ.js\";\nimport * as Equal from \"../../Equal.js\";\nimport { pipe } from \"../../Function.js\";\nimport * as HashSet from \"../../HashSet.js\";\nimport * as supervisor from \"../supervisor.js\";\n/** @internal */\nexport const OP_EMPTY = \"Empty\";\n/** @internal */\nexport const OP_ADD_SUPERVISOR = \"AddSupervisor\";\n/** @internal */\nexport const OP_REMOVE_SUPERVISOR = \"RemoveSupervisor\";\n/** @internal */\nexport const OP_AND_THEN = \"AndThen\";\n/**\n * The empty `SupervisorPatch`.\n *\n * @internal\n */\nexport const empty = {\n _tag: OP_EMPTY\n};\n/**\n * Combines two patches to produce a new patch that describes applying the\n * updates from this patch and then the updates from the specified patch.\n *\n * @internal\n */\nexport const combine = (self, that) => {\n return {\n _tag: OP_AND_THEN,\n first: self,\n second: that\n };\n};\n/**\n * Applies a `SupervisorPatch` to a `Supervisor` to produce a new `Supervisor`.\n *\n * @internal\n */\nexport const patch = (self, supervisor) => {\n return patchLoop(supervisor, Chunk.of(self));\n};\n/** @internal */\nconst patchLoop = (_supervisor, _patches) => {\n let supervisor = _supervisor;\n let patches = _patches;\n while (Chunk.isNonEmpty(patches)) {\n const head = Chunk.headNonEmpty(patches);\n switch (head._tag) {\n case OP_EMPTY:\n {\n patches = Chunk.tailNonEmpty(patches);\n break;\n }\n case OP_ADD_SUPERVISOR:\n {\n supervisor = supervisor.zip(head.supervisor);\n patches = Chunk.tailNonEmpty(patches);\n break;\n }\n case OP_REMOVE_SUPERVISOR:\n {\n supervisor = removeSupervisor(supervisor, head.supervisor);\n patches = Chunk.tailNonEmpty(patches);\n break;\n }\n case OP_AND_THEN:\n {\n patches = Chunk.prepend(head.first)(Chunk.prepend(head.second)(Chunk.tailNonEmpty(patches)));\n break;\n }\n }\n }\n return supervisor;\n};\n/** @internal */\nconst removeSupervisor = (self, that) => {\n if (Equal.equals(self, that)) {\n return supervisor.none;\n } else {\n if (supervisor.isZip(self)) {\n return removeSupervisor(self.left, that).zip(removeSupervisor(self.right, that));\n } else {\n return self;\n }\n }\n};\n/** @internal */\nconst toSet = self => {\n if (Equal.equals(self, supervisor.none)) {\n return HashSet.empty();\n } else {\n if (supervisor.isZip(self)) {\n return pipe(toSet(self.left), HashSet.union(toSet(self.right)));\n } else {\n return HashSet.make(self);\n }\n }\n};\n/** @internal */\nexport const diff = (oldValue, newValue) => {\n if (Equal.equals(oldValue, newValue)) {\n return empty;\n }\n const oldSupervisors = toSet(oldValue);\n const newSupervisors = toSet(newValue);\n const added = pipe(newSupervisors, HashSet.difference(oldSupervisors), HashSet.reduce(empty, (patch, supervisor) => combine(patch, {\n _tag: OP_ADD_SUPERVISOR,\n supervisor\n })));\n const removed = pipe(oldSupervisors, HashSet.difference(newSupervisors), HashSet.reduce(empty, (patch, supervisor) => combine(patch, {\n _tag: OP_REMOVE_SUPERVISOR,\n supervisor\n })));\n return combine(added, removed);\n};\n/** @internal */\nexport const differ = /*#__PURE__*/Differ.make({\n empty,\n patch,\n combine,\n diff\n});\n//# sourceMappingURL=patch.js.map","import * as RA from \"../Array.js\";\nimport * as Boolean from \"../Boolean.js\";\nimport * as Chunk from \"../Chunk.js\";\nimport * as Context from \"../Context.js\";\nimport * as Effectable from \"../Effectable.js\";\nimport * as ExecutionStrategy from \"../ExecutionStrategy.js\";\nimport * as FiberId from \"../FiberId.js\";\nimport * as FiberRefs from \"../FiberRefs.js\";\nimport * as FiberRefsPatch from \"../FiberRefsPatch.js\";\nimport * as FiberStatus from \"../FiberStatus.js\";\nimport { dual, identity, pipe } from \"../Function.js\";\nimport { globalValue } from \"../GlobalValue.js\";\nimport * as HashMap from \"../HashMap.js\";\nimport * as HashSet from \"../HashSet.js\";\nimport * as Inspectable from \"../Inspectable.js\";\nimport * as LogLevel from \"../LogLevel.js\";\nimport * as Micro from \"../Micro.js\";\nimport * as MRef from \"../MutableRef.js\";\nimport * as Option from \"../Option.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport * as Predicate from \"../Predicate.js\";\nimport * as Ref from \"../Ref.js\";\nimport * as RuntimeFlagsPatch from \"../RuntimeFlagsPatch.js\";\nimport { currentScheduler } from \"../Scheduler.js\";\nimport { internalCall, yieldWrapGet } from \"../Utils.js\";\nimport * as RequestBlock_ from \"./blockedRequests.js\";\nimport * as internalCause from \"./cause.js\";\nimport * as clock from \"./clock.js\";\nimport { currentRequestMap } from \"./completedRequestMap.js\";\nimport * as concurrency from \"./concurrency.js\";\nimport { configProviderTag } from \"./configProvider.js\";\nimport * as internalEffect from \"./core-effect.js\";\nimport * as core from \"./core.js\";\nimport * as defaultServices from \"./defaultServices.js\";\nimport { consoleTag } from \"./defaultServices/console.js\";\nimport * as executionStrategy from \"./executionStrategy.js\";\nimport * as internalFiber from \"./fiber.js\";\nimport * as FiberMessage from \"./fiberMessage.js\";\nimport * as fiberRefs from \"./fiberRefs.js\";\nimport * as fiberScope from \"./fiberScope.js\";\nimport * as internalLogger from \"./logger.js\";\nimport * as metric from \"./metric.js\";\nimport * as metricBoundaries from \"./metric/boundaries.js\";\nimport * as metricLabel from \"./metric/label.js\";\nimport * as OpCodes from \"./opCodes/effect.js\";\nimport { randomTag } from \"./random.js\";\nimport { complete } from \"./request.js\";\nimport * as runtimeFlags_ from \"./runtimeFlags.js\";\nimport { OpSupervision } from \"./runtimeFlags.js\";\nimport * as supervisor from \"./supervisor.js\";\nimport * as SupervisorPatch from \"./supervisor/patch.js\";\nimport * as tracer from \"./tracer.js\";\nimport * as version from \"./version.js\";\n/** @internal */\nexport const fiberStarted = /*#__PURE__*/metric.counter(\"effect_fiber_started\", {\n incremental: true\n});\n/** @internal */\nexport const fiberActive = /*#__PURE__*/metric.counter(\"effect_fiber_active\");\n/** @internal */\nexport const fiberSuccesses = /*#__PURE__*/metric.counter(\"effect_fiber_successes\", {\n incremental: true\n});\n/** @internal */\nexport const fiberFailures = /*#__PURE__*/metric.counter(\"effect_fiber_failures\", {\n incremental: true\n});\n/** @internal */\nexport const fiberLifetimes = /*#__PURE__*/metric.tagged(/*#__PURE__*/metric.histogram(\"effect_fiber_lifetimes\", /*#__PURE__*/metricBoundaries.exponential({\n start: 0.5,\n factor: 2,\n count: 35\n})), \"time_unit\", \"milliseconds\");\n/** @internal */\nconst EvaluationSignalContinue = \"Continue\";\n/** @internal */\nconst EvaluationSignalDone = \"Done\";\n/** @internal */\nconst EvaluationSignalYieldNow = \"Yield\";\nconst runtimeFiberVariance = {\n /* c8 ignore next */\n _E: _ => _,\n /* c8 ignore next */\n _A: _ => _\n};\nconst absurd = _ => {\n throw new Error(`BUG: FiberRuntime - ${Inspectable.toStringUnknown(_)} - please report an issue at https://github.com/Effect-TS/effect/issues`);\n};\nconst YieldedOp = /*#__PURE__*/Symbol.for(\"effect/internal/fiberRuntime/YieldedOp\");\nconst yieldedOpChannel = /*#__PURE__*/globalValue(\"effect/internal/fiberRuntime/yieldedOpChannel\", () => ({\n currentOp: null\n}));\nconst contOpSuccess = {\n [OpCodes.OP_ON_SUCCESS]: (_, cont, value) => {\n return internalCall(() => cont.effect_instruction_i1(value));\n },\n [\"OnStep\"]: (_, _cont, value) => {\n return core.exitSucceed(core.exitSucceed(value));\n },\n [OpCodes.OP_ON_SUCCESS_AND_FAILURE]: (_, cont, value) => {\n return internalCall(() => cont.effect_instruction_i2(value));\n },\n [OpCodes.OP_REVERT_FLAGS]: (self, cont, value) => {\n self.patchRuntimeFlags(self.currentRuntimeFlags, cont.patch);\n if (runtimeFlags_.interruptible(self.currentRuntimeFlags) && self.isInterrupted()) {\n return core.exitFailCause(self.getInterruptedCause());\n } else {\n return core.exitSucceed(value);\n }\n },\n [OpCodes.OP_WHILE]: (self, cont, value) => {\n internalCall(() => cont.effect_instruction_i2(value));\n if (internalCall(() => cont.effect_instruction_i0())) {\n self.pushStack(cont);\n return internalCall(() => cont.effect_instruction_i1());\n } else {\n return core.void;\n }\n },\n [OpCodes.OP_ITERATOR]: (self, cont, value) => {\n while (true) {\n const state = internalCall(() => cont.effect_instruction_i0.next(value));\n if (state.done) {\n return core.exitSucceed(state.value);\n }\n const primitive = yieldWrapGet(state.value);\n if (!core.exitIsExit(primitive)) {\n self.pushStack(cont);\n return primitive;\n } else if (primitive._tag === \"Failure\") {\n return primitive;\n }\n value = primitive.value;\n }\n }\n};\nconst drainQueueWhileRunningTable = {\n [FiberMessage.OP_INTERRUPT_SIGNAL]: (self, runtimeFlags, cur, message) => {\n self.processNewInterruptSignal(message.cause);\n return runtimeFlags_.interruptible(runtimeFlags) ? core.exitFailCause(message.cause) : cur;\n },\n [FiberMessage.OP_RESUME]: (_self, _runtimeFlags, _cur, _message) => {\n throw new Error(\"It is illegal to have multiple concurrent run loops in a single fiber\");\n },\n [FiberMessage.OP_STATEFUL]: (self, runtimeFlags, cur, message) => {\n message.onFiber(self, FiberStatus.running(runtimeFlags));\n return cur;\n },\n [FiberMessage.OP_YIELD_NOW]: (_self, _runtimeFlags, cur, _message) => {\n return core.flatMap(core.yieldNow(), () => cur);\n }\n};\n/**\n * Executes all requests, submitting requests to each data source in parallel.\n */\nconst runBlockedRequests = self => core.forEachSequentialDiscard(RequestBlock_.flatten(self), requestsByRequestResolver => forEachConcurrentDiscard(RequestBlock_.sequentialCollectionToChunk(requestsByRequestResolver), ([dataSource, sequential]) => {\n const map = new Map();\n const arr = [];\n for (const block of sequential) {\n arr.push(Chunk.toReadonlyArray(block));\n for (const entry of block) {\n map.set(entry.request, entry);\n }\n }\n const flat = arr.flat();\n return core.fiberRefLocally(invokeWithInterrupt(dataSource.runAll(arr), flat, () => flat.forEach(entry => {\n entry.listeners.interrupted = true;\n })), currentRequestMap, map);\n}, false, false));\nconst _version = /*#__PURE__*/version.getCurrentVersion();\n/** @internal */\nexport class FiberRuntime extends Effectable.Class {\n [internalFiber.FiberTypeId] = internalFiber.fiberVariance;\n [internalFiber.RuntimeFiberTypeId] = runtimeFiberVariance;\n _fiberRefs;\n _fiberId;\n _queue = /*#__PURE__*/new Array();\n _children = null;\n _observers = /*#__PURE__*/new Array();\n _running = false;\n _stack = [];\n _asyncInterruptor = null;\n _asyncBlockingOn = null;\n _exitValue = null;\n _steps = [];\n _isYielding = false;\n currentRuntimeFlags;\n currentOpCount = 0;\n currentSupervisor;\n currentScheduler;\n currentTracer;\n currentSpan;\n currentContext;\n currentDefaultServices;\n constructor(fiberId, fiberRefs0, runtimeFlags0) {\n super();\n this.currentRuntimeFlags = runtimeFlags0;\n this._fiberId = fiberId;\n this._fiberRefs = fiberRefs0;\n if (runtimeFlags_.runtimeMetrics(runtimeFlags0)) {\n const tags = this.getFiberRef(core.currentMetricLabels);\n fiberStarted.unsafeUpdate(1, tags);\n fiberActive.unsafeUpdate(1, tags);\n }\n this.refreshRefCache();\n }\n commit() {\n return internalFiber.join(this);\n }\n /**\n * The identity of the fiber.\n */\n id() {\n return this._fiberId;\n }\n /**\n * Begins execution of the effect associated with this fiber on in the\n * background. This can be called to \"kick off\" execution of a fiber after\n * it has been created.\n */\n resume(effect) {\n this.tell(FiberMessage.resume(effect));\n }\n /**\n * The status of the fiber.\n */\n get status() {\n return this.ask((_, status) => status);\n }\n /**\n * Gets the fiber runtime flags.\n */\n get runtimeFlags() {\n return this.ask((state, status) => {\n if (FiberStatus.isDone(status)) {\n return state.currentRuntimeFlags;\n }\n return status.runtimeFlags;\n });\n }\n /**\n * Returns the current `FiberScope` for the fiber.\n */\n scope() {\n return fiberScope.unsafeMake(this);\n }\n /**\n * Retrieves the immediate children of the fiber.\n */\n get children() {\n return this.ask(fiber => Array.from(fiber.getChildren()));\n }\n /**\n * Gets the fiber's set of children.\n */\n getChildren() {\n if (this._children === null) {\n this._children = new Set();\n }\n return this._children;\n }\n /**\n * Retrieves the interrupted cause of the fiber, which will be `Cause.empty`\n * if the fiber has not been interrupted.\n *\n * **NOTE**: This method is safe to invoke on any fiber, but if not invoked\n * on this fiber, then values derived from the fiber's state (including the\n * log annotations and log level) may not be up-to-date.\n */\n getInterruptedCause() {\n return this.getFiberRef(core.currentInterruptedCause);\n }\n /**\n * Retrieves the whole set of fiber refs.\n */\n fiberRefs() {\n return this.ask(fiber => fiber.getFiberRefs());\n }\n /**\n * Returns an effect that will contain information computed from the fiber\n * state and status while running on the fiber.\n *\n * This allows the outside world to interact safely with mutable fiber state\n * without locks or immutable data.\n */\n ask(f) {\n return core.suspend(() => {\n const deferred = core.deferredUnsafeMake(this._fiberId);\n this.tell(FiberMessage.stateful((fiber, status) => {\n core.deferredUnsafeDone(deferred, core.sync(() => f(fiber, status)));\n }));\n return core.deferredAwait(deferred);\n });\n }\n /**\n * Adds a message to be processed by the fiber on the fiber.\n */\n tell(message) {\n this._queue.push(message);\n if (!this._running) {\n this._running = true;\n this.drainQueueLaterOnExecutor();\n }\n }\n get await() {\n return core.async(resume => {\n const cb = exit => resume(core.succeed(exit));\n this.tell(FiberMessage.stateful((fiber, _) => {\n if (fiber._exitValue !== null) {\n cb(this._exitValue);\n } else {\n fiber.addObserver(cb);\n }\n }));\n return core.sync(() => this.tell(FiberMessage.stateful((fiber, _) => {\n fiber.removeObserver(cb);\n })));\n }, this.id());\n }\n get inheritAll() {\n return core.withFiberRuntime((parentFiber, parentStatus) => {\n const parentFiberId = parentFiber.id();\n const parentFiberRefs = parentFiber.getFiberRefs();\n const parentRuntimeFlags = parentStatus.runtimeFlags;\n const childFiberRefs = this.getFiberRefs();\n const updatedFiberRefs = fiberRefs.joinAs(parentFiberRefs, parentFiberId, childFiberRefs);\n parentFiber.setFiberRefs(updatedFiberRefs);\n const updatedRuntimeFlags = parentFiber.getFiberRef(currentRuntimeFlags);\n const patch = pipe(runtimeFlags_.diff(parentRuntimeFlags, updatedRuntimeFlags),\n // Do not inherit WindDown or Interruption!\n RuntimeFlagsPatch.exclude(runtimeFlags_.Interruption), RuntimeFlagsPatch.exclude(runtimeFlags_.WindDown));\n return core.updateRuntimeFlags(patch);\n });\n }\n /**\n * Tentatively observes the fiber, but returns immediately if it is not\n * already done.\n */\n get poll() {\n return core.sync(() => Option.fromNullable(this._exitValue));\n }\n /**\n * Unsafely observes the fiber, but returns immediately if it is not\n * already done.\n */\n unsafePoll() {\n return this._exitValue;\n }\n /**\n * In the background, interrupts the fiber as if interrupted from the specified fiber.\n */\n interruptAsFork(fiberId) {\n return core.sync(() => this.tell(FiberMessage.interruptSignal(internalCause.interrupt(fiberId))));\n }\n /**\n * In the background, interrupts the fiber as if interrupted from the specified fiber.\n */\n unsafeInterruptAsFork(fiberId) {\n this.tell(FiberMessage.interruptSignal(internalCause.interrupt(fiberId)));\n }\n /**\n * Adds an observer to the list of observers.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n addObserver(observer) {\n if (this._exitValue !== null) {\n observer(this._exitValue);\n } else {\n this._observers.push(observer);\n }\n }\n /**\n * Removes the specified observer from the list of observers that will be\n * notified when the fiber exits.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n removeObserver(observer) {\n this._observers = this._observers.filter(o => o !== observer);\n }\n /**\n * Retrieves all fiber refs of the fiber.\n *\n * **NOTE**: This method is safe to invoke on any fiber, but if not invoked\n * on this fiber, then values derived from the fiber's state (including the\n * log annotations and log level) may not be up-to-date.\n */\n getFiberRefs() {\n this.setFiberRef(currentRuntimeFlags, this.currentRuntimeFlags);\n return this._fiberRefs;\n }\n /**\n * Deletes the specified fiber ref.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n unsafeDeleteFiberRef(fiberRef) {\n this._fiberRefs = fiberRefs.delete_(this._fiberRefs, fiberRef);\n }\n /**\n * Retrieves the state of the fiber ref, or else its initial value.\n *\n * **NOTE**: This method is safe to invoke on any fiber, but if not invoked\n * on this fiber, then values derived from the fiber's state (including the\n * log annotations and log level) may not be up-to-date.\n */\n getFiberRef(fiberRef) {\n if (this._fiberRefs.locals.has(fiberRef)) {\n return this._fiberRefs.locals.get(fiberRef)[0][1];\n }\n return fiberRef.initial;\n }\n /**\n * Sets the fiber ref to the specified value.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n setFiberRef(fiberRef, value) {\n this._fiberRefs = fiberRefs.updateAs(this._fiberRefs, {\n fiberId: this._fiberId,\n fiberRef,\n value\n });\n this.refreshRefCache();\n }\n refreshRefCache() {\n this.currentDefaultServices = this.getFiberRef(defaultServices.currentServices);\n this.currentTracer = this.currentDefaultServices.unsafeMap.get(tracer.tracerTag.key);\n this.currentSupervisor = this.getFiberRef(currentSupervisor);\n this.currentScheduler = this.getFiberRef(currentScheduler);\n this.currentContext = this.getFiberRef(core.currentContext);\n this.currentSpan = this.currentContext.unsafeMap.get(tracer.spanTag.key);\n }\n /**\n * Wholesale replaces all fiber refs of this fiber.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n setFiberRefs(fiberRefs) {\n this._fiberRefs = fiberRefs;\n this.refreshRefCache();\n }\n /**\n * Adds a reference to the specified fiber inside the children set.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n addChild(child) {\n this.getChildren().add(child);\n }\n /**\n * Removes a reference to the specified fiber inside the children set.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n removeChild(child) {\n this.getChildren().delete(child);\n }\n /**\n * Transfers all children of this fiber that are currently running to the\n * specified fiber scope.\n *\n * **NOTE**: This method must be invoked by the fiber itself after it has\n * evaluated the effects but prior to exiting.\n */\n transferChildren(scope) {\n const children = this._children;\n // Clear the children of the current fiber\n this._children = null;\n if (children !== null && children.size > 0) {\n for (const child of children) {\n // If the child is still running, add it to the scope\n if (child._exitValue === null) {\n scope.add(this.currentRuntimeFlags, child);\n }\n }\n }\n }\n /**\n * On the current thread, executes all messages in the fiber's inbox. This\n * method may return before all work is done, in the event the fiber executes\n * an asynchronous operation.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n drainQueueOnCurrentThread() {\n let recurse = true;\n while (recurse) {\n let evaluationSignal = EvaluationSignalContinue;\n const prev = globalThis[internalFiber.currentFiberURI];\n globalThis[internalFiber.currentFiberURI] = this;\n try {\n while (evaluationSignal === EvaluationSignalContinue) {\n evaluationSignal = this._queue.length === 0 ? EvaluationSignalDone : this.evaluateMessageWhileSuspended(this._queue.splice(0, 1)[0]);\n }\n } finally {\n this._running = false;\n globalThis[internalFiber.currentFiberURI] = prev;\n }\n // Maybe someone added something to the queue between us checking, and us\n // giving up the drain. If so, we need to restart the draining, but only\n // if we beat everyone else to the restart:\n if (this._queue.length > 0 && !this._running) {\n this._running = true;\n if (evaluationSignal === EvaluationSignalYieldNow) {\n this.drainQueueLaterOnExecutor();\n recurse = false;\n } else {\n recurse = true;\n }\n } else {\n recurse = false;\n }\n }\n }\n /**\n * Schedules the execution of all messages in the fiber's inbox.\n *\n * This method will return immediately after the scheduling\n * operation is completed, but potentially before such messages have been\n * executed.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n drainQueueLaterOnExecutor() {\n this.currentScheduler.scheduleTask(this.run, this.getFiberRef(core.currentSchedulingPriority));\n }\n /**\n * Drains the fiber's message queue while the fiber is actively running,\n * returning the next effect to execute, which may be the input effect if no\n * additional effect needs to be executed.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n drainQueueWhileRunning(runtimeFlags, cur0) {\n let cur = cur0;\n while (this._queue.length > 0) {\n const message = this._queue.splice(0, 1)[0];\n // @ts-expect-error\n cur = drainQueueWhileRunningTable[message._tag](this, runtimeFlags, cur, message);\n }\n return cur;\n }\n /**\n * Determines if the fiber is interrupted.\n *\n * **NOTE**: This method is safe to invoke on any fiber, but if not invoked\n * on this fiber, then values derived from the fiber's state (including the\n * log annotations and log level) may not be up-to-date.\n */\n isInterrupted() {\n return !internalCause.isEmpty(this.getFiberRef(core.currentInterruptedCause));\n }\n /**\n * Adds an interruptor to the set of interruptors that are interrupting this\n * fiber.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n addInterruptedCause(cause) {\n const oldSC = this.getFiberRef(core.currentInterruptedCause);\n this.setFiberRef(core.currentInterruptedCause, internalCause.sequential(oldSC, cause));\n }\n /**\n * Processes a new incoming interrupt signal.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n processNewInterruptSignal(cause) {\n this.addInterruptedCause(cause);\n this.sendInterruptSignalToAllChildren();\n }\n /**\n * Interrupts all children of the current fiber, returning an effect that will\n * await the exit of the children. This method will return null if the fiber\n * has no children.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n sendInterruptSignalToAllChildren() {\n if (this._children === null || this._children.size === 0) {\n return false;\n }\n let told = false;\n for (const child of this._children) {\n child.tell(FiberMessage.interruptSignal(internalCause.interrupt(this.id())));\n told = true;\n }\n return told;\n }\n /**\n * Interrupts all children of the current fiber, returning an effect that will\n * await the exit of the children. This method will return null if the fiber\n * has no children.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n interruptAllChildren() {\n if (this.sendInterruptSignalToAllChildren()) {\n const it = this._children.values();\n this._children = null;\n let isDone = false;\n const body = () => {\n const next = it.next();\n if (!next.done) {\n return core.asVoid(next.value.await);\n } else {\n return core.sync(() => {\n isDone = true;\n });\n }\n };\n return core.whileLoop({\n while: () => !isDone,\n body,\n step: () => {\n //\n }\n });\n }\n return null;\n }\n reportExitValue(exit) {\n if (runtimeFlags_.runtimeMetrics(this.currentRuntimeFlags)) {\n const tags = this.getFiberRef(core.currentMetricLabels);\n const startTimeMillis = this.id().startTimeMillis;\n const endTimeMillis = Date.now();\n fiberLifetimes.unsafeUpdate(endTimeMillis - startTimeMillis, tags);\n fiberActive.unsafeUpdate(-1, tags);\n switch (exit._tag) {\n case OpCodes.OP_SUCCESS:\n {\n fiberSuccesses.unsafeUpdate(1, tags);\n break;\n }\n case OpCodes.OP_FAILURE:\n {\n fiberFailures.unsafeUpdate(1, tags);\n break;\n }\n }\n }\n if (exit._tag === \"Failure\") {\n const level = this.getFiberRef(core.currentUnhandledErrorLogLevel);\n if (!internalCause.isInterruptedOnly(exit.cause) && level._tag === \"Some\") {\n this.log(\"Fiber terminated with an unhandled error\", exit.cause, level);\n }\n }\n }\n setExitValue(exit) {\n this._exitValue = exit;\n this.reportExitValue(exit);\n for (let i = this._observers.length - 1; i >= 0; i--) {\n this._observers[i](exit);\n }\n this._observers = [];\n }\n getLoggers() {\n return this.getFiberRef(currentLoggers);\n }\n log(message, cause, overrideLogLevel) {\n const logLevel = Option.isSome(overrideLogLevel) ? overrideLogLevel.value : this.getFiberRef(core.currentLogLevel);\n const minimumLogLevel = this.getFiberRef(currentMinimumLogLevel);\n if (LogLevel.greaterThan(minimumLogLevel, logLevel)) {\n return;\n }\n const spans = this.getFiberRef(core.currentLogSpan);\n const annotations = this.getFiberRef(core.currentLogAnnotations);\n const loggers = this.getLoggers();\n const contextMap = this.getFiberRefs();\n if (HashSet.size(loggers) > 0) {\n const clockService = Context.get(this.getFiberRef(defaultServices.currentServices), clock.clockTag);\n const date = new Date(clockService.unsafeCurrentTimeMillis());\n Inspectable.withRedactableContext(contextMap, () => {\n for (const logger of loggers) {\n logger.log({\n fiberId: this.id(),\n logLevel,\n message,\n cause,\n context: contextMap,\n spans,\n annotations,\n date\n });\n }\n });\n }\n }\n /**\n * Evaluates a single message on the current thread, while the fiber is\n * suspended. This method should only be called while evaluation of the\n * fiber's effect is suspended due to an asynchronous operation.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n evaluateMessageWhileSuspended(message) {\n switch (message._tag) {\n case FiberMessage.OP_YIELD_NOW:\n {\n return EvaluationSignalYieldNow;\n }\n case FiberMessage.OP_INTERRUPT_SIGNAL:\n {\n this.processNewInterruptSignal(message.cause);\n if (this._asyncInterruptor !== null) {\n this._asyncInterruptor(core.exitFailCause(message.cause));\n this._asyncInterruptor = null;\n }\n return EvaluationSignalContinue;\n }\n case FiberMessage.OP_RESUME:\n {\n this._asyncInterruptor = null;\n this._asyncBlockingOn = null;\n this.evaluateEffect(message.effect);\n return EvaluationSignalContinue;\n }\n case FiberMessage.OP_STATEFUL:\n {\n message.onFiber(this, this._exitValue !== null ? FiberStatus.done : FiberStatus.suspended(this.currentRuntimeFlags, this._asyncBlockingOn));\n return EvaluationSignalContinue;\n }\n default:\n {\n return absurd(message);\n }\n }\n }\n /**\n * Evaluates an effect until completion, potentially asynchronously.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n evaluateEffect(effect0) {\n this.currentSupervisor.onResume(this);\n try {\n let effect = runtimeFlags_.interruptible(this.currentRuntimeFlags) && this.isInterrupted() ? core.exitFailCause(this.getInterruptedCause()) : effect0;\n while (effect !== null) {\n const eff = effect;\n const exit = this.runLoop(eff);\n if (exit === YieldedOp) {\n const op = yieldedOpChannel.currentOp;\n yieldedOpChannel.currentOp = null;\n if (op._op === OpCodes.OP_YIELD) {\n if (runtimeFlags_.cooperativeYielding(this.currentRuntimeFlags)) {\n this.tell(FiberMessage.yieldNow());\n this.tell(FiberMessage.resume(core.exitVoid));\n effect = null;\n } else {\n effect = core.exitVoid;\n }\n } else if (op._op === OpCodes.OP_ASYNC) {\n // Terminate this evaluation, async resumption will continue evaluation:\n effect = null;\n }\n } else {\n this.currentRuntimeFlags = pipe(this.currentRuntimeFlags, runtimeFlags_.enable(runtimeFlags_.WindDown));\n const interruption = this.interruptAllChildren();\n if (interruption !== null) {\n effect = core.flatMap(interruption, () => exit);\n } else {\n if (this._queue.length === 0) {\n // No more messages to process, so we will allow the fiber to end life:\n this.setExitValue(exit);\n } else {\n // There are messages, possibly added by the final op executed by\n // the fiber. To be safe, we should execute those now before we\n // allow the fiber to end life:\n this.tell(FiberMessage.resume(exit));\n }\n effect = null;\n }\n }\n }\n } finally {\n this.currentSupervisor.onSuspend(this);\n }\n }\n /**\n * Begins execution of the effect associated with this fiber on the current\n * thread. This can be called to \"kick off\" execution of a fiber after it has\n * been created, in hopes that the effect can be executed synchronously.\n *\n * This is not the normal way of starting a fiber, but it is useful when the\n * express goal of executing the fiber is to synchronously produce its exit.\n */\n start(effect) {\n if (!this._running) {\n this._running = true;\n const prev = globalThis[internalFiber.currentFiberURI];\n globalThis[internalFiber.currentFiberURI] = this;\n try {\n this.evaluateEffect(effect);\n } finally {\n this._running = false;\n globalThis[internalFiber.currentFiberURI] = prev;\n // Because we're special casing `start`, we have to be responsible\n // for spinning up the fiber if there were new messages added to\n // the queue between the completion of the effect and the transition\n // to the not running state.\n if (this._queue.length > 0) {\n this.drainQueueLaterOnExecutor();\n }\n }\n } else {\n this.tell(FiberMessage.resume(effect));\n }\n }\n /**\n * Begins execution of the effect associated with this fiber on in the\n * background, and on the correct thread pool. This can be called to \"kick\n * off\" execution of a fiber after it has been created, in hopes that the\n * effect can be executed synchronously.\n */\n startFork(effect) {\n this.tell(FiberMessage.resume(effect));\n }\n /**\n * Takes the current runtime flags, patches them to return the new runtime\n * flags, and then makes any changes necessary to fiber state based on the\n * specified patch.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n patchRuntimeFlags(oldRuntimeFlags, patch) {\n const newRuntimeFlags = runtimeFlags_.patch(oldRuntimeFlags, patch);\n globalThis[internalFiber.currentFiberURI] = this;\n this.currentRuntimeFlags = newRuntimeFlags;\n return newRuntimeFlags;\n }\n /**\n * Initiates an asynchronous operation, by building a callback that will\n * resume execution, and then feeding that callback to the registration\n * function, handling error cases and repeated resumptions appropriately.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n initiateAsync(runtimeFlags, asyncRegister) {\n let alreadyCalled = false;\n const callback = effect => {\n if (!alreadyCalled) {\n alreadyCalled = true;\n this.tell(FiberMessage.resume(effect));\n }\n };\n if (runtimeFlags_.interruptible(runtimeFlags)) {\n this._asyncInterruptor = callback;\n }\n try {\n asyncRegister(callback);\n } catch (e) {\n callback(core.failCause(internalCause.die(e)));\n }\n }\n pushStack(cont) {\n this._stack.push(cont);\n if (cont._op === \"OnStep\") {\n this._steps.push({\n refs: this.getFiberRefs(),\n flags: this.currentRuntimeFlags\n });\n }\n }\n popStack() {\n const item = this._stack.pop();\n if (item) {\n if (item._op === \"OnStep\") {\n this._steps.pop();\n }\n return item;\n }\n return;\n }\n getNextSuccessCont() {\n let frame = this.popStack();\n while (frame) {\n if (frame._op !== OpCodes.OP_ON_FAILURE) {\n return frame;\n }\n frame = this.popStack();\n }\n }\n getNextFailCont() {\n let frame = this.popStack();\n while (frame) {\n if (frame._op !== OpCodes.OP_ON_SUCCESS && frame._op !== OpCodes.OP_WHILE && frame._op !== OpCodes.OP_ITERATOR) {\n return frame;\n }\n frame = this.popStack();\n }\n }\n [OpCodes.OP_TAG](op) {\n return core.sync(() => Context.unsafeGet(this.currentContext, op));\n }\n [\"Left\"](op) {\n return core.fail(op.left);\n }\n [\"None\"](_) {\n return core.fail(new core.NoSuchElementException());\n }\n [\"Right\"](op) {\n return core.exitSucceed(op.right);\n }\n [\"Some\"](op) {\n return core.exitSucceed(op.value);\n }\n [\"Micro\"](op) {\n return core.unsafeAsync(microResume => {\n let resume = microResume;\n const fiber = Micro.runFork(Micro.provideContext(op, this.currentContext));\n fiber.addObserver(exit => {\n if (exit._tag === \"Success\") {\n return resume(core.exitSucceed(exit.value));\n }\n switch (exit.cause._tag) {\n case \"Interrupt\":\n {\n return resume(core.exitFailCause(internalCause.interrupt(FiberId.none)));\n }\n case \"Fail\":\n {\n return resume(core.fail(exit.cause.error));\n }\n case \"Die\":\n {\n return resume(core.die(exit.cause.defect));\n }\n }\n });\n return core.unsafeAsync(abortResume => {\n resume = _ => {\n abortResume(core.void);\n };\n fiber.unsafeInterrupt();\n });\n });\n }\n [OpCodes.OP_SYNC](op) {\n const value = internalCall(() => op.effect_instruction_i0());\n const cont = this.getNextSuccessCont();\n if (cont !== undefined) {\n if (!(cont._op in contOpSuccess)) {\n // @ts-expect-error\n absurd(cont);\n }\n // @ts-expect-error\n return contOpSuccess[cont._op](this, cont, value);\n } else {\n yieldedOpChannel.currentOp = core.exitSucceed(value);\n return YieldedOp;\n }\n }\n [OpCodes.OP_SUCCESS](op) {\n const oldCur = op;\n const cont = this.getNextSuccessCont();\n if (cont !== undefined) {\n if (!(cont._op in contOpSuccess)) {\n // @ts-expect-error\n absurd(cont);\n }\n // @ts-expect-error\n return contOpSuccess[cont._op](this, cont, oldCur.effect_instruction_i0);\n } else {\n yieldedOpChannel.currentOp = oldCur;\n return YieldedOp;\n }\n }\n [OpCodes.OP_FAILURE](op) {\n const cause = op.effect_instruction_i0;\n const cont = this.getNextFailCont();\n if (cont !== undefined) {\n switch (cont._op) {\n case OpCodes.OP_ON_FAILURE:\n case OpCodes.OP_ON_SUCCESS_AND_FAILURE:\n {\n if (!(runtimeFlags_.interruptible(this.currentRuntimeFlags) && this.isInterrupted())) {\n return internalCall(() => cont.effect_instruction_i1(cause));\n } else {\n return core.exitFailCause(internalCause.stripFailures(cause));\n }\n }\n case \"OnStep\":\n {\n if (!(runtimeFlags_.interruptible(this.currentRuntimeFlags) && this.isInterrupted())) {\n return core.exitSucceed(core.exitFailCause(cause));\n } else {\n return core.exitFailCause(internalCause.stripFailures(cause));\n }\n }\n case OpCodes.OP_REVERT_FLAGS:\n {\n this.patchRuntimeFlags(this.currentRuntimeFlags, cont.patch);\n if (runtimeFlags_.interruptible(this.currentRuntimeFlags) && this.isInterrupted()) {\n return core.exitFailCause(internalCause.sequential(cause, this.getInterruptedCause()));\n } else {\n return core.exitFailCause(cause);\n }\n }\n default:\n {\n absurd(cont);\n }\n }\n } else {\n yieldedOpChannel.currentOp = core.exitFailCause(cause);\n return YieldedOp;\n }\n }\n [OpCodes.OP_WITH_RUNTIME](op) {\n return internalCall(() => op.effect_instruction_i0(this, FiberStatus.running(this.currentRuntimeFlags)));\n }\n [\"Blocked\"](op) {\n const refs = this.getFiberRefs();\n const flags = this.currentRuntimeFlags;\n if (this._steps.length > 0) {\n const frames = [];\n const snap = this._steps[this._steps.length - 1];\n let frame = this.popStack();\n while (frame && frame._op !== \"OnStep\") {\n frames.push(frame);\n frame = this.popStack();\n }\n this.setFiberRefs(snap.refs);\n this.currentRuntimeFlags = snap.flags;\n const patchRefs = FiberRefsPatch.diff(snap.refs, refs);\n const patchFlags = runtimeFlags_.diff(snap.flags, flags);\n return core.exitSucceed(core.blocked(op.effect_instruction_i0, core.withFiberRuntime(newFiber => {\n while (frames.length > 0) {\n newFiber.pushStack(frames.pop());\n }\n newFiber.setFiberRefs(FiberRefsPatch.patch(newFiber.id(), newFiber.getFiberRefs())(patchRefs));\n newFiber.currentRuntimeFlags = runtimeFlags_.patch(patchFlags)(newFiber.currentRuntimeFlags);\n return op.effect_instruction_i1;\n })));\n }\n return core.uninterruptibleMask(restore => core.flatMap(forkDaemon(core.runRequestBlock(op.effect_instruction_i0)), () => restore(op.effect_instruction_i1)));\n }\n [\"RunBlocked\"](op) {\n return runBlockedRequests(op.effect_instruction_i0);\n }\n [OpCodes.OP_UPDATE_RUNTIME_FLAGS](op) {\n const updateFlags = op.effect_instruction_i0;\n const oldRuntimeFlags = this.currentRuntimeFlags;\n const newRuntimeFlags = runtimeFlags_.patch(oldRuntimeFlags, updateFlags);\n // One more chance to short circuit: if we're immediately going\n // to interrupt. Interruption will cause immediate reversion of\n // the flag, so as long as we \"peek ahead\", there's no need to\n // set them to begin with.\n if (runtimeFlags_.interruptible(newRuntimeFlags) && this.isInterrupted()) {\n return core.exitFailCause(this.getInterruptedCause());\n } else {\n // Impossible to short circuit, so record the changes\n this.patchRuntimeFlags(this.currentRuntimeFlags, updateFlags);\n if (op.effect_instruction_i1) {\n // Since we updated the flags, we need to revert them\n const revertFlags = runtimeFlags_.diff(newRuntimeFlags, oldRuntimeFlags);\n this.pushStack(new core.RevertFlags(revertFlags, op));\n return internalCall(() => op.effect_instruction_i1(oldRuntimeFlags));\n } else {\n return core.exitVoid;\n }\n }\n }\n [OpCodes.OP_ON_SUCCESS](op) {\n this.pushStack(op);\n return op.effect_instruction_i0;\n }\n [\"OnStep\"](op) {\n this.pushStack(op);\n return op.effect_instruction_i0;\n }\n [OpCodes.OP_ON_FAILURE](op) {\n this.pushStack(op);\n return op.effect_instruction_i0;\n }\n [OpCodes.OP_ON_SUCCESS_AND_FAILURE](op) {\n this.pushStack(op);\n return op.effect_instruction_i0;\n }\n [OpCodes.OP_ASYNC](op) {\n this._asyncBlockingOn = op.effect_instruction_i1;\n this.initiateAsync(this.currentRuntimeFlags, op.effect_instruction_i0);\n yieldedOpChannel.currentOp = op;\n return YieldedOp;\n }\n [OpCodes.OP_YIELD](op) {\n this._isYielding = false;\n yieldedOpChannel.currentOp = op;\n return YieldedOp;\n }\n [OpCodes.OP_WHILE](op) {\n const check = op.effect_instruction_i0;\n const body = op.effect_instruction_i1;\n if (check()) {\n this.pushStack(op);\n return body();\n } else {\n return core.exitVoid;\n }\n }\n [OpCodes.OP_ITERATOR](op) {\n return contOpSuccess[OpCodes.OP_ITERATOR](this, op, undefined);\n }\n [OpCodes.OP_COMMIT](op) {\n return internalCall(() => op.commit());\n }\n /**\n * The main run-loop for evaluating effects.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n runLoop(effect0) {\n let cur = effect0;\n this.currentOpCount = 0;\n while (true) {\n if ((this.currentRuntimeFlags & OpSupervision) !== 0) {\n this.currentSupervisor.onEffect(this, cur);\n }\n if (this._queue.length > 0) {\n cur = this.drainQueueWhileRunning(this.currentRuntimeFlags, cur);\n }\n if (!this._isYielding) {\n this.currentOpCount += 1;\n const shouldYield = this.currentScheduler.shouldYield(this);\n if (shouldYield !== false) {\n this._isYielding = true;\n this.currentOpCount = 0;\n const oldCur = cur;\n cur = core.flatMap(core.yieldNow({\n priority: shouldYield\n }), () => oldCur);\n }\n }\n try {\n // @ts-expect-error\n cur = this.currentTracer.context(() => {\n if (_version !== cur[core.EffectTypeId]._V) {\n const level = this.getFiberRef(core.currentVersionMismatchErrorLogLevel);\n if (level._tag === \"Some\") {\n const effectVersion = cur[core.EffectTypeId]._V;\n this.log(`Executing an Effect versioned ${effectVersion} with a Runtime of version ${version.getCurrentVersion()}, you may want to dedupe the effect dependencies, you can use the language service plugin to detect this at compile time: https://github.com/Effect-TS/language-service`, internalCause.empty, level);\n }\n }\n // @ts-expect-error\n return this[cur._op](cur);\n }, this);\n if (cur === YieldedOp) {\n const op = yieldedOpChannel.currentOp;\n if (op._op === OpCodes.OP_YIELD || op._op === OpCodes.OP_ASYNC) {\n return YieldedOp;\n }\n yieldedOpChannel.currentOp = null;\n return op._op === OpCodes.OP_SUCCESS || op._op === OpCodes.OP_FAILURE ? op : core.exitFailCause(internalCause.die(op));\n }\n } catch (e) {\n if (cur !== YieldedOp && !Predicate.hasProperty(cur, \"_op\") || !(cur._op in this)) {\n cur = core.dieMessage(`Not a valid effect: ${Inspectable.toStringUnknown(cur)}`);\n } else if (core.isInterruptedException(e)) {\n cur = core.exitFailCause(internalCause.sequential(internalCause.die(e), internalCause.interrupt(FiberId.none)));\n } else {\n cur = core.die(e);\n }\n }\n }\n }\n run = () => {\n this.drainQueueOnCurrentThread();\n };\n}\n// circular with Logger\n/** @internal */\nexport const currentMinimumLogLevel = /*#__PURE__*/globalValue(\"effect/FiberRef/currentMinimumLogLevel\", () => core.fiberRefUnsafeMake(LogLevel.fromLiteral(\"Info\")));\n/** @internal */\nexport const loggerWithConsoleLog = self => internalLogger.makeLogger(opts => {\n const services = FiberRefs.getOrDefault(opts.context, defaultServices.currentServices);\n Context.get(services, consoleTag).unsafe.log(self.log(opts));\n});\n/** @internal */\nexport const loggerWithLeveledLog = self => internalLogger.makeLogger(opts => {\n const services = FiberRefs.getOrDefault(opts.context, defaultServices.currentServices);\n const unsafeLogger = Context.get(services, consoleTag).unsafe;\n switch (opts.logLevel._tag) {\n case \"Debug\":\n return unsafeLogger.debug(self.log(opts));\n case \"Info\":\n return unsafeLogger.info(self.log(opts));\n case \"Trace\":\n return unsafeLogger.trace(self.log(opts));\n case \"Warning\":\n return unsafeLogger.warn(self.log(opts));\n case \"Error\":\n case \"Fatal\":\n return unsafeLogger.error(self.log(opts));\n default:\n return unsafeLogger.log(self.log(opts));\n }\n});\n/** @internal */\nexport const loggerWithConsoleError = self => internalLogger.makeLogger(opts => {\n const services = FiberRefs.getOrDefault(opts.context, defaultServices.currentServices);\n Context.get(services, consoleTag).unsafe.error(self.log(opts));\n});\n/** @internal */\nexport const defaultLogger = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Logger/defaultLogger\"), () => loggerWithConsoleLog(internalLogger.stringLogger));\n/** @internal */\nexport const jsonLogger = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Logger/jsonLogger\"), () => loggerWithConsoleLog(internalLogger.jsonLogger));\n/** @internal */\nexport const logFmtLogger = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Logger/logFmtLogger\"), () => loggerWithConsoleLog(internalLogger.logfmtLogger));\n/** @internal */\nexport const prettyLogger = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Logger/prettyLogger\"), () => internalLogger.prettyLoggerDefault);\n/** @internal */\nexport const structuredLogger = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Logger/structuredLogger\"), () => loggerWithConsoleLog(internalLogger.structuredLogger));\n/** @internal */\nexport const tracerLogger = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Logger/tracerLogger\"), () => internalLogger.makeLogger(({\n annotations,\n cause,\n context,\n fiberId,\n logLevel,\n message\n}) => {\n const span = Context.getOption(fiberRefs.getOrDefault(context, core.currentContext), tracer.spanTag);\n if (span._tag === \"None\" || span.value._tag === \"ExternalSpan\") {\n return;\n }\n const clockService = Context.unsafeGet(fiberRefs.getOrDefault(context, defaultServices.currentServices), clock.clockTag);\n const attributes = {};\n for (const [key, value] of annotations) {\n attributes[key] = value;\n }\n attributes[\"effect.fiberId\"] = FiberId.threadName(fiberId);\n attributes[\"effect.logLevel\"] = logLevel.label;\n if (cause !== null && cause._tag !== \"Empty\") {\n attributes[\"effect.cause\"] = internalCause.pretty(cause, {\n renderErrorCause: true\n });\n }\n span.value.event(Inspectable.toStringUnknown(Array.isArray(message) && message.length === 1 ? message[0] : message), clockService.unsafeCurrentTimeNanos(), attributes);\n}));\n/** @internal */\nexport const loggerWithSpanAnnotations = self => internalLogger.mapInputOptions(self, options => {\n const span = Option.flatMap(fiberRefs.get(options.context, core.currentContext), Context.getOption(tracer.spanTag));\n if (span._tag === \"None\") {\n return options;\n }\n return {\n ...options,\n annotations: pipe(options.annotations, HashMap.set(\"effect.traceId\", span.value.traceId), HashMap.set(\"effect.spanId\", span.value.spanId), span.value._tag === \"Span\" ? HashMap.set(\"effect.spanName\", span.value.name) : identity)\n };\n});\n/** @internal */\nexport const currentLoggers = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/FiberRef/currentLoggers\"), () => core.fiberRefUnsafeMakeHashSet(HashSet.make(defaultLogger, tracerLogger)));\n/** @internal */\nexport const batchedLogger = /*#__PURE__*/dual(3, (self, window, f) => core.flatMap(scope, scope => {\n let buffer = [];\n const flush = core.suspend(() => {\n if (buffer.length === 0) {\n return core.void;\n }\n const arr = buffer;\n buffer = [];\n return f(arr);\n });\n return core.uninterruptibleMask(restore => pipe(internalEffect.sleep(window), core.zipRight(flush), internalEffect.forever, restore, forkDaemon, core.flatMap(fiber => core.scopeAddFinalizer(scope, core.interruptFiber(fiber))), core.zipRight(addFinalizer(() => flush)), core.as(internalLogger.makeLogger(options => {\n buffer.push(self.log(options));\n }))));\n}));\nexport const annotateLogsScoped = function () {\n if (typeof arguments[0] === \"string\") {\n return fiberRefLocallyScopedWith(core.currentLogAnnotations, HashMap.set(arguments[0], arguments[1]));\n }\n const entries = Object.entries(arguments[0]);\n return fiberRefLocallyScopedWith(core.currentLogAnnotations, HashMap.mutate(annotations => {\n for (let i = 0; i < entries.length; i++) {\n const [key, value] = entries[i];\n HashMap.set(annotations, key, value);\n }\n return annotations;\n }));\n};\n/** @internal */\nexport const whenLogLevel = /*#__PURE__*/dual(2, (effect, level) => {\n const requiredLogLevel = typeof level === \"string\" ? LogLevel.fromLiteral(level) : level;\n return core.withFiberRuntime(fiberState => {\n const minimumLogLevel = fiberState.getFiberRef(currentMinimumLogLevel);\n // Imitate the behaviour of `FiberRuntime.log`\n if (LogLevel.greaterThan(minimumLogLevel, requiredLogLevel)) {\n return core.succeed(Option.none());\n }\n return core.map(effect, Option.some);\n });\n});\n// circular with Effect\n/* @internal */\nexport const acquireRelease = /*#__PURE__*/dual(args => core.isEffect(args[0]), (acquire, release) => core.uninterruptible(core.tap(acquire, a => addFinalizer(exit => release(a, exit)))));\n/* @internal */\nexport const acquireReleaseInterruptible = /*#__PURE__*/dual(args => core.isEffect(args[0]), (acquire, release) => ensuring(acquire, addFinalizer(exit => release(exit))));\n/* @internal */\nexport const addFinalizer = finalizer => core.withFiberRuntime(runtime => {\n const acquireRefs = runtime.getFiberRefs();\n const acquireFlags = runtimeFlags_.disable(runtime.currentRuntimeFlags, runtimeFlags_.Interruption);\n return core.flatMap(scope, scope => core.scopeAddFinalizerExit(scope, exit => core.withFiberRuntime(runtimeFinalizer => {\n const preRefs = runtimeFinalizer.getFiberRefs();\n const preFlags = runtimeFinalizer.currentRuntimeFlags;\n const patchRefs = FiberRefsPatch.diff(preRefs, acquireRefs);\n const patchFlags = runtimeFlags_.diff(preFlags, acquireFlags);\n const inverseRefs = FiberRefsPatch.diff(acquireRefs, preRefs);\n runtimeFinalizer.setFiberRefs(FiberRefsPatch.patch(patchRefs, runtimeFinalizer.id(), acquireRefs));\n return ensuring(core.withRuntimeFlags(finalizer(exit), patchFlags), core.sync(() => {\n runtimeFinalizer.setFiberRefs(FiberRefsPatch.patch(inverseRefs, runtimeFinalizer.id(), runtimeFinalizer.getFiberRefs()));\n }));\n })));\n});\n/* @internal */\nexport const daemonChildren = self => {\n const forkScope = core.fiberRefLocally(core.currentForkScopeOverride, Option.some(fiberScope.globalScope));\n return forkScope(self);\n};\n/** @internal */\nconst _existsParFound = /*#__PURE__*/Symbol.for(\"effect/Effect/existsPar/found\");\n/* @internal */\nexport const exists = /*#__PURE__*/dual(args => Predicate.isIterable(args[0]) && !core.isEffect(args[0]), (elements, predicate, options) => concurrency.matchSimple(options?.concurrency, () => core.suspend(() => existsLoop(elements[Symbol.iterator](), 0, predicate)), () => core.matchEffect(forEach(elements, (a, i) => core.if_(predicate(a, i), {\n onTrue: () => core.fail(_existsParFound),\n onFalse: () => core.void\n}), options), {\n onFailure: e => e === _existsParFound ? core.succeed(true) : core.fail(e),\n onSuccess: () => core.succeed(false)\n})));\nconst existsLoop = (iterator, index, f) => {\n const next = iterator.next();\n if (next.done) {\n return core.succeed(false);\n }\n return core.flatMap(f(next.value, index), b => b ? core.succeed(b) : existsLoop(iterator, index + 1, f));\n};\n/* @internal */\nexport const filter = /*#__PURE__*/dual(args => Predicate.isIterable(args[0]) && !core.isEffect(args[0]), (elements, predicate, options) => {\n const predicate_ = options?.negate ? (a, i) => core.map(predicate(a, i), Boolean.not) : predicate;\n return concurrency.matchSimple(options?.concurrency, () => core.suspend(() => RA.fromIterable(elements).reduceRight((effect, a, i) => core.zipWith(effect, core.suspend(() => predicate_(a, i)), (list, b) => b ? [a, ...list] : list), core.sync(() => new Array()))), () => core.map(forEach(elements, (a, i) => core.map(predicate_(a, i), b => b ? Option.some(a) : Option.none()), options), RA.getSomes));\n});\n// === all\nconst allResolveInput = input => {\n if (Array.isArray(input) || Predicate.isIterable(input)) {\n return [input, Option.none()];\n }\n const keys = Object.keys(input);\n const size = keys.length;\n return [keys.map(k => input[k]), Option.some(values => {\n const res = {};\n for (let i = 0; i < size; i++) {\n ;\n res[keys[i]] = values[i];\n }\n return res;\n })];\n};\nconst allValidate = (effects, reconcile, options) => {\n const eitherEffects = [];\n for (const effect of effects) {\n eitherEffects.push(core.either(effect));\n }\n return core.flatMap(forEach(eitherEffects, identity, {\n concurrency: options?.concurrency,\n batching: options?.batching,\n concurrentFinalizers: options?.concurrentFinalizers\n }), eithers => {\n const none = Option.none();\n const size = eithers.length;\n const errors = new Array(size);\n const successes = new Array(size);\n let errored = false;\n for (let i = 0; i < size; i++) {\n const either = eithers[i];\n if (either._tag === \"Left\") {\n errors[i] = Option.some(either.left);\n errored = true;\n } else {\n successes[i] = either.right;\n errors[i] = none;\n }\n }\n if (errored) {\n return reconcile._tag === \"Some\" ? core.fail(reconcile.value(errors)) : core.fail(errors);\n } else if (options?.discard) {\n return core.void;\n }\n return reconcile._tag === \"Some\" ? core.succeed(reconcile.value(successes)) : core.succeed(successes);\n });\n};\nconst allEither = (effects, reconcile, options) => {\n const eitherEffects = [];\n for (const effect of effects) {\n eitherEffects.push(core.either(effect));\n }\n if (options?.discard) {\n return forEach(eitherEffects, identity, {\n concurrency: options?.concurrency,\n batching: options?.batching,\n discard: true,\n concurrentFinalizers: options?.concurrentFinalizers\n });\n }\n return core.map(forEach(eitherEffects, identity, {\n concurrency: options?.concurrency,\n batching: options?.batching,\n concurrentFinalizers: options?.concurrentFinalizers\n }), eithers => reconcile._tag === \"Some\" ? reconcile.value(eithers) : eithers);\n};\n/* @internal */\nexport const all = (arg, options) => {\n const [effects, reconcile] = allResolveInput(arg);\n if (options?.mode === \"validate\") {\n return allValidate(effects, reconcile, options);\n } else if (options?.mode === \"either\") {\n return allEither(effects, reconcile, options);\n }\n return options?.discard !== true && reconcile._tag === \"Some\" ? core.map(forEach(effects, identity, options), reconcile.value) : forEach(effects, identity, options);\n};\n/* @internal */\nexport const allWith = options => arg => all(arg, options);\n/* @internal */\nexport const allSuccesses = (elements, options) => core.map(all(RA.fromIterable(elements).map(core.exit), options), RA.filterMap(exit => core.exitIsSuccess(exit) ? Option.some(exit.effect_instruction_i0) : Option.none()));\n/* @internal */\nexport const replicate = /*#__PURE__*/dual(2, (self, n) => Array.from({\n length: n\n}, () => self));\n/* @internal */\nexport const replicateEffect = /*#__PURE__*/dual(args => core.isEffect(args[0]), (self, n, options) => all(replicate(self, n), options));\n/* @internal */\nexport const forEach = /*#__PURE__*/dual(args => Predicate.isIterable(args[0]), (self, f, options) => core.withFiberRuntime(r => {\n const isRequestBatchingEnabled = options?.batching === true || options?.batching === \"inherit\" && r.getFiberRef(core.currentRequestBatching);\n if (options?.discard) {\n return concurrency.match(options.concurrency, () => finalizersMaskInternal(ExecutionStrategy.sequential, options?.concurrentFinalizers)(restore => isRequestBatchingEnabled ? forEachConcurrentDiscard(self, (a, i) => restore(f(a, i)), true, false, 1) : core.forEachSequentialDiscard(self, (a, i) => restore(f(a, i)))), () => finalizersMaskInternal(ExecutionStrategy.parallel, options?.concurrentFinalizers)(restore => forEachConcurrentDiscard(self, (a, i) => restore(f(a, i)), isRequestBatchingEnabled, false)), n => finalizersMaskInternal(ExecutionStrategy.parallelN(n), options?.concurrentFinalizers)(restore => forEachConcurrentDiscard(self, (a, i) => restore(f(a, i)), isRequestBatchingEnabled, false, n)));\n }\n return concurrency.match(options?.concurrency, () => finalizersMaskInternal(ExecutionStrategy.sequential, options?.concurrentFinalizers)(restore => isRequestBatchingEnabled ? forEachParN(self, 1, (a, i) => restore(f(a, i)), true) : core.forEachSequential(self, (a, i) => restore(f(a, i)))), () => finalizersMaskInternal(ExecutionStrategy.parallel, options?.concurrentFinalizers)(restore => forEachParUnbounded(self, (a, i) => restore(f(a, i)), isRequestBatchingEnabled)), n => finalizersMaskInternal(ExecutionStrategy.parallelN(n), options?.concurrentFinalizers)(restore => forEachParN(self, n, (a, i) => restore(f(a, i)), isRequestBatchingEnabled)));\n}));\n/* @internal */\nexport const forEachParUnbounded = (self, f, batching) => core.suspend(() => {\n const as = RA.fromIterable(self);\n const array = new Array(as.length);\n const fn = (a, i) => core.flatMap(f(a, i), b => core.sync(() => array[i] = b));\n return core.zipRight(forEachConcurrentDiscard(as, fn, batching, false), core.succeed(array));\n});\n/** @internal */\nexport const forEachConcurrentDiscard = (self, f, batching, processAll, n) => core.uninterruptibleMask(restore => core.transplant(graft => core.withFiberRuntime(parent => {\n let todos = Array.from(self).reverse();\n let target = todos.length;\n if (target === 0) {\n return core.void;\n }\n let counter = 0;\n let interrupted = false;\n const fibersCount = n ? Math.min(todos.length, n) : todos.length;\n const fibers = new Set();\n const results = new Array();\n const interruptAll = () => fibers.forEach(fiber => {\n fiber.currentScheduler.scheduleTask(() => {\n fiber.unsafeInterruptAsFork(parent.id());\n }, 0);\n });\n const startOrder = new Array();\n const joinOrder = new Array();\n const residual = new Array();\n const collectExits = () => {\n const exits = results.filter(({\n exit\n }) => exit._tag === \"Failure\").sort((a, b) => a.index < b.index ? -1 : a.index === b.index ? 0 : 1).map(({\n exit\n }) => exit);\n if (exits.length === 0) {\n exits.push(core.exitVoid);\n }\n return exits;\n };\n const runFiber = (eff, interruptImmediately = false) => {\n const runnable = core.uninterruptible(graft(eff));\n const fiber = unsafeForkUnstarted(runnable, parent, parent.currentRuntimeFlags, fiberScope.globalScope);\n parent.currentScheduler.scheduleTask(() => {\n if (interruptImmediately) {\n fiber.unsafeInterruptAsFork(parent.id());\n }\n fiber.resume(runnable);\n }, 0);\n return fiber;\n };\n const onInterruptSignal = () => {\n if (!processAll) {\n target -= todos.length;\n todos = [];\n }\n interrupted = true;\n interruptAll();\n };\n const stepOrExit = batching ? core.step : core.exit;\n const processingFiber = runFiber(core.async(resume => {\n const pushResult = (res, index) => {\n if (res._op === \"Blocked\") {\n residual.push(res);\n } else {\n results.push({\n index,\n exit: res\n });\n if (res._op === \"Failure\" && !interrupted) {\n onInterruptSignal();\n }\n }\n };\n const next = () => {\n if (todos.length > 0) {\n const a = todos.pop();\n let index = counter++;\n const returnNextElement = () => {\n const a = todos.pop();\n index = counter++;\n return core.flatMap(core.yieldNow(), () => core.flatMap(stepOrExit(restore(f(a, index))), onRes));\n };\n const onRes = res => {\n if (todos.length > 0) {\n pushResult(res, index);\n if (todos.length > 0) {\n return returnNextElement();\n }\n }\n return core.succeed(res);\n };\n const todo = core.flatMap(stepOrExit(restore(f(a, index))), onRes);\n const fiber = runFiber(todo);\n startOrder.push(fiber);\n fibers.add(fiber);\n if (interrupted) {\n fiber.currentScheduler.scheduleTask(() => {\n fiber.unsafeInterruptAsFork(parent.id());\n }, 0);\n }\n fiber.addObserver(wrapped => {\n let exit;\n if (wrapped._op === \"Failure\") {\n exit = wrapped;\n } else {\n exit = wrapped.effect_instruction_i0;\n }\n joinOrder.push(fiber);\n fibers.delete(fiber);\n pushResult(exit, index);\n if (results.length === target) {\n resume(core.succeed(Option.getOrElse(core.exitCollectAll(collectExits(), {\n parallel: true\n }), () => core.exitVoid)));\n } else if (residual.length + results.length === target) {\n const exits = collectExits();\n const requests = residual.map(blocked => blocked.effect_instruction_i0).reduce(RequestBlock_.par);\n resume(core.succeed(core.blocked(requests, forEachConcurrentDiscard([Option.getOrElse(core.exitCollectAll(exits, {\n parallel: true\n }), () => core.exitVoid), ...residual.map(blocked => blocked.effect_instruction_i1)], i => i, batching, true, n))));\n } else {\n next();\n }\n });\n }\n };\n for (let i = 0; i < fibersCount; i++) {\n next();\n }\n }));\n return core.asVoid(core.onExit(core.flatten(restore(internalFiber.join(processingFiber))), core.exitMatch({\n onFailure: cause => {\n onInterruptSignal();\n const target = residual.length + 1;\n const concurrency = Math.min(typeof n === \"number\" ? n : residual.length, residual.length);\n const toPop = Array.from(residual);\n return core.async(cb => {\n const exits = [];\n let count = 0;\n let index = 0;\n const check = (index, hitNext) => exit => {\n exits[index] = exit;\n count++;\n if (count === target) {\n cb(core.exitSucceed(core.exitFailCause(cause)));\n }\n if (toPop.length > 0 && hitNext) {\n next();\n }\n };\n const next = () => {\n runFiber(toPop.pop(), true).addObserver(check(index, true));\n index++;\n };\n processingFiber.addObserver(check(index, false));\n index++;\n for (let i = 0; i < concurrency; i++) {\n next();\n }\n });\n },\n onSuccess: () => core.forEachSequential(joinOrder, f => f.inheritAll)\n })));\n})));\n/* @internal */\nexport const forEachParN = (self, n, f, batching) => core.suspend(() => {\n const as = RA.fromIterable(self);\n const array = new Array(as.length);\n const fn = (a, i) => core.map(f(a, i), b => array[i] = b);\n return core.zipRight(forEachConcurrentDiscard(as, fn, batching, false, n), core.succeed(array));\n});\n/* @internal */\nexport const fork = self => core.withFiberRuntime((state, status) => core.succeed(unsafeFork(self, state, status.runtimeFlags)));\n/* @internal */\nexport const forkDaemon = self => forkWithScopeOverride(self, fiberScope.globalScope);\n/* @internal */\nexport const forkWithErrorHandler = /*#__PURE__*/dual(2, (self, handler) => fork(core.onError(self, cause => {\n const either = internalCause.failureOrCause(cause);\n switch (either._tag) {\n case \"Left\":\n return handler(either.left);\n case \"Right\":\n return core.failCause(either.right);\n }\n})));\n/** @internal */\nexport const unsafeFork = (effect, parentFiber, parentRuntimeFlags, overrideScope = null) => {\n const childFiber = unsafeMakeChildFiber(effect, parentFiber, parentRuntimeFlags, overrideScope);\n childFiber.resume(effect);\n return childFiber;\n};\n/** @internal */\nexport const unsafeForkUnstarted = (effect, parentFiber, parentRuntimeFlags, overrideScope = null) => {\n const childFiber = unsafeMakeChildFiber(effect, parentFiber, parentRuntimeFlags, overrideScope);\n return childFiber;\n};\n/** @internal */\nexport const unsafeMakeChildFiber = (effect, parentFiber, parentRuntimeFlags, overrideScope = null) => {\n const childId = FiberId.unsafeMake();\n const parentFiberRefs = parentFiber.getFiberRefs();\n const childFiberRefs = fiberRefs.forkAs(parentFiberRefs, childId);\n const childFiber = new FiberRuntime(childId, childFiberRefs, parentRuntimeFlags);\n const childContext = fiberRefs.getOrDefault(childFiberRefs, core.currentContext);\n const supervisor = childFiber.currentSupervisor;\n supervisor.onStart(childContext, effect, Option.some(parentFiber), childFiber);\n childFiber.addObserver(exit => supervisor.onEnd(exit, childFiber));\n const parentScope = overrideScope !== null ? overrideScope : pipe(parentFiber.getFiberRef(core.currentForkScopeOverride), Option.getOrElse(() => parentFiber.scope()));\n parentScope.add(parentRuntimeFlags, childFiber);\n return childFiber;\n};\n/* @internal */\nconst forkWithScopeOverride = (self, scopeOverride) => core.withFiberRuntime((parentFiber, parentStatus) => core.succeed(unsafeFork(self, parentFiber, parentStatus.runtimeFlags, scopeOverride)));\n/* @internal */\nexport const mergeAll = /*#__PURE__*/dual(args => Predicate.isFunction(args[2]), (elements, zero, f, options) => concurrency.matchSimple(options?.concurrency, () => RA.fromIterable(elements).reduce((acc, a, i) => core.zipWith(acc, a, (acc, a) => f(acc, a, i)), core.succeed(zero)), () => core.flatMap(Ref.make(zero), acc => core.flatMap(forEach(elements, (effect, i) => core.flatMap(effect, a => Ref.update(acc, b => f(b, a, i))), options), () => Ref.get(acc)))));\n/* @internal */\nexport const partition = /*#__PURE__*/dual(args => Predicate.isIterable(args[0]), (elements, f, options) => pipe(forEach(elements, (a, i) => core.either(f(a, i)), options), core.map(chunk => core.partitionMap(chunk, identity))));\n/* @internal */\nexport const validateAll = /*#__PURE__*/dual(args => Predicate.isIterable(args[0]), (elements, f, options) => core.flatMap(partition(elements, f, {\n concurrency: options?.concurrency,\n batching: options?.batching,\n concurrentFinalizers: options?.concurrentFinalizers\n}), ([es, bs]) => RA.isNonEmptyArray(es) ? core.fail(es) : options?.discard ? core.void : core.succeed(bs)));\n/* @internal */\nexport const raceAll = all => core.withFiberRuntime((state, status) => core.async(resume => {\n const fibers = new Set();\n let winner;\n let failures = internalCause.empty;\n const interruptAll = () => {\n for (const fiber of fibers) {\n fiber.unsafeInterruptAsFork(state.id());\n }\n };\n let latch = false;\n let empty = true;\n for (const self of all) {\n empty = false;\n const fiber = unsafeFork(core.interruptible(self), state, status.runtimeFlags);\n fibers.add(fiber);\n fiber.addObserver(exit => {\n fibers.delete(fiber);\n if (!winner) {\n if (exit._tag === \"Success\") {\n latch = true;\n winner = fiber;\n failures = internalCause.empty;\n interruptAll();\n } else {\n failures = internalCause.parallel(exit.cause, failures);\n }\n }\n if (latch && fibers.size === 0) {\n resume(winner ? core.zipRight(internalFiber.inheritAll(winner), winner.unsafePoll()) : core.failCause(failures));\n }\n });\n if (winner) break;\n }\n if (empty) {\n return resume(core.dieSync(() => new core.IllegalArgumentException(`Received an empty collection of effects`)));\n }\n latch = true;\n return internalFiber.interruptAllAs(fibers, state.id());\n}));\n/* @internal */\nexport const reduceEffect = /*#__PURE__*/dual(args => Predicate.isIterable(args[0]) && !core.isEffect(args[0]), (elements, zero, f, options) => concurrency.matchSimple(options?.concurrency, () => RA.fromIterable(elements).reduce((acc, a, i) => core.zipWith(acc, a, (acc, a) => f(acc, a, i)), zero), () => core.suspend(() => pipe(mergeAll([zero, ...elements], Option.none(), (acc, elem, i) => {\n switch (acc._tag) {\n case \"None\":\n {\n return Option.some(elem);\n }\n case \"Some\":\n {\n return Option.some(f(acc.value, elem, i));\n }\n }\n}, options), core.map(option => {\n switch (option._tag) {\n case \"None\":\n {\n throw new Error(\"BUG: Effect.reduceEffect - please report an issue at https://github.com/Effect-TS/effect/issues\");\n }\n case \"Some\":\n {\n return option.value;\n }\n }\n})))));\n/* @internal */\nexport const parallelFinalizers = self => core.contextWithEffect(context => Option.match(Context.getOption(context, scopeTag), {\n onNone: () => self,\n onSome: scope => {\n switch (scope.strategy._tag) {\n case \"Parallel\":\n return self;\n case \"Sequential\":\n case \"ParallelN\":\n return core.flatMap(core.scopeFork(scope, ExecutionStrategy.parallel), inner => scopeExtend(self, inner));\n }\n }\n}));\n/* @internal */\nexport const parallelNFinalizers = parallelism => self => core.contextWithEffect(context => Option.match(Context.getOption(context, scopeTag), {\n onNone: () => self,\n onSome: scope => {\n if (scope.strategy._tag === \"ParallelN\" && scope.strategy.parallelism === parallelism) {\n return self;\n }\n return core.flatMap(core.scopeFork(scope, ExecutionStrategy.parallelN(parallelism)), inner => scopeExtend(self, inner));\n }\n}));\n/* @internal */\nexport const finalizersMask = strategy => self => finalizersMaskInternal(strategy, true)(self);\n/* @internal */\nexport const finalizersMaskInternal = (strategy, concurrentFinalizers) => self => core.contextWithEffect(context => Option.match(Context.getOption(context, scopeTag), {\n onNone: () => self(identity),\n onSome: scope => {\n if (concurrentFinalizers === true) {\n const patch = strategy._tag === \"Parallel\" ? parallelFinalizers : strategy._tag === \"Sequential\" ? sequentialFinalizers : parallelNFinalizers(strategy.parallelism);\n switch (scope.strategy._tag) {\n case \"Parallel\":\n return patch(self(parallelFinalizers));\n case \"Sequential\":\n return patch(self(sequentialFinalizers));\n case \"ParallelN\":\n return patch(self(parallelNFinalizers(scope.strategy.parallelism)));\n }\n } else {\n return self(identity);\n }\n }\n}));\n/* @internal */\nexport const scopeWith = f => core.flatMap(scopeTag, f);\n/** @internal */\nexport const scopedWith = f => core.flatMap(scopeMake(), scope => core.onExit(f(scope), exit => scope.close(exit)));\n/* @internal */\nexport const scopedEffect = effect => core.flatMap(scopeMake(), scope => scopeUse(effect, scope));\n/* @internal */\nexport const sequentialFinalizers = self => core.contextWithEffect(context => Option.match(Context.getOption(context, scopeTag), {\n onNone: () => self,\n onSome: scope => {\n switch (scope.strategy._tag) {\n case \"Sequential\":\n return self;\n case \"Parallel\":\n case \"ParallelN\":\n return core.flatMap(core.scopeFork(scope, ExecutionStrategy.sequential), inner => scopeExtend(self, inner));\n }\n }\n}));\n/* @internal */\nexport const tagMetricsScoped = (key, value) => labelMetricsScoped([metricLabel.make(key, value)]);\n/* @internal */\nexport const labelMetricsScoped = labels => fiberRefLocallyScopedWith(core.currentMetricLabels, old => RA.union(old, labels));\n/* @internal */\nexport const using = /*#__PURE__*/dual(2, (self, use) => scopedWith(scope => core.flatMap(scopeExtend(self, scope), use)));\n/** @internal */\nexport const validate = /*#__PURE__*/dual(args => core.isEffect(args[1]), (self, that, options) => validateWith(self, that, (a, b) => [a, b], options));\n/** @internal */\nexport const validateWith = /*#__PURE__*/dual(args => core.isEffect(args[1]), (self, that, f, options) => core.flatten(zipWithOptions(core.exit(self), core.exit(that), (ea, eb) => core.exitZipWith(ea, eb, {\n onSuccess: f,\n onFailure: (ca, cb) => options?.concurrent ? internalCause.parallel(ca, cb) : internalCause.sequential(ca, cb)\n}), options)));\n/* @internal */\nexport const validateAllPar = /*#__PURE__*/dual(2, (elements, f) => core.flatMap(partition(elements, f), ([es, bs]) => es.length === 0 ? core.succeed(bs) : core.fail(es)));\n/* @internal */\nexport const validateAllParDiscard = /*#__PURE__*/dual(2, (elements, f) => core.flatMap(partition(elements, f), ([es, _]) => es.length === 0 ? core.void : core.fail(es)));\n/* @internal */\nexport const validateFirst = /*#__PURE__*/dual(args => Predicate.isIterable(args[0]), (elements, f, options) => core.flip(forEach(elements, (a, i) => core.flip(f(a, i)), options)));\n/* @internal */\nexport const withClockScoped = c => fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(clock.clockTag, c));\n/* @internal */\nexport const withRandomScoped = value => fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(randomTag, value));\n/* @internal */\nexport const withConfigProviderScoped = provider => fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(configProviderTag, provider));\n/* @internal */\nexport const withEarlyRelease = self => scopeWith(parent => core.flatMap(core.scopeFork(parent, executionStrategy.sequential), child => pipe(self, scopeExtend(child), core.map(value => [core.fiberIdWith(fiberId => core.scopeClose(child, core.exitInterrupt(fiberId))), value]))));\n/** @internal */\nexport const zipOptions = /*#__PURE__*/dual(args => core.isEffect(args[1]), (self, that, options) => zipWithOptions(self, that, (a, b) => [a, b], options));\n/** @internal */\nexport const zipLeftOptions = /*#__PURE__*/dual(args => core.isEffect(args[1]), (self, that, options) => {\n if (options?.concurrent !== true && (options?.batching === undefined || options.batching === false)) {\n return core.zipLeft(self, that);\n }\n return zipWithOptions(self, that, (a, _) => a, options);\n});\n/** @internal */\nexport const zipRightOptions = /*#__PURE__*/dual(args => core.isEffect(args[1]), (self, that, options) => {\n if (options?.concurrent !== true && (options?.batching === undefined || options.batching === false)) {\n return core.zipRight(self, that);\n }\n return zipWithOptions(self, that, (_, b) => b, options);\n});\n/** @internal */\nexport const zipWithOptions = /*#__PURE__*/dual(args => core.isEffect(args[1]), (self, that, f, options) => core.map(all([self, that], {\n concurrency: options?.concurrent ? 2 : 1,\n batching: options?.batching,\n concurrentFinalizers: options?.concurrentFinalizers\n}), ([a, a2]) => f(a, a2)));\n/* @internal */\nexport const withRuntimeFlagsScoped = update => {\n if (update === RuntimeFlagsPatch.empty) {\n return core.void;\n }\n return pipe(core.runtimeFlags, core.flatMap(runtimeFlags => {\n const updatedRuntimeFlags = runtimeFlags_.patch(runtimeFlags, update);\n const revertRuntimeFlags = runtimeFlags_.diff(updatedRuntimeFlags, runtimeFlags);\n return pipe(core.updateRuntimeFlags(update), core.zipRight(addFinalizer(() => core.updateRuntimeFlags(revertRuntimeFlags))), core.asVoid);\n }), core.uninterruptible);\n};\n// circular with Scope\n/** @internal */\nexport const scopeTag = /*#__PURE__*/Context.GenericTag(\"effect/Scope\");\n/* @internal */\nexport const scope = scopeTag;\nconst scopeUnsafeAddFinalizer = (scope, fin) => {\n if (scope.state._tag === \"Open\") {\n scope.state.finalizers.set({}, fin);\n }\n};\nconst ScopeImplProto = {\n [core.ScopeTypeId]: core.ScopeTypeId,\n [core.CloseableScopeTypeId]: core.CloseableScopeTypeId,\n pipe() {\n return pipeArguments(this, arguments);\n },\n fork(strategy) {\n return core.sync(() => {\n const newScope = scopeUnsafeMake(strategy);\n if (this.state._tag === \"Closed\") {\n newScope.state = this.state;\n return newScope;\n }\n const key = {};\n const fin = exit => newScope.close(exit);\n this.state.finalizers.set(key, fin);\n scopeUnsafeAddFinalizer(newScope, _ => core.sync(() => {\n if (this.state._tag === \"Open\") {\n this.state.finalizers.delete(key);\n }\n }));\n return newScope;\n });\n },\n close(exit) {\n return core.suspend(() => {\n if (this.state._tag === \"Closed\") {\n return core.void;\n }\n const finalizers = Array.from(this.state.finalizers.values()).reverse();\n this.state = {\n _tag: \"Closed\",\n exit\n };\n if (finalizers.length === 0) {\n return core.void;\n }\n return executionStrategy.isSequential(this.strategy) ? pipe(core.forEachSequential(finalizers, fin => core.exit(fin(exit))), core.flatMap(results => pipe(core.exitCollectAll(results), Option.map(core.exitAsVoid), Option.getOrElse(() => core.exitVoid)))) : executionStrategy.isParallel(this.strategy) ? pipe(forEachParUnbounded(finalizers, fin => core.exit(fin(exit)), false), core.flatMap(results => pipe(core.exitCollectAll(results, {\n parallel: true\n }), Option.map(core.exitAsVoid), Option.getOrElse(() => core.exitVoid)))) : pipe(forEachParN(finalizers, this.strategy.parallelism, fin => core.exit(fin(exit)), false), core.flatMap(results => pipe(core.exitCollectAll(results, {\n parallel: true\n }), Option.map(core.exitAsVoid), Option.getOrElse(() => core.exitVoid))));\n });\n },\n addFinalizer(fin) {\n return core.suspend(() => {\n if (this.state._tag === \"Closed\") {\n return fin(this.state.exit);\n }\n this.state.finalizers.set({}, fin);\n return core.void;\n });\n }\n};\nconst scopeUnsafeMake = (strategy = executionStrategy.sequential) => {\n const scope = Object.create(ScopeImplProto);\n scope.strategy = strategy;\n scope.state = {\n _tag: \"Open\",\n finalizers: new Map()\n };\n return scope;\n};\n/* @internal */\nexport const scopeMake = (strategy = executionStrategy.sequential) => core.sync(() => scopeUnsafeMake(strategy));\n/* @internal */\nexport const scopeExtend = /*#__PURE__*/dual(2, (effect, scope) => core.mapInputContext(effect,\n// @ts-expect-error\nContext.merge(Context.make(scopeTag, scope))));\n/* @internal */\nexport const scopeUse = /*#__PURE__*/dual(2, (effect, scope) => pipe(effect, scopeExtend(scope), core.onExit(exit => scope.close(exit))));\n// circular with Supervisor\n/** @internal */\nexport const fiberRefUnsafeMakeSupervisor = initial => core.fiberRefUnsafeMakePatch(initial, {\n differ: SupervisorPatch.differ,\n fork: SupervisorPatch.empty\n});\n// circular with FiberRef\n/* @internal */\nexport const fiberRefLocallyScoped = /*#__PURE__*/dual(2, (self, value) => core.asVoid(acquireRelease(core.flatMap(core.fiberRefGet(self), oldValue => core.as(core.fiberRefSet(self, value), oldValue)), oldValue => core.fiberRefSet(self, oldValue))));\n/* @internal */\nexport const fiberRefLocallyScopedWith = /*#__PURE__*/dual(2, (self, f) => core.fiberRefGetWith(self, a => fiberRefLocallyScoped(self, f(a))));\n/* @internal */\nexport const fiberRefMake = (initial, options) => fiberRefMakeWith(() => core.fiberRefUnsafeMake(initial, options));\n/* @internal */\nexport const fiberRefMakeWith = ref => acquireRelease(core.tap(core.sync(ref), ref => core.fiberRefUpdate(ref, identity)), fiberRef => core.fiberRefDelete(fiberRef));\n/* @internal */\nexport const fiberRefMakeContext = initial => fiberRefMakeWith(() => core.fiberRefUnsafeMakeContext(initial));\n/* @internal */\nexport const fiberRefMakeRuntimeFlags = initial => fiberRefMakeWith(() => core.fiberRefUnsafeMakeRuntimeFlags(initial));\n/** @internal */\nexport const currentRuntimeFlags = /*#__PURE__*/core.fiberRefUnsafeMakeRuntimeFlags(runtimeFlags_.none);\n/** @internal */\nexport const currentSupervisor = /*#__PURE__*/fiberRefUnsafeMakeSupervisor(supervisor.none);\n// circular with Fiber\n/* @internal */\nexport const fiberAwaitAll = fibers => forEach(fibers, internalFiber._await);\n/** @internal */\nexport const fiberAll = fibers => {\n const _fiberAll = {\n ...Effectable.CommitPrototype,\n commit() {\n return internalFiber.join(this);\n },\n [internalFiber.FiberTypeId]: internalFiber.fiberVariance,\n id: () => RA.fromIterable(fibers).reduce((id, fiber) => FiberId.combine(id, fiber.id()), FiberId.none),\n await: core.exit(forEachParUnbounded(fibers, fiber => core.flatten(fiber.await), false)),\n children: core.map(forEachParUnbounded(fibers, fiber => fiber.children, false), RA.flatten),\n inheritAll: core.forEachSequentialDiscard(fibers, fiber => fiber.inheritAll),\n poll: core.map(core.forEachSequential(fibers, fiber => fiber.poll), RA.reduceRight(Option.some(core.exitSucceed(new Array())), (optionB, optionA) => {\n switch (optionA._tag) {\n case \"None\":\n {\n return Option.none();\n }\n case \"Some\":\n {\n switch (optionB._tag) {\n case \"None\":\n {\n return Option.none();\n }\n case \"Some\":\n {\n return Option.some(core.exitZipWith(optionA.value, optionB.value, {\n onSuccess: (a, chunk) => [a, ...chunk],\n onFailure: internalCause.parallel\n }));\n }\n }\n }\n }\n })),\n interruptAsFork: fiberId => core.forEachSequentialDiscard(fibers, fiber => fiber.interruptAsFork(fiberId))\n };\n return _fiberAll;\n};\n/* @internal */\nexport const fiberInterruptFork = self => core.asVoid(forkDaemon(core.interruptFiber(self)));\n/* @internal */\nexport const fiberJoinAll = fibers => internalFiber.join(fiberAll(fibers));\n/* @internal */\nexport const fiberScoped = self => acquireRelease(core.succeed(self), core.interruptFiber);\n//\n// circular race\n//\n/** @internal */\nexport const raceWith = /*#__PURE__*/dual(3, (self, other, options) => raceFibersWith(self, other, {\n onSelfWin: (winner, loser) => core.flatMap(winner.await, exit => {\n switch (exit._tag) {\n case OpCodes.OP_SUCCESS:\n {\n return core.flatMap(winner.inheritAll, () => options.onSelfDone(exit, loser));\n }\n case OpCodes.OP_FAILURE:\n {\n return options.onSelfDone(exit, loser);\n }\n }\n }),\n onOtherWin: (winner, loser) => core.flatMap(winner.await, exit => {\n switch (exit._tag) {\n case OpCodes.OP_SUCCESS:\n {\n return core.flatMap(winner.inheritAll, () => options.onOtherDone(exit, loser));\n }\n case OpCodes.OP_FAILURE:\n {\n return options.onOtherDone(exit, loser);\n }\n }\n })\n}));\n/** @internal */\nexport const disconnect = self => core.uninterruptibleMask(restore => core.fiberIdWith(fiberId => core.flatMap(forkDaemon(restore(self)), fiber => pipe(restore(internalFiber.join(fiber)), core.onInterrupt(() => pipe(fiber, internalFiber.interruptAsFork(fiberId)))))));\n/** @internal */\nexport const race = /*#__PURE__*/dual(2, (self, that) => core.fiberIdWith(parentFiberId => raceWith(self, that, {\n onSelfDone: (exit, right) => core.exitMatchEffect(exit, {\n onFailure: cause => pipe(internalFiber.join(right), internalEffect.mapErrorCause(cause2 => internalCause.parallel(cause, cause2))),\n onSuccess: value => pipe(right, core.interruptAsFiber(parentFiberId), core.as(value))\n }),\n onOtherDone: (exit, left) => core.exitMatchEffect(exit, {\n onFailure: cause => pipe(internalFiber.join(left), internalEffect.mapErrorCause(cause2 => internalCause.parallel(cause2, cause))),\n onSuccess: value => pipe(left, core.interruptAsFiber(parentFiberId), core.as(value))\n })\n})));\n/** @internal */\nexport const raceFibersWith = /*#__PURE__*/dual(3, (self, other, options) => core.withFiberRuntime((parentFiber, parentStatus) => {\n const parentRuntimeFlags = parentStatus.runtimeFlags;\n const raceIndicator = MRef.make(true);\n const leftFiber = unsafeMakeChildFiber(self, parentFiber, parentRuntimeFlags, options.selfScope);\n const rightFiber = unsafeMakeChildFiber(other, parentFiber, parentRuntimeFlags, options.otherScope);\n return core.async(cb => {\n leftFiber.addObserver(() => completeRace(leftFiber, rightFiber, options.onSelfWin, raceIndicator, cb));\n rightFiber.addObserver(() => completeRace(rightFiber, leftFiber, options.onOtherWin, raceIndicator, cb));\n leftFiber.startFork(self);\n rightFiber.startFork(other);\n }, FiberId.combine(leftFiber.id(), rightFiber.id()));\n}));\nconst completeRace = (winner, loser, cont, ab, cb) => {\n if (MRef.compareAndSet(true, false)(ab)) {\n cb(cont(winner, loser));\n }\n};\n/** @internal */\nexport const ensuring = /*#__PURE__*/dual(2, (self, finalizer) => core.uninterruptibleMask(restore => core.matchCauseEffect(restore(self), {\n onFailure: cause1 => core.matchCauseEffect(finalizer, {\n onFailure: cause2 => core.failCause(internalCause.sequential(cause1, cause2)),\n onSuccess: () => core.failCause(cause1)\n }),\n onSuccess: a => core.as(finalizer, a)\n})));\n/** @internal */\nexport const invokeWithInterrupt = (self, entries, onInterrupt) => core.fiberIdWith(id => core.flatMap(core.flatMap(forkDaemon(core.interruptible(self)), processing => core.async(cb => {\n const counts = entries.map(_ => _.listeners.count);\n const checkDone = () => {\n if (counts.every(count => count === 0)) {\n if (entries.every(_ => {\n if (_.result.state.current._tag === \"Pending\") {\n return true;\n } else if (_.result.state.current._tag === \"Done\" && core.exitIsExit(_.result.state.current.effect) && _.result.state.current.effect._tag === \"Failure\" && internalCause.isInterrupted(_.result.state.current.effect.cause)) {\n return true;\n } else {\n return false;\n }\n })) {\n cleanup.forEach(f => f());\n onInterrupt?.();\n cb(core.interruptFiber(processing));\n }\n }\n };\n processing.addObserver(exit => {\n cleanup.forEach(f => f());\n cb(exit);\n });\n const cleanup = entries.map((r, i) => {\n const observer = count => {\n counts[i] = count;\n checkDone();\n };\n r.listeners.addObserver(observer);\n return () => r.listeners.removeObserver(observer);\n });\n checkDone();\n return core.sync(() => {\n cleanup.forEach(f => f());\n });\n})), () => core.suspend(() => {\n const residual = entries.flatMap(entry => {\n if (!entry.state.completed) {\n return [entry];\n }\n return [];\n });\n return core.forEachSequentialDiscard(residual, entry => complete(entry.request, core.exitInterrupt(id)));\n})));\n/** @internal */\nexport const interruptWhenPossible = /*#__PURE__*/dual(2, (self, all) => core.fiberRefGetWith(currentRequestMap, map => core.suspend(() => {\n const entries = RA.fromIterable(all).flatMap(_ => map.has(_) ? [map.get(_)] : []);\n return invokeWithInterrupt(self, entries);\n})));\n// circular Tracer\n/** @internal */\nexport const makeSpanScoped = (name, options) => {\n options = tracer.addSpanStackTrace(options);\n return core.uninterruptible(core.withFiberRuntime(fiber => {\n const scope = Context.unsafeGet(fiber.getFiberRef(core.currentContext), scopeTag);\n const span = internalEffect.unsafeMakeSpan(fiber, name, options);\n const timingEnabled = fiber.getFiberRef(core.currentTracerTimingEnabled);\n const clock_ = Context.get(fiber.getFiberRef(defaultServices.currentServices), clock.clockTag);\n return core.as(core.scopeAddFinalizerExit(scope, exit => internalEffect.endSpan(span, exit, clock_, timingEnabled)), span);\n }));\n};\n/* @internal */\nexport const withTracerScoped = value => fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(tracer.tracerTag, value));\n/** @internal */\nexport const withSpanScoped = function () {\n const dataFirst = typeof arguments[0] !== \"string\";\n const name = dataFirst ? arguments[1] : arguments[0];\n const options = tracer.addSpanStackTrace(dataFirst ? arguments[2] : arguments[1]);\n if (dataFirst) {\n const self = arguments[0];\n return core.flatMap(makeSpanScoped(name, tracer.addSpanStackTrace(options)), span => internalEffect.provideService(self, tracer.spanTag, span));\n }\n return self => core.flatMap(makeSpanScoped(name, tracer.addSpanStackTrace(options)), span => internalEffect.provideService(self, tracer.spanTag, span));\n};\n//# sourceMappingURL=fiberRuntime.js.map","import * as Context from \"../Context.js\";\nimport { dual } from \"../Function.js\";\nimport * as core from \"./core.js\";\nimport * as defaultServices from \"./defaultServices.js\";\nimport * as defaultConsole from \"./defaultServices/console.js\";\nimport * as fiberRuntime from \"./fiberRuntime.js\";\nimport * as layer from \"./layer.js\";\n/** @internal */\nexport const console = /*#__PURE__*/core.map(/*#__PURE__*/core.fiberRefGet(defaultServices.currentServices), /*#__PURE__*/Context.get(defaultConsole.consoleTag));\n/** @internal */\nexport const consoleWith = f => core.fiberRefGetWith(defaultServices.currentServices, services => f(Context.get(services, defaultConsole.consoleTag)));\n/** @internal */\nexport const withConsole = /*#__PURE__*/dual(2, (effect, value) => core.fiberRefLocallyWith(effect, defaultServices.currentServices, Context.add(defaultConsole.consoleTag, value)));\n/** @internal */\nexport const withConsoleScoped = console => fiberRuntime.fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(defaultConsole.consoleTag, console));\n/** @internal */\nexport const setConsole = console => layer.scopedDiscard(fiberRuntime.fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(defaultConsole.consoleTag, console)));\n/** @internal */\nexport const assert = (condition, ...args) => consoleWith(_ => _.assert(condition, ...args));\n/** @internal */\nexport const clear = /*#__PURE__*/consoleWith(_ => _.clear);\n/** @internal */\nexport const count = label => consoleWith(_ => _.count(label));\n/** @internal */\nexport const countReset = label => consoleWith(_ => _.countReset(label));\n/** @internal */\nexport const debug = (...args) => consoleWith(_ => _.debug(...args));\n/** @internal */\nexport const dir = (item, options) => consoleWith(_ => _.dir(item, options));\n/** @internal */\nexport const dirxml = (...args) => consoleWith(_ => _.dirxml(...args));\n/** @internal */\nexport const error = (...args) => consoleWith(_ => _.error(...args));\n/** @internal */\nexport const group = options => consoleWith(_ => fiberRuntime.acquireRelease(_.group(options), () => _.groupEnd));\n/** @internal */\nexport const info = (...args) => consoleWith(_ => _.info(...args));\n/** @internal */\nexport const log = (...args) => consoleWith(_ => _.log(...args));\n/** @internal */\nexport const table = (tabularData, properties) => consoleWith(_ => _.table(tabularData, properties));\n/** @internal */\nexport const time = label => consoleWith(_ => fiberRuntime.acquireRelease(_.time(label), () => _.timeEnd(label)));\n/** @internal */\nexport const timeLog = (label, ...args) => consoleWith(_ => _.timeLog(label, ...args));\n/** @internal */\nexport const trace = (...args) => consoleWith(_ => _.trace(...args));\n/** @internal */\nexport const warn = (...args) => consoleWith(_ => _.warn(...args));\n/** @internal */\nexport const withGroup = /*#__PURE__*/dual(args => core.isEffect(args[0]), (self, options) => consoleWith(_ => core.acquireUseRelease(_.group(options), () => self, () => _.groupEnd)));\n/** @internal */\nexport const withTime = /*#__PURE__*/dual(args => core.isEffect(args[0]), (self, label) => consoleWith(_ => core.acquireUseRelease(_.time(label), () => self, () => _.timeEnd(label))));\n//# sourceMappingURL=console.js.map","import * as Duration from \"../../Duration.js\";\nimport * as Effectable from \"../../Effectable.js\";\nimport * as Equal from \"../../Equal.js\";\nimport * as Exit from \"../../Exit.js\";\nimport * as FiberId from \"../../FiberId.js\";\nimport { dual, pipe } from \"../../Function.js\";\nimport * as Hash from \"../../Hash.js\";\nimport * as MutableHashMap from \"../../MutableHashMap.js\";\nimport * as Option from \"../../Option.js\";\nimport { pipeArguments } from \"../../Pipeable.js\";\nimport * as Predicate from \"../../Predicate.js\";\nimport * as Readable from \"../../Readable.js\";\nimport { currentScheduler } from \"../../Scheduler.js\";\nimport * as internalCause from \"../cause.js\";\nimport * as effect from \"../core-effect.js\";\nimport * as core from \"../core.js\";\nimport * as internalFiber from \"../fiber.js\";\nimport * as fiberRuntime from \"../fiberRuntime.js\";\nimport { globalScope } from \"../fiberScope.js\";\nimport * as internalRef from \"../ref.js\";\nimport * as supervisor from \"../supervisor.js\";\n/** @internal */\nclass Semaphore {\n permits;\n waiters = /*#__PURE__*/new Set();\n taken = 0;\n constructor(permits) {\n this.permits = permits;\n }\n get free() {\n return this.permits - this.taken;\n }\n take = n => core.asyncInterrupt(resume => {\n if (this.free < n) {\n const observer = () => {\n if (this.free < n) {\n return;\n }\n this.waiters.delete(observer);\n this.taken += n;\n resume(core.succeed(n));\n };\n this.waiters.add(observer);\n return core.sync(() => {\n this.waiters.delete(observer);\n });\n }\n this.taken += n;\n return resume(core.succeed(n));\n });\n updateTakenUnsafe(fiber, f) {\n this.taken = f(this.taken);\n if (this.waiters.size > 0) {\n fiber.getFiberRef(currentScheduler).scheduleTask(() => {\n const iter = this.waiters.values();\n let item = iter.next();\n while (item.done === false && this.free > 0) {\n item.value();\n item = iter.next();\n }\n }, fiber.getFiberRef(core.currentSchedulingPriority));\n }\n return core.succeed(this.free);\n }\n updateTaken(f) {\n return core.withFiberRuntime(fiber => this.updateTakenUnsafe(fiber, f));\n }\n resize = permits => core.asVoid(core.withFiberRuntime(fiber => {\n this.permits = permits;\n if (this.free < 0) {\n return core.void;\n }\n return this.updateTakenUnsafe(fiber, taken => taken);\n }));\n release = n => this.updateTaken(taken => taken - n);\n releaseAll = /*#__PURE__*/this.updateTaken(_ => 0);\n withPermits = n => self => core.uninterruptibleMask(restore => core.flatMap(restore(this.take(n)), permits => fiberRuntime.ensuring(restore(self), this.release(permits))));\n withPermitsIfAvailable = n => self => core.uninterruptibleMask(restore => core.suspend(() => {\n if (this.free < n) {\n return effect.succeedNone;\n }\n this.taken += n;\n return fiberRuntime.ensuring(restore(effect.asSome(self)), this.release(n));\n }));\n}\n/** @internal */\nexport const unsafeMakeSemaphore = permits => new Semaphore(permits);\n/** @internal */\nexport const makeSemaphore = permits => core.sync(() => unsafeMakeSemaphore(permits));\nclass Latch extends Effectable.Class {\n isOpen;\n waiters = [];\n scheduled = false;\n constructor(isOpen) {\n super();\n this.isOpen = isOpen;\n }\n commit() {\n return this.await;\n }\n unsafeSchedule(fiber) {\n if (this.scheduled || this.waiters.length === 0) {\n return core.void;\n }\n this.scheduled = true;\n fiber.currentScheduler.scheduleTask(this.flushWaiters, fiber.getFiberRef(core.currentSchedulingPriority));\n return core.void;\n }\n flushWaiters = () => {\n this.scheduled = false;\n const waiters = this.waiters;\n this.waiters = [];\n for (let i = 0; i < waiters.length; i++) {\n waiters[i](core.exitVoid);\n }\n };\n open = /*#__PURE__*/core.withFiberRuntime(fiber => {\n if (this.isOpen) {\n return core.void;\n }\n this.isOpen = true;\n return this.unsafeSchedule(fiber);\n });\n unsafeOpen() {\n if (this.isOpen) return;\n this.isOpen = true;\n this.flushWaiters();\n }\n release = /*#__PURE__*/core.withFiberRuntime(fiber => {\n if (this.isOpen) {\n return core.void;\n }\n return this.unsafeSchedule(fiber);\n });\n await = /*#__PURE__*/core.asyncInterrupt(resume => {\n if (this.isOpen) {\n return resume(core.void);\n }\n this.waiters.push(resume);\n return core.sync(() => {\n const index = this.waiters.indexOf(resume);\n if (index !== -1) {\n this.waiters.splice(index, 1);\n }\n });\n });\n unsafeClose() {\n this.isOpen = false;\n }\n close = /*#__PURE__*/core.sync(() => {\n this.isOpen = false;\n });\n whenOpen = self => {\n return core.zipRight(this.await, self);\n };\n}\n/** @internal */\nexport const unsafeMakeLatch = open => new Latch(open ?? false);\n/** @internal */\nexport const makeLatch = open => core.sync(() => unsafeMakeLatch(open));\n/** @internal */\nexport const awaitAllChildren = self => ensuringChildren(self, fiberRuntime.fiberAwaitAll);\n/** @internal */\nexport const cached = /*#__PURE__*/dual(2, (self, timeToLive) => core.map(cachedInvalidateWithTTL(self, timeToLive), tuple => tuple[0]));\n/** @internal */\nexport const cachedInvalidateWithTTL = /*#__PURE__*/dual(2, (self, timeToLive) => {\n const duration = Duration.decode(timeToLive);\n return core.flatMap(core.context(), env => core.map(makeSynchronized(Option.none()), cache => [core.provideContext(getCachedValue(self, duration, cache), env), invalidateCache(cache)]));\n});\n/** @internal */\nconst computeCachedValue = (self, timeToLive, start) => {\n const timeToLiveMillis = Duration.toMillis(Duration.decode(timeToLive));\n return pipe(core.deferredMake(), core.tap(deferred => core.intoDeferred(self, deferred)), core.map(deferred => Option.some([start + timeToLiveMillis, deferred])));\n};\n/** @internal */\nconst getCachedValue = (self, timeToLive, cache) => core.uninterruptibleMask(restore => pipe(effect.clockWith(clock => clock.currentTimeMillis), core.flatMap(time => updateSomeAndGetEffectSynchronized(cache, option => {\n switch (option._tag) {\n case \"None\":\n {\n return Option.some(computeCachedValue(self, timeToLive, time));\n }\n case \"Some\":\n {\n const [end] = option.value;\n return end - time <= 0 ? Option.some(computeCachedValue(self, timeToLive, time)) : Option.none();\n }\n }\n})), core.flatMap(option => Option.isNone(option) ? core.dieMessage(\"BUG: Effect.cachedInvalidate - please report an issue at https://github.com/Effect-TS/effect/issues\") : restore(core.deferredAwait(option.value[1])))));\n/** @internal */\nconst invalidateCache = cache => internalRef.set(cache, Option.none());\n/** @internal */\nexport const ensuringChild = /*#__PURE__*/dual(2, (self, f) => ensuringChildren(self, children => f(fiberRuntime.fiberAll(children))));\n/** @internal */\nexport const ensuringChildren = /*#__PURE__*/dual(2, (self, children) => core.flatMap(supervisor.track, supervisor => pipe(supervised(self, supervisor), fiberRuntime.ensuring(core.flatMap(supervisor.value, children)))));\n/** @internal */\nexport const forkAll = /*#__PURE__*/dual(args => Predicate.isIterable(args[0]), (effects, options) => options?.discard ? core.forEachSequentialDiscard(effects, fiberRuntime.fork) : core.map(core.forEachSequential(effects, fiberRuntime.fork), fiberRuntime.fiberAll));\n/** @internal */\nexport const forkIn = /*#__PURE__*/dual(2, (self, scope) => core.withFiberRuntime((parent, parentStatus) => {\n const scopeImpl = scope;\n const fiber = fiberRuntime.unsafeFork(self, parent, parentStatus.runtimeFlags, globalScope);\n if (scopeImpl.state._tag === \"Open\") {\n const finalizer = () => core.fiberIdWith(fiberId => Equal.equals(fiberId, fiber.id()) ? core.void : core.asVoid(core.interruptFiber(fiber)));\n const key = {};\n scopeImpl.state.finalizers.set(key, finalizer);\n fiber.addObserver(() => {\n if (scopeImpl.state._tag === \"Closed\") return;\n scopeImpl.state.finalizers.delete(key);\n });\n } else {\n fiber.unsafeInterruptAsFork(parent.id());\n }\n return core.succeed(fiber);\n}));\n/** @internal */\nexport const forkScoped = self => fiberRuntime.scopeWith(scope => forkIn(self, scope));\n/** @internal */\nexport const fromFiber = fiber => internalFiber.join(fiber);\n/** @internal */\nexport const fromFiberEffect = fiber => core.suspend(() => core.flatMap(fiber, internalFiber.join));\nconst memoKeySymbol = /*#__PURE__*/Symbol.for(\"effect/Effect/memoizeFunction.key\");\nclass Key {\n a;\n eq;\n [memoKeySymbol] = memoKeySymbol;\n constructor(a, eq) {\n this.a = a;\n this.eq = eq;\n }\n [Equal.symbol](that) {\n if (Predicate.hasProperty(that, memoKeySymbol)) {\n if (this.eq) {\n return this.eq(this.a, that.a);\n } else {\n return Equal.equals(this.a, that.a);\n }\n }\n return false;\n }\n [Hash.symbol]() {\n return this.eq ? 0 : Hash.cached(this, Hash.hash(this.a));\n }\n}\n/** @internal */\nexport const cachedFunction = (f, eq) => {\n return pipe(core.sync(() => MutableHashMap.empty()), core.flatMap(makeSynchronized), core.map(ref => a => pipe(ref.modifyEffect(map => {\n const result = pipe(map, MutableHashMap.get(new Key(a, eq)));\n if (Option.isNone(result)) {\n return pipe(core.deferredMake(), core.tap(deferred => pipe(effect.diffFiberRefs(f(a)), core.intoDeferred(deferred), fiberRuntime.fork)), core.map(deferred => [deferred, pipe(map, MutableHashMap.set(new Key(a, eq), deferred))]));\n }\n return core.succeed([result.value, map]);\n }), core.flatMap(core.deferredAwait), core.flatMap(([patch, b]) => pipe(effect.patchFiberRefs(patch), core.as(b))))));\n};\n/** @internal */\nexport const raceFirst = /*#__PURE__*/dual(2, (self, that) => pipe(core.exit(self), fiberRuntime.race(core.exit(that)), effect => core.flatten(effect)));\n/** @internal */\nexport const supervised = /*#__PURE__*/dual(2, (self, supervisor) => {\n const supervise = core.fiberRefLocallyWith(fiberRuntime.currentSupervisor, s => s.zip(supervisor));\n return supervise(self);\n});\n/** @internal */\nexport const timeout = /*#__PURE__*/dual(2, (self, duration) => timeoutFail(self, {\n onTimeout: () => core.timeoutExceptionFromDuration(duration),\n duration\n}));\n/** @internal */\nexport const timeoutFail = /*#__PURE__*/dual(2, (self, {\n duration,\n onTimeout\n}) => core.flatten(timeoutTo(self, {\n onTimeout: () => core.failSync(onTimeout),\n onSuccess: core.succeed,\n duration\n})));\n/** @internal */\nexport const timeoutFailCause = /*#__PURE__*/dual(2, (self, {\n duration,\n onTimeout\n}) => core.flatten(timeoutTo(self, {\n onTimeout: () => core.failCauseSync(onTimeout),\n onSuccess: core.succeed,\n duration\n})));\n/** @internal */\nexport const timeoutOption = /*#__PURE__*/dual(2, (self, duration) => timeoutTo(self, {\n duration,\n onSuccess: Option.some,\n onTimeout: Option.none\n}));\n/** @internal */\nexport const timeoutTo = /*#__PURE__*/dual(2, (self, {\n duration,\n onSuccess,\n onTimeout\n}) => core.fiberIdWith(parentFiberId => core.uninterruptibleMask(restore => fiberRuntime.raceFibersWith(restore(self), core.interruptible(effect.sleep(duration)), {\n onSelfWin: (winner, loser) => core.flatMap(winner.await, exit => {\n if (exit._tag === \"Success\") {\n return core.flatMap(winner.inheritAll, () => core.as(core.interruptAsFiber(loser, parentFiberId), onSuccess(exit.value)));\n } else {\n return core.flatMap(core.interruptAsFiber(loser, parentFiberId), () => core.exitFailCause(exit.cause));\n }\n }),\n onOtherWin: (winner, loser) => core.flatMap(winner.await, exit => {\n if (exit._tag === \"Success\") {\n return core.flatMap(winner.inheritAll, () => core.as(core.interruptAsFiber(loser, parentFiberId), onTimeout()));\n } else {\n return core.flatMap(core.interruptAsFiber(loser, parentFiberId), () => core.exitFailCause(exit.cause));\n }\n }),\n otherScope: globalScope\n}))));\n// circular with Synchronized\n/** @internal */\nconst SynchronizedSymbolKey = \"effect/Ref/SynchronizedRef\";\n/** @internal */\nexport const SynchronizedTypeId = /*#__PURE__*/Symbol.for(SynchronizedSymbolKey);\n/** @internal */\nexport const synchronizedVariance = {\n /* c8 ignore next */\n _A: _ => _\n};\n/** @internal */\nclass SynchronizedImpl extends Effectable.Class {\n ref;\n withLock;\n [SynchronizedTypeId] = synchronizedVariance;\n [internalRef.RefTypeId] = internalRef.refVariance;\n [Readable.TypeId] = Readable.TypeId;\n constructor(ref, withLock) {\n super();\n this.ref = ref;\n this.withLock = withLock;\n this.get = internalRef.get(this.ref);\n }\n get;\n commit() {\n return this.get;\n }\n modify(f) {\n return this.modifyEffect(a => core.succeed(f(a)));\n }\n modifyEffect(f) {\n return this.withLock(pipe(core.flatMap(internalRef.get(this.ref), f), core.flatMap(([b, a]) => core.as(internalRef.set(this.ref, a), b))));\n }\n}\n/** @internal */\nexport const makeSynchronized = value => core.sync(() => unsafeMakeSynchronized(value));\n/** @internal */\nexport const unsafeMakeSynchronized = value => {\n const ref = internalRef.unsafeMake(value);\n const sem = unsafeMakeSemaphore(1);\n return new SynchronizedImpl(ref, sem.withPermits(1));\n};\n/** @internal */\nexport const updateSomeAndGetEffectSynchronized = /*#__PURE__*/dual(2, (self, pf) => self.modifyEffect(value => {\n const result = pf(value);\n switch (result._tag) {\n case \"None\":\n {\n return core.succeed([value, value]);\n }\n case \"Some\":\n {\n return core.map(result.value, a => [a, a]);\n }\n }\n}));\n// circular with Fiber\n/** @internal */\nexport const zipFiber = /*#__PURE__*/dual(2, (self, that) => zipWithFiber(self, that, (a, b) => [a, b]));\n/** @internal */\nexport const zipLeftFiber = /*#__PURE__*/dual(2, (self, that) => zipWithFiber(self, that, (a, _) => a));\n/** @internal */\nexport const zipRightFiber = /*#__PURE__*/dual(2, (self, that) => zipWithFiber(self, that, (_, b) => b));\n/** @internal */\nexport const zipWithFiber = /*#__PURE__*/dual(3, (self, that, f) => ({\n ...Effectable.CommitPrototype,\n commit() {\n return internalFiber.join(this);\n },\n [internalFiber.FiberTypeId]: internalFiber.fiberVariance,\n id: () => pipe(self.id(), FiberId.getOrElse(that.id())),\n await: pipe(self.await, core.flatten, fiberRuntime.zipWithOptions(core.flatten(that.await), f, {\n concurrent: true\n }), core.exit),\n children: self.children,\n inheritAll: core.zipRight(that.inheritAll, self.inheritAll),\n poll: core.zipWith(self.poll, that.poll, (optionA, optionB) => pipe(optionA, Option.flatMap(exitA => pipe(optionB, Option.map(exitB => Exit.zipWith(exitA, exitB, {\n onSuccess: f,\n onFailure: internalCause.parallel\n })))))),\n interruptAsFork: id => core.zipRight(self.interruptAsFork(id), that.interruptAsFork(id)),\n pipe() {\n return pipeArguments(this, arguments);\n }\n}));\n/* @internal */\nexport const bindAll = /*#__PURE__*/dual(args => core.isEffect(args[0]), (self, f, options) => core.flatMap(self, a => fiberRuntime.all(f(a), options).pipe(core.map(record => Object.assign({}, a, record)))));\n//# sourceMappingURL=circular.js.map","import * as core from \"./internal/core.js\";\nimport * as circular from \"./internal/effect/circular.js\";\nimport * as internal from \"./internal/fiber.js\";\nimport * as fiberRuntime from \"./internal/fiberRuntime.js\";\n/**\n * @since 2.0.0\n * @category symbols\n */\nexport const FiberTypeId = internal.FiberTypeId;\n/**\n * @since 2.0.0\n * @category symbols\n */\nexport const RuntimeFiberTypeId = internal.RuntimeFiberTypeId;\n/**\n * @since 2.0.0\n * @category instances\n */\nexport const Order = internal.Order;\n/**\n * Returns `true` if the specified value is a `Fiber`, `false` otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isFiber = internal.isFiber;\n/**\n * Returns `true` if the specified `Fiber` is a `RuntimeFiber`, `false`\n * otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isRuntimeFiber = internal.isRuntimeFiber;\n/**\n * The identity of the fiber.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const id = internal.id;\nconst _await = internal._await;\nexport {\n/**\n * Awaits the fiber, which suspends the awaiting fiber until the result of the\n * fiber has been determined.\n *\n * @since 2.0.0\n * @category getters\n */\n_await as await };\n/**\n * Awaits on all fibers to be completed, successfully or not.\n *\n * @since 2.0.0\n * @category destructors\n */\nexport const awaitAll = fiberRuntime.fiberAwaitAll;\n/**\n * Retrieves the immediate children of the fiber.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const children = internal.children;\n/**\n * Collects all fibers into a single fiber producing an in-order list of the\n * results.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const all = fiberRuntime.fiberAll;\n/**\n * A fiber that is done with the specified `Exit` value.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const done = internal.done;\n/**\n * @since 2.0.0\n * @category destructors\n */\nexport const dump = internal.dump;\n/**\n * @since 2.0.0\n * @category destructors\n */\nexport const dumpAll = internal.dumpAll;\n/**\n * A fiber that has already failed with the specified value.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const fail = internal.fail;\n/**\n * Creates a `Fiber` that has already failed with the specified cause.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const failCause = internal.failCause;\n/**\n * Lifts an `Effect` into a `Fiber`.\n *\n * @since 2.0.0\n * @category conversions\n */\nexport const fromEffect = internal.fromEffect;\n/**\n * Gets the current fiber if one is running.\n *\n * @since 2.0.0\n * @category utilities\n */\nexport const getCurrentFiber = internal.getCurrentFiber;\n/**\n * Inherits values from all `FiberRef` instances into current fiber. This\n * will resume immediately.\n *\n * @since 2.0.0\n * @category destructors\n */\nexport const inheritAll = internal.inheritAll;\n/**\n * Interrupts the fiber from whichever fiber is calling this method. If the\n * fiber has already exited, the returned effect will resume immediately.\n * Otherwise, the effect will resume when the fiber exits.\n *\n * @since 2.0.0\n * @category interruption\n */\nexport const interrupt = core.interruptFiber;\n/**\n * Constructrs a `Fiber` that is already interrupted.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const interrupted = internal.interrupted;\n/**\n * Interrupts the fiber as if interrupted from the specified fiber. If the\n * fiber has already exited, the returned effect will resume immediately.\n * Otherwise, the effect will resume when the fiber exits.\n *\n * @since 2.0.0\n * @category interruption\n */\nexport const interruptAs = core.interruptAsFiber;\n/**\n * Interrupts the fiber as if interrupted from the specified fiber. If the\n * fiber has already exited, the returned effect will resume immediately.\n * Otherwise, the effect will resume when the fiber exits.\n *\n * @since 2.0.0\n * @category interruption\n */\nexport const interruptAsFork = internal.interruptAsFork;\n/**\n * Interrupts all fibers, awaiting their interruption.\n *\n * @since 2.0.0\n * @category interruption\n */\nexport const interruptAll = internal.interruptAll;\n/**\n * Interrupts all fibers as by the specified fiber, awaiting their\n * interruption.\n *\n * @since 2.0.0\n * @category interruption\n */\nexport const interruptAllAs = internal.interruptAllAs;\n/**\n * Interrupts the fiber from whichever fiber is calling this method. The\n * interruption will happen in a separate daemon fiber, and the returned\n * effect will always resume immediately without waiting.\n *\n * @since 2.0.0\n * @category interruption\n */\nexport const interruptFork = fiberRuntime.fiberInterruptFork;\n/**\n * Joins the fiber, which suspends the joining fiber until the result of the\n * fiber has been determined. Attempting to join a fiber that has erred will\n * result in a catchable error. Joining an interrupted fiber will result in an\n * \"inner interruption\" of this fiber, unlike interruption triggered by\n * another fiber, \"inner interruption\" can be caught and recovered.\n *\n * @since 2.0.0\n * @category destructors\n */\nexport const join = internal.join;\n/**\n * Joins all fibers, awaiting their _successful_ completion. Attempting to\n * join a fiber that has erred will result in a catchable error, _if_ that\n * error does not result from interruption.\n *\n * @since 2.0.0\n * @category destructors\n */\nexport const joinAll = fiberRuntime.fiberJoinAll;\n/**\n * Maps over the value the Fiber computes.\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const map = internal.map;\n/**\n * Effectually maps over the value the fiber computes.\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const mapEffect = internal.mapEffect;\n/**\n * Passes the success of this fiber to the specified callback, and continues\n * with the fiber that it returns.\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const mapFiber = internal.mapFiber;\n/**\n * Folds over the `Fiber` or `RuntimeFiber`.\n *\n * @since 2.0.0\n * @category folding\n */\nexport const match = internal.match;\n/**\n * A fiber that never fails or succeeds.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const never = internal.never;\n/**\n * Returns a fiber that prefers `this` fiber, but falls back to the `that` one\n * when `this` one fails. Interrupting the returned fiber will interrupt both\n * fibers, sequentially, from left to right.\n *\n * @since 2.0.0\n * @category alternatives\n */\nexport const orElse = internal.orElse;\n/**\n * Returns a fiber that prefers `this` fiber, but falls back to the `that` one\n * when `this` one fails. Interrupting the returned fiber will interrupt both\n * fibers, sequentially, from left to right.\n *\n * @since 2.0.0\n * @category alternatives\n */\nexport const orElseEither = internal.orElseEither;\n/**\n * Tentatively observes the fiber, but returns immediately if it is not\n * already done.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const poll = internal.poll;\n/**\n * Pretty-prints a `RuntimeFiber`.\n *\n * @since 2.0.0\n * @category destructors\n */\nexport const pretty = internal.pretty;\n/**\n * Returns a chunk containing all root fibers.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const roots = internal.roots;\n/**\n * Returns a chunk containing all root fibers.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const unsafeRoots = internal.unsafeRoots;\n/**\n * Converts this fiber into a scoped effect. The fiber is interrupted when the\n * scope is closed.\n *\n * @since 2.0.0\n * @category destructors\n */\nexport const scoped = fiberRuntime.fiberScoped;\n/**\n * Returns the `FiberStatus` of a `RuntimeFiber`.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const status = internal.status;\n/**\n * Returns a fiber that has already succeeded with the specified value.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const succeed = internal.succeed;\nconst void_ = internal.void;\nexport {\n/**\n * A fiber that has already succeeded with unit.\n *\n * @since 2.0.0\n * @category constructors\n */\nvoid_ as void };\n/**\n * Zips this fiber and the specified fiber together, producing a tuple of\n * their output.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zip = circular.zipFiber;\n/**\n * Same as `zip` but discards the output of that `Fiber`.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zipLeft = circular.zipLeftFiber;\n/**\n * Same as `zip` but discards the output of this `Fiber`.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zipRight = circular.zipRightFiber;\n/**\n * Zips this fiber with the specified fiber, combining their results using the\n * specified combiner function. Both joins and interruptions are performed in\n * sequential order from left to right.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zipWith = circular.zipWithFiber;\n//# sourceMappingURL=Fiber.js.map","/**\n * @since 2.0.0\n */\nimport * as core from \"./internal/core.js\";\nimport * as fiberRuntime from \"./internal/fiberRuntime.js\";\n/**\n * A unique identifier for the `Scope` type.\n *\n * @since 2.0.0\n * @category symbols\n */\nexport const ScopeTypeId = core.ScopeTypeId;\n/**\n * A unique identifier for the `CloseableScope` type.\n *\n * @since 2.0.0\n * @category symbols\n */\nexport const CloseableScopeTypeId = core.CloseableScopeTypeId;\n/**\n * A tag representing the current `Scope` in the environment.\n *\n * @since 2.0.0\n * @category context\n */\nexport const Scope = fiberRuntime.scopeTag;\n/**\n * Adds a finalizer to this scope. The finalizer is guaranteed to be run when\n * the scope is closed. Use this when the finalizer does not need to know the\n * `Exit` value that the scope is closed with.\n *\n * @see {@link addFinalizerExit}\n *\n * @since 2.0.0\n * @category utils\n */\nexport const addFinalizer = core.scopeAddFinalizer;\n/**\n * Adds a finalizer to this scope. The finalizer receives the `Exit` value\n * when the scope is closed, allowing it to perform different actions based\n * on the exit status.\n *\n * @see {@link addFinalizer}\n *\n * @since 2.0.0\n * @category utils\n */\nexport const addFinalizerExit = core.scopeAddFinalizerExit;\n/**\n * Closes this scope with the specified exit value, running all finalizers that\n * have been added to the scope.\n *\n * @since 2.0.0\n * @category destructors\n */\nexport const close = core.scopeClose;\n/**\n * Extends the scope of an `Effect` that requires a scope into this scope.\n * It provides this scope to the effect but does not close the scope when the\n * effect completes execution. This allows extending a scoped value into a\n * larger scope.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const extend = fiberRuntime.scopeExtend;\n/**\n * Forks a new child scope with the specified execution strategy. The child scope\n * will automatically be closed when this scope is closed.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const fork = core.scopeFork;\n/**\n * Provides this closeable scope to an `Effect` that requires a scope,\n * guaranteeing that the scope is closed with the result of that effect as\n * soon as the effect completes execution, whether by success, failure, or\n * interruption.\n *\n * @since 2.0.0\n * @category destructors\n */\nexport const use = fiberRuntime.scopeUse;\n/**\n * Creates a new closeable scope where finalizers will run according to the\n * specified `ExecutionStrategy`. If no execution strategy is provided, `sequential`\n * will be used by default.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const make = fiberRuntime.scopeMake;\n//# sourceMappingURL=Scope.js.map","import * as Context from \"../Context.js\";\nimport { equals } from \"../Equal.js\";\nimport * as Exit from \"../Exit.js\";\nimport * as Fiber from \"../Fiber.js\";\nimport * as FiberId from \"../FiberId.js\";\nimport * as FiberRefs from \"../FiberRefs.js\";\nimport { dual, pipe } from \"../Function.js\";\nimport * as Inspectable from \"../Inspectable.js\";\nimport * as Option from \"../Option.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport * as Predicate from \"../Predicate.js\";\nimport * as scheduler_ from \"../Scheduler.js\";\nimport * as scope_ from \"../Scope.js\";\nimport * as InternalCause from \"./cause.js\";\nimport * as core from \"./core.js\";\nimport * as executionStrategy from \"./executionStrategy.js\";\nimport * as FiberRuntime from \"./fiberRuntime.js\";\nimport * as fiberScope from \"./fiberScope.js\";\nimport * as OpCodes from \"./opCodes/effect.js\";\nimport * as runtimeFlags from \"./runtimeFlags.js\";\nimport * as supervisor_ from \"./supervisor.js\";\nconst makeDual = f => function () {\n if (arguments.length === 1) {\n const runtime = arguments[0];\n return (effect, ...args) => f(runtime, effect, ...args);\n }\n return f.apply(this, arguments);\n};\n/** @internal */\nexport const unsafeFork = /*#__PURE__*/makeDual((runtime, self, options) => {\n const fiberId = FiberId.unsafeMake();\n const fiberRefUpdates = [[core.currentContext, [[fiberId, runtime.context]]]];\n if (options?.scheduler) {\n fiberRefUpdates.push([scheduler_.currentScheduler, [[fiberId, options.scheduler]]]);\n }\n let fiberRefs = FiberRefs.updateManyAs(runtime.fiberRefs, {\n entries: fiberRefUpdates,\n forkAs: fiberId\n });\n if (options?.updateRefs) {\n fiberRefs = options.updateRefs(fiberRefs, fiberId);\n }\n const fiberRuntime = new FiberRuntime.FiberRuntime(fiberId, fiberRefs, runtime.runtimeFlags);\n let effect = self;\n if (options?.scope) {\n effect = core.flatMap(scope_.fork(options.scope, executionStrategy.sequential), closeableScope => core.zipRight(core.scopeAddFinalizer(closeableScope, core.fiberIdWith(id => equals(id, fiberRuntime.id()) ? core.void : core.interruptAsFiber(fiberRuntime, id))), core.onExit(self, exit => scope_.close(closeableScope, exit))));\n }\n const supervisor = fiberRuntime.currentSupervisor;\n // we can compare by reference here as _supervisor.none is wrapped with globalValue\n if (supervisor !== supervisor_.none) {\n supervisor.onStart(runtime.context, effect, Option.none(), fiberRuntime);\n fiberRuntime.addObserver(exit => supervisor.onEnd(exit, fiberRuntime));\n }\n fiberScope.globalScope.add(runtime.runtimeFlags, fiberRuntime);\n // Only an explicit false will prevent immediate execution\n if (options?.immediate === false) {\n fiberRuntime.resume(effect);\n } else {\n fiberRuntime.start(effect);\n }\n return fiberRuntime;\n});\n/** @internal */\nexport const unsafeRunCallback = /*#__PURE__*/makeDual((runtime, effect, options = {}) => {\n const fiberRuntime = unsafeFork(runtime, effect, options);\n if (options.onExit) {\n fiberRuntime.addObserver(exit => {\n options.onExit(exit);\n });\n }\n return (id, cancelOptions) => unsafeRunCallback(runtime)(pipe(fiberRuntime, Fiber.interruptAs(id ?? FiberId.none)), {\n ...cancelOptions,\n onExit: cancelOptions?.onExit ? exit => cancelOptions.onExit(Exit.flatten(exit)) : undefined\n });\n});\n/** @internal */\nexport const unsafeRunSync = /*#__PURE__*/makeDual((runtime, effect) => {\n const result = unsafeRunSyncExit(runtime)(effect);\n if (result._tag === \"Failure\") {\n throw fiberFailure(result.effect_instruction_i0);\n }\n return result.effect_instruction_i0;\n});\nclass AsyncFiberExceptionImpl extends Error {\n fiber;\n _tag = \"AsyncFiberException\";\n constructor(fiber) {\n super(`Fiber #${fiber.id().id} cannot be resolved synchronously. This is caused by using runSync on an effect that performs async work`);\n this.fiber = fiber;\n this.name = this._tag;\n this.stack = this.message;\n }\n}\nconst asyncFiberException = fiber => {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n const error = new AsyncFiberExceptionImpl(fiber);\n Error.stackTraceLimit = limit;\n return error;\n};\n/** @internal */\nexport const isAsyncFiberException = u => Predicate.isTagged(u, \"AsyncFiberException\") && \"fiber\" in u;\n/** @internal */\nexport const FiberFailureId = /*#__PURE__*/Symbol.for(\"effect/Runtime/FiberFailure\");\n/** @internal */\nexport const FiberFailureCauseId = /*#__PURE__*/Symbol.for(\"effect/Runtime/FiberFailure/Cause\");\nclass FiberFailureImpl extends Error {\n [FiberFailureId];\n [FiberFailureCauseId];\n constructor(cause) {\n const head = InternalCause.prettyErrors(cause)[0];\n super(head?.message || \"An error has occurred\");\n this[FiberFailureId] = FiberFailureId;\n this[FiberFailureCauseId] = cause;\n this.name = head ? `(FiberFailure) ${head.name}` : \"FiberFailure\";\n if (head?.stack) {\n this.stack = head.stack;\n }\n }\n toJSON() {\n return {\n _id: \"FiberFailure\",\n cause: this[FiberFailureCauseId].toJSON()\n };\n }\n toString() {\n return \"(FiberFailure) \" + InternalCause.pretty(this[FiberFailureCauseId], {\n renderErrorCause: true\n });\n }\n [Inspectable.NodeInspectSymbol]() {\n return this.toString();\n }\n}\n/** @internal */\nexport const fiberFailure = cause => {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n const error = new FiberFailureImpl(cause);\n Error.stackTraceLimit = limit;\n return error;\n};\n/** @internal */\nexport const isFiberFailure = u => Predicate.hasProperty(u, FiberFailureId);\nconst fastPath = effect => {\n const op = effect;\n switch (op._op) {\n case \"Failure\":\n case \"Success\":\n {\n // @ts-expect-error\n return op;\n }\n case \"Left\":\n {\n return core.exitFail(op.left);\n }\n case \"Right\":\n {\n return core.exitSucceed(op.right);\n }\n case \"Some\":\n {\n return core.exitSucceed(op.value);\n }\n case \"None\":\n {\n // @ts-expect-error\n return core.exitFail(new core.NoSuchElementException());\n }\n }\n};\n/** @internal */\nexport const unsafeRunSyncExit = /*#__PURE__*/makeDual((runtime, effect) => {\n const op = fastPath(effect);\n if (op) {\n return op;\n }\n const scheduler = new scheduler_.SyncScheduler();\n const fiberRuntime = unsafeFork(runtime)(effect, {\n scheduler\n });\n scheduler.flush();\n const result = fiberRuntime.unsafePoll();\n if (result) {\n return result;\n }\n return core.exitDie(core.capture(asyncFiberException(fiberRuntime), core.currentSpanFromFiber(fiberRuntime)));\n});\n/** @internal */\nexport const unsafeRunPromise = /*#__PURE__*/makeDual((runtime, effect, options) => unsafeRunPromiseExit(runtime, effect, options).then(result => {\n switch (result._tag) {\n case OpCodes.OP_SUCCESS:\n {\n return result.effect_instruction_i0;\n }\n case OpCodes.OP_FAILURE:\n {\n throw fiberFailure(result.effect_instruction_i0);\n }\n }\n}));\n/** @internal */\nexport const unsafeRunPromiseExit = /*#__PURE__*/makeDual((runtime, effect, options) => new Promise(resolve => {\n const op = fastPath(effect);\n if (op) {\n resolve(op);\n }\n const fiber = unsafeFork(runtime)(effect);\n fiber.addObserver(exit => {\n resolve(exit);\n });\n if (options?.signal !== undefined) {\n if (options.signal.aborted) {\n fiber.unsafeInterruptAsFork(fiber.id());\n } else {\n options.signal.addEventListener(\"abort\", () => {\n fiber.unsafeInterruptAsFork(fiber.id());\n }, {\n once: true\n });\n }\n }\n}));\n/** @internal */\nexport class RuntimeImpl {\n context;\n runtimeFlags;\n fiberRefs;\n constructor(context, runtimeFlags, fiberRefs) {\n this.context = context;\n this.runtimeFlags = runtimeFlags;\n this.fiberRefs = fiberRefs;\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nexport const make = options => new RuntimeImpl(options.context, options.runtimeFlags, options.fiberRefs);\n/** @internal */\nexport const runtime = () => core.withFiberRuntime((state, status) => core.succeed(new RuntimeImpl(state.getFiberRef(core.currentContext), status.runtimeFlags, state.getFiberRefs())));\n/** @internal */\nexport const defaultRuntimeFlags = /*#__PURE__*/runtimeFlags.make(runtimeFlags.Interruption, runtimeFlags.CooperativeYielding, runtimeFlags.RuntimeMetrics);\n/** @internal */\nexport const defaultRuntime = /*#__PURE__*/make({\n context: /*#__PURE__*/Context.empty(),\n runtimeFlags: defaultRuntimeFlags,\n fiberRefs: /*#__PURE__*/FiberRefs.empty()\n});\n/** @internal */\nexport const updateRuntimeFlags = /*#__PURE__*/dual(2, (self, f) => make({\n context: self.context,\n runtimeFlags: f(self.runtimeFlags),\n fiberRefs: self.fiberRefs\n}));\n/** @internal */\nexport const disableRuntimeFlag = /*#__PURE__*/dual(2, (self, flag) => updateRuntimeFlags(self, runtimeFlags.disable(flag)));\n/** @internal */\nexport const enableRuntimeFlag = /*#__PURE__*/dual(2, (self, flag) => updateRuntimeFlags(self, runtimeFlags.enable(flag)));\n/** @internal */\nexport const updateContext = /*#__PURE__*/dual(2, (self, f) => make({\n context: f(self.context),\n runtimeFlags: self.runtimeFlags,\n fiberRefs: self.fiberRefs\n}));\n/** @internal */\nexport const provideService = /*#__PURE__*/dual(3, (self, tag, service) => updateContext(self, Context.add(tag, service)));\n/** @internal */\nexport const updateFiberRefs = /*#__PURE__*/dual(2, (self, f) => make({\n context: self.context,\n runtimeFlags: self.runtimeFlags,\n fiberRefs: f(self.fiberRefs)\n}));\n/** @internal */\nexport const setFiberRef = /*#__PURE__*/dual(3, (self, fiberRef, value) => updateFiberRefs(self, FiberRefs.updateAs({\n fiberId: FiberId.none,\n fiberRef,\n value\n})));\n/** @internal */\nexport const deleteFiberRef = /*#__PURE__*/dual(2, (self, fiberRef) => updateFiberRefs(self, FiberRefs.delete(fiberRef)));\n/** @internal */\nexport const unsafeRunEffect = /*#__PURE__*/unsafeRunCallback(defaultRuntime);\n/** @internal */\nexport const unsafeForkEffect = /*#__PURE__*/unsafeFork(defaultRuntime);\n/** @internal */\nexport const unsafeRunPromiseEffect = /*#__PURE__*/unsafeRunPromise(defaultRuntime);\n/** @internal */\nexport const unsafeRunPromiseExitEffect = /*#__PURE__*/unsafeRunPromiseExit(defaultRuntime);\n/** @internal */\nexport const unsafeRunSyncEffect = /*#__PURE__*/unsafeRunSync(defaultRuntime);\n/** @internal */\nexport const unsafeRunSyncExitEffect = /*#__PURE__*/unsafeRunSyncExit(defaultRuntime);\n// circular with Effect\n/** @internal */\nexport const asyncEffect = register => core.suspend(() => {\n let cleanup = undefined;\n return core.flatMap(core.deferredMake(), deferred => core.flatMap(runtime(), runtime => core.uninterruptibleMask(restore => core.zipRight(FiberRuntime.fork(restore(core.matchCauseEffect(register(cb => unsafeRunCallback(runtime)(core.intoDeferred(cb, deferred))), {\n onFailure: cause => core.deferredFailCause(deferred, cause),\n onSuccess: cleanup_ => {\n cleanup = cleanup_;\n return core.void;\n }\n }))), restore(core.onInterrupt(core.deferredAwait(deferred), () => cleanup ?? core.void))))));\n});\n//# sourceMappingURL=runtime.js.map","import * as Chunk from \"../Chunk.js\";\nimport * as Clock from \"../Clock.js\";\nimport * as Context from \"../Context.js\";\nimport * as Cron from \"../Cron.js\";\nimport * as Duration from \"../Duration.js\";\nimport * as Either from \"../Either.js\";\nimport * as Equal from \"../Equal.js\";\nimport { constVoid, dual, pipe } from \"../Function.js\";\nimport * as Option from \"../Option.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport { hasProperty } from \"../Predicate.js\";\nimport * as Random from \"../Random.js\";\nimport * as ScheduleDecision from \"../ScheduleDecision.js\";\nimport * as Interval from \"../ScheduleInterval.js\";\nimport * as Intervals from \"../ScheduleIntervals.js\";\nimport * as internalCause from \"./cause.js\";\nimport * as effect from \"./core-effect.js\";\nimport * as core from \"./core.js\";\nimport { forkScoped } from \"./effect/circular.js\";\nimport * as ref from \"./ref.js\";\n/** @internal */\nconst ScheduleSymbolKey = \"effect/Schedule\";\n/** @internal */\nexport const ScheduleTypeId = /*#__PURE__*/Symbol.for(ScheduleSymbolKey);\n/** @internal */\nexport const isSchedule = u => hasProperty(u, ScheduleTypeId);\n/** @internal */\nconst ScheduleDriverSymbolKey = \"effect/ScheduleDriver\";\n/** @internal */\nexport const ScheduleDriverTypeId = /*#__PURE__*/Symbol.for(ScheduleDriverSymbolKey);\n/** @internal */\nconst defaultIterationMetadata = {\n start: 0,\n now: 0,\n input: undefined,\n output: undefined,\n elapsed: Duration.zero,\n elapsedSincePrevious: Duration.zero,\n recurrence: 0\n};\n/** @internal */\nexport const CurrentIterationMetadata = /*#__PURE__*/Context.Reference()(\"effect/Schedule/CurrentIterationMetadata\", {\n defaultValue: () => defaultIterationMetadata\n});\nconst scheduleVariance = {\n /* c8 ignore next */\n _Out: _ => _,\n /* c8 ignore next */\n _In: _ => _,\n /* c8 ignore next */\n _R: _ => _\n};\nconst scheduleDriverVariance = {\n /* c8 ignore next */\n _Out: _ => _,\n /* c8 ignore next */\n _In: _ => _,\n /* c8 ignore next */\n _R: _ => _\n};\n/** @internal */\nclass ScheduleImpl {\n initial;\n step;\n [ScheduleTypeId] = scheduleVariance;\n constructor(initial, step) {\n this.initial = initial;\n this.step = step;\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nconst updateInfo = (iterationMetaRef, now, input, output) => ref.update(iterationMetaRef, prev => prev.recurrence === 0 ? {\n now,\n input,\n output,\n recurrence: prev.recurrence + 1,\n elapsed: Duration.zero,\n elapsedSincePrevious: Duration.zero,\n start: now\n} : {\n now,\n input,\n output,\n recurrence: prev.recurrence + 1,\n elapsed: Duration.millis(now - prev.start),\n elapsedSincePrevious: Duration.millis(now - prev.now),\n start: prev.start\n});\n/** @internal */\nclass ScheduleDriverImpl {\n schedule;\n ref;\n [ScheduleDriverTypeId] = scheduleDriverVariance;\n constructor(schedule, ref) {\n this.schedule = schedule;\n this.ref = ref;\n }\n get state() {\n return core.map(ref.get(this.ref), tuple => tuple[1]);\n }\n get last() {\n return core.flatMap(ref.get(this.ref), ([element, _]) => {\n switch (element._tag) {\n case \"None\":\n {\n return core.failSync(() => new core.NoSuchElementException());\n }\n case \"Some\":\n {\n return core.succeed(element.value);\n }\n }\n });\n }\n iterationMeta = /*#__PURE__*/ref.unsafeMake(defaultIterationMetadata);\n get reset() {\n return ref.set(this.ref, [Option.none(), this.schedule.initial]).pipe(core.zipLeft(ref.set(this.iterationMeta, defaultIterationMetadata)));\n }\n next(input) {\n return pipe(core.map(ref.get(this.ref), tuple => tuple[1]), core.flatMap(state => pipe(Clock.currentTimeMillis, core.flatMap(now => pipe(core.suspend(() => this.schedule.step(now, input, state)), core.flatMap(([state, out, decision]) => {\n const setState = ref.set(this.ref, [Option.some(out), state]);\n if (ScheduleDecision.isDone(decision)) {\n return setState.pipe(core.zipRight(core.fail(Option.none())));\n }\n const millis = Intervals.start(decision.intervals) - now;\n if (millis <= 0) {\n return setState.pipe(core.zipRight(updateInfo(this.iterationMeta, now, input, out)), core.as(out));\n }\n const duration = Duration.millis(millis);\n return pipe(setState, core.zipRight(updateInfo(this.iterationMeta, now, input, out)), core.zipRight(effect.sleep(duration)), core.as(out));\n }))))));\n }\n}\n/** @internal */\nexport const makeWithState = (initial, step) => new ScheduleImpl(initial, step);\n/** @internal */\nexport const addDelay = /*#__PURE__*/dual(2, (self, f) => addDelayEffect(self, out => core.sync(() => f(out))));\n/** @internal */\nexport const addDelayEffect = /*#__PURE__*/dual(2, (self, f) => modifyDelayEffect(self, (out, duration) => core.map(f(out), delay => Duration.sum(duration, Duration.decode(delay)))));\n/** @internal */\nexport const andThen = /*#__PURE__*/dual(2, (self, that) => map(andThenEither(self, that), Either.merge));\n/** @internal */\nexport const andThenEither = /*#__PURE__*/dual(2, (self, that) => makeWithState([self.initial, that.initial, true], (now, input, state) => state[2] ? core.flatMap(self.step(now, input, state[0]), ([lState, out, decision]) => {\n if (ScheduleDecision.isDone(decision)) {\n return core.map(that.step(now, input, state[1]), ([rState, out, decision]) => [[lState, rState, false], Either.right(out), decision]);\n }\n return core.succeed([[lState, state[1], true], Either.left(out), decision]);\n}) : core.map(that.step(now, input, state[1]), ([rState, out, decision]) => [[state[0], rState, false], Either.right(out), decision])));\n/** @internal */\nexport const as = /*#__PURE__*/dual(2, (self, out) => map(self, () => out));\n/** @internal */\nexport const asVoid = self => map(self, constVoid);\n/** @internal */\nexport const bothInOut = /*#__PURE__*/dual(2, (self, that) => makeWithState([self.initial, that.initial], (now, [in1, in2], state) => core.zipWith(self.step(now, in1, state[0]), that.step(now, in2, state[1]), ([lState, out, lDecision], [rState, out2, rDecision]) => {\n if (ScheduleDecision.isContinue(lDecision) && ScheduleDecision.isContinue(rDecision)) {\n const interval = pipe(lDecision.intervals, Intervals.union(rDecision.intervals));\n return [[lState, rState], [out, out2], ScheduleDecision.continue(interval)];\n }\n return [[lState, rState], [out, out2], ScheduleDecision.done];\n})));\n/** @internal */\nexport const check = /*#__PURE__*/dual(2, (self, test) => checkEffect(self, (input, out) => core.sync(() => test(input, out))));\n/** @internal */\nexport const checkEffect = /*#__PURE__*/dual(2, (self, test) => makeWithState(self.initial, (now, input, state) => core.flatMap(self.step(now, input, state), ([state, out, decision]) => {\n if (ScheduleDecision.isDone(decision)) {\n return core.succeed([state, out, ScheduleDecision.done]);\n }\n return core.map(test(input, out), cont => cont ? [state, out, decision] : [state, out, ScheduleDecision.done]);\n})));\n/** @internal */\nexport const collectAllInputs = () => collectAllOutputs(identity());\n/** @internal */\nexport const collectAllOutputs = self => reduce(self, Chunk.empty(), (outs, out) => pipe(outs, Chunk.append(out)));\n/** @internal */\nexport const collectUntil = f => collectAllOutputs(recurUntil(f));\n/** @internal */\nexport const collectUntilEffect = f => collectAllOutputs(recurUntilEffect(f));\n/** @internal */\nexport const collectWhile = f => collectAllOutputs(recurWhile(f));\n/** @internal */\nexport const collectWhileEffect = f => collectAllOutputs(recurWhileEffect(f));\n/** @internal */\nexport const compose = /*#__PURE__*/dual(2, (self, that) => makeWithState([self.initial, that.initial], (now, input, state) => core.flatMap(self.step(now, input, state[0]), ([lState, out, lDecision]) => core.map(that.step(now, out, state[1]), ([rState, out2, rDecision]) => ScheduleDecision.isDone(lDecision) ? [[lState, rState], out2, ScheduleDecision.done] : ScheduleDecision.isDone(rDecision) ? [[lState, rState], out2, ScheduleDecision.done] : [[lState, rState], out2, ScheduleDecision.continue(pipe(lDecision.intervals, Intervals.max(rDecision.intervals)))]))));\n/** @internal */\nexport const mapInput = /*#__PURE__*/dual(2, (self, f) => mapInputEffect(self, input2 => core.sync(() => f(input2))));\n/** @internal */\nexport const mapInputContext = /*#__PURE__*/dual(2, (self, f) => makeWithState(self.initial, (now, input, state) => core.mapInputContext(self.step(now, input, state), f)));\n/** @internal */\nexport const mapInputEffect = /*#__PURE__*/dual(2, (self, f) => makeWithState(self.initial, (now, input2, state) => core.flatMap(f(input2), input => self.step(now, input, state))));\n/** @internal */\nexport const cron = (expression, tz) => {\n const parsed = Cron.isCron(expression) ? Either.right(expression) : Cron.parse(expression, tz);\n return makeWithState([true, [Number.MIN_SAFE_INTEGER, 0, 0]], (now, _, [initial, previous]) => {\n if (now < previous[0]) {\n return core.succeed([[false, previous], [previous[1], previous[2]], ScheduleDecision.continueWith(Interval.make(previous[1], previous[2]))]);\n }\n if (Either.isLeft(parsed)) {\n return core.die(parsed.left);\n }\n const cron = parsed.right;\n const date = new Date(now);\n let next;\n if (initial && Cron.match(cron, date)) {\n next = now;\n }\n next = Cron.next(cron, date).getTime();\n const start = beginningOfSecond(next);\n const end = endOfSecond(next);\n return core.succeed([[false, [next, start, end]], [start, end], ScheduleDecision.continueWith(Interval.make(start, end))]);\n });\n};\n/** @internal */\nexport const dayOfMonth = day => {\n return makeWithState([Number.NEGATIVE_INFINITY, 0], (now, _, state) => {\n if (!Number.isInteger(day) || day < 1 || 31 < day) {\n return core.dieSync(() => new core.IllegalArgumentException(`Invalid argument in: dayOfMonth(${day}). Must be in range 1...31`));\n }\n const n = state[1];\n const initial = n === 0;\n const day0 = nextDayOfMonth(now, day, initial);\n const start = beginningOfDay(day0);\n const end = endOfDay(day0);\n const interval = Interval.make(start, end);\n return core.succeed([[end, n + 1], n, ScheduleDecision.continueWith(interval)]);\n });\n};\n/** @internal */\nexport const dayOfWeek = day => {\n return makeWithState([Number.MIN_SAFE_INTEGER, 0], (now, _, state) => {\n if (!Number.isInteger(day) || day < 1 || 7 < day) {\n return core.dieSync(() => new core.IllegalArgumentException(`Invalid argument in: dayOfWeek(${day}). Must be in range 1 (Monday)...7 (Sunday)`));\n }\n const n = state[1];\n const initial = n === 0;\n const day0 = nextDay(now, day, initial);\n const start = beginningOfDay(day0);\n const end = endOfDay(day0);\n const interval = Interval.make(start, end);\n return core.succeed([[end, n + 1], n, ScheduleDecision.continueWith(interval)]);\n });\n};\n/** @internal */\nexport const delayed = /*#__PURE__*/dual(2, (self, f) => delayedEffect(self, duration => core.sync(() => f(duration))));\n/** @internal */\nexport const delayedEffect = /*#__PURE__*/dual(2, (self, f) => modifyDelayEffect(self, (_, delay) => f(delay)));\n/** @internal */\nexport const delayedSchedule = schedule => addDelay(schedule, x => x);\n/** @internal */\nexport const delays = self => makeWithState(self.initial, (now, input, state) => pipe(self.step(now, input, state), core.flatMap(([state, _, decision]) => {\n if (ScheduleDecision.isDone(decision)) {\n return core.succeed([state, Duration.zero, decision]);\n }\n return core.succeed([state, Duration.millis(Intervals.start(decision.intervals) - now), decision]);\n})));\n/** @internal */\nexport const mapBoth = /*#__PURE__*/dual(2, (self, {\n onInput,\n onOutput\n}) => map(mapInput(self, onInput), onOutput));\n/** @internal */\nexport const mapBothEffect = /*#__PURE__*/dual(2, (self, {\n onInput,\n onOutput\n}) => mapEffect(mapInputEffect(self, onInput), onOutput));\n/** @internal */\nexport const driver = self => pipe(ref.make([Option.none(), self.initial]), core.map(ref => new ScheduleDriverImpl(self, ref)));\n/** @internal */\nexport const duration = durationInput => {\n const duration = Duration.decode(durationInput);\n const durationMillis = Duration.toMillis(duration);\n return makeWithState(true, (now, _, state) => core.succeed(state ? [false, duration, ScheduleDecision.continueWith(Interval.after(now + durationMillis))] : [false, Duration.zero, ScheduleDecision.done]));\n};\n/** @internal */\nexport const either = /*#__PURE__*/dual(2, (self, that) => union(self, that));\n/** @internal */\nexport const eitherWith = /*#__PURE__*/dual(3, (self, that, f) => unionWith(self, that, f));\n/** @internal */\nexport const ensuring = /*#__PURE__*/dual(2, (self, finalizer) => makeWithState(self.initial, (now, input, state) => core.flatMap(self.step(now, input, state), ([state, out, decision]) => ScheduleDecision.isDone(decision) ? core.as(finalizer, [state, out, decision]) : core.succeed([state, out, decision]))));\n/** @internal */\nexport const exponential = (baseInput, factor = 2.0) => {\n const base = Duration.decode(baseInput);\n return delayedSchedule(map(forever, i => Duration.times(base, Math.pow(factor, i))));\n};\n/** @internal */\nexport const fibonacci = oneInput => {\n const one = Duration.decode(oneInput);\n return delayedSchedule(pipe(unfold([one, one], ([a, b]) => [b, Duration.sum(a, b)]), map(out => out[0])));\n};\n/** @internal */\nexport const fixed = intervalInput => {\n const interval = Duration.decode(intervalInput);\n const intervalMillis = Duration.toMillis(interval);\n return makeWithState([Option.none(), 0], (now, _, [option, n]) => core.sync(() => {\n switch (option._tag) {\n case \"None\":\n {\n return [[Option.some([now, now + intervalMillis]), n + 1], n, ScheduleDecision.continueWith(Interval.after(now + intervalMillis))];\n }\n case \"Some\":\n {\n const [startMillis, lastRun] = option.value;\n const runningBehind = now > lastRun + intervalMillis;\n const boundary = Equal.equals(interval, Duration.zero) ? interval : Duration.millis(intervalMillis - (now - startMillis) % intervalMillis);\n const sleepTime = Equal.equals(boundary, Duration.zero) ? interval : boundary;\n const nextRun = runningBehind ? now : now + Duration.toMillis(sleepTime);\n return [[Option.some([startMillis, nextRun]), n + 1], n, ScheduleDecision.continueWith(Interval.after(nextRun))];\n }\n }\n }));\n};\n/** @internal */\nexport const fromDelay = delay => duration(delay);\n/** @internal */\nexport const fromDelays = (delay, ...delays) => makeWithState([[delay, ...delays].map(_ => Duration.decode(_)), true], (now, _, [durations, cont]) => core.sync(() => {\n if (cont) {\n const x = durations[0];\n const interval = Interval.after(now + Duration.toMillis(x));\n if (durations.length >= 2) {\n return [[durations.slice(1), true], x, ScheduleDecision.continueWith(interval)];\n }\n const y = durations.slice(1);\n return [[[x, ...y], false], x, ScheduleDecision.continueWith(interval)];\n }\n return [[durations, false], Duration.zero, ScheduleDecision.done];\n}));\n/** @internal */\nexport const fromFunction = f => map(identity(), f);\n/** @internal */\nexport const hourOfDay = hour => makeWithState([Number.NEGATIVE_INFINITY, 0], (now, _, state) => {\n if (!Number.isInteger(hour) || hour < 0 || 23 < hour) {\n return core.dieSync(() => new core.IllegalArgumentException(`Invalid argument in: hourOfDay(${hour}). Must be in range 0...23`));\n }\n const n = state[1];\n const initial = n === 0;\n const hour0 = nextHour(now, hour, initial);\n const start = beginningOfHour(hour0);\n const end = endOfHour(hour0);\n const interval = Interval.make(start, end);\n return core.succeed([[end, n + 1], n, ScheduleDecision.continueWith(interval)]);\n});\n/** @internal */\nexport const identity = () => makeWithState(void 0, (now, input, state) => core.succeed([state, input, ScheduleDecision.continueWith(Interval.after(now))]));\n/** @internal */\nexport const intersect = /*#__PURE__*/dual(2, (self, that) => intersectWith(self, that, Intervals.intersect));\n/** @internal */\nexport const intersectWith = /*#__PURE__*/dual(3, (self, that, f) => makeWithState([self.initial, that.initial], (now, input, state) => pipe(core.zipWith(self.step(now, input, state[0]), that.step(now, input, state[1]), (a, b) => [a, b]), core.flatMap(([[lState, out, lDecision], [rState, out2, rDecision]]) => {\n if (ScheduleDecision.isContinue(lDecision) && ScheduleDecision.isContinue(rDecision)) {\n return intersectWithLoop(self, that, input, lState, out, lDecision.intervals, rState, out2, rDecision.intervals, f);\n }\n return core.succeed([[lState, rState], [out, out2], ScheduleDecision.done]);\n}))));\n/** @internal */\nconst intersectWithLoop = (self, that, input, lState, out, lInterval, rState, out2, rInterval, f) => {\n const combined = f(lInterval, rInterval);\n if (Intervals.isNonEmpty(combined)) {\n return core.succeed([[lState, rState], [out, out2], ScheduleDecision.continue(combined)]);\n }\n if (pipe(lInterval, Intervals.lessThan(rInterval))) {\n return core.flatMap(self.step(Intervals.end(lInterval), input, lState), ([lState, out, decision]) => {\n if (ScheduleDecision.isDone(decision)) {\n return core.succeed([[lState, rState], [out, out2], ScheduleDecision.done]);\n }\n return intersectWithLoop(self, that, input, lState, out, decision.intervals, rState, out2, rInterval, f);\n });\n }\n return core.flatMap(that.step(Intervals.end(rInterval), input, rState), ([rState, out2, decision]) => {\n if (ScheduleDecision.isDone(decision)) {\n return core.succeed([[lState, rState], [out, out2], ScheduleDecision.done]);\n }\n return intersectWithLoop(self, that, input, lState, out, lInterval, rState, out2, decision.intervals, f);\n });\n};\n/** @internal */\nexport const jittered = self => jitteredWith(self, {\n min: 0.8,\n max: 1.2\n});\n/** @internal */\nexport const jitteredWith = /*#__PURE__*/dual(2, (self, options) => {\n const {\n max,\n min\n } = Object.assign({\n min: 0.8,\n max: 1.2\n }, options);\n return delayedEffect(self, duration => core.map(Random.next, random => {\n const d = Duration.toMillis(duration);\n const jittered = d * min * (1 - random) + d * max * random;\n return Duration.millis(jittered);\n }));\n});\n/** @internal */\nexport const linear = baseInput => {\n const base = Duration.decode(baseInput);\n return delayedSchedule(map(forever, i => Duration.times(base, i + 1)));\n};\n/** @internal */\nexport const map = /*#__PURE__*/dual(2, (self, f) => mapEffect(self, out => core.sync(() => f(out))));\n/** @internal */\nexport const mapEffect = /*#__PURE__*/dual(2, (self, f) => makeWithState(self.initial, (now, input, state) => core.flatMap(self.step(now, input, state), ([state, out, decision]) => core.map(f(out), out2 => [state, out2, decision]))));\n/** @internal */\nexport const minuteOfHour = minute => makeWithState([Number.MIN_SAFE_INTEGER, 0], (now, _, state) => {\n if (!Number.isInteger(minute) || minute < 0 || 59 < minute) {\n return core.dieSync(() => new core.IllegalArgumentException(`Invalid argument in: minuteOfHour(${minute}). Must be in range 0...59`));\n }\n const n = state[1];\n const initial = n === 0;\n const minute0 = nextMinute(now, minute, initial);\n const start = beginningOfMinute(minute0);\n const end = endOfMinute(minute0);\n const interval = Interval.make(start, end);\n return core.succeed([[end, n + 1], n, ScheduleDecision.continueWith(interval)]);\n});\n/** @internal */\nexport const modifyDelay = /*#__PURE__*/dual(2, (self, f) => modifyDelayEffect(self, (out, duration) => core.sync(() => f(out, duration))));\n/** @internal */\nexport const modifyDelayEffect = /*#__PURE__*/dual(2, (self, f) => makeWithState(self.initial, (now, input, state) => core.flatMap(self.step(now, input, state), ([state, out, decision]) => {\n if (ScheduleDecision.isDone(decision)) {\n return core.succeed([state, out, decision]);\n }\n const intervals = decision.intervals;\n const delay = Interval.size(Interval.make(now, Intervals.start(intervals)));\n return core.map(f(out, delay), durationInput => {\n const duration = Duration.decode(durationInput);\n const oldStart = Intervals.start(intervals);\n const newStart = now + Duration.toMillis(duration);\n const delta = newStart - oldStart;\n const newEnd = Math.max(0, Intervals.end(intervals) + delta);\n const newInterval = Interval.make(newStart, newEnd);\n return [state, out, ScheduleDecision.continueWith(newInterval)];\n });\n})));\n/** @internal */\nexport const onDecision = /*#__PURE__*/dual(2, (self, f) => makeWithState(self.initial, (now, input, state) => core.flatMap(self.step(now, input, state), ([state, out, decision]) => core.as(f(out, decision), [state, out, decision]))));\n/** @internal */\nexport const passthrough = self => makeWithState(self.initial, (now, input, state) => pipe(self.step(now, input, state), core.map(([state, _, decision]) => [state, input, decision])));\n/** @internal */\nexport const provideContext = /*#__PURE__*/dual(2, (self, context) => makeWithState(self.initial, (now, input, state) => core.provideContext(self.step(now, input, state), context)));\n/** @internal */\nexport const provideService = /*#__PURE__*/dual(3, (self, tag, service) => makeWithState(self.initial, (now, input, state) => core.contextWithEffect(env => core.provideContext(\n// @ts-expect-error\nself.step(now, input, state), Context.add(env, tag, service)))));\n/** @internal */\nexport const recurUntil = f => untilInput(identity(), f);\n/** @internal */\nexport const recurUntilEffect = f => untilInputEffect(identity(), f);\n/** @internal */\nexport const recurUntilOption = pf => untilOutput(map(identity(), pf), Option.isSome);\n/** @internal */\nexport const recurUpTo = durationInput => {\n const duration = Duration.decode(durationInput);\n return whileOutput(elapsed, elapsed => Duration.lessThan(elapsed, duration));\n};\n/** @internal */\nexport const recurWhile = f => whileInput(identity(), f);\n/** @internal */\nexport const recurWhileEffect = f => whileInputEffect(identity(), f);\n/** @internal */\nexport const recurs = n => whileOutput(forever, out => out < n);\n/** @internal */\nexport const reduce = /*#__PURE__*/dual(3, (self, zero, f) => reduceEffect(self, zero, (z, out) => core.sync(() => f(z, out))));\n/** @internal */\nexport const reduceEffect = /*#__PURE__*/dual(3, (self, zero, f) => makeWithState([self.initial, zero], (now, input, [s, z]) => core.flatMap(self.step(now, input, s), ([s, out, decision]) => ScheduleDecision.isDone(decision) ? core.succeed([[s, z], z, decision]) : core.map(f(z, out), z2 => [[s, z2], z, decision]))));\n/** @internal */\nexport const repeatForever = self => makeWithState(self.initial, (now, input, state) => {\n const step = (now, input, state) => core.flatMap(self.step(now, input, state), ([state, out, decision]) => ScheduleDecision.isDone(decision) ? step(now, input, self.initial) : core.succeed([state, out, decision]));\n return step(now, input, state);\n});\n/** @internal */\nexport const repetitions = self => reduce(self, 0, (n, _) => n + 1);\n/** @internal */\nexport const resetAfter = /*#__PURE__*/dual(2, (self, durationInput) => {\n const duration = Duration.decode(durationInput);\n return pipe(self, intersect(elapsed), resetWhen(([, time]) => Duration.greaterThanOrEqualTo(time, duration)), map(out => out[0]));\n});\n/** @internal */\nexport const resetWhen = /*#__PURE__*/dual(2, (self, f) => makeWithState(self.initial, (now, input, state) => core.flatMap(self.step(now, input, state), ([state, out, decision]) => f(out) ? self.step(now, input, self.initial) : core.succeed([state, out, decision]))));\n/** @internal */\nexport const run = /*#__PURE__*/dual(3, (self, now, input) => pipe(runLoop(self, now, Chunk.fromIterable(input), self.initial, Chunk.empty()), core.map(list => Chunk.reverse(list))));\n/** @internal */\nconst runLoop = (self, now, inputs, state, acc) => {\n if (!Chunk.isNonEmpty(inputs)) {\n return core.succeed(acc);\n }\n const input = Chunk.headNonEmpty(inputs);\n const nextInputs = Chunk.tailNonEmpty(inputs);\n return core.flatMap(self.step(now, input, state), ([state, out, decision]) => {\n if (ScheduleDecision.isDone(decision)) {\n return core.sync(() => pipe(acc, Chunk.prepend(out)));\n }\n return runLoop(self, Intervals.start(decision.intervals), nextInputs, state, Chunk.prepend(acc, out));\n });\n};\n/** @internal */\nexport const secondOfMinute = second => makeWithState([Number.NEGATIVE_INFINITY, 0], (now, _, state) => {\n if (!Number.isInteger(second) || second < 0 || 59 < second) {\n return core.dieSync(() => new core.IllegalArgumentException(`Invalid argument in: secondOfMinute(${second}). Must be in range 0...59`));\n }\n const n = state[1];\n const initial = n === 0;\n const second0 = nextSecond(now, second, initial);\n const start = beginningOfSecond(second0);\n const end = endOfSecond(second0);\n const interval = Interval.make(start, end);\n return core.succeed([[end, n + 1], n, ScheduleDecision.continueWith(interval)]);\n});\n/** @internal */\nexport const spaced = duration => addDelay(forever, () => duration);\n/** @internal */\nexport const succeed = value => map(forever, () => value);\n/** @internal */\nexport const sync = evaluate => map(forever, evaluate);\n/** @internal */\nexport const tapInput = /*#__PURE__*/dual(2, (self, f) => makeWithState(self.initial, (now, input, state) => core.zipRight(f(input), self.step(now, input, state))));\n/** @internal */\nexport const tapOutput = /*#__PURE__*/dual(2, (self, f) => makeWithState(self.initial, (now, input, state) => core.tap(self.step(now, input, state), ([, out]) => f(out))));\n/** @internal */\nexport const unfold = (initial, f) => makeWithState(initial, (now, _, state) => core.sync(() => [f(state), state, ScheduleDecision.continueWith(Interval.after(now))]));\n/** @internal */\nexport const union = /*#__PURE__*/dual(2, (self, that) => unionWith(self, that, Intervals.union));\n/** @internal */\nexport const unionWith = /*#__PURE__*/dual(3, (self, that, f) => makeWithState([self.initial, that.initial], (now, input, state) => core.zipWith(self.step(now, input, state[0]), that.step(now, input, state[1]), ([lState, l, lDecision], [rState, r, rDecision]) => {\n if (ScheduleDecision.isDone(lDecision) && ScheduleDecision.isDone(rDecision)) {\n return [[lState, rState], [l, r], ScheduleDecision.done];\n }\n if (ScheduleDecision.isDone(lDecision) && ScheduleDecision.isContinue(rDecision)) {\n return [[lState, rState], [l, r], ScheduleDecision.continue(rDecision.intervals)];\n }\n if (ScheduleDecision.isContinue(lDecision) && ScheduleDecision.isDone(rDecision)) {\n return [[lState, rState], [l, r], ScheduleDecision.continue(lDecision.intervals)];\n }\n if (ScheduleDecision.isContinue(lDecision) && ScheduleDecision.isContinue(rDecision)) {\n const combined = f(lDecision.intervals, rDecision.intervals);\n return [[lState, rState], [l, r], ScheduleDecision.continue(combined)];\n }\n throw new Error(\"BUG: Schedule.unionWith - please report an issue at https://github.com/Effect-TS/effect/issues\");\n})));\n/** @internal */\nexport const untilInput = /*#__PURE__*/dual(2, (self, f) => check(self, (input, _) => !f(input)));\n/** @internal */\nexport const untilInputEffect = /*#__PURE__*/dual(2, (self, f) => checkEffect(self, (input, _) => effect.negate(f(input))));\n/** @internal */\nexport const untilOutput = /*#__PURE__*/dual(2, (self, f) => check(self, (_, out) => !f(out)));\n/** @internal */\nexport const untilOutputEffect = /*#__PURE__*/dual(2, (self, f) => checkEffect(self, (_, out) => effect.negate(f(out))));\n/** @internal */\nexport const upTo = /*#__PURE__*/dual(2, (self, duration) => zipLeft(self, recurUpTo(duration)));\n/** @internal */\nexport const whileInput = /*#__PURE__*/dual(2, (self, f) => check(self, (input, _) => f(input)));\n/** @internal */\nexport const whileInputEffect = /*#__PURE__*/dual(2, (self, f) => checkEffect(self, (input, _) => f(input)));\n/** @internal */\nexport const whileOutput = /*#__PURE__*/dual(2, (self, f) => check(self, (_, out) => f(out)));\n/** @internal */\nexport const whileOutputEffect = /*#__PURE__*/dual(2, (self, f) => checkEffect(self, (_, out) => f(out)));\n/** @internal */\nexport const windowed = intervalInput => {\n const interval = Duration.decode(intervalInput);\n const millis = Duration.toMillis(interval);\n return makeWithState([Option.none(), 0], (now, _, [option, n]) => {\n switch (option._tag) {\n case \"None\":\n {\n return core.succeed([[Option.some(now), n + 1], n, ScheduleDecision.continueWith(Interval.after(now + millis))]);\n }\n case \"Some\":\n {\n return core.succeed([[Option.some(option.value), n + 1], n, ScheduleDecision.continueWith(Interval.after(now + (millis - (now - option.value) % millis)))]);\n }\n }\n });\n};\n/** @internal */\nexport const zipLeft = /*#__PURE__*/dual(2, (self, that) => map(intersect(self, that), out => out[0]));\n/** @internal */\nexport const zipRight = /*#__PURE__*/dual(2, (self, that) => map(intersect(self, that), out => out[1]));\n/** @internal */\nexport const zipWith = /*#__PURE__*/dual(3, (self, that, f) => map(intersect(self, that), ([out, out2]) => f(out, out2)));\n// -----------------------------------------------------------------------------\n// Seconds\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const beginningOfSecond = now => {\n const date = new Date(now);\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0).getTime();\n};\n/** @internal */\nexport const endOfSecond = now => {\n const date = new Date(beginningOfSecond(now));\n return date.setSeconds(date.getSeconds() + 1);\n};\n/** @internal */\nexport const nextSecond = (now, second, initial) => {\n const date = new Date(now);\n if (date.getSeconds() === second && initial) {\n return now;\n }\n if (date.getSeconds() < second) {\n return date.setSeconds(second);\n }\n // Set seconds to the provided value and add one minute\n const newDate = new Date(date.setSeconds(second));\n return newDate.setTime(newDate.getTime() + 1000 * 60);\n};\n// -----------------------------------------------------------------------------\n// Minutes\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const beginningOfMinute = now => {\n const date = new Date(now);\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), 0, 0).getTime();\n};\n/** @internal */\nexport const endOfMinute = now => {\n const date = new Date(beginningOfMinute(now));\n return date.setMinutes(date.getMinutes() + 1);\n};\n/** @internal */\nexport const nextMinute = (now, minute, initial) => {\n const date = new Date(now);\n if (date.getMinutes() === minute && initial) {\n return now;\n }\n if (date.getMinutes() < minute) {\n return date.setMinutes(minute);\n }\n // Set minutes to the provided value and add one hour\n const newDate = new Date(date.setMinutes(minute));\n return newDate.setTime(newDate.getTime() + 1000 * 60 * 60);\n};\n// -----------------------------------------------------------------------------\n// Hours\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const beginningOfHour = now => {\n const date = new Date(now);\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), 0, 0, 0).getTime();\n};\n/** @internal */\nexport const endOfHour = now => {\n const date = new Date(beginningOfHour(now));\n return date.setHours(date.getHours() + 1);\n};\n/** @internal */\nexport const nextHour = (now, hour, initial) => {\n const date = new Date(now);\n if (date.getHours() === hour && initial) {\n return now;\n }\n if (date.getHours() < hour) {\n return date.setHours(hour);\n }\n // Set hours to the provided value and add one day\n const newDate = new Date(date.setHours(hour));\n return newDate.setTime(newDate.getTime() + 1000 * 60 * 60 * 24);\n};\n// -----------------------------------------------------------------------------\n// Days\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const beginningOfDay = now => {\n const date = new Date(now);\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0).getTime();\n};\n/** @internal */\nexport const endOfDay = now => {\n const date = new Date(beginningOfDay(now));\n return date.setDate(date.getDate() + 1);\n};\n/** @internal */\nexport const nextDay = (now, dayOfWeek, initial) => {\n const date = new Date(now);\n if (date.getDay() === dayOfWeek && initial) {\n return now;\n }\n const nextDayOfWeek = (7 + dayOfWeek - date.getDay()) % 7;\n return date.setDate(date.getDate() + (nextDayOfWeek === 0 ? 7 : nextDayOfWeek));\n};\n/** @internal */\nexport const nextDayOfMonth = (now, day, initial) => {\n const date = new Date(now);\n if (date.getDate() === day && initial) {\n return now;\n }\n if (date.getDate() < day) {\n return date.setDate(day);\n }\n return findNextMonth(now, day, 1);\n};\n/** @internal */\nexport const findNextMonth = (now, day, months) => {\n const d = new Date(now);\n const tmp1 = new Date(d.setDate(day));\n const tmp2 = new Date(tmp1.setMonth(tmp1.getMonth() + months));\n if (tmp2.getDate() === day) {\n const d2 = new Date(now);\n const tmp3 = new Date(d2.setDate(day));\n return tmp3.setMonth(tmp3.getMonth() + months);\n }\n return findNextMonth(now, day, months + 1);\n};\n// circular with Effect\nconst ScheduleDefectTypeId = /*#__PURE__*/Symbol.for(\"effect/Schedule/ScheduleDefect\");\nclass ScheduleDefect {\n error;\n [ScheduleDefectTypeId];\n constructor(error) {\n this.error = error;\n this[ScheduleDefectTypeId] = ScheduleDefectTypeId;\n }\n}\nconst isScheduleDefect = u => hasProperty(u, ScheduleDefectTypeId);\nconst scheduleDefectWrap = self => core.catchAll(self, e => core.die(new ScheduleDefect(e)));\n/** @internal */\nexport const scheduleDefectRefailCause = cause => Option.match(internalCause.find(cause, _ => internalCause.isDieType(_) && isScheduleDefect(_.defect) ? Option.some(_.defect) : Option.none()), {\n onNone: () => cause,\n onSome: error => internalCause.fail(error.error)\n});\n/** @internal */\nexport const scheduleDefectRefail = effect => core.catchAllCause(effect, cause => core.failCause(scheduleDefectRefailCause(cause)));\n/** @internal */\nexport const repeat_Effect = /*#__PURE__*/dual(2, (self, schedule) => repeatOrElse_Effect(self, schedule, (e, _) => core.fail(e)));\n/** @internal */\nexport const repeat_combined = /*#__PURE__*/dual(2, (self, options) => {\n if (isSchedule(options)) {\n return repeat_Effect(self, options);\n }\n const base = options.schedule ?? passthrough(forever);\n const withWhile = options.while ? whileInputEffect(base, a => {\n const applied = options.while(a);\n if (typeof applied === \"boolean\") {\n return core.succeed(applied);\n }\n return scheduleDefectWrap(applied);\n }) : base;\n const withUntil = options.until ? untilInputEffect(withWhile, a => {\n const applied = options.until(a);\n if (typeof applied === \"boolean\") {\n return core.succeed(applied);\n }\n return scheduleDefectWrap(applied);\n }) : withWhile;\n const withTimes = options.times ? intersect(withUntil, recurs(options.times)).pipe(map(intersectionPair => intersectionPair[0])) : withUntil;\n return scheduleDefectRefail(repeat_Effect(self, withTimes));\n});\n/** @internal */\nexport const repeatOrElse_Effect = /*#__PURE__*/dual(3, (self, schedule, orElse) => core.flatMap(driver(schedule), driver => core.matchEffect(self, {\n onFailure: error => orElse(error, Option.none()),\n onSuccess: value => repeatOrElseEffectLoop(effect.provideServiceEffect(self, CurrentIterationMetadata, ref.get(driver.iterationMeta)), driver, (error, option) => effect.provideServiceEffect(orElse(error, option), CurrentIterationMetadata, ref.get(driver.iterationMeta)), value)\n})));\n/** @internal */\nconst repeatOrElseEffectLoop = (self, driver, orElse, value) => core.matchEffect(driver.next(value), {\n onFailure: () => core.orDie(driver.last),\n onSuccess: b => core.matchEffect(self, {\n onFailure: error => orElse(error, Option.some(b)),\n onSuccess: value => repeatOrElseEffectLoop(self, driver, orElse, value)\n })\n});\n/** @internal */\nexport const retry_Effect = /*#__PURE__*/dual(2, (self, policy) => retryOrElse_Effect(self, policy, (e, _) => core.fail(e)));\n/** @internal */\nexport const retry_combined = /*#__PURE__*/dual(2, (self, options) => {\n if (isSchedule(options)) {\n return retry_Effect(self, options);\n }\n return scheduleDefectRefail(retry_Effect(self, fromRetryOptions(options)));\n});\n/** @internal */\nexport const fromRetryOptions = options => {\n const base = options.schedule ?? forever;\n const withWhile = options.while ? whileInputEffect(base, e => {\n const applied = options.while(e);\n if (typeof applied === \"boolean\") {\n return core.succeed(applied);\n }\n return scheduleDefectWrap(applied);\n }) : base;\n const withUntil = options.until ? untilInputEffect(withWhile, e => {\n const applied = options.until(e);\n if (typeof applied === \"boolean\") {\n return core.succeed(applied);\n }\n return scheduleDefectWrap(applied);\n }) : withWhile;\n return options.times !== undefined ? intersect(withUntil, recurs(options.times)) : withUntil;\n};\n/** @internal */\nexport const retryOrElse_Effect = /*#__PURE__*/dual(3, (self, policy, orElse) => core.flatMap(driver(policy), driver => retryOrElse_EffectLoop(effect.provideServiceEffect(self, CurrentIterationMetadata, ref.get(driver.iterationMeta)), driver, (e, out) => effect.provideServiceEffect(orElse(e, out), CurrentIterationMetadata, ref.get(driver.iterationMeta)))));\n/** @internal */\nconst retryOrElse_EffectLoop = (self, driver, orElse) => {\n return core.catchAll(self, e => core.matchEffect(driver.next(e), {\n onFailure: () => pipe(driver.last, core.orDie, core.flatMap(out => orElse(e, out))),\n onSuccess: () => retryOrElse_EffectLoop(self, driver, orElse)\n }));\n};\n/** @internal */\nexport const schedule_Effect = /*#__PURE__*/dual(2, (self, schedule) => scheduleFrom_Effect(self, void 0, schedule));\n/** @internal */\nexport const scheduleFrom_Effect = /*#__PURE__*/dual(3, (self, initial, schedule) => core.flatMap(driver(schedule), driver => scheduleFrom_EffectLoop(effect.provideServiceEffect(self, CurrentIterationMetadata, ref.get(driver.iterationMeta)), initial, driver)));\n/** @internal */\nconst scheduleFrom_EffectLoop = (self, initial, driver) => core.matchEffect(driver.next(initial), {\n onFailure: () => core.orDie(driver.last),\n onSuccess: () => core.flatMap(self, a => scheduleFrom_EffectLoop(self, a, driver))\n});\n/** @internal */\nexport const count = /*#__PURE__*/unfold(0, n => n + 1);\n/** @internal */\nexport const elapsed = /*#__PURE__*/makeWithState(/*#__PURE__*/Option.none(), (now, _, state) => {\n switch (state._tag) {\n case \"None\":\n {\n return core.succeed([Option.some(now), Duration.zero, ScheduleDecision.continueWith(Interval.after(now))]);\n }\n case \"Some\":\n {\n return core.succeed([Option.some(state.value), Duration.millis(now - state.value), ScheduleDecision.continueWith(Interval.after(now))]);\n }\n }\n});\n/** @internal */\nexport const forever = /*#__PURE__*/unfold(0, n => n + 1);\n/** @internal */\nexport const once = /*#__PURE__*/asVoid(/*#__PURE__*/recurs(1));\n/** @internal */\nexport const stop = /*#__PURE__*/asVoid(/*#__PURE__*/recurs(0));\n/** @internal */\nexport const scheduleForked = /*#__PURE__*/dual(2, (self, schedule) => forkScoped(schedule_Effect(self, schedule)));\n//# sourceMappingURL=schedule.js.map","import * as core from \"./internal/core.js\";\nimport * as internal from \"./internal/deferred.js\";\n/**\n * @since 2.0.0\n * @category symbols\n */\nexport const DeferredTypeId = internal.DeferredTypeId;\n/**\n * Creates a new `Deferred`.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const make = core.deferredMake;\n/**\n * Creates a new `Deferred` from the specified `FiberId`.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const makeAs = core.deferredMakeAs;\nconst _await = core.deferredAwait;\nexport {\n/**\n * Retrieves the value of the `Deferred`, suspending the fiber running the\n * workflow until the result is available.\n *\n * @since 2.0.0\n * @category getters\n */\n_await as await };\n/**\n * Completes the deferred with the result of the specified effect. If the\n * deferred has already been completed, the method will produce false.\n *\n * Note that `Deferred.completeWith` will be much faster, so consider using\n * that if you do not need to memoize the result of the specified effect.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const complete = core.deferredComplete;\n/**\n * Completes the deferred with the result of the specified effect. If the\n * deferred has already been completed, the method will produce false.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const completeWith = core.deferredCompleteWith;\n/**\n * Exits the `Deferred` with the specified `Exit` value, which will be\n * propagated to all fibers waiting on the value of the `Deferred`.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const done = core.deferredDone;\n/**\n * Fails the `Deferred` with the specified error, which will be propagated to\n * all fibers waiting on the value of the `Deferred`.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const fail = core.deferredFail;\n/**\n * Fails the `Deferred` with the specified error, which will be propagated to\n * all fibers waiting on the value of the `Deferred`.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const failSync = core.deferredFailSync;\n/**\n * Fails the `Deferred` with the specified `Cause`, which will be propagated to\n * all fibers waiting on the value of the `Deferred`.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const failCause = core.deferredFailCause;\n/**\n * Fails the `Deferred` with the specified `Cause`, which will be propagated to\n * all fibers waiting on the value of the `Deferred`.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const failCauseSync = core.deferredFailCauseSync;\n/**\n * Kills the `Deferred` with the specified defect, which will be propagated to\n * all fibers waiting on the value of the `Deferred`.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const die = core.deferredDie;\n/**\n * Kills the `Deferred` with the specified defect, which will be propagated to\n * all fibers waiting on the value of the `Deferred`.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const dieSync = core.deferredDieSync;\n/**\n * Completes the `Deferred` with interruption. This will interrupt all fibers\n * waiting on the value of the `Deferred` with the `FiberId` of the fiber\n * calling this method.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const interrupt = core.deferredInterrupt;\n/**\n * Completes the `Deferred` with interruption. This will interrupt all fibers\n * waiting on the value of the `Deferred` with the specified `FiberId`.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const interruptWith = core.deferredInterruptWith;\n/**\n * Returns `true` if this `Deferred` has already been completed with a value or\n * an error, `false` otherwise.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const isDone = core.deferredIsDone;\n/**\n * Returns a `Some>` from the `Deferred` if this `Deferred` has\n * already been completed, `None` otherwise.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const poll = core.deferredPoll;\n/**\n * Completes the `Deferred` with the specified value.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const succeed = core.deferredSucceed;\n/**\n * Completes the `Deferred` with the specified lazily evaluated value.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const sync = core.deferredSync;\n/**\n * Unsafely creates a new `Deferred` from the specified `FiberId`.\n *\n * @since 2.0.0\n * @category unsafe\n */\nexport const unsafeMake = core.deferredUnsafeMake;\n/**\n * Unsafely exits the `Deferred` with the specified `Exit` value, which will be\n * propagated to all fibers waiting on the value of the `Deferred`.\n *\n * @since 2.0.0\n * @category unsafe\n */\nexport const unsafeDone = core.deferredUnsafeDone;\n//# sourceMappingURL=Deferred.js.map","/**\n * @since 2.0.0\n */\nimport * as Dual from \"./Function.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"./Inspectable.js\";\nimport { pipeArguments } from \"./Pipeable.js\";\nconst TypeId = /*#__PURE__*/Symbol.for(\"effect/MutableList\");\nconst MutableListProto = {\n [TypeId]: TypeId,\n [Symbol.iterator]() {\n let done = false;\n let head = this.head;\n return {\n next() {\n if (done) {\n return this.return();\n }\n if (head == null) {\n done = true;\n return this.return();\n }\n const value = head.value;\n head = head.next;\n return {\n done,\n value\n };\n },\n return(value) {\n if (!done) {\n done = true;\n }\n return {\n done: true,\n value\n };\n }\n };\n },\n toString() {\n return format(this.toJSON());\n },\n toJSON() {\n return {\n _id: \"MutableList\",\n values: Array.from(this).map(toJSON)\n };\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\n/** @internal */\nconst makeNode = value => ({\n value,\n removed: false,\n prev: undefined,\n next: undefined\n});\n/**\n * Creates an empty `MutableList`.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const empty = () => {\n const list = Object.create(MutableListProto);\n list.head = undefined;\n list.tail = undefined;\n list._length = 0;\n return list;\n};\n/**\n * Creates a new `MutableList` from an iterable collection of values.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const fromIterable = iterable => {\n const list = empty();\n for (const element of iterable) {\n append(list, element);\n }\n return list;\n};\n/**\n * Creates a new `MutableList` from the specified elements.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const make = (...elements) => fromIterable(elements);\n/**\n * Returns `true` if the list contains zero elements, `false`, otherwise.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const isEmpty = self => length(self) === 0;\n/**\n * Returns the length of the list.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const length = self => self._length;\n/**\n * Returns the last element of the list, if it exists.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const tail = self => self.tail === undefined ? undefined : self.tail.value;\n/**\n * Returns the first element of the list, if it exists.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const head = self => self.head === undefined ? undefined : self.head.value;\n/**\n * Executes the specified function `f` for each element in the list.\n *\n * @since 2.0.0\n * @category traversing\n */\nexport const forEach = /*#__PURE__*/Dual.dual(2, (self, f) => {\n let current = self.head;\n while (current !== undefined) {\n f(current.value);\n current = current.next;\n }\n});\n/**\n * Removes all elements from the doubly-linked list.\n *\n * @since 2.0.0\n */\nexport const reset = self => {\n ;\n self._length = 0;\n self.head = undefined;\n self.tail = undefined;\n return self;\n};\n/**\n * Appends the specified element to the end of the `MutableList`.\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const append = /*#__PURE__*/Dual.dual(2, (self, value) => {\n const node = makeNode(value);\n if (self.head === undefined) {\n self.head = node;\n }\n if (self.tail === undefined) {\n self.tail = node;\n } else {\n self.tail.next = node;\n node.prev = self.tail;\n self.tail = node;\n }\n ;\n self._length += 1;\n return self;\n});\n/**\n * Removes the first value from the list and returns it, if it exists.\n *\n * @since 0.0.1\n */\nexport const shift = self => {\n const head = self.head;\n if (head !== undefined) {\n remove(self, head);\n return head.value;\n }\n return undefined;\n};\n/**\n * Removes the last value from the list and returns it, if it exists.\n *\n * @since 0.0.1\n */\nexport const pop = self => {\n const tail = self.tail;\n if (tail !== undefined) {\n remove(self, tail);\n return tail.value;\n }\n return undefined;\n};\n/**\n * Prepends the specified value to the beginning of the list.\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const prepend = /*#__PURE__*/Dual.dual(2, (self, value) => {\n const node = makeNode(value);\n node.next = self.head;\n if (self.head !== undefined) {\n self.head.prev = node;\n }\n self.head = node;\n if (self.tail === undefined) {\n self.tail = node;\n }\n ;\n self._length += 1;\n return self;\n});\nconst remove = (self, node) => {\n if (node.removed) {\n return;\n }\n node.removed = true;\n if (node.prev !== undefined && node.next !== undefined) {\n node.prev.next = node.next;\n node.next.prev = node.prev;\n } else if (node.prev !== undefined) {\n self.tail = node.prev;\n node.prev.next = undefined;\n } else if (node.next !== undefined) {\n self.head = node.next;\n node.next.prev = undefined;\n } else {\n self.tail = undefined;\n self.head = undefined;\n }\n if (self._length > 0) {\n ;\n self._length -= 1;\n }\n};\n//# sourceMappingURL=MutableList.js.map","/**\n * @since 2.0.0\n */\nimport * as Chunk from \"./Chunk.js\";\nimport * as Dual from \"./Function.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"./Inspectable.js\";\nimport * as MutableList from \"./MutableList.js\";\nimport { pipeArguments } from \"./Pipeable.js\";\nconst TypeId = /*#__PURE__*/Symbol.for(\"effect/MutableQueue\");\n/**\n * @since 2.0.0\n * @category symbol\n */\nexport const EmptyMutableQueue = /*#__PURE__*/Symbol.for(\"effect/mutable/MutableQueue/Empty\");\nconst MutableQueueProto = {\n [TypeId]: TypeId,\n [Symbol.iterator]() {\n return Array.from(this.queue)[Symbol.iterator]();\n },\n toString() {\n return format(this.toJSON());\n },\n toJSON() {\n return {\n _id: \"MutableQueue\",\n values: Array.from(this).map(toJSON)\n };\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\nconst make = capacity => {\n const queue = Object.create(MutableQueueProto);\n queue.queue = MutableList.empty();\n queue.capacity = capacity;\n return queue;\n};\n/**\n * Creates a new bounded `MutableQueue`.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const bounded = capacity => make(capacity);\n/**\n * Creates a new unbounded `MutableQueue`.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const unbounded = () => make(undefined);\n/**\n * Returns the current number of elements in the queue.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const length = self => MutableList.length(self.queue);\n/**\n * Returns `true` if the queue is empty, `false` otherwise.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const isEmpty = self => MutableList.isEmpty(self.queue);\n/**\n * Returns `true` if the queue is full, `false` otherwise.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const isFull = self => self.capacity === undefined ? false : MutableList.length(self.queue) === self.capacity;\n/**\n * The **maximum** number of elements that a queue can hold.\n *\n * **Note**: unbounded queues can still implement this interface with\n * `capacity = Infinity`.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const capacity = self => self.capacity === undefined ? Infinity : self.capacity;\n/**\n * Offers an element to the queue.\n *\n * Returns whether the enqueue was successful or not.\n *\n * @since 2.0.0\n */\nexport const offer = /*#__PURE__*/Dual.dual(2, (self, value) => {\n const queueLength = MutableList.length(self.queue);\n if (self.capacity !== undefined && queueLength === self.capacity) {\n return false;\n }\n MutableList.append(value)(self.queue);\n return true;\n});\n/**\n * Enqueues a collection of values into the queue.\n *\n * Returns a `Chunk` of the values that were **not** able to be enqueued.\n *\n * @since 2.0.0\n */\nexport const offerAll = /*#__PURE__*/Dual.dual(2, (self, values) => {\n const iterator = values[Symbol.iterator]();\n let next;\n let remainder = Chunk.empty();\n let offering = true;\n while (offering && (next = iterator.next()) && !next.done) {\n offering = offer(next.value)(self);\n }\n while (next != null && !next.done) {\n remainder = Chunk.prepend(next.value)(remainder);\n next = iterator.next();\n }\n return Chunk.reverse(remainder);\n});\n/**\n * Dequeues an element from the queue.\n *\n * Returns either an element from the queue, or the `def` param.\n *\n * **Note**: if there is no meaningful default for your type, you can always\n * use `poll(MutableQueue.EmptyMutableQueue)`.\n *\n * @since 2.0.0\n */\nexport const poll = /*#__PURE__*/Dual.dual(2, (self, def) => {\n if (MutableList.isEmpty(self.queue)) {\n return def;\n }\n return MutableList.shift(self.queue);\n});\n/**\n * Dequeues up to `n` elements from the queue.\n *\n * Returns a `List` of up to `n` elements.\n *\n * @since 2.0.0\n */\nexport const pollUpTo = /*#__PURE__*/Dual.dual(2, (self, n) => {\n let result = Chunk.empty();\n let count = 0;\n while (count < n) {\n const element = poll(EmptyMutableQueue)(self);\n if (element === EmptyMutableQueue) {\n break;\n }\n result = Chunk.prepend(element)(result);\n count += 1;\n }\n return Chunk.reverse(result);\n});\n//# sourceMappingURL=MutableQueue.js.map","import * as Context from \"../Context.js\";\nimport * as Deferred from \"../Deferred.js\";\nimport * as Duration from \"../Duration.js\";\nimport * as Either from \"../Either.js\";\nimport * as Equal from \"../Equal.js\";\nimport * as Exit from \"../Exit.js\";\nimport { pipe } from \"../Function.js\";\nimport * as Hash from \"../Hash.js\";\nimport * as MutableHashMap from \"../MutableHashMap.js\";\nimport * as MutableQueue from \"../MutableQueue.js\";\nimport * as MutableRef from \"../MutableRef.js\";\nimport * as Option from \"../Option.js\";\nimport { hasProperty } from \"../Predicate.js\";\nimport * as effect from \"./core-effect.js\";\nimport * as core from \"./core.js\";\nimport * as Data from \"./data.js\";\nimport { none } from \"./fiberId.js\";\nimport * as fiberRuntime from \"./fiberRuntime.js\";\n/** @internal */\nexport const complete = (key, exit, entryStats, timeToLiveMillis) => Data.struct({\n _tag: \"Complete\",\n key,\n exit,\n entryStats,\n timeToLiveMillis\n});\n/** @internal */\nexport const pending = (key, deferred) => Data.struct({\n _tag: \"Pending\",\n key,\n deferred\n});\n/** @internal */\nexport const refreshing = (deferred, complete) => Data.struct({\n _tag: \"Refreshing\",\n deferred,\n complete\n});\n/** @internal */\nexport const MapKeyTypeId = /*#__PURE__*/Symbol.for(\"effect/Cache/MapKey\");\nclass MapKeyImpl {\n current;\n [MapKeyTypeId] = MapKeyTypeId;\n previous = undefined;\n next = undefined;\n constructor(current) {\n this.current = current;\n }\n [Hash.symbol]() {\n return pipe(Hash.hash(this.current), Hash.combine(Hash.hash(this.previous)), Hash.combine(Hash.hash(this.next)), Hash.cached(this));\n }\n [Equal.symbol](that) {\n if (this === that) {\n return true;\n }\n return isMapKey(that) && Equal.equals(this.current, that.current) && Equal.equals(this.previous, that.previous) && Equal.equals(this.next, that.next);\n }\n}\n/** @internal */\nexport const makeMapKey = current => new MapKeyImpl(current);\n/** @internal */\nexport const isMapKey = u => hasProperty(u, MapKeyTypeId);\nclass KeySetImpl {\n head = undefined;\n tail = undefined;\n add(key) {\n if (key !== this.tail) {\n if (this.tail === undefined) {\n this.head = key;\n this.tail = key;\n } else {\n const previous = key.previous;\n const next = key.next;\n if (next !== undefined) {\n key.next = undefined;\n if (previous !== undefined) {\n previous.next = next;\n next.previous = previous;\n } else {\n this.head = next;\n this.head.previous = undefined;\n }\n }\n this.tail.next = key;\n key.previous = this.tail;\n this.tail = key;\n }\n }\n }\n remove() {\n const key = this.head;\n if (key !== undefined) {\n const next = key.next;\n if (next !== undefined) {\n key.next = undefined;\n this.head = next;\n this.head.previous = undefined;\n } else {\n this.head = undefined;\n this.tail = undefined;\n }\n }\n return key;\n }\n}\n/** @internal */\nexport const makeKeySet = () => new KeySetImpl();\n/**\n * Constructs a new `CacheState` from the specified values.\n *\n * @internal\n */\nexport const makeCacheState = (map, keys, accesses, updating, hits, misses) => ({\n map,\n keys,\n accesses,\n updating,\n hits,\n misses\n});\n/**\n * Constructs an initial cache state.\n *\n * @internal\n */\nexport const initialCacheState = () => makeCacheState(MutableHashMap.empty(), makeKeySet(), MutableQueue.unbounded(), MutableRef.make(false), 0, 0);\n/** @internal */\nconst CacheSymbolKey = \"effect/Cache\";\n/** @internal */\nexport const CacheTypeId = /*#__PURE__*/Symbol.for(CacheSymbolKey);\nconst cacheVariance = {\n /* c8 ignore next */\n _Key: _ => _,\n /* c8 ignore next */\n _Error: _ => _,\n /* c8 ignore next */\n _Value: _ => _\n};\n/** @internal */\nconst ConsumerCacheSymbolKey = \"effect/ConsumerCache\";\n/** @internal */\nexport const ConsumerCacheTypeId = /*#__PURE__*/Symbol.for(ConsumerCacheSymbolKey);\nconst consumerCacheVariance = {\n /* c8 ignore next */\n _Key: _ => _,\n /* c8 ignore next */\n _Error: _ => _,\n /* c8 ignore next */\n _Value: _ => _\n};\n/** @internal */\nexport const makeCacheStats = options => options;\n/** @internal */\nexport const makeEntryStats = loadedMillis => ({\n loadedMillis\n});\nclass CacheImpl {\n capacity;\n context;\n fiberId;\n lookup;\n timeToLive;\n [CacheTypeId] = cacheVariance;\n [ConsumerCacheTypeId] = consumerCacheVariance;\n cacheState;\n constructor(capacity, context, fiberId, lookup, timeToLive) {\n this.capacity = capacity;\n this.context = context;\n this.fiberId = fiberId;\n this.lookup = lookup;\n this.timeToLive = timeToLive;\n this.cacheState = initialCacheState();\n }\n get(key) {\n return core.map(this.getEither(key), Either.merge);\n }\n get cacheStats() {\n return core.sync(() => makeCacheStats({\n hits: this.cacheState.hits,\n misses: this.cacheState.misses,\n size: MutableHashMap.size(this.cacheState.map)\n }));\n }\n getOption(key) {\n return core.suspend(() => Option.match(MutableHashMap.get(this.cacheState.map, key), {\n onNone: () => {\n const mapKey = makeMapKey(key);\n this.trackAccess(mapKey);\n this.trackMiss();\n return core.succeed(Option.none());\n },\n onSome: value => this.resolveMapValue(value)\n }));\n }\n getOptionComplete(key) {\n return core.suspend(() => Option.match(MutableHashMap.get(this.cacheState.map, key), {\n onNone: () => {\n const mapKey = makeMapKey(key);\n this.trackAccess(mapKey);\n this.trackMiss();\n return core.succeed(Option.none());\n },\n onSome: value => this.resolveMapValue(value, true)\n }));\n }\n contains(key) {\n return core.sync(() => MutableHashMap.has(this.cacheState.map, key));\n }\n entryStats(key) {\n return core.sync(() => {\n const option = MutableHashMap.get(this.cacheState.map, key);\n if (Option.isSome(option)) {\n switch (option.value._tag) {\n case \"Complete\":\n {\n const loaded = option.value.entryStats.loadedMillis;\n return Option.some(makeEntryStats(loaded));\n }\n case \"Pending\":\n {\n return Option.none();\n }\n case \"Refreshing\":\n {\n const loaded = option.value.complete.entryStats.loadedMillis;\n return Option.some(makeEntryStats(loaded));\n }\n }\n }\n return Option.none();\n });\n }\n getEither(key) {\n return core.suspend(() => {\n const k = key;\n let mapKey = undefined;\n let deferred = undefined;\n let value = Option.getOrUndefined(MutableHashMap.get(this.cacheState.map, k));\n if (value === undefined) {\n deferred = Deferred.unsafeMake(this.fiberId);\n mapKey = makeMapKey(k);\n if (MutableHashMap.has(this.cacheState.map, k)) {\n value = Option.getOrUndefined(MutableHashMap.get(this.cacheState.map, k));\n } else {\n MutableHashMap.set(this.cacheState.map, k, pending(mapKey, deferred));\n }\n }\n if (value === undefined) {\n this.trackAccess(mapKey);\n this.trackMiss();\n return core.map(this.lookupValueOf(key, deferred), Either.right);\n } else {\n return core.flatMap(this.resolveMapValue(value), Option.match({\n onNone: () => this.getEither(key),\n onSome: value => core.succeed(Either.left(value))\n }));\n }\n });\n }\n invalidate(key) {\n return core.sync(() => {\n MutableHashMap.remove(this.cacheState.map, key);\n });\n }\n invalidateWhen(key, when) {\n return core.sync(() => {\n const value = MutableHashMap.get(this.cacheState.map, key);\n if (Option.isSome(value) && value.value._tag === \"Complete\") {\n if (value.value.exit._tag === \"Success\") {\n if (when(value.value.exit.value)) {\n MutableHashMap.remove(this.cacheState.map, key);\n }\n }\n }\n });\n }\n get invalidateAll() {\n return core.sync(() => {\n this.cacheState.map = MutableHashMap.empty();\n });\n }\n refresh(key) {\n return effect.clockWith(clock => core.suspend(() => {\n const k = key;\n const deferred = Deferred.unsafeMake(this.fiberId);\n let value = Option.getOrUndefined(MutableHashMap.get(this.cacheState.map, k));\n if (value === undefined) {\n if (MutableHashMap.has(this.cacheState.map, k)) {\n value = Option.getOrUndefined(MutableHashMap.get(this.cacheState.map, k));\n } else {\n MutableHashMap.set(this.cacheState.map, k, pending(makeMapKey(k), deferred));\n }\n }\n if (value === undefined) {\n return core.asVoid(this.lookupValueOf(key, deferred));\n } else {\n switch (value._tag) {\n case \"Complete\":\n {\n if (this.hasExpired(clock, value.timeToLiveMillis)) {\n const found = Option.getOrUndefined(MutableHashMap.get(this.cacheState.map, k));\n if (Equal.equals(found, value)) {\n MutableHashMap.remove(this.cacheState.map, k);\n }\n return core.asVoid(this.get(key));\n }\n // Only trigger the lookup if we're still the current value, `completedResult`\n return pipe(this.lookupValueOf(key, deferred), effect.when(() => {\n const current = Option.getOrUndefined(MutableHashMap.get(this.cacheState.map, k));\n if (Equal.equals(current, value)) {\n const mapValue = refreshing(deferred, value);\n MutableHashMap.set(this.cacheState.map, k, mapValue);\n return true;\n }\n return false;\n }), core.asVoid);\n }\n case \"Pending\":\n {\n return Deferred.await(value.deferred);\n }\n case \"Refreshing\":\n {\n return Deferred.await(value.deferred);\n }\n }\n }\n }));\n }\n set(key, value) {\n return effect.clockWith(clock => core.sync(() => {\n const now = clock.unsafeCurrentTimeMillis();\n const k = key;\n const lookupResult = Exit.succeed(value);\n const mapValue = complete(makeMapKey(k), lookupResult, makeEntryStats(now), now + Duration.toMillis(Duration.decode(this.timeToLive(lookupResult))));\n MutableHashMap.set(this.cacheState.map, k, mapValue);\n }));\n }\n get size() {\n return core.sync(() => {\n return MutableHashMap.size(this.cacheState.map);\n });\n }\n get values() {\n return core.sync(() => {\n const values = [];\n for (const entry of this.cacheState.map) {\n if (entry[1]._tag === \"Complete\" && entry[1].exit._tag === \"Success\") {\n values.push(entry[1].exit.value);\n }\n }\n return values;\n });\n }\n get entries() {\n return core.sync(() => {\n const values = [];\n for (const entry of this.cacheState.map) {\n if (entry[1]._tag === \"Complete\" && entry[1].exit._tag === \"Success\") {\n values.push([entry[0], entry[1].exit.value]);\n }\n }\n return values;\n });\n }\n get keys() {\n return core.sync(() => {\n const keys = [];\n for (const entry of this.cacheState.map) {\n if (entry[1]._tag === \"Complete\" && entry[1].exit._tag === \"Success\") {\n keys.push(entry[0]);\n }\n }\n return keys;\n });\n }\n resolveMapValue(value, ignorePending = false) {\n return effect.clockWith(clock => {\n switch (value._tag) {\n case \"Complete\":\n {\n this.trackAccess(value.key);\n if (this.hasExpired(clock, value.timeToLiveMillis)) {\n MutableHashMap.remove(this.cacheState.map, value.key.current);\n return core.succeed(Option.none());\n }\n this.trackHit();\n return core.map(value.exit, Option.some);\n }\n case \"Pending\":\n {\n this.trackAccess(value.key);\n this.trackHit();\n if (ignorePending) {\n return core.succeed(Option.none());\n }\n return core.map(Deferred.await(value.deferred), Option.some);\n }\n case \"Refreshing\":\n {\n this.trackAccess(value.complete.key);\n this.trackHit();\n if (this.hasExpired(clock, value.complete.timeToLiveMillis)) {\n if (ignorePending) {\n return core.succeed(Option.none());\n }\n return core.map(Deferred.await(value.deferred), Option.some);\n }\n return core.map(value.complete.exit, Option.some);\n }\n }\n });\n }\n trackHit() {\n this.cacheState.hits = this.cacheState.hits + 1;\n }\n trackMiss() {\n this.cacheState.misses = this.cacheState.misses + 1;\n }\n trackAccess(key) {\n MutableQueue.offer(this.cacheState.accesses, key);\n if (MutableRef.compareAndSet(this.cacheState.updating, false, true)) {\n let loop = true;\n while (loop) {\n const key = MutableQueue.poll(this.cacheState.accesses, MutableQueue.EmptyMutableQueue);\n if (key === MutableQueue.EmptyMutableQueue) {\n loop = false;\n } else {\n this.cacheState.keys.add(key);\n }\n }\n let size = MutableHashMap.size(this.cacheState.map);\n loop = size > this.capacity;\n while (loop) {\n const key = this.cacheState.keys.remove();\n if (key !== undefined) {\n if (MutableHashMap.has(this.cacheState.map, key.current)) {\n MutableHashMap.remove(this.cacheState.map, key.current);\n size = size - 1;\n loop = size > this.capacity;\n }\n } else {\n loop = false;\n }\n }\n MutableRef.set(this.cacheState.updating, false);\n }\n }\n hasExpired(clock, timeToLiveMillis) {\n return clock.unsafeCurrentTimeMillis() > timeToLiveMillis;\n }\n lookupValueOf(input, deferred) {\n return effect.clockWith(clock => core.suspend(() => {\n const key = input;\n return pipe(this.lookup(input), core.provideContext(this.context), core.exit, core.flatMap(exit => {\n const now = clock.unsafeCurrentTimeMillis();\n const stats = makeEntryStats(now);\n const value = complete(makeMapKey(key), exit, stats, now + Duration.toMillis(Duration.decode(this.timeToLive(exit))));\n MutableHashMap.set(this.cacheState.map, key, value);\n return core.zipRight(Deferred.done(deferred, exit), exit);\n }), core.onInterrupt(() => core.zipRight(Deferred.interrupt(deferred), core.sync(() => {\n MutableHashMap.remove(this.cacheState.map, key);\n }))));\n }));\n }\n}\n/** @internal */\nexport const make = options => {\n const timeToLive = Duration.decode(options.timeToLive);\n return makeWith({\n capacity: options.capacity,\n lookup: options.lookup,\n timeToLive: () => timeToLive\n });\n};\n/** @internal */\nexport const makeWith = options => core.map(fiberRuntime.all([core.context(), core.fiberId]), ([context, fiberId]) => new CacheImpl(options.capacity, context, fiberId, options.lookup, exit => Duration.decode(options.timeToLive(exit))));\n/** @internal */\nexport const unsafeMakeWith = (capacity, lookup, timeToLive) => new CacheImpl(capacity, Context.empty(), none, lookup, exit => Duration.decode(timeToLive(exit)));\n//# sourceMappingURL=cache.js.map","import { dual } from \"./Function.js\";\nimport * as internalCause from \"./internal/cause.js\";\nimport * as console_ from \"./internal/console.js\";\nimport { TagProto } from \"./internal/context.js\";\nimport * as effect from \"./internal/core-effect.js\";\nimport * as core from \"./internal/core.js\";\nimport * as defaultServices from \"./internal/defaultServices.js\";\nimport * as circular from \"./internal/effect/circular.js\";\nimport * as internalExecutionPlan from \"./internal/executionPlan.js\";\nimport * as fiberRuntime from \"./internal/fiberRuntime.js\";\nimport * as layer from \"./internal/layer.js\";\nimport * as option_ from \"./internal/option.js\";\nimport * as query from \"./internal/query.js\";\nimport * as runtime_ from \"./internal/runtime.js\";\nimport * as schedule_ from \"./internal/schedule.js\";\nimport * as internalTracer from \"./internal/tracer.js\";\nimport * as Random from \"./Random.js\";\nimport * as Request from \"./Request.js\";\nimport * as Scheduler from \"./Scheduler.js\";\nimport { isGeneratorFunction } from \"./Utils.js\";\n/**\n * @since 2.0.0\n * @category Symbols\n */\nexport const EffectTypeId = core.EffectTypeId;\n/**\n * Checks if a given value is an `Effect` value.\n *\n * **When to Use**\n *\n * This function can be useful for checking the type of a value before\n * attempting to operate on it as an `Effect` value. For example, you could use\n * `Effect.isEffect` to check the type of a value before using it as an argument\n * to a function that expects an `Effect` value.\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isEffect = core.isEffect;\n/**\n * Returns an effect that caches its result for a specified `Duration`,\n * known as \"timeToLive\" (TTL).\n *\n * **Details**\n *\n * This function is used to cache the result of an effect for a specified amount\n * of time. This means that the first time the effect is evaluated, its result\n * is computed and stored.\n *\n * If the effect is evaluated again within the specified `timeToLive`, the\n * cached result will be used, avoiding recomputation.\n *\n * After the specified duration has passed, the cache expires, and the effect\n * will be recomputed upon the next evaluation.\n *\n * **When to Use**\n *\n * Use this function when you have an effect that involves costly operations or\n * computations, and you want to avoid repeating them within a short time frame.\n *\n * It's ideal for scenarios where the result of an effect doesn't change\n * frequently and can be reused for a specified duration.\n *\n * By caching the result, you can improve efficiency and reduce unnecessary\n * computations, especially in performance-critical applications.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * let i = 1\n * const expensiveTask = Effect.promise(() => {\n * console.log(\"expensive task...\")\n * return new Promise((resolve) => {\n * setTimeout(() => {\n * resolve(`result ${i++}`)\n * }, 100)\n * })\n * })\n *\n * const program = Effect.gen(function* () {\n * const cached = yield* Effect.cachedWithTTL(expensiveTask, \"150 millis\")\n * yield* cached.pipe(Effect.andThen(Console.log))\n * yield* cached.pipe(Effect.andThen(Console.log))\n * yield* Effect.sleep(\"100 millis\")\n * yield* cached.pipe(Effect.andThen(Console.log))\n * })\n *\n * Effect.runFork(program)\n * // Output:\n * // expensive task...\n * // result 1\n * // result 1\n * // expensive task...\n * // result 2\n * ```\n *\n * @see {@link cached} for a similar function that caches the result\n * indefinitely.\n * @see {@link cachedInvalidateWithTTL} for a similar function that includes an\n * additional effect for manually invalidating the cached value.\n *\n * @since 2.0.0\n * @category Caching\n */\nexport const cachedWithTTL = circular.cached;\n/**\n * Caches an effect's result for a specified duration and allows manual\n * invalidation before expiration.\n *\n * **Details**\n *\n * This function behaves similarly to {@link cachedWithTTL} by caching the\n * result of an effect for a specified period of time. However, it introduces an\n * additional feature: it provides an effect that allows you to manually\n * invalidate the cached result before it naturally expires.\n *\n * This gives you more control over the cache, allowing you to refresh the\n * result when needed, even if the original cache has not yet expired.\n *\n * Once the cache is invalidated, the next time the effect is evaluated, the\n * result will be recomputed, and the cache will be refreshed.\n *\n * **When to Use**\n *\n * Use this function when you have an effect whose result needs to be cached for\n * a certain period, but you also want the option to refresh the cache manually\n * before the expiration time.\n *\n * This is useful when you need to ensure that the cached data remains valid for\n * a certain period but still want to invalidate it if the underlying data\n * changes or if you want to force a recomputation.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * let i = 1\n * const expensiveTask = Effect.promise(() => {\n * console.log(\"expensive task...\")\n * return new Promise((resolve) => {\n * setTimeout(() => {\n * resolve(`result ${i++}`)\n * }, 100)\n * })\n * })\n *\n * const program = Effect.gen(function* () {\n * const [cached, invalidate] = yield* Effect.cachedInvalidateWithTTL(\n * expensiveTask,\n * \"1 hour\"\n * )\n * yield* cached.pipe(Effect.andThen(Console.log))\n * yield* cached.pipe(Effect.andThen(Console.log))\n * yield* invalidate\n * yield* cached.pipe(Effect.andThen(Console.log))\n * })\n *\n * Effect.runFork(program)\n * // Output:\n * // expensive task...\n * // result 1\n * // result 1\n * // expensive task...\n * // result 2\n * ```\n *\n * @see {@link cached} for a similar function that caches the result\n * indefinitely.\n * @see {@link cachedWithTTL} for a similar function that caches the result for\n * a specified duration but does not include an effect for manual invalidation.\n *\n * @since 2.0.0\n * @category Caching\n */\nexport const cachedInvalidateWithTTL = circular.cachedInvalidateWithTTL;\n/**\n * Returns an effect that lazily computes a result and caches it for subsequent\n * evaluations.\n *\n * **Details**\n *\n * This function wraps an effect and ensures that its result is computed only\n * once. Once the result is computed, it is cached, meaning that subsequent\n * evaluations of the same effect will return the cached result without\n * re-executing the logic.\n *\n * **When to Use**\n *\n * Use this function when you have an expensive or time-consuming operation that\n * you want to avoid repeating. The first evaluation will compute the result,\n * and all following evaluations will immediately return the cached value,\n * improving performance and reducing unnecessary work.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * let i = 1\n * const expensiveTask = Effect.promise(() => {\n * console.log(\"expensive task...\")\n * return new Promise((resolve) => {\n * setTimeout(() => {\n * resolve(`result ${i++}`)\n * }, 100)\n * })\n * })\n *\n * const program = Effect.gen(function* () {\n * console.log(\"non-cached version:\")\n * yield* expensiveTask.pipe(Effect.andThen(Console.log))\n * yield* expensiveTask.pipe(Effect.andThen(Console.log))\n * console.log(\"cached version:\")\n * const cached = yield* Effect.cached(expensiveTask)\n * yield* cached.pipe(Effect.andThen(Console.log))\n * yield* cached.pipe(Effect.andThen(Console.log))\n * })\n *\n * Effect.runFork(program)\n * // Output:\n * // non-cached version:\n * // expensive task...\n * // result 1\n * // expensive task...\n * // result 2\n * // cached version:\n * // expensive task...\n * // result 3\n * // result 3\n * ```\n *\n * @see {@link cachedWithTTL} for a similar function that includes a\n * time-to-live duration for the cached value.\n * @see {@link cachedInvalidateWithTTL} for a similar function that includes an\n * additional effect for manually invalidating the cached value.\n *\n * @since 2.0.0\n * @category Caching\n */\nexport const cached = effect.memoize;\n/**\n * Returns a memoized version of a function with effects, reusing results for\n * the same inputs.\n *\n * **Details**\n *\n * This function creates a memoized version of a given function that performs an\n * effect. Memoization ensures that once a result is computed for a specific\n * input, it is stored and reused for subsequent calls with the same input,\n * reducing the need to recompute the result.\n *\n * The function can optionally take an `Equivalence` parameter to\n * determine how inputs are compared for caching purposes.\n *\n * **When to Use**\n *\n * Use this function when you have a function that performs an effect and you\n * want to avoid recomputing the result for the same input multiple times.\n *\n * It's ideal for functions that produce deterministic results based on their\n * inputs, and you want to improve performance by caching the output.\n *\n * This is particularly useful in scenarios where the function involves\n * expensive calculations or operations that should be avoided after the first\n * execution with the same parameters.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Random } from \"effect\"\n *\n * const program = Effect.gen(function* () {\n * const randomNumber = (n: number) => Random.nextIntBetween(1, n)\n * console.log(\"non-memoized version:\")\n * console.log(yield* randomNumber(10))\n * console.log(yield* randomNumber(10))\n *\n * console.log(\"memoized version:\")\n * const memoized = yield* Effect.cachedFunction(randomNumber)\n * console.log(yield* memoized(10))\n * console.log(yield* memoized(10))\n * })\n *\n * Effect.runFork(program)\n * // Example Output:\n * // non-memoized version:\n * // 2\n * // 8\n * // memoized version:\n * // 5\n * // 5\n * ```\n *\n * @since 2.0.0\n * @category Caching\n */\nexport const cachedFunction = circular.cachedFunction;\n/**\n * Returns an effect that executes only once, regardless of how many times it's\n * called.\n *\n * **Details**\n *\n * This function ensures that a specific effect is executed only a single time,\n * no matter how many times it is invoked. The result of the effect will be\n * cached, and subsequent calls to the effect will immediately return the cached\n * result without re-executing the original logic.\n *\n * **When to Use**\n *\n * Use this function when you need to perform a task only once, regardless of\n * how many times the effect is triggered. It's particularly useful when you\n * have initialization tasks, logging, or other one-time actions that should not\n * be repeated. This can help optimize performance and avoid redundant actions.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const program = Effect.gen(function* () {\n * const task1 = Console.log(\"task1\")\n * yield* Effect.repeatN(task1, 2)\n * const task2 = yield* Effect.once(Console.log(\"task2\"))\n * yield* Effect.repeatN(task2, 2)\n * })\n *\n * Effect.runFork(program)\n * // Output:\n * // task1\n * // task1\n * // task1\n * // task2\n * ```\n *\n * @since 2.0.0\n * @category Caching\n */\nexport const once = effect.once;\n/**\n * Combines multiple effects into one, returning results based on the input\n * structure.\n *\n * **Details**\n *\n * Use this function when you need to run multiple effects and combine their\n * results into a single output. It supports tuples, iterables, structs, and\n * records, making it flexible for different input types.\n *\n * For instance, if the input is a tuple:\n *\n * ```ts skip-type-checking\n * // ┌─── a tuple of effects\n * // ▼\n * Effect.all([effect1, effect2, ...])\n * ```\n *\n * the effects are executed sequentially, and the result is a new effect\n * containing the results as a tuple. The results in the tuple match the order\n * of the effects passed to `Effect.all`.\n *\n * **Concurrency**\n *\n * You can control the execution order (e.g., sequential vs. concurrent) using\n * the `concurrency` option.\n *\n * **Short-Circuiting Behavior**\n *\n * This function stops execution on the first error it encounters, this is\n * called \"short-circuiting\". If any effect in the collection fails, the\n * remaining effects will not run, and the error will be propagated. To change\n * this behavior, you can use the `mode` option, which allows all effects to run\n * and collect results as `Either` or `Option`.\n *\n * **The `mode` option**\n *\n * The `{ mode: \"either\" }` option changes the behavior of `Effect.all` to\n * ensure all effects run, even if some fail. Instead of stopping on the first\n * failure, this mode collects both successes and failures, returning an array\n * of `Either` instances where each result is either a `Right` (success) or a\n * `Left` (failure).\n *\n * Similarly, the `{ mode: \"validate\" }` option uses `Option` to indicate\n * success or failure. Each effect returns `None` for success and `Some` with\n * the error for failure.\n *\n * **Example** (Combining Effects in Tuples)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const tupleOfEffects = [\n * Effect.succeed(42).pipe(Effect.tap(Console.log)),\n * Effect.succeed(\"Hello\").pipe(Effect.tap(Console.log))\n * ] as const\n *\n * // ┌─── Effect<[number, string], never, never>\n * // ▼\n * const resultsAsTuple = Effect.all(tupleOfEffects)\n *\n * Effect.runPromise(resultsAsTuple).then(console.log)\n * // Output:\n * // 42\n * // Hello\n * // [ 42, 'Hello' ]\n * ```\n *\n * **Example** (Combining Effects in Iterables)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const iterableOfEffects: Iterable> = [1, 2, 3].map(\n * (n) => Effect.succeed(n).pipe(Effect.tap(Console.log))\n * )\n *\n * // ┌─── Effect\n * // ▼\n * const resultsAsArray = Effect.all(iterableOfEffects)\n *\n * Effect.runPromise(resultsAsArray).then(console.log)\n * // Output:\n * // 1\n * // 2\n * // 3\n * // [ 1, 2, 3 ]\n * ```\n *\n * **Example** (Combining Effects in Structs)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const structOfEffects = {\n * a: Effect.succeed(42).pipe(Effect.tap(Console.log)),\n * b: Effect.succeed(\"Hello\").pipe(Effect.tap(Console.log))\n * }\n *\n * // ┌─── Effect<{ a: number; b: string; }, never, never>\n * // ▼\n * const resultsAsStruct = Effect.all(structOfEffects)\n *\n * Effect.runPromise(resultsAsStruct).then(console.log)\n * // Output:\n * // 42\n * // Hello\n * // { a: 42, b: 'Hello' }\n * ```\n *\n * **Example** (Combining Effects in Records)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const recordOfEffects: Record> = {\n * key1: Effect.succeed(1).pipe(Effect.tap(Console.log)),\n * key2: Effect.succeed(2).pipe(Effect.tap(Console.log))\n * }\n *\n * // ┌─── Effect<{ [x: string]: number; }, never, never>\n * // ▼\n * const resultsAsRecord = Effect.all(recordOfEffects)\n *\n * Effect.runPromise(resultsAsRecord).then(console.log)\n * // Output:\n * // 1\n * // 2\n * // { key1: 1, key2: 2 }\n * ```\n *\n * **Example** (Short-Circuiting Behavior)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const program = Effect.all([\n * Effect.succeed(\"Task1\").pipe(Effect.tap(Console.log)),\n * Effect.fail(\"Task2: Oh no!\").pipe(Effect.tap(Console.log)),\n * // Won't execute due to earlier failure\n * Effect.succeed(\"Task3\").pipe(Effect.tap(Console.log))\n * ])\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // Task1\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: { _id: 'Cause', _tag: 'Fail', failure: 'Task2: Oh no!' }\n * // }\n * ```\n *\n * **Example** (Collecting Results with `mode: \"either\"`)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const effects = [\n * Effect.succeed(\"Task1\").pipe(Effect.tap(Console.log)),\n * Effect.fail(\"Task2: Oh no!\").pipe(Effect.tap(Console.log)),\n * Effect.succeed(\"Task3\").pipe(Effect.tap(Console.log))\n * ]\n *\n * const program = Effect.all(effects, { mode: \"either\" })\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // Task1\n * // Task3\n * // {\n * // _id: 'Exit',\n * // _tag: 'Success',\n * // value: [\n * // { _id: 'Either', _tag: 'Right', right: 'Task1' },\n * // { _id: 'Either', _tag: 'Left', left: 'Task2: Oh no!' },\n * // { _id: 'Either', _tag: 'Right', right: 'Task3' }\n * // ]\n * // }\n * ```\n *\n * **Example** (Collecting Results with `mode: \"validate\"`)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const effects = [\n * Effect.succeed(\"Task1\").pipe(Effect.tap(Console.log)),\n * Effect.fail(\"Task2: Oh no!\").pipe(Effect.tap(Console.log)),\n * Effect.succeed(\"Task3\").pipe(Effect.tap(Console.log))\n * ]\n *\n * const program = Effect.all(effects, { mode: \"validate\" })\n *\n * Effect.runPromiseExit(program).then((result) => console.log(\"%o\", result))\n * // Output:\n * // Task1\n * // Task3\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Fail',\n * // failure: [\n * // { _id: 'Option', _tag: 'None' },\n * // { _id: 'Option', _tag: 'Some', value: 'Task2: Oh no!' },\n * // { _id: 'Option', _tag: 'None' }\n * // ]\n * // }\n * // }\n * ```\n *\n * @see {@link forEach} for iterating over elements and applying an effect.\n * @see {@link allWith} for a data-last version of this function.\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const all = fiberRuntime.all;\n/**\n * A data-last version of {@link all}, designed for use in pipelines.\n *\n * **When to Use**\n *\n * This function enables you to combine multiple effects and customize execution\n * options such as concurrency levels. This version is useful in functional\n * pipelines where you first define your data and then apply operations to it.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, pipe } from \"effect\"\n *\n * const task1 = Effect.succeed(1).pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Effect.log(\"task1 done\"))\n * )\n *\n * const task2 = Effect.succeed(\"hello\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Effect.log(\"task2 done\"))\n * )\n *\n * const program = pipe(\n * [task1, task2],\n * // Run both effects concurrently using the concurrent option\n * Effect.allWith({ concurrency: 2 })\n * )\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // timestamp=... level=INFO fiber=#3 message=\"task2 done\"\n * // timestamp=... level=INFO fiber=#2 message=\"task1 done\"\n * // [ 1, 'hello' ]\n * ```\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const allWith = fiberRuntime.allWith;\n/**\n * Evaluates and runs each effect in the iterable, collecting only the\n * successful results while discarding failures.\n *\n * **Details**\n *\n * This function function processes an iterable of effects and runs each one. If\n * an effect is successful, its result is collected; if it fails, the result is\n * discarded. This ensures that only successful outcomes are kept.\n *\n * **Options**\n *\n * The function also allows you to customize how the effects are handled by\n * specifying options such as concurrency, batching, and how finalizers behave.\n * These options provide flexibility in running the effects concurrently or\n * adjusting other execution details.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const tasks = [\n * Effect.succeed(1),\n * Effect.fail(\"Error 1\"),\n * Effect.succeed(2),\n * Effect.fail(\"Error 2\")\n * ]\n *\n * const program = Effect.gen(function*() {\n * const successfulResults = yield* Effect.allSuccesses(tasks)\n * console.log(successfulResults)\n * })\n *\n * Effect.runFork(program)\n * // Output: [1, 2]\n *\n * ```\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const allSuccesses = fiberRuntime.allSuccesses;\n/**\n * Drops elements until the effectful predicate returns `true`.\n *\n * **Details**\n *\n * This function processes a collection of elements and uses an effectful\n * predicate to determine when to stop dropping elements. It drops elements from\n * the beginning of the collection until the predicate returns `true`.\n *\n * The predicate is a function that takes an element and its index in the\n * collection and returns an effect that evaluates to a boolean.\n *\n * Once the predicate returns `true`, the remaining elements of the collection\n * are returned.\n *\n * **Note**: The first element for which the predicate returns `true` is also\n * dropped.\n *\n * **When to Use**\n *\n * This function allows you to conditionally skip over a part of the collection\n * based on some criteria defined in the predicate.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const numbers = [1, 2, 3, 4, 5, 6]\n * const predicate = (n: number, i: number) => Effect.succeed(n > 3)\n *\n * const program = Effect.gen(function*() {\n * const result = yield* Effect.dropUntil(numbers, predicate)\n * console.log(result)\n * })\n *\n * Effect.runFork(program)\n * // Output: [5, 6]\n * ```\n *\n * @see {@link dropWhile} for a similar function that drops elements while the\n * predicate returns `true`.\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const dropUntil = effect.dropUntil;\n/**\n * Drops elements as long as the predicate returns `true`.\n *\n * **Details**\n *\n * This function processes a collection of elements and uses a predicate to\n * decide whether to drop an element.\n *\n * The predicate is a function that takes an element and its index, and it\n * returns an effect that evaluates to a boolean.\n *\n * As long as the predicate returns `true`, elements will continue to be dropped\n * from the collection.\n *\n * Once the predicate returns `false`, the remaining elements are kept.\n *\n * **When to Use**\n *\n * This function allows you to discard elements from the start of a collection\n * based on a condition, and only keep the rest when the condition no longer\n * holds.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const numbers = [1, 2, 3, 4, 5, 6]\n * const predicate = (n: number, i: number) => Effect.succeed(n <= 3)\n *\n * const program = Effect.gen(function*() {\n * const result = yield* Effect.dropWhile(numbers, predicate)\n * console.log(result)\n * })\n *\n * Effect.runFork(program)\n * // Output: [4, 5, 6]\n * ```\n *\n * @see {@link dropUntil} for a similar function that drops elements until the\n * predicate returns `true`.\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const dropWhile = effect.dropWhile;\n/**\n * Takes elements from a collection until the effectful predicate returns\n * `true`.\n *\n * **Details**\n *\n * This function processes a collection of elements and uses an effectful\n * predicate to decide when to stop taking elements. The elements are taken from\n * the beginning of the collection until the predicate returns `true`.\n *\n * The predicate is a function that takes an element and its index in the\n * collection, and returns an effect that resolves to a boolean.\n *\n * Once the predicate returns `true`, the remaining elements of the collection\n * are discarded, and the function stops taking more elements.\n *\n * **Note**: The first element for which the predicate returns `true` is also\n * included in the result.\n *\n * **When to Use**\n *\n * Use this function when you want to conditionally take elements from a\n * collection based on a dynamic condition. For example, you may want to collect\n * numbers from a list until a certain threshold is reached, or gather items\n * until a specific condition is met.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const numbers = [1, 2, 3, 4, 5, 6]\n * const predicate = (n: number, i: number) => Effect.succeed(n > 3)\n *\n * const program = Effect.gen(function*() {\n * const result = yield* Effect.takeUntil(numbers, predicate)\n * console.log(result)\n * })\n *\n * Effect.runFork(program)\n * // Output: [ 1, 2, 3, 4 ]\n * ```\n *\n * @see {@link takeWhile} for a similar function that takes elements while the\n * predicate returns `true`.\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const takeUntil = effect.takeUntil;\n/**\n * Takes elements as long as the predicate returns `true`.\n *\n * **Details**\n *\n * This function processes a collection of elements and uses a predicate to\n * decide whether to take an element.\n *\n * The predicate is a function that takes an element and its index, and it\n * returns an effect that evaluates to a boolean.\n *\n * As long as the predicate returns `true`, elements will continue to be taken\n * from the collection.\n *\n * Once the predicate returns `false`, the remaining elements are discarded.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const numbers = [1, 2, 3, 4, 5, 6]\n * const predicate = (n: number, i: number) => Effect.succeed(n <= 3)\n *\n * const program = Effect.gen(function*() {\n * const result = yield* Effect.takeWhile(numbers, predicate)\n * console.log(result)\n * })\n *\n * Effect.runFork(program)\n * // Output: [1, 2, 3]\n * ```\n *\n * @see {@link takeUntil} for a similar function that takes elements until the predicate returns `true`.\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const takeWhile = effect.takeWhile;\n/**\n * Determines whether all elements of the iterable satisfy the effectful\n * predicate.\n *\n * **Details**\n *\n * This function checks whether every element in a given collection (an\n * iterable) satisfies a condition defined by an effectful predicate.\n *\n * The predicate is a function that takes an element and its index, and it\n * returns an effect that evaluates to a boolean.\n *\n * The function will process each element and return `true` if all elements\n * satisfy the predicate; otherwise, it returns `false`.\n *\n * **When to Use**\n *\n * This function is useful when you need to verify that all items in a\n * collection meet certain criteria, even when the evaluation of each item\n * involves effects, such as asynchronous checks or complex computations.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const numbers = [2, 4, 6, 8]\n * const predicate = (n: number, i: number) => Effect.succeed(n % 2 === 0)\n *\n * const program = Effect.gen(function*() {\n * const allEven = yield* Effect.every(numbers, predicate)\n * console.log(allEven)\n * })\n *\n * Effect.runFork(program)\n * // Output: true\n * ```\n *\n * @see {@link exists} for a similar function that returns a boolean indicating\n * whether **any** element satisfies the predicate.\n *\n * @since 2.0.0\n * @category Condition Checking\n */\nexport const every = effect.every;\n/**\n * Determines whether any element of the iterable satisfies the effectual\n * predicate.\n *\n * **Details**\n *\n * This function checks whether any element in a given collection (an iterable)\n * satisfies a condition defined by an effectful predicate.\n *\n * The predicate is a function that takes an element and its index, and it\n * returns an effect that evaluates to a boolean.\n *\n * The function will process each element, and if any element satisfies the\n * predicate (returns `true`), the function will immediately return `true`.\n *\n * If none of the elements satisfy the condition, it will return `false`.\n *\n * **When to Use**\n *\n * This function allows you to quickly check for a condition in a collection\n * without having to manually iterate over it.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const numbers = [1, 2, 3, 4]\n * const predicate = (n: number, i: number) => Effect.succeed(n > 2)\n *\n * const program = Effect.gen(function*() {\n * const hasLargeNumber = yield* Effect.exists(numbers, predicate)\n * console.log(hasLargeNumber)\n * })\n *\n * Effect.runFork(program)\n * // Output: true\n * ```\n *\n * @see {@link every} for a similar function that checks if **all** elements\n * satisfy the predicate.\n *\n * @since 2.0.0\n * @category Condition Checking\n */\nexport const exists = fiberRuntime.exists;\n/**\n * Filters an iterable using the specified effectful predicate.\n *\n * **Details**\n *\n * This function filters a collection (an iterable) by applying an effectful\n * predicate.\n *\n * The predicate is a function that takes an element and its index, and it\n * returns an effect that evaluates to a boolean.\n *\n * The function processes each element in the collection and keeps only those\n * that satisfy the condition defined by the predicate.\n *\n * **Options**\n *\n * You can also adjust the behavior with options such as concurrency, batching,\n * or whether to negate the condition.\n *\n * **When to Use**\n *\n * This function allows you to selectively keep or remove elements based on a\n * condition that may involve asynchronous or side-effect-causing operations.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const numbers = [1, 2, 3, 4, 5]\n * const predicate = (n: number, i: number) => Effect.succeed(n % 2 === 0)\n *\n * const program = Effect.gen(function*() {\n * const result = yield* Effect.filter(numbers, predicate)\n * console.log(result)\n * })\n *\n * Effect.runFork(program)\n * // Output: [2, 4]\n * ```\n *\n * @since 2.0.0\n * @category Filtering\n */\nexport const filter = fiberRuntime.filter;\n/**\n * Filters and maps elements sequentially in one operation.\n *\n * This function processes each element one by one. It applies a function that\n * returns an `Option` to each element. If the function returns `Some`, the\n * element is kept; if it returns `None`, the element is removed. The operation\n * is done sequentially for each element.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect, Option } from \"effect\"\n *\n * const task = (n: number) =>\n * Effect.succeed(n).pipe(\n * Effect.delay(1000 - (n * 100)),\n * Effect.tap(Console.log(`task${n} done`))\n * )\n *\n * const program = Effect.filterMap(\n * [task(1), task(2), task(3), task(4)],\n * (n) => n % 2 === 0 ? Option.some(n) : Option.none()\n * )\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // task1 done\n * // task2 done\n * // task3 done\n * // task4 done\n * // [ 2, 4 ]\n * ```\n *\n * @since 2.0.0\n * @category Filtering\n */\nexport const filterMap = effect.filterMap;\n/**\n * Returns the first element that satisfies the effectful predicate.\n *\n * **Details**\n *\n * This function processes a collection of elements and applies an effectful\n * predicate to each element.\n *\n * The predicate is a function that takes an element and its index in the\n * collection, and it returns an effect that evaluates to a boolean.\n *\n * The function stops as soon as it finds the first element for which the\n * predicate returns `true` and returns that element wrapped in an `Option`.\n *\n * If no element satisfies the predicate, the result will be `None`.\n *\n * **When to Use**\n *\n * This function allows you to efficiently find an element that meets a specific\n * condition, even when the evaluation involves effects like asynchronous\n * operations or side effects.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const numbers = [1, 2, 3, 4, 5]\n * const predicate = (n: number, i: number) => Effect.succeed(n > 3)\n *\n * const program = Effect.gen(function*() {\n * const result = yield* Effect.findFirst(numbers, predicate)\n * console.log(result)\n * })\n *\n * Effect.runFork(program)\n * // Output: { _id: 'Option', _tag: 'Some', value: 4 }\n * ```\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const findFirst = effect.findFirst;\n/**\n * Executes an effectful operation for each element in an `Iterable`.\n *\n * **Details**\n *\n * This function applies a provided operation to each element in the iterable,\n * producing a new effect that returns an array of results.\n *\n * If any effect fails, the iteration stops immediately (short-circuiting), and\n * the error is propagated.\n *\n * **Concurrency**\n *\n * The `concurrency` option controls how many operations are performed\n * concurrently. By default, the operations are performed sequentially.\n *\n * **Discarding Results**\n *\n * If the `discard` option is set to `true`, the intermediate results are not\n * collected, and the final result of the operation is `void`.\n *\n * **Example** (Applying Effects to Iterable Elements)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const result = Effect.forEach([1, 2, 3, 4, 5], (n, index) =>\n * Console.log(`Currently at index ${index}`).pipe(Effect.as(n * 2))\n * )\n *\n * Effect.runPromise(result).then(console.log)\n * // Output:\n * // Currently at index 0\n * // Currently at index 1\n * // Currently at index 2\n * // Currently at index 3\n * // Currently at index 4\n * // [ 2, 4, 6, 8, 10 ]\n * ```\n *\n * **Example** (Discarding Results)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // Apply effects but discard the results\n * const result = Effect.forEach(\n * [1, 2, 3, 4, 5],\n * (n, index) =>\n * Console.log(`Currently at index ${index}`).pipe(Effect.as(n * 2)),\n * { discard: true }\n * )\n *\n * Effect.runPromise(result).then(console.log)\n * // Output:\n * // Currently at index 0\n * // Currently at index 1\n * // Currently at index 2\n * // Currently at index 3\n * // Currently at index 4\n * // undefined\n * ```\n *\n * @see {@link all} for combining multiple effects into one.\n *\n * @since 2.0.0\n * @category Looping\n */\nexport const forEach = fiberRuntime.forEach;\n/**\n * Returns the first element of the iterable if the collection is non-empty, or\n * fails with the error `NoSuchElementException` if the collection is empty.\n *\n * **When to Use**\n *\n * This function is useful when you need to retrieve the first item from a\n * collection and want to handle the case where the collection might be empty\n * without causing an unhandled exception.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // Simulate an async operation\n * const fetchNumbers = Effect.succeed([1, 2, 3]).pipe(Effect.delay(\"100 millis\"))\n *\n * const program = Effect.gen(function*() {\n * const firstElement = yield* Effect.head(fetchNumbers)\n * console.log(firstElement)\n * })\n *\n * Effect.runFork(program)\n * // Output: 1\n * ```\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const head = effect.head;\n/**\n * Merges an `Iterable>` to a single effect.\n *\n * **Details**\n *\n * This function takes an iterable of effects and combines them into a single\n * effect. It does this by iterating over each effect in the collection and\n * applying a function that accumulates results into a \"zero\" value, which\n * starts with an initial value and is updated with each effect's success.\n *\n * The provided function `f` is called for each element in the iterable,\n * allowing you to specify how to combine the results.\n *\n * **Options**\n *\n * The function also allows you to customize how the effects are handled by\n * specifying options such as concurrency, batching, and how finalizers behave.\n * These options provide flexibility in running the effects concurrently or\n * adjusting other execution details.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const numbers = [Effect.succeed(1), Effect.succeed(2), Effect.succeed(3)]\n * const add = (sum: number, value: number, i: number) => sum + value\n * const zero = 0\n *\n * const program = Effect.gen(function*() {\n * const total = yield* Effect.mergeAll(numbers, zero, add)\n * console.log(total)\n * })\n *\n * Effect.runFork(program)\n * // Output: 6\n * ```\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const mergeAll = fiberRuntime.mergeAll;\n/**\n * Processes an iterable and applies an effectful function to each element,\n * categorizing the results into successes and failures.\n *\n * **Details**\n *\n * This function processes each element in the provided iterable by applying an\n * effectful function to it. The results are then categorized into two separate\n * lists: one for failures and another for successes. This separation allows you\n * to handle the two categories differently. Failures are collected in a list\n * without interrupting the processing of the remaining elements, so the\n * operation continues even if some elements fail. This is particularly useful\n * when you need to handle both successful and failed results separately,\n * without stopping the entire process on encountering a failure.\n *\n * **When to Use**\n *\n * Use this function when you want to process a collection of items and handle\n * errors or failures without interrupting the processing of other items. It's\n * useful when you need to distinguish between successful and failed results and\n * process them separately, for example, when logging errors while continuing to\n * work with valid data. The function ensures that failures are captured, while\n * successes are processed normally.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // ┌─── Effect<[string[], number[]], never, never>\n * // ▼\n * const program = Effect.partition([0, 1, 2, 3, 4], (n) => {\n * if (n % 2 === 0) {\n * return Effect.succeed(n)\n * } else {\n * return Effect.fail(`${n} is not even`)\n * }\n * })\n *\n * Effect.runPromise(program).then(console.log, console.error)\n * // Output:\n * // [ [ '1 is not even', '3 is not even' ], [ 0, 2, 4 ] ]\n * ```\n *\n * @see {@link validateAll} for a function that either collects all failures or all successes.\n * @see {@link validateFirst} for a function that stops at the first success.\n *\n * @since 2.0.0\n * @category Error Accumulation\n */\nexport const partition = fiberRuntime.partition;\n/**\n * Reduces an `Iterable` using an effectual function `f`, working\n * sequentially from left to right.\n *\n * **Details**\n *\n * This function takes an iterable and applies a function `f` to each element in\n * the iterable. The function works sequentially, starting with an initial value\n * `zero` and then combining it with each element in the collection. The\n * provided function `f` is called for each element in the iterable, allowing\n * you to accumulate a result based on the current value and the element being\n * processed.\n *\n * **When to Use**\n *\n * The function is often used for operations like summing a collection of\n * numbers or combining results from multiple tasks. It ensures that operations\n * are performed one after the other, maintaining the order of the elements.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const processOrder = (id: number) =>\n * Effect.succeed({ id, price: 100 * id })\n * .pipe(Effect.tap(() => Console.log(`Order ${id} processed`)), Effect.delay(500 - (id * 100)))\n *\n * const program = Effect.reduce(\n * [1, 2, 3, 4],\n * 0,\n * (acc, id, i) =>\n * processOrder(id)\n * .pipe(Effect.map((order) => acc + order.price))\n * )\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // Order 1 processed\n * // Order 2 processed\n * // Order 3 processed\n * // Order 4 processed\n * // 1000\n * ```\n *\n * @see {@link reduceWhile} for a similar function that stops the process based on a predicate.\n * @see {@link reduceRight} for a similar function that works from right to left.\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const reduce = effect.reduce;\n/**\n * Reduces an `Iterable` using an effectual function `body`, working\n * sequentially from left to right, stopping the process early when the\n * predicate `while` is not satisfied.\n *\n * **Details**\n *\n * This function processes a collection of elements, applying a function `body`\n * to reduce them to a single value, starting from the first element. It checks\n * the value of the accumulator against a predicate (`while`). If at any point\n * the predicate returns `false`, the reduction stops, and the accumulated\n * result is returned.\n *\n * **When to Use**\n *\n * Use this function when you need to reduce a collection of elements, but only\n * continue the process as long as a certain condition holds true. For example,\n * if you want to sum values in a list but stop as soon as the sum exceeds a\n * certain threshold, you can use this function.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const processOrder = (id: number) =>\n * Effect.succeed({ id, price: 100 * id })\n * .pipe(Effect.tap(() => Console.log(`Order ${id} processed`)), Effect.delay(500 - (id * 100)))\n *\n * const program = Effect.reduceWhile(\n * [1, 2, 3, 4],\n * 0,\n * {\n * body: (acc, id, i) =>\n * processOrder(id)\n * .pipe(Effect.map((order) => acc + order.price)),\n * while: (acc) => acc < 500\n * }\n * )\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // Order 1 processed\n * // Order 2 processed\n * // Order 3 processed\n * // 600\n * ```\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const reduceWhile = effect.reduceWhile;\n/**\n * Reduces an `Iterable` using an effectual function `f`, working\n * sequentially from right to left.\n *\n * **Details**\n *\n * This function takes an iterable and applies a function `f` to each element in\n * the iterable. The function works sequentially, starting with an initial value\n * `zero` and then combining it with each element in the collection. The\n * provided function `f` is called for each element in the iterable, allowing\n * you to accumulate a result based on the current value and the element being\n * processed.\n *\n * **When to Use**\n *\n * The function is often used for operations like summing a collection of\n * numbers or combining results from multiple tasks. It ensures that operations\n * are performed one after the other, maintaining the order of the elements.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const processOrder = (id: number) =>\n * Effect.succeed({ id, price: 100 * id })\n * .pipe(Effect.tap(() => Console.log(`Order ${id} processed`)), Effect.delay(500 - (id * 100)))\n *\n * const program = Effect.reduceRight(\n * [1, 2, 3, 4],\n * 0,\n * (id, acc, i) =>\n * processOrder(id)\n * .pipe(Effect.map((order) => acc + order.price))\n * )\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // Order 4 processed\n * // Order 3 processed\n * // Order 2 processed\n * // Order 1 processed\n * // 1000\n * ```\n *\n * @see {@link reduce} for a similar function that works from left to right.\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const reduceRight = effect.reduceRight;\n/**\n * Reduces an `Iterable>` to a single effect.\n *\n * **Details**\n *\n * This function processes a collection of effects and combines them into one\n * single effect. It starts with an initial effect (`zero`) and applies a\n * function `f` to each element in the collection.\n *\n * **Options**\n *\n * The function also allows you to customize how the effects are handled by\n * specifying options such as concurrency, batching, and how finalizers behave.\n * These options provide flexibility in running the effects concurrently or\n * adjusting other execution details.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const processOrder = (id: number) =>\n * Effect.succeed({ id, price: 100 * id })\n * .pipe(Effect.tap(() => Console.log(`Order ${id} processed`)), Effect.delay(500 - (id * 100)))\n *\n * const program = Effect.reduceEffect(\n * [processOrder(1), processOrder(2), processOrder(3), processOrder(4)],\n * Effect.succeed(0),\n * (acc, order, i) => acc + order.price\n * )\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // Order 1 processed\n * // Order 2 processed\n * // Order 3 processed\n * // Order 4 processed\n * // 1000\n * ```\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const reduceEffect = fiberRuntime.reduceEffect;\n/**\n * Replicates the given effect `n` times.\n *\n * **Details**\n *\n * This function takes an effect and replicates it a specified number of times\n * (`n`). The result is an array of `n` effects, each of which is identical to\n * the original effect.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const task = Effect.succeed(\"Hello, World!\").pipe(\n * Effect.tap(Console.log)\n * )\n *\n * const program = Effect.gen(function*() {\n * // Replicate the task 3 times\n * const tasks = Effect.replicate(task, 3)\n * for (const t of tasks) {\n * // Run each task\n * yield* t\n * }\n * })\n *\n * Effect.runFork(program)\n * // Output:\n * // Hello, World!\n * // Hello, World!\n * // Hello, World!\n * ```\n *\n * @since 2.0.0\n */\nexport const replicate = fiberRuntime.replicate;\n/**\n * Performs this effect the specified number of times and collects the results.\n *\n * **Details**\n *\n * This function repeats an effect multiple times and collects the results into\n * an array. You specify how many times to execute the effect, and it runs that\n * many times, either in sequence or concurrently depending on the provided\n * options.\n *\n * **Options**\n *\n * If the `discard` option is set to `true`, the intermediate results are not\n * collected, and the final result of the operation is `void`.\n *\n * The function also allows you to customize how the effects are handled by\n * specifying options such as concurrency, batching, and how finalizers behave.\n * These options provide flexibility in running the effects concurrently or\n * adjusting other execution details.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * let counter = 0\n *\n * const task = Effect.sync(() => ++counter).pipe(\n * Effect.tap(() => Console.log(`Task completed`))\n * )\n *\n * const program = Effect.gen(function*() {\n * // Replicate the task 3 times and collect the results\n * const results = yield* Effect.replicateEffect(task, 3)\n * yield* Console.log(`Results: ${results.join(\", \")}`)\n * })\n *\n * Effect.runFork(program)\n * // Output:\n * // Task completed\n * // Task completed\n * // Task completed\n * // Results: 1, 2, 3\n * ```\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const replicateEffect = fiberRuntime.replicateEffect;\n/**\n * Applies an effectful operation to each element in a collection while\n * collecting both successes and failures.\n *\n * **Details**\n *\n * This function allows you to apply an effectful operation to every item in a\n * collection.\n *\n * Unlike {@link forEach}, which would stop at the first error, this function\n * continues processing all elements, accumulating both successes and failures.\n *\n * **When to Use**\n *\n * Use this function when you want to process every item in a collection, even\n * if some items fail. This is particularly useful when you need to perform\n * operations on all elements without halting due to an error.\n *\n * Keep in mind that if there are any failures, **all successes will be lost**,\n * so this function is not suitable when you need to keep the successful results\n * in case of errors.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.validateAll([1, 2, 3, 4, 5], (n) => {\n * if (n < 4) {\n * return Console.log(`item ${n}`).pipe(Effect.as(n))\n * } else {\n * return Effect.fail(`${n} is not less that 4`)\n * }\n * })\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // item 1\n * // item 2\n * // item 3\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Fail',\n * // failure: [ '4 is not less that 4', '5 is not less that 4' ]\n * // }\n * // }\n * ```\n *\n * @see {@link forEach} for a similar function that stops at the first error.\n * @see {@link partition} when you need to separate successes and failures\n * instead of losing successes with errors.\n *\n * @since 2.0.0\n * @category Error Accumulation\n */\nexport const validateAll = fiberRuntime.validateAll;\n/**\n * This function is similar to {@link validateAll} but with a key difference: it\n * returns the first successful result or all errors if none of the operations\n * succeed.\n *\n * **Details**\n *\n * This function processes a collection of elements and applies an effectful\n * operation to each. Unlike {@link validateAll}, which accumulates both\n * successes and failures, `Effect.validateFirst` stops and returns the first\n * success it encounters. If no success occurs, it returns all accumulated\n * errors. This can be useful when you are interested in the first successful\n * result and want to avoid processing further once a valid result is found.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.validateFirst([1, 2, 3, 4, 5], (n) => {\n * if (n < 4) {\n * return Effect.fail(`${n} is not less that 4`)\n * } else {\n * return Console.log(`item ${n}`).pipe(Effect.as(n))\n * }\n * })\n *\n * Effect.runPromise(program).then(console.log, console.error)\n * // Output:\n * // item 4\n * // 4\n * ```\n *\n * @see {@link validateAll} for a similar function that accumulates all results.\n * @see {@link firstSuccessOf} for a similar function that processes multiple\n * effects and returns the first successful one or the last error.\n *\n * @since 2.0.0\n * @category Error Accumulation\n */\nexport const validateFirst = fiberRuntime.validateFirst;\n/**\n * Creates an `Effect` from a callback-based asynchronous function.\n *\n * **Details**\n *\n * The `resume` function:\n * - Must be called exactly once. Any additional calls will be ignored.\n * - Can return an optional `Effect` that will be run if the `Fiber` executing\n * this `Effect` is interrupted. This can be useful in scenarios where you\n * need to handle resource cleanup if the operation is interrupted.\n * - Can receive an `AbortSignal` to handle interruption if needed.\n *\n * The `FiberId` of the fiber that may complete the async callback may also be\n * specified using the `blockingOn` argument. This is called the \"blocking\n * fiber\" because it suspends the fiber executing the `async` effect (i.e.\n * semantically blocks the fiber from making progress). Specifying this fiber id\n * in cases where it is known will improve diagnostics, but not affect the\n * behavior of the returned effect.\n *\n * **When to Use**\n *\n * Use `Effect.async` when dealing with APIs that use callback-style instead of\n * `async/await` or `Promise`.\n *\n * **Example** (Wrapping a Callback API)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import * as NodeFS from \"node:fs\"\n *\n * const readFile = (filename: string) =>\n * Effect.async((resume) => {\n * NodeFS.readFile(filename, (error, data) => {\n * if (error) {\n * // Resume with a failed Effect if an error occurs\n * resume(Effect.fail(error))\n * } else {\n * // Resume with a succeeded Effect if successful\n * resume(Effect.succeed(data))\n * }\n * })\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const program = readFile(\"example.txt\")\n * ```\n *\n * **Example** (Handling Interruption with Cleanup)\n *\n * ```ts\n * import { Effect, Fiber } from \"effect\"\n * import * as NodeFS from \"node:fs\"\n *\n * // Simulates a long-running operation to write to a file\n * const writeFileWithCleanup = (filename: string, data: string) =>\n * Effect.async((resume) => {\n * const writeStream = NodeFS.createWriteStream(filename)\n *\n * // Start writing data to the file\n * writeStream.write(data)\n *\n * // When the stream is finished, resume with success\n * writeStream.on(\"finish\", () => resume(Effect.void))\n *\n * // In case of an error during writing, resume with failure\n * writeStream.on(\"error\", (err) => resume(Effect.fail(err)))\n *\n * // Handle interruption by returning a cleanup effect\n * return Effect.sync(() => {\n * console.log(`Cleaning up ${filename}`)\n * NodeFS.unlinkSync(filename)\n * })\n * })\n *\n * const program = Effect.gen(function* () {\n * const fiber = yield* Effect.fork(\n * writeFileWithCleanup(\"example.txt\", \"Some long data...\")\n * )\n * // Simulate interrupting the fiber after 1 second\n * yield* Effect.sleep(\"1 second\")\n * yield* Fiber.interrupt(fiber) // This will trigger the cleanup\n * })\n *\n * // Run the program\n * Effect.runPromise(program)\n * // Output:\n * // Cleaning up example.txt\n * ```\n *\n * **Example** (Handling Interruption with AbortSignal)\n *\n * ```ts\n * import { Effect, Fiber } from \"effect\"\n *\n * // A task that supports interruption using AbortSignal\n * const interruptibleTask = Effect.async((resume, signal) => {\n * // Handle interruption\n * signal.addEventListener(\"abort\", () => {\n * console.log(\"Abort signal received\")\n * clearTimeout(timeoutId)\n * })\n *\n * // Simulate a long-running task\n * const timeoutId = setTimeout(() => {\n * console.log(\"Operation completed\")\n * resume(Effect.void)\n * }, 2000)\n * })\n *\n * const program = Effect.gen(function* () {\n * const fiber = yield* Effect.fork(interruptibleTask)\n * // Simulate interrupting the fiber after 1 second\n * yield* Effect.sleep(\"1 second\")\n * yield* Fiber.interrupt(fiber)\n * })\n *\n * // Run the program\n * Effect.runPromise(program)\n * // Output:\n * // Abort signal received\n * ```\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const async = core.async;\n/**\n * A variant of {@link async} where the registration function may return an `Effect`.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const asyncEffect = runtime_.asyncEffect;\n/**\n * Low level constructor that enables for custom stack tracing cutpoints.\n *\n * It is meant to be called with a bag of instructions that become available in\n * the \"this\" of the effect.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const throwingFunction = () => { throw new Error() }\n * const blowUp = Effect.custom(throwingFunction, function() {\n * return Effect.succeed(this.effect_instruction_i0())\n * })\n * ```\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const custom = core.custom;\n/**\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const withFiberRuntime = core.withFiberRuntime;\n/**\n * Creates an `Effect` that represents a recoverable error.\n *\n * **When to Use**\n *\n * Use this function to explicitly signal an error in an `Effect`. The error\n * will keep propagating unless it is handled. You can handle the error with\n * functions like {@link catchAll} or {@link catchTag}.\n *\n * **Example** (Creating a Failed Effect)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const failure = Effect.fail(\n * new Error(\"Operation failed due to network error\")\n * )\n * ```\n *\n * @see {@link succeed} to create an effect that represents a successful value.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const fail = core.fail;\n/**\n * Creates an `Effect` that fails with the specified error, evaluated lazily.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const failSync = core.failSync;\n/**\n * Creates an `Effect` that fails with the specified `Cause`.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const failCause = core.failCause;\n/**\n * Creates an `Effect` that fails with the specified `Cause`, evaluated lazily.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const failCauseSync = core.failCauseSync;\n/**\n * Creates an effect that terminates a fiber with a specified error.\n *\n * **Details**\n *\n * This function is used to signal a defect, which represents a critical and\n * unexpected error in the code. When invoked, it produces an effect that does\n * not handle the error and instead terminates the fiber.\n *\n * The error channel of the resulting effect is of type `never`, indicating that\n * it cannot recover from this failure.\n *\n * **When to Use**\n *\n * Use this function when encountering unexpected conditions in your code that\n * should not be handled as regular errors but instead represent unrecoverable\n * defects.\n *\n * **Example** (Terminating on Division by Zero with a Specified Error)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const divide = (a: number, b: number) =>\n * b === 0\n * ? Effect.die(new Error(\"Cannot divide by zero\"))\n * : Effect.succeed(a / b)\n *\n * // ┌─── Effect\n * // ▼\n * const program = divide(1, 0)\n *\n * Effect.runPromise(program).catch(console.error)\n * // Output:\n * // (FiberFailure) Error: Cannot divide by zero\n * // ...stack trace...\n * ```\n *\n * @see {@link dieSync} for a variant that throws a specified error, evaluated\n * lazily.\n * @see {@link dieMessage} for a variant that throws a `RuntimeException` with a\n * message.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const die = core.die;\n/**\n * Creates an effect that terminates a fiber with a `RuntimeException`\n * containing the specified message.\n *\n * **Details**\n *\n * This function is used to signal a defect, representing a critical and\n * unexpected error in the code. When invoked, it produces an effect that\n * terminates the fiber with a `RuntimeException` carrying the given message.\n *\n * The resulting effect has an error channel of type `never`, indicating it does\n * not handle or recover from the error.\n *\n * **When to Use**\n *\n * Use this function when you want to terminate a fiber due to an unrecoverable\n * defect and include a clear explanation in the message.\n *\n * **Example** (Terminating on Division by Zero with a Specified Message)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const divide = (a: number, b: number) =>\n * b === 0\n * ? Effect.dieMessage(\"Cannot divide by zero\")\n * : Effect.succeed(a / b)\n *\n * // ┌─── Effect\n * // ▼\n * const program = divide(1, 0)\n *\n * Effect.runPromise(program).catch(console.error)\n * // Output:\n * // (FiberFailure) RuntimeException: Cannot divide by zero\n * // ...stack trace...\n * ```\n *\n * @see {@link die} for a variant that throws a specified error.\n * @see {@link dieSync} for a variant that throws a specified error, evaluated\n * lazily.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const dieMessage = core.dieMessage;\n/**\n * Creates an effect that dies with the specified error, evaluated lazily.\n *\n * **Details**\n *\n * This function allows you to create an effect that will terminate with a fatal error.\n * The error is provided as a lazy argument, meaning it will only be evaluated when the effect runs.\n *\n * @see {@link die} if you don't need to evaluate the error lazily.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const dieSync = core.dieSync;\n/**\n * Provides a way to write effectful code using generator functions, simplifying\n * control flow and error handling.\n *\n * **When to Use**\n *\n * `Effect.gen` allows you to write code that looks and behaves like synchronous\n * code, but it can handle asynchronous tasks, errors, and complex control flow\n * (like loops and conditions). It helps make asynchronous code more readable\n * and easier to manage.\n *\n * The generator functions work similarly to `async/await` but with more\n * explicit control over the execution of effects. You can `yield*` values from\n * effects and return the final result at the end.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const addServiceCharge = (amount: number) => amount + 1\n *\n * const applyDiscount = (\n * total: number,\n * discountRate: number\n * ): Effect.Effect =>\n * discountRate === 0\n * ? Effect.fail(new Error(\"Discount rate cannot be zero\"))\n * : Effect.succeed(total - (total * discountRate) / 100)\n *\n * const fetchTransactionAmount = Effect.promise(() => Promise.resolve(100))\n *\n * const fetchDiscountRate = Effect.promise(() => Promise.resolve(5))\n *\n * export const program = Effect.gen(function* () {\n * const transactionAmount = yield* fetchTransactionAmount\n * const discountRate = yield* fetchDiscountRate\n * const discountedAmount = yield* applyDiscount(\n * transactionAmount,\n * discountRate\n * )\n * const finalAmount = addServiceCharge(discountedAmount)\n * return `Final amount to charge: ${finalAmount}`\n * })\n * ```\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const gen = core.gen;\n/**\n * An effect that that runs indefinitely and never produces any result. The\n * moral equivalent of `while(true) {}`, only without the wasted CPU cycles.\n *\n * **When to Use**\n *\n * It could be useful for long-running background tasks or to simulate waiting\n * behavior without actually consuming resources. This effect is ideal for cases\n * where you want to keep the program alive or in a certain state without\n * performing any active work.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const never = core.never;\n/**\n * Ensures the `Option` is `None`, returning `void`. Otherwise, raises a\n * `NoSuchElementException`.\n *\n * **Details**\n *\n * This function checks if the provided `Option` is `None`. If it is, it returns\n * an effect that produces no result (i.e., `void`). If the `Option` is not\n * `None` (i.e., it contains a value), the function will raise a\n * `NoSuchElementException` error.\n *\n * **When to Use**\n *\n * This is useful when you want to ensure that a certain value is absent (i.e.,\n * `None`) before continuing execution, and to handle cases where the value is\n * unexpectedly present.\n *\n * @since 2.0.0\n */\nexport const none = effect.none;\n/**\n * Creates an `Effect` that represents an asynchronous computation guaranteed to\n * succeed.\n *\n * **Details**\n *\n * The provided function (`thunk`) returns a `Promise` that should never reject; if it does, the error\n * will be treated as a \"defect\".\n *\n * This defect is not a standard error but indicates a flaw in the logic that\n * was expected to be error-free. You can think of it similar to an unexpected\n * crash in the program, which can be further managed or logged using tools like\n * {@link catchAllDefect}.\n *\n * **Interruptions**\n *\n * An optional `AbortSignal` can be provided to allow for interruption of the\n * wrapped `Promise` API.\n *\n * **When to Use**\n *\n * Use this function when you are sure the operation will not reject.\n *\n * **Example** (Delayed Message)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const delay = (message: string) =>\n * Effect.promise(\n * () =>\n * new Promise((resolve) => {\n * setTimeout(() => {\n * resolve(message)\n * }, 2000)\n * })\n * )\n *\n * // ┌─── Effect\n * // ▼\n * const program = delay(\"Async operation completed successfully!\")\n * ```\n *\n * @see {@link tryPromise} for a version that can handle failures.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const promise = effect.promise;\n/**\n * Creates an `Effect` that always succeeds with a given value.\n *\n * **When to Use**\n *\n * Use this function when you need an effect that completes successfully with a\n * specific value without any errors or external dependencies.\n *\n * **Example** (Creating a Successful Effect)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // Creating an effect that represents a successful scenario\n * //\n * // ┌─── Effect\n * // ▼\n * const success = Effect.succeed(42)\n * ```\n *\n * @see {@link fail} to create an effect that represents a failure.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const succeed = core.succeed;\n/**\n * Returns an effect which succeeds with `None`.\n *\n * **When to Use**\n *\n * Use this function when you need to represent the absence of a value in your\n * code, especially when working with optional data. This can be helpful when\n * you want to indicate that no result is available without throwing an error or\n * performing additional logic.\n *\n * @see {@link succeedSome} to create an effect that succeeds with a `Some` value.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const succeedNone = effect.succeedNone;\n/**\n * Returns an effect which succeeds with the value wrapped in a `Some`.\n *\n * @see {@link succeedNone} for a similar function that returns `None` when the value is absent.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const succeedSome = effect.succeedSome;\n/**\n * Delays the creation of an `Effect` until it is actually needed.\n *\n * **Details**\n *\n * The `Effect.suspend` function takes a thunk that represents the effect and\n * wraps it in a suspended effect. This means the effect will not be created\n * until it is explicitly needed, which is helpful in various scenarios:\n * - **Lazy Evaluation**: Helps optimize performance by deferring computations,\n * especially when the effect might not be needed, or when its computation is\n * expensive. This also ensures that any side effects or scoped captures are\n * re-executed on each invocation.\n * - **Handling Circular Dependencies**: Useful in managing circular\n * dependencies, such as recursive functions that need to avoid eager\n * evaluation to prevent stack overflow.\n * - **Unifying Return Types**: Can help TypeScript unify return types in\n * situations where multiple branches of logic return different effects,\n * simplifying type inference.\n *\n * **When to Use**\n *\n * Use this function when you need to defer the evaluation of an effect until it\n * is required. This is particularly useful for optimizing expensive\n * computations, managing circular dependencies, or resolving type inference\n * issues.\n *\n * **Example** (Lazy Evaluation with Side Effects)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * let i = 0\n *\n * const bad = Effect.succeed(i++)\n *\n * const good = Effect.suspend(() => Effect.succeed(i++))\n *\n * console.log(Effect.runSync(bad)) // Output: 0\n * console.log(Effect.runSync(bad)) // Output: 0\n *\n * console.log(Effect.runSync(good)) // Output: 1\n * console.log(Effect.runSync(good)) // Output: 2\n * ```\n *\n * **Example** (Recursive Fibonacci)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const blowsUp = (n: number): Effect.Effect =>\n * n < 2\n * ? Effect.succeed(1)\n * : Effect.zipWith(blowsUp(n - 1), blowsUp(n - 2), (a, b) => a + b)\n *\n * console.log(Effect.runSync(blowsUp(32)))\n * // crash: JavaScript heap out of memory\n *\n * const allGood = (n: number): Effect.Effect =>\n * n < 2\n * ? Effect.succeed(1)\n * : Effect.zipWith(\n * Effect.suspend(() => allGood(n - 1)),\n * Effect.suspend(() => allGood(n - 2)),\n * (a, b) => a + b\n * )\n *\n * console.log(Effect.runSync(allGood(32)))\n * // Output: 3524578\n * ```\n *\n * **Example** (Using Effect.suspend to Help TypeScript Infer Types)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // Without suspend, TypeScript may struggle with type inference.\n * // Inferred type:\n * // (a: number, b: number) =>\n * // Effect | Effect\n * const withoutSuspend = (a: number, b: number) =>\n * b === 0\n * ? Effect.fail(new Error(\"Cannot divide by zero\"))\n * : Effect.succeed(a / b)\n *\n * // Using suspend to unify return types.\n * // Inferred type:\n * // (a: number, b: number) => Effect\n * const withSuspend = (a: number, b: number) =>\n * Effect.suspend(() =>\n * b === 0\n * ? Effect.fail(new Error(\"Cannot divide by zero\"))\n * : Effect.succeed(a / b)\n * )\n * ```\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const suspend = core.suspend;\n/**\n * Creates an `Effect` that represents a synchronous side-effectful computation.\n *\n * **Details**\n *\n * The provided function (`thunk`) must not throw errors; if it does, the error\n * will be treated as a \"defect\".\n *\n * This defect is not a standard error but indicates a flaw in the logic that\n * was expected to be error-free. You can think of it similar to an unexpected\n * crash in the program, which can be further managed or logged using tools like\n * {@link catchAllDefect}.\n *\n * **When to Use**\n *\n * Use this function when you are sure the operation will not fail.\n *\n * **Example** (Logging a Message)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const log = (message: string) =>\n * Effect.sync(() => {\n * console.log(message) // side effect\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const program = log(\"Hello, World!\")\n * ```\n *\n * @see {@link try_ | try} for a version that can handle failures.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const sync = core.sync;\nconst _void = core.void;\nexport {\n/**\n * Represents an effect that does nothing and produces no value.\n *\n * **When to Use**\n *\n * Use this effect when you need to represent an effect that does nothing.\n * This is useful in scenarios where you need to satisfy an effect-based\n * interface or control program flow without performing any operations. For\n * example, it can be used in situations where you want to return an effect\n * from a function but do not need to compute or return any result.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\n_void as void };\n/**\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const yieldNow = core.yieldNow;\nconst _catch = effect._catch;\nexport {\n/**\n * Recovers from a specified error by catching it and handling it with a provided function.\n *\n * **Details**\n *\n * This function allows you to recover from specific errors that occur during\n * the execution of an effect. It works by catching a specific type of error\n * (identified by a discriminator) and then handling it using a provided\n * handler function. The handler can return a new effect that helps recover\n * from the error, allowing the program to continue. If the error doesn't\n * match the specified type, the function allows the original effect to\n * continue as it was.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * class NetworkError {\n * readonly _tag = \"NetworkError\"\n * }\n * class ValidationError {\n * readonly _tag = \"ValidationError\"\n * }\n *\n * // Simulate an effect that may fail\n * const task: Effect.Effect = Effect.fail(new NetworkError())\n *\n * const program = Effect.gen(function*() {\n * const result = yield* Effect.catch(task, \"_tag\", {\n * failure: \"NetworkError\",\n * onFailure: (error) => Effect.succeed(`recovered from error: ${error._tag}`)\n * })\n * console.log(`Result: ${result}`)\n * })\n *\n * Effect.runFork(program)\n * // Output: Result: recovered from error: NetworkError\n * ```\n *\n * @see {@link catchTag} for a version that can recover from errors based on a `_tag` discriminator.\n *\n * @since 2.0.0\n * @category Error handling\n */\n_catch as catch };\n/**\n * Handles all errors in an effect by providing a fallback effect.\n *\n * **Details**\n *\n * This function catches any errors that may occur during the execution of an\n * effect and allows you to handle them by specifying a fallback effect. This\n * ensures that the program continues without failing by recovering from errors\n * using the provided fallback logic.\n *\n * **Note**: This function only handles recoverable errors. It will not recover\n * from unrecoverable defects.\n *\n * **Example** (Providing Recovery Logic for Recoverable Errors)\n *\n * ```ts\n * import { Effect, Random } from \"effect\"\n *\n * class HttpError {\n * readonly _tag = \"HttpError\"\n * }\n *\n * class ValidationError {\n * readonly _tag = \"ValidationError\"\n * }\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function* () {\n * const n1 = yield* Random.next\n * const n2 = yield* Random.next\n * if (n1 < 0.5) {\n * yield* Effect.fail(new HttpError())\n * }\n * if (n2 < 0.5) {\n * yield* Effect.fail(new ValidationError())\n * }\n * return \"some result\"\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const recovered = program.pipe(\n * Effect.catchAll((error) =>\n * Effect.succeed(`Recovering from ${error._tag}`)\n * )\n * )\n * ```\n *\n * @see {@link catchAllCause} for a version that can recover from both\n * recoverable and unrecoverable errors.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const catchAll = core.catchAll;\n/**\n * Handles both recoverable and unrecoverable errors by providing a recovery\n * effect.\n *\n * **When to Use**\n *\n * The `catchAllCause` function allows you to handle all errors, including\n * unrecoverable defects, by providing a recovery effect. The recovery logic is\n * based on the `Cause` of the error, which provides detailed information about\n * the failure.\n *\n * **When to Recover from Defects**\n *\n * Defects are unexpected errors that typically shouldn't be recovered from, as\n * they often indicate serious issues. However, in some cases, such as\n * dynamically loaded plugins, controlled recovery might be needed.\n *\n * **Example** (Recovering from All Errors)\n *\n * ```ts\n * import { Cause, Effect } from \"effect\"\n *\n * // Define an effect that may fail with a recoverable or unrecoverable error\n * const program = Effect.fail(\"Something went wrong!\")\n *\n * // Recover from all errors by examining the cause\n * const recovered = program.pipe(\n * Effect.catchAllCause((cause) =>\n * Cause.isFailure(cause)\n * ? Effect.succeed(\"Recovered from a regular error\")\n * : Effect.succeed(\"Recovered from a defect\")\n * )\n * )\n *\n * Effect.runPromise(recovered).then(console.log)\n * // Output: \"Recovered from a regular error\"\n * ```\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const catchAllCause = core.catchAllCause;\n/**\n * Recovers from all defects using a provided recovery function.\n *\n * **When to Use**\n *\n * There is no sensible way to recover from defects. This method should be used\n * only at the boundary between Effect and an external system, to transmit\n * information on a defect for diagnostic or explanatory purposes.\n *\n * **Details**\n *\n * `catchAllDefect` allows you to handle defects, which are unexpected errors\n * that usually cause the program to terminate. This function lets you recover\n * from these defects by providing a function that handles the error. However,\n * it does not handle expected errors (like those from {@link fail}) or\n * execution interruptions (like those from {@link interrupt}).\n *\n * **When to Recover from Defects**\n *\n * Defects are unexpected errors that typically shouldn't be recovered from, as\n * they often indicate serious issues. However, in some cases, such as\n * dynamically loaded plugins, controlled recovery might be needed.\n *\n * **Example** (Handling All Defects)\n *\n * ```ts\n * import { Effect, Cause, Console } from \"effect\"\n *\n * // Simulating a runtime error\n * const task = Effect.dieMessage(\"Boom!\")\n *\n * const program = Effect.catchAllDefect(task, (defect) => {\n * if (Cause.isRuntimeException(defect)) {\n * return Console.log(\n * `RuntimeException defect caught: ${defect.message}`\n * )\n * }\n * return Console.log(\"Unknown defect caught.\")\n * })\n *\n * // We get an Exit.Success because we caught all defects\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // RuntimeException defect caught: Boom!\n * // {\n * // _id: \"Exit\",\n * // _tag: \"Success\",\n * // value: undefined\n * // }\n * ```\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const catchAllDefect = effect.catchAllDefect;\n/**\n * Recovers from specific errors based on a predicate.\n *\n * **When to Use**\n *\n * `catchIf` works similarly to {@link catchSome}, but it allows you to\n * recover from errors by providing a predicate function. If the predicate\n * matches the error, the recovery effect is applied. This function doesn't\n * alter the error type, so the resulting effect still carries the original\n * error type unless a user-defined type guard is used to narrow the type.\n *\n * **Example** (Catching Specific Errors with a Predicate)\n *\n * ```ts\n * import { Effect, Random } from \"effect\"\n *\n * class HttpError {\n * readonly _tag = \"HttpError\"\n * }\n *\n * class ValidationError {\n * readonly _tag = \"ValidationError\"\n * }\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function* () {\n * const n1 = yield* Random.next\n * const n2 = yield* Random.next\n * if (n1 < 0.5) {\n * yield* Effect.fail(new HttpError())\n * }\n * if (n2 < 0.5) {\n * yield* Effect.fail(new ValidationError())\n * }\n * return \"some result\"\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const recovered = program.pipe(\n * Effect.catchIf(\n * // Only handle HttpError errors\n * (error) => error._tag === \"HttpError\",\n * () => Effect.succeed(\"Recovering from HttpError\")\n * )\n * )\n * ```\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const catchIf = core.catchIf;\n/**\n * Catches and recovers from specific types of errors, allowing you to attempt\n * recovery only for certain errors.\n *\n * **Details**\n *\n * `catchSome` lets you selectively catch and handle errors of certain\n * types by providing a recovery effect for specific errors. If the error\n * matches a condition, recovery is attempted; if not, it doesn't affect the\n * program. This function doesn't alter the error type, meaning the error type\n * remains the same as in the original effect.\n *\n * **Example** (Handling Specific Errors with Effect.catchSome)\n *\n * ```ts\n * import { Effect, Random, Option } from \"effect\"\n *\n * class HttpError {\n * readonly _tag = \"HttpError\"\n * }\n *\n * class ValidationError {\n * readonly _tag = \"ValidationError\"\n * }\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function* () {\n * const n1 = yield* Random.next\n * const n2 = yield* Random.next\n * if (n1 < 0.5) {\n * yield* Effect.fail(new HttpError())\n * }\n * if (n2 < 0.5) {\n * yield* Effect.fail(new ValidationError())\n * }\n * return \"some result\"\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const recovered = program.pipe(\n * Effect.catchSome((error) => {\n * // Only handle HttpError errors\n * if (error._tag === \"HttpError\") {\n * return Option.some(Effect.succeed(\"Recovering from HttpError\"))\n * } else {\n * return Option.none()\n * }\n * })\n * )\n * ```\n *\n * @see {@link catchIf} for a version that allows you to recover from errors based on a predicate.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const catchSome = core.catchSome;\n/**\n * Recovers from specific causes using a provided partial function.\n *\n * @see {@link catchSome} for a version that allows you to recover from errors.\n * @see {@link catchSomeDefect} for a version that allows you to recover from defects.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const catchSomeCause = effect.catchSomeCause;\n/**\n * Recovers from specific defects using a provided partial function.\n *\n * **Details**\n *\n * `catchSomeDefect` allows you to handle specific defects, which are\n * unexpected errors that can cause the program to stop. It uses a partial\n * function to catch only certain defects and ignores others. The function does\n * not handle expected errors (such as those caused by {@link fail}) or\n * interruptions in execution (like those caused by {@link interrupt}).\n *\n * This function provides a way to handle certain types of defects while\n * allowing others to propagate and cause failure in the program.\n *\n * **Note**: There is no sensible way to recover from defects. This method\n * should be used only at the boundary between Effect and an external system, to\n * transmit information on a defect for diagnostic or explanatory purposes.\n *\n * **How the Partial Function Works**\n *\n * The function provided to `catchSomeDefect` acts as a filter and a handler for defects:\n * - It receives the defect as an input.\n * - If the defect matches a specific condition (e.g., a certain error type), the function returns\n * an `Option.some` containing the recovery logic.\n * - If the defect does not match, the function returns `Option.none`, allowing the defect to propagate.\n *\n * **Example** (Handling Specific Defects)\n *\n * ```ts\n * import { Effect, Cause, Option, Console } from \"effect\"\n *\n * // Simulating a runtime error\n * const task = Effect.dieMessage(\"Boom!\")\n *\n * const program = Effect.catchSomeDefect(task, (defect) => {\n * if (Cause.isIllegalArgumentException(defect)) {\n * return Option.some(\n * Console.log(\n * `Caught an IllegalArgumentException defect: ${defect.message}`\n * )\n * )\n * }\n * return Option.none()\n * })\n *\n * // Since we are only catching IllegalArgumentException\n * // we will get an Exit.Failure because we simulated a runtime error.\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Die',\n * // defect: { _tag: 'RuntimeException' }\n * // }\n * // }\n * ```\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const catchSomeDefect = effect.catchSomeDefect;\n/**\n * Catches and handles specific errors by their `_tag` field, which is used as a\n * discriminator.\n *\n * **When to Use**\n *\n * `catchTag` is useful when your errors are tagged with a readonly `_tag` field\n * that identifies the error type. You can use this function to handle specific\n * error types by matching the `_tag` value. This allows for precise error\n * handling, ensuring that only specific errors are caught and handled.\n *\n * The error type must have a readonly `_tag` field to use `catchTag`. This\n * field is used to identify and match errors.\n *\n * **Example** (Handling Errors by Tag)\n *\n * ```ts\n * import { Effect, Random } from \"effect\"\n *\n * class HttpError {\n * readonly _tag = \"HttpError\"\n * }\n *\n * class ValidationError {\n * readonly _tag = \"ValidationError\"\n * }\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function* () {\n * const n1 = yield* Random.next\n * const n2 = yield* Random.next\n * if (n1 < 0.5) {\n * yield* Effect.fail(new HttpError())\n * }\n * if (n2 < 0.5) {\n * yield* Effect.fail(new ValidationError())\n * }\n * return \"some result\"\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const recovered = program.pipe(\n * // Only handle HttpError errors\n * Effect.catchTag(\"HttpError\", (_HttpError) =>\n * Effect.succeed(\"Recovering from HttpError\")\n * )\n * )\n * ```\n *\n * @see {@link catchTags} for a version that allows you to handle multiple error\n * types at once.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const catchTag = effect.catchTag;\n/**\n * Handles multiple errors in a single block of code using their `_tag` field.\n *\n * **When to Use**\n *\n * `catchTags` is a convenient way to handle multiple error types at\n * once. Instead of using {@link catchTag} multiple times, you can pass an\n * object where each key is an error type's `_tag`, and the value is the handler\n * for that specific error. This allows you to catch and recover from multiple\n * error types in a single call.\n *\n * The error type must have a readonly `_tag` field to use `catchTag`. This\n * field is used to identify and match errors.\n *\n * **Example** (Handling Multiple Tagged Error Types at Once)\n *\n * ```ts\n * import { Effect, Random } from \"effect\"\n *\n * class HttpError {\n * readonly _tag = \"HttpError\"\n * }\n *\n * class ValidationError {\n * readonly _tag = \"ValidationError\"\n * }\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function* () {\n * const n1 = yield* Random.next\n * const n2 = yield* Random.next\n * if (n1 < 0.5) {\n * yield* Effect.fail(new HttpError())\n * }\n * if (n2 < 0.5) {\n * yield* Effect.fail(new ValidationError())\n * }\n * return \"some result\"\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const recovered = program.pipe(\n * Effect.catchTags({\n * HttpError: (_HttpError) =>\n * Effect.succeed(`Recovering from HttpError`),\n * ValidationError: (_ValidationError) =>\n * Effect.succeed(`Recovering from ValidationError`)\n * })\n * )\n * ```\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const catchTags = effect.catchTags;\n/**\n * Retrieves the cause of a failure in an effect.\n *\n * **Details**\n *\n * This function allows you to expose the detailed cause of an effect, which\n * includes a more precise representation of failures, such as error messages\n * and defects.\n *\n * **When to Use**\n *\n * This function is helpful when you need to inspect the cause of a failure in\n * an effect, giving you more information than just the error message. It can be\n * used to log, handle, or analyze failures in more detail, including\n * distinguishing between different types of defects (e.g., runtime exceptions,\n * interruptions, etc.).\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.fail(\"Oh uh!\").pipe(Effect.as(2))\n *\n * // ┌─── Effect\n * // ▼\n * const recovered = Effect.gen(function* () {\n * const cause = yield* Effect.cause(program)\n * yield* Console.log(cause)\n * })\n * ```\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const cause = effect.cause;\n/**\n * Runs an effect repeatedly until it succeeds, ignoring errors.\n *\n * **Details**\n *\n * This function takes an effect and runs it repeatedly until the effect\n * successfully completes. If the effect fails, it will ignore the error and\n * retry the operation. This is useful when you need to perform a task that may\n * fail occasionally, but you want to keep trying until it eventually succeeds.\n * It works by repeatedly executing the effect until it no longer throws an\n * error.\n *\n * **When to Use**\n *\n * Use this function when you want to retry an operation multiple times until it\n * succeeds. It is helpful in cases where the operation may fail temporarily\n * (e.g., a network request), and you want to keep trying without handling or\n * worrying about the errors.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * let counter = 0\n *\n * const effect = Effect.try(() => {\n * counter++\n * if (counter < 3) {\n * console.log(\"running effect\")\n * throw new Error(\"error\")\n * } else {\n * console.log(\"effect done\")\n * return \"some result\"\n * }\n * })\n *\n * const program = Effect.eventually(effect)\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // running effect\n * // running effect\n * // effect done\n * // some result\n * ```\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const eventually = effect.eventually;\n/**\n * Discards both the success and failure values of an effect.\n *\n * **When to Use**\n *\n * `ignore` allows you to run an effect without caring about its result, whether\n * it succeeds or fails. This is useful when you only care about the side\n * effects of the effect and do not need to handle or process its outcome.\n *\n * **Example** (Using Effect.ignore to Discard Values)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const task = Effect.fail(\"Uh oh!\").pipe(Effect.as(5))\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.ignore(task)\n * ```\n *\n * @see {@link ignoreLogged} to log failures while ignoring them.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const ignore = effect.ignore;\n/**\n * Ignores the result of an effect but logs any failures.\n *\n * **Details**\n *\n * This function takes an effect and returns a new effect that ignores whether\n * the original effect succeeds or fails. However, if the effect fails, it will\n * log the failure at the Debug level, so you can keep track of any issues that\n * arise.\n *\n * **When to Use**\n *\n * This is useful in scenarios where you want to continue with your program\n * regardless of the result of the effect, but you still want to be aware of\n * potential failures that may need attention later.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const ignoreLogged = effect.ignoreLogged;\n/**\n * Combines all errors from concurrent operations into a single error.\n *\n * **Details**\n *\n * This function is used when you have multiple operations running at the same\n * time, and you want to capture all the errors that occur across those\n * operations. Instead of handling each error separately, it combines all the\n * errors into one unified error.\n *\n * **When to Use**\n *\n * When using this function, any errors that occur in the concurrently running\n * operations will be grouped together into a single error. This helps simplify\n * error handling in cases where you don't need to differentiate between each\n * failure, but simply want to know that multiple failures occurred.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const fail1 = Effect.fail(\"Oh uh!\")\n * const fail2 = Effect.fail(\"Oh no!\")\n * const die = Effect.dieMessage(\"Boom!\")\n *\n * // Run all effects concurrently and capture all errors\n * const program = Effect.all([fail1, fail2, die], {\n * concurrency: \"unbounded\"\n * }).pipe(Effect.asVoid, Effect.parallelErrors)\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: { _id: 'Cause', _tag: 'Fail', failure: [ 'Oh uh!', 'Oh no!' ] }\n * // }\n * ```\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const parallelErrors = effect.parallelErrors;\n/**\n * Transforms an effect to expose detailed error causes.\n *\n * **Details**\n *\n * This function enhances an effect by providing detailed information about any\n * error, defect, or interruption that may occur during its execution. It\n * modifies the error channel of the effect so that it includes a full cause of\n * the failure, wrapped in a `Cause` type.\n *\n * After applying this function, you can use operators like {@link catchAll} and\n * {@link catchTags} to handle specific types of errors.\n *\n * If you no longer need the detailed cause information, you can revert the\n * changes using {@link unsandbox} to return to the original error-handling\n * behavior.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const task = Effect.fail(new Error(\"Oh uh!\")).pipe(\n * Effect.as(\"primary result\")\n * )\n *\n * // ┌─── Effect, never>\n * // ▼\n * const sandboxed = Effect.sandbox(task)\n *\n * const program = Effect.catchTags(sandboxed, {\n * Die: (cause) =>\n * Console.log(`Caught a defect: ${cause.defect}`).pipe(\n * Effect.as(\"fallback result on defect\")\n * ),\n * Interrupt: (cause) =>\n * Console.log(`Caught a defect: ${cause.fiberId}`).pipe(\n * Effect.as(\"fallback result on fiber interruption\")\n * ),\n * Fail: (cause) =>\n * Console.log(`Caught a defect: ${cause.error}`).pipe(\n * Effect.as(\"fallback result on failure\")\n * )\n * })\n *\n * // Restore the original error handling with unsandbox\n * const main = Effect.unsandbox(program)\n *\n * Effect.runPromise(main).then(console.log)\n * // Output:\n * // Caught a defect: Oh uh!\n * // fallback result on failure\n * ```\n *\n * @see {@link unsandbox} to restore the original error handling.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const sandbox = effect.sandbox;\n/**\n * Retries a failing effect based on a defined retry policy.\n *\n * **Details**\n *\n * The `Effect.retry` function takes an effect and a {@link Schedule} policy,\n * and will automatically retry the effect if it fails, following the rules of\n * the policy.\n *\n * If the effect ultimately succeeds, the result will be returned.\n *\n * If the maximum retries are exhausted and the effect still fails, the failure\n * is propagated.\n *\n * **When to Use**\n *\n * This can be useful when dealing with intermittent failures, such as network\n * issues or temporary resource unavailability. By defining a retry policy, you\n * can control the number of retries, the delay between them, and when to stop\n * retrying.\n *\n * **Example** (Retrying with a Fixed Delay)\n *\n * ```ts\n * import { Effect, Schedule } from \"effect\"\n *\n * let count = 0\n *\n * // Simulates an effect with possible failures\n * const task = Effect.async((resume) => {\n * if (count <= 2) {\n * count++\n * console.log(\"failure\")\n * resume(Effect.fail(new Error()))\n * } else {\n * console.log(\"success\")\n * resume(Effect.succeed(\"yay!\"))\n * }\n * })\n *\n * // Define a repetition policy using a fixed delay between retries\n * const policy = Schedule.fixed(\"100 millis\")\n *\n * const repeated = Effect.retry(task, policy)\n *\n * Effect.runPromise(repeated).then(console.log)\n * // Output:\n * // failure\n * // failure\n * // failure\n * // success\n * // yay!\n * ```\n *\n * **Example** (Retrying a Task up to 5 times)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * let count = 0\n *\n * // Simulates an effect with possible failures\n * const task = Effect.async((resume) => {\n * if (count <= 2) {\n * count++\n * console.log(\"failure\")\n * resume(Effect.fail(new Error()))\n * } else {\n * console.log(\"success\")\n * resume(Effect.succeed(\"yay!\"))\n * }\n * })\n *\n * // Retry the task up to 5 times\n * Effect.runPromise(Effect.retry(task, { times: 5 })).then(console.log)\n * // Output:\n * // failure\n * // failure\n * // failure\n * // success\n * ```\n *\n * **Example** (Retrying Until a Specific Condition is Met)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * let count = 0\n *\n * // Define an effect that simulates varying error on each invocation\n * const action = Effect.failSync(() => {\n * console.log(`Action called ${++count} time(s)`)\n * return `Error ${count}`\n * })\n *\n * // Retry the action until a specific condition is met\n * const program = Effect.retry(action, {\n * until: (err) => err === \"Error 3\"\n * })\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // Action called 1 time(s)\n * // Action called 2 time(s)\n * // Action called 3 time(s)\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: { _id: 'Cause', _tag: 'Fail', failure: 'Error 3' }\n * // }\n * ```\n *\n * @see {@link retryOrElse} for a version that allows you to run a fallback.\n * @see {@link repeat} if your retry condition is based on successful outcomes rather than errors.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const retry = schedule_.retry_combined;\n/**\n * Apply an `ExecutionPlan` to the effect, which allows you to fallback to\n * different resources in case of failure.\n *\n * @since 3.16.0\n * @category Error handling\n * @experimental\n */\nexport const withExecutionPlan = internalExecutionPlan.withExecutionPlan;\n/**\n * Retries a failing effect and runs a fallback effect if retries are exhausted.\n *\n * **Details**\n *\n * The `Effect.retryOrElse` function attempts to retry a failing effect multiple\n * times according to a defined {@link Schedule} policy.\n *\n * If the retries are exhausted and the effect still fails, it runs a fallback\n * effect instead.\n *\n * **When to Use**\n *\n * This function is useful when you want to handle failures gracefully by\n * specifying an alternative action after repeated failures.\n *\n * **Example** (Retrying with Fallback)\n *\n * ```ts\n * import { Effect, Schedule, Console } from \"effect\"\n *\n * let count = 0\n *\n * // Simulates an effect with possible failures\n * const task = Effect.async((resume) => {\n * if (count <= 2) {\n * count++\n * console.log(\"failure\")\n * resume(Effect.fail(new Error()))\n * } else {\n * console.log(\"success\")\n * resume(Effect.succeed(\"yay!\"))\n * }\n * })\n *\n * // Retry the task with a delay between retries and a maximum of 2 retries\n * const policy = Schedule.addDelay(Schedule.recurs(2), () => \"100 millis\")\n *\n * // If all retries fail, run the fallback effect\n * const repeated = Effect.retryOrElse(\n * task,\n * policy,\n * // fallback\n * () => Console.log(\"orElse\").pipe(Effect.as(\"default value\"))\n * )\n *\n * Effect.runPromise(repeated).then(console.log)\n * // Output:\n * // failure\n * // failure\n * // failure\n * // orElse\n * // default value\n * ```\n *\n * @see {@link retry} for a version that does not run a fallback effect.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const retryOrElse = schedule_.retryOrElse_Effect;\nconst try_ = effect.try_;\nexport {\n/**\n * Creates an `Effect` that represents a synchronous computation that might\n * fail.\n *\n * **When to Use**\n *\n * In situations where you need to perform synchronous operations that might\n * fail, such as parsing JSON, you can use the `try` constructor. This\n * constructor is designed to handle operations that could throw exceptions by\n * capturing those exceptions and transforming them into manageable errors.\n *\n * **Error Handling**\n *\n * There are two ways to handle errors with `try`:\n *\n * 1. If you don't provide a `catch` function, the error is caught and the\n * effect fails with an `UnknownException`.\n * 2. If you provide a `catch` function, the error is caught and the `catch`\n * function maps it to an error of type `E`.\n *\n * **Example** (Safe JSON Parsing)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const parse = (input: string) =>\n * // This might throw an error if input is not valid JSON\n * Effect.try(() => JSON.parse(input))\n *\n * // ┌─── Effect\n * // ▼\n * const program = parse(\"\")\n *\n * ```\n *\n * **Example** (Custom Error Handling)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const parse = (input: string) =>\n * Effect.try({\n * // JSON.parse may throw for bad input\n * try: () => JSON.parse(input),\n * // remap the error\n * catch: (unknown) => new Error(`something went wrong ${unknown}`)\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const program = parse(\"\")\n * ```\n *\n * @see {@link sync} if the effectful computation is synchronous and does not\n * throw errors.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\ntry_ as try };\n/**\n * Returns an effect that maps its success using the specified side-effecting\n * `try` function, converting any errors into typed failed effects using the\n * `catch` function.\n *\n * @see {@link tryPromise} for a version that works with asynchronous computations.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const tryMap = effect.tryMap;\n/**\n * Returns an effect that maps its success using the specified side-effecting\n * `try` function, converting any promise rejections into typed failed effects\n * using the `catch` function.\n *\n * An optional `AbortSignal` can be provided to allow for interruption of the\n * wrapped `Promise` API.\n *\n * @see {@link tryMap} for a version that works with synchronous computations.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const tryMapPromise = effect.tryMapPromise;\n/**\n * Creates an `Effect` that represents an asynchronous computation that might\n * fail.\n *\n * **When to Use**\n *\n * In situations where you need to perform asynchronous operations that might\n * fail, such as fetching data from an API, you can use the `tryPromise`\n * constructor. This constructor is designed to handle operations that could\n * throw exceptions by capturing those exceptions and transforming them into\n * manageable errors.\n *\n * **Error Handling**\n *\n * There are two ways to handle errors with `tryPromise`:\n *\n * 1. If you don't provide a `catch` function, the error is caught and the\n * effect fails with an `UnknownException`.\n * 2. If you provide a `catch` function, the error is caught and the `catch`\n * function maps it to an error of type `E`.\n *\n * **Interruptions**\n *\n * An optional `AbortSignal` can be provided to allow for interruption of the\n * wrapped `Promise` API.\n *\n * **Example** (Fetching a TODO Item)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const getTodo = (id: number) =>\n * // Will catch any errors and propagate them as UnknownException\n * Effect.tryPromise(() =>\n * fetch(`https://jsonplaceholder.typicode.com/todos/${id}`)\n * )\n *\n * // ┌─── Effect\n * // ▼\n * const program = getTodo(1)\n * ```\n *\n * **Example** (Custom Error Handling)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const getTodo = (id: number) =>\n * Effect.tryPromise({\n * try: () => fetch(`https://jsonplaceholder.typicode.com/todos/${id}`),\n * // remap the error\n * catch: (unknown) => new Error(`something went wrong ${unknown}`)\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const program = getTodo(1)\n * ```\n *\n * @see {@link promise} if the effectful computation is asynchronous and does not throw errors.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const tryPromise = effect.tryPromise;\n/**\n * The `unsandbox` function is used to revert an effect that has been\n * sandboxed by {@link sandbox}. When you apply `unsandbox`, the\n * effect's error channel is restored to its original state, without the\n * detailed `Cause` information. This means that any underlying causes of\n * errors, defects, or fiber interruptions are no longer exposed in the error\n * channel.\n *\n * This function is useful when you want to remove the detailed error tracking\n * provided by `sandbox` and return to the standard error handling for\n * your effect. Once unsandboxed, the effect behaves as if `sandbox` was\n * never applied.\n *\n * @see {@link sandbox} to expose the full cause of failures, defects, or interruptions.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const unsandbox = effect.unsandbox;\n/**\n * Allows interruption of the current fiber, even in uninterruptible regions.\n *\n * **Details**\n *\n * This effect checks whether any other fibers are attempting to interrupt the\n * current fiber. If so, it allows the current fiber to perform a\n * self-interruption.\n *\n * **When to Use**\n *\n * This is useful in situations where you want to allow interruption to happen\n * even in regions of the code that are normally uninterruptible.\n *\n * @since 2.0.0\n * @category Interruption\n */\nexport const allowInterrupt = effect.allowInterrupt;\n/**\n * Checks if interruption is allowed and executes a callback accordingly.\n *\n * **Details**\n *\n * This function checks the current interrupt status of the running fiber. It\n * then calls the provided callback, passing a boolean indicating whether\n * interruption is allowed.\n *\n * **When to Use**\n *\n * This is useful for handling specific logic based on whether the current\n * operation can be interrupted, such as when performing asynchronous operations\n * or handling cancellation.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Effect.checkInterruptible((isInterruptible) => {\n * if (isInterruptible) {\n * return Console.log(\"You can interrupt this operation.\")\n * } else {\n * return Console.log(\"This operation cannot be interrupted.\")\n * }\n * })\n * })\n *\n * Effect.runPromise(program)\n * // Output: You can interrupt this operation.\n *\n * Effect.runPromise(program.pipe(Effect.uninterruptible))\n * // Output: This operation cannot be interrupted.\n *\n * ```\n *\n * @since 2.0.0\n * @category Interruption\n */\nexport const checkInterruptible = core.checkInterruptible;\n/**\n * Provides a way to handle timeouts in uninterruptible effects, allowing them\n * to continue in the background while the main control flow proceeds with the\n * timeout error.\n *\n * **Details**\n *\n * The `disconnect` function allows an uninterruptible effect to continue\n * running in the background, while enabling the main control flow to\n * immediately recognize a timeout condition. This is useful when you want to\n * avoid blocking the program due to long-running tasks, especially when those\n * tasks do not need to affect the flow of the rest of the program.\n *\n * Without `disconnect`, an uninterruptible effect will ignore the\n * timeout and continue executing until it completes. The timeout error will\n * only be assessed after the effect finishes, which can cause delays in\n * recognizing a timeout.\n *\n * With `disconnect`, the uninterruptible effect proceeds in the\n * background while the main program flow can immediately handle the timeout\n * error or trigger alternative logic. This enables faster timeout handling\n * without waiting for the completion of the long-running task.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const longRunningTask = Effect.gen(function* () {\n * console.log(\"Start heavy processing...\")\n * yield* Effect.sleep(\"5 seconds\") // Simulate a long process\n * console.log(\"Heavy processing done.\")\n * return \"Data processed\"\n * })\n *\n * const timedEffect = longRunningTask.pipe(\n * Effect.uninterruptible,\n * // Allows the task to finish in the background if it times out\n * Effect.disconnect,\n * Effect.timeout(\"1 second\")\n * )\n *\n * Effect.runPromiseExit(timedEffect).then(console.log)\n * // Output:\n * // Start heavy processing...\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Fail',\n * // failure: { _tag: 'TimeoutException' }\n * // }\n * // }\n * // Heavy processing done.\n * ```\n *\n * @see {@link timeout} for a version that interrupts the effect.\n * @see {@link uninterruptible} for creating an uninterruptible effect.\n *\n * @since 2.0.0\n * @category Interruption\n */\nexport const disconnect = fiberRuntime.disconnect;\n/**\n * Represents an effect that interrupts the current fiber.\n *\n * **Details**\n *\n * This effect models the explicit interruption of the fiber in which it runs.\n * When executed, it causes the fiber to stop its operation immediately,\n * capturing the interruption details such as the fiber's ID and its start time.\n * The resulting interruption can be observed in the `Exit` type if the effect\n * is run with functions like {@link runPromiseExit}.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const program = Effect.gen(function* () {\n * console.log(\"start\")\n * yield* Effect.sleep(\"2 seconds\")\n * yield* Effect.interrupt\n * console.log(\"done\")\n * return \"some result\"\n * })\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // start\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Interrupt',\n * // fiberId: {\n * // _id: 'FiberId',\n * // _tag: 'Runtime',\n * // id: 0,\n * // startTimeMillis: ...\n * // }\n * // }\n * // }\n * ```\n *\n * @since 2.0.0\n * @category Interruption\n */\nexport const interrupt = core.interrupt;\n/**\n * @since 2.0.0\n * @category Interruption\n */\nexport const interruptWith = core.interruptWith;\n/**\n * Marks an effect as interruptible.\n *\n * @since 2.0.0\n * @category Interruption\n */\nexport const interruptible = core.interruptible;\n/**\n * This function behaves like {@link interruptible}, but it also provides a\n * `restore` function. This function can be used to restore the interruptibility\n * of any specific region of code.\n *\n * @since 2.0.0\n * @category Interruption\n */\nexport const interruptibleMask = core.interruptibleMask;\n/**\n * Registers a cleanup effect to run when an effect is interrupted.\n *\n * **Details**\n *\n * This function allows you to specify an effect to run when the fiber is\n * interrupted. This effect will be executed when the fiber is interrupted,\n * allowing you to perform cleanup or other actions.\n *\n * **Example** (Running a Cleanup Action on Interruption)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * // This handler is executed when the fiber is interrupted\n * const handler = Effect.onInterrupt((_fibers) => Console.log(\"Cleanup completed\"))\n *\n * const success = Console.log(\"Task completed\").pipe(Effect.as(\"some result\"), handler)\n *\n * Effect.runFork(success)\n * // Output:\n * // Task completed\n *\n * const failure = Console.log(\"Task failed\").pipe(Effect.andThen(Effect.fail(\"some error\")), handler)\n *\n * Effect.runFork(failure)\n * // Output:\n * // Task failed\n *\n * const interruption = Console.log(\"Task interrupted\").pipe(Effect.andThen(Effect.interrupt), handler)\n *\n * Effect.runFork(interruption)\n * // Output:\n * // Task interrupted\n * // Cleanup completed\n * ```\n *\n * @since 2.0.0\n * @category Interruption\n */\nexport const onInterrupt = core.onInterrupt;\n/**\n * Marks an effect as uninterruptible.\n *\n * @since 2.0.0\n * @category Interruption\n */\nexport const uninterruptible = core.uninterruptible;\n/**\n * This function behaves like {@link uninterruptible}, but it also provides a\n * `restore` function. This function can be used to restore the interruptibility\n * of any specific region of code.\n *\n * @since 2.0.0\n * @category Interruption\n */\nexport const uninterruptibleMask = core.uninterruptibleMask;\n/**\n * Transforms a `Predicate` function into an `Effect` returning the input value if the predicate returns `true`\n * or failing with specified error if the predicate fails\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const isPositive = (n: number): boolean => n > 0\n *\n * // succeeds with `1`\n * Effect.liftPredicate(1, isPositive, n => `${n} is not positive`)\n *\n * // fails with `\"0 is not positive\"`\n * Effect.liftPredicate(0, isPositive, n => `${n} is not positive`)\n * ```\n *\n * @category Condition Checking\n * @since 3.4.0\n */\nexport const liftPredicate = effect.liftPredicate;\n/**\n * Replaces the value inside an effect with a constant value.\n *\n * **Details**\n *\n * This function allows you to ignore the original value inside an effect and\n * replace it with a constant value.\n *\n * **When to Use**\n *\n * It is useful when you no longer need the value produced by an effect but want\n * to ensure that the effect completes successfully with a specific constant\n * result instead. For instance, you can replace the value produced by a\n * computation with a predefined value, ignoring what was calculated before.\n *\n * **Example** (Replacing a Value)\n *\n * ```ts\n * import { pipe, Effect } from \"effect\"\n *\n * // Replaces the value 5 with the constant \"new value\"\n * const program = pipe(Effect.succeed(5), Effect.as(\"new value\"))\n *\n * Effect.runPromise(program).then(console.log)\n * // Output: \"new value\"\n * ```\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const as = core.as;\n/**\n * This function maps the success value of an `Effect` value to a `Some` value\n * in an `Option` value. If the original `Effect` value fails, the returned\n * `Effect` value will also fail.\n *\n * @category Mapping\n * @since 2.0.0\n */\nexport const asSome = effect.asSome;\n/**\n * This function maps the error value of an `Effect` value to a `Some` value\n * in an `Option` value. If the original `Effect` value succeeds, the returned\n * `Effect` value will also succeed.\n *\n * @category Mapping\n * @since 2.0.0\n */\nexport const asSomeError = effect.asSomeError;\n/**\n * This function maps the success value of an `Effect` value to `void`. If the\n * original `Effect` value succeeds, the returned `Effect` value will also\n * succeed. If the original `Effect` value fails, the returned `Effect` value\n * will fail with the same error.\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const asVoid = core.asVoid;\n/**\n * Swaps the success and error channels of an effect.\n *\n * **Details**\n *\n * This function reverses the flow of an effect by swapping its success and\n * error channels. The success value becomes an error, and the error value\n * becomes a success.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.fail(\"Oh uh!\").pipe(Effect.as(2))\n *\n * // ┌─── Effect\n * // ▼\n * const flipped = Effect.flip(program)\n * ```\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const flip = core.flip;\n/**\n * Swaps the error/value parameters, applies the function `f` and flips the\n * parameters back\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const flipWith = effect.flipWith;\n/**\n * Transforms the value inside an effect by applying a function to it.\n *\n * **Syntax**\n *\n * ```ts skip-type-checking\n * const mappedEffect = pipe(myEffect, Effect.map(transformation))\n * // or\n * const mappedEffect = Effect.map(myEffect, transformation)\n * // or\n * const mappedEffect = myEffect.pipe(Effect.map(transformation))\n * ```\n *\n * **Details**\n *\n * `map` takes a function and applies it to the value contained within an\n * effect, creating a new effect with the transformed value.\n *\n * It's important to note that effects are immutable, meaning that the original\n * effect is not modified. Instead, a new effect is returned with the updated\n * value.\n *\n * **Example** (Adding a Service Charge)\n *\n * ```ts\n * import { pipe, Effect } from \"effect\"\n *\n * const addServiceCharge = (amount: number) => amount + 1\n *\n * const fetchTransactionAmount = Effect.promise(() => Promise.resolve(100))\n *\n * const finalAmount = pipe(\n * fetchTransactionAmount,\n * Effect.map(addServiceCharge)\n * )\n *\n * Effect.runPromise(finalAmount).then(console.log)\n * // Output: 101\n * ```\n *\n * @see {@link mapError} for a version that operates on the error channel.\n * @see {@link mapBoth} for a version that operates on both channels.\n * @see {@link flatMap} or {@link andThen} for a version that can return a new effect.\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const map = core.map;\n/**\n * Applies a stateful transformation to each element of a collection, producing\n * new elements along with an updated state.\n *\n * **When to Use**\n *\n * Use `mapAccum` when you need to process each element of a collection while\n * keeping track of some state across iterations.\n *\n * **Details**\n *\n * `mapAccum` takes an initial state (`initial`) and a function (`f`) that is\n * applied to each element. This function returns a new state and a transformed\n * element. The final effect produces both the accumulated state and the\n * transformed collection.\n *\n * If the input collection is a non-empty array, the return type will match the\n * input collection type.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // Define an initial state and a transformation function\n * const initialState = 0\n *\n * const transformation = (state: number, element: string) =>\n * Effect.succeed<[number, string]>([state + element.length, element.toUpperCase()])\n *\n * // Apply mapAccum to transform an array of strings\n * const program = Effect.mapAccum([\"a\", \"bb\", \"ccc\"], initialState, transformation)\n *\n * Effect.runPromise(program).then(([finalState, transformedCollection]) => {\n * console.log(finalState)\n * console.log(transformedCollection)\n * })\n * // Output:\n * // 6\n * // [ 'A', 'BB', 'CCC' ]\n * ```\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const mapAccum = effect.mapAccum;\n/**\n * Applies transformations to both the success and error channels of an effect.\n *\n * **Details**\n *\n * This function takes two map functions as arguments: one for the error channel\n * and one for the success channel. You can use it when you want to modify both\n * the error and the success values without altering the overall success or\n * failure status of the effect.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const simulatedTask = Effect.fail(\"Oh no!\").pipe(Effect.as(1))\n *\n * // ┌─── Effect\n * // ▼\n * const modified = Effect.mapBoth(simulatedTask, {\n * onFailure: (message) => new Error(message),\n * onSuccess: (n) => n > 0\n * })\n * ```\n *\n * @see {@link map} for a version that operates on the success channel.\n * @see {@link mapError} for a version that operates on the error channel.\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const mapBoth = core.mapBoth;\n/**\n * Transforms or modifies the error produced by an effect without affecting its\n * success value.\n *\n * **When to Use**\n *\n * This function is helpful when you want to enhance the error with additional\n * information, change the error type, or apply custom error handling while\n * keeping the original behavior of the effect's success values intact. It only\n * operates on the error channel and leaves the success channel unchanged.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const simulatedTask = Effect.fail(\"Oh no!\").pipe(Effect.as(1))\n *\n * // ┌─── Effect\n * // ▼\n * const mapped = Effect.mapError(\n * simulatedTask,\n * (message) => new Error(message)\n * )\n * ```\n *\n * @see {@link map} for a version that operates on the success channel.\n * @see {@link mapBoth} for a version that operates on both channels.\n * @see {@link orElseFail} if you want to replace the error with a new one.\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const mapError = core.mapError;\n/**\n * Maps the cause of failure of an effect using a specified function.\n *\n * @see {@link sandbox} for a version that exposes the full cause of failures, defects, or interruptions.\n * @see {@link catchAllCause} for a version that can recover from all types of defects.\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const mapErrorCause = effect.mapErrorCause;\n/**\n * Combines both success and error channels of an effect into a single outcome.\n *\n * **Details**\n *\n * This function transforms an effect that may fail into one that always returns\n * a value, where both success and failure outcomes are handled as values in the\n * success channel.\n *\n * **When to Use**\n *\n * This can be useful when you want to continue execution regardless of the\n * error type and still capture both successful results and errors as part of\n * the outcome.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.fail(\"Oh uh!\").pipe(Effect.as(2))\n *\n * // ┌─── Effect\n * // ▼\n * const recovered = Effect.merge(program)\n * ```\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const merge = effect.merge;\n/**\n * Returns a new effect with the boolean value of this effect negated.\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const negate = effect.negate;\n/**\n * Creates a scoped resource using an `acquire` and `release` effect.\n *\n * **Details**\n *\n * This function helps manage resources by combining two `Effect` values: one\n * for acquiring the resource and one for releasing it.\n *\n * `acquireRelease` does the following:\n *\n * 1. Ensures that the effect that acquires the resource will not be\n * interrupted. Note that acquisition may still fail due to internal\n * reasons (such as an uncaught exception).\n * 2. Ensures that the `release` effect will not be interrupted, and will be\n * executed as long as the acquisition effect successfully acquires the\n * resource.\n *\n * If the `acquire` function succeeds, the `release` function is added to the\n * list of finalizers for the scope. This ensures that the release will happen\n * automatically when the scope is closed.\n *\n * Both `acquire` and `release` run uninterruptibly, meaning they cannot be\n * interrupted while they are executing.\n *\n * Additionally, the `release` function can be influenced by the exit value when\n * the scope closes, allowing for custom handling of how the resource is\n * released based on the execution outcome.\n *\n * **When to Use**\n *\n * This function is used to ensure that an effect that represents the\n * acquisition of a resource (for example, opening a file, launching a thread,\n * etc.) will not be interrupted, and that the resource will always be released\n * when the `Effect` completes execution.\n *\n * **Example** (Defining a Simple Resource)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // Define an interface for a resource\n * interface MyResource {\n * readonly contents: string\n * readonly close: () => Promise\n * }\n *\n * // Simulate resource acquisition\n * const getMyResource = (): Promise =>\n * Promise.resolve({\n * contents: \"lorem ipsum\",\n * close: () =>\n * new Promise((resolve) => {\n * console.log(\"Resource released\")\n * resolve()\n * })\n * })\n *\n * // Define how the resource is acquired\n * const acquire = Effect.tryPromise({\n * try: () =>\n * getMyResource().then((res) => {\n * console.log(\"Resource acquired\")\n * return res\n * }),\n * catch: () => new Error(\"getMyResourceError\")\n * })\n *\n * // Define how the resource is released\n * const release = (res: MyResource) => Effect.promise(() => res.close())\n *\n * // Create the resource management workflow\n * //\n * // ┌─── Effect\n * // ▼\n * const resource = Effect.acquireRelease(acquire, release)\n * ```\n *\n * @see {@link acquireUseRelease} for a version that automatically handles the scoping of resources.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const acquireRelease = fiberRuntime.acquireRelease;\n/**\n * Creates a scoped resource with an interruptible acquire action.\n *\n * **Details**\n *\n * This function is similar to {@link acquireRelease}, but it allows the\n * acquisition of the resource to be interrupted. The `acquire` effect, which\n * represents the process of obtaining the resource, can be interrupted if\n * necessary.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const acquireReleaseInterruptible = fiberRuntime.acquireReleaseInterruptible;\n/**\n * Many real-world operations involve working with resources that must be released when no longer needed, such as:\n *\n * - Database connections\n * - File handles\n * - Network requests\n *\n * This function ensures that a resource is:\n *\n * 1. **Acquired** properly.\n * 2. **Used** for its intended purpose.\n * 3. **Released** even if an error occurs.\n *\n * **Example** (Automatically Managing Resource Lifetime)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // Define an interface for a resource\n * interface MyResource {\n * readonly contents: string\n * readonly close: () => Promise\n * }\n *\n * // Simulate resource acquisition\n * const getMyResource = (): Promise =>\n * Promise.resolve({\n * contents: \"lorem ipsum\",\n * close: () =>\n * new Promise((resolve) => {\n * console.log(\"Resource released\")\n * resolve()\n * })\n * })\n *\n * // Define how the resource is acquired\n * const acquire = Effect.tryPromise({\n * try: () =>\n * getMyResource().then((res) => {\n * console.log(\"Resource acquired\")\n * return res\n * }),\n * catch: () => new Error(\"getMyResourceError\")\n * })\n *\n * // Define how the resource is released\n * const release = (res: MyResource) => Effect.promise(() => res.close())\n *\n * const use = (res: MyResource) => Console.log(`content is ${res.contents}`)\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.acquireUseRelease(acquire, use, release)\n *\n * Effect.runPromise(program)\n * // Output:\n * // Resource acquired\n * // content is lorem ipsum\n * // Resource released\n * ```\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const acquireUseRelease = core.acquireUseRelease;\n/**\n * Ensures a finalizer is added to the scope of the calling effect, guaranteeing\n * it runs when the scope is closed.\n *\n * **Details**\n *\n * This function adds a finalizer that will execute whenever the scope of the\n * effect is closed, regardless of whether the effect succeeds, fails, or is\n * interrupted. The finalizer receives the `Exit` value of the effect's scope,\n * allowing it to react differently depending on how the effect concludes.\n *\n * Finalizers are a reliable way to manage resource cleanup, ensuring that\n * resources such as file handles, network connections, or database transactions\n * are properly closed even in the event of an unexpected interruption or error.\n *\n * Finalizers operate in conjunction with Effect's scoped resources. If an\n * effect with a finalizer is wrapped in a scope, the finalizer will execute\n * automatically when the scope ends.\n *\n * **Example** (Adding a Finalizer on Success)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function* () {\n * yield* Effect.addFinalizer((exit) =>\n * Console.log(`Finalizer executed. Exit status: ${exit._tag}`)\n * )\n * return \"some result\"\n * })\n *\n * // Wrapping the effect in a scope\n * //\n * // ┌─── Effect\n * // ▼\n * const runnable = Effect.scoped(program)\n *\n * Effect.runPromiseExit(runnable).then(console.log)\n * // Output:\n * // Finalizer executed. Exit status: Success\n * // { _id: 'Exit', _tag: 'Success', value: 'some result' }\n * ```\n *\n * **Example** (Adding a Finalizer on Failure)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function* () {\n * yield* Effect.addFinalizer((exit) =>\n * Console.log(`Finalizer executed. Exit status: ${exit._tag}`)\n * )\n * return yield* Effect.fail(\"Uh oh!\")\n * })\n *\n * // Wrapping the effect in a scope\n * //\n * // ┌─── Effect\n * // ▼\n * const runnable = Effect.scoped(program)\n *\n * Effect.runPromiseExit(runnable).then(console.log)\n * // Output:\n * // Finalizer executed. Exit status: Failure\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: { _id: 'Cause', _tag: 'Fail', failure: 'Uh oh!' }\n * // }\n * ```\n *\n * **Example** (Adding a Finalizer on Interruption)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function* () {\n * yield* Effect.addFinalizer((exit) =>\n * Console.log(`Finalizer executed. Exit status: ${exit._tag}`)\n * )\n * return yield* Effect.interrupt\n * })\n *\n * // Wrapping the effect in a scope\n * //\n * // ┌─── Effect\n * // ▼\n * const runnable = Effect.scoped(program)\n *\n * Effect.runPromiseExit(runnable).then(console.log)\n * // Output:\n * // Finalizer executed. Exit status: Failure\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Interrupt',\n * // fiberId: {\n * // _id: 'FiberId',\n * // _tag: 'Runtime',\n * // id: 0,\n * // startTimeMillis: ...\n * // }\n * // }\n * // }\n * ```\n *\n * @see {@link onExit} for attaching a finalizer directly to an effect.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const addFinalizer = fiberRuntime.addFinalizer;\n/**\n * Guarantees the execution of a finalizer when an effect starts execution.\n *\n * **Details**\n *\n * This function allows you to specify a `finalizer` effect that will always be\n * run once the effect starts execution, regardless of whether the effect\n * succeeds, fails, or is interrupted.\n *\n * **When to Use**\n *\n * This is useful when you need to ensure that certain cleanup or final steps\n * are executed in all cases, such as releasing resources or performing\n * necessary logging.\n *\n * While this function provides strong guarantees about executing the finalizer,\n * it is considered a low-level tool, which may not be ideal for more complex\n * resource management. For higher-level resource management with automatic\n * acquisition and release, see the {@link acquireRelease} family of functions.\n * For use cases where you need access to the result of an effect, consider\n * using {@link onExit}.\n *\n * **Example** (Running a Finalizer in All Outcomes)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * // Define a cleanup effect\n * const handler = Effect.ensuring(Console.log(\"Cleanup completed\"))\n *\n * // Define a successful effect\n * const success = Console.log(\"Task completed\").pipe(\n * Effect.as(\"some result\"),\n * handler\n * )\n *\n * Effect.runFork(success)\n * // Output:\n * // Task completed\n * // Cleanup completed\n *\n * // Define a failing effect\n * const failure = Console.log(\"Task failed\").pipe(\n * Effect.andThen(Effect.fail(\"some error\")),\n * handler\n * )\n *\n * Effect.runFork(failure)\n * // Output:\n * // Task failed\n * // Cleanup completed\n *\n * // Define an interrupted effect\n * const interruption = Console.log(\"Task interrupted\").pipe(\n * Effect.andThen(Effect.interrupt),\n * handler\n * )\n *\n * Effect.runFork(interruption)\n * // Output:\n * // Task interrupted\n * // Cleanup completed\n * ```\n *\n * @see {@link onExit} for a version that provides access to the result of an\n * effect.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const ensuring = fiberRuntime.ensuring;\n/**\n * Ensures a cleanup effect runs whenever the calling effect fails, providing\n * the failure cause to the cleanup effect.\n *\n * **Details**\n *\n * This function allows you to attach a cleanup effect that runs whenever the\n * calling effect fails. The cleanup effect receives the cause of the failure,\n * allowing you to perform actions such as logging, releasing resources, or\n * executing additional recovery logic based on the error. The cleanup effect\n * will execute even if the failure is due to interruption.\n *\n * Importantly, the cleanup effect itself is uninterruptible, ensuring that it\n * completes regardless of external interruptions.\n *\n * **Example** (Running Cleanup Only on Failure)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * // This handler logs the failure cause when the effect fails\n * const handler = Effect.onError((cause) =>\n * Console.log(`Cleanup completed: ${cause}`)\n * )\n *\n * // Define a successful effect\n * const success = Console.log(\"Task completed\").pipe(\n * Effect.as(\"some result\"),\n * handler\n * )\n *\n * Effect.runFork(success)\n * // Output:\n * // Task completed\n *\n * // Define a failing effect\n * const failure = Console.log(\"Task failed\").pipe(\n * Effect.andThen(Effect.fail(\"some error\")),\n * handler\n * )\n *\n * Effect.runFork(failure)\n * // Output:\n * // Task failed\n * // Cleanup completed: Error: some error\n *\n * // Define a failing effect\n * const defect = Console.log(\"Task failed with defect\").pipe(\n * Effect.andThen(Effect.die(\"Boom!\")),\n * handler\n * )\n *\n * Effect.runFork(defect)\n * // Output:\n * // Task failed with defect\n * // Cleanup completed: Error: Boom!\n *\n * // Define an interrupted effect\n * const interruption = Console.log(\"Task interrupted\").pipe(\n * Effect.andThen(Effect.interrupt),\n * handler\n * )\n *\n * Effect.runFork(interruption)\n * // Output:\n * // Task interrupted\n * // Cleanup completed: All fibers interrupted without errors.\n * ```\n *\n * @see {@link ensuring} for attaching a cleanup effect that runs on both success and failure.\n * @see {@link onExit} for attaching a cleanup effect that runs on all possible exits.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const onError = core.onError;\n/**\n * Guarantees that a cleanup function runs regardless of whether the effect\n * succeeds, fails, or is interrupted.\n *\n * **Details**\n *\n * This function ensures that a provided cleanup function is executed after the\n * effect completes, regardless of the outcome. The cleanup function is given\n * the `Exit` value of the effect, which provides detailed information about the\n * result:\n * - If the effect succeeds, the `Exit` contains the success value.\n * - If the effect fails, the `Exit` contains the error or failure cause.\n * - If the effect is interrupted, the `Exit` reflects the interruption.\n *\n * The cleanup function is guaranteed to run uninterruptibly, ensuring reliable\n * resource management even in complex or high-concurrency scenarios.\n *\n * **Example** (Running a Cleanup Function with the Effect’s Result)\n *\n * ```ts\n * import { Console, Effect, Exit } from \"effect\"\n *\n * // Define a cleanup effect that logs the result\n * const handler = Effect.onExit((exit) =>\n * Console.log(`Cleanup completed: ${Exit.getOrElse(exit, String)}`)\n * )\n *\n * // Define a successful effect\n * const success = Console.log(\"Task completed\").pipe(\n * Effect.as(\"some result\"),\n * handler\n * )\n *\n * Effect.runFork(success)\n * // Output:\n * // Task completed\n * // Cleanup completed: some result\n *\n * // Define a failing effect\n * const failure = Console.log(\"Task failed\").pipe(\n * Effect.andThen(Effect.fail(\"some error\")),\n * handler\n * )\n *\n * Effect.runFork(failure)\n * // Output:\n * // Task failed\n * // Cleanup completed: Error: some error\n *\n * // Define an interrupted effect\n * const interruption = Console.log(\"Task interrupted\").pipe(\n * Effect.andThen(Effect.interrupt),\n * handler\n * )\n *\n * Effect.runFork(interruption)\n * // Output:\n * // Task interrupted\n * // Cleanup completed: All fibers interrupted without errors.\n * ```\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const onExit = core.onExit;\n/**\n * Ensures that finalizers are run concurrently when the scope of an effect is\n * closed.\n *\n * **Details**\n *\n * This function modifies the behavior of finalizers within a scoped workflow to\n * allow them to run concurrently when the scope is closed.\n *\n * By default, finalizers are executed sequentially in reverse order of their\n * addition, but this function changes that behavior to execute all finalizers\n * concurrently.\n *\n * **When to Use**\n *\n * Running finalizers concurrently can improve performance when multiple\n * independent cleanup tasks need to be performed. However, it requires that\n * these tasks do not depend on the order of execution or introduce race\n * conditions.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * // Define a program that adds multiple finalizers\n * const program = Effect.gen(function*() {\n * yield* Effect.addFinalizer(() => Console.log(\"Finalizer 1 executed\").pipe(Effect.delay(\"300 millis\")))\n * yield* Effect.addFinalizer(() => Console.log(\"Finalizer 2 executed\").pipe(Effect.delay(\"100 millis\")))\n * yield* Effect.addFinalizer(() => Console.log(\"Finalizer 3 executed\").pipe(Effect.delay(\"200 millis\")))\n * return \"some result\"\n * })\n *\n * // Modify the program to ensure finalizers run in parallel\n * const modified = program.pipe(Effect.parallelFinalizers)\n *\n * const runnable = Effect.scoped(modified)\n *\n * Effect.runFork(runnable)\n * // Output:\n * // Finalizer 2 executed\n * // Finalizer 3 executed\n * // Finalizer 1 executed\n * ```\n *\n * @see {@link sequentialFinalizers} for a version that ensures finalizers are run sequentially.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const parallelFinalizers = fiberRuntime.parallelFinalizers;\n/**\n * Ensures that finalizers are run sequentially in reverse order of their\n * addition.\n *\n * **Details**\n *\n * This function modifies the behavior of finalizers within a scoped workflow to\n * ensure they are run sequentially in reverse order when the scope is closed.\n *\n * By default, finalizers are executed sequentially, so this only changes the\n * behavior if the scope is configured to run finalizers concurrently.\n *\n * @see {@link parallelFinalizers} for a version that ensures finalizers are run concurrently.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const sequentialFinalizers = fiberRuntime.sequentialFinalizers;\n/**\n * Applies a custom execution strategy to finalizers within a scoped workflow.\n *\n * **Details**\n *\n * This function allows you to control how finalizers are executed in a scope by\n * applying a specified `ExecutionStrategy`. The `strategy` can dictate whether\n * finalizers run (e.g., sequentially or in parallel).\n *\n * Additionally, the function provides a `restore` operation, which ensures that\n * the effect passed to it is executed under the default execution strategy.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const finalizersMask = fiberRuntime.finalizersMask;\n/**\n * Provides access to the current scope in a scoped workflow.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const scope = fiberRuntime.scope;\n/**\n * Accesses the current scope and uses it to perform the specified effect.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const scopeWith = fiberRuntime.scopeWith;\n/**\n * Creates a `Scope`, passes it to the specified effectful function, and closes\n * the scope when the effect completes (whether through success, failure, or\n * interruption).\n *\n * @since 3.11.0\n * @category Scoping, Resources & Finalization\n */\nexport const scopedWith = fiberRuntime.scopedWith;\n/**\n * Scopes all resources used in an effect to the lifetime of the effect.\n *\n * **Details**\n *\n * This function ensures that all resources used within an effect are tied to\n * its lifetime. Finalizers for these resources are executed automatically when\n * the effect completes, whether through success, failure, or interruption. This\n * guarantees proper resource cleanup without requiring explicit management.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const scoped = fiberRuntime.scopedEffect;\n/**\n * Scopes all resources acquired by one effect to the lifetime of another\n * effect.\n *\n * **Details**\n *\n * This function allows you to scope the resources acquired by one effect\n * (`self`) to the lifetime of another effect (`use`). This ensures that the\n * resources are cleaned up as soon as the `use` effect completes, regardless of\n * how the `use` effect ends (success, failure, or interruption).\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const acquire = Console.log(\"Acquiring resource\").pipe(\n * Effect.as(1),\n * Effect.tap(Effect.addFinalizer(() => Console.log(\"Releasing resource\")))\n * )\n * const use = (resource: number) => Console.log(`Using resource: ${resource}`)\n *\n * const program = acquire.pipe(Effect.using(use))\n *\n * Effect.runFork(program)\n * // Output:\n * // Acquiring resource\n * // Using resource: 1\n * // Releasing resource\n * ```\n *\n * @see {@link scopedWith} Manage scoped operations with a temporary scope.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const using = fiberRuntime.using;\n/**\n * Returns the result of the effect and a finalizer to close its scope.\n *\n * **Details**\n *\n * This function allows you to retrieve both the result of an effect and a\n * finalizer that can be used to manually close its scope. This is useful for\n * workflows where you need early access to the result while retaining control\n * over the resource cleanup process.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const acquire = Console.log(\"Acquiring resource\").pipe(\n * Effect.as(1),\n * Effect.tap(Effect.addFinalizer(() => Console.log(\"Releasing resource\")))\n * )\n * const program = Effect.gen(function*() {\n * const [finalizer, resource] = yield* Effect.withEarlyRelease(acquire)\n * console.log(`Using resource: ${resource}`)\n * yield* Effect.sleep(\"1 second\")\n * yield* finalizer\n * })\n *\n * Effect.runFork(program.pipe(Effect.scoped))\n * // Output:\n * // Acquiring resource\n * // Using resource: 1\n * // Releasing resource\n * ```\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const withEarlyRelease = fiberRuntime.withEarlyRelease;\n/**\n * Returns a new effect that will not succeed with its value before first\n * waiting for the end of all child fibers forked by the effect.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const awaitAllChildren = circular.awaitAllChildren;\n/**\n * Returns a new workflow that will not supervise any fibers forked by this\n * workflow.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const daemonChildren = fiberRuntime.daemonChildren;\n/**\n * Constructs an effect with information about the current `Fiber`.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const descriptor = effect.descriptor;\n/**\n * Constructs an effect based on information about the current `Fiber`.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const descriptorWith = effect.descriptorWith;\n/**\n * Returns a new workflow that executes this one and captures the changes in\n * `FiberRef` values.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const diffFiberRefs = effect.diffFiberRefs;\n/**\n * Acts on the children of this fiber (collected into a single fiber),\n * guaranteeing the specified callback will be invoked, whether or not this\n * effect succeeds.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const ensuringChild = circular.ensuringChild;\n/**\n * Acts on the children of this fiber, guaranteeing the specified callback\n * will be invoked, whether or not this effect succeeds.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const ensuringChildren = circular.ensuringChildren;\n/**\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const fiberId = core.fiberId;\n/**\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const fiberIdWith = core.fiberIdWith;\n/**\n * Creates a new fiber to run an effect concurrently.\n *\n * **Details**\n *\n * This function takes an effect and forks it into a separate fiber, allowing it\n * to run concurrently without blocking the original effect. The new fiber\n * starts execution immediately after being created, and the fiber object is\n * returned immediately without waiting for the effect to begin. This is useful\n * when you want to run tasks concurrently while continuing other tasks in the\n * parent fiber.\n *\n * The forked fiber is attached to the parent fiber's scope. This means that\n * when the parent fiber terminates, the child fiber will also be terminated\n * automatically. This feature, known as \"auto supervision,\" ensures that no\n * fibers are left running unintentionally. If you prefer not to have this auto\n * supervision behavior, you can use {@link forkDaemon} or {@link forkIn}.\n *\n * **When to Use**\n *\n * Use this function when you need to run an effect concurrently without\n * blocking the current execution flow. For example, you might use it to launch\n * background tasks or concurrent computations. However, working with fibers can\n * be complex, so before using this function directly, you might want to explore\n * higher-level functions like {@link raceWith}, {@link zip}, or others that can\n * manage concurrency for you.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const fib = (n: number): Effect.Effect =>\n * n < 2\n * ? Effect.succeed(n)\n * : Effect.zipWith(fib(n - 1), fib(n - 2), (a, b) => a + b)\n *\n * // ┌─── Effect, never, never>\n * // ▼\n * const fib10Fiber = Effect.fork(fib(10))\n * ```\n *\n * @see {@link forkWithErrorHandler} for a version that allows you to handle errors.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const fork = fiberRuntime.fork;\n/**\n * Creates a long-running background fiber that is independent of its parent.\n *\n * **Details**\n *\n * This function creates a \"daemon\" fiber that runs in the background and is not\n * tied to the lifecycle of its parent fiber. Unlike normal fibers that stop\n * when the parent fiber terminates, a daemon fiber will continue running until\n * the global scope closes or the fiber completes naturally. This makes it\n * useful for tasks that need to run in the background independently, such as\n * periodic logging, monitoring, or background data processing.\n *\n * **Example** (Creating a Daemon Fiber)\n *\n * ```ts\n * import { Effect, Console, Schedule } from \"effect\"\n *\n * // Daemon fiber that logs a message repeatedly every second\n * const daemon = Effect.repeat(\n * Console.log(\"daemon: still running!\"),\n * Schedule.fixed(\"1 second\")\n * )\n *\n * const parent = Effect.gen(function* () {\n * console.log(\"parent: started!\")\n * // Daemon fiber running independently\n * yield* Effect.forkDaemon(daemon)\n * yield* Effect.sleep(\"3 seconds\")\n * console.log(\"parent: finished!\")\n * })\n *\n * Effect.runFork(parent)\n * // Output:\n * // parent: started!\n * // daemon: still running!\n * // daemon: still running!\n * // daemon: still running!\n * // parent: finished!\n * // daemon: still running!\n * // daemon: still running!\n * // daemon: still running!\n * // daemon: still running!\n * // daemon: still running!\n * // ...etc...\n * ```\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const forkDaemon = fiberRuntime.forkDaemon;\n/**\n * Returns an effect that forks all of the specified values, and returns a\n * composite fiber that produces a list of their results, in order.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const forkAll = circular.forkAll;\n/**\n * Forks an effect in a specific scope, allowing finer control over its\n * execution.\n *\n * **Details**\n *\n * There are some cases where we need more fine-grained control, so we want to\n * fork a fiber in a specific scope. We can use the `Effect.forkIn` operator\n * which takes the target scope as an argument.\n *\n * The fiber will be interrupted when the scope is closed.\n *\n * **Example** (Forking a Fiber in a Specific Scope)\n *\n * In this example, the child fiber is forked into the outerScope,\n * allowing it to outlive the inner scope but still be terminated\n * when the outerScope is closed.\n *\n * ```ts\n * import { Console, Effect, Schedule } from \"effect\"\n *\n * // Child fiber that logs a message repeatedly every second\n * const child = Effect.repeat(\n * Console.log(\"child: still running!\"),\n * Schedule.fixed(\"1 second\")\n * )\n *\n * const program = Effect.scoped(\n * Effect.gen(function* () {\n * yield* Effect.addFinalizer(() =>\n * Console.log(\"The outer scope is about to be closed!\")\n * )\n *\n * // Capture the outer scope\n * const outerScope = yield* Effect.scope\n *\n * // Create an inner scope\n * yield* Effect.scoped(\n * Effect.gen(function* () {\n * yield* Effect.addFinalizer(() =>\n * Console.log(\"The inner scope is about to be closed!\")\n * )\n * // Fork the child fiber in the outer scope\n * yield* Effect.forkIn(child, outerScope)\n * yield* Effect.sleep(\"3 seconds\")\n * })\n * )\n *\n * yield* Effect.sleep(\"5 seconds\")\n * })\n * )\n *\n * Effect.runFork(program)\n * // Output:\n * // child: still running!\n * // child: still running!\n * // child: still running!\n * // The inner scope is about to be closed!\n * // child: still running!\n * // child: still running!\n * // child: still running!\n * // child: still running!\n * // child: still running!\n * // child: still running!\n * // The outer scope is about to be closed!\n * ```\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const forkIn = circular.forkIn;\n/**\n * Forks a fiber in a local scope, ensuring it outlives its parent.\n *\n * **Details**\n *\n * This function is used to create fibers that are tied to a local scope,\n * meaning they are not dependent on their parent fiber's lifecycle. Instead,\n * they will continue running until the scope they were created in is closed.\n * This is particularly useful when you need a fiber to run independently of the\n * parent fiber, but still want it to be terminated when the scope ends.\n *\n * Fibers created with this function are isolated from the parent fiber’s\n * termination, so they can run for a longer period. This behavior is different\n * from fibers created with {@link fork}, which are terminated when the parent fiber\n * terminates. With `forkScoped`, the child fiber will keep running until the\n * local scope ends, regardless of the state of the parent fiber.\n *\n * **Example** (Forking a Fiber in a Local Scope)\n *\n * In this example, the child fiber continues to run beyond the lifetime of the parent fiber.\n * The child fiber is tied to the local scope and will be terminated only when the scope ends.\n *\n * ```ts\n * import { Effect, Console, Schedule } from \"effect\"\n *\n * // Child fiber that logs a message repeatedly every second\n * const child = Effect.repeat(\n * Console.log(\"child: still running!\"),\n * Schedule.fixed(\"1 second\")\n * )\n *\n * // ┌─── Effect\n * // ▼\n * const parent = Effect.gen(function* () {\n * console.log(\"parent: started!\")\n * // Child fiber attached to local scope\n * yield* Effect.forkScoped(child)\n * yield* Effect.sleep(\"3 seconds\")\n * console.log(\"parent: finished!\")\n * })\n *\n * // Program runs within a local scope\n * const program = Effect.scoped(\n * Effect.gen(function* () {\n * console.log(\"Local scope started!\")\n * yield* Effect.fork(parent)\n * // Scope lasts for 5 seconds\n * yield* Effect.sleep(\"5 seconds\")\n * console.log(\"Leaving the local scope!\")\n * })\n * )\n *\n * Effect.runFork(program)\n * // Output:\n * // Local scope started!\n * // parent: started!\n * // child: still running!\n * // child: still running!\n * // child: still running!\n * // parent: finished!\n * // child: still running!\n * // child: still running!\n * // Leaving the local scope!\n * ```\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const forkScoped = circular.forkScoped;\n/**\n * Like {@link fork} but handles an error with the provided handler.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const forkWithErrorHandler = fiberRuntime.forkWithErrorHandler;\n/**\n * Creates an `Effect` value that represents the exit value of the specified\n * fiber.\n *\n * @see {@link fromFiberEffect} for creating an effect from a fiber obtained from an effect.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const fromFiber = circular.fromFiber;\n/**\n * Creates an `Effect` value that represents the exit value of a fiber obtained\n * from an effect.\n *\n * @see {@link fromFiber} for creating an effect from a fiber.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const fromFiberEffect = circular.fromFiberEffect;\n/**\n * Supervises child fibers by reporting them to a specified supervisor.\n *\n * **Details**\n *\n * This function takes a supervisor as an argument and returns an effect where\n * all child fibers forked within it are supervised by the provided supervisor.\n * This enables you to capture detailed information about these child fibers,\n * such as their status, through the supervisor.\n *\n * **Example** (Monitoring Fiber Count)\n *\n * ```ts\n * import { Effect, Supervisor, Schedule, Fiber, FiberStatus } from \"effect\"\n *\n * // Main program that monitors fibers while calculating a Fibonacci number\n * const program = Effect.gen(function* () {\n * // Create a supervisor to track child fibers\n * const supervisor = yield* Supervisor.track\n *\n * // Start a Fibonacci calculation, supervised by the supervisor\n * const fibFiber = yield* fib(20).pipe(\n * Effect.supervised(supervisor),\n * // Fork the Fibonacci effect into a fiber\n * Effect.fork\n * )\n *\n * // Define a schedule to periodically monitor the fiber count every 500ms\n * const policy = Schedule.spaced(\"500 millis\").pipe(\n * Schedule.whileInputEffect((_) =>\n * Fiber.status(fibFiber).pipe(\n * // Continue while the Fibonacci fiber is not done\n * Effect.andThen((status) => status !== FiberStatus.done)\n * )\n * )\n * )\n *\n * // Start monitoring the fibers, using the supervisor to track the count\n * const monitorFiber = yield* monitorFibers(supervisor).pipe(\n * // Repeat the monitoring according to the schedule\n * Effect.repeat(policy),\n * // Fork the monitoring into its own fiber\n * Effect.fork\n * )\n *\n * // Join the monitor and Fibonacci fibers to ensure they complete\n * yield* Fiber.join(monitorFiber)\n * const result = yield* Fiber.join(fibFiber)\n *\n * console.log(`fibonacci result: ${result}`)\n * })\n *\n * // Function to monitor and log the number of active fibers\n * const monitorFibers = (\n * supervisor: Supervisor.Supervisor>>\n * ): Effect.Effect =>\n * Effect.gen(function* () {\n * const fibers = yield* supervisor.value // Get the current set of fibers\n * console.log(`number of fibers: ${fibers.length}`)\n * })\n *\n * // Recursive Fibonacci calculation, spawning fibers for each recursive step\n * const fib = (n: number): Effect.Effect =>\n * Effect.gen(function* () {\n * if (n <= 1) {\n * return 1\n * }\n * yield* Effect.sleep(\"500 millis\") // Simulate work by delaying\n *\n * // Fork two fibers for the recursive Fibonacci calls\n * const fiber1 = yield* Effect.fork(fib(n - 2))\n * const fiber2 = yield* Effect.fork(fib(n - 1))\n *\n * // Join the fibers to retrieve their results\n * const v1 = yield* Fiber.join(fiber1)\n * const v2 = yield* Fiber.join(fiber2)\n *\n * return v1 + v2 // Combine the results\n * })\n *\n * Effect.runPromise(program)\n * // Output:\n * // number of fibers: 0\n * // number of fibers: 2\n * // number of fibers: 6\n * // number of fibers: 14\n * // number of fibers: 30\n * // number of fibers: 62\n * // number of fibers: 126\n * // number of fibers: 254\n * // number of fibers: 510\n * // number of fibers: 1022\n * // number of fibers: 2034\n * // number of fibers: 3795\n * // number of fibers: 5810\n * // number of fibers: 6474\n * // number of fibers: 4942\n * // number of fibers: 2515\n * // number of fibers: 832\n * // number of fibers: 170\n * // number of fibers: 18\n * // number of fibers: 0\n * // fibonacci result: 10946\n * ```\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const supervised = circular.supervised;\n/**\n * Transplants specified effects so that when those effects fork other\n * effects, the forked effects will be governed by the scope of the fiber that\n * executes this effect.\n *\n * This can be used to \"graft\" deep grandchildren onto a higher-level scope,\n * effectively extending their lifespans into the parent scope.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const transplant = core.transplant;\n/**\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const withConcurrency = core.withConcurrency;\n/**\n * Sets the provided scheduler for usage in the wrapped effect\n *\n * @since 2.0.0\n * @category Scheduler\n */\nexport const withScheduler = Scheduler.withScheduler;\n/**\n * Sets the scheduling priority used when yielding\n *\n * @since 2.0.0\n * @category Scheduler\n */\nexport const withSchedulingPriority = core.withSchedulingPriority;\n/**\n * Sets the maximum number of operations before yield by the default schedulers\n *\n * @since 2.0.0\n * @category Scheduler\n */\nexport const withMaxOpsBeforeYield = core.withMaxOpsBeforeYield;\n/**\n * Retrieves the `Clock` service from the context.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * const clock = yield* Effect.clock\n * const currentTime = yield* clock.currentTimeMillis\n * console.log(`Current time in milliseconds: ${currentTime}`)\n * })\n *\n * Effect.runFork(program)\n * // Example Output:\n * // Current time in milliseconds: 1735484796134\n * ```\n *\n * @since 2.0.0\n * @category Clock\n */\nexport const clock = effect.clock;\n/**\n * Retrieves the `Clock` service from the context and provides it to the\n * specified effectful function.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.clockWith((clock) =>\n * clock.currentTimeMillis.pipe(\n * Effect.map((currentTime) => `Current time is: ${currentTime}`),\n * Effect.tap(Console.log)\n * )\n * )\n *\n * Effect.runFork(program)\n * // Example Output:\n * // Current time is: 1735484929744\n * ```\n *\n * @since 2.0.0\n * @category Clock\n */\nexport const clockWith = effect.clockWith;\n/**\n * Sets the implementation of the `Clock` service to the specified value and\n * restores it to its original value when the scope is closed.\n *\n * @since 2.0.0\n * @category Clock\n */\nexport const withClockScoped = fiberRuntime.withClockScoped;\n/**\n * Executes the specified workflow with the specified implementation of the\n * `Clock` service.\n *\n * @since 2.0.0\n * @category Clock\n */\nexport const withClock = defaultServices.withClock;\n/**\n * Retreives the `Console` service from the context\n *\n * @since 2.0.0\n * @category Console\n */\nexport const console = console_.console;\n/**\n * Retreives the `Console` service from the context and provides it to the\n * specified effectful function.\n *\n * @since 2.0.0\n * @category Console\n */\nexport const consoleWith = console_.consoleWith;\n/**\n * Sets the implementation of the console service to the specified value and\n * restores it to its original value when the scope is closed.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const withConsoleScoped = console_.withConsoleScoped;\n/**\n * Executes the specified workflow with the specified implementation of the\n * console service.\n *\n * @since 2.0.0\n * @category Console\n */\nexport const withConsole = console_.withConsole;\n/**\n * Delays the execution of an effect by a specified `Duration`.\n *\n * **Details\n *\n * This function postpones the execution of the provided effect by the specified\n * duration. The duration can be provided in various formats supported by the\n * `Duration` module.\n *\n * Internally, this function does not block the thread; instead, it uses an\n * efficient, non-blocking mechanism to introduce the delay.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const task = Console.log(\"Task executed\")\n *\n * const program = Console.log(\"start\").pipe(\n * Effect.andThen(\n * // Delays the log message by 2 seconds\n * task.pipe(Effect.delay(\"2 seconds\"))\n * )\n * )\n *\n * Effect.runFork(program)\n * // Output:\n * // start\n * // Task executed\n * ```\n *\n * @since 2.0.0\n * @category Delays & Timeouts\n */\nexport const delay = effect.delay;\n/**\n * Suspends the execution of an effect for a specified `Duration`.\n *\n * **Details**\n *\n * This function pauses the execution of an effect for a given duration. It is\n * asynchronous, meaning that it does not block the fiber executing the effect.\n * Instead, the fiber is suspended during the delay period and can resume once\n * the specified time has passed.\n *\n * The duration can be specified using various formats supported by the\n * `Duration` module, such as a string (`\"2 seconds\"`) or numeric value\n * representing milliseconds.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * console.log(\"Starting task...\")\n * yield* Effect.sleep(\"3 seconds\") // Waits for 3 seconds\n * console.log(\"Task completed!\")\n * })\n *\n * Effect.runFork(program)\n * // Output:\n * // Starting task...\n * // Task completed!\n * ```\n *\n * @since 2.0.0\n * @category Delays & Timeouts\n */\nexport const sleep = effect.sleep;\n/**\n * Executes an effect and measures the time it takes to complete.\n *\n * **Details**\n *\n * This function wraps the provided effect and returns a new effect that, when\n * executed, performs the original effect and calculates its execution duration.\n *\n * The result of the new effect includes both the execution time (as a\n * `Duration`) and the original effect's result. This is useful for monitoring\n * performance or gaining insights into the time taken by specific operations.\n *\n * The original effect's behavior (success, failure, or interruption) remains\n * unchanged, and the timing information is provided alongside the result in a\n * tuple.\n *\n * **Example**\n *\n * ```ts\n * import { Duration, Effect } from \"effect\"\n *\n * const task = Effect.gen(function*() {\n * yield* Effect.sleep(\"2 seconds\") // Simulates some work\n * return \"some result\"\n * })\n *\n * const timedTask = task.pipe(Effect.timed)\n *\n * const program = Effect.gen(function*() {\n * const [duration, result] = yield* timedTask\n * console.log(`Task completed in ${Duration.toMillis(duration)} ms with result: ${result}`)\n * })\n *\n * Effect.runFork(program)\n * // Output: Task completed in 2003.749125 ms with result: some result\n * ```\n *\n * @since 2.0.0\n * @category Delays & Timeouts\n */\nexport const timed = effect.timed;\n/**\n * Executes an effect and measures its execution time using a custom clock.\n *\n * **Details**\n *\n * This function extends the functionality of {@link timed} by allowing you to\n * specify a custom clock for measuring the execution duration. The provided\n * effect (`nanoseconds`) represents the clock and should return the current\n * time in nanoseconds. The timing information is computed using this custom\n * clock instead of the default system clock.\n *\n * @since 2.0.0\n * @category Delays & Timeouts\n */\nexport const timedWith = effect.timedWith;\n/**\n * Adds a time limit to an effect, triggering a timeout if the effect exceeds\n * the duration.\n *\n * **Details**\n *\n * This function allows you to enforce a time limit on the execution of an\n * effect. If the effect does not complete within the given duration, it fails\n * with a `TimeoutException`. This is useful for preventing tasks from hanging\n * indefinitely, especially in scenarios where responsiveness or resource limits\n * are critical.\n *\n * The returned effect will either:\n * - Succeed with the original effect's result if it completes within the\n * specified duration.\n * - Fail with a `TimeoutException` if the time limit is exceeded.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const task = Effect.gen(function* () {\n * console.log(\"Start processing...\")\n * yield* Effect.sleep(\"2 seconds\") // Simulates a delay in processing\n * console.log(\"Processing complete.\")\n * return \"Result\"\n * })\n *\n * // Output will show a TimeoutException as the task takes longer\n * // than the specified timeout duration\n * const timedEffect = task.pipe(Effect.timeout(\"1 second\"))\n *\n * Effect.runPromiseExit(timedEffect).then(console.log)\n * // Output:\n * // Start processing...\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Fail',\n * // failure: { _tag: 'TimeoutException' }\n * // }\n * // }\n * ```\n *\n * @see {@link timeoutFail} for a version that raises a custom error.\n * @see {@link timeoutFailCause} for a version that raises a custom defect.\n * @see {@link timeoutTo} for a version that allows specifying both success and\n * timeout handlers.\n *\n * @since 2.0.0\n * @category Delays & Timeouts\n */\nexport const timeout = circular.timeout;\n/**\n * Gracefully handles timeouts by returning an `Option` that represents either\n * the result or a timeout.\n *\n * **Details**\n *\n * This function wraps the outcome of an effect in an `Option` type. If the\n * effect completes within the specified duration, it returns a `Some`\n * containing the result. If the effect times out, it returns a `None`. Unlike\n * other timeout methods, this approach does not raise errors or exceptions;\n * instead, it allows you to treat timeouts as a regular outcome, simplifying\n * the logic for handling delays.\n *\n * **When to Use**\n *\n * This is useful when you want to handle timeouts without causing the program\n * to fail, making it easier to manage situations where you expect tasks might\n * take too long but want to continue executing other tasks.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const task = Effect.gen(function* () {\n * console.log(\"Start processing...\")\n * yield* Effect.sleep(\"2 seconds\") // Simulates a delay in processing\n * console.log(\"Processing complete.\")\n * return \"Result\"\n * })\n *\n * const timedOutEffect = Effect.all([\n * task.pipe(Effect.timeoutOption(\"3 seconds\")),\n * task.pipe(Effect.timeoutOption(\"1 second\"))\n * ])\n *\n * Effect.runPromise(timedOutEffect).then(console.log)\n * // Output:\n * // Start processing...\n * // Processing complete.\n * // Start processing...\n * // [\n * // { _id: 'Option', _tag: 'Some', value: 'Result' },\n * // { _id: 'Option', _tag: 'None' }\n * // ]\n * ```\n *\n * @see {@link timeout} for a version that raises a `TimeoutException`.\n * @see {@link timeoutFail} for a version that raises a custom error.\n * @see {@link timeoutFailCause} for a version that raises a custom defect.\n * @see {@link timeoutTo} for a version that allows specifying both success and\n * timeout handlers.\n *\n * @since 3.1.0\n * @category Delays & Timeouts\n */\nexport const timeoutOption = circular.timeoutOption;\n/**\n * Specifies a custom error to be produced when a timeout occurs.\n *\n * **Details**\n *\n * This function allows you to handle timeouts in a customized way by defining a\n * specific error to be raised when an effect exceeds the given duration. Unlike\n * default timeout behaviors that use generic exceptions, this function gives\n * you the flexibility to specify a meaningful error type that aligns with your\n * application's needs.\n *\n * When you apply this function, you provide:\n * - A `duration`: The time limit for the effect.\n * - An `onTimeout` function: A lazy evaluation function that generates the\n * custom error if the timeout occurs.\n *\n * If the effect completes within the time limit, its result is returned\n * normally. Otherwise, the `onTimeout` function is triggered, and its output is\n * used as the error for the effect.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const task = Effect.gen(function* () {\n * console.log(\"Start processing...\")\n * yield* Effect.sleep(\"2 seconds\") // Simulates a delay in processing\n * console.log(\"Processing complete.\")\n * return \"Result\"\n * })\n *\n * class MyTimeoutError {\n * readonly _tag = \"MyTimeoutError\"\n * }\n *\n * const program = task.pipe(\n * Effect.timeoutFail({\n * duration: \"1 second\",\n * onTimeout: () => new MyTimeoutError() // Custom timeout error\n * })\n * )\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // Start processing...\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Fail',\n * // failure: MyTimeoutError { _tag: 'MyTimeoutError' }\n * // }\n * // }\n * ```\n *\n * @see {@link timeout} for a version that raises a `TimeoutException`.\n * @see {@link timeoutFailCause} for a version that raises a custom defect.\n * @see {@link timeoutTo} for a version that allows specifying both success and\n * timeout handlers.\n *\n * @since 2.0.0\n * @category Delays & Timeouts\n */\nexport const timeoutFail = circular.timeoutFail;\n/**\n * Specifies a custom defect to be thrown when a timeout occurs.\n *\n * **Details**\n *\n * This function allows you to handle timeouts as exceptional cases by\n * generating a custom defect when an effect exceeds the specified duration. You\n * provide:\n * - A `duration`: The time limit for the effect.\n * - An `onTimeout` function: A lazy evaluation function that generates the\n * custom defect (typically created using `Cause.die`).\n *\n * If the effect completes within the time limit, its result is returned\n * normally. Otherwise, the custom defect is triggered, and the effect fails\n * with that defect.\n *\n * **When to Use**\n *\n * This is especially useful when you need to treat timeouts as critical\n * failures in your application and wish to include meaningful information in\n * the defect.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Cause } from \"effect\"\n *\n * const task = Effect.gen(function* () {\n * console.log(\"Start processing...\")\n * yield* Effect.sleep(\"2 seconds\") // Simulates a delay in processing\n * console.log(\"Processing complete.\")\n * return \"Result\"\n * })\n *\n * const program = task.pipe(\n * Effect.timeoutFailCause({\n * duration: \"1 second\",\n * onTimeout: () => Cause.die(\"Timed out!\") // Custom defect for timeout\n * })\n * )\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // Start processing...\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: { _id: 'Cause', _tag: 'Die', defect: 'Timed out!' }\n * // }\n * ```\n *\n * @see {@link timeout} for a version that raises a `TimeoutException`.\n * @see {@link timeoutFail} for a version that raises a custom error.\n * @see {@link timeoutTo} for a version that allows specifying both success and\n * timeout handlers.\n *\n * @since 2.0.0\n * @category Delays & Timeouts\n */\nexport const timeoutFailCause = circular.timeoutFailCause;\n/**\n * Provides custom behavior for successful and timed-out operations.\n *\n * **Details**\n *\n * This function allows you to define distinct outcomes for an effect depending\n * on whether it completes within a specified time frame or exceeds the timeout\n * duration. You can provide:\n * - `onSuccess`: A handler for processing the result of the effect if it\n * completes successfully within the time limit.\n * - `onTimeout`: A handler for generating a result when the effect times out.\n * - `duration`: The maximum allowed time for the effect to complete.\n *\n * **When to Use**\n *\n * Unlike {@link timeout}, which raises an exception for timeouts, this function\n * gives you full control over the behavior for both success and timeout\n * scenarios. It is particularly useful when you want to encapsulate timeouts\n * and successes into a specific data structure, like an `Either` type, to\n * represent these outcomes in a meaningful way.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Either } from \"effect\"\n *\n * const task = Effect.gen(function* () {\n * console.log(\"Start processing...\")\n * yield* Effect.sleep(\"2 seconds\") // Simulates a delay in processing\n * console.log(\"Processing complete.\")\n * return \"Result\"\n * })\n *\n * const program = task.pipe(\n * Effect.timeoutTo({\n * duration: \"1 second\",\n * onSuccess: (result): Either.Either =>\n * Either.right(result),\n * onTimeout: (): Either.Either =>\n * Either.left(\"Timed out!\")\n * })\n * )\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // Start processing...\n * // {\n * // _id: \"Either\",\n * // _tag: \"Left\",\n * // left: \"Timed out!\"\n * // }\n * ```\n *\n * @see {@link timeout} for a version that raises a `TimeoutException`.\n * @see {@link timeoutFail} for a version that raises a custom error.\n * @see {@link timeoutFailCause} for a version that raises a custom defect.\n *\n * @since 2.0.0\n * @category Delays & Timeouts\n */\nexport const timeoutTo = circular.timeoutTo;\n/**\n * Allows working with the default configuration provider.\n *\n * **Details**\n *\n * This function retrieves the default configuration provider and passes it to\n * the provided function, which can use it to perform computations or retrieve\n * configuration values. The function can return an effect that leverages the\n * configuration provider for its operations.\n *\n * @since 2.0.0\n * @category Config\n */\nexport const configProviderWith = defaultServices.configProviderWith;\n/**\n * Executes an effect using a specific configuration provider.\n *\n * **Details**\n *\n * This function lets you run an effect with a specified configuration provider.\n * The custom provider will override the default configuration provider for the\n * duration of the effect's execution.\n *\n * **When to Use**\n *\n * This is particularly useful when you need to use a different set of\n * configuration values or sources for specific parts of your application.\n *\n * **Example**\n *\n * ```ts\n * import { Config, ConfigProvider, Effect } from \"effect\"\n *\n * const customProvider: ConfigProvider.ConfigProvider = ConfigProvider.fromMap(\n * new Map([[\"custom-key\", \"custom-value\"]])\n * )\n *\n * const program = Effect.withConfigProvider(customProvider)(\n * Effect.gen(function*() {\n * const value = yield* Config.string(\"custom-key\")\n * console.log(`Config value: ${value}`)\n * })\n * )\n *\n * Effect.runPromise(program)\n * // Output:\n * // Config value: custom-value\n * ```\n *\n * @since 2.0.0\n * @category Config\n */\nexport const withConfigProvider = defaultServices.withConfigProvider;\n/**\n * Sets a configuration provider within a scope.\n *\n * **Details**\n *\n * This function sets the configuration provider to a specified value and\n * ensures that it is restored to its original value when the scope is closed.\n *\n * @since 2.0.0\n * @category Config\n */\nexport const withConfigProviderScoped = fiberRuntime.withConfigProviderScoped;\n/**\n * Accesses the full context of the effect.\n *\n * **Details**\n *\n * This function provides the ability to access the entire context required by\n * an effect. The context is a container that holds dependencies or environment\n * values needed by an effect to run. By using this function, you can retrieve\n * and work with the context directly within an effect.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const context = core.context;\n/**\n * Accesses the context and applies a transformation function.\n *\n * **Details**\n *\n * This function retrieves the context of the effect and applies a pure\n * transformation function to it. The result of the transformation is then\n * returned within the effect.\n *\n * @see {@link contextWithEffect} for a version that allows effectful transformations.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const contextWith = effect.contextWith;\n/**\n * Accesses the context and performs an effectful transformation.\n *\n * **Details**\n *\n * This function retrieves the context and allows you to transform it\n * effectually using another effect. It is useful when the transformation\n * involves asynchronous or effectful operations.\n *\n * @see {@link contextWith} for a version that allows pure transformations.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const contextWithEffect = core.contextWithEffect;\n/**\n * Provides part of the required context while leaving the rest unchanged.\n *\n * **Details**\n *\n * This function allows you to transform the context required by an effect,\n * providing part of the context and leaving the rest to be fulfilled later.\n *\n * **Example**\n *\n * ```ts\n * import { Context, Effect } from \"effect\"\n *\n * class Service1 extends Context.Tag(\"Service1\")() {}\n * class Service2 extends Context.Tag(\"Service2\")() {}\n *\n * const program = Effect.gen(function*() {\n * const service1 = yield* Service1\n * console.log(service1.port)\n * const service2 = yield* Service2\n * console.log(service2.connection)\n * return \"some result\"\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const programWithService1 = Effect.mapInputContext(\n * program,\n * (ctx: Context.Context) => Context.add(ctx, Service1, { port: 3000 })\n * )\n *\n * const runnable = programWithService1.pipe(\n * Effect.provideService(Service2, { connection: \"localhost\" }),\n * Effect.provideService(Service1, { port: 3001 })\n * )\n *\n * Effect.runPromise(runnable)\n * // Output:\n * // 3000\n * // localhost\n * ```\n *\n * @since 2.0.0\n * @category Context\n */\nexport const mapInputContext = core.mapInputContext;\n/**\n * Provides necessary dependencies to an effect, removing its environmental\n * requirements.\n *\n * **Details**\n *\n * This function allows you to supply the required environment for an effect.\n * The environment can be provided in the form of one or more `Layer`s, a\n * `Context`, a `Runtime`, or a `ManagedRuntime`. Once the environment is\n * provided, the effect can run without requiring external dependencies.\n *\n * You can compose layers to create a modular and reusable way of setting up the\n * environment for effects. For example, layers can be used to configure\n * databases, logging services, or any other required dependencies.\n *\n * **Example**\n *\n * ```ts\n * import { Context, Effect, Layer } from \"effect\"\n *\n * class Database extends Context.Tag(\"Database\")<\n * Database,\n * { readonly query: (sql: string) => Effect.Effect> }\n * >() {}\n *\n * const DatabaseLive = Layer.succeed(\n * Database,\n * {\n * // Simulate a database query\n * query: (sql: string) => Effect.log(`Executing query: ${sql}`).pipe(Effect.as([]))\n * }\n * )\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function*() {\n * const database = yield* Database\n * const result = yield* database.query(\"SELECT * FROM users\")\n * return result\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const runnable = Effect.provide(program, DatabaseLive)\n *\n * Effect.runPromise(runnable).then(console.log)\n * // Output:\n * // timestamp=... level=INFO fiber=#0 message=\"Executing query: SELECT * FROM users\"\n * // []\n * ```\n *\n * @see {@link provideService} for providing a service to an effect.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const provide = layer.effect_provide;\n/**\n * Provides an implementation for a service in the context of an effect.\n *\n * **Details**\n *\n * This function allows you to supply a specific implementation for a service\n * required by an effect. Services are typically defined using `Context.Tag`,\n * which acts as a unique identifier for the service. By using this function,\n * you link the service to its concrete implementation, enabling the effect to\n * execute successfully without additional requirements.\n *\n * For example, you can use this function to provide a random number generator,\n * a logger, or any other service your effect depends on. Once the service is\n * provided, all parts of the effect that rely on the service will automatically\n * use the implementation you supplied.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Context } from \"effect\"\n *\n * // Declaring a tag for a service that generates random numbers\n * class Random extends Context.Tag(\"MyRandomService\")<\n * Random,\n * { readonly next: Effect.Effect }\n * >() {}\n *\n * // Using the service\n * const program = Effect.gen(function* () {\n * const random = yield* Random\n * const randomNumber = yield* random.next\n * console.log(`random number: ${randomNumber}`)\n * })\n *\n * // Providing the implementation\n * //\n * // ┌─── Effect\n * // ▼\n * const runnable = Effect.provideService(program, Random, {\n * next: Effect.sync(() => Math.random())\n * })\n *\n * // Run successfully\n * Effect.runPromise(runnable)\n * // Example Output:\n * // random number: 0.8241872233134417\n * ```\n *\n * @see {@link provide} for providing multiple layers to an effect.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const provideService = effect.provideService;\n/**\n * Dynamically provides an implementation for a service using an effect.\n *\n * **Details**\n *\n * This function allows you to provide an implementation for a service\n * dynamically by using another effect. The provided effect is executed to\n * produce the service implementation, which is then made available to the\n * consuming effect. This is particularly useful when the service implementation\n * itself requires asynchronous or resource-intensive initialization.\n *\n * For example, you can use this function to lazily initialize a database\n * connection or fetch configuration values from an external source before\n * making the service available to your effect.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const provideServiceEffect = effect.provideServiceEffect;\n/**\n * Creates a function that uses a service from the context to produce a value.\n *\n * @see {@link serviceFunctionEffect} for a version that returns an effect.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const serviceFunction = effect.serviceFunction;\n/**\n * Creates a function that uses a service from the context to produce an effect.\n *\n * @see {@link serviceFunction} for a version that returns a value.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const serviceFunctionEffect = effect.serviceFunctionEffect;\n/**\n * @since 2.0.0\n * @category Context\n */\nexport const serviceFunctions = effect.serviceFunctions;\n/**\n * @since 2.0.0\n * @category Context\n */\nexport const serviceConstants = effect.serviceConstants;\n/**\n * @since 2.0.0\n * @category Context\n */\nexport const serviceMembers = effect.serviceMembers;\n/**\n * Retrieves an optional service from the context as an `Option`.\n *\n * **Details**\n *\n * This function retrieves a service from the context and wraps it in an\n * `Option`. If the service is available, it returns a `Some` containing the\n * service. If the service is not found, it returns a `None`. This approach is\n * useful when you want to handle the absence of a service gracefully without\n * causing an error.\n *\n * **When to Use**\n *\n * Use this function when:\n * - You need to access a service that may or may not be present in the context.\n * - You want to handle the absence of a service using the `Option` type instead\n * of throwing an error.\n *\n * @see {@link serviceOptional} for a version that throws an error if the service is missing.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const serviceOption = effect.serviceOption;\n/**\n * Retrieves a service from the context, throwing an error if it is missing.\n *\n * **Details**\n *\n * This function retrieves a required service from the context. If the service\n * is available, it returns the service. If the service is missing, it throws a\n * `NoSuchElementException`, which can be handled using Effect's error-handling\n * mechanisms. This is useful for services that are critical to the execution of\n * your effect.\n *\n * @see {@link serviceOption} for a version that returns an `Option` instead of throwing an error.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const serviceOptional = effect.serviceOptional;\n/**\n * Updates a service in the context with a new implementation.\n *\n * **Details**\n *\n * This function modifies the existing implementation of a service in the\n * context. It retrieves the current service, applies the provided\n * transformation function `f`, and replaces the old service with the\n * transformed one.\n *\n * **When to Use**\n *\n * This is useful for adapting or extending a service's behavior during the\n * execution of an effect.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const updateService = effect.updateService;\n/**\n * The \"do simulation\" in Effect allows you to write code in a more declarative style, similar to the \"do notation\" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Effect` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n *\n * **Example**\n *\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Effect, pipe } from \"effect\"\n *\n * const result = pipe(\n * Effect.Do,\n * Effect.bind(\"x\", () => Effect.succeed(2)),\n * Effect.bind(\"y\", () => Effect.succeed(3)),\n * Effect.let(\"sum\", ({ x, y }) => x + y)\n * )\n * assert.deepStrictEqual(Effect.runSync(result), { x: 2, y: 3, sum: 5 })\n * ```\n *\n * @see {@link bind}\n * @see {@link bindTo}\n * @see {@link let_ let}\n *\n * @category Do notation\n * @since 2.0.0\n */\nexport const Do = effect.Do;\n/**\n * The \"do simulation\" in Effect allows you to write code in a more declarative style, similar to the \"do notation\" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Effect` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n *\n * **Example**\n *\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Effect, pipe } from \"effect\"\n *\n * const result = pipe(\n * Effect.Do,\n * Effect.bind(\"x\", () => Effect.succeed(2)),\n * Effect.bind(\"y\", () => Effect.succeed(3)),\n * Effect.let(\"sum\", ({ x, y }) => x + y)\n * )\n * assert.deepStrictEqual(Effect.runSync(result), { x: 2, y: 3, sum: 5 })\n * ```\n *\n * @see {@link Do}\n * @see {@link bindTo}\n * @see {@link let_ let}\n *\n * @category Do notation\n * @since 2.0.0\n */\nexport const bind = effect.bind;\n/**\n * `bindAll` combines `all` with `bind`. It is useful\n * when you want to concurrently run multiple effects and then combine their\n * results in a Do notation pipeline.\n *\n * **Example**\n *\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Effect, Either, pipe } from \"effect\"\n *\n * const result = pipe(\n * Effect.Do,\n * Effect.bind(\"x\", () => Effect.succeed(2)),\n * Effect.bindAll(({ x }) => ({\n * a: Effect.succeed(x),\n * b: Effect.fail(\"oops\"),\n * }), { concurrency: 2, mode: \"either\" })\n * )\n * assert.deepStrictEqual(Effect.runSync(result), { x: 2, a: Either.right(2), b: Either.left(\"oops\") })\n * ```\n *\n * @category Do notation\n * @since 3.7.0\n */\nexport const bindAll = circular.bindAll;\n/**\n * The \"do simulation\" in Effect allows you to write code in a more declarative style, similar to the \"do notation\" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Effect` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n *\n * **Example**\n *\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Effect, pipe } from \"effect\"\n *\n * const result = pipe(\n * Effect.Do,\n * Effect.bind(\"x\", () => Effect.succeed(2)),\n * Effect.bind(\"y\", () => Effect.succeed(3)),\n * Effect.let(\"sum\", ({ x, y }) => x + y)\n * )\n * assert.deepStrictEqual(Effect.runSync(result), { x: 2, y: 3, sum: 5 })\n * ```\n *\n * @see {@link Do}\n * @see {@link bind}\n * @see {@link let_ let}\n *\n * @category Do notation\n * @since 2.0.0\n */\nexport const bindTo = effect.bindTo;\nconst let_ = effect.let_;\nexport {\n/**\n * The \"do simulation\" in Effect allows you to write code in a more declarative style, similar to the \"do notation\" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Effect` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n *\n * **Example**\n *\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Effect, pipe } from \"effect\"\n *\n * const result = pipe(\n * Effect.Do,\n * Effect.bind(\"x\", () => Effect.succeed(2)),\n * Effect.bind(\"y\", () => Effect.succeed(3)),\n * Effect.let(\"sum\", ({ x, y }) => x + y)\n * )\n * assert.deepStrictEqual(Effect.runSync(result), { x: 2, y: 3, sum: 5 })\n *\n * ```\n *\n * @see {@link Do}\n * @see {@link bind}\n * @see {@link bindTo}\n *\n * @category Do notation\n * @since 2.0.0\n */\nlet_ as let };\n/**\n * Encapsulates the result of an effect in an `Option`.\n *\n * **Details**\n *\n * This function wraps the outcome of an effect in an `Option` type. If the\n * original effect succeeds, the success value is wrapped in `Option.some`. If\n * the effect fails, the failure is converted to `Option.none`.\n *\n * This is particularly useful for scenarios where you want to represent the\n * absence of a value explicitly, without causing the resulting effect to fail.\n * The resulting effect has an error type of `never`, meaning it cannot fail\n * directly. However, unrecoverable errors, also referred to as defects, are\n * not captured and will still result in failure.\n *\n * **Example** (Using Effect.option to Handle Errors)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const maybe1 = Effect.option(Effect.succeed(1))\n *\n * Effect.runPromiseExit(maybe1).then(console.log)\n * // Output:\n * // {\n * // _id: 'Exit',\n * // _tag: 'Success',\n * // value: { _id: 'Option', _tag: 'Some', value: 1 }\n * // }\n *\n * const maybe2 = Effect.option(Effect.fail(\"Uh oh!\"))\n *\n * Effect.runPromiseExit(maybe2).then(console.log)\n * // Output:\n * // {\n * // _id: 'Exit',\n * // _tag: 'Success',\n * // value: { _id: 'Option', _tag: 'None' }\n * // }\n *\n * const maybe3 = Effect.option(Effect.die(\"Boom!\"))\n *\n * Effect.runPromiseExit(maybe3).then(console.log)\n * // Output:\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: { _id: 'Cause', _tag: 'Die', defect: 'Boom!' }\n * // }\n * ```\n *\n * @see {@link either} for a version that uses `Either` instead.\n * @see {@link exit} for a version that encapsulates both recoverable errors and defects in an `Exit`.\n *\n * @since 2.0.0\n * @category Outcome Encapsulation\n */\nexport const option = effect.option;\n/**\n * Encapsulates both success and failure of an `Effect` into an `Either` type.\n *\n * **Details**\n *\n * This function converts an effect that may fail into an effect that always\n * succeeds, wrapping the outcome in an `Either` type. The result will be\n * `Either.Left` if the effect fails, containing the recoverable error, or\n * `Either.Right` if it succeeds, containing the result.\n *\n * Using this function, you can handle recoverable errors explicitly without\n * causing the effect to fail. This is particularly useful in scenarios where\n * you want to chain effects and manage both success and failure in the same\n * logical flow.\n *\n * It's important to note that unrecoverable errors, often referred to as\n * \"defects,\" are still thrown and not captured within the `Either` type. Only\n * failures that are explicitly represented as recoverable errors in the effect\n * are encapsulated.\n *\n * The resulting effect cannot fail directly because all recoverable failures\n * are represented inside the `Either` type.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Either, Random } from \"effect\"\n *\n * class HttpError {\n * readonly _tag = \"HttpError\"\n * }\n *\n * class ValidationError {\n * readonly _tag = \"ValidationError\"\n * }\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function* () {\n * const n1 = yield* Random.next\n * const n2 = yield* Random.next\n * if (n1 < 0.5) {\n * yield* Effect.fail(new HttpError())\n * }\n * if (n2 < 0.5) {\n * yield* Effect.fail(new ValidationError())\n * }\n * return \"some result\"\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const recovered = Effect.gen(function* () {\n * // ┌─── Either\n * // ▼\n * const failureOrSuccess = yield* Effect.either(program)\n * return Either.match(failureOrSuccess, {\n * onLeft: (error) => `Recovering from ${error._tag}`,\n * onRight: (value) => value // Do nothing in case of success\n * })\n * })\n * ```\n *\n * @see {@link option} for a version that uses `Option` instead.\n * @see {@link exit} for a version that encapsulates both recoverable errors and defects in an `Exit`.\n *\n * @since 2.0.0\n * @category Outcome Encapsulation\n */\nexport const either = core.either;\n/**\n * Encapsulates both success and failure of an `Effect` using the `Exit` type.\n *\n * **Details**\n *\n * This function converts an effect into one that always succeeds, wrapping its\n * outcome in the `Exit` type. The `Exit` type provides explicit handling of\n * both success (`Exit.Success`) and failure (`Exit.Failure`) cases, including\n * defects (unrecoverable errors).\n *\n * Unlike {@link either} or {@link option}, this function also encapsulates\n * defects, which are typically unrecoverable and would otherwise terminate the\n * effect. With the `Exit` type, defects are represented in `Exit.Failure`,\n * allowing for detailed introspection and structured error handling.\n *\n * This makes the resulting effect robust and incapable of direct failure (its\n * error type is `never`). It is particularly useful for workflows where all\n * outcomes, including unexpected defects, must be managed and analyzed.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Cause, Console, Exit } from \"effect\"\n *\n * // Simulating a runtime error\n * const task = Effect.dieMessage(\"Boom!\")\n *\n * const program = Effect.gen(function* () {\n * const exit = yield* Effect.exit(task)\n * if (Exit.isFailure(exit)) {\n * const cause = exit.cause\n * if (\n * Cause.isDieType(cause) &&\n * Cause.isRuntimeException(cause.defect)\n * ) {\n * yield* Console.log(\n * `RuntimeException defect caught: ${cause.defect.message}`\n * )\n * } else {\n * yield* Console.log(\"Unknown failure caught.\")\n * }\n * }\n * })\n *\n * // We get an Exit.Success because we caught all failures\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // RuntimeException defect caught: Boom!\n * // {\n * // _id: \"Exit\",\n * // _tag: \"Success\",\n * // value: undefined\n * // }\n * ```\n *\n * @see {@link option} for a version that uses `Option` instead.\n * @see {@link either} for a version that uses `Either` instead.\n *\n * @since 2.0.0\n * @category Outcome Encapsulation\n */\nexport const exit = core.exit;\n/**\n * Converts an `Effect` into an operation that completes a `Deferred` with its result.\n *\n * **Details**\n *\n * The `intoDeferred` function takes an effect and a `Deferred` and ensures that the `Deferred`\n * is completed based on the outcome of the effect. If the effect succeeds, the `Deferred` is\n * completed with the success value. If the effect fails, the `Deferred` is completed with the\n * failure. Additionally, if the effect is interrupted, the `Deferred` will also be interrupted.\n *\n * **Example**\n *\n * ```ts\n * import { Deferred, Effect } from \"effect\"\n *\n * // Define an effect that succeeds\n * const successEffect = Effect.succeed(42)\n *\n * const program = Effect.gen(function*() {\n * // Create a deferred\n * const deferred = yield* Deferred.make()\n *\n * // Complete the deferred using the successEffect\n * const isCompleted = yield* Effect.intoDeferred(successEffect, deferred)\n *\n * // Access the value of the deferred\n * const value = yield* Deferred.await(deferred)\n * console.log(value)\n *\n * return isCompleted\n * })\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // 42\n * // true\n * ```\n *\n * @since 2.0.0\n * @category Synchronization Utilities\n */\nexport const intoDeferred = core.intoDeferred;\nconst if_ = core.if_;\nexport {\n/**\n * Executes one of two effects based on a condition evaluated by an effectful predicate.\n *\n * Use `if` to run one of two effects depending on whether the predicate effect\n * evaluates to `true` or `false`. If the predicate is `true`, the `onTrue` effect\n * is executed. If it is `false`, the `onFalse` effect is executed instead.\n *\n * **Example** (Simulating a Coin Flip)\n *\n * ```ts\n * import { Effect, Random, Console } from \"effect\"\n *\n * const flipTheCoin = Effect.if(Random.nextBoolean, {\n * onTrue: () => Console.log(\"Head\"), // Runs if the predicate is true\n * onFalse: () => Console.log(\"Tail\") // Runs if the predicate is false\n * })\n *\n * Effect.runFork(flipTheCoin)\n * ```\n *\n * @since 2.0.0\n * @category Conditional Operators\n */\nif_ as if };\n/**\n * Filters an effect, dying with a custom defect if the predicate fails.\n *\n * **Details**\n *\n * This function applies a predicate to the result of an effect. If the\n * predicate evaluates to `false`, the effect dies with a custom defect\n * generated by the `orDieWith` function.\n *\n * **When to Use**\n *\n * This is useful for enforcing constraints on values and treating violations as\n * fatal program errors.\n *\n * @since 2.0.0\n * @category Filtering\n */\nexport const filterOrDie = effect.filterOrDie;\n/**\n * Filters an effect, dying with a custom message if the predicate fails.\n *\n * **Details**\n *\n * This function works like {@link filterOrDie} but allows you to specify a\n * custom error message to describe the reason for the failure. The message is\n * included in the defect when the predicate evaluates to `false`.\n *\n * @since 2.0.0\n * @category Filtering\n */\nexport const filterOrDieMessage = effect.filterOrDieMessage;\n/**\n * Filters an effect, providing an alternative effect if the predicate fails.\n *\n * **Details**\n *\n * This function applies a predicate to the result of an effect. If the\n * predicate evaluates to `false`, it executes the `orElse` effect instead. The\n * `orElse` effect can produce an alternative value or perform additional\n * computations.\n *\n * @since 2.0.0\n * @category Filtering\n */\nexport const filterOrElse = effect.filterOrElse;\n/**\n * Filters an effect, failing with a custom error if the predicate fails.\n *\n * **Details**\n *\n * This function applies a predicate to the result of an effect. If the\n * predicate evaluates to `false`, the effect fails with a custom error\n * generated by the `orFailWith` function.\n *\n * **When to Use**\n *\n * This is useful for enforcing constraints and treating violations as\n * recoverable errors.\n *\n * **Providing a Guard**\n *\n * In addition to the filtering capabilities discussed earlier, you have the\n * option to further refine and narrow down the type of the success channel by\n * providing a [user-defined type\n * guard](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates).\n * Let's explore this concept through an example:\n *\n * **Example**\n *\n * ```ts\n * import { Effect, pipe } from \"effect\"\n *\n * // Define a user interface\n * interface User {\n * readonly name: string\n * }\n *\n * // Simulate an asynchronous authentication function\n * declare const auth: () => Promise\n *\n * const program = pipe(\n * Effect.promise(() => auth()),\n * // Use filterOrFail with a custom type guard to ensure user is not null\n * Effect.filterOrFail(\n * (user): user is User => user !== null, // Type guard\n * () => new Error(\"Unauthorized\")\n * ),\n * // 'user' now has the type `User` (not `User | null`)\n * Effect.andThen((user) => user.name)\n * )\n * ```\n *\n * @since 2.0.0\n * @category Filtering\n */\nexport const filterOrFail = effect.filterOrFail;\n/**\n * Filters an effect with an effectful predicate, falling back to an alternative\n * effect if the predicate fails.\n *\n * **Details**\n *\n * This function applies a predicate to the result of an effect. If the\n * predicate evaluates to `false`, the effect falls back to the `orElse`\n * effect. The `orElse` effect can produce an alternative value or perform\n * additional computations.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, pipe } from \"effect\"\n *\n * // Define a user interface\n * interface User {\n * readonly name: string\n * }\n *\n * // Simulate an asynchronous authentication function\n * declare const auth: () => Promise\n *\n * const program = pipe(\n * Effect.promise(() => auth()),\n * // Use filterEffectOrElse with an effectful predicate\n * Effect.filterEffectOrElse({\n * predicate: (user) => Effect.succeed(user !== null),\n * orElse: (user) => Effect.fail(new Error(`Unauthorized user: ${user}`))\n * }),\n * )\n * ```\n *\n * @since 3.13.0\n * @category Filtering\n */\nexport const filterEffectOrElse = core.filterEffectOrElse;\n/**\n * Filters an effect with an effectful predicate, failing with a custom error if the predicate fails.\n *\n * **Details**\n *\n * This function applies a predicate to the result of an effect. If the\n * predicate evaluates to `false`, the effect fails with a custom error\n * generated by the `orFailWith` function.\n *\n * **When to Use**\n *\n * This is useful for enforcing constraints and treating violations as\n * recoverable errors.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, pipe } from \"effect\"\n *\n * // Define a user interface\n * interface User {\n * readonly name: string\n * }\n *\n * // Simulate an asynchronous authentication function\n * declare const auth: () => Promise\n *\n * const program = pipe(\n * Effect.promise(() => auth()),\n * // Use filterEffectOrFail with an effectful predicate\n * Effect.filterEffectOrFail({\n * predicate: (user) => Effect.succeed(user !== null),\n * orFailWith: () => new Error(\"Unauthorized\")\n * }),\n * )\n * ```\n *\n * @since 3.13.0\n * @category Filtering\n */\nexport const filterEffectOrFail = core.filterEffectOrFail;\n/**\n * Executes an effect only if the condition is `false`.\n *\n * @see {@link unlessEffect} for a version that allows the condition to be an effect.\n * @see {@link when} for a version that executes the effect when the condition is `true`.\n *\n * @since 2.0.0\n * @category Conditional Operators\n */\nexport const unless = effect.unless;\n/**\n * Conditionally execute an effect based on the result of another effect.\n *\n * @see {@link unless} for a version that allows the condition to be a boolean.\n * @see {@link whenEffect} for a version that executes the effect when the condition is `true`.\n *\n * @since 2.0.0\n * @category Conditional Operators\n */\nexport const unlessEffect = effect.unlessEffect;\n/**\n * Conditionally executes an effect based on a boolean condition.\n *\n * **Details**\n *\n * This function allows you to run an effect only if a given condition evaluates\n * to `true`. If the condition is `true`, the effect is executed, and its result\n * is wrapped in an `Option.some`. If the condition is `false`, the effect is\n * skipped, and the result is `Option.none`.\n *\n * **When to Use**\n *\n * This function is useful for scenarios where you need to dynamically decide\n * whether to execute an effect based on runtime logic, while also representing\n * the skipped case explicitly.\n *\n * **Example** (Conditional Effect Execution)\n *\n * ```ts\n * import { Effect, Option } from \"effect\"\n *\n * const validateWeightOption = (\n * weight: number\n * ): Effect.Effect> =>\n * // Conditionally execute the effect if the weight is non-negative\n * Effect.succeed(weight).pipe(Effect.when(() => weight >= 0))\n *\n * // Run with a valid weight\n * Effect.runPromise(validateWeightOption(100)).then(console.log)\n * // Output:\n * // {\n * // _id: \"Option\",\n * // _tag: \"Some\",\n * // value: 100\n * // }\n *\n * // Run with an invalid weight\n * Effect.runPromise(validateWeightOption(-5)).then(console.log)\n * // Output:\n * // {\n * // _id: \"Option\",\n * // _tag: \"None\"\n * // }\n * ```\n *\n * @see {@link whenEffect} for a version that allows the condition to be an effect.\n * @see {@link unless} for a version that executes the effect when the condition is `false`.\n *\n * @since 2.0.0\n * @category Conditional Operators\n */\nexport const when = effect.when;\n/**\n * Conditionally executes an effect based on the result of another effect.\n *\n * **Details**\n *\n * This function allows you to run an effect only if a conditional effect\n * evaluating to a boolean resolves to `true`. If the conditional effect\n * evaluates to `true`, the specified effect is executed, and its result is\n * wrapped in `Option.some`. If the conditional effect evaluates to `false`, the\n * effect is skipped, and the result is `Option.none`.\n *\n * **When to Use**\n *\n * This function is particularly useful when the decision to execute an effect\n * depends on the result of another effect, such as a random value, a\n * user-provided input, or a network request result.\n *\n * **Example** (Using an Effect as a Condition)\n *\n * ```ts\n * import { Effect, Random } from \"effect\"\n *\n * const randomIntOption = Random.nextInt.pipe(\n * Effect.whenEffect(Random.nextBoolean)\n * )\n *\n * console.log(Effect.runSync(randomIntOption))\n * // Example Output:\n * // { _id: 'Option', _tag: 'Some', value: 8609104974198840 }\n * ```\n *\n * @see {@link when} for a version that allows the condition to be a boolean.\n * @see {@link unlessEffect} for a version that executes the effect when the condition is `false`.\n *\n * @since 2.0.0\n * @category Conditional Operators\n */\nexport const whenEffect = core.whenEffect;\n/**\n * Executes an effect conditionally based on the value of a `FiberRef` that\n * satisfies a predicate.\n *\n * **Details**\n *\n * This function enables you to execute an effect only when the value of a\n * specified `FiberRef` meets a certain condition defined by a predicate. If the\n * value satisfies the predicate, the effect is executed, and the result is\n * wrapped in an `Option.some`. If the predicate is not satisfied, the effect is\n * skipped, and the result is `Option.none`. In both cases, the current value of\n * the `FiberRef` is included in the result.\n *\n * @since 2.0.0\n * @category Conditional Operators\n */\nexport const whenFiberRef = effect.whenFiberRef;\n/**\n * Executes an effect conditionally based on the value of a `Ref` that satisfies\n * a predicate.\n *\n * **Details**\n *\n * This function allows you to execute an effect only when the value of a\n * specified `Ref` meets a condition defined by a predicate. If the value\n * satisfies the predicate, the effect is executed, and the result is wrapped in\n * an `Option.some`. If the predicate is not satisfied, the effect is skipped,\n * and the result is `Option.none`. In both cases, the current value of the\n * `Ref` is included in the result.\n *\n * @since 2.0.0\n * @category Conditional Operators\n */\nexport const whenRef = effect.whenRef;\n/**\n * Chains effects to produce new `Effect` instances, useful for combining\n * operations that depend on previous results.\n *\n * **Syntax**\n *\n * ```ts skip-type-checking\n * const flatMappedEffect = pipe(myEffect, Effect.flatMap(transformation))\n * // or\n * const flatMappedEffect = Effect.flatMap(myEffect, transformation)\n * // or\n * const flatMappedEffect = myEffect.pipe(Effect.flatMap(transformation))\n * ```\n *\n * **Details**\n *\n * `flatMap` lets you sequence effects so that the result of one effect can be\n * used in the next step. It is similar to `flatMap` used with arrays but works\n * specifically with `Effect` instances, allowing you to avoid deeply nested\n * effect structures.\n *\n * Since effects are immutable, `flatMap` always returns a new effect instead of\n * changing the original one.\n *\n * **When to Use**\n *\n * Use `flatMap` when you need to chain multiple effects, ensuring that each\n * step produces a new `Effect` while flattening any nested effects that may\n * occur.\n *\n * **Example**\n *\n * ```ts\n * import { pipe, Effect } from \"effect\"\n *\n * // Function to apply a discount safely to a transaction amount\n * const applyDiscount = (\n * total: number,\n * discountRate: number\n * ): Effect.Effect =>\n * discountRate === 0\n * ? Effect.fail(new Error(\"Discount rate cannot be zero\"))\n * : Effect.succeed(total - (total * discountRate) / 100)\n *\n * // Simulated asynchronous task to fetch a transaction amount from database\n * const fetchTransactionAmount = Effect.promise(() => Promise.resolve(100))\n *\n * // Chaining the fetch and discount application using `flatMap`\n * const finalAmount = pipe(\n * fetchTransactionAmount,\n * Effect.flatMap((amount) => applyDiscount(amount, 5))\n * )\n *\n * Effect.runPromise(finalAmount).then(console.log)\n * // Output: 95\n * ```\n *\n * @see {@link tap} for a version that ignores the result of the effect.\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const flatMap = core.flatMap;\n/**\n * Chains two actions, where the second action can depend on the result of the\n * first.\n *\n * **Syntax**\n *\n * ```ts skip-type-checking\n * const transformedEffect = pipe(myEffect, Effect.andThen(anotherEffect))\n * // or\n * const transformedEffect = Effect.andThen(myEffect, anotherEffect)\n * // or\n * const transformedEffect = myEffect.pipe(Effect.andThen(anotherEffect))\n * ```\n *\n * **When to Use**\n *\n * Use `andThen` when you need to run multiple actions in sequence, with the\n * second action depending on the result of the first. This is useful for\n * combining effects or handling computations that must happen in order.\n *\n * **Details**\n *\n * The second action can be:\n *\n * - A constant value (similar to {@link as})\n * - A function returning a value (similar to {@link map})\n * - A `Promise`\n * - A function returning a `Promise`\n * - An `Effect`\n * - A function returning an `Effect` (similar to {@link flatMap})\n *\n * **Note:** `andThen` works well with both `Option` and `Either` types,\n * treating them as effects.\n *\n * **Example** (Applying a Discount Based on Fetched Amount)\n *\n * ```ts\n * import { pipe, Effect } from \"effect\"\n *\n * // Function to apply a discount safely to a transaction amount\n * const applyDiscount = (\n * total: number,\n * discountRate: number\n * ): Effect.Effect =>\n * discountRate === 0\n * ? Effect.fail(new Error(\"Discount rate cannot be zero\"))\n * : Effect.succeed(total - (total * discountRate) / 100)\n *\n * // Simulated asynchronous task to fetch a transaction amount from database\n * const fetchTransactionAmount = Effect.promise(() => Promise.resolve(100))\n *\n * // Using Effect.map and Effect.flatMap\n * const result1 = pipe(\n * fetchTransactionAmount,\n * Effect.map((amount) => amount * 2),\n * Effect.flatMap((amount) => applyDiscount(amount, 5))\n * )\n *\n * Effect.runPromise(result1).then(console.log)\n * // Output: 190\n *\n * // Using Effect.andThen\n * const result2 = pipe(\n * fetchTransactionAmount,\n * Effect.andThen((amount) => amount * 2),\n * Effect.andThen((amount) => applyDiscount(amount, 5))\n * )\n *\n * Effect.runPromise(result2).then(console.log)\n * // Output: 190\n * ```\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const andThen = core.andThen;\n/**\n * @since 2.0.0\n * @category Sequencing\n */\nexport const flatten = core.flatten;\n/**\n * Races two effects and returns the result of the first successful one.\n *\n * **Details**\n *\n * This function takes two effects and runs them concurrently. The first effect\n * that successfully completes will determine the result of the race, and the\n * other effect will be interrupted.\n *\n * If neither effect succeeds, the function will fail with a `Cause`\n * containing all the errors.\n *\n * **When to Use**\n *\n * This is useful when you want to run two effects concurrently, but only care\n * about the first one to succeed. It is commonly used in cases like timeouts,\n * retries, or when you want to optimize for the faster response without\n * worrying about the other effect.\n *\n * **Handling Success or Failure with Either**\n *\n * If you want to handle the result of whichever task completes first, whether\n * it succeeds or fails, you can use the `Effect.either` function. This function\n * wraps the result in an `Either` type, allowing you to see if the result\n * was a success (`Right`) or a failure (`Left`).\n *\n * **Example** (Both Tasks Succeed)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.succeed(\"task1\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() => Console.log(\"task1 interrupted\"))\n * )\n * const task2 = Effect.succeed(\"task2\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() => Console.log(\"task2 interrupted\"))\n * )\n *\n * const program = Effect.race(task1, task2)\n *\n * Effect.runFork(program)\n * // Output:\n * // task1 done\n * // task2 interrupted\n * ```\n *\n * **Example** (One Task Fails, One Succeeds)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.fail(\"task1\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() => Console.log(\"task1 interrupted\"))\n * )\n * const task2 = Effect.succeed(\"task2\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() => Console.log(\"task2 interrupted\"))\n * )\n *\n * const program = Effect.race(task1, task2)\n *\n * Effect.runFork(program)\n * // Output:\n * // task2 done\n * ```\n *\n * **Example** (Both Tasks Fail)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.fail(\"task1\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() => Console.log(\"task1 interrupted\"))\n * )\n * const task2 = Effect.fail(\"task2\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() => Console.log(\"task2 interrupted\"))\n * )\n *\n * const program = Effect.race(task1, task2)\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Parallel',\n * // left: { _id: 'Cause', _tag: 'Fail', failure: 'task1' },\n * // right: { _id: 'Cause', _tag: 'Fail', failure: 'task2' }\n * // }\n * // }\n * ```\n *\n * **Example** (Handling Success or Failure with Either)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.fail(\"task1\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() => Console.log(\"task1 interrupted\"))\n * )\n * const task2 = Effect.succeed(\"task2\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() => Console.log(\"task2 interrupted\"))\n * )\n *\n * // Run both tasks concurrently, wrapping the result\n * // in Either to capture success or failure\n * const program = Effect.race(Effect.either(task1), Effect.either(task2))\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // task2 interrupted\n * // { _id: 'Either', _tag: 'Left', left: 'task1' }\n * ```\n *\n * @see {@link raceAll} for a version that handles multiple effects.\n * @see {@link raceFirst} for a version that returns the result of the first effect to complete.\n *\n * @since 2.0.0\n * @category Racing\n */\nexport const race = fiberRuntime.race;\n/**\n * Races multiple effects and returns the first successful result.\n *\n * **Details**\n *\n * This function runs multiple effects concurrently and returns the result of\n * the first one to succeed. If one effect succeeds, the others will be\n * interrupted.\n *\n * If none of the effects succeed, the function will fail with the last error\n * encountered.\n *\n * **When to Use**\n *\n * This is useful when you want to race multiple effects, but only care about\n * the first one to succeed. It is commonly used in cases like timeouts,\n * retries, or when you want to optimize for the faster response without\n * worrying about the other effects.\n *\n * **Example** (All Tasks Succeed)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.succeed(\"task1\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() => Console.log(\"task1 interrupted\"))\n * )\n * const task2 = Effect.succeed(\"task2\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() => Console.log(\"task2 interrupted\"))\n * )\n *\n * const task3 = Effect.succeed(\"task3\").pipe(\n * Effect.delay(\"150 millis\"),\n * Effect.tap(Console.log(\"task3 done\")),\n * Effect.onInterrupt(() => Console.log(\"task3 interrupted\"))\n * )\n *\n * const program = Effect.raceAll([task1, task2, task3])\n *\n * Effect.runFork(program)\n * // Output:\n * // task1 done\n * // task2 interrupted\n * // task3 interrupted\n * ```\n *\n * **Example** (One Task Fails, Two Tasks Succeed)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.fail(\"task1\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() => Console.log(\"task1 interrupted\"))\n * )\n * const task2 = Effect.succeed(\"task2\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() => Console.log(\"task2 interrupted\"))\n * )\n *\n * const task3 = Effect.succeed(\"task3\").pipe(\n * Effect.delay(\"150 millis\"),\n * Effect.tap(Console.log(\"task3 done\")),\n * Effect.onInterrupt(() => Console.log(\"task3 interrupted\"))\n * )\n *\n * const program = Effect.raceAll([task1, task2, task3])\n *\n * Effect.runFork(program)\n * // Output:\n * // task3 done\n * // task2 interrupted\n * ```\n *\n * **Example** (All Tasks Fail)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.fail(\"task1\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() => Console.log(\"task1 interrupted\"))\n * )\n * const task2 = Effect.fail(\"task2\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() => Console.log(\"task2 interrupted\"))\n * )\n *\n * const task3 = Effect.fail(\"task3\").pipe(\n * Effect.delay(\"150 millis\"),\n * Effect.tap(Console.log(\"task3 done\")),\n * Effect.onInterrupt(() => Console.log(\"task3 interrupted\"))\n * )\n *\n * const program = Effect.raceAll([task1, task2, task3])\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: { _id: 'Cause', _tag: 'Fail', failure: 'task2' }\n * // }\n * ```\n *\n * @see {@link race} for a version that handles only two effects.\n *\n * @since 2.0.0\n * @category Racing\n */\nexport const raceAll = fiberRuntime.raceAll;\n/**\n * Races two effects and returns the result of the first one to complete.\n *\n * **Details**\n *\n * This function takes two effects and runs them concurrently, returning the\n * result of the first one that completes, regardless of whether it succeeds or\n * fails.\n *\n * **When to Use**\n *\n * This function is useful when you want to race two operations, and you want to\n * proceed with whichever one finishes first, regardless of whether it succeeds\n * or fails.\n *\n * **Disconnecting Effects**\n *\n * The `Effect.raceFirst` function safely interrupts the “loser” effect once the other completes, but it will not resume until the loser is cleanly terminated.\n *\n * If you want a quicker return, you can disconnect the interrupt signal for both effects. Instead of calling:\n *\n * ```ts skip-type-checking\n * Effect.raceFirst(task1, task2)\n * ```\n *\n * You can use:\n *\n * ```ts skip-type-checking\n * Effect.raceFirst(Effect.disconnect(task1), Effect.disconnect(task2))\n * ```\n *\n * This allows both effects to complete independently while still terminating the losing effect in the background.\n *\n * **Example** (Both Tasks Succeed)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.succeed(\"task1\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() =>\n * Console.log(\"task1 interrupted\").pipe(Effect.delay(\"100 millis\"))\n * )\n * )\n * const task2 = Effect.succeed(\"task2\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() =>\n * Console.log(\"task2 interrupted\").pipe(Effect.delay(\"100 millis\"))\n * )\n * )\n *\n * const program = Effect.raceFirst(task1, task2).pipe(\n * Effect.tap(Console.log(\"more work...\"))\n * )\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // task1 done\n * // task2 interrupted\n * // more work...\n * // { _id: 'Exit', _tag: 'Success', value: 'task1' }\n * ```\n *\n * **Example** (One Task Fails, One Succeeds)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.fail(\"task1\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() =>\n * Console.log(\"task1 interrupted\").pipe(Effect.delay(\"100 millis\"))\n * )\n * )\n * const task2 = Effect.succeed(\"task2\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() =>\n * Console.log(\"task2 interrupted\").pipe(Effect.delay(\"100 millis\"))\n * )\n * )\n *\n * const program = Effect.raceFirst(task1, task2).pipe(\n * Effect.tap(Console.log(\"more work...\"))\n * )\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // task2 interrupted\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: { _id: 'Cause', _tag: 'Fail', failure: 'task1' }\n * // }\n * ```\n *\n * **Example** (Using Effect.disconnect for Quicker Return)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.succeed(\"task1\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() =>\n * Console.log(\"task1 interrupted\").pipe(Effect.delay(\"100 millis\"))\n * )\n * )\n * const task2 = Effect.succeed(\"task2\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() =>\n * Console.log(\"task2 interrupted\").pipe(Effect.delay(\"100 millis\"))\n * )\n * )\n *\n * // Race the two tasks with disconnect to allow quicker return\n * const program = Effect.raceFirst(\n * Effect.disconnect(task1),\n * Effect.disconnect(task2)\n * ).pipe(Effect.tap(Console.log(\"more work...\")))\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // task1 done\n * // more work...\n * // { _id: 'Exit', _tag: 'Success', value: 'task1' }\n * // task2 interrupted\n * ```\n *\n * @since 2.0.0\n * @category Racing\n */\nexport const raceFirst = circular.raceFirst;\n/**\n * Races two effects and calls a finisher when the first one completes.\n *\n * **Details**\n *\n * This function runs two effects concurrently and calls a specified “finisher”\n * function once one of the effects completes, regardless of whether it succeeds\n * or fails.\n *\n * The finisher functions for each effect allow you to handle the results of\n * each effect as soon as they complete.\n *\n * The function takes two finisher callbacks, one for each effect, and allows\n * you to specify how to handle the result of the race.\n *\n * **When to Use**\n *\n * This function is useful when you need to react to the completion of either\n * effect without waiting for both to finish. It can be used whenever you want\n * to take action based on the first available result.\n *\n * **Example** (Handling Results of Concurrent Tasks)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.succeed(\"task1\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() =>\n * Console.log(\"task1 interrupted\").pipe(Effect.delay(\"100 millis\"))\n * )\n * )\n * const task2 = Effect.succeed(\"task2\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() =>\n * Console.log(\"task2 interrupted\").pipe(Effect.delay(\"100 millis\"))\n * )\n * )\n *\n * const program = Effect.raceWith(task1, task2, {\n * onSelfDone: (exit) => Console.log(`task1 exited with ${exit}`),\n * onOtherDone: (exit) => Console.log(`task2 exited with ${exit}`)\n * })\n *\n * Effect.runFork(program)\n * // Output:\n * // task1 done\n * // task1 exited with {\n * // \"_id\": \"Exit\",\n * // \"_tag\": \"Success\",\n * // \"value\": \"task1\"\n * // }\n * // task2 interrupted\n * ```\n *\n * @since 2.0.0\n * @category Racing\n */\nexport const raceWith = fiberRuntime.raceWith;\n/**\n * Summarizes a effect by computing some value before and after execution, and\n * then combining the values to produce a summary, together with the result of\n * execution.\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const summarized = effect.summarized;\n/**\n * Runs a side effect with the result of an effect without changing the original\n * value.\n *\n * **Details**\n *\n * This function works similarly to `flatMap`, but it ignores the result of the\n * function passed to it. The value from the previous effect remains available\n * for the next part of the chain. Note that if the side effect fails, the\n * entire chain will fail too.\n *\n * **When to Use**\n *\n * Use this function when you want to perform a side effect, like logging or\n * tracking, without modifying the main value. This is useful when you need to\n * observe or record an action but want the original value to be passed to the\n * next step.\n *\n * **Example** (Logging a step in a pipeline)\n *\n * ```ts\n * import { Console, Effect, pipe } from \"effect\"\n *\n * // Function to apply a discount safely to a transaction amount\n * const applyDiscount = (\n * total: number,\n * discountRate: number\n * ): Effect.Effect =>\n * discountRate === 0\n * ? Effect.fail(new Error(\"Discount rate cannot be zero\"))\n * : Effect.succeed(total - (total * discountRate) / 100)\n *\n * // Simulated asynchronous task to fetch a transaction amount from database\n * const fetchTransactionAmount = Effect.promise(() => Promise.resolve(100))\n *\n * const finalAmount = pipe(\n * fetchTransactionAmount,\n * // Log the fetched transaction amount\n * Effect.tap((amount) => Console.log(`Apply a discount to: ${amount}`)),\n * // `amount` is still available!\n * Effect.flatMap((amount) => applyDiscount(amount, 5))\n * )\n *\n * Effect.runPromise(finalAmount).then(console.log)\n * // Output:\n * // Apply a discount to: 100\n * // 95\n * ```\n *\n * @see {@link flatMap} for a version that allows you to change the value.\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const tap = core.tap;\n/**\n * Allows you to inspect both success and failure outcomes of an effect and\n * perform side effects for each.\n *\n * **Details**\n *\n * This function enables you to handle both success and failure cases\n * separately, without modifying the main effect's result. It is particularly\n * useful for scenarios where you need to log, monitor, or perform additional\n * actions depending on whether the effect succeeded or failed.\n *\n * When the effect succeeds, the `onSuccess` handler is executed with the\n * success value. When the effect fails, the `onFailure` handler is executed\n * with the failure value. Both handlers can include side effects such as\n * logging or analytics, and neither modifies the original effect's output.\n *\n * If either the success or failure handler fails, the overall effect will also\n * fail.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Random, Console } from \"effect\"\n *\n * // Simulate a task that might fail\n * const task = Effect.filterOrFail(\n * Random.nextRange(-1, 1),\n * (n) => n >= 0,\n * () => \"random number is negative\"\n * )\n *\n * // Use tapBoth to log both success and failure outcomes\n * const tapping = Effect.tapBoth(task, {\n * onFailure: (error) => Console.log(`failure: ${error}`),\n * onSuccess: (randomNumber) =>\n * Console.log(`random number: ${randomNumber}`)\n * })\n *\n * Effect.runFork(tapping)\n * // Example Output:\n * // failure: random number is negative\n * ```\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const tapBoth = effect.tapBoth;\n/**\n * Inspect severe errors or defects (non-recoverable failures) in an effect.\n *\n * **Details**\n *\n * This function is specifically designed to handle and inspect defects, which\n * are critical failures in your program, such as unexpected runtime exceptions\n * or system-level errors. Unlike normal recoverable errors, defects typically\n * indicate serious issues that cannot be addressed through standard error\n * handling.\n *\n * When a defect occurs in an effect, the function you provide to this function\n * will be executed, allowing you to log, monitor, or handle the defect in some\n * way. Importantly, this does not alter the main result of the effect. If no\n * defect occurs, the effect behaves as if this function was not used.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // Simulate a task that fails with a recoverable error\n * const task1: Effect.Effect = Effect.fail(\"NetworkError\")\n *\n * // tapDefect won't log anything because NetworkError is not a defect\n * const tapping1 = Effect.tapDefect(task1, (cause) =>\n * Console.log(`defect: ${cause}`)\n * )\n *\n * Effect.runFork(tapping1)\n * // No Output\n *\n * // Simulate a severe failure in the system\n * const task2: Effect.Effect = Effect.dieMessage(\n * \"Something went wrong\"\n * )\n *\n * // Log the defect using tapDefect\n * const tapping2 = Effect.tapDefect(task2, (cause) =>\n * Console.log(`defect: ${cause}`)\n * )\n *\n * Effect.runFork(tapping2)\n * // Output:\n * // defect: RuntimeException: Something went wrong\n * // ... stack trace ...\n * ```\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const tapDefect = effect.tapDefect;\n/**\n * Execute a side effect on failure without modifying the original effect.\n *\n * **Details**\n *\n * This function allows you to inspect and react to the failure of an effect by\n * executing an additional effect. The failure value is passed to the provided\n * function, enabling you to log it, track it, or perform any other operation.\n * Importantly, the original failure remains intact and is re-propagated, so the\n * effect's behavior is unchanged.\n *\n * The side effect you provide is only executed when the effect fails. If the\n * effect succeeds, the function is ignored, and the success value is propagated\n * as usual.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // Simulate a task that fails with an error\n * const task: Effect.Effect = Effect.fail(\"NetworkError\")\n *\n * // Use tapError to log the error message when the task fails\n * const tapping = Effect.tapError(task, (error) =>\n * Console.log(`expected error: ${error}`)\n * )\n *\n * Effect.runFork(tapping)\n * // Output:\n * // expected error: NetworkError\n * ```\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const tapError = effect.tapError;\n/**\n * Inspect errors matching a specific tag without altering the original effect.\n *\n * **Details**\n *\n * This function allows you to inspect and handle specific error types based on\n * their `_tag` property. It is particularly useful in applications where errors\n * are modeled with tagged types (e.g., union types with discriminating tags).\n * By targeting errors with a specific `_tag`, you can log or perform actions on\n * them while leaving the error channel and overall effect unchanged.\n *\n * If the error doesn't match the specified tag, this function does nothing, and\n * the effect proceeds as usual.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * class NetworkError {\n * readonly _tag = \"NetworkError\"\n * constructor(readonly statusCode: number) {}\n * }\n *\n * class ValidationError {\n * readonly _tag = \"ValidationError\"\n * constructor(readonly field: string) {}\n * }\n *\n * // Create a task that fails with a NetworkError\n * const task: Effect.Effect =\n * Effect.fail(new NetworkError(504))\n *\n * // Use tapErrorTag to inspect only NetworkError types and log the status code\n * const tapping = Effect.tapErrorTag(task, \"NetworkError\", (error) =>\n * Console.log(`expected error: ${error.statusCode}`)\n * )\n *\n * Effect.runFork(tapping)\n * // Output:\n * // expected error: 504\n * ```\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const tapErrorTag = effect.tapErrorTag;\n/**\n * Inspect the complete cause of an error, including failures and defects.\n *\n * **Details**\n *\n * This function provides access to the full cause of an error, including both\n * recoverable failures and irrecoverable defects. It allows you to handle, log,\n * or monitor specific error causes without modifying the result of the effect.\n * The full `Cause` object encapsulates the error and its contextual\n * information, making it useful for debugging and understanding failure\n * scenarios in complex workflows.\n *\n * The effect itself is not modified, and any errors or defects remain in the\n * error channel of the original effect.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // Create a task that fails with a NetworkError\n * const task1: Effect.Effect = Effect.fail(\"NetworkError\")\n *\n * const tapping1 = Effect.tapErrorCause(task1, (cause) =>\n * Console.log(`error cause: ${cause}`)\n * )\n *\n * Effect.runFork(tapping1)\n * // Output:\n * // error cause: Error: NetworkError\n *\n * // Simulate a severe failure in the system\n * const task2: Effect.Effect = Effect.dieMessage(\n * \"Something went wrong\"\n * )\n *\n * const tapping2 = Effect.tapErrorCause(task2, (cause) =>\n * Console.log(`error cause: ${cause}`)\n * )\n *\n * Effect.runFork(tapping2)\n * // Output:\n * // error cause: RuntimeException: Something went wrong\n * // ... stack trace ...\n * ```\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const tapErrorCause = effect.tapErrorCause;\n/**\n * Repeats an effect indefinitely until an error occurs.\n *\n * **Details**\n *\n * This function executes an effect repeatedly in an infinite loop. Each\n * iteration is executed sequentially, and the loop continues until the first\n * error occurs. If the effect succeeds, it starts over from the beginning. If\n * the effect fails, the error is propagated, and the loop stops.\n *\n * Be cautious when using this function, as it will run indefinitely unless an\n * error interrupts it. This makes it suitable for long-running processes or\n * continuous polling tasks, but you should ensure proper error handling or\n * combine it with other operators like `timeout` or `schedule` to prevent\n * unintentional infinite loops.\n *\n * @since 2.0.0\n * @category Repetition / Recursion\n */\nexport const forever = effect.forever;\n/**\n * Repeatedly updates a state through an effectful operation until a condition\n * is no longer met.\n *\n * **Details**\n *\n * This function provides a way to implement effectful loops, similar to a\n * `while` loop in JavaScript.\n *\n * ```ts skip-type-checking\n * let result = initial\n *\n * while (options.while(result)) {\n * result = options.body(result)\n * }\n *\n * return result\n * ```\n *\n * It starts with an initial state, checks a\n * condition (`while`), and executes a body operation to update the state if the\n * condition evaluates to `true`. The process repeats until the condition\n * returns `false`.\n *\n * The state is passed between iterations, allowing the body operation to modify\n * it dynamically. The final state after the loop ends is returned as the result\n * of the effect.\n *\n * **When to Use**\n *\n * This is particularly useful for scenarios where looping logic involves\n * asynchronous or side-effectful operations, such as polling or iterative\n * computations that depend on external factors.\n *\n * **Example** (Effectful Iteration)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const result = Effect.iterate(\n * // Initial result\n * 1,\n * {\n * // Condition to continue iterating\n * while: (result) => result <= 5,\n * // Operation to change the result\n * body: (result) => Effect.succeed(result + 1)\n * }\n * )\n *\n * Effect.runPromise(result).then(console.log)\n * // Output: 6\n * ```\n *\n * @since 2.0.0\n * @category Looping\n */\nexport const iterate = effect.iterate;\n/**\n * Repeatedly executes a loop with a state, collecting results or discarding\n * them based on configuration.\n *\n * **Details**\n *\n * This function performs an effectful loop, starting with an initial state and\n * iterating as long as the `while` condition evaluates to `true`, similar to a\n * `while` loop in JavaScript.\n *\n * ```ts skip-type-checking\n * let state = initial\n * const result = []\n *\n * while (options.while(state)) {\n * result.push(options.body(state)) // Perform the effectful operation\n * state = options.step(state) // Update the state\n * }\n *\n * return result\n * ```\n *\n * During each iteration, the `step` function updates the state, and the `body`\n * effect is executed.\n *\n * The results of the body effect can be collected in an array or discarded\n * based on the `discard` option.\n *\n * **Discarding Intermediate Results**\n *\n * - If `discard` is `false` or not provided, the intermediate results are\n * collected into an array and returned as the final result.\n * - If `discard` is `true`, the intermediate results are ignored, and the\n * effect returns `void`.\n *\n * **When to Use**\n *\n * This is useful for implementing loops where you need to perform effectful\n * computations repeatedly, such as processing items in a list, generating\n * values, or performing iterative updates.\n *\n * **Example** (Looping with Collected Results)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // A loop that runs 5 times, collecting each iteration's result\n * const result = Effect.loop(\n * // Initial state\n * 1,\n * {\n * // Condition to continue looping\n * while: (state) => state <= 5,\n * // State update function\n * step: (state) => state + 1,\n * // Effect to be performed on each iteration\n * body: (state) => Effect.succeed(state)\n * }\n * )\n *\n * Effect.runPromise(result).then(console.log)\n * // Output: [1, 2, 3, 4, 5]\n * ```\n *\n * **Example** (Loop with Discarded Results)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const result = Effect.loop(\n * // Initial state\n * 1,\n * {\n * // Condition to continue looping\n * while: (state) => state <= 5,\n * // State update function\n * step: (state) => state + 1,\n * // Effect to be performed on each iteration\n * body: (state) => Console.log(`Currently at state ${state}`),\n * // Discard intermediate results\n * discard: true\n * }\n * )\n *\n * Effect.runPromise(result).then(console.log)\n * // Output:\n * // Currently at state 1\n * // Currently at state 2\n * // Currently at state 3\n * // Currently at state 4\n * // Currently at state 5\n * // undefined\n * ```\n *\n * @since 2.0.0\n * @category Looping\n */\nexport const loop = effect.loop;\n/**\n * Repeats an effect based on a specified schedule or until the first failure.\n *\n * **Details**\n *\n * This function executes an effect repeatedly according to the given schedule.\n * Each repetition occurs after the initial execution of the effect, meaning\n * that the schedule determines the number of additional repetitions. For\n * example, using `Schedule.once` will result in the effect being executed twice\n * (once initially and once as part of the repetition).\n *\n * If the effect succeeds, it is repeated according to the schedule. If it\n * fails, the repetition stops immediately, and the failure is returned.\n *\n * The schedule can also specify delays between repetitions, making it useful\n * for tasks like retrying operations with backoff, periodic execution, or\n * performing a series of dependent actions.\n *\n * You can combine schedules for more advanced repetition logic, such as adding\n * delays, limiting recursions, or dynamically adjusting based on the outcome of\n * each execution.\n *\n * **Example** (Success Example)\n *\n * ```ts\n * import { Effect, Schedule, Console } from \"effect\"\n *\n * const action = Console.log(\"success\")\n * const policy = Schedule.addDelay(Schedule.recurs(2), () => \"100 millis\")\n * const program = Effect.repeat(action, policy)\n *\n * Effect.runPromise(program).then((n) => console.log(`repetitions: ${n}`))\n * ```\n *\n * **Example** (Failure Example)\n *\n * ```ts\n * import { Effect, Schedule } from \"effect\"\n *\n * let count = 0\n *\n * // Define an async effect that simulates an action with possible failures\n * const action = Effect.async((resume) => {\n * if (count > 1) {\n * console.log(\"failure\")\n * resume(Effect.fail(\"Uh oh!\"))\n * } else {\n * count++\n * console.log(\"success\")\n * resume(Effect.succeed(\"yay!\"))\n * }\n * })\n *\n * const policy = Schedule.addDelay(Schedule.recurs(2), () => \"100 millis\")\n * const program = Effect.repeat(action, policy)\n *\n * Effect.runPromiseExit(program).then(console.log)\n * ```\n *\n * @since 2.0.0\n * @category Repetition / Recursion\n */\nexport const repeat = schedule_.repeat_combined;\n/**\n * Repeats an effect a specified number of times or until the first failure.\n *\n * **Details**\n *\n * This function executes an effect initially and then repeats it the specified\n * number of times, as long as it succeeds. For example, calling\n * `repeatN(action, 2)` will execute `action` once initially and then repeat it\n * two additional times if there are no failures.\n *\n * If the effect fails during any repetition, the failure is returned, and no\n * further repetitions are attempted.\n *\n * **When to Use**\n *\n * This function is useful for tasks that need to be retried a fixed number of\n * times or for performing repeated actions without requiring a schedule.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const action = Console.log(\"success\")\n * const program = Effect.repeatN(action, 2)\n *\n * Effect.runPromise(program)\n * ```\n *\n * @since 2.0.0\n * @category Repetition / Recursion\n */\nexport const repeatN = effect.repeatN;\n/**\n * Repeats an effect with a schedule, handling failures using a custom handler.\n *\n * **Details**\n *\n * This function allows you to execute an effect repeatedly based on a specified\n * schedule. If the effect fails at any point, a custom failure handler is\n * invoked. The handler is provided with both the failure value and the output\n * of the schedule at the time of failure. This enables advanced error recovery\n * or alternative fallback logic while maintaining flexibility in how\n * repetitions are handled.\n *\n * For example, using a schedule with `recurs(2)` will allow for two additional\n * repetitions after the initial execution, provided the effect succeeds. If a\n * failure occurs during any iteration, the failure handler is invoked to handle\n * the situation.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Schedule } from \"effect\"\n *\n * let count = 0\n *\n * // Define an async effect that simulates an action with possible failures\n * const action = Effect.async((resume) => {\n * if (count > 1) {\n * console.log(\"failure\")\n * resume(Effect.fail(\"Uh oh!\"))\n * } else {\n * count++\n * console.log(\"success\")\n * resume(Effect.succeed(\"yay!\"))\n * }\n * })\n *\n * const policy = Schedule.addDelay(\n * Schedule.recurs(2), // Repeat for a maximum of 2 times\n * () => \"100 millis\" // Add a delay of 100 milliseconds between repetitions\n * )\n *\n * const program = Effect.repeatOrElse(action, policy, () =>\n * Effect.sync(() => {\n * console.log(\"orElse\")\n * return count - 1\n * })\n * )\n *\n * Effect.runPromise(program).then((n) => console.log(`repetitions: ${n}`))\n * ```\n *\n * @since 2.0.0\n * @category Repetition / Recursion\n */\nexport const repeatOrElse = schedule_.repeatOrElse_Effect;\n/**\n * Repeats an effect based on a specified schedule.\n *\n * **Details**\n *\n * This function allows you to execute an effect repeatedly according to a given\n * schedule. The schedule determines the timing and number of repetitions. Each\n * repetition can also depend on the decision of the schedule, providing\n * flexibility for complex workflows. This function does not modify the effect's\n * success or failure; it only controls its repetition.\n *\n * For example, you can use a schedule that recurs a specific number of times,\n * adds delays between repetitions, or customizes repetition behavior based on\n * external inputs. The effect runs initially and is repeated according to the\n * schedule.\n *\n * @see {@link scheduleFrom} for a variant that allows the schedule's decision\n * to depend on the result of this effect.\n *\n * @since 2.0.0\n * @category Repetition / Recursion\n */\nexport const schedule = schedule_.schedule_Effect;\n/**\n * Runs an effect repeatedly on a new fiber according to a given schedule.\n *\n * **Details**\n *\n * This function starts the provided effect on a new fiber and runs it\n * repeatedly based on the specified schedule. The repetitions are managed by\n * the schedule's rules, which define the timing and number of iterations. The\n * fiber is attached to the current scope, meaning it is automatically managed\n * and cleaned up when the scope is closed.\n *\n * The function returns a `RuntimeFiber` that allows you to monitor or interact\n * with the running fiber.\n *\n * **When to Use**\n *\n * This is particularly useful for concurrent execution of scheduled tasks or\n * when you want to continue processing without waiting for the repetitions to\n * complete.\n *\n * @since 2.0.0\n * @category Repetition / Recursion\n */\nexport const scheduleForked = schedule_.scheduleForked;\n/**\n * Runs an effect repeatedly according to a schedule, starting from a specified\n * input value.\n *\n * **Details**\n *\n * This function allows you to repeatedly execute an effect based on a schedule.\n * The schedule starts with the given `initial` input value, which is passed to\n * the first execution. Subsequent executions of the effect are controlled by\n * the schedule's rules, using the output of the previous iteration as the input\n * for the next one.\n *\n * The returned effect will complete when the schedule ends or the effect fails,\n * propagating the error.\n *\n * @since 2.0.0\n * @category Repetition / Recursion\n */\nexport const scheduleFrom = schedule_.scheduleFrom_Effect;\n/**\n * @since 2.0.0\n * @category Repetition / Recursion\n */\nexport const whileLoop = core.whileLoop;\n/**\n * Returns a collection of all `FiberRef` values for the fiber running this\n * effect.\n *\n * @since 2.0.0\n * @category Fiber Refs\n */\nexport const getFiberRefs = effect.fiberRefs;\n/**\n * Inherits values from all `FiberRef` instances into current fiber.\n *\n * @since 2.0.0\n * @category Fiber Refs\n */\nexport const inheritFiberRefs = effect.inheritFiberRefs;\n/**\n * @since 2.0.0\n * @category Fiber Refs\n */\nexport const locally = core.fiberRefLocally;\n/**\n * @since 2.0.0\n * @category Fiber Refs\n */\nexport const locallyWith = core.fiberRefLocallyWith;\n/**\n * @since 2.0.0\n * @category Fiber Refs\n */\nexport const locallyScoped = fiberRuntime.fiberRefLocallyScoped;\n/**\n * @since 2.0.0\n * @category Fiber Refs\n */\nexport const locallyScopedWith = fiberRuntime.fiberRefLocallyScopedWith;\n/**\n * Applies the specified changes to the `FiberRef` values for the fiber\n * running this workflow.\n *\n * @since 2.0.0\n * @category Fiber Refs\n */\nexport const patchFiberRefs = effect.patchFiberRefs;\n/**\n * Sets the `FiberRef` values for the fiber running this effect to the values\n * in the specified collection of `FiberRef` values.\n *\n * @since 2.0.0\n * @category Fiber Refs\n */\nexport const setFiberRefs = effect.setFiberRefs;\n/**\n * Updates the `FiberRef` values for the fiber running this effect using the\n * specified function.\n *\n * @since 2.0.0\n * @category Fiber Refs\n */\nexport const updateFiberRefs = effect.updateFiberRefs;\n/**\n * Checks if an effect has failed.\n *\n * **Details**\n *\n * This function evaluates whether an effect has resulted in a failure. It\n * returns a boolean value wrapped in an effect, with `true` indicating the\n * effect failed and `false` otherwise.\n *\n * The resulting effect cannot fail (`never` in the error channel) but retains\n * the context of the original effect.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const failure = Effect.fail(\"Uh oh!\")\n *\n * console.log(Effect.runSync(Effect.isFailure(failure)))\n * // Output: true\n *\n * const defect = Effect.dieMessage(\"BOOM!\")\n *\n * Effect.runSync(Effect.isFailure(defect))\n * // throws: BOOM!\n * ```\n *\n * @since 2.0.0\n * @category Condition Checking\n */\nexport const isFailure = effect.isFailure;\n/**\n * Checks if an effect has succeeded.\n *\n * **Details**\n *\n * This function evaluates whether an effect has resulted in a success. It\n * returns a boolean value wrapped in an effect, with `true` indicating the\n * effect succeeded and `false` otherwise.\n *\n * The resulting effect cannot fail (`never` in the error channel) but retains\n * the context of the original effect.\n *\n * @since 2.0.0\n * @category Condition Checking\n */\nexport const isSuccess = effect.isSuccess;\n/**\n * Handles both success and failure cases of an effect without performing side\n * effects.\n *\n * **Details**\n *\n * `match` lets you define custom handlers for both success and failure\n * scenarios. You provide separate functions to handle each case, allowing you\n * to process the result if the effect succeeds, or handle the error if the\n * effect fails.\n *\n * **When to Use**\n *\n * This is useful for structuring your code to respond differently to success or\n * failure without triggering side effects.\n *\n * **Example** (Handling Both Success and Failure Cases)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const success: Effect.Effect = Effect.succeed(42)\n *\n * const program1 = Effect.match(success, {\n * onFailure: (error) => `failure: ${error.message}`,\n * onSuccess: (value) => `success: ${value}`\n * })\n *\n * // Run and log the result of the successful effect\n * Effect.runPromise(program1).then(console.log)\n * // Output: \"success: 42\"\n *\n * const failure: Effect.Effect = Effect.fail(\n * new Error(\"Uh oh!\")\n * )\n *\n * const program2 = Effect.match(failure, {\n * onFailure: (error) => `failure: ${error.message}`,\n * onSuccess: (value) => `success: ${value}`\n * })\n *\n * // Run and log the result of the failed effect\n * Effect.runPromise(program2).then(console.log)\n * // Output: \"failure: Uh oh!\"\n * ```\n *\n * @see {@link matchEffect} if you need to perform side effects in the handlers.\n *\n * @since 2.0.0\n * @category Matching\n */\nexport const match = effect.match;\n/**\n * Handles failures by matching the cause of failure.\n *\n * **Details**\n *\n * The `matchCause` function allows you to handle failures with access to the\n * full cause of the failure within a fiber.\n *\n * **When to Use**\n *\n * This is useful for differentiating between different types of errors, such as\n * regular failures, defects, or interruptions. You can provide specific\n * handling logic for each failure type based on the cause.\n *\n * **Example** (Handling Different Failure Causes)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const task: Effect.Effect = Effect.die(\"Uh oh!\")\n *\n * const program = Effect.matchCause(task, {\n * onFailure: (cause) => {\n * switch (cause._tag) {\n * case \"Fail\":\n * // Handle standard failure\n * return `Fail: ${cause.error.message}`\n * case \"Die\":\n * // Handle defects (unexpected errors)\n * return `Die: ${cause.defect}`\n * case \"Interrupt\":\n * // Handle interruption\n * return `${cause.fiberId} interrupted!`\n * }\n * // Fallback for other causes\n * return \"failed due to other causes\"\n * },\n * onSuccess: (value) =>\n * // task completes successfully\n * `succeeded with ${value} value`\n * })\n *\n * Effect.runPromise(program).then(console.log)\n * // Output: \"Die: Uh oh!\"\n * ```\n *\n * @see {@link matchCauseEffect} if you need to perform side effects in the\n * handlers.\n * @see {@link match} if you don't need to handle the cause of the failure.\n *\n * @since 2.0.0\n * @category Matching\n */\nexport const matchCause = core.matchCause;\n/**\n * Handles failures with access to the cause and allows performing side effects.\n *\n * **Details**\n *\n * The `matchCauseEffect` function works similarly to {@link matchCause}, but it\n * also allows you to perform additional side effects based on the failure\n * cause. This function provides access to the complete cause of the failure,\n * making it possible to differentiate between various failure types, and allows\n * you to respond accordingly while performing side effects (like logging or\n * other operations).\n *\n * **Example** (Handling Different Failure Causes with Side Effects)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task: Effect.Effect = Effect.die(\"Uh oh!\")\n *\n * const program = Effect.matchCauseEffect(task, {\n * onFailure: (cause) => {\n * switch (cause._tag) {\n * case \"Fail\":\n * // Handle standard failure with a logged message\n * return Console.log(`Fail: ${cause.error.message}`)\n * case \"Die\":\n * // Handle defects (unexpected errors) by logging the defect\n * return Console.log(`Die: ${cause.defect}`)\n * case \"Interrupt\":\n * // Handle interruption and log the fiberId that was interrupted\n * return Console.log(`${cause.fiberId} interrupted!`)\n * }\n * // Fallback for other causes\n * return Console.log(\"failed due to other causes\")\n * },\n * onSuccess: (value) =>\n * // Log success if the task completes successfully\n * Console.log(`succeeded with ${value} value`)\n * })\n *\n * Effect.runPromise(program)\n * // Output: \"Die: Uh oh!\"\n * ```\n *\n * @see {@link matchCause} if you don't need side effects and only want to handle the result or failure.\n * @see {@link matchEffect} if you don't need to handle the cause of the failure.\n *\n * @since 2.0.0\n * @category Matching\n */\nexport const matchCauseEffect = core.matchCauseEffect;\n/**\n * Handles both success and failure cases of an effect, allowing for additional\n * side effects.\n *\n * **Details**\n *\n * The `matchEffect` function is similar to {@link match}, but it enables you to\n * perform side effects in the handlers for both success and failure outcomes.\n *\n * **When to Use**\n *\n * This is useful when you need to execute additional actions, like logging or\n * notifying users, based on whether an effect succeeds or fails.\n *\n * **Example** (Handling Both Success and Failure Cases with Side Effects)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const success: Effect.Effect = Effect.succeed(42)\n * const failure: Effect.Effect = Effect.fail(\n * new Error(\"Uh oh!\")\n * )\n *\n * const program1 = Effect.matchEffect(success, {\n * onFailure: (error) =>\n * Effect.succeed(`failure: ${error.message}`).pipe(\n * Effect.tap(Effect.log)\n * ),\n * onSuccess: (value) =>\n * Effect.succeed(`success: ${value}`).pipe(Effect.tap(Effect.log))\n * })\n *\n * console.log(Effect.runSync(program1))\n * // Output:\n * // timestamp=... level=INFO fiber=#0 message=\"success: 42\"\n * // success: 42\n *\n * const program2 = Effect.matchEffect(failure, {\n * onFailure: (error) =>\n * Effect.succeed(`failure: ${error.message}`).pipe(\n * Effect.tap(Effect.log)\n * ),\n * onSuccess: (value) =>\n * Effect.succeed(`success: ${value}`).pipe(Effect.tap(Effect.log))\n * })\n *\n * console.log(Effect.runSync(program2))\n * // Output:\n * // timestamp=... level=INFO fiber=#1 message=\"failure: Uh oh!\"\n * // failure: Uh oh!\n * ```\n *\n * @see {@link match} if you don't need side effects and only want to handle the\n * result or failure.\n *\n * @since 2.0.0\n * @category Matching\n */\nexport const matchEffect = core.matchEffect;\n/**\n * Logs one or more messages or error causes at the current log level.\n *\n * **Details**\n *\n * This function provides a simple way to log messages or error causes during\n * the execution of your effects. By default, logs are recorded at the `INFO`\n * level, but this can be adjusted using other logging utilities\n * (`Logger.withMinimumLogLevel`). Multiple items, including `Cause` instances,\n * can be logged in a single call. When logging `Cause` instances, detailed\n * error information is included in the log output.\n *\n * The log output includes useful metadata like the current timestamp, log\n * level, and fiber ID, making it suitable for debugging and tracking purposes.\n * This function does not interrupt or alter the effect's execution flow.\n *\n * **Example**\n *\n * ```ts\n * import { Cause, Effect } from \"effect\"\n *\n * const program = Effect.log(\n * \"message1\",\n * \"message2\",\n * Cause.die(\"Oh no!\"),\n * Cause.die(\"Oh uh!\")\n * )\n *\n * Effect.runFork(program)\n * // Output:\n * // timestamp=... level=INFO fiber=#0 message=message1 message=message2 cause=\"Error: Oh no!\n * // Error: Oh uh!\"\n * ```\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const log = effect.log;\n/**\n * Logs messages or error causes at a specified log level.\n *\n * **Details**\n *\n * This function allows you to log one or more messages or error causes while\n * specifying the desired log level (e.g., DEBUG, INFO, ERROR). It provides\n * flexibility in categorizing logs based on their importance or severity,\n * making it easier to filter logs during debugging or production monitoring.\n *\n * **Example**\n *\n * ```ts\n * import { Cause, Effect, LogLevel } from \"effect\"\n *\n * const program = Effect.logWithLevel(\n * LogLevel.Error,\n * \"Critical error encountered\",\n * Cause.die(\"System failure!\")\n * )\n *\n * Effect.runFork(program)\n * // Output:\n * // timestamp=... level=ERROR fiber=#0 message=Critical error encountered cause=\"Error: System failure!\"\n * ```\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const logWithLevel = (level, ...message) => effect.logWithLevel(level)(...message);\n/**\n * Logs messages at the TRACE log level.\n *\n * **Details**\n *\n * This function logs the specified messages at the TRACE level. TRACE logs are\n * typically used for very detailed diagnostic information. These messages are\n * not displayed by default. To view them, you must adjust the logging\n * configuration by setting the minimum log level to `LogLevel.Trace` using\n * `Logger.withMinimumLogLevel`.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Logger, LogLevel } from \"effect\"\n *\n * const program = Effect.logTrace(\"message1\").pipe(Logger.withMinimumLogLevel(LogLevel.Trace))\n *\n * Effect.runFork(program)\n * // timestamp=... level=TRACE fiber=#0 message=message1\n * ```\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const logTrace = effect.logTrace;\n/**\n * Logs messages at the DEBUG log level.\n *\n * **Details**\n *\n * This function logs messages at the DEBUG level, which is typically used for\n * diagnosing application behavior during development. DEBUG messages provide\n * less detailed information than TRACE logs but are still not shown by default.\n * To view these logs, adjust the log level using `Logger.withMinimumLogLevel`.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Logger, LogLevel } from \"effect\"\n *\n * const program = Effect.logDebug(\"message1\").pipe(Logger.withMinimumLogLevel(LogLevel.Debug))\n *\n * Effect.runFork(program)\n * // timestamp=... level=DEBUG fiber=#0 message=message1\n * ```\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const logDebug = effect.logDebug;\n/**\n * Logs messages at the INFO log level.\n *\n * **Details**\n *\n * This function logs messages at the INFO level, suitable for general\n * application events or operational messages. INFO logs are shown by default\n * and are commonly used for highlighting normal, non-error operations.\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const logInfo = effect.logInfo;\n/**\n * Logs messages at the WARNING log level.\n *\n * **Details**\n *\n * This function logs messages at the WARNING level, suitable for highlighting\n * potential issues that are not errors but may require attention. These\n * messages indicate that something unexpected occurred or might lead to errors\n * in the future.\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const logWarning = effect.logWarning;\n/**\n * Logs messages at the ERROR log level.\n *\n * **Details**\n *\n * This function logs messages at the ERROR level, suitable for reporting\n * application errors or failures. These logs are typically used for unexpected\n * issues that need immediate attention.\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const logError = effect.logError;\n/**\n * Logs messages at the FATAL log level.\n *\n * **Details**\n *\n * This function logs messages at the FATAL level, suitable for reporting\n * critical errors that cause the application to terminate or stop functioning.\n * These logs are typically used for unrecoverable errors that require immediate\n * attention.\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const logFatal = effect.logFatal;\n/**\n * Adds a log span to an effect for tracking and logging its execution duration.\n *\n * **Details**\n *\n * This function wraps an effect with a log span, providing performance\n * monitoring and debugging capabilities. The log span tracks the duration of\n * the wrapped effect and logs it with the specified label. This is particularly\n * useful when analyzing time-sensitive operations or understanding the\n * execution time of specific tasks in your application.\n *\n * The logged output will include the label and the total time taken for the\n * operation. The span information is included in the log metadata, making it\n * easy to trace performance metrics in logs.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Effect.sleep(\"1 second\")\n * yield* Effect.log(\"The job is finished!\")\n * }).pipe(Effect.withLogSpan(\"myspan\"))\n *\n * Effect.runFork(program)\n * // timestamp=... level=INFO fiber=#0 message=\"The job is finished!\" myspan=1011ms\n * ```\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const withLogSpan = effect.withLogSpan;\n/**\n * Adds custom annotations to log entries generated within an effect.\n *\n * **Details**\n *\n * This function allows you to enhance log messages by appending additional\n * context in the form of key-value pairs. These annotations are included in\n * every log message created during the execution of the effect, making the logs\n * more informative and easier to trace.\n *\n * The annotations can be specified as a single key-value pair or as a record of\n * multiple key-value pairs. This is particularly useful for tracking\n * operations, debugging, or associating specific metadata with logs for better\n * observability.\n *\n * The annotated key-value pairs will appear alongside the log message in the\n * output.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Effect.log(\"message1\")\n * yield* Effect.log(\"message2\")\n * }).pipe(Effect.annotateLogs(\"taskId\", \"1234\")) // Annotation as key/value pair\n *\n * Effect.runFork(program)\n * // timestamp=... level=INFO fiber=#0 message=message1 taskId=1234\n * // timestamp=... level=INFO fiber=#0 message=message2 taskId=1234\n * ```\n *\n * @see {@link annotateLogsScoped} to add log annotations with a limited scope.\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const annotateLogs = effect.annotateLogs;\n/**\n * Adds log annotations with a limited scope to enhance contextual logging.\n *\n * **Details**\n *\n * This function allows you to apply key-value annotations to log entries\n * generated within a specific scope of your effect computations. The\n * annotations are restricted to the defined `Scope`, ensuring that they are\n * only applied to logs produced during that scope. Once the scope ends, the\n * annotations are automatically removed, making it easier to manage\n * context-specific logging without affecting other parts of your application.\n *\n * The annotations can be provided as a single key-value pair or as a record of\n * multiple key-value pairs. This flexibility enables fine-grained control over\n * the additional metadata included in logs for specific tasks or operations.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Effect.log(\"no annotations\")\n * yield* Effect.annotateLogsScoped({ key: \"value\" })\n * yield* Effect.log(\"message1\") // Annotation is applied to this log\n * yield* Effect.log(\"message2\") // Annotation is applied to this log\n * }).pipe(Effect.scoped, Effect.andThen(Effect.log(\"no annotations again\")))\n *\n * Effect.runFork(program)\n * // timestamp=... level=INFO fiber=#0 message=\"no annotations\"\n * // timestamp=... level=INFO fiber=#0 message=message1 key=value\n * // timestamp=... level=INFO fiber=#0 message=message2 key=value\n * // timestamp=... level=INFO fiber=#0 message=\"no annotations again\"\n * ```\n *\n * @see {@link annotateLogs} to add custom annotations to log entries generated within an effect.\n *\n * @since 3.1.0\n * @category Logging\n */\nexport const annotateLogsScoped = fiberRuntime.annotateLogsScoped;\n/**\n * Retrieves the current log annotations for the current scope.\n *\n * **Details**\n *\n * This function provides access to the log annotations associated with the\n * current scope. Log annotations are key-value pairs that provide additional\n * context to log entries. They are often used to add metadata such as tags,\n * identifiers, or extra debugging information to logs.\n *\n * By using this function, you can inspect or utilize the annotations applied to\n * the current scope, making it easier to trace and debug specific sections of\n * your application.\n *\n * @see {@link annotateLogs} to add custom annotations to log entries generated within an effect.\n * @see {@link annotateLogsScoped} to add log annotations with a limited scope.\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const logAnnotations = effect.logAnnotations;\n/**\n * Configures whether child fibers will log unhandled errors and at what log\n * level.\n *\n * **Details**\n *\n * This function allows you to control whether unhandled errors from child\n * fibers are logged and to specify the log level for these errors. By default,\n * unhandled errors are reported via the logger. However, using this function,\n * you can choose to suppress these logs by passing `Option.none` or adjust the\n * log level to a specific severity, such as `Error`, `Warning`, or `Info`.\n *\n * This configuration is scoped to the effect it is applied to, meaning the\n * changes only apply to the child fibers created within that effect's context.\n * It is especially useful when you want to reduce noise in logs or prioritize\n * certain types of errors.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Fiber, LogLevel, Option } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * const fiber = yield* Effect.fork(Effect.fail(\"Unhandled error!\"))\n * yield* Fiber.join(fiber)\n * })\n *\n * Effect.runFork(program.pipe(Effect.withUnhandledErrorLogLevel(Option.some(LogLevel.Error))))\n * // Output:\n * // timestamp=... level=ERROR fiber=#1 message=\"Fiber terminated with an unhandled error\" cause=\"Error: Unhandled error!\"\n * ```\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const withUnhandledErrorLogLevel = core.withUnhandledErrorLogLevel;\n/**\n * Conditionally executes an effect based on the specified log level and currently enabled log level.\n *\n * **Details**\n *\n * This function runs the provided effect only if the specified log level is\n * enabled. If the log level is enabled, the effect is executed and its result\n * is wrapped in `Some`. If the log level is not enabled, the effect is not\n * executed and `None` is returned.\n *\n * This function is useful for conditionally executing logging-related effects\n * or other operations that depend on the current log level configuration.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Logger, LogLevel } from \"effect\"\n *\n * const program = Effect.gen(function* () {\n * yield* Effect.whenLogLevel(Effect.logTrace(\"message1\"), LogLevel.Trace); // returns `None`\n * yield* Effect.whenLogLevel(Effect.logDebug(\"message2\"), LogLevel.Debug); // returns `Some`\n * }).pipe(Logger.withMinimumLogLevel(LogLevel.Debug));\n *\n * Effect.runFork(program)\n * // timestamp=... level=DEBUG fiber=#0 message=message2\n * ```\n *\n * @see {@link FiberRef.currentMinimumLogLevel} to retrieve the current minimum log level.\n *\n * @since 3.13.0\n * @category Logging\n */\nexport const whenLogLevel = fiberRuntime.whenLogLevel;\n/**\n * Converts an effect's failure into a fiber termination, removing the error\n * from the effect's type.\n *\n * **Details**\n *\n * The `orDie` function is used when you encounter errors that you do not want\n * to handle or recover from. It removes the error type from the effect and\n * ensures that any failure will terminate the fiber. This is useful for\n * propagating failures as defects, signaling that they should not be handled\n * within the effect.\n *\n * **When to Use*\n *\n * Use `orDie` when failures should be treated as unrecoverable defects and no\n * error handling is required.\n *\n * **Example** (Propagating an Error as a Defect)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const divide = (a: number, b: number) =>\n * b === 0\n * ? Effect.fail(new Error(\"Cannot divide by zero\"))\n * : Effect.succeed(a / b)\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.orDie(divide(1, 0))\n *\n * Effect.runPromise(program).catch(console.error)\n * // Output:\n * // (FiberFailure) Error: Cannot divide by zero\n * // ...stack trace...\n * ```\n *\n * @see {@link orDieWith} if you need to customize the error.\n *\n * @since 2.0.0\n * @category Converting Failures to Defects\n */\nexport const orDie = core.orDie;\n/**\n * Converts an effect's failure into a fiber termination with a custom error.\n *\n * **Details**\n *\n * The `orDieWith` function behaves like {@link orDie}, but it allows you to provide a mapping\n * function to transform the error before terminating the fiber. This is useful for cases where\n * you want to include a more detailed or user-friendly error when the failure is propagated\n * as a defect.\n *\n * **When to Use**\n *\n * Use `orDieWith` when failures should terminate the fiber as defects, and you want to customize\n * the error for clarity or debugging purposes.\n *\n * **Example** (Customizing Defect)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const divide = (a: number, b: number) =>\n * b === 0\n * ? Effect.fail(new Error(\"Cannot divide by zero\"))\n * : Effect.succeed(a / b)\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.orDieWith(\n * divide(1, 0),\n * (error) => new Error(`defect: ${error.message}`)\n * )\n *\n * Effect.runPromise(program).catch(console.error)\n * // Output:\n * // (FiberFailure) Error: defect: Cannot divide by zero\n * // ...stack trace...\n * ```\n *\n * @see {@link orDie} if you don't need to customize the error.\n *\n * @since 2.0.0\n * @category Converting Failures to Defects\n */\nexport const orDieWith = core.orDieWith;\n/**\n * Attempts one effect, and if it fails, falls back to another effect.\n *\n * **Details**\n *\n * This function allows you to try executing an effect, and if it fails\n * (produces an error), a fallback effect is executed instead. The fallback\n * effect is defined as a lazy argument, meaning it will only be evaluated if\n * the first effect fails. This provides a way to recover from errors by\n * specifying an alternative path of execution.\n *\n * The error type of the resulting effect will be that of the fallback effect,\n * as the first effect's error is replaced when the fallback is executed.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const success = Effect.succeed(\"success\")\n * const failure = Effect.fail(\"failure\")\n * const fallback = Effect.succeed(\"fallback\")\n *\n * // Try the success effect first, fallback is not used\n * const program1 = Effect.orElse(success, () => fallback)\n * console.log(Effect.runSync(program1))\n * // Output: \"success\"\n *\n * // Try the failure effect first, fallback is used\n * const program2 = Effect.orElse(failure, () => fallback)\n * console.log(Effect.runSync(program2))\n * // Output: \"fallback\"\n * ```\n *\n * @see {@link catchAll} if you need to access the error in the fallback effect.\n *\n * @since 2.0.0\n * @category Fallback\n */\nexport const orElse = core.orElse;\n/**\n * Replaces the failure of an effect with a custom failure value.\n *\n * **Details**\n *\n * This function allows you to handle the failure of an effect by replacing it\n * with a predefined failure value. If the effect fails, the new failure value\n * provided by the `evaluate` function will be returned instead of the original\n * failure. If the effect succeeds, the original success value is returned\n * unchanged.\n *\n * **When to Use**\n *\n * This is particularly useful when you want to standardize error handling or\n * provide a consistent failure value for specific operations. It simplifies\n * error management by ensuring that all failures are replaced with a controlled\n * alternative.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const validate = (age: number): Effect.Effect => {\n * if (age < 0) {\n * return Effect.fail(\"NegativeAgeError\")\n * } else if (age < 18) {\n * return Effect.fail(\"IllegalAgeError\")\n * } else {\n * return Effect.succeed(age)\n * }\n * }\n *\n * const program = Effect.orElseFail(validate(-1), () => \"invalid age\")\n *\n * console.log(Effect.runSyncExit(program))\n * // Output:\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: { _id: 'Cause', _tag: 'Fail', failure: 'invalid age' }\n * // }\n * ```\n *\n * @see {@link mapError} if you need to access the error to transform it.\n *\n * @since 2.0.0\n * @category Fallback\n */\nexport const orElseFail = effect.orElseFail;\n/**\n * Ensures the effect always succeeds by replacing failures with a default\n * success value.\n *\n * **Details**\n *\n * This function transforms an effect that may fail into one that cannot fail by\n * replacing any failure with a provided success value. If the original effect\n * fails, the failure is \"swallowed,\" and the specified success value is\n * returned instead. If the original effect succeeds, its value remains\n * unchanged.\n *\n * **When to Use**\n *\n * This is especially useful for providing default values in case of failure,\n * ensuring that an effect always completes successfully. By using this\n * function, you can avoid the need for complex error handling and guarantee a\n * fallback result.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const validate = (age: number): Effect.Effect => {\n * if (age < 0) {\n * return Effect.fail(\"NegativeAgeError\")\n * } else if (age < 18) {\n * return Effect.fail(\"IllegalAgeError\")\n * } else {\n * return Effect.succeed(age)\n * }\n * }\n *\n * const program = Effect.orElseSucceed(validate(-1), () => 18)\n *\n * console.log(Effect.runSyncExit(program))\n * // Output:\n * // { _id: 'Exit', _tag: 'Success', value: 18 }\n * ```\n *\n * @since 2.0.0\n * @category Fallback\n */\nexport const orElseSucceed = effect.orElseSucceed;\n/**\n * Runs a sequence of effects and returns the result of the first successful\n * one.\n *\n * **Details**\n *\n * This function allows you to execute a collection of effects in sequence,\n * stopping at the first success. If an effect succeeds, its result is\n * immediately returned, and no further effects in the sequence are executed.\n * However, if all the effects fail, the function will return the error of the\n * last effect.\n *\n * The execution is sequential, meaning that effects are evaluated one at a time\n * in the order they are provided. This ensures predictable behavior and avoids\n * unnecessary computations.\n *\n * If the collection of effects is empty, an `IllegalArgumentException` is\n * thrown, indicating that the operation is invalid without any effects to try.\n *\n * **When to Use**\n *\n * This is particularly useful when you have multiple fallback strategies or\n * alternative sources to obtain a result, such as attempting multiple APIs,\n * retrieving configurations, or accessing resources in a prioritized manner.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * interface Config {\n * host: string\n * port: number\n * apiKey: string\n * }\n *\n * // Create a configuration object with sample values\n * const makeConfig = (name: string): Config => ({\n * host: `${name}.example.com`,\n * port: 8080,\n * apiKey: \"12345-abcde\"\n * })\n *\n * // Simulate retrieving configuration from a remote node\n * const remoteConfig = (name: string): Effect.Effect =>\n * Effect.gen(function* () {\n * // Simulate node3 being the only one with available config\n * if (name === \"node3\") {\n * yield* Console.log(`Config for ${name} found`)\n * return makeConfig(name)\n * } else {\n * yield* Console.log(`Unavailable config for ${name}`)\n * return yield* Effect.fail(new Error(`Config not found for ${name}`))\n * }\n * })\n *\n * // Define the master configuration and potential fallback nodes\n * const masterConfig = remoteConfig(\"master\")\n * const nodeConfigs = [\"node1\", \"node2\", \"node3\", \"node4\"].map(remoteConfig)\n *\n * // Attempt to find a working configuration,\n * // starting with the master and then falling back to other nodes\n * const config = Effect.firstSuccessOf([masterConfig, ...nodeConfigs])\n *\n * // Run the effect to retrieve the configuration\n * const result = Effect.runSync(config)\n *\n * console.log(result)\n * // Output:\n * // Unavailable config for master\n * // Unavailable config for node1\n * // Unavailable config for node2\n * // Config for node3 found\n * // { host: 'node3.example.com', port: 8080, apiKey: '12345-abcde' }\n * ```\n *\n * @since 2.0.0\n * @category Fallback\n */\nexport const firstSuccessOf = effect.firstSuccessOf;\n/**\n * Retrieves the `Random` service from the context.\n *\n * @since 2.0.0\n * @category Random\n */\nexport const random = effect.random;\n/**\n * Retrieves the `Random` service from the context and uses it to run the\n * specified effect.\n *\n * @since 2.0.0\n * @category Random\n */\nexport const randomWith = defaultServices.randomWith;\n/**\n * Executes the specified effect with the specified implementation of the\n * `Random` service.\n *\n * @since 2.0.0\n * @category Random\n */\nexport const withRandom = defaultServices.withRandom;\n/**\n * Executes the specified effect with a `Random` service that cycles through\n * a provided array of values.\n *\n * @example\n * ```ts\n * import { Effect, Random } from \"effect\"\n *\n * Effect.gen(function*() {\n * console.log(yield* Random.next) // 0.2\n * console.log(yield* Random.next) // 0.5\n * console.log(yield* Random.next) // 0.8\n * }).pipe(Effect.withRandomFixed([0.2, 0.5, 0.8]))\n * ```\n *\n * @since 3.11.0\n * @category Random\n */\nexport const withRandomFixed = /*#__PURE__*/dual(2, (effect, values) => withRandom(effect, Random.fixed(values)));\n/**\n * Sets the implementation of the `Random` service to the specified value and\n * restores it to its original value when the scope is closed.\n *\n * @since 2.0.0\n * @category Random\n */\nexport const withRandomScoped = fiberRuntime.withRandomScoped;\n/**\n * Returns an effect that accesses the runtime, which can be used to (unsafely)\n * execute tasks.\n *\n * **When to Use**\n *\n * This is useful for integration with legacy code that must call back into\n * Effect code.\n *\n * @since 2.0.0\n * @category Runtime\n */\nexport const runtime = runtime_.runtime;\n/**\n * Retrieves an effect that succeeds with the current runtime flags, which\n * govern behavior and features of the runtime system.\n *\n * @since 2.0.0\n * @category Runtime\n */\nexport const getRuntimeFlags = core.runtimeFlags;\n/**\n * @since 2.0.0\n * @category Runtime\n */\nexport const patchRuntimeFlags = core.updateRuntimeFlags;\n/**\n * @since 2.0.0\n * @category Runtime\n */\nexport const withRuntimeFlagsPatch = core.withRuntimeFlags;\n/**\n * @since 2.0.0\n * @category Runtime\n */\nexport const withRuntimeFlagsPatchScoped = fiberRuntime.withRuntimeFlagsScoped;\n/**\n * Tags each metric in an effect with specific key-value pairs.\n *\n * **Details**\n *\n * This function allows you to tag all metrics in an effect with a set of\n * key-value pairs or a single key-value pair. Tags help you add metadata to\n * metrics, making it easier to filter and categorize them in monitoring\n * systems. The provided tags will apply to all metrics generated within the\n * effect's scope.\n *\n * @since 2.0.0\n * @category Metrics\n */\nexport const tagMetrics = effect.tagMetrics;\n/**\n * Adds labels to metrics within an effect using `MetricLabel` objects.\n *\n * **Details**\n *\n * This function allows you to label metrics using `MetricLabel` objects. Labels\n * help add structured metadata to metrics for categorization and filtering in\n * monitoring systems. The provided labels will apply to all metrics within the\n * effect's execution.\n *\n * @since 2.0.0\n * @category Metrics\n */\nexport const labelMetrics = effect.labelMetrics;\n/**\n * Tags metrics within a scope with a specific key-value pair.\n *\n * **Details**\n *\n * This function tags all metrics within a scope with the provided key-value\n * pair. Once the scope is closed, the tag is automatically removed. This is\n * useful for applying temporary context-specific tags to metrics during scoped\n * operations.\n *\n * @since 2.0.0\n * @category Metrics\n */\nexport const tagMetricsScoped = fiberRuntime.tagMetricsScoped;\n/**\n * Adds labels to metrics within a scope using `MetricLabel` objects.\n *\n * **Details**\n *\n * This function allows you to apply labels to all metrics generated within a\n * specific scope using an array of `MetricLabel` objects. These labels provide\n * additional metadata to metrics, which can be used for categorization,\n * filtering, or monitoring purposes. The labels are scoped and will be removed\n * automatically once the scope is closed, ensuring they are only applied\n * temporarily within the defined context.\n *\n * @since 2.0.0\n * @category Metrics\n */\nexport const labelMetricsScoped = fiberRuntime.labelMetricsScoped;\n/**\n * Retrieves the metric labels associated with the current scope.\n *\n * @since 2.0.0\n * @category Metrics\n */\nexport const metricLabels = core.metricLabels;\n/**\n * Associates a metric with the current effect, updating it as the effect progresses.\n *\n * @since 2.0.0\n * @category Metrics\n */\nexport const withMetric = effect.withMetric;\n/**\n * Unsafely creates a new Semaphore.\n *\n * @since 2.0.0\n * @category Semaphore\n */\nexport const unsafeMakeSemaphore = circular.unsafeMakeSemaphore;\n/**\n * Creates a new semaphore with the specified number of permits.\n *\n * **Details**\n *\n * This function initializes a semaphore that controls concurrent access to a\n * shared resource. The number of permits determines how many tasks can access\n * the resource concurrently.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // Create a semaphore with 3 permits\n * const mutex = Effect.makeSemaphore(3)\n * ```\n *\n * @since 2.0.0\n * @category Semaphore\n */\nexport const makeSemaphore = circular.makeSemaphore;\n/**\n * @category Latch\n * @since 3.8.0\n */\nexport const unsafeMakeLatch = circular.unsafeMakeLatch;\n/**\n * Creates a new `Latch`, starting in the specified state.\n *\n * **Details**\n *\n * This function initializes a `Latch` safely, ensuring proper runtime\n * guarantees. By default, the latch starts in the closed state.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * // Create a latch, starting in the closed state\n * const latch = yield* Effect.makeLatch(false)\n *\n * // Fork a fiber that logs \"open sesame\" when the latch is opened\n * const fiber = yield* Console.log(\"open sesame\").pipe(\n * latch.whenOpen,\n * Effect.fork\n * )\n *\n * yield* Effect.sleep(\"1 second\")\n *\n * // Open the latch\n * yield* latch.open\n * yield* fiber.await\n * })\n *\n * Effect.runFork(program)\n * // Output: open sesame (after 1 second)\n * ```\n *\n * @category Latch\n * @since 3.8.0\n */\nexport const makeLatch = circular.makeLatch;\n/**\n * Runs an effect in the background, returning a fiber that can be observed or\n * interrupted.\n *\n * Unless you specifically need a `Promise` or synchronous operation, `runFork`\n * is a good default choice.\n *\n * **Details**\n *\n * This function is the foundational way to execute an effect in the background.\n * It creates a \"fiber,\" a lightweight, cooperative thread of execution that can\n * be observed (to access its result), interrupted, or joined. Fibers are useful\n * for concurrent programming and allow effects to run independently of the main\n * program flow.\n *\n * Once the effect is running in a fiber, you can monitor its progress, cancel\n * it if necessary, or retrieve its result when it completes. If the effect\n * fails, the fiber will propagate the failure, which you can observe and\n * handle.\n *\n * **When to Use**\n *\n * Use this function when you need to run an effect in the background,\n * especially if the effect is long-running or performs periodic tasks. It's\n * suitable for tasks that need to run independently but might still need\n * observation or management, like logging, monitoring, or scheduled tasks.\n *\n * This function is ideal if you don't need the result immediately or if the\n * effect is part of a larger concurrent workflow.\n *\n * **Example** (Running an Effect in the Background)\n *\n * ```ts\n * import { Effect, Console, Schedule, Fiber } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.repeat(\n * Console.log(\"running...\"),\n * Schedule.spaced(\"200 millis\")\n * )\n *\n * // ┌─── RuntimeFiber\n * // ▼\n * const fiber = Effect.runFork(program)\n *\n * setTimeout(() => {\n * Effect.runFork(Fiber.interrupt(fiber))\n * }, 500)\n * ```\n *\n * @since 2.0.0\n * @category Running Effects\n */\nexport const runFork = runtime_.unsafeForkEffect;\n/**\n * Executes an effect asynchronously and handles the result using a callback.\n *\n * **Details**\n *\n * This function runs an effect asynchronously and passes the result (`Exit`) to\n * a specified callback. The callback is invoked with the outcome of the effect:\n * - On success, the callback receives the successful result.\n * - On failure, the callback receives the failure information.\n *\n * **When to Use**\n *\n * This function is effectful and should only be invoked at the edges of your\n * program.\n *\n * @since 2.0.0\n * @category Running Effects\n */\nexport const runCallback = runtime_.unsafeRunEffect;\n/**\n * Executes an effect and returns the result as a `Promise`.\n *\n * **Details**\n *\n * This function runs an effect and converts its result into a `Promise`. If the\n * effect succeeds, the `Promise` will resolve with the successful result. If\n * the effect fails, the `Promise` will reject with an error, which includes the\n * failure details of the effect.\n *\n * The optional `options` parameter allows you to pass an `AbortSignal` for\n * cancellation, enabling more fine-grained control over asynchronous tasks.\n *\n * **When to Use**\n *\n * Use this function when you need to execute an effect and work with its result\n * in a promise-based system, such as when integrating with third-party\n * libraries that expect `Promise` results.\n *\n * **Example** (Running a Successful Effect as a Promise)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * Effect.runPromise(Effect.succeed(1)).then(console.log)\n * // Output: 1\n * ```\n *\n * **Example** (Handling a Failing Effect as a Rejected Promise)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * Effect.runPromise(Effect.fail(\"my error\")).catch(console.error)\n * // Output:\n * // (FiberFailure) Error: my error\n * ```\n *\n * @see {@link runPromiseExit} for a version that returns an `Exit` type instead\n * of rejecting.\n *\n * @since 2.0.0\n * @category Running Effects\n */\nexport const runPromise = runtime_.unsafeRunPromiseEffect;\n/**\n * Runs an effect and returns a `Promise` that resolves to an `Exit`,\n * representing the outcome.\n *\n * **Details**\n *\n * This function executes an effect and resolves to an `Exit` object. The `Exit`\n * type provides detailed information about the result of the effect:\n * - If the effect succeeds, the `Exit` will be of type `Success` and include\n * the value produced by the effect.\n * - If the effect fails, the `Exit` will be of type `Failure` and contain a\n * `Cause` object, detailing the failure.\n *\n * Using this function allows you to examine both successful results and failure\n * cases in a unified way, while still leveraging `Promise` for handling the\n * asynchronous behavior of the effect.\n *\n * **When to Use**\n *\n * Use this function when you need to understand the outcome of an effect,\n * whether it succeeded or failed, and want to work with this result using\n * `Promise` syntax. This is particularly useful when integrating with systems\n * that rely on promises but need more detailed error handling than a simple\n * rejection.\n *\n * **Example** (Handling Results as Exit)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // Execute a successful effect and get the Exit result as a Promise\n * Effect.runPromiseExit(Effect.succeed(1)).then(console.log)\n * // Output:\n * // {\n * // _id: \"Exit\",\n * // _tag: \"Success\",\n * // value: 1\n * // }\n *\n * // Execute a failing effect and get the Exit result as a Promise\n * Effect.runPromiseExit(Effect.fail(\"my error\")).then(console.log)\n * // Output:\n * // {\n * // _id: \"Exit\",\n * // _tag: \"Failure\",\n * // cause: {\n * // _id: \"Cause\",\n * // _tag: \"Fail\",\n * // failure: \"my error\"\n * // }\n * // }\n * ```\n *\n * @since 2.0.0\n * @category Running Effects\n */\nexport const runPromiseExit = runtime_.unsafeRunPromiseExitEffect;\n/**\n * Executes an effect synchronously, running it immediately and returning the\n * result.\n *\n * **Details**\n *\n * This function evaluates the provided effect synchronously, returning its\n * result directly. It is ideal for effects that do not fail or include\n * asynchronous operations. If the effect does fail or involves async tasks, it\n * will throw an error. Execution stops at the point of failure or asynchronous\n * operation, making it unsuitable for effects that require asynchronous\n * handling.\n *\n * **Important**: Attempting to run effects that involve asynchronous operations\n * or failures will result in exceptions being thrown, so use this function with\n * care for purely synchronous and error-free effects.\n *\n * **When to Use**\n *\n * Use this function when:\n * - You are sure that the effect will not fail or involve asynchronous\n * operations.\n * - You need a direct, synchronous result from the effect.\n * - You are working within a context where asynchronous effects are not\n * allowed.\n *\n * Avoid using this function for effects that can fail or require asynchronous\n * handling. For such cases, consider using {@link runPromise} or\n * {@link runSyncExit}.\n *\n * **Example** (Synchronous Logging)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const program = Effect.sync(() => {\n * console.log(\"Hello, World!\")\n * return 1\n * })\n *\n * const result = Effect.runSync(program)\n * // Output: Hello, World!\n *\n * console.log(result)\n * // Output: 1\n * ```\n *\n * **Example** (Incorrect Usage with Failing or Async Effects)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * try {\n * // Attempt to run an effect that fails\n * Effect.runSync(Effect.fail(\"my error\"))\n * } catch (e) {\n * console.error(e)\n * }\n * // Output:\n * // (FiberFailure) Error: my error\n *\n * try {\n * // Attempt to run an effect that involves async work\n * Effect.runSync(Effect.promise(() => Promise.resolve(1)))\n * } catch (e) {\n * console.error(e)\n * }\n * // Output:\n * // (FiberFailure) AsyncFiberException: Fiber #0 cannot be resolved synchronously. This is caused by using runSync on an effect that performs async work\n * ```\n *\n * @see {@link runSyncExit} for a version that returns an `Exit` type instead of\n * throwing an error.\n *\n * @since 2.0.0\n * @category Running Effects\n */\nexport const runSync = runtime_.unsafeRunSyncEffect;\n/**\n * Runs an effect synchronously and returns the result as an `Exit` type.\n *\n * **Details**\n *\n * This function executes the provided effect synchronously and returns an `Exit`\n * type that encapsulates the outcome of the effect:\n * - If the effect succeeds, the result is wrapped in a `Success`.\n * - If the effect fails, it returns a `Failure` containing a `Cause` that explains\n * the failure.\n *\n * If the effect involves asynchronous operations, this function will return a `Failure`\n * with a `Die` cause, indicating that it cannot resolve the effect synchronously.\n * This makes the function suitable for use only with effects that are synchronous\n * in nature.\n *\n * **When to Use**\n *\n * Use this function when:\n * - You want to handle both success and failure outcomes in a structured way using the `Exit` type.\n * - You are working with effects that are purely synchronous and do not involve asynchronous operations.\n * - You need to debug or inspect failures, including their causes, in a detailed manner.\n *\n * Avoid using this function for effects that involve asynchronous operations, as it will fail with a `Die` cause.\n *\n * **Example** (Handling Results as Exit)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * console.log(Effect.runSyncExit(Effect.succeed(1)))\n * // Output:\n * // {\n * // _id: \"Exit\",\n * // _tag: \"Success\",\n * // value: 1\n * // }\n *\n * console.log(Effect.runSyncExit(Effect.fail(\"my error\")))\n * // Output:\n * // {\n * // _id: \"Exit\",\n * // _tag: \"Failure\",\n * // cause: {\n * // _id: \"Cause\",\n * // _tag: \"Fail\",\n * // failure: \"my error\"\n * // }\n * // }\n * ```\n *\n * **Example** (Asynchronous Operation Resulting in Die)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * console.log(Effect.runSyncExit(Effect.promise(() => Promise.resolve(1))))\n * // Output:\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Die',\n * // defect: [Fiber #0 cannot be resolved synchronously. This is caused by using runSync on an effect that performs async work] {\n * // fiber: [FiberRuntime],\n * // _tag: 'AsyncFiberException',\n * // name: 'AsyncFiberException'\n * // }\n * // }\n * // }\n * ```\n *\n * @since 2.0.0\n * @category Running Effects\n */\nexport const runSyncExit = runtime_.unsafeRunSyncExitEffect;\n/**\n * Combines multiple effects and accumulates both successes and failures.\n *\n * **Details**\n *\n * This function allows you to combine multiple effects, continuing through all\n * effects even if some of them fail. Unlike other functions that stop execution\n * upon encountering an error, this function collects all errors into a `Cause`.\n * The final result includes all successes and the accumulated failures.\n *\n * By default, effects are executed sequentially, but you can control\n * concurrency and batching behavior using the `options` parameter. This\n * provides flexibility in scenarios where you want to maximize performance or\n * ensure specific ordering.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Console.log(\"task1\").pipe(Effect.as(1))\n * const task2 = Effect.fail(\"Oh uh!\").pipe(Effect.as(2))\n * const task3 = Console.log(\"task2\").pipe(Effect.as(3))\n * const task4 = Effect.fail(\"Oh no!\").pipe(Effect.as(4))\n *\n * const program = task1.pipe(\n * Effect.validate(task2),\n * Effect.validate(task3),\n * Effect.validate(task4)\n * )\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // task1\n * // task2\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Sequential',\n * // left: { _id: 'Cause', _tag: 'Fail', failure: 'Oh uh!' },\n * // right: { _id: 'Cause', _tag: 'Fail', failure: 'Oh no!' }\n * // }\n * // }\n * ```\n *\n * @see {@link zip} for a version that stops at the first error.\n *\n * @since 2.0.0\n * @category Error Accumulation\n */\nexport const validate = fiberRuntime.validate;\n/**\n * Sequentially combines two effects using a specified combiner function while\n * accumulating errors.\n *\n * **Details**\n *\n * This function combines two effects, `self` and `that`, into a single effect\n * by applying the provided combiner function to their results. If both effects\n * succeed, the combiner function is applied to their results to produce the\n * final value. If either effect fails, the failures are accumulated into a\n * combined `Cause`.\n *\n * By default, effects are executed sequentially. However, the execution mode\n * can be controlled using the `options` parameter to enable concurrency,\n * batching, or customized finalizer behavior.\n *\n * @since 2.0.0\n * @category Error Accumulation\n */\nexport const validateWith = fiberRuntime.validateWith;\n/**\n * Combines two effects into a single effect, producing a tuple of their\n * results.\n *\n * **Details**\n *\n * This function combines two effects, `self` and `that`, into one. It executes\n * the first effect (`self`) and then the second effect (`that`), collecting\n * their results into a tuple. Both effects must succeed for the resulting\n * effect to succeed. If either effect fails, the entire operation fails.\n *\n * By default, the effects are executed sequentially. If the `concurrent` option\n * is set to `true`, the effects will run concurrently, potentially improving\n * performance for independent operations.\n *\n * **Example** (Combining Two Effects Sequentially)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const task1 = Effect.succeed(1).pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Effect.log(\"task1 done\"))\n * )\n * const task2 = Effect.succeed(\"hello\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Effect.log(\"task2 done\"))\n * )\n *\n * // Combine the two effects together\n * //\n * // ┌─── Effect<[number, string], never, never>\n * // ▼\n * const program = Effect.zip(task1, task2)\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // timestamp=... level=INFO fiber=#0 message=\"task1 done\"\n * // timestamp=... level=INFO fiber=#0 message=\"task2 done\"\n * // [ 1, 'hello' ]\n * ```\n *\n * **Example** (Combining Two Effects Concurrently)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const task1 = Effect.succeed(1).pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Effect.log(\"task1 done\"))\n * )\n * const task2 = Effect.succeed(\"hello\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Effect.log(\"task2 done\"))\n * )\n *\n * // Run both effects concurrently using the concurrent option\n * const program = Effect.zip(task1, task2, { concurrent: true })\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // timestamp=... level=INFO fiber=#0 message=\"task2 done\"\n * // timestamp=... level=INFO fiber=#0 message=\"task1 done\"\n * // [ 1, 'hello' ]\n * ```\n *\n * @see {@link zipWith} for a version that combines the results with a custom\n * function.\n * @see {@link validate} for a version that accumulates errors.\n *\n * @since 2.0.0\n * @category Zipping\n */\nexport const zip = fiberRuntime.zipOptions;\n/**\n * Executes two effects sequentially, returning the result of the first effect\n * and ignoring the result of the second.\n *\n * **Details**\n *\n * This function allows you to run two effects in sequence, where the result of\n * the first effect is preserved, and the result of the second effect is\n * discarded. By default, the two effects are executed sequentially. If you need\n * them to run concurrently, you can pass the `{ concurrent: true }` option.\n *\n * The second effect will always be executed, even though its result is ignored.\n * This makes it useful for cases where you want to execute an effect for its\n * side effects while keeping the result of another effect.\n *\n * **When to Use**\n *\n * Use this function when you are only interested in the result of the first\n * effect but still need to run the second effect for its side effects, such as\n * logging or performing a cleanup action.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const task1 = Effect.succeed(1).pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Effect.log(\"task1 done\"))\n * )\n * const task2 = Effect.succeed(\"hello\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Effect.log(\"task2 done\"))\n * )\n *\n * const program = Effect.zipLeft(task1, task2)\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // timestamp=... level=INFO fiber=#0 message=\"task1 done\"\n * // timestamp=... level=INFO fiber=#0 message=\"task2 done\"\n * // 1\n * ```\n *\n * @see {@link zipRight} for a version that returns the result of the second\n * effect.\n *\n * @since 2.0.0\n * @category Zipping\n */\nexport const zipLeft = fiberRuntime.zipLeftOptions;\n/**\n * Executes two effects sequentially, returning the result of the second effect\n * while ignoring the result of the first.\n *\n * **Details**\n *\n * This function allows you to run two effects in sequence, keeping the result\n * of the second effect and discarding the result of the first. By default, the\n * two effects are executed sequentially. If you need them to run concurrently,\n * you can pass the `{ concurrent: true }` option.\n *\n * The first effect will always be executed, even though its result is ignored.\n * This makes it useful for scenarios where the first effect is needed for its\n * side effects, but only the result of the second effect is important.\n *\n * **When to Use**\n *\n * Use this function when you are only interested in the result of the second\n * effect but still need to run the first effect for its side effects, such as\n * initialization or setup tasks.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const task1 = Effect.succeed(1).pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Effect.log(\"task1 done\"))\n * )\n * const task2 = Effect.succeed(\"hello\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Effect.log(\"task2 done\"))\n * )\n *\n * const program = Effect.zipRight(task1, task2)\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // timestamp=... level=INFO fiber=#0 message=\"task1 done\"\n * // timestamp=... level=INFO fiber=#0 message=\"task2 done\"\n * // hello\n * ```\n *\n * @see {@link zipLeft} for a version that returns the result of the first\n * effect.\n *\n * @since 2.0.0\n * @category Zipping\n */\nexport const zipRight = fiberRuntime.zipRightOptions;\n/**\n * Combines two effects sequentially and applies a function to their results to\n * produce a single value.\n *\n * **Details**\n *\n * This function runs two effects in sequence (or concurrently, if the `{\n * concurrent: true }` option is provided) and combines their results using a\n * provided function. Unlike {@link zip}, which returns a tuple of the results,\n * this function processes the results with a custom function to produce a\n * single output.\n *\n * **Example** (Combining Effects with a Custom Function)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const task1 = Effect.succeed(1).pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Effect.log(\"task1 done\"))\n * )\n * const task2 = Effect.succeed(\"hello\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Effect.log(\"task2 done\"))\n * )\n *\n * const task3 = Effect.zipWith(\n * task1,\n * task2,\n * // Combines results into a single value\n * (number, string) => number + string.length\n * )\n *\n * Effect.runPromise(task3).then(console.log)\n * // Output:\n * // timestamp=... level=INFO fiber=#3 message=\"task1 done\"\n * // timestamp=... level=INFO fiber=#2 message=\"task2 done\"\n * // 6\n * ```\n *\n * @since 2.0.0\n * @category Zipping\n */\nexport const zipWith = fiberRuntime.zipWithOptions;\n/**\n * Applies the function produced by one effect to the value produced by another effect.\n *\n * **Details**\n *\n * This function combines two effects:\n * - The first effect produces a function of type `(a: A) => B`.\n * - The second effect produces a value of type `A`.\n *\n * Once both effects complete successfully, the function is applied to the value, resulting in an effect that produces a value of type `B`.\n *\n * @since 2.0.0\n */\nexport const ap = /*#__PURE__*/dual(2, (self, that) => zipWith(self, that, (f, a) => f(a)));\n/**\n * @category Requests & Batching\n * @since 2.0.0\n */\nexport const blocked = core.blocked;\n/**\n * @category Requests & Batching\n * @since 2.0.0\n */\nexport const runRequestBlock = core.runRequestBlock;\n/**\n * @category Requests & Batching\n * @since 2.0.0\n */\nexport const step = core.step;\n/**\n * @since 2.0.0\n * @category Requests & Batching\n */\nexport const request = /*#__PURE__*/dual(args => Request.isRequest(args[0]), query.fromRequest);\n/**\n * @since 2.0.0\n * @category Requests & Batching\n */\nexport const cacheRequestResult = query.cacheRequest;\n/**\n * @since 2.0.0\n * @category Requests & Batching\n */\nexport const withRequestBatching = core.withRequestBatching;\n/**\n * @since 2.0.0\n * @category Requests & Batching\n */\nexport const withRequestCaching = query.withRequestCaching;\n/**\n * @since 2.0.0\n * @category Requests & Batching\n */\nexport const withRequestCache = query.withRequestCache;\n/**\n * @since 2.0.0\n * @category Tracing\n */\nexport const tracer = effect.tracer;\n/**\n * @since 2.0.0\n * @category Tracing\n */\nexport const tracerWith = defaultServices.tracerWith;\n/**\n * @since 2.0.0\n * @category Tracing\n */\nexport const withTracer = defaultServices.withTracer;\n/**\n * @since 2.0.0\n * @category Tracing\n */\nexport const withTracerScoped = fiberRuntime.withTracerScoped;\n/**\n * Disable the tracer for the given Effect.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * Effect.succeed(42).pipe(\n * Effect.withSpan(\"my-span\"),\n * // the span will not be registered with the tracer\n * Effect.withTracerEnabled(false)\n * )\n * ```\n *\n * @since 2.0.0\n * @category Tracing\n */\nexport const withTracerEnabled = core.withTracerEnabled;\n/**\n * @since 2.0.0\n * @category Tracing\n */\nexport const withTracerTiming = core.withTracerTiming;\n/**\n * Adds annotations to each span in the effect for enhanced traceability.\n *\n * **Details**\n *\n * This function lets you attach key-value annotations to all spans generated\n * during the execution of an effect. Annotations provide additional context,\n * such as metadata or labels, which can help you understand and debug\n * asynchronous workflows more effectively.\n *\n * You can either pass a single key-value pair or a record of key-value pairs to\n * annotate the spans. These annotations can then be visualized in tracing tools\n * that support span annotations.\n *\n * @since 2.0.0\n * @category Tracing\n */\nexport const annotateSpans = effect.annotateSpans;\n/**\n * Adds annotations to the currently active span for traceability.\n *\n * **Details**\n *\n * This function adds key-value annotations to the currently active span in the\n * effect's trace. These annotations help provide more context about the\n * operation being executed at a specific point in time. Unlike\n * {@link annotateSpans}, which applies to all spans in an effect, this function\n * focuses solely on the active span.\n *\n * You can either pass a single key-value pair or a record of key-value pairs to\n * annotate the span. These annotations are useful for adding metadata to\n * operations, especially in systems with detailed observability requirements.\n *\n * @since 2.0.0\n * @category Tracing\n */\nexport const annotateCurrentSpan = effect.annotateCurrentSpan;\n/**\n * @since 2.0.0\n * @category Tracing\n */\nexport const currentSpan = effect.currentSpan;\n/**\n * @since 2.0.0\n * @category Tracing\n */\nexport const currentParentSpan = effect.currentParentSpan;\n/**\n * @since 2.0.0\n * @category Tracing\n */\nexport const spanAnnotations = effect.spanAnnotations;\n/**\n * @since 2.0.0\n * @category Tracing\n */\nexport const spanLinks = effect.spanLinks;\n/**\n * For all spans in this effect, add a link with the provided span.\n *\n * @since 2.0.0\n * @category Tracing\n */\nexport const linkSpans = effect.linkSpans;\n/**\n * Add span links to the current span.\n *\n * @since 3.14.0\n * @category Tracing\n */\nexport const linkSpanCurrent = effect.linkSpanCurrent;\n/**\n * Create a new span for tracing.\n *\n * @since 2.0.0\n * @category Tracing\n */\nexport const makeSpan = effect.makeSpan;\n/**\n * Create a new span for tracing, and automatically close it when the Scope\n * finalizes.\n *\n * The span is not added to the current span stack, so no child spans will be\n * created for it.\n *\n * @since 2.0.0\n * @category Tracing\n */\nexport const makeSpanScoped = fiberRuntime.makeSpanScoped;\n/**\n * Create a new span for tracing, and automatically close it when the effect\n * completes.\n *\n * The span is not added to the current span stack, so no child spans will be\n * created for it.\n *\n * @since 2.0.0\n * @category Tracing\n */\nexport const useSpan = effect.useSpan;\n/**\n * Wraps the effect with a new span for tracing.\n *\n * @since 2.0.0\n * @category Tracing\n */\nexport const withSpan = effect.withSpan;\n/**\n * Wraps a function that returns an effect with a new span for tracing.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const getTodo = Effect.functionWithSpan({\n * body: (id: number) => Effect.succeed(`Got todo ${id}!`),\n * options: (id) => ({\n * name: `getTodo-${id}`,\n * attributes: { id }\n * })\n * })\n * ```\n *\n * @since 3.2.0\n * @category Tracing\n */\nexport const functionWithSpan = effect.functionWithSpan;\n/**\n * Wraps the effect with a new span for tracing.\n *\n * The span is ended when the Scope is finalized.\n *\n * @since 2.0.0\n * @category Tracing\n */\nexport const withSpanScoped = fiberRuntime.withSpanScoped;\n/**\n * Adds the provided span to the current span stack.\n *\n * @since 2.0.0\n * @category Tracing\n */\nexport const withParentSpan = effect.withParentSpan;\n/**\n * Safely handles nullable values by creating an effect that fails for `null` or\n * `undefined`.\n *\n * **Details**\n *\n * This function ensures that an input value is non-null and non-undefined\n * before processing it. If the value is valid, the effect succeeds with the\n * value. If the value is `null` or `undefined`, the effect fails with a\n * `NoSuchElementException`. This is particularly useful for avoiding\n * null-related errors by clearly separating valid values from invalid ones in\n * effectful computations.\n *\n * The failure with `NoSuchElementException` allows you to explicitly handle\n * cases where a value is expected but not provided, leading to safer and more\n * predictable code.\n *\n * **When to Use**\n *\n * Use this function when working with values that may be `null` or `undefined`\n * and you want to ensure that only non-null values are processed. It helps\n * enforce null-safety and makes error handling more explicit.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const maybe1 = Effect.fromNullable(1)\n *\n * Effect.runPromiseExit(maybe1).then(console.log)\n * // Output:\n * // { _id: 'Exit', _tag: 'Success', value: 1 }\n *\n * // ┌─── Effect\n * // ▼\n * const maybe2 = Effect.fromNullable(null as number | null)\n *\n * Effect.runPromiseExit(maybe2).then(console.log)\n * // Output:\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Fail',\n * // failure: { _tag: 'NoSuchElementException' }\n * // }\n * // }\n * ```\n *\n * @since 2.0.0\n * @category Optional Wrapping & Unwrapping\n */\nexport const fromNullable = effect.fromNullable;\n/**\n * Converts an effect that may fail with a `NoSuchElementException` into an\n * effect that succeeds with an `Option`.\n *\n * **Details**\n *\n * This function transforms an effect that might fail with\n * `Cause.NoSuchElementException` into an effect that succeeds with an `Option`\n * type. If the original effect succeeds, its value is wrapped in `Option.some`.\n * If it fails specifically due to a `NoSuchElementException`, the failure is\n * mapped to `Option.none`. Other types of failures remain unchanged and are\n * passed through as they are.\n *\n * This is useful when working with effects where you want to gracefully handle\n * the absence of a value while preserving other potential failures.\n *\n * **When to Use**\n *\n * Use this function when you need to handle missing values as `Option.none`\n * rather than throwing or propagating errors like `NoSuchElementException`.\n * It’s ideal for scenarios where you want to explicitly represent optionality\n * in a type-safe way while retaining other failure information.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const maybe1 = Effect.fromNullable(1)\n *\n * // ┌─── Effect, never, never>\n * // ▼\n * const option1 = Effect.optionFromOptional(maybe1)\n *\n * Effect.runPromise(option1).then(console.log)\n * // Output: { _id: 'Option', _tag: 'Some', value: 1 }\n *\n * // ┌─── Effect\n * // ▼\n * const maybe2 = Effect.fromNullable(null as number | null)\n *\n * // ┌─── Effect, never, never>\n * // ▼\n * const option2 = Effect.optionFromOptional(maybe2)\n *\n * Effect.runPromise(option2).then(console.log)\n * // Output: { _tag: 'None' }\n * ```\n *\n * @since 2.0.0\n * @category Optional Wrapping & Unwrapping\n */\nexport const optionFromOptional = effect.optionFromOptional;\n/**\n * Converts an `Option` of an `Effect` into an `Effect` of an `Option`.\n *\n * **Details**\n *\n * This function transforms an `Option>` into an\n * `Effect, E, R>`. If the `Option` is `None`, the resulting `Effect`\n * will immediately succeed with a `None` value. If the `Option` is `Some`, the\n * inner `Effect` will be executed, and its result wrapped in a `Some`.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Option } from \"effect\"\n *\n * // ┌─── Option>\n * // ▼\n * const maybe = Option.some(Effect.succeed(42))\n *\n * // ┌─── Effect, never, never>\n * // ▼\n * const result = Effect.transposeOption(maybe)\n *\n * console.log(Effect.runSync(result))\n * // Output: { _id: 'Option', _tag: 'Some', value: 42 }\n * ```\n *\n * @since 3.13.0\n * @category Optional Wrapping & Unwrapping\n */\nexport const transposeOption = self => {\n return option_.isNone(self) ? succeedNone : map(self.value, option_.some);\n};\n/**\n * Applies an `Effect` on an `Option` and transposes the result.\n *\n * **Details**\n *\n * If the `Option` is `None`, the resulting `Effect` will immediately succeed with a `None` value.\n * If the `Option` is `Some`, the effectful operation will be executed on the inner value, and its result wrapped in a `Some`.\n *\n * @example\n * ```ts\n * import { Effect, Option, pipe } from \"effect\"\n *\n * // ┌─── Effect, never, never>>\n * // ▼\n * const noneResult = pipe(\n * Option.none(),\n * Effect.transposeMapOption(() => Effect.succeed(42)) // will not be executed\n * )\n * console.log(Effect.runSync(noneResult))\n * // Output: { _id: 'Option', _tag: 'None' }\n *\n * // ┌─── Effect, never, never>>\n * // ▼\n * const someSuccessResult = pipe(\n * Option.some(42),\n * Effect.transposeMapOption((value) => Effect.succeed(value * 2))\n * )\n * console.log(Effect.runSync(someSuccessResult))\n * // Output: { _id: 'Option', _tag: 'Some', value: 84 }\n * ```\n *\n * @since 3.14.0\n * @category Optional Wrapping & Unwrapping\n */\nexport const transposeMapOption = /*#__PURE__*/dual(2, (self, f) => option_.isNone(self) ? succeedNone : map(f(self.value), option_.some));\nconst makeTagProxy = TagClass => {\n const cache = new Map();\n return new Proxy(TagClass, {\n get(target, prop, receiver) {\n if (prop in target) {\n return Reflect.get(target, prop, receiver);\n }\n if (cache.has(prop)) {\n return cache.get(prop);\n }\n const fn = (...args) => core.andThen(target, s => {\n if (typeof s[prop] === \"function\") {\n cache.set(prop, (...args) => core.andThen(target, s => s[prop](...args)));\n return s[prop](...args);\n }\n cache.set(prop, core.andThen(target, s => s[prop]));\n return s[prop];\n });\n const cn = core.andThen(target, s => s[prop]);\n // @effect-diagnostics-next-line floatingEffect:off\n Object.assign(fn, cn);\n const apply = fn.apply;\n const bind = fn.bind;\n const call = fn.call;\n const proto = Object.setPrototypeOf({}, Object.getPrototypeOf(cn));\n proto.apply = apply;\n proto.bind = bind;\n proto.call = call;\n Object.setPrototypeOf(fn, proto);\n cache.set(prop, fn);\n return fn;\n }\n });\n};\n/**\n * Creates a unique tag for a dependency, embedding the service's methods as\n * static properties.\n *\n * **Details**\n *\n * This function allows you to define a `Tag` for a service or dependency in\n * your application. The `Tag` not only acts as an identifier but also provides\n * direct access to the service's methods via static properties. This makes it\n * easier to access and use the service in your code without manually managing\n * contexts.\n *\n * In the example below, the fields of the service (in this case, the `notify`\n * method) are turned into static properties of the Notifications class, making\n * it easier to access them.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * class Notifications extends Effect.Tag(\"Notifications\")<\n * Notifications,\n * { readonly notify: (message: string) => Effect.Effect }\n * >() {}\n *\n * // Create an effect that depends on the Notifications service\n * const action = Notifications.notify(\"Hello, world!\")\n * ```\n *\n * @since 2.0.0\n * @category Context\n */\nexport const Tag = id => () => {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 2;\n const creationError = new Error();\n Error.stackTraceLimit = limit;\n function TagClass() {}\n Object.setPrototypeOf(TagClass, TagProto);\n TagClass.key = id;\n Object.defineProperty(TagClass, \"use\", {\n get() {\n return body => core.andThen(this, body);\n }\n });\n Object.defineProperty(TagClass, \"stack\", {\n get() {\n return creationError.stack;\n }\n });\n return makeTagProxy(TagClass);\n};\n/**\n * Simplifies the creation and management of services in Effect by defining both\n * a `Tag` and a `Layer`.\n *\n * **Details**\n *\n * This function allows you to streamline the creation of services by combining\n * the definition of a `Context.Tag` and a `Layer` in a single step. It supports\n * various ways of providing the service implementation:\n * - Using an `effect` to define the service dynamically.\n * - Using `sync` or `succeed` to define the service statically.\n * - Using `scoped` to create services with lifecycle management.\n *\n * It also allows you to specify dependencies for the service, which will be\n * provided automatically when the service is used. Accessors can be optionally\n * generated for the service, making it more convenient to use.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from 'effect';\n *\n * class Prefix extends Effect.Service()(\"Prefix\", {\n * sync: () => ({ prefix: \"PRE\" })\n * }) {}\n *\n * class Logger extends Effect.Service()(\"Logger\", {\n * accessors: true,\n * effect: Effect.gen(function* () {\n * const { prefix } = yield* Prefix\n * return {\n * info: (message: string) =>\n * Effect.sync(() => {\n * console.log(`[${prefix}][${message}]`)\n * })\n * }\n * }),\n * dependencies: [Prefix.Default]\n * }) {}\n * ```\n *\n * @since 3.9.0\n * @category Context\n * @experimental might be up for breaking changes\n */\nexport const Service = function () {\n return function () {\n const [id, maker] = arguments;\n const proxy = \"accessors\" in maker ? maker[\"accessors\"] : false;\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 2;\n const creationError = new Error();\n Error.stackTraceLimit = limit;\n let patchState = \"unchecked\";\n const TagClass = function (service) {\n if (patchState === \"unchecked\") {\n const proto = Object.getPrototypeOf(service);\n if (proto === Object.prototype || proto === null) {\n patchState = \"plain\";\n } else {\n const selfProto = Object.getPrototypeOf(this);\n Object.setPrototypeOf(selfProto, proto);\n patchState = \"patched\";\n }\n }\n if (patchState === \"plain\") {\n Object.assign(this, service);\n } else if (patchState === \"patched\") {\n Object.setPrototypeOf(service, Object.getPrototypeOf(this));\n return service;\n }\n };\n TagClass.prototype._tag = id;\n Object.defineProperty(TagClass, \"make\", {\n get() {\n return service => new this(service);\n }\n });\n Object.defineProperty(TagClass, \"use\", {\n get() {\n return body => core.andThen(this, body);\n }\n });\n TagClass.key = id;\n Object.assign(TagClass, TagProto);\n Object.defineProperty(TagClass, \"stack\", {\n get() {\n return creationError.stack;\n }\n });\n const hasDeps = \"dependencies\" in maker && maker.dependencies.length > 0;\n const layerName = hasDeps ? \"DefaultWithoutDependencies\" : \"Default\";\n let layerCache;\n let isFunction = false;\n if (\"effect\" in maker) {\n isFunction = typeof maker.effect === \"function\";\n Object.defineProperty(TagClass, layerName, {\n get() {\n if (isFunction) {\n return function () {\n return layer.fromEffect(TagClass, map(maker.effect.apply(null, arguments), _ => new this(_)));\n }.bind(this);\n }\n return layerCache ??= layer.fromEffect(TagClass, map(maker.effect, _ => new this(_)));\n }\n });\n } else if (\"scoped\" in maker) {\n isFunction = typeof maker.scoped === \"function\";\n Object.defineProperty(TagClass, layerName, {\n get() {\n if (isFunction) {\n return function () {\n return layer.scoped(TagClass, map(maker.scoped.apply(null, arguments), _ => new this(_)));\n }.bind(this);\n }\n return layerCache ??= layer.scoped(TagClass, map(maker.scoped, _ => new this(_)));\n }\n });\n } else if (\"sync\" in maker) {\n Object.defineProperty(TagClass, layerName, {\n get() {\n return layerCache ??= layer.sync(TagClass, () => new this(maker.sync()));\n }\n });\n } else {\n Object.defineProperty(TagClass, layerName, {\n get() {\n return layerCache ??= layer.succeed(TagClass, new this(maker.succeed));\n }\n });\n }\n if (hasDeps) {\n let layerWithDepsCache;\n Object.defineProperty(TagClass, \"Default\", {\n get() {\n if (isFunction) {\n return function () {\n return layer.provide(this.DefaultWithoutDependencies.apply(null, arguments), maker.dependencies);\n };\n }\n return layerWithDepsCache ??= layer.provide(this.DefaultWithoutDependencies, maker.dependencies);\n }\n });\n }\n return proxy === true ? makeTagProxy(TagClass) : TagClass;\n };\n};\n/**\n * The `Effect.fn` function allows you to create traced functions that return an\n * effect. It provides two key features:\n *\n * - **Stack traces with location details** if an error occurs.\n * - **Automatic span creation** for tracing when a span name is provided.\n *\n * If a span name is passed as the first argument, the function's execution is\n * tracked using that name. If no name is provided, stack tracing still works,\n * but spans are not created.\n *\n * A function can be defined using either:\n *\n * - A generator function, allowing the use of `yield*` for effect composition.\n * - A regular function that returns an `Effect`.\n *\n * **Example** (Creating a Traced Function with a Span Name)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const myfunc = Effect.fn(\"myspan\")(function* (n: N) {\n * yield* Effect.annotateCurrentSpan(\"n\", n) // Attach metadata to the span\n * console.log(`got: ${n}`)\n * yield* Effect.fail(new Error(\"Boom!\")) // Simulate failure\n * })\n *\n * Effect.runFork(myfunc(100).pipe(Effect.catchAllCause(Effect.logError)))\n * // Output:\n * // got: 100\n * // timestamp=... level=ERROR fiber=#0 cause=\"Error: Boom!\n * // at (/.../index.ts:6:22) <= Raise location\n * // at myspan (/.../index.ts:3:23) <= Definition location\n * // at myspan (/.../index.ts:9:16)\" <= Call location\n * ```\n *\n * `Effect.fn` automatically creates spans. The spans capture information about\n * the function execution, including metadata and error details.\n *\n * **Example** (Exporting Spans to the Console)\n *\n * ```ts skip-type-checking\n * import { Effect } from \"effect\"\n * import { NodeSdk } from \"@effect/opentelemetry\"\n * import {\n * ConsoleSpanExporter,\n * BatchSpanProcessor\n * } from \"@opentelemetry/sdk-trace-base\"\n *\n * const myfunc = Effect.fn(\"myspan\")(function* (n: N) {\n * yield* Effect.annotateCurrentSpan(\"n\", n)\n * console.log(`got: ${n}`)\n * yield* Effect.fail(new Error(\"Boom!\"))\n * })\n *\n * const program = myfunc(100)\n *\n * const NodeSdkLive = NodeSdk.layer(() => ({\n * resource: { serviceName: \"example\" },\n * // Export span data to the console\n * spanProcessor: new BatchSpanProcessor(new ConsoleSpanExporter())\n * }))\n *\n * Effect.runFork(program.pipe(Effect.provide(NodeSdkLive)))\n * // Output:\n * // got: 100\n * // {\n * // resource: {\n * // attributes: {\n * // 'service.name': 'example',\n * // 'telemetry.sdk.language': 'nodejs',\n * // 'telemetry.sdk.name': '@effect/opentelemetry',\n * // 'telemetry.sdk.version': '1.30.1'\n * // }\n * // },\n * // instrumentationScope: { name: 'example', version: undefined, schemaUrl: undefined },\n * // traceId: '22801570119e57a6e2aacda3dec9665b',\n * // parentId: undefined,\n * // traceState: undefined,\n * // name: 'myspan',\n * // id: '7af530c1e01bc0cb',\n * // kind: 0,\n * // timestamp: 1741182277518402.2,\n * // duration: 4300.416,\n * // attributes: {\n * // n: 100,\n * // 'code.stacktrace': 'at (/.../index.ts:8:23)\\n' +\n * // 'at (/.../index.ts:14:17)'\n * // },\n * // status: { code: 2, message: 'Boom!' },\n * // events: [\n * // {\n * // name: 'exception',\n * // attributes: {\n * // 'exception.type': 'Error',\n * // 'exception.message': 'Boom!',\n * // 'exception.stacktrace': 'Error: Boom!\\n' +\n * // ' at (/.../index.ts:11:22)\\n' +\n * // ' at myspan (/.../index.ts:8:23)\\n' +\n * // ' at myspan (/.../index.ts:14:17)'\n * // },\n * // time: [ 1741182277, 522702583 ],\n * // droppedAttributesCount: 0\n * // }\n * // ],\n * // links: []\n * // }\n * ```\n *\n * `Effect.fn` also acts as a pipe function, allowing you to create a pipeline\n * after the function definition using the effect returned by the generator\n * function as the starting value of the pipeline.\n *\n * **Example** (Creating a Traced Function with a Delay)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const myfunc = Effect.fn(\n * function* (n: number) {\n * console.log(`got: ${n}`)\n * yield* Effect.fail(new Error(\"Boom!\"))\n * },\n * // You can access both the created effect and the original arguments\n * (effect, n) => Effect.delay(effect, `${n / 100} seconds`)\n * )\n *\n * Effect.runFork(myfunc(100).pipe(Effect.catchAllCause(Effect.logError)))\n * // Output:\n * // got: 100\n * // timestamp=... level=ERROR fiber=#0 cause=\"Error: Boom! (<= after 1 second)\n * ```\n *\n * @see {@link fnUntraced} for a version of this function that doesn't add a span.\n *\n * @since 3.11.0\n * @category Tracing\n */\nexport const fn = function (nameOrBody, ...pipeables) {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 2;\n const errorDef = new Error();\n Error.stackTraceLimit = limit;\n if (typeof nameOrBody !== \"string\") {\n return defineLength(nameOrBody.length, function (...args) {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 2;\n const errorCall = new Error();\n Error.stackTraceLimit = limit;\n return fnApply({\n self: this,\n body: nameOrBody,\n args,\n pipeables,\n spanName: \"\",\n spanOptions: {\n context: internalTracer.DisablePropagation.context(true)\n },\n errorDef,\n errorCall\n });\n });\n }\n const name = nameOrBody;\n const options = pipeables[0];\n return (body, ...pipeables) => defineLength(body.length, {\n [name](...args) {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 2;\n const errorCall = new Error();\n Error.stackTraceLimit = limit;\n return fnApply({\n self: this,\n body,\n args,\n pipeables,\n spanName: name,\n spanOptions: options,\n errorDef,\n errorCall\n });\n }\n }[name]);\n};\nfunction defineLength(length, fn) {\n return Object.defineProperty(fn, \"length\", {\n value: length,\n configurable: true\n });\n}\nfunction fnApply(options) {\n let effect;\n let fnError = undefined;\n if (isGeneratorFunction(options.body)) {\n effect = core.fromIterator(() => options.body.apply(options.self, options.args));\n } else {\n try {\n effect = options.body.apply(options.self, options.args);\n } catch (error) {\n fnError = error;\n effect = die(error);\n }\n }\n if (options.pipeables.length > 0) {\n try {\n for (const x of options.pipeables) {\n effect = x(effect, ...options.args);\n }\n } catch (error) {\n effect = fnError ? failCause(internalCause.sequential(internalCause.die(fnError), internalCause.die(error))) : die(error);\n }\n }\n let cache = false;\n const captureStackTrace = () => {\n if (cache !== false) {\n return cache;\n }\n if (options.errorCall.stack) {\n const stackDef = options.errorDef.stack.trim().split(\"\\n\");\n const stackCall = options.errorCall.stack.trim().split(\"\\n\");\n let endStackDef = stackDef.slice(2).join(\"\\n\").trim();\n if (!endStackDef.includes(`(`)) {\n endStackDef = endStackDef.replace(/at (.*)/, \"at ($1)\");\n }\n let endStackCall = stackCall.slice(2).join(\"\\n\").trim();\n if (!endStackCall.includes(`(`)) {\n endStackCall = endStackCall.replace(/at (.*)/, \"at ($1)\");\n }\n cache = `${endStackDef}\\n${endStackCall}`;\n return cache;\n }\n };\n const opts = options.spanOptions && \"captureStackTrace\" in options.spanOptions ? options.spanOptions : {\n captureStackTrace,\n ...options.spanOptions\n };\n return withSpan(effect, options.spanName, opts);\n}\n/**\n * Same as {@link fn}, but allows you to create a function that is not traced, for when performance is critical.\n *\n * @see {@link fn} for a version that includes tracing.\n *\n * @since 3.12.0\n * @category Tracing\n */\nexport const fnUntraced = core.fnUntraced;\n// -----------------------------------------------------------------------------\n// Type constraints\n// -----------------------------------------------------------------------------\n/**\n * A no-op type constraint that enforces the success channel of an Effect conforms to\n * the specified success type `A`.\n *\n * @example\n * import { Effect } from \"effect\"\n *\n * // Ensure that the program does not expose any unhandled errors.\n * const program = Effect.succeed(42).pipe(Effect.ensureSuccessType())\n *\n * @since 3.17.0\n * @category Type constraints\n */\nexport const ensureSuccessType = () => effect => effect;\n/**\n * A no-op type constraint that enforces the error channel of an Effect conforms to\n * the specified error type `E`.\n *\n * @example\n * import { Effect } from \"effect\"\n *\n * // Ensure that the program does not expose any unhandled errors.\n * const program = Effect.succeed(42).pipe(Effect.ensureErrorType())\n *\n * @since 3.17.0\n * @category Type constraints\n */\nexport const ensureErrorType = () => effect => effect;\n/**\n * A no-op type constraint that enforces the requirements channel of an Effect conforms to\n * the specified requirements type `R`.\n *\n * @example\n * import { Effect } from \"effect\"\n *\n * // Ensure that the program does not have any requirements.\n * const program = Effect.succeed(42).pipe(Effect.ensureRequirementsType())\n *\n * @since 3.17.0\n * @category Type constraints\n */\nexport const ensureRequirementsType = () => effect => effect;\n//# sourceMappingURL=Effect.js.map","/**\n * @since 3.10.0\n */\nimport * as Arr from \"./Array.js\";\nimport * as Cause from \"./Cause.js\";\nimport { TaggedError } from \"./Data.js\";\nimport * as Effect from \"./Effect.js\";\nimport * as Either from \"./Either.js\";\nimport * as Exit from \"./Exit.js\";\nimport { dual } from \"./Function.js\";\nimport { globalValue } from \"./GlobalValue.js\";\nimport * as Inspectable from \"./Inspectable.js\";\nimport * as util_ from \"./internal/schema/util.js\";\nimport * as Option from \"./Option.js\";\nimport * as Predicate from \"./Predicate.js\";\nimport * as Scheduler from \"./Scheduler.js\";\nimport * as AST from \"./SchemaAST.js\";\n/**\n * @category model\n * @since 3.10.0\n */\nexport class Pointer {\n path;\n actual;\n issue;\n /**\n * @since 3.10.0\n */\n _tag = \"Pointer\";\n constructor(path, actual, issue) {\n this.path = path;\n this.actual = actual;\n this.issue = issue;\n }\n}\n/**\n * Error that occurs when an unexpected key or index is present.\n *\n * @category model\n * @since 3.10.0\n */\nexport class Unexpected {\n actual;\n message;\n /**\n * @since 3.10.0\n */\n _tag = \"Unexpected\";\n constructor(actual,\n /**\n * @since 3.10.0\n */\n message) {\n this.actual = actual;\n this.message = message;\n }\n}\n/**\n * Error that occurs when a required key or index is missing.\n *\n * @category model\n * @since 3.10.0\n */\nexport class Missing {\n ast;\n message;\n /**\n * @since 3.10.0\n */\n _tag = \"Missing\";\n /**\n * @since 3.10.0\n */\n actual = undefined;\n constructor(\n /**\n * @since 3.10.0\n */\n ast,\n /**\n * @since 3.10.0\n */\n message) {\n this.ast = ast;\n this.message = message;\n }\n}\n/**\n * Error that contains multiple issues.\n *\n * @category model\n * @since 3.10.0\n */\nexport class Composite {\n ast;\n actual;\n issues;\n output;\n /**\n * @since 3.10.0\n */\n _tag = \"Composite\";\n constructor(ast, actual, issues, output) {\n this.ast = ast;\n this.actual = actual;\n this.issues = issues;\n this.output = output;\n }\n}\n/**\n * Error that occurs when a refinement has an error.\n *\n * @category model\n * @since 3.10.0\n */\nexport class Refinement {\n ast;\n actual;\n kind;\n issue;\n /**\n * @since 3.10.0\n */\n _tag = \"Refinement\";\n constructor(ast, actual, kind, issue) {\n this.ast = ast;\n this.actual = actual;\n this.kind = kind;\n this.issue = issue;\n }\n}\n/**\n * Error that occurs when a transformation has an error.\n *\n * @category model\n * @since 3.10.0\n */\nexport class Transformation {\n ast;\n actual;\n kind;\n issue;\n /**\n * @since 3.10.0\n */\n _tag = \"Transformation\";\n constructor(ast, actual, kind, issue) {\n this.ast = ast;\n this.actual = actual;\n this.kind = kind;\n this.issue = issue;\n }\n}\n/**\n * The `Type` variant of the `ParseIssue` type represents an error that occurs when the `actual` value is not of the expected type.\n * The `ast` field specifies the expected type, and the `actual` field contains the value that caused the error.\n *\n * @category model\n * @since 3.10.0\n */\nexport class Type {\n ast;\n actual;\n message;\n /**\n * @since 3.10.0\n */\n _tag = \"Type\";\n constructor(ast, actual, message) {\n this.ast = ast;\n this.actual = actual;\n this.message = message;\n }\n}\n/**\n * The `Forbidden` variant of the `ParseIssue` type represents a forbidden operation, such as when encountering an Effect that is not allowed to execute (e.g., using `runSync`).\n *\n * @category model\n * @since 3.10.0\n */\nexport class Forbidden {\n ast;\n actual;\n message;\n /**\n * @since 3.10.0\n */\n _tag = \"Forbidden\";\n constructor(ast, actual, message) {\n this.ast = ast;\n this.actual = actual;\n this.message = message;\n }\n}\n/**\n * @category type id\n * @since 3.10.0\n */\nexport const ParseErrorTypeId = /*#__PURE__*/Symbol.for(\"effect/Schema/ParseErrorTypeId\");\n/**\n * @since 3.10.0\n */\nexport const isParseError = u => Predicate.hasProperty(u, ParseErrorTypeId);\n/**\n * @since 3.10.0\n */\nexport class ParseError extends /*#__PURE__*/TaggedError(\"ParseError\") {\n /**\n * @since 3.10.0\n */\n [ParseErrorTypeId] = ParseErrorTypeId;\n get message() {\n return this.toString();\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return TreeFormatter.formatIssueSync(this.issue);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _id: \"ParseError\",\n message: this.toString()\n };\n }\n /**\n * @since 3.10.0\n */\n [Inspectable.NodeInspectSymbol]() {\n return this.toJSON();\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const parseError = issue => new ParseError({\n issue\n});\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const succeed = Either.right;\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const fail = Either.left;\nconst _try = Either.try;\nexport {\n/**\n * @category constructors\n * @since 3.10.0\n */\n_try as try };\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const fromOption = Either.fromOption;\nconst isEither = Either.isEither;\n/**\n * @category optimisation\n * @since 3.10.0\n */\nexport const flatMap = /*#__PURE__*/dual(2, (self, f) => {\n return isEither(self) ? Either.match(self, {\n onLeft: Either.left,\n onRight: f\n }) : Effect.flatMap(self, f);\n});\n/**\n * @category optimisation\n * @since 3.10.0\n */\nexport const map = /*#__PURE__*/dual(2, (self, f) => {\n return isEither(self) ? Either.map(self, f) : Effect.map(self, f);\n});\n/**\n * @category optimisation\n * @since 3.10.0\n */\nexport const mapError = /*#__PURE__*/dual(2, (self, f) => {\n return isEither(self) ? Either.mapLeft(self, f) : Effect.mapError(self, f);\n});\n// TODO(4.0): remove\n/**\n * @category optimisation\n * @since 3.10.0\n */\nexport const eitherOrUndefined = self => {\n if (isEither(self)) {\n return self;\n }\n};\n/**\n * @category optimisation\n * @since 3.10.0\n */\nexport const mapBoth = /*#__PURE__*/dual(2, (self, options) => {\n return isEither(self) ? Either.mapBoth(self, {\n onLeft: options.onFailure,\n onRight: options.onSuccess\n }) : Effect.mapBoth(self, options);\n});\n/**\n * @category optimisation\n * @since 3.10.0\n */\nexport const orElse = /*#__PURE__*/dual(2, (self, f) => {\n return isEither(self) ? Either.match(self, {\n onLeft: f,\n onRight: Either.right\n }) : Effect.catchAll(self, f);\n});\n/** @internal */\nexport const mergeInternalOptions = (options, overrideOptions) => {\n if (overrideOptions === undefined || Predicate.isNumber(overrideOptions)) {\n return options;\n }\n if (options === undefined) {\n return overrideOptions;\n }\n return {\n ...options,\n ...overrideOptions\n };\n};\nconst getEither = (ast, isDecoding, options) => {\n const parser = goMemo(ast, isDecoding);\n return (u, overrideOptions) => parser(u, mergeInternalOptions(options, overrideOptions));\n};\nconst getSync = (ast, isDecoding, options) => {\n const parser = getEither(ast, isDecoding, options);\n return (input, overrideOptions) => Either.getOrThrowWith(parser(input, overrideOptions), parseError);\n};\n/** @internal */\nexport const getOption = (ast, isDecoding, options) => {\n const parser = getEither(ast, isDecoding, options);\n return (input, overrideOptions) => Option.getRight(parser(input, overrideOptions));\n};\nconst getEffect = (ast, isDecoding, options) => {\n const parser = goMemo(ast, isDecoding);\n return (input, overrideOptions) => parser(input, {\n ...mergeInternalOptions(options, overrideOptions),\n isEffectAllowed: true\n });\n};\n/**\n * @throws `ParseError`\n * @category decoding\n * @since 3.10.0\n */\nexport const decodeUnknownSync = (schema, options) => getSync(schema.ast, true, options);\n/**\n * @category decoding\n * @since 3.10.0\n */\nexport const decodeUnknownOption = (schema, options) => getOption(schema.ast, true, options);\n/**\n * @category decoding\n * @since 3.10.0\n */\nexport const decodeUnknownEither = (schema, options) => getEither(schema.ast, true, options);\n/**\n * @category decoding\n * @since 3.10.0\n */\nexport const decodeUnknownPromise = (schema, options) => {\n const parser = decodeUnknown(schema, options);\n return (u, overrideOptions) => Effect.runPromise(parser(u, overrideOptions));\n};\n/**\n * @category decoding\n * @since 3.10.0\n */\nexport const decodeUnknown = (schema, options) => getEffect(schema.ast, true, options);\n/**\n * @throws `ParseError`\n * @category encoding\n * @since 3.10.0\n */\nexport const encodeUnknownSync = (schema, options) => getSync(schema.ast, false, options);\n/**\n * @category encoding\n * @since 3.10.0\n */\nexport const encodeUnknownOption = (schema, options) => getOption(schema.ast, false, options);\n/**\n * @category encoding\n * @since 3.10.0\n */\nexport const encodeUnknownEither = (schema, options) => getEither(schema.ast, false, options);\n/**\n * @category encoding\n * @since 3.10.0\n */\nexport const encodeUnknownPromise = (schema, options) => {\n const parser = encodeUnknown(schema, options);\n return (u, overrideOptions) => Effect.runPromise(parser(u, overrideOptions));\n};\n/**\n * @category encoding\n * @since 3.10.0\n */\nexport const encodeUnknown = (schema, options) => getEffect(schema.ast, false, options);\n/**\n * @category decoding\n * @since 3.10.0\n */\nexport const decodeSync = decodeUnknownSync;\n/**\n * @category decoding\n * @since 3.10.0\n */\nexport const decodeOption = decodeUnknownOption;\n/**\n * @category decoding\n * @since 3.10.0\n */\nexport const decodeEither = decodeUnknownEither;\n/**\n * @category decoding\n * @since 3.10.0\n */\nexport const decodePromise = decodeUnknownPromise;\n/**\n * @category decoding\n * @since 3.10.0\n */\nexport const decode = decodeUnknown;\n/**\n * @throws `ParseError`\n * @category validation\n * @since 3.10.0\n */\nexport const validateSync = (schema, options) => getSync(AST.typeAST(schema.ast), true, options);\n/**\n * @category validation\n * @since 3.10.0\n */\nexport const validateOption = (schema, options) => getOption(AST.typeAST(schema.ast), true, options);\n/**\n * @category validation\n * @since 3.10.0\n */\nexport const validateEither = (schema, options) => getEither(AST.typeAST(schema.ast), true, options);\n/**\n * @category validation\n * @since 3.10.0\n */\nexport const validatePromise = (schema, options) => {\n const parser = validate(schema, options);\n return (u, overrideOptions) => Effect.runPromise(parser(u, overrideOptions));\n};\n/**\n * @category validation\n * @since 3.10.0\n */\nexport const validate = (schema, options) => getEffect(AST.typeAST(schema.ast), true, options);\n/**\n * By default the option `exact` is set to `true`.\n *\n * @category validation\n * @since 3.10.0\n */\nexport const is = (schema, options) => {\n const parser = goMemo(AST.typeAST(schema.ast), true);\n return (u, overrideOptions) => Either.isRight(parser(u, {\n exact: true,\n ...mergeInternalOptions(options, overrideOptions)\n }));\n};\n/**\n * By default the option `exact` is set to `true`.\n *\n * @throws `ParseError`\n * @category validation\n * @since 3.10.0\n */\nexport const asserts = (schema, options) => {\n const parser = goMemo(AST.typeAST(schema.ast), true);\n return (u, overrideOptions) => {\n const result = parser(u, {\n exact: true,\n ...mergeInternalOptions(options, overrideOptions)\n });\n if (Either.isLeft(result)) {\n throw parseError(result.left);\n }\n };\n};\n/**\n * @category encoding\n * @since 3.10.0\n */\nexport const encodeSync = encodeUnknownSync;\n/**\n * @category encoding\n * @since 3.10.0\n */\nexport const encodeOption = encodeUnknownOption;\n/**\n * @category encoding\n * @since 3.10.0\n */\nexport const encodeEither = encodeUnknownEither;\n/**\n * @category encoding\n * @since 3.10.0\n */\nexport const encodePromise = encodeUnknownPromise;\n/**\n * @category encoding\n * @since 3.10.0\n */\nexport const encode = encodeUnknown;\nconst decodeMemoMap = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/ParseResult/decodeMemoMap\"), () => new WeakMap());\nconst encodeMemoMap = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/ParseResult/encodeMemoMap\"), () => new WeakMap());\nconst goMemo = (ast, isDecoding) => {\n const memoMap = isDecoding ? decodeMemoMap : encodeMemoMap;\n const memo = memoMap.get(ast);\n if (memo) {\n return memo;\n }\n const raw = go(ast, isDecoding);\n const parseOptionsAnnotation = AST.getParseOptionsAnnotation(ast);\n const parserWithOptions = Option.isSome(parseOptionsAnnotation) ? (i, options) => raw(i, mergeInternalOptions(options, parseOptionsAnnotation.value)) : raw;\n const decodingFallbackAnnotation = AST.getDecodingFallbackAnnotation(ast);\n const parser = isDecoding && Option.isSome(decodingFallbackAnnotation) ? (i, options) => handleForbidden(orElse(parserWithOptions(i, options), decodingFallbackAnnotation.value), ast, i, options) : parserWithOptions;\n memoMap.set(ast, parser);\n return parser;\n};\nconst getConcurrency = ast => Option.getOrUndefined(AST.getConcurrencyAnnotation(ast));\nconst getBatching = ast => Option.getOrUndefined(AST.getBatchingAnnotation(ast));\nconst go = (ast, isDecoding) => {\n switch (ast._tag) {\n case \"Refinement\":\n {\n if (isDecoding) {\n const from = goMemo(ast.from, true);\n return (i, options) => {\n options = options ?? AST.defaultParseOption;\n const allErrors = options?.errors === \"all\";\n const result = flatMap(orElse(from(i, options), ef => {\n const issue = new Refinement(ast, i, \"From\", ef);\n if (allErrors && AST.hasStableFilter(ast) && isComposite(ef)) {\n return Option.match(ast.filter(i, options, ast), {\n onNone: () => Either.left(issue),\n onSome: ep => Either.left(new Composite(ast, i, [issue, new Refinement(ast, i, \"Predicate\", ep)]))\n });\n }\n return Either.left(issue);\n }), a => Option.match(ast.filter(a, options, ast), {\n onNone: () => Either.right(a),\n onSome: ep => Either.left(new Refinement(ast, i, \"Predicate\", ep))\n }));\n return handleForbidden(result, ast, i, options);\n };\n } else {\n const from = goMemo(AST.typeAST(ast), true);\n const to = goMemo(dropRightRefinement(ast.from), false);\n return (i, options) => handleForbidden(flatMap(from(i, options), a => to(a, options)), ast, i, options);\n }\n }\n case \"Transformation\":\n {\n const transform = getFinalTransformation(ast.transformation, isDecoding);\n const from = isDecoding ? goMemo(ast.from, true) : goMemo(ast.to, false);\n const to = isDecoding ? goMemo(ast.to, true) : goMemo(ast.from, false);\n return (i, options) => handleForbidden(flatMap(mapError(from(i, options), e => new Transformation(ast, i, isDecoding ? \"Encoded\" : \"Type\", e)), a => flatMap(mapError(transform(a, options ?? AST.defaultParseOption, ast, i), e => new Transformation(ast, i, \"Transformation\", e)), i2 => mapError(to(i2, options), e => new Transformation(ast, i, isDecoding ? \"Type\" : \"Encoded\", e)))), ast, i, options);\n }\n case \"Declaration\":\n {\n const parse = isDecoding ? ast.decodeUnknown(...ast.typeParameters) : ast.encodeUnknown(...ast.typeParameters);\n return (i, options) => handleForbidden(parse(i, options ?? AST.defaultParseOption, ast), ast, i, options);\n }\n case \"Literal\":\n return fromRefinement(ast, u => u === ast.literal);\n case \"UniqueSymbol\":\n return fromRefinement(ast, u => u === ast.symbol);\n case \"UndefinedKeyword\":\n return fromRefinement(ast, Predicate.isUndefined);\n case \"NeverKeyword\":\n return fromRefinement(ast, Predicate.isNever);\n case \"UnknownKeyword\":\n case \"AnyKeyword\":\n case \"VoidKeyword\":\n return Either.right;\n case \"StringKeyword\":\n return fromRefinement(ast, Predicate.isString);\n case \"NumberKeyword\":\n return fromRefinement(ast, Predicate.isNumber);\n case \"BooleanKeyword\":\n return fromRefinement(ast, Predicate.isBoolean);\n case \"BigIntKeyword\":\n return fromRefinement(ast, Predicate.isBigInt);\n case \"SymbolKeyword\":\n return fromRefinement(ast, Predicate.isSymbol);\n case \"ObjectKeyword\":\n return fromRefinement(ast, Predicate.isObject);\n case \"Enums\":\n return fromRefinement(ast, u => ast.enums.some(([_, value]) => value === u));\n case \"TemplateLiteral\":\n {\n const regex = AST.getTemplateLiteralRegExp(ast);\n return fromRefinement(ast, u => Predicate.isString(u) && regex.test(u));\n }\n case \"TupleType\":\n {\n const elements = ast.elements.map(e => goMemo(e.type, isDecoding));\n const rest = ast.rest.map(annotatedAST => goMemo(annotatedAST.type, isDecoding));\n let requiredTypes = ast.elements.filter(e => !e.isOptional);\n if (ast.rest.length > 0) {\n requiredTypes = requiredTypes.concat(ast.rest.slice(1));\n }\n const requiredLen = requiredTypes.length;\n const expectedIndexes = ast.elements.length > 0 ? ast.elements.map((_, i) => i).join(\" | \") : \"never\";\n const concurrency = getConcurrency(ast);\n const batching = getBatching(ast);\n return (input, options) => {\n if (!Arr.isArray(input)) {\n return Either.left(new Type(ast, input));\n }\n const allErrors = options?.errors === \"all\";\n const es = [];\n let stepKey = 0;\n const output = [];\n // ---------------------------------------------\n // handle missing indexes\n // ---------------------------------------------\n const len = input.length;\n for (let i = len; i <= requiredLen - 1; i++) {\n const e = new Pointer(i, input, new Missing(requiredTypes[i - len]));\n if (allErrors) {\n es.push([stepKey++, e]);\n continue;\n } else {\n return Either.left(new Composite(ast, input, e, output));\n }\n }\n // ---------------------------------------------\n // handle excess indexes\n // ---------------------------------------------\n if (ast.rest.length === 0) {\n for (let i = ast.elements.length; i <= len - 1; i++) {\n const e = new Pointer(i, input, new Unexpected(input[i], `is unexpected, expected: ${expectedIndexes}`));\n if (allErrors) {\n es.push([stepKey++, e]);\n continue;\n } else {\n return Either.left(new Composite(ast, input, e, output));\n }\n }\n }\n let i = 0;\n let queue = undefined;\n // ---------------------------------------------\n // handle elements\n // ---------------------------------------------\n for (; i < elements.length; i++) {\n if (len < i + 1) {\n if (ast.elements[i].isOptional) {\n // the input element is missing\n continue;\n }\n } else {\n const parser = elements[i];\n const te = parser(input[i], options);\n if (isEither(te)) {\n if (Either.isLeft(te)) {\n // the input element is present but is not valid\n const e = new Pointer(i, input, te.left);\n if (allErrors) {\n es.push([stepKey++, e]);\n continue;\n } else {\n return Either.left(new Composite(ast, input, e, sortByIndex(output)));\n }\n }\n output.push([stepKey++, te.right]);\n } else {\n const nk = stepKey++;\n const index = i;\n if (!queue) {\n queue = [];\n }\n queue.push(({\n es,\n output\n }) => Effect.flatMap(Effect.either(te), t => {\n if (Either.isLeft(t)) {\n // the input element is present but is not valid\n const e = new Pointer(index, input, t.left);\n if (allErrors) {\n es.push([nk, e]);\n return Effect.void;\n } else {\n return Either.left(new Composite(ast, input, e, sortByIndex(output)));\n }\n }\n output.push([nk, t.right]);\n return Effect.void;\n }));\n }\n }\n }\n // ---------------------------------------------\n // handle rest element\n // ---------------------------------------------\n if (Arr.isNonEmptyReadonlyArray(rest)) {\n const [head, ...tail] = rest;\n for (; i < len - tail.length; i++) {\n const te = head(input[i], options);\n if (isEither(te)) {\n if (Either.isLeft(te)) {\n const e = new Pointer(i, input, te.left);\n if (allErrors) {\n es.push([stepKey++, e]);\n continue;\n } else {\n return Either.left(new Composite(ast, input, e, sortByIndex(output)));\n }\n } else {\n output.push([stepKey++, te.right]);\n }\n } else {\n const nk = stepKey++;\n const index = i;\n if (!queue) {\n queue = [];\n }\n queue.push(({\n es,\n output\n }) => Effect.flatMap(Effect.either(te), t => {\n if (Either.isLeft(t)) {\n const e = new Pointer(index, input, t.left);\n if (allErrors) {\n es.push([nk, e]);\n return Effect.void;\n } else {\n return Either.left(new Composite(ast, input, e, sortByIndex(output)));\n }\n } else {\n output.push([nk, t.right]);\n return Effect.void;\n }\n }));\n }\n }\n // ---------------------------------------------\n // handle post rest elements\n // ---------------------------------------------\n for (let j = 0; j < tail.length; j++) {\n i += j;\n if (len < i + 1) {\n continue;\n } else {\n const te = tail[j](input[i], options);\n if (isEither(te)) {\n if (Either.isLeft(te)) {\n // the input element is present but is not valid\n const e = new Pointer(i, input, te.left);\n if (allErrors) {\n es.push([stepKey++, e]);\n continue;\n } else {\n return Either.left(new Composite(ast, input, e, sortByIndex(output)));\n }\n }\n output.push([stepKey++, te.right]);\n } else {\n const nk = stepKey++;\n const index = i;\n if (!queue) {\n queue = [];\n }\n queue.push(({\n es,\n output\n }) => Effect.flatMap(Effect.either(te), t => {\n if (Either.isLeft(t)) {\n // the input element is present but is not valid\n const e = new Pointer(index, input, t.left);\n if (allErrors) {\n es.push([nk, e]);\n return Effect.void;\n } else {\n return Either.left(new Composite(ast, input, e, sortByIndex(output)));\n }\n }\n output.push([nk, t.right]);\n return Effect.void;\n }));\n }\n }\n }\n }\n // ---------------------------------------------\n // compute result\n // ---------------------------------------------\n const computeResult = ({\n es,\n output\n }) => Arr.isNonEmptyArray(es) ? Either.left(new Composite(ast, input, sortByIndex(es), sortByIndex(output))) : Either.right(sortByIndex(output));\n if (queue && queue.length > 0) {\n const cqueue = queue;\n return Effect.suspend(() => {\n const state = {\n es: Arr.copy(es),\n output: Arr.copy(output)\n };\n return Effect.flatMap(Effect.forEach(cqueue, f => f(state), {\n concurrency,\n batching,\n discard: true\n }), () => computeResult(state));\n });\n }\n return computeResult({\n output,\n es\n });\n };\n }\n case \"TypeLiteral\":\n {\n if (ast.propertySignatures.length === 0 && ast.indexSignatures.length === 0) {\n return fromRefinement(ast, Predicate.isNotNullable);\n }\n const propertySignatures = [];\n const expectedKeysMap = {};\n const expectedKeys = [];\n for (const ps of ast.propertySignatures) {\n propertySignatures.push([goMemo(ps.type, isDecoding), ps]);\n expectedKeysMap[ps.name] = null;\n expectedKeys.push(ps.name);\n }\n const indexSignatures = ast.indexSignatures.map(is => [goMemo(is.parameter, isDecoding), goMemo(is.type, isDecoding), is.parameter]);\n const expectedAST = AST.Union.make(ast.indexSignatures.map(is => is.parameter).concat(expectedKeys.map(key => Predicate.isSymbol(key) ? new AST.UniqueSymbol(key) : new AST.Literal(key))));\n const expected = goMemo(expectedAST, isDecoding);\n const concurrency = getConcurrency(ast);\n const batching = getBatching(ast);\n return (input, options) => {\n if (!Predicate.isRecord(input)) {\n return Either.left(new Type(ast, input));\n }\n const allErrors = options?.errors === \"all\";\n const es = [];\n let stepKey = 0;\n // ---------------------------------------------\n // handle excess properties\n // ---------------------------------------------\n const onExcessPropertyError = options?.onExcessProperty === \"error\";\n const onExcessPropertyPreserve = options?.onExcessProperty === \"preserve\";\n const output = {};\n let inputKeys;\n if (onExcessPropertyError || onExcessPropertyPreserve) {\n inputKeys = Reflect.ownKeys(input);\n for (const key of inputKeys) {\n const te = expected(key, options);\n if (isEither(te) && Either.isLeft(te)) {\n // key is unexpected\n if (onExcessPropertyError) {\n const e = new Pointer(key, input, new Unexpected(input[key], `is unexpected, expected: ${String(expectedAST)}`));\n if (allErrors) {\n es.push([stepKey++, e]);\n continue;\n } else {\n return Either.left(new Composite(ast, input, e, output));\n }\n } else {\n // preserve key\n output[key] = input[key];\n }\n }\n }\n }\n let queue = undefined;\n const isExact = options?.exact === true;\n for (let i = 0; i < propertySignatures.length; i++) {\n const ps = propertySignatures[i][1];\n const name = ps.name;\n const hasKey = Object.prototype.hasOwnProperty.call(input, name);\n if (!hasKey) {\n if (ps.isOptional) {\n continue;\n } else if (isExact) {\n const e = new Pointer(name, input, new Missing(ps));\n if (allErrors) {\n es.push([stepKey++, e]);\n continue;\n } else {\n return Either.left(new Composite(ast, input, e, output));\n }\n }\n }\n const parser = propertySignatures[i][0];\n const te = parser(input[name], options);\n if (isEither(te)) {\n if (Either.isLeft(te)) {\n const e = new Pointer(name, input, hasKey ? te.left : new Missing(ps));\n if (allErrors) {\n es.push([stepKey++, e]);\n continue;\n } else {\n return Either.left(new Composite(ast, input, e, output));\n }\n }\n output[name] = te.right;\n } else {\n const nk = stepKey++;\n const index = name;\n if (!queue) {\n queue = [];\n }\n queue.push(({\n es,\n output\n }) => Effect.flatMap(Effect.either(te), t => {\n if (Either.isLeft(t)) {\n const e = new Pointer(index, input, hasKey ? t.left : new Missing(ps));\n if (allErrors) {\n es.push([nk, e]);\n return Effect.void;\n } else {\n return Either.left(new Composite(ast, input, e, output));\n }\n }\n output[index] = t.right;\n return Effect.void;\n }));\n }\n }\n // ---------------------------------------------\n // handle index signatures\n // ---------------------------------------------\n for (let i = 0; i < indexSignatures.length; i++) {\n const indexSignature = indexSignatures[i];\n const parameter = indexSignature[0];\n const type = indexSignature[1];\n const keys = util_.getKeysForIndexSignature(input, indexSignature[2]);\n for (const key of keys) {\n // ---------------------------------------------\n // handle keys\n // ---------------------------------------------\n const keu = parameter(key, options);\n if (isEither(keu) && Either.isRight(keu)) {\n // ---------------------------------------------\n // handle values\n // ---------------------------------------------\n const vpr = type(input[key], options);\n if (isEither(vpr)) {\n if (Either.isLeft(vpr)) {\n const e = new Pointer(key, input, vpr.left);\n if (allErrors) {\n es.push([stepKey++, e]);\n continue;\n } else {\n return Either.left(new Composite(ast, input, e, output));\n }\n } else {\n if (!Object.prototype.hasOwnProperty.call(expectedKeysMap, key)) {\n output[key] = vpr.right;\n }\n }\n } else {\n const nk = stepKey++;\n const index = key;\n if (!queue) {\n queue = [];\n }\n queue.push(({\n es,\n output\n }) => Effect.flatMap(Effect.either(vpr), tv => {\n if (Either.isLeft(tv)) {\n const e = new Pointer(index, input, tv.left);\n if (allErrors) {\n es.push([nk, e]);\n return Effect.void;\n } else {\n return Either.left(new Composite(ast, input, e, output));\n }\n } else {\n if (!Object.prototype.hasOwnProperty.call(expectedKeysMap, key)) {\n output[key] = tv.right;\n }\n return Effect.void;\n }\n }));\n }\n }\n }\n }\n // ---------------------------------------------\n // compute result\n // ---------------------------------------------\n const computeResult = ({\n es,\n output\n }) => {\n if (Arr.isNonEmptyArray(es)) {\n return Either.left(new Composite(ast, input, sortByIndex(es), output));\n }\n if (options?.propertyOrder === \"original\") {\n // preserve input keys order\n const keys = inputKeys || Reflect.ownKeys(input);\n for (const name of expectedKeys) {\n if (keys.indexOf(name) === -1) {\n keys.push(name);\n }\n }\n const out = {};\n for (const key of keys) {\n if (Object.prototype.hasOwnProperty.call(output, key)) {\n out[key] = output[key];\n }\n }\n return Either.right(out);\n }\n return Either.right(output);\n };\n if (queue && queue.length > 0) {\n const cqueue = queue;\n return Effect.suspend(() => {\n const state = {\n es: Arr.copy(es),\n output: Object.assign({}, output)\n };\n return Effect.flatMap(Effect.forEach(cqueue, f => f(state), {\n concurrency,\n batching,\n discard: true\n }), () => computeResult(state));\n });\n }\n return computeResult({\n es,\n output\n });\n };\n }\n case \"Union\":\n {\n const searchTree = getSearchTree(ast.types, isDecoding);\n const ownKeys = Reflect.ownKeys(searchTree.keys);\n const ownKeysLen = ownKeys.length;\n const astTypesLen = ast.types.length;\n const map = new Map();\n for (let i = 0; i < astTypesLen; i++) {\n map.set(ast.types[i], goMemo(ast.types[i], isDecoding));\n }\n const concurrency = getConcurrency(ast) ?? 1;\n const batching = getBatching(ast);\n return (input, options) => {\n const es = [];\n let stepKey = 0;\n let candidates = [];\n if (ownKeysLen > 0) {\n if (Predicate.isRecordOrArray(input)) {\n for (let i = 0; i < ownKeysLen; i++) {\n const name = ownKeys[i];\n const buckets = searchTree.keys[name].buckets;\n // for each property that should contain a literal, check if the input contains that property\n if (Object.prototype.hasOwnProperty.call(input, name)) {\n const literal = String(input[name]);\n // check that the value obtained from the input for the property corresponds to an existing bucket\n if (Object.prototype.hasOwnProperty.call(buckets, literal)) {\n // retrive the minimal set of candidates for decoding\n candidates = candidates.concat(buckets[literal]);\n } else {\n const {\n candidates,\n literals\n } = searchTree.keys[name];\n const literalsUnion = AST.Union.make(literals);\n const errorAst = candidates.length === astTypesLen ? new AST.TypeLiteral([new AST.PropertySignature(name, literalsUnion, false, true)], []) : AST.Union.make(candidates);\n es.push([stepKey++, new Composite(errorAst, input, new Pointer(name, input, new Type(literalsUnion, input[name])))]);\n }\n } else {\n const {\n candidates,\n literals\n } = searchTree.keys[name];\n const fakePropertySignature = new AST.PropertySignature(name, AST.Union.make(literals), false, true);\n const errorAst = candidates.length === astTypesLen ? new AST.TypeLiteral([fakePropertySignature], []) : AST.Union.make(candidates);\n es.push([stepKey++, new Composite(errorAst, input, new Pointer(name, input, new Missing(fakePropertySignature)))]);\n }\n }\n } else {\n const errorAst = searchTree.candidates.length === astTypesLen ? ast : AST.Union.make(searchTree.candidates);\n es.push([stepKey++, new Type(errorAst, input)]);\n }\n }\n if (searchTree.otherwise.length > 0) {\n candidates = candidates.concat(searchTree.otherwise);\n }\n let queue = undefined;\n for (let i = 0; i < candidates.length; i++) {\n const candidate = candidates[i];\n const pr = map.get(candidate)(input, options);\n // the members of a union are ordered based on which one should be decoded first,\n // therefore if one member has added a task, all subsequent members must\n // also add a task to the queue even if they are synchronous\n if (isEither(pr) && (!queue || queue.length === 0)) {\n if (Either.isRight(pr)) {\n return pr;\n } else {\n es.push([stepKey++, pr.left]);\n }\n } else {\n const nk = stepKey++;\n if (!queue) {\n queue = [];\n }\n queue.push(state => Effect.suspend(() => {\n if (\"finalResult\" in state) {\n return Effect.void;\n } else {\n return Effect.flatMap(Effect.either(pr), t => {\n if (Either.isRight(t)) {\n state.finalResult = t;\n } else {\n state.es.push([nk, t.left]);\n }\n return Effect.void;\n });\n }\n }));\n }\n }\n // ---------------------------------------------\n // compute result\n // ---------------------------------------------\n const computeResult = es => Arr.isNonEmptyArray(es) ? es.length === 1 && es[0][1]._tag === \"Type\" ? Either.left(es[0][1]) : Either.left(new Composite(ast, input, sortByIndex(es))) :\n // this should never happen\n Either.left(new Type(ast, input));\n if (queue && queue.length > 0) {\n const cqueue = queue;\n return Effect.suspend(() => {\n const state = {\n es: Arr.copy(es)\n };\n return Effect.flatMap(Effect.forEach(cqueue, f => f(state), {\n concurrency,\n batching,\n discard: true\n }), () => {\n if (\"finalResult\" in state) {\n return state.finalResult;\n }\n return computeResult(state.es);\n });\n });\n }\n return computeResult(es);\n };\n }\n case \"Suspend\":\n {\n const get = util_.memoizeThunk(() => goMemo(ast.f(), isDecoding));\n return (a, options) => get()(a, options);\n }\n }\n};\nconst fromRefinement = (ast, refinement) => u => refinement(u) ? Either.right(u) : Either.left(new Type(ast, u));\n/** @internal */\nexport const getLiterals = (ast, isDecoding) => {\n switch (ast._tag) {\n case \"Declaration\":\n {\n const annotation = AST.getSurrogateAnnotation(ast);\n if (Option.isSome(annotation)) {\n return getLiterals(annotation.value, isDecoding);\n }\n break;\n }\n case \"TypeLiteral\":\n {\n const out = [];\n for (let i = 0; i < ast.propertySignatures.length; i++) {\n const propertySignature = ast.propertySignatures[i];\n const type = isDecoding ? AST.encodedAST(propertySignature.type) : AST.typeAST(propertySignature.type);\n if (AST.isLiteral(type) && !propertySignature.isOptional) {\n out.push([propertySignature.name, type]);\n }\n }\n return out;\n }\n case \"TupleType\":\n {\n const out = [];\n for (let i = 0; i < ast.elements.length; i++) {\n const element = ast.elements[i];\n const type = isDecoding ? AST.encodedAST(element.type) : AST.typeAST(element.type);\n if (AST.isLiteral(type) && !element.isOptional) {\n out.push([i, type]);\n }\n }\n return out;\n }\n case \"Refinement\":\n return getLiterals(ast.from, isDecoding);\n case \"Suspend\":\n return getLiterals(ast.f(), isDecoding);\n case \"Transformation\":\n return getLiterals(isDecoding ? ast.from : ast.to, isDecoding);\n }\n return [];\n};\n/**\n * The purpose of the algorithm is to narrow down the pool of possible\n * candidates for decoding as much as possible.\n *\n * This function separates the schemas into two groups, `keys` and `otherwise`:\n *\n * - `keys`: the schema has at least one property with a literal value\n * - `otherwise`: the schema has no properties with a literal value\n *\n * If a schema has at least one property with a literal value, so it ends up in\n * `keys`, first a namespace is created for the name of the property containing\n * the literal, and then within this namespace a \"bucket\" is created for the\n * literal value in which to store all the schemas that have the same property\n * and literal value.\n *\n * @internal\n */\nexport const getSearchTree = (members, isDecoding) => {\n const keys = {};\n const otherwise = [];\n const candidates = [];\n for (let i = 0; i < members.length; i++) {\n const member = members[i];\n const tags = getLiterals(member, isDecoding);\n if (tags.length > 0) {\n candidates.push(member);\n for (let j = 0; j < tags.length; j++) {\n const [key, literal] = tags[j];\n const hash = String(literal.literal);\n keys[key] = keys[key] || {\n buckets: {},\n literals: [],\n candidates: []\n };\n const buckets = keys[key].buckets;\n if (Object.prototype.hasOwnProperty.call(buckets, hash)) {\n if (j < tags.length - 1) {\n continue;\n }\n buckets[hash].push(member);\n keys[key].literals.push(literal);\n keys[key].candidates.push(member);\n } else {\n buckets[hash] = [member];\n keys[key].literals.push(literal);\n keys[key].candidates.push(member);\n break;\n }\n }\n } else {\n otherwise.push(member);\n }\n }\n return {\n keys,\n otherwise,\n candidates\n };\n};\nconst dropRightRefinement = ast => AST.isRefinement(ast) ? dropRightRefinement(ast.from) : ast;\nconst handleForbidden = (effect, ast, actual, options) => {\n // If effects are allowed, return the original effect\n if (options?.isEffectAllowed === true) {\n return effect;\n }\n // If the effect is already an Either, return it directly\n if (isEither(effect)) {\n return effect;\n }\n // Otherwise, attempt to execute the effect synchronously\n const scheduler = new Scheduler.SyncScheduler();\n const fiber = Effect.runFork(effect, {\n scheduler\n });\n scheduler.flush();\n const exit = fiber.unsafePoll();\n if (exit) {\n if (Exit.isSuccess(exit)) {\n // If the effect successfully resolves, wrap the value in a Right\n return Either.right(exit.value);\n }\n const cause = exit.cause;\n if (Cause.isFailType(cause)) {\n // The effect executed synchronously but failed due to a ParseIssue\n return Either.left(cause.error);\n }\n // The effect executed synchronously but failed due to a defect (e.g., a missing dependency)\n return Either.left(new Forbidden(ast, actual, Cause.pretty(cause)));\n }\n // The effect could not be resolved synchronously, meaning it performs async work\n return Either.left(new Forbidden(ast, actual, \"cannot be be resolved synchronously, this is caused by using runSync on an effect that performs async work\"));\n};\nconst compare = ([a], [b]) => a > b ? 1 : a < b ? -1 : 0;\nfunction sortByIndex(es) {\n return es.sort(compare).map(t => t[1]);\n}\n// -------------------------------------------------------------------------------------\n// transformations interpreter\n// -------------------------------------------------------------------------------------\n/** @internal */\nexport const getFinalTransformation = (transformation, isDecoding) => {\n switch (transformation._tag) {\n case \"FinalTransformation\":\n return isDecoding ? transformation.decode : transformation.encode;\n case \"ComposeTransformation\":\n return Either.right;\n case \"TypeLiteralTransformation\":\n return input => {\n let out = Either.right(input);\n // ---------------------------------------------\n // handle property signature transformations\n // ---------------------------------------------\n for (const pst of transformation.propertySignatureTransformations) {\n const [from, to] = isDecoding ? [pst.from, pst.to] : [pst.to, pst.from];\n const transformation = isDecoding ? pst.decode : pst.encode;\n const f = input => {\n const o = transformation(Object.prototype.hasOwnProperty.call(input, from) ? Option.some(input[from]) : Option.none());\n delete input[from];\n if (Option.isSome(o)) {\n input[to] = o.value;\n }\n return input;\n };\n out = map(out, f);\n }\n return out;\n };\n }\n};\nconst makeTree = (value, forest = []) => ({\n value,\n forest\n});\n/**\n * @category formatting\n * @since 3.10.0\n */\nexport const TreeFormatter = {\n formatIssue: issue => map(formatTree(issue), drawTree),\n formatIssueSync: issue => {\n const e = TreeFormatter.formatIssue(issue);\n return isEither(e) ? Either.getOrThrow(e) : Effect.runSync(e);\n },\n formatError: error => TreeFormatter.formatIssue(error.issue),\n formatErrorSync: error => TreeFormatter.formatIssueSync(error.issue)\n};\nconst drawTree = tree => tree.value + draw(\"\\n\", tree.forest);\nconst draw = (indentation, forest) => {\n let r = \"\";\n const len = forest.length;\n let tree;\n for (let i = 0; i < len; i++) {\n tree = forest[i];\n const isLast = i === len - 1;\n r += indentation + (isLast ? \"└\" : \"├\") + \"─ \" + tree.value;\n r += draw(indentation + (len > 1 && !isLast ? \"│ \" : \" \"), tree.forest);\n }\n return r;\n};\nconst formatTransformationKind = kind => {\n switch (kind) {\n case \"Encoded\":\n return \"Encoded side transformation failure\";\n case \"Transformation\":\n return \"Transformation process failure\";\n case \"Type\":\n return \"Type side transformation failure\";\n }\n};\nconst formatRefinementKind = kind => {\n switch (kind) {\n case \"From\":\n return \"From side refinement failure\";\n case \"Predicate\":\n return \"Predicate refinement failure\";\n }\n};\nconst getAnnotated = issue => \"ast\" in issue ? Option.some(issue.ast) : Option.none();\n// TODO: replace with Either.void when 3.13 lands\nconst Either_void = /*#__PURE__*/Either.right(undefined);\nconst getCurrentMessage = issue => getAnnotated(issue).pipe(Option.flatMap(AST.getMessageAnnotation), Option.match({\n onNone: () => Either_void,\n onSome: messageAnnotation => {\n const union = messageAnnotation(issue);\n if (Predicate.isString(union)) {\n return Either.right({\n message: union,\n override: false\n });\n }\n if (Effect.isEffect(union)) {\n return Effect.map(union, message => ({\n message,\n override: false\n }));\n }\n if (Predicate.isString(union.message)) {\n return Either.right({\n message: union.message,\n override: union.override\n });\n }\n return Effect.map(union.message, message => ({\n message,\n override: union.override\n }));\n }\n}));\nconst createParseIssueGuard = tag => issue => issue._tag === tag;\n/**\n * Returns `true` if the value is a `Composite`.\n *\n * @category guards\n * @since 3.10.0\n */\nexport const isComposite = /*#__PURE__*/createParseIssueGuard(\"Composite\");\nconst isRefinement = /*#__PURE__*/createParseIssueGuard(\"Refinement\");\nconst isTransformation = /*#__PURE__*/createParseIssueGuard(\"Transformation\");\nconst getMessage = issue => flatMap(getCurrentMessage(issue), currentMessage => {\n if (currentMessage !== undefined) {\n const useInnerMessage = !currentMessage.override && (isComposite(issue) || isRefinement(issue) && issue.kind === \"From\" || isTransformation(issue) && issue.kind !== \"Transformation\");\n return useInnerMessage ? isTransformation(issue) || isRefinement(issue) ? getMessage(issue.issue) : Either_void : Either.right(currentMessage.message);\n }\n return Either_void;\n});\nconst getParseIssueTitleAnnotation = issue => getAnnotated(issue).pipe(Option.flatMap(AST.getParseIssueTitleAnnotation), Option.flatMapNullable(annotation => annotation(issue)), Option.getOrUndefined);\n/** @internal */\nexport function getRefinementExpected(ast) {\n return AST.getDescriptionAnnotation(ast).pipe(Option.orElse(() => AST.getTitleAnnotation(ast)), Option.orElse(() => AST.getAutoTitleAnnotation(ast)), Option.orElse(() => AST.getIdentifierAnnotation(ast)), Option.getOrElse(() => `{ ${ast.from} | filter }`));\n}\nfunction getDefaultTypeMessage(issue) {\n if (issue.message !== undefined) {\n return issue.message;\n }\n const expected = AST.isRefinement(issue.ast) ? getRefinementExpected(issue.ast) : String(issue.ast);\n return `Expected ${expected}, actual ${Inspectable.formatUnknown(issue.actual)}`;\n}\nconst formatTypeMessage = issue => map(getMessage(issue), message => message ?? getParseIssueTitleAnnotation(issue) ?? getDefaultTypeMessage(issue));\nconst getParseIssueTitle = issue => getParseIssueTitleAnnotation(issue) ?? String(issue.ast);\nconst formatForbiddenMessage = issue => issue.message ?? \"is forbidden\";\nconst formatUnexpectedMessage = issue => issue.message ?? \"is unexpected\";\nconst formatMissingMessage = issue => {\n const missingMessageAnnotation = AST.getMissingMessageAnnotation(issue.ast);\n if (Option.isSome(missingMessageAnnotation)) {\n const annotation = missingMessageAnnotation.value();\n return Predicate.isString(annotation) ? Either.right(annotation) : annotation;\n }\n return Either.right(issue.message ?? \"is missing\");\n};\nconst formatTree = issue => {\n switch (issue._tag) {\n case \"Type\":\n return map(formatTypeMessage(issue), makeTree);\n case \"Forbidden\":\n return Either.right(makeTree(getParseIssueTitle(issue), [makeTree(formatForbiddenMessage(issue))]));\n case \"Unexpected\":\n return Either.right(makeTree(formatUnexpectedMessage(issue)));\n case \"Missing\":\n return map(formatMissingMessage(issue), makeTree);\n case \"Transformation\":\n return flatMap(getMessage(issue), message => {\n if (message !== undefined) {\n return Either.right(makeTree(message));\n }\n return map(formatTree(issue.issue), tree => makeTree(getParseIssueTitle(issue), [makeTree(formatTransformationKind(issue.kind), [tree])]));\n });\n case \"Refinement\":\n return flatMap(getMessage(issue), message => {\n if (message !== undefined) {\n return Either.right(makeTree(message));\n }\n return map(formatTree(issue.issue), tree => makeTree(getParseIssueTitle(issue), [makeTree(formatRefinementKind(issue.kind), [tree])]));\n });\n case \"Pointer\":\n return map(formatTree(issue.issue), tree => makeTree(util_.formatPath(issue.path), [tree]));\n case \"Composite\":\n return flatMap(getMessage(issue), message => {\n if (message !== undefined) {\n return Either.right(makeTree(message));\n }\n const parseIssueTitle = getParseIssueTitle(issue);\n return util_.isNonEmpty(issue.issues) ? map(Effect.forEach(issue.issues, formatTree), forest => makeTree(parseIssueTitle, forest)) : map(formatTree(issue.issues), tree => makeTree(parseIssueTitle, [tree]));\n });\n }\n};\nconst makeArrayFormatterIssue = (_tag, path, message) => ({\n _tag,\n path,\n message\n});\n/**\n * @category formatting\n * @since 3.10.0\n */\nexport const ArrayFormatter = {\n formatIssue: issue => getArrayFormatterIssues(issue, undefined, []),\n formatIssueSync: issue => {\n const e = ArrayFormatter.formatIssue(issue);\n return isEither(e) ? Either.getOrThrow(e) : Effect.runSync(e);\n },\n formatError: error => ArrayFormatter.formatIssue(error.issue),\n formatErrorSync: error => ArrayFormatter.formatIssueSync(error.issue)\n};\nconst getArrayFormatterIssues = (issue, parentTag, path) => {\n const _tag = issue._tag;\n switch (_tag) {\n case \"Type\":\n return map(formatTypeMessage(issue), message => [makeArrayFormatterIssue(parentTag ?? _tag, path, message)]);\n case \"Forbidden\":\n return Either.right([makeArrayFormatterIssue(_tag, path, formatForbiddenMessage(issue))]);\n case \"Unexpected\":\n return Either.right([makeArrayFormatterIssue(_tag, path, formatUnexpectedMessage(issue))]);\n case \"Missing\":\n return map(formatMissingMessage(issue), message => [makeArrayFormatterIssue(_tag, path, message)]);\n case \"Pointer\":\n return getArrayFormatterIssues(issue.issue, undefined, path.concat(issue.path));\n case \"Composite\":\n return flatMap(getMessage(issue), message => {\n if (message !== undefined) {\n return Either.right([makeArrayFormatterIssue(_tag, path, message)]);\n }\n return util_.isNonEmpty(issue.issues) ? map(Effect.forEach(issue.issues, issue => getArrayFormatterIssues(issue, undefined, path)), Arr.flatten) : getArrayFormatterIssues(issue.issues, undefined, path);\n });\n case \"Refinement\":\n return flatMap(getMessage(issue), message => {\n if (message !== undefined) {\n return Either.right([makeArrayFormatterIssue(_tag, path, message)]);\n }\n return getArrayFormatterIssues(issue.issue, issue.kind === \"Predicate\" ? _tag : undefined, path);\n });\n case \"Transformation\":\n return flatMap(getMessage(issue), message => {\n if (message !== undefined) {\n return Either.right([makeArrayFormatterIssue(_tag, path, message)]);\n }\n return getArrayFormatterIssues(issue.issue, issue.kind === \"Transformation\" ? _tag : undefined, path);\n });\n }\n};\n//# sourceMappingURL=ParseResult.js.map","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","import { TransactionReceiptNotFoundError, } from '../../errors/transaction.js';\nimport { formatTransactionReceipt, } from '../../utils/formatters/transactionReceipt.js';\n/**\n * Returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt) given a [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionReceipt\n * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\n * - JSON-RPC Methods: [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactionreceipt)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionReceiptParameters}\n * @returns The transaction receipt. {@link GetTransactionReceiptReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransactionReceipt } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const transactionReceipt = await getTransactionReceipt(client, {\n * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\nexport async function getTransactionReceipt(client, { hash }) {\n const receipt = await client.request({\n method: 'eth_getTransactionReceipt',\n params: [hash],\n }, { dedupe: true });\n if (!receipt)\n throw new TransactionReceiptNotFoundError({ hash });\n const format = client.chain?.formatters?.transactionReceipt?.format ||\n formatTransactionReceipt;\n return format(receipt, 'getTransactionReceipt');\n}\n//# sourceMappingURL=getTransactionReceipt.js.map","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom-client.production.js');\n} else {\n module.exports = require('./cjs/react-dom-client.development.js');\n}\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","\"use strict\";\n/*\nMIT License\n\nCopyright (c) 2019 Cyril Dever\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decrypt = exports.encrypt = exports.derive = exports.verify = exports.sign = exports.getPublic = exports.kdf = void 0;\n/**\n * Note: This module is based off the original eccrypto module.\n */\nvar crypto_1 = require(\"crypto\");\nvar elliptic_1 = require(\"elliptic\");\nvar secp256k1_1 = __importDefault(require(\"secp256k1\"));\nvar ec = new elliptic_1.ec('secp256k1');\nvar sha256 = function (msg) {\n return (0, crypto_1.createHash)('sha256').update(msg).digest();\n};\nvar hmacSha256 = function (key, msg) {\n return (0, crypto_1.createHmac)('sha256', key).update(msg).digest();\n};\nvar aes128CtrEncrypt = function (iv, key, plaintext) {\n var cipher = (0, crypto_1.createCipheriv)('aes-128-ctr', key, iv);\n var firstChunk = cipher.update(plaintext);\n var secondChunk = cipher.final();\n return Buffer.concat([iv, firstChunk, secondChunk]);\n};\nvar aes128CtrDecrypt = function (iv, key, ciphertext) {\n var cipher = (0, crypto_1.createDecipheriv)('aes-128-ctr', key, iv);\n var firstChunk = cipher.update(ciphertext);\n var secondChunk = cipher.final();\n return Buffer.concat([firstChunk, secondChunk]);\n};\n// Compare two buffers in constant time to prevent timing attacks\nvar equalConstTime = function (b1, b2) {\n if (b1.length !== b2.length) {\n return false;\n }\n var res = 0;\n for (var i = 0; i < b1.length; i++) { // eslint-disable-line no-loops/no-loops\n res |= b1[i] ^ b2[i];\n }\n return res === 0;\n};\nvar pad32 = function (msg) {\n if (msg.length < 32) {\n var buff = Buffer.alloc(32).fill(0);\n msg.copy(buff, 32 - msg.length);\n return buff;\n }\n else\n return msg;\n};\n// The KDF as implemented in Parity mimics Geth's implementation\nvar kdf = function (secret, outputLength) { return new Promise(function (resolve) {\n var ctr = 1;\n var written = 0;\n var result = Buffer.from('');\n while (written < outputLength) { // eslint-disable-line no-loops/no-loops\n var ctrs = Buffer.from([ctr >> 24, ctr >> 16, ctr >> 8, ctr]);\n var hashResult = sha256(Buffer.concat([ctrs, secret]));\n result = Buffer.concat([result, hashResult]);\n written += 32;\n ctr += 1;\n }\n resolve(result);\n}); };\nexports.kdf = kdf;\n/**\n * Compute the public key for a given private key.\n *\n * @param {Buffer} privateKey - A 32-byte private key\n * @return {Promise} A promise that resolve with the 65-byte public key or reject on wrong private key.\n * @function\n */\nvar getPublic = function (privateKey) { return new Promise(function (resolve, reject) {\n return privateKey.length !== 32\n ? reject(new Error('Private key should be 32 bytes long'))\n : resolve(Buffer.from(secp256k1_1.default.publicKeyConvert(secp256k1_1.default.publicKeyCreate(privateKey), false)));\n} // See https://github.com/wanderer/secp256k1-node/issues/46\n); };\nexports.getPublic = getPublic;\n/**\n * Create an ECDSA signature.\n *\n * @param {Buffer} privateKey - A 32-byte private key\n * @param {Buffer} msg - The message being signed, no more than 32 bytes\n * @return {Promise.} A promise that resolves with the signature and rejects on bad key or message.\n */\nvar sign = function (privateKey, msg) { return new Promise(function (resolve, reject) {\n if (privateKey.length !== 32) {\n reject(new Error('Private key should be 32 bytes long'));\n }\n else if (msg.length <= 0) {\n reject(new Error('Message should not be empty'));\n }\n else if (msg.length > 32) {\n reject(new Error('Message is too long (max 32 bytes)'));\n }\n else {\n var padded = pad32(msg);\n var signed = secp256k1_1.default.ecdsaSign(padded, privateKey).signature;\n resolve(Buffer.from(secp256k1_1.default.signatureExport(signed)));\n }\n}); };\nexports.sign = sign;\n/**\n * Verify an ECDSA signature.\n *\n * @param {Buffer} publicKey - A 65-byte public key\n * @param {Buffer} msg - The message being verified\n * @param {Buffer} sig - The signature\n * @return {Promise.} A promise that resolves on correct signature and rejects on bad key or signature\n */\nvar verify = function (publicKey, msg, sig) { return new Promise(function (resolve, reject) {\n if (publicKey.length !== 65) {\n reject(new Error('Public key should 65 bytes long'));\n }\n else if (msg.length <= 0) {\n reject(new Error('Message should not be empty'));\n }\n else if (msg.length > 32) {\n reject(new Error('Message is too long (max 32 bytes)'));\n }\n else {\n var passed = pad32(msg);\n try {\n var signed = secp256k1_1.default.signatureImport(sig);\n if (secp256k1_1.default.ecdsaVerify(signed, passed, publicKey)) {\n resolve(true);\n }\n else {\n reject(new Error('Bad signature'));\n }\n }\n catch (_) { // eslint-disable-line @typescript-eslint/no-unused-vars\n reject(new Error('Invalid signature'));\n }\n }\n}); };\nexports.verify = verify;\n/**\n * Derive shared secret for given private and public keys.\n *\n * @param {Buffer} privateKey - Sender's private key (32 bytes)\n * @param {Buffer} publicKey - Recipient's public key (65 bytes)\n * @return {Promise.} A promise that resolves with the derived shared secret (Px, 32 bytes) and rejects on bad key\n */\nvar derive = function (privateKey, publicKey) { return new Promise(function (resolve, reject) {\n if (privateKey.length !== 32) {\n reject(new Error(\"Bad private key, it should be 32 bytes but it's actually \".concat(privateKey.length, \" bytes long\")));\n }\n else if (publicKey.length !== 65) {\n reject(new Error(\"Bad public key, it should be 65 bytes but it's actually \".concat(publicKey.length, \" bytes long\")));\n }\n else if (publicKey[0] !== 4) {\n reject(new Error('Bad public key, a valid public key would begin with 4'));\n }\n else {\n var keyA = ec.keyFromPrivate(privateKey);\n var keyB = ec.keyFromPublic(publicKey);\n var Px = keyA.derive(keyB.getPublic()); // BN instance\n resolve(pad32(Buffer.from(Px.toArray())));\n }\n}); };\nexports.derive = derive;\n/**\n * Encrypt message for given recepient's public key.\n *\n * @param {Buffer} publicKeyTo - Recipient's public key (65 bytes)\n * @param {Buffer} msg - The message being encrypted\n * @param {?{?iv: Buffer, ?ephemPrivateKey: Buffer}} opts - You may also specify initialization vector (16 bytes) and ephemeral private key (32 bytes) to get deterministic results.\n * @return {Promise.} - A promise that resolves with the ECIES structure serialized\n */\nvar encrypt = function (publicKeyTo, msg, opts) { return __awaiter(void 0, void 0, void 0, function () {\n var ephemPrivateKey;\n return __generator(this, function (_a) {\n opts = opts || {};\n ephemPrivateKey = opts.ephemPrivateKey || (0, crypto_1.randomBytes)(32);\n return [2 /*return*/, (0, exports.derive)(ephemPrivateKey, publicKeyTo)\n .then(function (sharedPx) { return (0, exports.kdf)(sharedPx, 32); })\n .then(function (hash) { return __awaiter(void 0, void 0, void 0, function () {\n var encryptionKey, iv, macKey, cipherText, HMAC;\n return __generator(this, function (_a) {\n encryptionKey = hash.slice(0, 16);\n iv = opts.iv || (0, crypto_1.randomBytes)(16);\n macKey = sha256(hash.slice(16));\n cipherText = aes128CtrEncrypt(iv, encryptionKey, msg);\n HMAC = hmacSha256(macKey, cipherText);\n return [2 /*return*/, (0, exports.getPublic)(ephemPrivateKey).then(function (ephemPublicKey) {\n return Buffer.concat([ephemPublicKey, cipherText, HMAC]);\n })];\n });\n }); })];\n });\n}); };\nexports.encrypt = encrypt;\nvar metaLength = 1 + 64 + 16 + 32;\n/**\n * Decrypt message using given private key.\n *\n * @param {Buffer} privateKey - A 32-byte private key of recepient of the message\n * @param {Ecies} encrypted - ECIES serialized structure (result of ECIES encryption)\n * @return {Promise.} - A promise that resolves with the plaintext on successful decryption and rejects on failure\n */\nvar decrypt = function (privateKey, encrypted) { return new Promise(function (resolve, reject) {\n if (encrypted.length < metaLength) {\n reject(new Error(\"Invalid Ciphertext. Data is too small. It should ba at least \".concat(metaLength)));\n }\n else if (encrypted[0] !== 4) {\n reject(new Error(\"Not a valid ciphertext. It should begin with 4 but actually begin with \".concat(encrypted[0])));\n }\n else {\n // deserialize\n var ephemPublicKey = encrypted.slice(0, 65);\n var cipherTextLength = encrypted.length - metaLength;\n var iv_1 = encrypted.slice(65, 65 + 16);\n var cipherAndIv_1 = encrypted.slice(65, 65 + 16 + cipherTextLength);\n var ciphertext_1 = cipherAndIv_1.slice(16);\n var msgMac_1 = encrypted.slice(65 + 16 + cipherTextLength);\n // check HMAC\n resolve((0, exports.derive)(privateKey, ephemPublicKey)\n .then(function (sharedPx) { return (0, exports.kdf)(sharedPx, 32); })\n .then(function (hash) {\n var encryptionKey = hash.slice(0, 16);\n var macKey = sha256(hash.slice(16));\n var currentHMAC = hmacSha256(macKey, cipherAndIv_1);\n if (!equalConstTime(currentHMAC, msgMac_1)) {\n return Promise.reject(new Error('Incorrect MAC'));\n }\n // decrypt message\n var plainText = aes128CtrDecrypt(iv_1, encryptionKey, ciphertext_1);\n return Buffer.from(new Uint8Array(plainText));\n }));\n }\n}); };\nexports.decrypt = decrypt;\n__exportStar(require(\"./model\"), exports);\n//# sourceMappingURL=node.js.map","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n if (sig.S().gte(sig.eddsa.curve.n) || sig.S().isNeg()) {\n return false;\n }\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","export async function wait(time) {\n return new Promise((res) => setTimeout(res, time));\n}\n//# sourceMappingURL=wait.js.map","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict';\n\nvar asn = require('asn1.js');\n\nvar Time = asn.define('Time', function () {\n\tthis.choice({\n\t\tutcTime: this.utctime(),\n\t\tgeneralTime: this.gentime()\n\t});\n});\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n\tthis.seq().obj(\n\t\tthis.key('type').objid(),\n\t\tthis.key('value').any()\n\t);\n});\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('parameters').optional(),\n\t\tthis.key('curve').objid().optional()\n\t);\n});\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n\tthis.setof(AttributeTypeValue);\n});\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n\tthis.seqof(RelativeDistinguishedName);\n});\n\nvar Name = asn.define('Name', function () {\n\tthis.choice({\n\t\trdnSequence: this.use(RDNSequence)\n\t});\n});\n\nvar Validity = asn.define('Validity', function () {\n\tthis.seq().obj(\n\t\tthis.key('notBefore').use(Time),\n\t\tthis.key('notAfter').use(Time)\n\t);\n});\n\nvar Extension = asn.define('Extension', function () {\n\tthis.seq().obj(\n\t\tthis.key('extnID').objid(),\n\t\tthis.key('critical').bool().def(false),\n\t\tthis.key('extnValue').octstr()\n\t);\n});\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('version').explicit(0)['int']().optional(),\n\t\tthis.key('serialNumber')['int'](),\n\t\tthis.key('signature').use(AlgorithmIdentifier),\n\t\tthis.key('issuer').use(Name),\n\t\tthis.key('validity').use(Validity),\n\t\tthis.key('subject').use(Name),\n\t\tthis.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n\t\tthis.key('issuerUniqueID').implicit(1).bitstr().optional(),\n\t\tthis.key('subjectUniqueID').implicit(2).bitstr().optional(),\n\t\tthis.key('extensions').explicit(3).seqof(Extension).optional()\n\t);\n});\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('tbsCertificate').use(TBSCertificate),\n\t\tthis.key('signatureAlgorithm').use(AlgorithmIdentifier),\n\t\tthis.key('signatureValue').bitstr()\n\t);\n});\n\nmodule.exports = X509Certificate;\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","import * as Equal from \"../Equal.js\";\nimport { dual } from \"../Function.js\";\nimport { globalValue } from \"../GlobalValue.js\";\nimport * as Hash from \"../Hash.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"../Inspectable.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport { hasProperty } from \"../Predicate.js\";\nimport { EffectPrototype, effectVariance } from \"./effectable.js\";\nimport * as option from \"./option.js\";\n/** @internal */\nexport const TagTypeId = /*#__PURE__*/Symbol.for(\"effect/Context/Tag\");\n/** @internal */\nexport const ReferenceTypeId = /*#__PURE__*/Symbol.for(\"effect/Context/Reference\");\n/** @internal */\nconst STMSymbolKey = \"effect/STM\";\n/** @internal */\nexport const STMTypeId = /*#__PURE__*/Symbol.for(STMSymbolKey);\n/** @internal */\nexport const TagProto = {\n ...EffectPrototype,\n _op: \"Tag\",\n [STMTypeId]: effectVariance,\n [TagTypeId]: {\n _Service: _ => _,\n _Identifier: _ => _\n },\n toString() {\n return format(this.toJSON());\n },\n toJSON() {\n return {\n _id: \"Tag\",\n key: this.key,\n stack: this.stack\n };\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n of(self) {\n return self;\n },\n context(self) {\n return make(this, self);\n }\n};\nexport const ReferenceProto = {\n ...TagProto,\n [ReferenceTypeId]: ReferenceTypeId\n};\n/** @internal */\nexport const makeGenericTag = key => {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 2;\n const creationError = new Error();\n Error.stackTraceLimit = limit;\n const tag = Object.create(TagProto);\n Object.defineProperty(tag, \"stack\", {\n get() {\n return creationError.stack;\n }\n });\n tag.key = key;\n return tag;\n};\n/** @internal */\nexport const Tag = id => () => {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 2;\n const creationError = new Error();\n Error.stackTraceLimit = limit;\n function TagClass() {}\n Object.setPrototypeOf(TagClass, TagProto);\n TagClass.key = id;\n Object.defineProperty(TagClass, \"stack\", {\n get() {\n return creationError.stack;\n }\n });\n return TagClass;\n};\n/** @internal */\nexport const Reference = () => (id, options) => {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 2;\n const creationError = new Error();\n Error.stackTraceLimit = limit;\n function ReferenceClass() {}\n Object.setPrototypeOf(ReferenceClass, ReferenceProto);\n ReferenceClass.key = id;\n ReferenceClass.defaultValue = options.defaultValue;\n Object.defineProperty(ReferenceClass, \"stack\", {\n get() {\n return creationError.stack;\n }\n });\n return ReferenceClass;\n};\n/** @internal */\nexport const TypeId = /*#__PURE__*/Symbol.for(\"effect/Context\");\n/** @internal */\nexport const ContextProto = {\n [TypeId]: {\n _Services: _ => _\n },\n [Equal.symbol](that) {\n if (isContext(that)) {\n if (this.unsafeMap.size === that.unsafeMap.size) {\n for (const k of this.unsafeMap.keys()) {\n if (!that.unsafeMap.has(k) || !Equal.equals(this.unsafeMap.get(k), that.unsafeMap.get(k))) {\n return false;\n }\n }\n return true;\n }\n }\n return false;\n },\n [Hash.symbol]() {\n return Hash.cached(this, Hash.number(this.unsafeMap.size));\n },\n pipe() {\n return pipeArguments(this, arguments);\n },\n toString() {\n return format(this.toJSON());\n },\n toJSON() {\n return {\n _id: \"Context\",\n services: Array.from(this.unsafeMap).map(toJSON)\n };\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n }\n};\n/** @internal */\nexport const makeContext = unsafeMap => {\n const context = Object.create(ContextProto);\n context.unsafeMap = unsafeMap;\n return context;\n};\nconst serviceNotFoundError = tag => {\n const error = new Error(`Service not found${tag.key ? `: ${String(tag.key)}` : \"\"}`);\n if (tag.stack) {\n const lines = tag.stack.split(\"\\n\");\n if (lines.length > 2) {\n const afterAt = lines[2].match(/at (.*)/);\n if (afterAt) {\n error.message = error.message + ` (defined at ${afterAt[1]})`;\n }\n }\n }\n if (error.stack) {\n const lines = error.stack.split(\"\\n\");\n lines.splice(1, 3);\n error.stack = lines.join(\"\\n\");\n }\n return error;\n};\n/** @internal */\nexport const isContext = u => hasProperty(u, TypeId);\n/** @internal */\nexport const isTag = u => hasProperty(u, TagTypeId);\n/** @internal */\nexport const isReference = u => hasProperty(u, ReferenceTypeId);\nconst _empty = /*#__PURE__*/makeContext(/*#__PURE__*/new Map());\n/** @internal */\nexport const empty = () => _empty;\n/** @internal */\nexport const make = (tag, service) => makeContext(new Map([[tag.key, service]]));\n/** @internal */\nexport const add = /*#__PURE__*/dual(3, (self, tag, service) => {\n const map = new Map(self.unsafeMap);\n map.set(tag.key, service);\n return makeContext(map);\n});\nconst defaultValueCache = /*#__PURE__*/globalValue(\"effect/Context/defaultValueCache\", () => new Map());\nconst getDefaultValue = tag => {\n if (defaultValueCache.has(tag.key)) {\n return defaultValueCache.get(tag.key);\n }\n const value = tag.defaultValue();\n defaultValueCache.set(tag.key, value);\n return value;\n};\n/** @internal */\nexport const unsafeGetReference = (self, tag) => {\n return self.unsafeMap.has(tag.key) ? self.unsafeMap.get(tag.key) : getDefaultValue(tag);\n};\n/** @internal */\nexport const unsafeGet = /*#__PURE__*/dual(2, (self, tag) => {\n if (!self.unsafeMap.has(tag.key)) {\n if (ReferenceTypeId in tag) return getDefaultValue(tag);\n throw serviceNotFoundError(tag);\n }\n return self.unsafeMap.get(tag.key);\n});\n/** @internal */\nexport const get = unsafeGet;\n/** @internal */\nexport const getOrElse = /*#__PURE__*/dual(3, (self, tag, orElse) => {\n if (!self.unsafeMap.has(tag.key)) {\n return isReference(tag) ? getDefaultValue(tag) : orElse();\n }\n return self.unsafeMap.get(tag.key);\n});\n/** @internal */\nexport const getOption = /*#__PURE__*/dual(2, (self, tag) => {\n if (!self.unsafeMap.has(tag.key)) {\n return isReference(tag) ? option.some(getDefaultValue(tag)) : option.none;\n }\n return option.some(self.unsafeMap.get(tag.key));\n});\n/** @internal */\nexport const merge = /*#__PURE__*/dual(2, (self, that) => {\n const map = new Map(self.unsafeMap);\n for (const [tag, s] of that.unsafeMap) {\n map.set(tag, s);\n }\n return makeContext(map);\n});\n/** @internal */\nexport const mergeAll = (...ctxs) => {\n const map = new Map();\n for (let i = 0; i < ctxs.length; i++) {\n ctxs[i].unsafeMap.forEach((value, key) => {\n map.set(key, value);\n });\n }\n return makeContext(map);\n};\n/** @internal */\nexport const pick = (...tags) => self => {\n const tagSet = new Set(tags.map(_ => _.key));\n const newEnv = new Map();\n for (const [tag, s] of self.unsafeMap.entries()) {\n if (tagSet.has(tag)) {\n newEnv.set(tag, s);\n }\n }\n return makeContext(newEnv);\n};\n/** @internal */\nexport const omit = (...tags) => self => {\n const newEnv = new Map(self.unsafeMap);\n for (const tag of tags) {\n newEnv.delete(tag.key);\n }\n return makeContext(newEnv);\n};\n//# sourceMappingURL=context.js.map","'use strict';\n\nvar BN = require('bn.js');\nvar randomBytes = require('randombytes');\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction getr(priv) {\n\tvar len = priv.modulus.byteLength();\n\tvar r;\n\tdo {\n\t\tr = new BN(randomBytes(len));\n\t} while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2));\n\treturn r;\n}\n\nfunction blind(priv) {\n\tvar r = getr(priv);\n\tvar blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed();\n\treturn { blinder: blinder, unblinder: r.invm(priv.modulus) };\n}\n\nfunction crt(msg, priv) {\n\tvar blinds = blind(priv);\n\tvar len = priv.modulus.byteLength();\n\tvar blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus);\n\tvar c1 = blinded.toRed(BN.mont(priv.prime1));\n\tvar c2 = blinded.toRed(BN.mont(priv.prime2));\n\tvar qinv = priv.coefficient;\n\tvar p = priv.prime1;\n\tvar q = priv.prime2;\n\tvar m1 = c1.redPow(priv.exponent1).fromRed();\n\tvar m2 = c2.redPow(priv.exponent2).fromRed();\n\tvar h = m1.isub(m2).imul(qinv).umod(p).imul(q);\n\treturn m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len);\n}\ncrt.getr = getr;\n\nmodule.exports = crt;\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","import { defineFormatter } from './formatter.js';\nimport { formatTransaction } from './transaction.js';\nexport function formatBlock(block, _) {\n const transactions = (block.transactions ?? []).map((transaction) => {\n if (typeof transaction === 'string')\n return transaction;\n return formatTransaction(transaction);\n });\n return {\n ...block,\n baseFeePerGas: block.baseFeePerGas ? BigInt(block.baseFeePerGas) : null,\n blobGasUsed: block.blobGasUsed ? BigInt(block.blobGasUsed) : undefined,\n difficulty: block.difficulty ? BigInt(block.difficulty) : undefined,\n excessBlobGas: block.excessBlobGas\n ? BigInt(block.excessBlobGas)\n : undefined,\n gasLimit: block.gasLimit ? BigInt(block.gasLimit) : undefined,\n gasUsed: block.gasUsed ? BigInt(block.gasUsed) : undefined,\n hash: block.hash ? block.hash : null,\n logsBloom: block.logsBloom ? block.logsBloom : null,\n nonce: block.nonce ? block.nonce : null,\n number: block.number ? BigInt(block.number) : null,\n size: block.size ? BigInt(block.size) : undefined,\n timestamp: block.timestamp ? BigInt(block.timestamp) : undefined,\n transactions,\n totalDifficulty: block.totalDifficulty\n ? BigInt(block.totalDifficulty)\n : null,\n };\n}\nexport const defineBlock = /*#__PURE__*/ defineFormatter('block', formatBlock);\n//# sourceMappingURL=block.js.map","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","import { TransactionNotFoundError, } from '../../errors/transaction.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatTransaction, } from '../../utils/formatters/transaction.js';\n/**\n * Returns information about a [Transaction](https://viem.sh/docs/glossary/terms#transaction) given a hash or block identifier.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransaction\n * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\n * - JSON-RPC Methods: [`eth_getTransactionByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionByHash)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionParameters}\n * @returns The transaction information. {@link GetTransactionReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransaction } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const transaction = await getTransaction(client, {\n * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\nexport async function getTransaction(client, { blockHash, blockNumber, blockTag: blockTag_, hash, index, sender, nonce, }) {\n const blockTag = blockTag_ || 'latest';\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n let transaction = null;\n if (hash) {\n transaction = await client.request({\n method: 'eth_getTransactionByHash',\n params: [hash],\n }, { dedupe: true });\n }\n else if (blockHash) {\n transaction = await client.request({\n method: 'eth_getTransactionByBlockHashAndIndex',\n params: [blockHash, numberToHex(index)],\n }, { dedupe: true });\n }\n else if ((blockNumberHex || blockTag) && typeof index === 'number') {\n transaction = await client.request({\n method: 'eth_getTransactionByBlockNumberAndIndex',\n params: [blockNumberHex || blockTag, numberToHex(index)],\n }, { dedupe: Boolean(blockNumberHex) });\n }\n else if (sender && typeof nonce === 'number') {\n transaction = await client.request({\n method: 'eth_getTransactionBySenderAndNonce',\n params: [sender, numberToHex(nonce)],\n }, { dedupe: true });\n }\n if (!transaction)\n throw new TransactionNotFoundError({\n blockHash,\n blockNumber,\n blockTag,\n hash,\n index,\n });\n const format = client.chain?.formatters?.transaction?.format || formatTransaction;\n return format(transaction, 'getTransaction');\n}\n//# sourceMappingURL=getTransaction.js.map","import { globalValue } from \"./GlobalValue.js\";\nimport * as Predicate from \"./Predicate.js\";\n/**\n * @since 2.0.0\n * @category symbols\n */\nexport const NodeInspectSymbol = /*#__PURE__*/Symbol.for(\"nodejs.util.inspect.custom\");\n/**\n * @since 2.0.0\n */\nexport const toJSON = x => {\n try {\n if (Predicate.hasProperty(x, \"toJSON\") && Predicate.isFunction(x[\"toJSON\"]) && x[\"toJSON\"].length === 0) {\n return x.toJSON();\n } else if (Array.isArray(x)) {\n return x.map(toJSON);\n }\n } catch {\n return {};\n }\n return redact(x);\n};\nconst CIRCULAR = \"[Circular]\";\n/** @internal */\nexport function formatDate(date) {\n try {\n return date.toISOString();\n } catch {\n return \"Invalid Date\";\n }\n}\nfunction safeToString(input) {\n try {\n const s = input.toString();\n return typeof s === \"string\" ? s : String(s);\n } catch {\n return \"[toString threw]\";\n }\n}\n/** @internal */\nexport function formatPropertyKey(name) {\n return Predicate.isString(name) ? JSON.stringify(name) : String(name);\n}\n/** @internal */\nexport function formatUnknown(input, options) {\n const space = options?.space ?? 0;\n const seen = new WeakSet();\n const gap = !space ? \"\" : Predicate.isNumber(space) ? \" \".repeat(space) : space;\n const ind = d => gap.repeat(d);\n const wrap = (v, body) => {\n const ctor = v?.constructor;\n return ctor && ctor !== Object.prototype.constructor && ctor.name ? `${ctor.name}(${body})` : body;\n };\n const ownKeys = o => {\n try {\n return Reflect.ownKeys(o);\n } catch {\n return [\"[ownKeys threw]\"];\n }\n };\n function go(v, d = 0) {\n if (Array.isArray(v)) {\n if (seen.has(v)) return CIRCULAR;\n seen.add(v);\n if (!gap || v.length <= 1) return `[${v.map(x => go(x, d)).join(\",\")}]`;\n const inner = v.map(x => go(x, d + 1)).join(\",\\n\" + ind(d + 1));\n return `[\\n${ind(d + 1)}${inner}\\n${ind(d)}]`;\n }\n if (Predicate.isDate(v)) return formatDate(v);\n if (!options?.ignoreToString && Predicate.hasProperty(v, \"toString\") && Predicate.isFunction(v[\"toString\"]) && v[\"toString\"] !== Object.prototype.toString && v[\"toString\"] !== Array.prototype.toString) {\n const s = safeToString(v);\n if (v instanceof Error && v.cause) {\n return `${s} (cause: ${go(v.cause, d)})`;\n }\n return s;\n }\n if (Predicate.isString(v)) return JSON.stringify(v);\n if (Predicate.isNumber(v) || v == null || Predicate.isBoolean(v) || Predicate.isSymbol(v)) return String(v);\n if (Predicate.isBigInt(v)) return String(v) + \"n\";\n if (v instanceof Set || v instanceof Map) {\n if (seen.has(v)) return CIRCULAR;\n seen.add(v);\n return `${v.constructor.name}(${go(Array.from(v), d)})`;\n }\n if (Predicate.isObject(v)) {\n if (seen.has(v)) return CIRCULAR;\n seen.add(v);\n const keys = ownKeys(v);\n if (!gap || keys.length <= 1) {\n const body = `{${keys.map(k => `${formatPropertyKey(k)}:${go(v[k], d)}`).join(\",\")}}`;\n return wrap(v, body);\n }\n const body = `{\\n${keys.map(k => `${ind(d + 1)}${formatPropertyKey(k)}: ${go(v[k], d + 1)}`).join(\",\\n\")}\\n${ind(d)}}`;\n return wrap(v, body);\n }\n return String(v);\n }\n return go(input, 0);\n}\n/**\n * @since 2.0.0\n */\nexport const format = x => JSON.stringify(x, null, 2);\n/**\n * @since 2.0.0\n */\nexport const BaseProto = {\n toJSON() {\n return toJSON(this);\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n toString() {\n return format(this.toJSON());\n }\n};\n/**\n * @since 2.0.0\n */\nexport class Class {\n /**\n * @since 2.0.0\n */\n [NodeInspectSymbol]() {\n return this.toJSON();\n }\n /**\n * @since 2.0.0\n */\n toString() {\n return format(this.toJSON());\n }\n}\n/**\n * @since 2.0.0\n */\nexport const toStringUnknown = (u, whitespace = 2) => {\n if (typeof u === \"string\") {\n return u;\n }\n try {\n return typeof u === \"object\" ? stringifyCircular(u, whitespace) : String(u);\n } catch {\n return String(u);\n }\n};\n/**\n * @since 2.0.0\n */\nexport const stringifyCircular = (obj, whitespace) => {\n let cache = [];\n const retVal = JSON.stringify(obj, (_key, value) => typeof value === \"object\" && value !== null ? cache.includes(value) ? undefined // circular reference\n : cache.push(value) && (redactableState.fiberRefs !== undefined && isRedactable(value) ? value[symbolRedactable](redactableState.fiberRefs) : value) : value, whitespace);\n cache = undefined;\n return retVal;\n};\n/**\n * @since 3.10.0\n * @category redactable\n */\nexport const symbolRedactable = /*#__PURE__*/Symbol.for(\"effect/Inspectable/Redactable\");\n/**\n * @since 3.10.0\n * @category redactable\n */\nexport const isRedactable = u => typeof u === \"object\" && u !== null && symbolRedactable in u;\nconst redactableState = /*#__PURE__*/globalValue(\"effect/Inspectable/redactableState\", () => ({\n fiberRefs: undefined\n}));\n/**\n * @since 3.10.0\n * @category redactable\n */\nexport const withRedactableContext = (context, f) => {\n const prev = redactableState.fiberRefs;\n redactableState.fiberRefs = context;\n try {\n return f();\n } finally {\n redactableState.fiberRefs = prev;\n }\n};\n/**\n * @since 3.10.0\n * @category redactable\n */\nexport const redact = u => {\n if (isRedactable(u) && redactableState.fiberRefs !== undefined) {\n return u[symbolRedactable](redactableState.fiberRefs);\n }\n return u;\n};\n//# sourceMappingURL=Inspectable.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getContractError, } from '../../utils/errors/getContractError.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { call } from './call.js';\n/**\n * Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions.\n *\n * - Docs: https://viem.sh/docs/contract/simulateContract\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\n *\n * This function does not require gas to execute and _**does not**_ change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract), but also supports contract write functions.\n *\n * Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n *\n * @param client - Client to use\n * @param parameters - {@link SimulateContractParameters}\n * @returns The simulation result and write request. {@link SimulateContractReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { simulateContract } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const result = await simulateContract(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint(uint32) view returns (uint32)']),\n * functionName: 'mint',\n * args: ['69420'],\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function simulateContract(client, parameters) {\n const { abi, address, args, dataSuffix, functionName, ...callRequest } = parameters;\n const account = callRequest.account\n ? parseAccount(callRequest.account)\n : client.account;\n const calldata = encodeFunctionData({ abi, args, functionName });\n try {\n const { data } = await getAction(client, call, 'call')({\n batch: false,\n data: `${calldata}${dataSuffix ? dataSuffix.replace('0x', '') : ''}`,\n to: address,\n ...callRequest,\n account,\n });\n const result = decodeFunctionResult({\n abi,\n args,\n functionName,\n data: data || '0x',\n });\n const minimizedAbi = abi.filter((abiItem) => 'name' in abiItem && abiItem.name === parameters.functionName);\n return {\n result,\n request: {\n abi: minimizedAbi,\n address,\n args,\n dataSuffix,\n functionName,\n ...callRequest,\n account,\n },\n };\n }\n catch (error) {\n throw getContractError(error, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/simulateContract',\n functionName,\n sender: account?.address,\n });\n }\n}\n//# sourceMappingURL=simulateContract.js.map","import { formatAbiParameters, } from './formatAbiParameters.js';\n/**\n * Formats ABI item (e.g. error, event, function) into human-readable ABI item\n *\n * @param abiItem - ABI item\n * @returns Human-readable ABI item\n */\nexport function formatAbiItem(abiItem) {\n if (abiItem.type === 'function')\n return `function ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})${abiItem.stateMutability && abiItem.stateMutability !== 'nonpayable'\n ? ` ${abiItem.stateMutability}`\n : ''}${abiItem.outputs?.length\n ? ` returns (${formatAbiParameters(abiItem.outputs)})`\n : ''}`;\n if (abiItem.type === 'event')\n return `event ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})`;\n if (abiItem.type === 'error')\n return `error ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})`;\n if (abiItem.type === 'constructor')\n return `constructor(${formatAbiParameters(abiItem.inputs)})${abiItem.stateMutability === 'payable' ? ' payable' : ''}`;\n if (abiItem.type === 'fallback')\n return `fallback() external${abiItem.stateMutability === 'payable' ? ' payable' : ''}`;\n return 'receive() external payable';\n}\n//# sourceMappingURL=formatAbiItem.js.map","'use strict';\n\nvar inherits = require('inherits');\nvar SHA512 = require('./sha512');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar W = new Array(160);\n\nfunction Sha384() {\n\tthis.init();\n\tthis._w = W;\n\n\tHash.call(this, 128, 112);\n}\n\ninherits(Sha384, SHA512);\n\nSha384.prototype.init = function () {\n\tthis._ah = 0xcbbb9d5d;\n\tthis._bh = 0x629a292a;\n\tthis._ch = 0x9159015a;\n\tthis._dh = 0x152fecd8;\n\tthis._eh = 0x67332667;\n\tthis._fh = 0x8eb44a87;\n\tthis._gh = 0xdb0c2e0d;\n\tthis._hh = 0x47b5481d;\n\n\tthis._al = 0xc1059ed8;\n\tthis._bl = 0x367cd507;\n\tthis._cl = 0x3070dd17;\n\tthis._dl = 0xf70e5939;\n\tthis._el = 0xffc00b31;\n\tthis._fl = 0x68581511;\n\tthis._gl = 0x64f98fa7;\n\tthis._hl = 0xbefa4fa4;\n\n\treturn this;\n};\n\nSha384.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(48);\n\n\tfunction writeInt64BE(h, l, offset) {\n\t\tH.writeInt32BE(h, offset);\n\t\tH.writeInt32BE(l, offset + 4);\n\t}\n\n\twriteInt64BE(this._ah, this._al, 0);\n\twriteInt64BE(this._bh, this._bl, 8);\n\twriteInt64BE(this._ch, this._cl, 16);\n\twriteInt64BE(this._dh, this._dl, 24);\n\twriteInt64BE(this._eh, this._el, 32);\n\twriteInt64BE(this._fh, this._fl, 40);\n\n\treturn H;\n};\n\nmodule.exports = Sha384;\n","\"use strict\";var copy=function copy(I,i){return function(O,o){var oi=o*2;var ii=i*2;O[oi]=I[ii];O[oi+1]=I[ii+1]}};module.exports=copy;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports[\"default\"]=exports.SHAKE=exports.SHA3Hash=exports.SHA3=exports.Keccak=void 0;var _buffer=require(\"buffer\");var _sponge=_interopRequireDefault(require(\"./sponge\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{\"default\":obj}}var createHash=function createHash(_ref){var allowedSizes=_ref.allowedSizes,defaultSize=_ref.defaultSize,padding=_ref.padding;return function Hash(){var _this=this;var size=arguments.length>0&&arguments[0]!==undefined?arguments[0]:defaultSize;if(!this||this.constructor!==Hash){return new Hash(size)}if(allowedSizes&&!allowedSizes.includes(size)){throw new Error(\"Unsupported hash length\")}var sponge=new _sponge[\"default\"]({capacity:size});this.update=function(input){var encoding=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"utf8\";if(_buffer.Buffer.isBuffer(input)){sponge.absorb(input);return _this}if(typeof input===\"string\"){return _this.update(_buffer.Buffer.from(input,encoding))}throw new TypeError(\"Not a string or buffer\")};this.digest=function(){var formatOrOptions=arguments.length>0&&arguments[0]!==undefined?arguments[0]:\"binary\";var options=typeof formatOrOptions===\"string\"?{format:formatOrOptions}:formatOrOptions;var buffer=sponge.squeeze({buffer:options.buffer,padding:options.padding||padding});if(options.format&&options.format!==\"binary\"){return buffer.toString(options.format)}return buffer};this.reset=function(){sponge.reset();return _this};return this}};var Keccak=createHash({allowedSizes:[224,256,384,512],defaultSize:512,padding:1});exports.Keccak=Keccak;var SHA3=createHash({allowedSizes:[224,256,384,512],defaultSize:512,padding:6});exports.SHA3=SHA3;var SHAKE=createHash({allowedSizes:[128,256],defaultSize:256,padding:31});exports.SHAKE=SHAKE;var SHA3Hash=Keccak;exports.SHA3Hash=SHA3Hash;SHA3.SHA3Hash=SHA3Hash;var _default=SHA3;exports[\"default\"]=_default;","import { BlockNotFoundError, } from '../../errors/block.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatBlock, } from '../../utils/formatters/block.js';\n/**\n * Returns information about a block at a block number, hash, or tag.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlock\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\n * - JSON-RPC Methods:\n * - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) for `blockNumber` & `blockTag`.\n * - Calls [`eth_getBlockByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash) for `blockHash`.\n *\n * @param client - Client to use\n * @param parameters - {@link GetBlockParameters}\n * @returns Information about the block. {@link GetBlockReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlock } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const block = await getBlock(client)\n */\nexport async function getBlock(client, { blockHash, blockNumber, blockTag = client.experimental_blockTag ?? 'latest', includeTransactions: includeTransactions_, } = {}) {\n const includeTransactions = includeTransactions_ ?? false;\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n let block = null;\n if (blockHash) {\n block = await client.request({\n method: 'eth_getBlockByHash',\n params: [blockHash, includeTransactions],\n }, { dedupe: true });\n }\n else {\n block = await client.request({\n method: 'eth_getBlockByNumber',\n params: [blockNumberHex || blockTag, includeTransactions],\n }, { dedupe: Boolean(blockNumberHex) });\n }\n if (!block)\n throw new BlockNotFoundError({ blockHash, blockNumber });\n const format = client.chain?.formatters?.block?.format || formatBlock;\n return format(block, 'getBlock');\n}\n//# sourceMappingURL=getBlock.js.map","import { Eip1559FeesNotSupportedError, } from '../../errors/fee.js';\nimport { hexToBigInt, } from '../../utils/encoding/fromHex.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { getBlock } from './getBlock.js';\nimport { getGasPrice } from './getGasPrice.js';\n/**\n * Returns an estimate for the max priority fee per gas (in wei) for a\n * transaction to be likely included in the next block.\n * Defaults to [`chain.fees.defaultPriorityFee`](/docs/clients/chains#fees-defaultpriorityfee) if set.\n *\n * - Docs: https://viem.sh/docs/actions/public/estimateMaxPriorityFeePerGas\n *\n * @param client - Client to use\n * @returns An estimate (in wei) for the max priority fee per gas. {@link EstimateMaxPriorityFeePerGasReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { estimateMaxPriorityFeePerGas } from 'viem/actions'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const maxPriorityFeePerGas = await estimateMaxPriorityFeePerGas(client)\n * // 10000000n\n */\nexport async function estimateMaxPriorityFeePerGas(client, args) {\n return internal_estimateMaxPriorityFeePerGas(client, args);\n}\nexport async function internal_estimateMaxPriorityFeePerGas(client, args) {\n const { block: block_, chain = client.chain, request } = args || {};\n try {\n const maxPriorityFeePerGas = chain?.fees?.maxPriorityFeePerGas ?? chain?.fees?.defaultPriorityFee;\n if (typeof maxPriorityFeePerGas === 'function') {\n const block = block_ || (await getAction(client, getBlock, 'getBlock')({}));\n const maxPriorityFeePerGas_ = await maxPriorityFeePerGas({\n block,\n client,\n request,\n });\n if (maxPriorityFeePerGas_ === null)\n throw new Error();\n return maxPriorityFeePerGas_;\n }\n if (typeof maxPriorityFeePerGas !== 'undefined')\n return maxPriorityFeePerGas;\n const maxPriorityFeePerGasHex = await client.request({\n method: 'eth_maxPriorityFeePerGas',\n });\n return hexToBigInt(maxPriorityFeePerGasHex);\n }\n catch {\n // If the RPC Provider does not support `eth_maxPriorityFeePerGas`\n // fall back to calculating it manually via `gasPrice - baseFeePerGas`.\n // See: https://github.com/ethereum/pm/issues/328#:~:text=eth_maxPriorityFeePerGas%20after%20London%20will%20effectively%20return%20eth_gasPrice%20%2D%20baseFee\n const [block, gasPrice] = await Promise.all([\n block_\n ? Promise.resolve(block_)\n : getAction(client, getBlock, 'getBlock')({}),\n getAction(client, getGasPrice, 'getGasPrice')({}),\n ]);\n if (typeof block.baseFeePerGas !== 'bigint')\n throw new Eip1559FeesNotSupportedError();\n const maxPriorityFeePerGas = gasPrice - block.baseFeePerGas;\n if (maxPriorityFeePerGas < 0n)\n return 0n;\n return maxPriorityFeePerGas;\n }\n}\n//# sourceMappingURL=estimateMaxPriorityFeePerGas.js.map","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","export const etherUnits = {\n gwei: 9,\n wei: 18,\n};\nexport const gweiUnits = {\n ether: -9,\n wei: 9,\n};\nexport const weiUnits = {\n ether: -18,\n gwei: -9,\n};\n//# sourceMappingURL=unit.js.map","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","'use strict';\n\n// eslint-disable-next-line no-multi-assign\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes');\n\n// eslint-disable-next-line no-multi-assign\nexports.createHash = exports.Hash = require('create-hash');\n\n// eslint-disable-next-line no-multi-assign\nexports.createHmac = exports.Hmac = require('create-hmac');\n\nvar algos = require('browserify-sign/algos');\nvar algoKeys = Object.keys(algos);\nvar hashes = [\n\t'sha1',\n\t'sha224',\n\t'sha256',\n\t'sha384',\n\t'sha512',\n\t'md5',\n\t'rmd160'\n].concat(algoKeys);\n\nexports.getHashes = function () {\n\treturn hashes;\n};\n\nvar p = require('pbkdf2');\nexports.pbkdf2 = p.pbkdf2;\nexports.pbkdf2Sync = p.pbkdf2Sync;\n\nvar aes = require('browserify-cipher');\n\nexports.Cipher = aes.Cipher;\nexports.createCipher = aes.createCipher;\nexports.Cipheriv = aes.Cipheriv;\nexports.createCipheriv = aes.createCipheriv;\nexports.Decipher = aes.Decipher;\nexports.createDecipher = aes.createDecipher;\nexports.Decipheriv = aes.Decipheriv;\nexports.createDecipheriv = aes.createDecipheriv;\nexports.getCiphers = aes.getCiphers;\nexports.listCiphers = aes.listCiphers;\n\nvar dh = require('diffie-hellman');\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup;\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup;\nexports.getDiffieHellman = dh.getDiffieHellman;\nexports.createDiffieHellman = dh.createDiffieHellman;\nexports.DiffieHellman = dh.DiffieHellman;\n\nvar sign = require('browserify-sign');\n\nexports.createSign = sign.createSign;\nexports.Sign = sign.Sign;\nexports.createVerify = sign.createVerify;\nexports.Verify = sign.Verify;\n\nexports.createECDH = require('create-ecdh');\n\nvar publicEncrypt = require('public-encrypt');\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt;\nexports.privateEncrypt = publicEncrypt.privateEncrypt;\nexports.publicDecrypt = publicEncrypt.publicDecrypt;\nexports.privateDecrypt = publicEncrypt.privateDecrypt;\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// [\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error('sorry, ' + name + ' is not implemented yet\\nwe accept pull requests\\nhttps://github.com/browserify/crypto-browserify');\n// };\n// });\n\nvar rf = require('randomfill');\n\nexports.randomFill = rf.randomFill;\nexports.randomFillSync = rf.randomFillSync;\n\nexports.createCredentials = function () {\n\tthrow new Error('sorry, createCredentials is not implemented yet\\nwe accept pull requests\\nhttps://github.com/browserify/crypto-browserify');\n};\n\nexports.constants = {\n\tDH_CHECK_P_NOT_SAFE_PRIME: 2,\n\tDH_CHECK_P_NOT_PRIME: 1,\n\tDH_UNABLE_TO_CHECK_GENERATOR: 4,\n\tDH_NOT_SUITABLE_GENERATOR: 8,\n\tNPN_ENABLED: 1,\n\tALPN_ENABLED: 1,\n\tRSA_PKCS1_PADDING: 1,\n\tRSA_SSLV23_PADDING: 2,\n\tRSA_NO_PADDING: 3,\n\tRSA_PKCS1_OAEP_PADDING: 4,\n\tRSA_X931_PADDING: 5,\n\tRSA_PKCS1_PSS_PADDING: 6,\n\tPOINT_CONVERSION_COMPRESSED: 2,\n\tPOINT_CONVERSION_UNCOMPRESSED: 4,\n\tPOINT_CONVERSION_HYBRID: 6\n};\n","import { BaseError } from './base.js';\nexport class AccountNotFoundError extends BaseError {\n constructor({ docsPath } = {}) {\n super([\n 'Could not find an Account to execute with this Action.',\n 'Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the Client.',\n ].join('\\n'), {\n docsPath,\n docsSlug: 'account',\n name: 'AccountNotFoundError',\n });\n }\n}\nexport class AccountTypeNotSupportedError extends BaseError {\n constructor({ docsPath, metaMessages, type, }) {\n super(`Account type \"${type}\" is not supported.`, {\n docsPath,\n metaMessages,\n name: 'AccountTypeNotSupportedError',\n });\n }\n}\n//# sourceMappingURL=account.js.map","export const getContractAddress = (address) => address;\nexport const getUrl = (url) => url;\n//# sourceMappingURL=utils.js.map","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","var inherits = require('inherits');\nvar Reporter = require('../base').Reporter;\nvar Buffer = require('buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n var res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n}\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n var res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n}\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n}\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!(item instanceof EncoderBuffer))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = new Buffer(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","import * as Hex from '../Hex.js';\n/** @internal */\nexport function assertSize(hex, size_) {\n if (Hex.size(hex) > size_)\n throw new Hex.SizeOverflowError({\n givenSize: Hex.size(hex),\n maxSize: size_,\n });\n}\n/** @internal */\nexport function assertStartOffset(value, start) {\n if (typeof start === 'number' && start > 0 && start > Hex.size(value) - 1)\n throw new Hex.SliceOffsetOutOfBoundsError({\n offset: start,\n position: 'start',\n size: Hex.size(value),\n });\n}\n/** @internal */\nexport function assertEndOffset(value, start, end) {\n if (typeof start === 'number' &&\n typeof end === 'number' &&\n Hex.size(value) !== end - start) {\n throw new Hex.SliceOffsetOutOfBoundsError({\n offset: end,\n position: 'end',\n size: Hex.size(value),\n });\n }\n}\n/** @internal */\nexport function pad(hex_, options = {}) {\n const { dir, size = 32 } = options;\n if (size === 0)\n return hex_;\n const hex = hex_.replace('0x', '');\n if (hex.length > size * 2)\n throw new Hex.SizeExceedsPaddingSizeError({\n size: Math.ceil(hex.length / 2),\n targetSize: size,\n type: 'Hex',\n });\n return `0x${hex[dir === 'right' ? 'padEnd' : 'padStart'](size * 2, '0')}`;\n}\n/** @internal */\nexport function trim(value, options = {}) {\n const { dir = 'left' } = options;\n let data = value.replace('0x', '');\n let sliceLength = 0;\n for (let i = 0; i < data.length - 1; i++) {\n if (data[dir === 'left' ? i : data.length - i - 1].toString() === '0')\n sliceLength++;\n else\n break;\n }\n data =\n dir === 'left'\n ? data.slice(sliceLength)\n : data.slice(0, data.length - sliceLength);\n if (data === '0')\n return '0x';\n if (dir === 'right' && data.length % 2 === 1)\n return `0x${data}0`;\n return `0x${data}`;\n}\n//# sourceMappingURL=hex.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","import * as internal from \"./internal/clock.js\";\nimport * as defaultServices from \"./internal/defaultServices.js\";\n/**\n * @since 2.0.0\n * @category symbols\n */\nexport const ClockTypeId = internal.ClockTypeId;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const make = internal.make;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const sleep = defaultServices.sleep;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const currentTimeMillis = defaultServices.currentTimeMillis;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const currentTimeNanos = defaultServices.currentTimeNanos;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const clockWith = defaultServices.clockWith;\n/**\n * @since 2.0.0\n * @category context\n */\nexport const Clock = internal.clockTag;\n//# sourceMappingURL=Clock.js.map","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","import { slice } from '../data/slice.js';\nimport { toSignatureHash, } from './toSignatureHash.js';\n/**\n * Returns the function selector for a given function definition.\n *\n * @example\n * const selector = toFunctionSelector('function ownerOf(uint256 tokenId)')\n * // 0x6352211e\n */\nexport const toFunctionSelector = (fn) => slice(toSignatureHash(fn), 0, 4);\n//# sourceMappingURL=toFunctionSelector.js.map","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports[\"default\"]=void 0;var _buffer=require(\"buffer\");var _permute=_interopRequireDefault(require(\"./permute\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{\"default\":obj}}var xorWords=function xorWords(I,O){for(var i=0;i>>8;O[o+2]=I[i+1]>>>16;O[o+3]=I[i+1]>>>24;O[o+4]=I[i];O[o+5]=I[i]>>>8;O[o+6]=I[i]>>>16;O[o+7]=I[i]>>>24}return O};var Sponge=function Sponge(_ref){var _this=this;var capacity=_ref.capacity,padding=_ref.padding;var keccak=(0,_permute[\"default\"])();var stateSize=200;var blockSize=capacity/8;var queueSize=stateSize-capacity/4;var queueOffset=0;var state=new Uint32Array(stateSize/4);var queue=_buffer.Buffer.allocUnsafe(queueSize);this.absorb=function(buffer){for(var i=0;i=queueSize){xorWords(queue,state);keccak(state);queueOffset=0}}return _this};this.squeeze=function(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var output={buffer:options.buffer||_buffer.Buffer.allocUnsafe(blockSize),padding:options.padding||padding,queue:_buffer.Buffer.allocUnsafe(queue.length),state:new Uint32Array(state.length)};queue.copy(output.queue);for(var i=0;i hasProperty(u, TypeId);\nconst Proto = {\n [TypeId]: TypeId,\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const make = get => {\n const self = Object.create(Proto);\n self.get = get;\n return self;\n};\n/**\n * @since 2.0.0\n * @category combinators\n */\nexport const map = /*#__PURE__*/dual(2, (self, f) => make(core.map(self.get, f)));\n/**\n * @since 2.0.0\n * @category combinators\n */\nexport const mapEffect = /*#__PURE__*/dual(2, (self, f) => make(core.flatMap(self.get, f)));\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const unwrap = effect => make(core.flatMap(effect, s => s.get));\n//# sourceMappingURL=Readable.js.map","/**\n * @since 2.0.0\n */\nimport * as RA from \"./Array.js\";\nimport * as Equal from \"./Equal.js\";\nimport * as Equivalence from \"./Equivalence.js\";\nimport { dual, identity, pipe } from \"./Function.js\";\nimport * as Hash from \"./Hash.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"./Inspectable.js\";\nimport * as O from \"./Option.js\";\nimport * as Order from \"./Order.js\";\nimport { pipeArguments } from \"./Pipeable.js\";\nimport { hasProperty } from \"./Predicate.js\";\nconst TypeId = /*#__PURE__*/Symbol.for(\"effect/Chunk\");\nfunction copy(src, srcPos, dest, destPos, len) {\n for (let i = srcPos; i < Math.min(src.length, srcPos + len); i++) {\n dest[destPos + i - srcPos] = src[i];\n }\n return dest;\n}\nconst emptyArray = [];\n/**\n * Compares the two chunks of equal length using the specified function\n *\n * @category equivalence\n * @since 2.0.0\n */\nexport const getEquivalence = isEquivalent => Equivalence.make((self, that) => self.length === that.length && toReadonlyArray(self).every((value, i) => isEquivalent(value, unsafeGet(that, i))));\nconst _equivalence = /*#__PURE__*/getEquivalence(Equal.equals);\nconst ChunkProto = {\n [TypeId]: {\n _A: _ => _\n },\n toString() {\n return format(this.toJSON());\n },\n toJSON() {\n return {\n _id: \"Chunk\",\n values: toReadonlyArray(this).map(toJSON)\n };\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n [Equal.symbol](that) {\n return isChunk(that) && _equivalence(this, that);\n },\n [Hash.symbol]() {\n return Hash.cached(this, Hash.array(toReadonlyArray(this)));\n },\n [Symbol.iterator]() {\n switch (this.backing._tag) {\n case \"IArray\":\n {\n return this.backing.array[Symbol.iterator]();\n }\n case \"IEmpty\":\n {\n return emptyArray[Symbol.iterator]();\n }\n default:\n {\n return toReadonlyArray(this)[Symbol.iterator]();\n }\n }\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\nconst makeChunk = backing => {\n const chunk = Object.create(ChunkProto);\n chunk.backing = backing;\n switch (backing._tag) {\n case \"IEmpty\":\n {\n chunk.length = 0;\n chunk.depth = 0;\n chunk.left = chunk;\n chunk.right = chunk;\n break;\n }\n case \"IConcat\":\n {\n chunk.length = backing.left.length + backing.right.length;\n chunk.depth = 1 + Math.max(backing.left.depth, backing.right.depth);\n chunk.left = backing.left;\n chunk.right = backing.right;\n break;\n }\n case \"IArray\":\n {\n chunk.length = backing.array.length;\n chunk.depth = 0;\n chunk.left = _empty;\n chunk.right = _empty;\n break;\n }\n case \"ISingleton\":\n {\n chunk.length = 1;\n chunk.depth = 0;\n chunk.left = _empty;\n chunk.right = _empty;\n break;\n }\n case \"ISlice\":\n {\n chunk.length = backing.length;\n chunk.depth = backing.chunk.depth + 1;\n chunk.left = _empty;\n chunk.right = _empty;\n break;\n }\n }\n return chunk;\n};\n/**\n * Checks if `u` is a `Chunk`\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const isChunk = u => hasProperty(u, TypeId);\nconst _empty = /*#__PURE__*/makeChunk({\n _tag: \"IEmpty\"\n});\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport const empty = () => _empty;\n/**\n * Builds a `NonEmptyChunk` from an non-empty collection of elements.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const make = (...as) => unsafeFromNonEmptyArray(as);\n/**\n * Builds a `NonEmptyChunk` from a single element.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const of = a => makeChunk({\n _tag: \"ISingleton\",\n a\n});\n/**\n * Creates a new `Chunk` from an iterable collection of values.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const fromIterable = self => isChunk(self) ? self : unsafeFromArray(RA.fromIterable(self));\nconst copyToArray = (self, array, initial) => {\n switch (self.backing._tag) {\n case \"IArray\":\n {\n copy(self.backing.array, 0, array, initial, self.length);\n break;\n }\n case \"IConcat\":\n {\n copyToArray(self.left, array, initial);\n copyToArray(self.right, array, initial + self.left.length);\n break;\n }\n case \"ISingleton\":\n {\n array[initial] = self.backing.a;\n break;\n }\n case \"ISlice\":\n {\n let i = 0;\n let j = initial;\n while (i < self.length) {\n array[j] = unsafeGet(self, i);\n i += 1;\n j += 1;\n }\n break;\n }\n }\n};\nconst toArray_ = self => toReadonlyArray(self).slice();\n/**\n * Converts a `Chunk` into an `Array`. If the provided `Chunk` is non-empty\n * (`NonEmptyChunk`), the function will return a `NonEmptyArray`, ensuring the\n * non-empty property is preserved.\n *\n * @category conversions\n * @since 2.0.0\n */\nexport const toArray = toArray_;\nconst toReadonlyArray_ = self => {\n switch (self.backing._tag) {\n case \"IEmpty\":\n {\n return emptyArray;\n }\n case \"IArray\":\n {\n return self.backing.array;\n }\n default:\n {\n const arr = new Array(self.length);\n copyToArray(self, arr, 0);\n self.backing = {\n _tag: \"IArray\",\n array: arr\n };\n self.left = _empty;\n self.right = _empty;\n self.depth = 0;\n return arr;\n }\n }\n};\n/**\n * Converts a `Chunk` into a `ReadonlyArray`. If the provided `Chunk` is\n * non-empty (`NonEmptyChunk`), the function will return a\n * `NonEmptyReadonlyArray`, ensuring the non-empty property is preserved.\n *\n * @category conversions\n * @since 2.0.0\n */\nexport const toReadonlyArray = toReadonlyArray_;\nconst reverseChunk = self => {\n switch (self.backing._tag) {\n case \"IEmpty\":\n case \"ISingleton\":\n return self;\n case \"IArray\":\n {\n return makeChunk({\n _tag: \"IArray\",\n array: RA.reverse(self.backing.array)\n });\n }\n case \"IConcat\":\n {\n return makeChunk({\n _tag: \"IConcat\",\n left: reverse(self.backing.right),\n right: reverse(self.backing.left)\n });\n }\n case \"ISlice\":\n return unsafeFromArray(RA.reverse(toReadonlyArray(self)));\n }\n};\n/**\n * Reverses the order of elements in a `Chunk`.\n * Importantly, if the input chunk is a `NonEmptyChunk`, the reversed chunk will also be a `NonEmptyChunk`.\n *\n * **Example**\n *\n * ```ts\n * import { Chunk } from \"effect\"\n *\n * const chunk = Chunk.make(1, 2, 3)\n * const result = Chunk.reverse(chunk)\n *\n * console.log(result)\n * // { _id: 'Chunk', values: [ 3, 2, 1 ] }\n * ```\n *\n * @since 2.0.0\n * @category elements\n */\nexport const reverse = reverseChunk;\n/**\n * This function provides a safe way to read a value at a particular index from a `Chunk`.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const get = /*#__PURE__*/dual(2, (self, index) => index < 0 || index >= self.length ? O.none() : O.some(unsafeGet(self, index)));\n/**\n * Wraps an array into a chunk without copying, unsafe on mutable arrays\n *\n * @since 2.0.0\n * @category unsafe\n */\nexport const unsafeFromArray = self => self.length === 0 ? empty() : self.length === 1 ? of(self[0]) : makeChunk({\n _tag: \"IArray\",\n array: self\n});\n/**\n * Wraps an array into a chunk without copying, unsafe on mutable arrays\n *\n * @since 2.0.0\n * @category unsafe\n */\nexport const unsafeFromNonEmptyArray = self => unsafeFromArray(self);\n/**\n * Gets an element unsafely, will throw on out of bounds\n *\n * @since 2.0.0\n * @category unsafe\n */\nexport const unsafeGet = /*#__PURE__*/dual(2, (self, index) => {\n switch (self.backing._tag) {\n case \"IEmpty\":\n {\n throw new Error(`Index out of bounds`);\n }\n case \"ISingleton\":\n {\n if (index !== 0) {\n throw new Error(`Index out of bounds`);\n }\n return self.backing.a;\n }\n case \"IArray\":\n {\n if (index >= self.length || index < 0) {\n throw new Error(`Index out of bounds`);\n }\n return self.backing.array[index];\n }\n case \"IConcat\":\n {\n return index < self.left.length ? unsafeGet(self.left, index) : unsafeGet(self.right, index - self.left.length);\n }\n case \"ISlice\":\n {\n return unsafeGet(self.backing.chunk, index + self.backing.offset);\n }\n }\n});\n/**\n * Appends the specified element to the end of the `Chunk`.\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const append = /*#__PURE__*/dual(2, (self, a) => appendAll(self, of(a)));\n/**\n * Prepend an element to the front of a `Chunk`, creating a new `NonEmptyChunk`.\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const prepend = /*#__PURE__*/dual(2, (self, elem) => appendAll(of(elem), self));\n/**\n * Takes the first up to `n` elements from the chunk\n *\n * @since 2.0.0\n */\nexport const take = /*#__PURE__*/dual(2, (self, n) => {\n if (n <= 0) {\n return _empty;\n } else if (n >= self.length) {\n return self;\n } else {\n switch (self.backing._tag) {\n case \"ISlice\":\n {\n return makeChunk({\n _tag: \"ISlice\",\n chunk: self.backing.chunk,\n length: n,\n offset: self.backing.offset\n });\n }\n case \"IConcat\":\n {\n if (n > self.left.length) {\n return makeChunk({\n _tag: \"IConcat\",\n left: self.left,\n right: take(self.right, n - self.left.length)\n });\n }\n return take(self.left, n);\n }\n default:\n {\n return makeChunk({\n _tag: \"ISlice\",\n chunk: self,\n offset: 0,\n length: n\n });\n }\n }\n }\n});\n/**\n * Drops the first up to `n` elements from the chunk\n *\n * @since 2.0.0\n */\nexport const drop = /*#__PURE__*/dual(2, (self, n) => {\n if (n <= 0) {\n return self;\n } else if (n >= self.length) {\n return _empty;\n } else {\n switch (self.backing._tag) {\n case \"ISlice\":\n {\n return makeChunk({\n _tag: \"ISlice\",\n chunk: self.backing.chunk,\n offset: self.backing.offset + n,\n length: self.backing.length - n\n });\n }\n case \"IConcat\":\n {\n if (n > self.left.length) {\n return drop(self.right, n - self.left.length);\n }\n return makeChunk({\n _tag: \"IConcat\",\n left: drop(self.left, n),\n right: self.right\n });\n }\n default:\n {\n return makeChunk({\n _tag: \"ISlice\",\n chunk: self,\n offset: n,\n length: self.length - n\n });\n }\n }\n }\n});\n/**\n * Drops the last `n` elements.\n *\n * @since 2.0.0\n */\nexport const dropRight = /*#__PURE__*/dual(2, (self, n) => take(self, Math.max(0, self.length - n)));\n/**\n * Drops all elements so long as the predicate returns true.\n *\n * @since 2.0.0\n */\nexport const dropWhile = /*#__PURE__*/dual(2, (self, predicate) => {\n const arr = toReadonlyArray(self);\n const len = arr.length;\n let i = 0;\n while (i < len && predicate(arr[i])) {\n i++;\n }\n return drop(self, i);\n});\n/**\n * Prepends the specified prefix chunk to the beginning of the specified chunk.\n * If either chunk is non-empty, the result is also a non-empty chunk.\n *\n * **Example**\n *\n * ```ts\n * import { Chunk } from \"effect\"\n *\n * const result = Chunk.make(1, 2).pipe(Chunk.prependAll(Chunk.make(\"a\", \"b\")), Chunk.toArray)\n *\n * console.log(result)\n * // [ \"a\", \"b\", 1, 2 ]\n * ```\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const prependAll = /*#__PURE__*/dual(2, (self, that) => appendAll(that, self));\n/**\n * Concatenates two chunks, combining their elements.\n * If either chunk is non-empty, the result is also a non-empty chunk.\n *\n * **Example**\n *\n * ```ts\n * import { Chunk } from \"effect\"\n *\n * const result = Chunk.make(1, 2).pipe(Chunk.appendAll(Chunk.make(\"a\", \"b\")), Chunk.toArray)\n *\n * console.log(result)\n * // [ 1, 2, \"a\", \"b\" ]\n * ```\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const appendAll = /*#__PURE__*/dual(2, (self, that) => {\n if (self.backing._tag === \"IEmpty\") {\n return that;\n }\n if (that.backing._tag === \"IEmpty\") {\n return self;\n }\n const diff = that.depth - self.depth;\n if (Math.abs(diff) <= 1) {\n return makeChunk({\n _tag: \"IConcat\",\n left: self,\n right: that\n });\n } else if (diff < -1) {\n if (self.left.depth >= self.right.depth) {\n const nr = appendAll(self.right, that);\n return makeChunk({\n _tag: \"IConcat\",\n left: self.left,\n right: nr\n });\n } else {\n const nrr = appendAll(self.right.right, that);\n if (nrr.depth === self.depth - 3) {\n const nr = makeChunk({\n _tag: \"IConcat\",\n left: self.right.left,\n right: nrr\n });\n return makeChunk({\n _tag: \"IConcat\",\n left: self.left,\n right: nr\n });\n } else {\n const nl = makeChunk({\n _tag: \"IConcat\",\n left: self.left,\n right: self.right.left\n });\n return makeChunk({\n _tag: \"IConcat\",\n left: nl,\n right: nrr\n });\n }\n }\n } else {\n if (that.right.depth >= that.left.depth) {\n const nl = appendAll(self, that.left);\n return makeChunk({\n _tag: \"IConcat\",\n left: nl,\n right: that.right\n });\n } else {\n const nll = appendAll(self, that.left.left);\n if (nll.depth === that.depth - 3) {\n const nl = makeChunk({\n _tag: \"IConcat\",\n left: nll,\n right: that.left.right\n });\n return makeChunk({\n _tag: \"IConcat\",\n left: nl,\n right: that.right\n });\n } else {\n const nr = makeChunk({\n _tag: \"IConcat\",\n left: that.left.right,\n right: that.right\n });\n return makeChunk({\n _tag: \"IConcat\",\n left: nll,\n right: nr\n });\n }\n }\n }\n});\n/**\n * Returns a filtered and mapped subset of the elements.\n *\n * @since 2.0.0\n * @category filtering\n */\nexport const filterMap = /*#__PURE__*/dual(2, (self, f) => unsafeFromArray(RA.filterMap(self, f)));\n/**\n * Returns a filtered and mapped subset of the elements.\n *\n * @since 2.0.0\n * @category filtering\n */\nexport const filter = /*#__PURE__*/dual(2, (self, predicate) => unsafeFromArray(RA.filter(self, predicate)));\n/**\n * Transforms all elements of the chunk for as long as the specified function returns some value\n *\n * @since 2.0.0\n * @category filtering\n */\nexport const filterMapWhile = /*#__PURE__*/dual(2, (self, f) => unsafeFromArray(RA.filterMapWhile(self, f)));\n/**\n * Filter out optional values\n *\n * @since 2.0.0\n * @category filtering\n */\nexport const compact = self => filterMap(self, identity);\n/**\n * Applies a function to each element in a chunk and returns a new chunk containing the concatenated mapped elements.\n *\n * @since 2.0.0\n * @category sequencing\n */\nexport const flatMap = /*#__PURE__*/dual(2, (self, f) => {\n if (self.backing._tag === \"ISingleton\") {\n return f(self.backing.a, 0);\n }\n let out = _empty;\n let i = 0;\n for (const k of self) {\n out = appendAll(out, f(k, i++));\n }\n return out;\n});\n/**\n * Iterates over each element of a `Chunk` and applies a function to it.\n *\n * **Details**\n *\n * This function processes every element of the given `Chunk`, calling the\n * provided function `f` on each element. It does not return a new value;\n * instead, it is primarily used for side effects, such as logging or\n * accumulating data in an external variable.\n *\n * @since 2.0.0\n * @category combinators\n */\nexport const forEach = /*#__PURE__*/dual(2, (self, f) => toReadonlyArray(self).forEach(f));\n/**\n * Flattens a chunk of chunks into a single chunk by concatenating all chunks.\n *\n * @since 2.0.0\n * @category sequencing\n */\nexport const flatten = /*#__PURE__*/flatMap(identity);\n/**\n * Groups elements in chunks of up to `n` elements.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const chunksOf = /*#__PURE__*/dual(2, (self, n) => {\n const gr = [];\n let current = [];\n toReadonlyArray(self).forEach(a => {\n current.push(a);\n if (current.length >= n) {\n gr.push(unsafeFromArray(current));\n current = [];\n }\n });\n if (current.length > 0) {\n gr.push(unsafeFromArray(current));\n }\n return unsafeFromArray(gr);\n});\n/**\n * Creates a Chunk of unique values that are included in all given Chunks.\n *\n * The order and references of result values are determined by the Chunk.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const intersection = /*#__PURE__*/dual(2, (self, that) => unsafeFromArray(RA.intersection(toReadonlyArray(self), toReadonlyArray(that))));\n/**\n * Determines if the chunk is empty.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const isEmpty = self => self.length === 0;\n/**\n * Determines if the chunk is not empty.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const isNonEmpty = self => self.length > 0;\n/**\n * Returns the first element of this chunk if it exists.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const head = /*#__PURE__*/get(0);\n/**\n * Returns the first element of this chunk.\n *\n * It will throw an error if the chunk is empty.\n *\n * @since 2.0.0\n * @category unsafe\n */\nexport const unsafeHead = self => unsafeGet(self, 0);\n/**\n * Returns the first element of this non empty chunk.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const headNonEmpty = unsafeHead;\n/**\n * Returns the last element of this chunk if it exists.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const last = self => get(self, self.length - 1);\n/**\n * Returns the last element of this chunk.\n *\n * It will throw an error if the chunk is empty.\n *\n * @since 2.0.0\n * @category unsafe\n */\nexport const unsafeLast = self => unsafeGet(self, self.length - 1);\n/**\n * Returns the last element of this non empty chunk.\n *\n * @since 3.4.0\n * @category elements\n */\nexport const lastNonEmpty = unsafeLast;\n/**\n * Transforms the elements of a chunk using the specified mapping function.\n * If the input chunk is non-empty, the resulting chunk will also be non-empty.\n *\n * **Example**\n *\n * ```ts\n * import { Chunk } from \"effect\"\n *\n * const result = Chunk.map(Chunk.make(1, 2), (n) => n + 1)\n *\n * console.log(result)\n * // { _id: 'Chunk', values: [ 2, 3 ] }\n * ```\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const map = /*#__PURE__*/dual(2, (self, f) => self.backing._tag === \"ISingleton\" ? of(f(self.backing.a, 0)) : unsafeFromArray(pipe(toReadonlyArray(self), RA.map((a, i) => f(a, i)))));\n/**\n * Statefully maps over the chunk, producing new elements of type `B`.\n *\n * @since 2.0.0\n * @category folding\n */\nexport const mapAccum = /*#__PURE__*/dual(3, (self, s, f) => {\n const [s1, as] = RA.mapAccum(self, s, f);\n return [s1, unsafeFromArray(as)];\n});\n/**\n * Separate elements based on a predicate that also exposes the index of the element.\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const partition = /*#__PURE__*/dual(2, (self, predicate) => pipe(RA.partition(toReadonlyArray(self), predicate), ([l, r]) => [unsafeFromArray(l), unsafeFromArray(r)]));\n/**\n * Partitions the elements of this chunk into two chunks using f.\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const partitionMap = /*#__PURE__*/dual(2, (self, f) => pipe(RA.partitionMap(toReadonlyArray(self), f), ([l, r]) => [unsafeFromArray(l), unsafeFromArray(r)]));\n/**\n * Partitions the elements of this chunk into two chunks.\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const separate = self => pipe(RA.separate(toReadonlyArray(self)), ([l, r]) => [unsafeFromArray(l), unsafeFromArray(r)]);\n/**\n * Retireves the size of the chunk\n *\n * @since 2.0.0\n * @category elements\n */\nexport const size = self => self.length;\n/**\n * Sort the elements of a Chunk in increasing order, creating a new Chunk.\n *\n * @since 2.0.0\n * @category sorting\n */\nexport const sort = /*#__PURE__*/dual(2, (self, O) => unsafeFromArray(RA.sort(toReadonlyArray(self), O)));\n/**\n * @since 2.0.0\n * @category sorting\n */\nexport const sortWith = /*#__PURE__*/dual(3, (self, f, order) => sort(self, Order.mapInput(order, f)));\n/**\n * Returns two splits of this chunk at the specified index.\n *\n * @since 2.0.0\n * @category splitting\n */\nexport const splitAt = /*#__PURE__*/dual(2, (self, n) => [take(self, n), drop(self, n)]);\n/**\n * Splits a `NonEmptyChunk` into two segments, with the first segment containing a maximum of `n` elements.\n * The value of `n` must be `>= 1`.\n *\n * @category splitting\n * @since 2.0.0\n */\nexport const splitNonEmptyAt = /*#__PURE__*/dual(2, (self, n) => {\n const _n = Math.max(1, Math.floor(n));\n return _n >= self.length ? [self, empty()] : [take(self, _n), drop(self, _n)];\n});\n/**\n * Splits this chunk into `n` equally sized chunks.\n *\n * @since 2.0.0\n * @category splitting\n */\nexport const split = /*#__PURE__*/dual(2, (self, n) => chunksOf(self, Math.ceil(self.length / Math.floor(n))));\n/**\n * Splits this chunk on the first element that matches this predicate.\n * Returns a tuple containing two chunks: the first one is before the match, and the second one is from the match onward.\n *\n * @category splitting\n * @since 2.0.0\n */\nexport const splitWhere = /*#__PURE__*/dual(2, (self, predicate) => {\n let i = 0;\n for (const a of toReadonlyArray(self)) {\n if (predicate(a)) {\n break;\n } else {\n i++;\n }\n }\n return splitAt(self, i);\n});\n/**\n * Returns every elements after the first.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const tail = self => self.length > 0 ? O.some(drop(self, 1)) : O.none();\n/**\n * Returns every elements after the first.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const tailNonEmpty = self => drop(self, 1);\n/**\n * Takes the last `n` elements.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const takeRight = /*#__PURE__*/dual(2, (self, n) => drop(self, self.length - n));\n/**\n * Takes all elements so long as the predicate returns true.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const takeWhile = /*#__PURE__*/dual(2, (self, predicate) => {\n const out = [];\n for (const a of toReadonlyArray(self)) {\n if (predicate(a)) {\n out.push(a);\n } else {\n break;\n }\n }\n return unsafeFromArray(out);\n});\n/**\n * Creates a Chunks of unique values, in order, from all given Chunks.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const union = /*#__PURE__*/dual(2, (self, that) => unsafeFromArray(RA.union(toReadonlyArray(self), toReadonlyArray(that))));\n/**\n * Remove duplicates from an array, keeping the first occurrence of an element.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const dedupe = self => unsafeFromArray(RA.dedupe(toReadonlyArray(self)));\n/**\n * Deduplicates adjacent elements that are identical.\n *\n * @since 2.0.0\n * @category filtering\n */\nexport const dedupeAdjacent = self => unsafeFromArray(RA.dedupeAdjacent(self));\n/**\n * Takes a `Chunk` of pairs and return two corresponding `Chunk`s.\n *\n * Note: The function is reverse of `zip`.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const unzip = self => {\n const [left, right] = RA.unzip(self);\n return [unsafeFromArray(left), unsafeFromArray(right)];\n};\n/**\n * Zips this chunk pointwise with the specified chunk using the specified combiner.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zipWith = /*#__PURE__*/dual(3, (self, that, f) => unsafeFromArray(RA.zipWith(self, that, f)));\n/**\n * Zips this chunk pointwise with the specified chunk.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zip = /*#__PURE__*/dual(2, (self, that) => zipWith(self, that, (a, b) => [a, b]));\n/**\n * Delete the element at the specified index, creating a new `Chunk`.\n *\n * @since 2.0.0\n */\nexport const remove = /*#__PURE__*/dual(2, (self, i) => {\n if (i < 0 || i >= self.length) return self;\n return unsafeFromArray(RA.remove(toReadonlyArray(self), i));\n});\n/**\n * @since 3.16.0\n */\nexport const removeOption = /*#__PURE__*/dual(2, (self, i) => {\n if (i < 0 || i >= self.length) return O.none();\n return O.some(unsafeFromArray(RA.remove(toReadonlyArray(self), i)));\n});\n/**\n * @since 2.0.0\n */\nexport const modifyOption = /*#__PURE__*/dual(3, (self, i, f) => {\n if (i < 0 || i >= self.length) return O.none();\n return O.some(unsafeFromArray(RA.modify(toReadonlyArray(self), i, f)));\n});\n/**\n * Apply a function to the element at the specified index, creating a new `Chunk`,\n * or returning the input if the index is out of bounds.\n *\n * @since 2.0.0\n */\nexport const modify = /*#__PURE__*/dual(3, (self, i, f) => O.getOrElse(modifyOption(self, i, f), () => self));\n/**\n * Change the element at the specified index, creating a new `Chunk`,\n * or returning the input if the index is out of bounds.\n *\n * @since 2.0.0\n */\nexport const replace = /*#__PURE__*/dual(3, (self, i, b) => modify(self, i, () => b));\n/**\n * @since 2.0.0\n */\nexport const replaceOption = /*#__PURE__*/dual(3, (self, i, b) => modifyOption(self, i, () => b));\n/**\n * Return a Chunk of length n with element i initialized with f(i).\n *\n * **Note**. `n` is normalized to an integer >= 1.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const makeBy = /*#__PURE__*/dual(2, (n, f) => fromIterable(RA.makeBy(n, f)));\n/**\n * Create a non empty `Chunk` containing a range of integers, including both endpoints.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const range = (start, end) => start <= end ? makeBy(end - start + 1, i => start + i) : of(start);\n// -------------------------------------------------------------------------------------\n// re-exports from ReadonlyArray\n// -------------------------------------------------------------------------------------\n/**\n * Returns a function that checks if a `Chunk` contains a given value using the default `Equivalence`.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const contains = RA.contains;\n/**\n * Returns a function that checks if a `Chunk` contains a given value using a provided `isEquivalent` function.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const containsWith = RA.containsWith;\n/**\n * Returns the first element that satisfies the specified\n * predicate, or `None` if no such element exists.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const findFirst = RA.findFirst;\n/**\n * Return the first index for which a predicate holds.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const findFirstIndex = RA.findFirstIndex;\n/**\n * Find the last element for which a predicate holds.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const findLast = RA.findLast;\n/**\n * Return the last index for which a predicate holds.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const findLastIndex = RA.findLastIndex;\n/**\n * Check if a predicate holds true for every `Chunk` element.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const every = /*#__PURE__*/dual(2, (self, refinement) => RA.fromIterable(self).every(refinement));\n/**\n * Check if a predicate holds true for some `Chunk` element.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const some = /*#__PURE__*/dual(2, (self, predicate) => RA.fromIterable(self).some(predicate));\n/**\n * Joins the elements together with \"sep\" in the middle.\n *\n * @category folding\n * @since 2.0.0\n */\nexport const join = RA.join;\n/**\n * @category folding\n * @since 2.0.0\n */\nexport const reduce = RA.reduce;\n/**\n * @category folding\n * @since 2.0.0\n */\nexport const reduceRight = RA.reduceRight;\n/**\n * Creates a `Chunk` of values not included in the other given `Chunk` using the provided `isEquivalent` function.\n * The order and references of result values are determined by the first `Chunk`.\n *\n * @since 3.2.0\n */\nexport const differenceWith = isEquivalent => {\n return dual(2, (self, that) => unsafeFromArray(RA.differenceWith(isEquivalent)(that, self)));\n};\n/**\n * Creates a `Chunk` of values not included in the other given `Chunk`.\n * The order and references of result values are determined by the first `Chunk`.\n *\n * @since 3.2.0\n */\nexport const difference = /*#__PURE__*/dual(2, (self, that) => unsafeFromArray(RA.difference(that, self)));\n//# sourceMappingURL=Chunk.js.map","/** @internal */\nexport const OP_ASYNC = \"Async\";\n/** @internal */\nexport const OP_COMMIT = \"Commit\";\n/** @internal */\nexport const OP_FAILURE = \"Failure\";\n/** @internal */\nexport const OP_ON_FAILURE = \"OnFailure\";\n/** @internal */\nexport const OP_ON_SUCCESS = \"OnSuccess\";\n/** @internal */\nexport const OP_ON_SUCCESS_AND_FAILURE = \"OnSuccessAndFailure\";\n/** @internal */\nexport const OP_SUCCESS = \"Success\";\n/** @internal */\nexport const OP_SYNC = \"Sync\";\n/** @internal */\nexport const OP_TAG = \"Tag\";\n/** @internal */\nexport const OP_UPDATE_RUNTIME_FLAGS = \"UpdateRuntimeFlags\";\n/** @internal */\nexport const OP_WHILE = \"While\";\n/** @internal */\nexport const OP_ITERATOR = \"Iterator\";\n/** @internal */\nexport const OP_WITH_RUNTIME = \"WithRuntime\";\n/** @internal */\nexport const OP_YIELD = \"Yield\";\n/** @internal */\nexport const OP_REVERT_FLAGS = \"RevertFlags\";\n//# sourceMappingURL=effect.js.map","// TODO(v3): Convert to sync.\nimport { secp256k1 } from '@noble/curves/secp256k1';\nimport { isHex } from '../../utils/data/isHex.js';\nimport { hexToBytes, } from '../../utils/encoding/toBytes.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { serializeSignature } from '../../utils/signature/serializeSignature.js';\nlet extraEntropy = false;\n/**\n * Sets extra entropy for signing functions.\n */\nexport function setSignEntropy(entropy) {\n if (!entropy)\n throw new Error('must be a `true` or a hex value.');\n extraEntropy = entropy;\n}\n/**\n * @description Signs a hash with a given private key.\n *\n * @param hash The hash to sign.\n * @param privateKey The private key to sign with.\n *\n * @returns The signature.\n */\nexport async function sign({ hash, privateKey, to = 'object', }) {\n const { r, s, recovery } = secp256k1.sign(hash.slice(2), privateKey.slice(2), {\n lowS: true,\n extraEntropy: isHex(extraEntropy, { strict: false })\n ? hexToBytes(extraEntropy)\n : extraEntropy,\n });\n const signature = {\n r: numberToHex(r, { size: 32 }),\n s: numberToHex(s, { size: 32 }),\n v: recovery ? 28n : 27n,\n yParity: recovery,\n };\n return (() => {\n if (to === 'bytes' || to === 'hex')\n return serializeSignature({ ...signature, to });\n return signature;\n })();\n}\n//# sourceMappingURL=sign.js.map","import { secp256k1 } from '@noble/curves/secp256k1';\nimport { toHex } from '../utils/encoding/toHex.js';\nimport { toAccount } from './toAccount.js';\nimport { publicKeyToAddress, } from './utils/publicKeyToAddress.js';\nimport { sign } from './utils/sign.js';\nimport { signAuthorization } from './utils/signAuthorization.js';\nimport { signMessage } from './utils/signMessage.js';\nimport { signTransaction, } from './utils/signTransaction.js';\nimport { signTypedData, } from './utils/signTypedData.js';\n/**\n * @description Creates an Account from a private key.\n *\n * @returns A Private Key Account.\n */\nexport function privateKeyToAccount(privateKey, options = {}) {\n const { nonceManager } = options;\n const publicKey = toHex(secp256k1.getPublicKey(privateKey.slice(2), false));\n const address = publicKeyToAddress(publicKey);\n const account = toAccount({\n address,\n nonceManager,\n async sign({ hash }) {\n return sign({ hash, privateKey, to: 'hex' });\n },\n async signAuthorization(authorization) {\n return signAuthorization({ ...authorization, privateKey });\n },\n async signMessage({ message }) {\n return signMessage({ message, privateKey });\n },\n async signTransaction(transaction, { serializer } = {}) {\n return signTransaction({ privateKey, transaction, serializer });\n },\n async signTypedData(typedData) {\n return signTypedData({ ...typedData, privateKey });\n },\n });\n return {\n ...account,\n publicKey,\n source: 'privateKey',\n };\n}\n//# sourceMappingURL=privateKeyToAccount.js.map","// TODO(v3): Rename to `toLocalAccount` + add `source` property to define source (privateKey, mnemonic, hdKey, etc).\nimport { InvalidAddressError, } from '../errors/address.js';\nimport { isAddress, } from '../utils/address/isAddress.js';\n/**\n * @description Creates an Account from a custom signing implementation.\n *\n * @returns A Local Account.\n */\nexport function toAccount(source) {\n if (typeof source === 'string') {\n if (!isAddress(source, { strict: false }))\n throw new InvalidAddressError({ address: source });\n return {\n address: source,\n type: 'json-rpc',\n };\n }\n if (!isAddress(source.address, { strict: false }))\n throw new InvalidAddressError({ address: source.address });\n return {\n address: source.address,\n nonceManager: source.nonceManager,\n sign: source.sign,\n signAuthorization: source.signAuthorization,\n signMessage: source.signMessage,\n signTransaction: source.signTransaction,\n signTypedData: source.signTypedData,\n source: 'custom',\n type: 'local',\n };\n}\n//# sourceMappingURL=toAccount.js.map","import { hashAuthorization, } from '../../utils/authorization/hashAuthorization.js';\nimport { sign, } from './sign.js';\n/**\n * Signs an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\n */\nexport async function signAuthorization(parameters) {\n const { chainId, nonce, privateKey, to = 'object' } = parameters;\n const address = parameters.contractAddress ?? parameters.address;\n const signature = await sign({\n hash: hashAuthorization({ address, chainId, nonce }),\n privateKey,\n to,\n });\n if (to === 'object')\n return {\n address,\n chainId,\n nonce,\n ...signature,\n };\n return signature;\n}\n//# sourceMappingURL=signAuthorization.js.map","import { hashMessage, } from '../../utils/signature/hashMessage.js';\nimport { sign } from './sign.js';\n/**\n * @description Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191):\n * `keccak256(\"\\x19Ethereum Signed Message:\\n\" + len(message) + message))`.\n *\n * @returns The signature.\n */\nexport async function signMessage({ message, privateKey, }) {\n return await sign({ hash: hashMessage(message), privateKey, to: 'hex' });\n}\n//# sourceMappingURL=signMessage.js.map","import { keccak256, } from '../../utils/hash/keccak256.js';\nimport { serializeTransaction, } from '../../utils/transaction/serializeTransaction.js';\nimport { sign } from './sign.js';\nexport async function signTransaction(parameters) {\n const { privateKey, transaction, serializer = serializeTransaction, } = parameters;\n const signableTransaction = (() => {\n // For EIP-4844 Transactions, we want to sign the transaction payload body (tx_payload_body) without the sidecars (ie. without the network wrapper).\n // See: https://github.com/ethereum/EIPs/blob/e00f4daa66bd56e2dbd5f1d36d09fd613811a48b/EIPS/eip-4844.md#networking\n if (transaction.type === 'eip4844')\n return {\n ...transaction,\n sidecars: false,\n };\n return transaction;\n })();\n const signature = await sign({\n hash: keccak256(await serializer(signableTransaction)),\n privateKey,\n });\n return (await serializer(transaction, signature));\n}\n//# sourceMappingURL=signTransaction.js.map","import { hashTypedData, } from '../../utils/signature/hashTypedData.js';\nimport { sign } from './sign.js';\n/**\n * @description Signs typed data and calculates an Ethereum-specific signature in [https://eips.ethereum.org/EIPS/eip-712](https://eips.ethereum.org/EIPS/eip-712):\n * `sign(keccak256(\"\\x19\\x01\" ‖ domainSeparator ‖ hashStruct(message)))`.\n *\n * @returns The signature.\n */\nexport async function signTypedData(parameters) {\n const { privateKey, ...typedData } = parameters;\n return await sign({\n hash: hashTypedData(typedData),\n privateKey,\n to: 'hex',\n });\n}\n//# sourceMappingURL=signTypedData.js.map","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","const bigIntSuffix = '#__bigint';\n/**\n * Parses a JSON string, with support for `bigint`.\n *\n * @example\n * ```ts twoslash\n * import { Json } from 'ox'\n *\n * const json = Json.parse('{\"foo\":\"bar\",\"baz\":\"69420694206942069420694206942069420694206942069420#__bigint\"}')\n * // @log: {\n * // @log: foo: 'bar',\n * // @log: baz: 69420694206942069420694206942069420694206942069420n\n * // @log: }\n * ```\n *\n * @param string - The value to parse.\n * @param reviver - A function that transforms the results.\n * @returns The parsed value.\n */\nexport function parse(string, reviver) {\n return JSON.parse(string, (key, value_) => {\n const value = value_;\n if (typeof value === 'string' && value.endsWith(bigIntSuffix))\n return BigInt(value.slice(0, -bigIntSuffix.length));\n return typeof reviver === 'function' ? reviver(key, value) : value;\n });\n}\n/**\n * Stringifies a value to its JSON representation, with support for `bigint`.\n *\n * @example\n * ```ts twoslash\n * import { Json } from 'ox'\n *\n * const json = Json.stringify({\n * foo: 'bar',\n * baz: 69420694206942069420694206942069420694206942069420n,\n * })\n * // @log: '{\"foo\":\"bar\",\"baz\":\"69420694206942069420694206942069420694206942069420#__bigint\"}'\n * ```\n *\n * @param value - The value to stringify.\n * @param replacer - A function that transforms the results. It is passed the key and value of the property, and must return the value to be used in the JSON string. If this function returns `undefined`, the property is not included in the resulting JSON string.\n * @param space - A string or number that determines the indentation of the JSON string. If it is a number, it indicates the number of spaces to use as indentation; if it is a string (e.g. `'\\t'`), it uses the string as the indentation character.\n * @returns The JSON string.\n */\nexport function stringify(value, replacer, space) {\n return JSON.stringify(value, (key, value) => {\n if (typeof replacer === 'function')\n return replacer(key, value);\n if (typeof value === 'bigint')\n return value.toString() + bigIntSuffix;\n return value;\n }, space);\n}\n//# sourceMappingURL=Json.js.map","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","import { toSignatureHash, } from './toSignatureHash.js';\n/**\n * Returns the event selector for a given event definition.\n *\n * @example\n * const selector = toEventSelector('Transfer(address indexed from, address indexed to, uint256 amount)')\n * // 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\n */\nexport const toEventSelector = toSignatureHash;\n//# sourceMappingURL=toEventSelector.js.map","import * as Chunk from \"../../Chunk.js\";\nimport * as Equal from \"../../Equal.js\";\nimport * as Dual from \"../../Function.js\";\nimport { makeContext } from \"../context.js\";\nimport { Structural } from \"../data.js\";\n/** @internal */\nexport const ContextPatchTypeId = /*#__PURE__*/Symbol.for(\"effect/DifferContextPatch\");\nfunction variance(a) {\n return a;\n}\n/** @internal */\nconst PatchProto = {\n ...Structural.prototype,\n [ContextPatchTypeId]: {\n _Value: variance,\n _Patch: variance\n }\n};\nconst EmptyProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Empty\"\n});\nconst _empty = /*#__PURE__*/Object.create(EmptyProto);\n/**\n * @internal\n */\nexport const empty = () => _empty;\nconst AndThenProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"AndThen\"\n});\nconst makeAndThen = (first, second) => {\n const o = Object.create(AndThenProto);\n o.first = first;\n o.second = second;\n return o;\n};\nconst AddServiceProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"AddService\"\n});\nconst makeAddService = (key, service) => {\n const o = Object.create(AddServiceProto);\n o.key = key;\n o.service = service;\n return o;\n};\nconst RemoveServiceProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"RemoveService\"\n});\nconst makeRemoveService = key => {\n const o = Object.create(RemoveServiceProto);\n o.key = key;\n return o;\n};\nconst UpdateServiceProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"UpdateService\"\n});\nconst makeUpdateService = (key, update) => {\n const o = Object.create(UpdateServiceProto);\n o.key = key;\n o.update = update;\n return o;\n};\n/** @internal */\nexport const diff = (oldValue, newValue) => {\n const missingServices = new Map(oldValue.unsafeMap);\n let patch = empty();\n for (const [tag, newService] of newValue.unsafeMap.entries()) {\n if (missingServices.has(tag)) {\n const old = missingServices.get(tag);\n missingServices.delete(tag);\n if (!Equal.equals(old, newService)) {\n patch = combine(makeUpdateService(tag, () => newService))(patch);\n }\n } else {\n missingServices.delete(tag);\n patch = combine(makeAddService(tag, newService))(patch);\n }\n }\n for (const [tag] of missingServices.entries()) {\n patch = combine(makeRemoveService(tag))(patch);\n }\n return patch;\n};\n/** @internal */\nexport const combine = /*#__PURE__*/Dual.dual(2, (self, that) => makeAndThen(self, that));\n/** @internal */\nexport const patch = /*#__PURE__*/Dual.dual(2, (self, context) => {\n if (self._tag === \"Empty\") {\n return context;\n }\n let wasServiceUpdated = false;\n let patches = Chunk.of(self);\n const updatedContext = new Map(context.unsafeMap);\n while (Chunk.isNonEmpty(patches)) {\n const head = Chunk.headNonEmpty(patches);\n const tail = Chunk.tailNonEmpty(patches);\n switch (head._tag) {\n case \"Empty\":\n {\n patches = tail;\n break;\n }\n case \"AddService\":\n {\n updatedContext.set(head.key, head.service);\n patches = tail;\n break;\n }\n case \"AndThen\":\n {\n patches = Chunk.prepend(Chunk.prepend(tail, head.second), head.first);\n break;\n }\n case \"RemoveService\":\n {\n updatedContext.delete(head.key);\n patches = tail;\n break;\n }\n case \"UpdateService\":\n {\n updatedContext.set(head.key, head.update(updatedContext.get(head.key)));\n wasServiceUpdated = true;\n patches = tail;\n break;\n }\n }\n }\n if (!wasServiceUpdated) {\n return makeContext(updatedContext);\n }\n const map = new Map();\n for (const [tag] of context.unsafeMap) {\n if (updatedContext.has(tag)) {\n map.set(tag, updatedContext.get(tag));\n updatedContext.delete(tag);\n }\n }\n for (const [tag, s] of updatedContext) {\n map.set(tag, s);\n }\n return makeContext(map);\n});\n//# sourceMappingURL=contextPatch.js.map","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","import { BaseError } from '../../errors.js';\nexport class InvalidParenthesisError extends BaseError {\n constructor({ current, depth }) {\n super('Unbalanced parentheses.', {\n metaMessages: [\n `\"${current.trim()}\" has too many ${depth > 0 ? 'opening' : 'closing'} parentheses.`,\n ],\n details: `Depth \"${depth}\"`,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidParenthesisError'\n });\n }\n}\n//# sourceMappingURL=splitParameters.js.map","/**\n * Gets {@link parameterCache} cache key namespaced by {@link type} and {@link structs}. This prevents parameters from being accessible to types that don't allow them (e.g. `string indexed foo` not allowed outside of `type: 'event'`) and ensures different struct definitions with the same name are cached separately.\n * @param param ABI parameter string\n * @param type ABI parameter type\n * @param structs Struct definitions to include in cache key\n * @returns Cache key for {@link parameterCache}\n */\nexport function getParameterCacheKey(param, type, structs) {\n let structKey = '';\n if (structs)\n for (const struct of Object.entries(structs)) {\n if (!struct)\n continue;\n let propertyKey = '';\n for (const property of struct[1]) {\n propertyKey += `[${property.type}${property.name ? `:${property.name}` : ''}]`;\n }\n structKey += `(${struct[0]}{${propertyKey}})`;\n }\n if (type)\n return `${type}:${param}${structKey}`;\n return `${param}${structKey}`;\n}\n/**\n * Basic cache seeded with common ABI parameter strings.\n *\n * **Note: When seeding more parameters, make sure you benchmark performance. The current number is the ideal balance between performance and having an already existing cache.**\n */\nexport const parameterCache = new Map([\n // Unnamed\n ['address', { type: 'address' }],\n ['bool', { type: 'bool' }],\n ['bytes', { type: 'bytes' }],\n ['bytes32', { type: 'bytes32' }],\n ['int', { type: 'int256' }],\n ['int256', { type: 'int256' }],\n ['string', { type: 'string' }],\n ['uint', { type: 'uint256' }],\n ['uint8', { type: 'uint8' }],\n ['uint16', { type: 'uint16' }],\n ['uint24', { type: 'uint24' }],\n ['uint32', { type: 'uint32' }],\n ['uint64', { type: 'uint64' }],\n ['uint96', { type: 'uint96' }],\n ['uint112', { type: 'uint112' }],\n ['uint160', { type: 'uint160' }],\n ['uint192', { type: 'uint192' }],\n ['uint256', { type: 'uint256' }],\n // Named\n ['address owner', { type: 'address', name: 'owner' }],\n ['address to', { type: 'address', name: 'to' }],\n ['bool approved', { type: 'bool', name: 'approved' }],\n ['bytes _data', { type: 'bytes', name: '_data' }],\n ['bytes data', { type: 'bytes', name: 'data' }],\n ['bytes signature', { type: 'bytes', name: 'signature' }],\n ['bytes32 hash', { type: 'bytes32', name: 'hash' }],\n ['bytes32 r', { type: 'bytes32', name: 'r' }],\n ['bytes32 root', { type: 'bytes32', name: 'root' }],\n ['bytes32 s', { type: 'bytes32', name: 's' }],\n ['string name', { type: 'string', name: 'name' }],\n ['string symbol', { type: 'string', name: 'symbol' }],\n ['string tokenURI', { type: 'string', name: 'tokenURI' }],\n ['uint tokenId', { type: 'uint256', name: 'tokenId' }],\n ['uint8 v', { type: 'uint8', name: 'v' }],\n ['uint256 balance', { type: 'uint256', name: 'balance' }],\n ['uint256 tokenId', { type: 'uint256', name: 'tokenId' }],\n ['uint256 value', { type: 'uint256', name: 'value' }],\n // Indexed\n [\n 'event:address indexed from',\n { type: 'address', name: 'from', indexed: true },\n ],\n ['event:address indexed to', { type: 'address', name: 'to', indexed: true }],\n [\n 'event:uint indexed tokenId',\n { type: 'uint256', name: 'tokenId', indexed: true },\n ],\n [\n 'event:uint256 indexed tokenId',\n { type: 'uint256', name: 'tokenId', indexed: true },\n ],\n]);\n//# sourceMappingURL=cache.js.map","import { bytesRegex, execTyped, integerRegex, isTupleRegex, } from '../../regex.js';\nimport { UnknownSolidityTypeError } from '../errors/abiItem.js';\nimport { InvalidFunctionModifierError, InvalidModifierError, InvalidParameterError, SolidityProtectedKeywordError, } from '../errors/abiParameter.js';\nimport { InvalidSignatureError, UnknownSignatureError, } from '../errors/signature.js';\nimport { InvalidParenthesisError } from '../errors/splitParameters.js';\nimport { getParameterCacheKey, parameterCache } from './cache.js';\nimport { eventModifiers, execConstructorSignature, execErrorSignature, execEventSignature, execFallbackSignature, execFunctionSignature, functionModifiers, isConstructorSignature, isErrorSignature, isEventSignature, isFallbackSignature, isFunctionSignature, isReceiveSignature, } from './signatures.js';\nexport function parseSignature(signature, structs = {}) {\n if (isFunctionSignature(signature))\n return parseFunctionSignature(signature, structs);\n if (isEventSignature(signature))\n return parseEventSignature(signature, structs);\n if (isErrorSignature(signature))\n return parseErrorSignature(signature, structs);\n if (isConstructorSignature(signature))\n return parseConstructorSignature(signature, structs);\n if (isFallbackSignature(signature))\n return parseFallbackSignature(signature);\n if (isReceiveSignature(signature))\n return {\n type: 'receive',\n stateMutability: 'payable',\n };\n throw new UnknownSignatureError({ signature });\n}\nexport function parseFunctionSignature(signature, structs = {}) {\n const match = execFunctionSignature(signature);\n if (!match)\n throw new InvalidSignatureError({ signature, type: 'function' });\n const inputParams = splitParameters(match.parameters);\n const inputs = [];\n const inputLength = inputParams.length;\n for (let i = 0; i < inputLength; i++) {\n inputs.push(parseAbiParameter(inputParams[i], {\n modifiers: functionModifiers,\n structs,\n type: 'function',\n }));\n }\n const outputs = [];\n if (match.returns) {\n const outputParams = splitParameters(match.returns);\n const outputLength = outputParams.length;\n for (let i = 0; i < outputLength; i++) {\n outputs.push(parseAbiParameter(outputParams[i], {\n modifiers: functionModifiers,\n structs,\n type: 'function',\n }));\n }\n }\n return {\n name: match.name,\n type: 'function',\n stateMutability: match.stateMutability ?? 'nonpayable',\n inputs,\n outputs,\n };\n}\nexport function parseEventSignature(signature, structs = {}) {\n const match = execEventSignature(signature);\n if (!match)\n throw new InvalidSignatureError({ signature, type: 'event' });\n const params = splitParameters(match.parameters);\n const abiParameters = [];\n const length = params.length;\n for (let i = 0; i < length; i++)\n abiParameters.push(parseAbiParameter(params[i], {\n modifiers: eventModifiers,\n structs,\n type: 'event',\n }));\n return { name: match.name, type: 'event', inputs: abiParameters };\n}\nexport function parseErrorSignature(signature, structs = {}) {\n const match = execErrorSignature(signature);\n if (!match)\n throw new InvalidSignatureError({ signature, type: 'error' });\n const params = splitParameters(match.parameters);\n const abiParameters = [];\n const length = params.length;\n for (let i = 0; i < length; i++)\n abiParameters.push(parseAbiParameter(params[i], { structs, type: 'error' }));\n return { name: match.name, type: 'error', inputs: abiParameters };\n}\nexport function parseConstructorSignature(signature, structs = {}) {\n const match = execConstructorSignature(signature);\n if (!match)\n throw new InvalidSignatureError({ signature, type: 'constructor' });\n const params = splitParameters(match.parameters);\n const abiParameters = [];\n const length = params.length;\n for (let i = 0; i < length; i++)\n abiParameters.push(parseAbiParameter(params[i], { structs, type: 'constructor' }));\n return {\n type: 'constructor',\n stateMutability: match.stateMutability ?? 'nonpayable',\n inputs: abiParameters,\n };\n}\nexport function parseFallbackSignature(signature) {\n const match = execFallbackSignature(signature);\n if (!match)\n throw new InvalidSignatureError({ signature, type: 'fallback' });\n return {\n type: 'fallback',\n stateMutability: match.stateMutability ?? 'nonpayable',\n };\n}\nconst abiParameterWithoutTupleRegex = /^(?[a-zA-Z$_][a-zA-Z0-9$_]*(?:\\spayable)?)(?(?:\\[\\d*?\\])+?)?(?:\\s(?calldata|indexed|memory|storage{1}))?(?:\\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/;\nconst abiParameterWithTupleRegex = /^\\((?.+?)\\)(?(?:\\[\\d*?\\])+?)?(?:\\s(?calldata|indexed|memory|storage{1}))?(?:\\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/;\nconst dynamicIntegerRegex = /^u?int$/;\nexport function parseAbiParameter(param, options) {\n // optional namespace cache by `type`\n const parameterCacheKey = getParameterCacheKey(param, options?.type, options?.structs);\n if (parameterCache.has(parameterCacheKey))\n return parameterCache.get(parameterCacheKey);\n const isTuple = isTupleRegex.test(param);\n const match = execTyped(isTuple ? abiParameterWithTupleRegex : abiParameterWithoutTupleRegex, param);\n if (!match)\n throw new InvalidParameterError({ param });\n if (match.name && isSolidityKeyword(match.name))\n throw new SolidityProtectedKeywordError({ param, name: match.name });\n const name = match.name ? { name: match.name } : {};\n const indexed = match.modifier === 'indexed' ? { indexed: true } : {};\n const structs = options?.structs ?? {};\n let type;\n let components = {};\n if (isTuple) {\n type = 'tuple';\n const params = splitParameters(match.type);\n const components_ = [];\n const length = params.length;\n for (let i = 0; i < length; i++) {\n // remove `modifiers` from `options` to prevent from being added to tuple components\n components_.push(parseAbiParameter(params[i], { structs }));\n }\n components = { components: components_ };\n }\n else if (match.type in structs) {\n type = 'tuple';\n components = { components: structs[match.type] };\n }\n else if (dynamicIntegerRegex.test(match.type)) {\n type = `${match.type}256`;\n }\n else if (match.type === 'address payable') {\n type = 'address';\n }\n else {\n type = match.type;\n if (!(options?.type === 'struct') && !isSolidityType(type))\n throw new UnknownSolidityTypeError({ type });\n }\n if (match.modifier) {\n // Check if modifier exists, but is not allowed (e.g. `indexed` in `functionModifiers`)\n if (!options?.modifiers?.has?.(match.modifier))\n throw new InvalidModifierError({\n param,\n type: options?.type,\n modifier: match.modifier,\n });\n // Check if resolved `type` is valid if there is a function modifier\n if (functionModifiers.has(match.modifier) &&\n !isValidDataLocation(type, !!match.array))\n throw new InvalidFunctionModifierError({\n param,\n type: options?.type,\n modifier: match.modifier,\n });\n }\n const abiParameter = {\n type: `${type}${match.array ?? ''}`,\n ...name,\n ...indexed,\n ...components,\n };\n parameterCache.set(parameterCacheKey, abiParameter);\n return abiParameter;\n}\n// s/o latika for this\nexport function splitParameters(params, result = [], current = '', depth = 0) {\n const length = params.trim().length;\n // biome-ignore lint/correctness/noUnreachable: recursive\n for (let i = 0; i < length; i++) {\n const char = params[i];\n const tail = params.slice(i + 1);\n switch (char) {\n case ',':\n return depth === 0\n ? splitParameters(tail, [...result, current.trim()])\n : splitParameters(tail, result, `${current}${char}`, depth);\n case '(':\n return splitParameters(tail, result, `${current}${char}`, depth + 1);\n case ')':\n return splitParameters(tail, result, `${current}${char}`, depth - 1);\n default:\n return splitParameters(tail, result, `${current}${char}`, depth);\n }\n }\n if (current === '')\n return result;\n if (depth !== 0)\n throw new InvalidParenthesisError({ current, depth });\n result.push(current.trim());\n return result;\n}\nexport function isSolidityType(type) {\n return (type === 'address' ||\n type === 'bool' ||\n type === 'function' ||\n type === 'string' ||\n bytesRegex.test(type) ||\n integerRegex.test(type));\n}\nconst protectedKeywordsRegex = /^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/;\n/** @internal */\nexport function isSolidityKeyword(name) {\n return (name === 'address' ||\n name === 'bool' ||\n name === 'function' ||\n name === 'string' ||\n name === 'tuple' ||\n bytesRegex.test(name) ||\n integerRegex.test(name) ||\n protectedKeywordsRegex.test(name));\n}\n/** @internal */\nexport function isValidDataLocation(type, isArray) {\n return isArray || type === 'bytes' || type === 'string' || type === 'tuple';\n}\n//# sourceMappingURL=utils.js.map","// Implementation forked and adapted from https://github.com/MetaMask/eth-sig-util/blob/main/src/sign-typed-data.ts\nimport { encodeAbiParameters, } from '../abi/encodeAbiParameters.js';\nimport { concat } from '../data/concat.js';\nimport { toHex } from '../encoding/toHex.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { getTypesForEIP712Domain, validateTypedData, } from '../typedData.js';\nexport function hashTypedData(parameters) {\n const { domain = {}, message, primaryType, } = parameters;\n const types = {\n EIP712Domain: getTypesForEIP712Domain({ domain }),\n ...parameters.types,\n };\n // Need to do a runtime validation check on addresses, byte ranges, integer ranges, etc\n // as we can't statically check this with TypeScript.\n validateTypedData({\n domain,\n message,\n primaryType,\n types,\n });\n const parts = ['0x1901'];\n if (domain)\n parts.push(hashDomain({\n domain,\n types: types,\n }));\n if (primaryType !== 'EIP712Domain')\n parts.push(hashStruct({\n data: message,\n primaryType,\n types: types,\n }));\n return keccak256(concat(parts));\n}\nexport function hashDomain({ domain, types, }) {\n return hashStruct({\n data: domain,\n primaryType: 'EIP712Domain',\n types: types,\n });\n}\nexport function hashStruct({ data, primaryType, types, }) {\n const encoded = encodeData({\n data: data,\n primaryType,\n types: types,\n });\n return keccak256(encoded);\n}\nfunction encodeData({ data, primaryType, types, }) {\n const encodedTypes = [{ type: 'bytes32' }];\n const encodedValues = [hashType({ primaryType, types })];\n for (const field of types[primaryType]) {\n const [type, value] = encodeField({\n types,\n name: field.name,\n type: field.type,\n value: data[field.name],\n });\n encodedTypes.push(type);\n encodedValues.push(value);\n }\n return encodeAbiParameters(encodedTypes, encodedValues);\n}\nfunction hashType({ primaryType, types, }) {\n const encodedHashType = toHex(encodeType({ primaryType, types }));\n return keccak256(encodedHashType);\n}\nexport function encodeType({ primaryType, types, }) {\n let result = '';\n const unsortedDeps = findTypeDependencies({ primaryType, types });\n unsortedDeps.delete(primaryType);\n const deps = [primaryType, ...Array.from(unsortedDeps).sort()];\n for (const type of deps) {\n result += `${type}(${types[type]\n .map(({ name, type: t }) => `${t} ${name}`)\n .join(',')})`;\n }\n return result;\n}\nfunction findTypeDependencies({ primaryType: primaryType_, types, }, results = new Set()) {\n const match = primaryType_.match(/^\\w*/u);\n const primaryType = match?.[0];\n if (results.has(primaryType) || types[primaryType] === undefined) {\n return results;\n }\n results.add(primaryType);\n for (const field of types[primaryType]) {\n findTypeDependencies({ primaryType: field.type, types }, results);\n }\n return results;\n}\nfunction encodeField({ types, name, type, value, }) {\n if (types[type] !== undefined) {\n return [\n { type: 'bytes32' },\n keccak256(encodeData({ data: value, primaryType: type, types })),\n ];\n }\n if (type === 'bytes')\n return [{ type: 'bytes32' }, keccak256(value)];\n if (type === 'string')\n return [{ type: 'bytes32' }, keccak256(toHex(value))];\n if (type.lastIndexOf(']') === type.length - 1) {\n const parsedType = type.slice(0, type.lastIndexOf('['));\n const typeValuePairs = value.map((item) => encodeField({\n name,\n type: parsedType,\n types,\n value: item,\n }));\n return [\n { type: 'bytes32' },\n keccak256(encodeAbiParameters(typeValuePairs.map(([t]) => t), typeValuePairs.map(([, v]) => v))),\n ];\n }\n return [{ type }, value];\n}\n//# sourceMappingURL=hashTypedData.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/lib/_stream_readable.js');\nStream.Writable = require('readable-stream/lib/_stream_writable.js');\nStream.Duplex = require('readable-stream/lib/_stream_duplex.js');\nStream.Transform = require('readable-stream/lib/_stream_transform.js');\nStream.PassThrough = require('readable-stream/lib/_stream_passthrough.js');\nStream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js')\nStream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js')\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","import { getAction } from '../utils/getAction.js';\nimport { createContractEventFilter, } from './public/createContractEventFilter.js';\nimport { estimateContractGas, } from './public/estimateContractGas.js';\nimport { getContractEvents, } from './public/getContractEvents.js';\nimport { readContract, } from './public/readContract.js';\nimport { simulateContract, } from './public/simulateContract.js';\nimport { watchContractEvent, } from './public/watchContractEvent.js';\nimport { writeContract, } from './wallet/writeContract.js';\n/**\n * Gets type-safe interface for performing contract-related actions with a specific `abi` and `address`.\n *\n * - Docs https://viem.sh/docs/contract/getContract\n *\n * Using Contract Instances can make it easier to work with contracts if you don't want to pass the `abi` and `address` properties every time you perform contract actions, e.g. [`readContract`](https://viem.sh/docs/contract/readContract), [`writeContract`](https://viem.sh/docs/contract/writeContract), [`estimateContractGas`](https://viem.sh/docs/contract/estimateContractGas), etc.\n *\n * @example\n * import { createPublicClient, getContract, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const publicClient = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const contract = getContract({\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi([\n * 'function balanceOf(address owner) view returns (uint256)',\n * 'function ownerOf(uint256 tokenId) view returns (address)',\n * 'function totalSupply() view returns (uint256)',\n * ]),\n * client: publicClient,\n * })\n */\nexport function getContract({ abi, address, client: client_, }) {\n const client = client_;\n const [publicClient, walletClient] = (() => {\n if (!client)\n return [undefined, undefined];\n if ('public' in client && 'wallet' in client)\n return [client.public, client.wallet];\n if ('public' in client)\n return [client.public, undefined];\n if ('wallet' in client)\n return [undefined, client.wallet];\n return [client, client];\n })();\n const hasPublicClient = publicClient !== undefined && publicClient !== null;\n const hasWalletClient = walletClient !== undefined && walletClient !== null;\n const contract = {};\n let hasReadFunction = false;\n let hasWriteFunction = false;\n let hasEvent = false;\n for (const item of abi) {\n if (item.type === 'function')\n if (item.stateMutability === 'view' || item.stateMutability === 'pure')\n hasReadFunction = true;\n else\n hasWriteFunction = true;\n else if (item.type === 'event')\n hasEvent = true;\n // Exit early if all flags are `true`\n if (hasReadFunction && hasWriteFunction && hasEvent)\n break;\n }\n if (hasPublicClient) {\n if (hasReadFunction)\n contract.read = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n return getAction(publicClient, readContract, 'readContract')({\n abi,\n address,\n functionName,\n args,\n ...options,\n });\n };\n },\n });\n if (hasWriteFunction)\n contract.simulate = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n return getAction(publicClient, simulateContract, 'simulateContract')({\n abi,\n address,\n functionName,\n args,\n ...options,\n });\n };\n },\n });\n if (hasEvent) {\n contract.createEventFilter = new Proxy({}, {\n get(_, eventName) {\n return (...parameters) => {\n const abiEvent = abi.find((x) => x.type === 'event' && x.name === eventName);\n const { args, options } = getEventParameters(parameters, abiEvent);\n return getAction(publicClient, createContractEventFilter, 'createContractEventFilter')({\n abi,\n address,\n eventName,\n args,\n ...options,\n });\n };\n },\n });\n contract.getEvents = new Proxy({}, {\n get(_, eventName) {\n return (...parameters) => {\n const abiEvent = abi.find((x) => x.type === 'event' && x.name === eventName);\n const { args, options } = getEventParameters(parameters, abiEvent);\n return getAction(publicClient, getContractEvents, 'getContractEvents')({\n abi,\n address,\n eventName,\n args,\n ...options,\n });\n };\n },\n });\n contract.watchEvent = new Proxy({}, {\n get(_, eventName) {\n return (...parameters) => {\n const abiEvent = abi.find((x) => x.type === 'event' && x.name === eventName);\n const { args, options } = getEventParameters(parameters, abiEvent);\n return getAction(publicClient, watchContractEvent, 'watchContractEvent')({\n abi,\n address,\n eventName,\n args,\n ...options,\n });\n };\n },\n });\n }\n }\n if (hasWalletClient) {\n if (hasWriteFunction)\n contract.write = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n return getAction(walletClient, writeContract, 'writeContract')({\n abi,\n address,\n functionName,\n args,\n ...options,\n });\n };\n },\n });\n }\n if (hasPublicClient || hasWalletClient)\n if (hasWriteFunction)\n contract.estimateGas = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n const client = (publicClient ?? walletClient);\n return getAction(client, estimateContractGas, 'estimateContractGas')({\n abi,\n address,\n functionName,\n args,\n ...options,\n account: options.account ??\n walletClient.account,\n });\n };\n },\n });\n contract.address = address;\n contract.abi = abi;\n return contract;\n}\n/**\n * @internal exporting for testing only\n */\nexport function getFunctionParameters(values) {\n const hasArgs = values.length && Array.isArray(values[0]);\n const args = hasArgs ? values[0] : [];\n const options = (hasArgs ? values[1] : values[0]) ?? {};\n return { args, options };\n}\n/**\n * @internal exporting for testing only\n */\nexport function getEventParameters(values, abiEvent) {\n let hasArgs = false;\n // If first item is array, must be `args`\n if (Array.isArray(values[0]))\n hasArgs = true;\n // Check if first item is `args` or `options`\n else if (values.length === 1) {\n // if event has indexed inputs, must have `args`\n hasArgs = abiEvent.inputs.some((x) => x.indexed);\n // If there are two items in array, must have `args`\n }\n else if (values.length === 2) {\n hasArgs = true;\n }\n const args = hasArgs ? values[0] : undefined;\n const options = (hasArgs ? values[1] : values[0]) ?? {};\n return { args, options };\n}\n//# sourceMappingURL=getContract.js.map","var constants = require('../constants');\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = constants._reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = constants._reverse(exports.tag);\n","export const maxInt8 = 2n ** (8n - 1n) - 1n;\nexport const maxInt16 = 2n ** (16n - 1n) - 1n;\nexport const maxInt24 = 2n ** (24n - 1n) - 1n;\nexport const maxInt32 = 2n ** (32n - 1n) - 1n;\nexport const maxInt40 = 2n ** (40n - 1n) - 1n;\nexport const maxInt48 = 2n ** (48n - 1n) - 1n;\nexport const maxInt56 = 2n ** (56n - 1n) - 1n;\nexport const maxInt64 = 2n ** (64n - 1n) - 1n;\nexport const maxInt72 = 2n ** (72n - 1n) - 1n;\nexport const maxInt80 = 2n ** (80n - 1n) - 1n;\nexport const maxInt88 = 2n ** (88n - 1n) - 1n;\nexport const maxInt96 = 2n ** (96n - 1n) - 1n;\nexport const maxInt104 = 2n ** (104n - 1n) - 1n;\nexport const maxInt112 = 2n ** (112n - 1n) - 1n;\nexport const maxInt120 = 2n ** (120n - 1n) - 1n;\nexport const maxInt128 = 2n ** (128n - 1n) - 1n;\nexport const maxInt136 = 2n ** (136n - 1n) - 1n;\nexport const maxInt144 = 2n ** (144n - 1n) - 1n;\nexport const maxInt152 = 2n ** (152n - 1n) - 1n;\nexport const maxInt160 = 2n ** (160n - 1n) - 1n;\nexport const maxInt168 = 2n ** (168n - 1n) - 1n;\nexport const maxInt176 = 2n ** (176n - 1n) - 1n;\nexport const maxInt184 = 2n ** (184n - 1n) - 1n;\nexport const maxInt192 = 2n ** (192n - 1n) - 1n;\nexport const maxInt200 = 2n ** (200n - 1n) - 1n;\nexport const maxInt208 = 2n ** (208n - 1n) - 1n;\nexport const maxInt216 = 2n ** (216n - 1n) - 1n;\nexport const maxInt224 = 2n ** (224n - 1n) - 1n;\nexport const maxInt232 = 2n ** (232n - 1n) - 1n;\nexport const maxInt240 = 2n ** (240n - 1n) - 1n;\nexport const maxInt248 = 2n ** (248n - 1n) - 1n;\nexport const maxInt256 = 2n ** (256n - 1n) - 1n;\nexport const minInt8 = -(2n ** (8n - 1n));\nexport const minInt16 = -(2n ** (16n - 1n));\nexport const minInt24 = -(2n ** (24n - 1n));\nexport const minInt32 = -(2n ** (32n - 1n));\nexport const minInt40 = -(2n ** (40n - 1n));\nexport const minInt48 = -(2n ** (48n - 1n));\nexport const minInt56 = -(2n ** (56n - 1n));\nexport const minInt64 = -(2n ** (64n - 1n));\nexport const minInt72 = -(2n ** (72n - 1n));\nexport const minInt80 = -(2n ** (80n - 1n));\nexport const minInt88 = -(2n ** (88n - 1n));\nexport const minInt96 = -(2n ** (96n - 1n));\nexport const minInt104 = -(2n ** (104n - 1n));\nexport const minInt112 = -(2n ** (112n - 1n));\nexport const minInt120 = -(2n ** (120n - 1n));\nexport const minInt128 = -(2n ** (128n - 1n));\nexport const minInt136 = -(2n ** (136n - 1n));\nexport const minInt144 = -(2n ** (144n - 1n));\nexport const minInt152 = -(2n ** (152n - 1n));\nexport const minInt160 = -(2n ** (160n - 1n));\nexport const minInt168 = -(2n ** (168n - 1n));\nexport const minInt176 = -(2n ** (176n - 1n));\nexport const minInt184 = -(2n ** (184n - 1n));\nexport const minInt192 = -(2n ** (192n - 1n));\nexport const minInt200 = -(2n ** (200n - 1n));\nexport const minInt208 = -(2n ** (208n - 1n));\nexport const minInt216 = -(2n ** (216n - 1n));\nexport const minInt224 = -(2n ** (224n - 1n));\nexport const minInt232 = -(2n ** (232n - 1n));\nexport const minInt240 = -(2n ** (240n - 1n));\nexport const minInt248 = -(2n ** (248n - 1n));\nexport const minInt256 = -(2n ** (256n - 1n));\nexport const maxUint8 = 2n ** 8n - 1n;\nexport const maxUint16 = 2n ** 16n - 1n;\nexport const maxUint24 = 2n ** 24n - 1n;\nexport const maxUint32 = 2n ** 32n - 1n;\nexport const maxUint40 = 2n ** 40n - 1n;\nexport const maxUint48 = 2n ** 48n - 1n;\nexport const maxUint56 = 2n ** 56n - 1n;\nexport const maxUint64 = 2n ** 64n - 1n;\nexport const maxUint72 = 2n ** 72n - 1n;\nexport const maxUint80 = 2n ** 80n - 1n;\nexport const maxUint88 = 2n ** 88n - 1n;\nexport const maxUint96 = 2n ** 96n - 1n;\nexport const maxUint104 = 2n ** 104n - 1n;\nexport const maxUint112 = 2n ** 112n - 1n;\nexport const maxUint120 = 2n ** 120n - 1n;\nexport const maxUint128 = 2n ** 128n - 1n;\nexport const maxUint136 = 2n ** 136n - 1n;\nexport const maxUint144 = 2n ** 144n - 1n;\nexport const maxUint152 = 2n ** 152n - 1n;\nexport const maxUint160 = 2n ** 160n - 1n;\nexport const maxUint168 = 2n ** 168n - 1n;\nexport const maxUint176 = 2n ** 176n - 1n;\nexport const maxUint184 = 2n ** 184n - 1n;\nexport const maxUint192 = 2n ** 192n - 1n;\nexport const maxUint200 = 2n ** 200n - 1n;\nexport const maxUint208 = 2n ** 208n - 1n;\nexport const maxUint216 = 2n ** 216n - 1n;\nexport const maxUint224 = 2n ** 224n - 1n;\nexport const maxUint232 = 2n ** 232n - 1n;\nexport const maxUint240 = 2n ** 240n - 1n;\nexport const maxUint248 = 2n ** 248n - 1n;\nexport const maxUint256 = 2n ** 256n - 1n;\n//# sourceMappingURL=number.js.map","import { version } from './version.js';\nexport class BaseError extends Error {\n constructor(shortMessage, args = {}) {\n const details = args.cause instanceof BaseError\n ? args.cause.details\n : args.cause?.message\n ? args.cause.message\n : args.details;\n const docsPath = args.cause instanceof BaseError\n ? args.cause.docsPath || args.docsPath\n : args.docsPath;\n const message = [\n shortMessage || 'An error occurred.',\n '',\n ...(args.metaMessages ? [...args.metaMessages, ''] : []),\n ...(docsPath ? [`Docs: https://abitype.dev${docsPath}`] : []),\n ...(details ? [`Details: ${details}`] : []),\n `Version: abitype@${version}`,\n ].join('\\n');\n super(message);\n Object.defineProperty(this, \"details\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"docsPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"metaMessages\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"shortMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiTypeError'\n });\n if (args.cause)\n this.cause = args.cause;\n this.details = details;\n this.docsPath = docsPath;\n this.metaMessages = args.metaMessages;\n this.shortMessage = shortMessage;\n }\n}\n//# sourceMappingURL=errors.js.map","import * as Equal from \"../Equal.js\";\nimport * as Hash from \"../Hash.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport { SingleShotGen, YieldWrap } from \"../Utils.js\";\nimport * as OpCodes from \"./opCodes/effect.js\";\nimport * as version from \"./version.js\";\n/** @internal */\nexport const EffectTypeId = /*#__PURE__*/Symbol.for(\"effect/Effect\");\n/** @internal */\nexport const StreamTypeId = /*#__PURE__*/Symbol.for(\"effect/Stream\");\n/** @internal */\nexport const SinkTypeId = /*#__PURE__*/Symbol.for(\"effect/Sink\");\n/** @internal */\nexport const ChannelTypeId = /*#__PURE__*/Symbol.for(\"effect/Channel\");\n/** @internal */\nexport const effectVariance = {\n /* c8 ignore next */\n _R: _ => _,\n /* c8 ignore next */\n _E: _ => _,\n /* c8 ignore next */\n _A: _ => _,\n _V: /*#__PURE__*/version.getCurrentVersion()\n};\nconst sinkVariance = {\n /* c8 ignore next */\n _A: _ => _,\n /* c8 ignore next */\n _In: _ => _,\n /* c8 ignore next */\n _L: _ => _,\n /* c8 ignore next */\n _E: _ => _,\n /* c8 ignore next */\n _R: _ => _\n};\nconst channelVariance = {\n /* c8 ignore next */\n _Env: _ => _,\n /* c8 ignore next */\n _InErr: _ => _,\n /* c8 ignore next */\n _InElem: _ => _,\n /* c8 ignore next */\n _InDone: _ => _,\n /* c8 ignore next */\n _OutErr: _ => _,\n /* c8 ignore next */\n _OutElem: _ => _,\n /* c8 ignore next */\n _OutDone: _ => _\n};\n/** @internal */\nexport const EffectPrototype = {\n [EffectTypeId]: effectVariance,\n [StreamTypeId]: effectVariance,\n [SinkTypeId]: sinkVariance,\n [ChannelTypeId]: channelVariance,\n [Equal.symbol](that) {\n return this === that;\n },\n [Hash.symbol]() {\n return Hash.cached(this, Hash.random(this));\n },\n [Symbol.iterator]() {\n return new SingleShotGen(new YieldWrap(this));\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\n/** @internal */\nexport const StructuralPrototype = {\n [Hash.symbol]() {\n return Hash.cached(this, Hash.structure(this));\n },\n [Equal.symbol](that) {\n const selfKeys = Object.keys(this);\n const thatKeys = Object.keys(that);\n if (selfKeys.length !== thatKeys.length) {\n return false;\n }\n for (const key of selfKeys) {\n if (!(key in that && Equal.equals(this[key], that[key]))) {\n return false;\n }\n }\n return true;\n }\n};\n/** @internal */\nexport const CommitPrototype = {\n ...EffectPrototype,\n _op: OpCodes.OP_COMMIT\n};\n/** @internal */\nexport const StructuralCommitPrototype = {\n ...CommitPrototype,\n ...StructuralPrototype\n};\n/** @internal */\nexport const Base = /*#__PURE__*/function () {\n function Base() {}\n Base.prototype = CommitPrototype;\n return Base;\n}();\n/** @internal */\nexport const StructuralBase = /*#__PURE__*/function () {\n function Base() {}\n Base.prototype = StructuralCommitPrototype;\n return Base;\n}();\n//# sourceMappingURL=effectable.js.map","import { BaseError } from './base.js';\nexport class IntegerOutOfRangeError extends BaseError {\n constructor({ max, min, signed, size, value, }) {\n super(`Number \"${value}\" is not in safe ${size ? `${size * 8}-bit ${signed ? 'signed' : 'unsigned'} ` : ''}integer range ${max ? `(${min} to ${max})` : `(above ${min})`}`, { name: 'IntegerOutOfRangeError' });\n }\n}\nexport class InvalidBytesBooleanError extends BaseError {\n constructor(bytes) {\n super(`Bytes value \"${bytes}\" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`, {\n name: 'InvalidBytesBooleanError',\n });\n }\n}\nexport class InvalidHexBooleanError extends BaseError {\n constructor(hex) {\n super(`Hex value \"${hex}\" is not a valid boolean. The hex value must be \"0x0\" (false) or \"0x1\" (true).`, { name: 'InvalidHexBooleanError' });\n }\n}\nexport class InvalidHexValueError extends BaseError {\n constructor(value) {\n super(`Hex value \"${value}\" is an odd length (${value.length}). It must be an even length.`, { name: 'InvalidHexValueError' });\n }\n}\nexport class SizeOverflowError extends BaseError {\n constructor({ givenSize, maxSize }) {\n super(`Size cannot exceed ${maxSize} bytes. Given size: ${givenSize} bytes.`, { name: 'SizeOverflowError' });\n }\n}\n//# sourceMappingURL=encoding.js.map","import { BaseFeeScalarError, Eip1559FeesNotSupportedError, } from '../../errors/fee.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { internal_estimateMaxPriorityFeePerGas, } from './estimateMaxPriorityFeePerGas.js';\nimport { getBlock } from './getBlock.js';\nimport { getGasPrice } from './getGasPrice.js';\n/**\n * Returns an estimate for the fees per gas (in wei) for a\n * transaction to be likely included in the next block.\n * Defaults to [`chain.fees.estimateFeesPerGas`](/docs/clients/chains#fees-estimatefeespergas) if set.\n *\n * - Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\n *\n * @param client - Client to use\n * @param parameters - {@link EstimateFeesPerGasParameters}\n * @returns An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { estimateFeesPerGas } from 'viem/actions'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const maxPriorityFeePerGas = await estimateFeesPerGas(client)\n * // { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\n */\nexport async function estimateFeesPerGas(client, args) {\n return internal_estimateFeesPerGas(client, args);\n}\nexport async function internal_estimateFeesPerGas(client, args) {\n const { block: block_, chain = client.chain, request, type = 'eip1559', } = args || {};\n const baseFeeMultiplier = await (async () => {\n if (typeof chain?.fees?.baseFeeMultiplier === 'function')\n return chain.fees.baseFeeMultiplier({\n block: block_,\n client,\n request,\n });\n return chain?.fees?.baseFeeMultiplier ?? 1.2;\n })();\n if (baseFeeMultiplier < 1)\n throw new BaseFeeScalarError();\n const decimals = baseFeeMultiplier.toString().split('.')[1]?.length ?? 0;\n const denominator = 10 ** decimals;\n const multiply = (base) => (base * BigInt(Math.ceil(baseFeeMultiplier * denominator))) /\n BigInt(denominator);\n const block = block_\n ? block_\n : await getAction(client, getBlock, 'getBlock')({});\n if (typeof chain?.fees?.estimateFeesPerGas === 'function') {\n const fees = (await chain.fees.estimateFeesPerGas({\n block: block_,\n client,\n multiply,\n request,\n type,\n }));\n if (fees !== null)\n return fees;\n }\n if (type === 'eip1559') {\n if (typeof block.baseFeePerGas !== 'bigint')\n throw new Eip1559FeesNotSupportedError();\n const maxPriorityFeePerGas = typeof request?.maxPriorityFeePerGas === 'bigint'\n ? request.maxPriorityFeePerGas\n : await internal_estimateMaxPriorityFeePerGas(client, {\n block: block,\n chain,\n request,\n });\n const baseFeePerGas = multiply(block.baseFeePerGas);\n const maxFeePerGas = request?.maxFeePerGas ?? baseFeePerGas + maxPriorityFeePerGas;\n return {\n maxFeePerGas,\n maxPriorityFeePerGas,\n };\n }\n const gasPrice = request?.gasPrice ??\n multiply(await getAction(client, getGasPrice, 'getGasPrice')({}));\n return {\n gasPrice,\n };\n}\n//# sourceMappingURL=estimateFeesPerGas.js.map","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","import { equalBytes } from '@noble/curves/abstract/utils';\nimport * as Bytes from './Bytes.js';\nimport * as Errors from './Errors.js';\nimport * as internal_bytes from './internal/bytes.js';\nimport * as internal from './internal/hex.js';\nimport * as Json from './Json.js';\nconst encoder = /*#__PURE__*/ new TextEncoder();\nconst hexes = /*#__PURE__*/ Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));\n/**\n * Asserts if the given value is {@link ox#Hex.Hex}.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.assert('abc')\n * // @error: InvalidHexValueTypeError:\n * // @error: Value `\"abc\"` of type `string` is an invalid hex type.\n * // @error: Hex types must be represented as `\"0x\\${string}\"`.\n * ```\n *\n * @param value - The value to assert.\n * @param options - Options.\n */\nexport function assert(value, options = {}) {\n const { strict = false } = options;\n if (!value)\n throw new InvalidHexTypeError(value);\n if (typeof value !== 'string')\n throw new InvalidHexTypeError(value);\n if (strict) {\n if (!/^0x[0-9a-fA-F]*$/.test(value))\n throw new InvalidHexValueError(value);\n }\n if (!value.startsWith('0x'))\n throw new InvalidHexValueError(value);\n}\n/**\n * Concatenates two or more {@link ox#Hex.Hex}.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.concat('0x123', '0x456')\n * // @log: '0x123456'\n * ```\n *\n * @param values - The {@link ox#Hex.Hex} values to concatenate.\n * @returns The concatenated {@link ox#Hex.Hex} value.\n */\nexport function concat(...values) {\n return `0x${values.reduce((acc, x) => acc + x.replace('0x', ''), '')}`;\n}\n/**\n * Instantiates a {@link ox#Hex.Hex} value from a hex string or {@link ox#Bytes.Bytes} value.\n *\n * :::tip\n *\n * To instantiate from a **Boolean**, **String**, or **Number**, use one of the following:\n *\n * - `Hex.fromBoolean`\n *\n * - `Hex.fromString`\n *\n * - `Hex.fromNumber`\n *\n * :::\n *\n * @example\n * ```ts twoslash\n * import { Bytes, Hex } from 'ox'\n *\n * Hex.from('0x48656c6c6f20576f726c6421')\n * // @log: '0x48656c6c6f20576f726c6421'\n *\n * Hex.from(Bytes.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))\n * // @log: '0x48656c6c6f20576f726c6421'\n * ```\n *\n * @param value - The {@link ox#Bytes.Bytes} value to encode.\n * @returns The encoded {@link ox#Hex.Hex} value.\n */\nexport function from(value) {\n if (value instanceof Uint8Array)\n return fromBytes(value);\n if (Array.isArray(value))\n return fromBytes(new Uint8Array(value));\n return value;\n}\n/**\n * Encodes a boolean into a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.fromBoolean(true)\n * // @log: '0x1'\n *\n * Hex.fromBoolean(false)\n * // @log: '0x0'\n *\n * Hex.fromBoolean(true, { size: 32 })\n * // @log: '0x0000000000000000000000000000000000000000000000000000000000000001'\n * ```\n *\n * @param value - The boolean value to encode.\n * @param options - Options.\n * @returns The encoded {@link ox#Hex.Hex} value.\n */\nexport function fromBoolean(value, options = {}) {\n const hex = `0x${Number(value)}`;\n if (typeof options.size === 'number') {\n internal.assertSize(hex, options.size);\n return padLeft(hex, options.size);\n }\n return hex;\n}\n/**\n * Encodes a {@link ox#Bytes.Bytes} value into a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Bytes, Hex } from 'ox'\n *\n * Hex.fromBytes(Bytes.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))\n * // @log: '0x48656c6c6f20576f726c6421'\n * ```\n *\n * @param value - The {@link ox#Bytes.Bytes} value to encode.\n * @param options - Options.\n * @returns The encoded {@link ox#Hex.Hex} value.\n */\nexport function fromBytes(value, options = {}) {\n let string = '';\n for (let i = 0; i < value.length; i++)\n string += hexes[value[i]];\n const hex = `0x${string}`;\n if (typeof options.size === 'number') {\n internal.assertSize(hex, options.size);\n return padRight(hex, options.size);\n }\n return hex;\n}\n/**\n * Encodes a number or bigint into a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.fromNumber(420)\n * // @log: '0x1a4'\n *\n * Hex.fromNumber(420, { size: 32 })\n * // @log: '0x00000000000000000000000000000000000000000000000000000000000001a4'\n * ```\n *\n * @param value - The number or bigint value to encode.\n * @param options - Options.\n * @returns The encoded {@link ox#Hex.Hex} value.\n */\nexport function fromNumber(value, options = {}) {\n const { signed, size } = options;\n const value_ = BigInt(value);\n let maxValue;\n if (size) {\n if (signed)\n maxValue = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n else\n maxValue = 2n ** (BigInt(size) * 8n) - 1n;\n }\n else if (typeof value === 'number') {\n maxValue = BigInt(Number.MAX_SAFE_INTEGER);\n }\n const minValue = typeof maxValue === 'bigint' && signed ? -maxValue - 1n : 0;\n if ((maxValue && value_ > maxValue) || value_ < minValue) {\n const suffix = typeof value === 'bigint' ? 'n' : '';\n throw new IntegerOutOfRangeError({\n max: maxValue ? `${maxValue}${suffix}` : undefined,\n min: `${minValue}${suffix}`,\n signed,\n size,\n value: `${value}${suffix}`,\n });\n }\n const stringValue = (signed && value_ < 0 ? BigInt.asUintN(size * 8, BigInt(value_)) : value_).toString(16);\n const hex = `0x${stringValue}`;\n if (size)\n return padLeft(hex, size);\n return hex;\n}\n/**\n * Encodes a string into a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n * Hex.fromString('Hello World!')\n * // '0x48656c6c6f20576f726c6421'\n *\n * Hex.fromString('Hello World!', { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n * ```\n *\n * @param value - The string value to encode.\n * @param options - Options.\n * @returns The encoded {@link ox#Hex.Hex} value.\n */\nexport function fromString(value, options = {}) {\n return fromBytes(encoder.encode(value), options);\n}\n/**\n * Checks if two {@link ox#Hex.Hex} values are equal.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.isEqual('0xdeadbeef', '0xdeadbeef')\n * // @log: true\n *\n * Hex.isEqual('0xda', '0xba')\n * // @log: false\n * ```\n *\n * @param hexA - The first {@link ox#Hex.Hex} value.\n * @param hexB - The second {@link ox#Hex.Hex} value.\n * @returns `true` if the two {@link ox#Hex.Hex} values are equal, `false` otherwise.\n */\nexport function isEqual(hexA, hexB) {\n return equalBytes(Bytes.fromHex(hexA), Bytes.fromHex(hexB));\n}\n/**\n * Pads a {@link ox#Hex.Hex} value to the left with zero bytes until it reaches the given `size` (default: 32 bytes).\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.padLeft('0x1234', 4)\n * // @log: '0x00001234'\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to pad.\n * @param size - The size (in bytes) of the output hex value.\n * @returns The padded {@link ox#Hex.Hex} value.\n */\nexport function padLeft(value, size) {\n return internal.pad(value, { dir: 'left', size });\n}\n/**\n * Pads a {@link ox#Hex.Hex} value to the right with zero bytes until it reaches the given `size` (default: 32 bytes).\n *\n * @example\n * ```ts\n * import { Hex } from 'ox'\n *\n * Hex.padRight('0x1234', 4)\n * // @log: '0x12340000'\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to pad.\n * @param size - The size (in bytes) of the output hex value.\n * @returns The padded {@link ox#Hex.Hex} value.\n */\nexport function padRight(value, size) {\n return internal.pad(value, { dir: 'right', size });\n}\n/**\n * Generates a random {@link ox#Hex.Hex} value of the specified length.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * const hex = Hex.random(32)\n * // @log: '0x...'\n * ```\n *\n * @returns Random {@link ox#Hex.Hex} value.\n */\nexport function random(length) {\n return fromBytes(Bytes.random(length));\n}\n/**\n * Returns a section of a {@link ox#Bytes.Bytes} value given a start/end bytes offset.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.slice('0x0123456789', 1, 4)\n * // @log: '0x234567'\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to slice.\n * @param start - The start offset (in bytes).\n * @param end - The end offset (in bytes).\n * @param options - Options.\n * @returns The sliced {@link ox#Hex.Hex} value.\n */\nexport function slice(value, start, end, options = {}) {\n const { strict } = options;\n internal.assertStartOffset(value, start);\n const value_ = `0x${value\n .replace('0x', '')\n .slice((start ?? 0) * 2, (end ?? value.length) * 2)}`;\n if (strict)\n internal.assertEndOffset(value_, start, end);\n return value_;\n}\n/**\n * Retrieves the size of a {@link ox#Hex.Hex} value (in bytes).\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.size('0xdeadbeef')\n * // @log: 4\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to get the size of.\n * @returns The size of the {@link ox#Hex.Hex} value (in bytes).\n */\nexport function size(value) {\n return Math.ceil((value.length - 2) / 2);\n}\n/**\n * Trims leading zeros from a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.trimLeft('0x00000000deadbeef')\n * // @log: '0xdeadbeef'\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to trim.\n * @returns The trimmed {@link ox#Hex.Hex} value.\n */\nexport function trimLeft(value) {\n return internal.trim(value, { dir: 'left' });\n}\n/**\n * Trims trailing zeros from a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.trimRight('0xdeadbeef00000000')\n * // @log: '0xdeadbeef'\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to trim.\n * @returns The trimmed {@link ox#Hex.Hex} value.\n */\nexport function trimRight(value) {\n return internal.trim(value, { dir: 'right' });\n}\n/**\n * Decodes a {@link ox#Hex.Hex} value into a BigInt.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.toBigInt('0x1a4')\n * // @log: 420n\n *\n * Hex.toBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // @log: 420n\n * ```\n *\n * @param hex - The {@link ox#Hex.Hex} value to decode.\n * @param options - Options.\n * @returns The decoded BigInt.\n */\nexport function toBigInt(hex, options = {}) {\n const { signed } = options;\n if (options.size)\n internal.assertSize(hex, options.size);\n const value = BigInt(hex);\n if (!signed)\n return value;\n const size = (hex.length - 2) / 2;\n const max_unsigned = (1n << (BigInt(size) * 8n)) - 1n;\n const max_signed = max_unsigned >> 1n;\n if (value <= max_signed)\n return value;\n return value - max_unsigned - 1n;\n}\n/**\n * Decodes a {@link ox#Hex.Hex} value into a boolean.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.toBoolean('0x01')\n * // @log: true\n *\n * Hex.toBoolean('0x0000000000000000000000000000000000000000000000000000000000000001', { size: 32 })\n * // @log: true\n * ```\n *\n * @param hex - The {@link ox#Hex.Hex} value to decode.\n * @param options - Options.\n * @returns The decoded boolean.\n */\nexport function toBoolean(hex, options = {}) {\n if (options.size)\n internal.assertSize(hex, options.size);\n const hex_ = trimLeft(hex);\n if (hex_ === '0x')\n return false;\n if (hex_ === '0x1')\n return true;\n throw new InvalidHexBooleanError(hex);\n}\n/**\n * Decodes a {@link ox#Hex.Hex} value into a {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * const data = Hex.toBytes('0x48656c6c6f20776f726c6421')\n * // @log: Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n * ```\n *\n * @param hex - The {@link ox#Hex.Hex} value to decode.\n * @param options - Options.\n * @returns The decoded {@link ox#Bytes.Bytes}.\n */\nexport function toBytes(hex, options = {}) {\n return Bytes.fromHex(hex, options);\n}\n/**\n * Decodes a {@link ox#Hex.Hex} value into a number.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.toNumber('0x1a4')\n * // @log: 420\n *\n * Hex.toNumber('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // @log: 420\n * ```\n *\n * @param hex - The {@link ox#Hex.Hex} value to decode.\n * @param options - Options.\n * @returns The decoded number.\n */\nexport function toNumber(hex, options = {}) {\n const { signed, size } = options;\n if (!signed && !size)\n return Number(hex);\n return Number(toBigInt(hex, options));\n}\n/**\n * Decodes a {@link ox#Hex.Hex} value into a string.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.toString('0x48656c6c6f20576f726c6421')\n * // @log: 'Hello world!'\n *\n * Hex.toString('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * })\n * // @log: 'Hello world'\n * ```\n *\n * @param hex - The {@link ox#Hex.Hex} value to decode.\n * @param options - Options.\n * @returns The decoded string.\n */\nexport function toString(hex, options = {}) {\n const { size } = options;\n let bytes = Bytes.fromHex(hex);\n if (size) {\n internal_bytes.assertSize(bytes, size);\n bytes = Bytes.trimRight(bytes);\n }\n return new TextDecoder().decode(bytes);\n}\n/**\n * Checks if the given value is {@link ox#Hex.Hex}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes, Hex } from 'ox'\n *\n * Hex.validate('0xdeadbeef')\n * // @log: true\n *\n * Hex.validate(Bytes.from([1, 2, 3]))\n * // @log: false\n * ```\n *\n * @param value - The value to check.\n * @param options - Options.\n * @returns `true` if the value is a {@link ox#Hex.Hex}, `false` otherwise.\n */\nexport function validate(value, options = {}) {\n const { strict = false } = options;\n try {\n assert(value, { strict });\n return true;\n }\n catch {\n return false;\n }\n}\n/**\n * Thrown when the provided integer is out of range, and cannot be represented as a hex value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.fromNumber(420182738912731283712937129)\n * // @error: Hex.IntegerOutOfRangeError: Number \\`4.2018273891273126e+26\\` is not in safe unsigned integer range (`0` to `9007199254740991`)\n * ```\n */\nexport class IntegerOutOfRangeError extends Errors.BaseError {\n constructor({ max, min, signed, size, value, }) {\n super(`Number \\`${value}\\` is not in safe${size ? ` ${size * 8}-bit` : ''}${signed ? ' signed' : ' unsigned'} integer range ${max ? `(\\`${min}\\` to \\`${max}\\`)` : `(above \\`${min}\\`)`}`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.IntegerOutOfRangeError'\n });\n }\n}\n/**\n * Thrown when the provided hex value cannot be represented as a boolean.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.toBoolean('0xa')\n * // @error: Hex.InvalidHexBooleanError: Hex value `\"0xa\"` is not a valid boolean.\n * // @error: The hex value must be `\"0x0\"` (false) or `\"0x1\"` (true).\n * ```\n */\nexport class InvalidHexBooleanError extends Errors.BaseError {\n constructor(hex) {\n super(`Hex value \\`\"${hex}\"\\` is not a valid boolean.`, {\n metaMessages: [\n 'The hex value must be `\"0x0\"` (false) or `\"0x1\"` (true).',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.InvalidHexBooleanError'\n });\n }\n}\n/**\n * Thrown when the provided value is not a valid hex type.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.assert(1)\n * // @error: Hex.InvalidHexTypeError: Value `1` of type `number` is an invalid hex type.\n * ```\n */\nexport class InvalidHexTypeError extends Errors.BaseError {\n constructor(value) {\n super(`Value \\`${typeof value === 'object' ? Json.stringify(value) : value}\\` of type \\`${typeof value}\\` is an invalid hex type.`, {\n metaMessages: ['Hex types must be represented as `\"0x${string}\"`.'],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.InvalidHexTypeError'\n });\n }\n}\n/**\n * Thrown when the provided hex value is invalid.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.assert('0x0123456789abcdefg')\n * // @error: Hex.InvalidHexValueError: Value `0x0123456789abcdefg` is an invalid hex value.\n * // @error: Hex values must start with `\"0x\"` and contain only hexadecimal characters (0-9, a-f, A-F).\n * ```\n */\nexport class InvalidHexValueError extends Errors.BaseError {\n constructor(value) {\n super(`Value \\`${value}\\` is an invalid hex value.`, {\n metaMessages: [\n 'Hex values must start with `\"0x\"` and contain only hexadecimal characters (0-9, a-f, A-F).',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.InvalidHexValueError'\n });\n }\n}\n/**\n * Thrown when the provided hex value is an odd length.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.fromHex('0xabcde')\n * // @error: Hex.InvalidLengthError: Hex value `\"0xabcde\"` is an odd length (5 nibbles).\n * ```\n */\nexport class InvalidLengthError extends Errors.BaseError {\n constructor(value) {\n super(`Hex value \\`\"${value}\"\\` is an odd length (${value.length - 2} nibbles).`, {\n metaMessages: ['It must be an even length.'],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.InvalidLengthError'\n });\n }\n}\n/**\n * Thrown when the size of the value exceeds the expected max size.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.fromString('Hello World!', { size: 8 })\n * // @error: Hex.SizeOverflowError: Size cannot exceed `8` bytes. Given size: `12` bytes.\n * ```\n */\nexport class SizeOverflowError extends Errors.BaseError {\n constructor({ givenSize, maxSize }) {\n super(`Size cannot exceed \\`${maxSize}\\` bytes. Given size: \\`${givenSize}\\` bytes.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.SizeOverflowError'\n });\n }\n}\n/**\n * Thrown when the slice offset exceeds the bounds of the value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.slice('0x0123456789', 6)\n * // @error: Hex.SliceOffsetOutOfBoundsError: Slice starting at offset `6` is out-of-bounds (size: `5`).\n * ```\n */\nexport class SliceOffsetOutOfBoundsError extends Errors.BaseError {\n constructor({ offset, position, size, }) {\n super(`Slice ${position === 'start' ? 'starting' : 'ending'} at offset \\`${offset}\\` is out-of-bounds (size: \\`${size}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.SliceOffsetOutOfBoundsError'\n });\n }\n}\n/**\n * Thrown when the size of the value exceeds the pad size.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.padLeft('0x1a4e12a45a21323123aaa87a897a897a898a6567a578a867a98778a667a85a875a87a6a787a65a675a6a9', 32)\n * // @error: Hex.SizeExceedsPaddingSizeError: Hex size (`43`) exceeds padding size (`32`).\n * ```\n */\nexport class SizeExceedsPaddingSizeError extends Errors.BaseError {\n constructor({ size, targetSize, type, }) {\n super(`${type.charAt(0).toUpperCase()}${type\n .slice(1)\n .toLowerCase()} size (\\`${size}\\`) exceeds padding size (\\`${targetSize}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.SizeExceedsPaddingSizeError'\n });\n }\n}\n//# sourceMappingURL=Hex.js.map","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","import { hexToBytes } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\n/**\n * Compute commitments from a list of blobs.\n *\n * @example\n * ```ts\n * import { blobsToCommitments, toBlobs } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * ```\n */\nexport function blobsToCommitments(parameters) {\n const { kzg } = parameters;\n const to = parameters.to ?? (typeof parameters.blobs[0] === 'string' ? 'hex' : 'bytes');\n const blobs = (typeof parameters.blobs[0] === 'string'\n ? parameters.blobs.map((x) => hexToBytes(x))\n : parameters.blobs);\n const commitments = [];\n for (const blob of blobs)\n commitments.push(Uint8Array.from(kzg.blobToKzgCommitment(blob)));\n return (to === 'bytes'\n ? commitments\n : commitments.map((x) => bytesToHex(x)));\n}\n//# sourceMappingURL=blobsToCommitments.js.map","import { ChainDoesNotSupportContract, } from '../../errors/chain.js';\nexport function getChainContractAddress({ blockNumber, chain, contract: name, }) {\n const contract = chain?.contracts?.[name];\n if (!contract)\n throw new ChainDoesNotSupportContract({\n chain,\n contract: { name },\n });\n if (blockNumber &&\n contract.blockCreated &&\n contract.blockCreated > blockNumber)\n throw new ChainDoesNotSupportContract({\n blockNumber,\n chain,\n contract: {\n name,\n blockCreated: contract.blockCreated,\n },\n });\n return contract.address;\n}\n//# sourceMappingURL=getChainContractAddress.js.map","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports[\"default\"]=void 0;var _copy=_interopRequireDefault(require(\"../copy\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{\"default\":obj}}var chi=function chi(_ref){var A=_ref.A,C=_ref.C;for(var y=0;y<25;y+=5){for(var x=0;x<5;x++){(0,_copy[\"default\"])(A,y+x)(C,x)}for(var _x=0;_x<5;_x++){var xy=(y+_x)*2;var x1=(_x+1)%5*2;var x2=(_x+2)%5*2;A[xy]^=~C[x1]&C[x2];A[xy+1]^=~C[x1+1]&C[x2+1]}}};var _default=chi;exports[\"default\"]=_default;","import { BaseError } from '../../errors.js';\nexport class CircularReferenceError extends BaseError {\n constructor({ type }) {\n super('Circular reference detected.', {\n metaMessages: [`Struct \"${type}\" is a circular reference.`],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'CircularReferenceError'\n });\n }\n}\n//# sourceMappingURL=struct.js.map","import { execTyped, isTupleRegex } from '../../regex.js';\nimport { UnknownTypeError } from '../errors/abiItem.js';\nimport { InvalidAbiTypeParameterError } from '../errors/abiParameter.js';\nimport { InvalidSignatureError, InvalidStructSignatureError, } from '../errors/signature.js';\nimport { CircularReferenceError } from '../errors/struct.js';\nimport { execStructSignature, isStructSignature } from './signatures.js';\nimport { isSolidityType, parseAbiParameter } from './utils.js';\nexport function parseStructs(signatures) {\n // Create \"shallow\" version of each struct (and filter out non-structs or invalid structs)\n const shallowStructs = {};\n const signaturesLength = signatures.length;\n for (let i = 0; i < signaturesLength; i++) {\n const signature = signatures[i];\n if (!isStructSignature(signature))\n continue;\n const match = execStructSignature(signature);\n if (!match)\n throw new InvalidSignatureError({ signature, type: 'struct' });\n const properties = match.properties.split(';');\n const components = [];\n const propertiesLength = properties.length;\n for (let k = 0; k < propertiesLength; k++) {\n const property = properties[k];\n const trimmed = property.trim();\n if (!trimmed)\n continue;\n const abiParameter = parseAbiParameter(trimmed, {\n type: 'struct',\n });\n components.push(abiParameter);\n }\n if (!components.length)\n throw new InvalidStructSignatureError({ signature });\n shallowStructs[match.name] = components;\n }\n // Resolve nested structs inside each parameter\n const resolvedStructs = {};\n const entries = Object.entries(shallowStructs);\n const entriesLength = entries.length;\n for (let i = 0; i < entriesLength; i++) {\n const [name, parameters] = entries[i];\n resolvedStructs[name] = resolveStructs(parameters, shallowStructs);\n }\n return resolvedStructs;\n}\nconst typeWithoutTupleRegex = /^(?[a-zA-Z$_][a-zA-Z0-9$_]*)(?(?:\\[\\d*?\\])+?)?$/;\nfunction resolveStructs(abiParameters = [], structs = {}, ancestors = new Set()) {\n const components = [];\n const length = abiParameters.length;\n for (let i = 0; i < length; i++) {\n const abiParameter = abiParameters[i];\n const isTuple = isTupleRegex.test(abiParameter.type);\n if (isTuple)\n components.push(abiParameter);\n else {\n const match = execTyped(typeWithoutTupleRegex, abiParameter.type);\n if (!match?.type)\n throw new InvalidAbiTypeParameterError({ abiParameter });\n const { array, type } = match;\n if (type in structs) {\n if (ancestors.has(type))\n throw new CircularReferenceError({ type });\n components.push({\n ...abiParameter,\n type: `tuple${array ?? ''}`,\n components: resolveStructs(structs[type], structs, new Set([...ancestors, type])),\n });\n }\n else {\n if (isSolidityType(type))\n components.push(abiParameter);\n else\n throw new UnknownTypeError({ type });\n }\n }\n }\n return components;\n}\n//# sourceMappingURL=structs.js.map","(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 // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\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 len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n 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 BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n 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.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n this.length = num === 0 ? 1 : this.length;\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is 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 return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","import { gweiUnits } from '../../constants/unit.js';\nimport { parseUnits } from './parseUnits.js';\n/**\n * Converts a string representation of gwei to numerical wei.\n *\n * - Docs: https://viem.sh/docs/utilities/parseGwei\n *\n * @example\n * import { parseGwei } from 'viem'\n *\n * parseGwei('420')\n * // 420000000000n\n */\nexport function parseGwei(ether, unit = 'wei') {\n return parseUnits(ether, gweiUnits[unit]);\n}\n//# sourceMappingURL=parseGwei.js.map","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","import * as Inspectable from \"../../Inspectable.js\";\n/** @internal */\nexport const getKeysForIndexSignature = (input, parameter) => {\n switch (parameter._tag) {\n case \"StringKeyword\":\n case \"TemplateLiteral\":\n return Object.keys(input);\n case \"SymbolKeyword\":\n return Object.getOwnPropertySymbols(input);\n case \"Refinement\":\n return getKeysForIndexSignature(input, parameter.from);\n }\n};\n/** @internal */\nexport const memoizeThunk = f => {\n let done = false;\n let a;\n return () => {\n if (done) {\n return a;\n }\n a = f();\n done = true;\n return a;\n };\n};\n/** @internal */\nexport const isNonEmpty = x => Array.isArray(x);\n/** @internal */\nexport const isSingle = x => !Array.isArray(x);\n/** @internal */\nexport const formatPathKey = key => `[${Inspectable.formatPropertyKey(key)}]`;\n/** @internal */\nexport const formatPath = path => isNonEmpty(path) ? path.map(formatPathKey).join(\"\") : formatPathKey(path);\n//# sourceMappingURL=util.js.map","import { UnknownNodeError } from '../../errors/node.js';\nimport { TransactionExecutionError, } from '../../errors/transaction.js';\nimport { getNodeError, } from './getNodeError.js';\nexport function getTransactionError(err, { docsPath, ...args }) {\n const cause = (() => {\n const cause = getNodeError(err, args);\n if (cause instanceof UnknownNodeError)\n return err;\n return cause;\n })();\n return new TransactionExecutionError(cause, {\n docsPath,\n ...args,\n });\n}\n//# sourceMappingURL=getTransactionError.js.map","import { etherUnits } from '../../constants/unit.js';\nimport { parseUnits } from './parseUnits.js';\n/**\n * Converts a string representation of ether to numerical wei.\n *\n * - Docs: https://viem.sh/docs/utilities/parseEther\n *\n * @example\n * import { parseEther } from 'viem'\n *\n * parseEther('420')\n * // 420000000000000000000n\n */\nexport function parseEther(ether, unit = 'wei') {\n return parseUnits(ether, etherUnits[unit]);\n}\n//# sourceMappingURL=parseEther.js.map","/**\n * Internal Merkle-Damgard hash utils.\n * @module\n */\nimport { Hash, abytes, aexists, aoutput, clean, createView, toBytes } from \"./utils.js\";\n/** Polyfill for Safari 14. https://caniuse.com/mdn-javascript_builtins_dataview_setbiguint64 */\nexport function 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/** Choice: a ? b : c */\nexport function Chi(a, b, c) {\n return (a & b) ^ (~a & c);\n}\n/** Majority function, true if any two inputs is true. */\nexport function Maj(a, b, c) {\n return (a & b) ^ (a & c) ^ (b & c);\n}\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport class HashMD extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n aexists(this);\n data = toBytes(data);\n abytes(data);\n const { view, buffer, blockLen } = this;\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 aexists(this);\n aoutput(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 clean(this.buffer.subarray(pos));\n // we have less than padOffset left in buffer, so we cannot put length in\n // 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.destroyed = destroyed;\n to.finished = finished;\n to.length = length;\n to.pos = pos;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n clone() {\n return this._cloneInto();\n }\n}\n/**\n * Initial SHA-2 state: fractional parts of square roots of first 16 primes 2..53.\n * Check out `test/misc/sha2-gen-iv.js` for recomputation guide.\n */\n/** Initial SHA256 state. Bits 0..32 of frac part of sqrt of primes 2..19 */\nexport const SHA256_IV = /* @__PURE__ */ Uint32Array.from([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,\n]);\n/** Initial SHA224 state. Bits 32..64 of frac part of sqrt of primes 23..53 */\nexport const SHA224_IV = /* @__PURE__ */ Uint32Array.from([\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4,\n]);\n/** Initial SHA384 state. Bits 0..64 of frac part of sqrt of primes 23..53 */\nexport const SHA384_IV = /* @__PURE__ */ Uint32Array.from([\n 0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507, 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511, 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4,\n]);\n/** Initial SHA512 state. Bits 0..64 of frac part of sqrt of primes 2..19 */\nexport const SHA512_IV = /* @__PURE__ */ Uint32Array.from([\n 0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179,\n]);\n//# sourceMappingURL=_md.js.map","/**\n * SHA2 hash function. A.k.a. sha256, sha384, sha512, sha512_224, sha512_256.\n * SHA256 is the fastest hash implementable in JS, even faster than Blake3.\n * Check out [RFC 4634](https://datatracker.ietf.org/doc/html/rfc4634) and\n * [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n */\nimport { Chi, HashMD, Maj, SHA224_IV, SHA256_IV, SHA384_IV, SHA512_IV } from \"./_md.js\";\nimport * as u64 from \"./_u64.js\";\nimport { clean, createHasher, rotr } from \"./utils.js\";\n/**\n * Round constants:\n * First 32 bits of fractional parts of the cube roots of the first 64 primes 2..311)\n */\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ Uint32Array.from([\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/** Reusable temporary buffer. \"W\" comes straight from spec. */\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nexport class SHA256 extends HashMD {\n constructor(outputLen = 32) {\n super(64, outputLen, 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 = SHA256_IV[0] | 0;\n this.B = SHA256_IV[1] | 0;\n this.C = SHA256_IV[2] | 0;\n this.D = SHA256_IV[3] | 0;\n this.E = SHA256_IV[4] | 0;\n this.F = SHA256_IV[5] | 0;\n this.G = SHA256_IV[6] | 0;\n this.H = SHA256_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 clean(SHA256_W);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n clean(this.buffer);\n }\n}\nexport class SHA224 extends SHA256 {\n constructor() {\n super(28);\n this.A = SHA224_IV[0] | 0;\n this.B = SHA224_IV[1] | 0;\n this.C = SHA224_IV[2] | 0;\n this.D = SHA224_IV[3] | 0;\n this.E = SHA224_IV[4] | 0;\n this.F = SHA224_IV[5] | 0;\n this.G = SHA224_IV[6] | 0;\n this.H = SHA224_IV[7] | 0;\n }\n}\n// SHA2-512 is slower than sha256 in js because u64 operations are slow.\n// Round contants\n// First 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409\n// prettier-ignore\nconst K512 = /* @__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))))();\nconst SHA512_Kh = /* @__PURE__ */ (() => K512[0])();\nconst SHA512_Kl = /* @__PURE__ */ (() => K512[1])();\n// Reusable temporary buffers\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\nexport class SHA512 extends HashMD {\n constructor(outputLen = 64) {\n super(128, outputLen, 16, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = SHA512_IV[0] | 0;\n this.Al = SHA512_IV[1] | 0;\n this.Bh = SHA512_IV[2] | 0;\n this.Bl = SHA512_IV[3] | 0;\n this.Ch = SHA512_IV[4] | 0;\n this.Cl = SHA512_IV[5] | 0;\n this.Dh = SHA512_IV[6] | 0;\n this.Dl = SHA512_IV[7] | 0;\n this.Eh = SHA512_IV[8] | 0;\n this.El = SHA512_IV[9] | 0;\n this.Fh = SHA512_IV[10] | 0;\n this.Fl = SHA512_IV[11] | 0;\n this.Gh = SHA512_IV[12] | 0;\n this.Gl = SHA512_IV[13] | 0;\n this.Hh = SHA512_IV[14] | 0;\n this.Hl = SHA512_IV[15] | 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 clean(SHA512_W_H, SHA512_W_L);\n }\n destroy() {\n clean(this.buffer);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nexport class SHA384 extends SHA512 {\n constructor() {\n super(48);\n this.Ah = SHA384_IV[0] | 0;\n this.Al = SHA384_IV[1] | 0;\n this.Bh = SHA384_IV[2] | 0;\n this.Bl = SHA384_IV[3] | 0;\n this.Ch = SHA384_IV[4] | 0;\n this.Cl = SHA384_IV[5] | 0;\n this.Dh = SHA384_IV[6] | 0;\n this.Dl = SHA384_IV[7] | 0;\n this.Eh = SHA384_IV[8] | 0;\n this.El = SHA384_IV[9] | 0;\n this.Fh = SHA384_IV[10] | 0;\n this.Fl = SHA384_IV[11] | 0;\n this.Gh = SHA384_IV[12] | 0;\n this.Gl = SHA384_IV[13] | 0;\n this.Hh = SHA384_IV[14] | 0;\n this.Hl = SHA384_IV[15] | 0;\n }\n}\n/**\n * Truncated SHA512/256 and SHA512/224.\n * SHA512_IV is XORed with 0xa5a5a5a5a5a5a5a5, then used as \"intermediary\" IV of SHA512/t.\n * Then t hashes string to produce result IV.\n * See `test/misc/sha2-gen-iv.js`.\n */\n/** SHA512/224 IV */\nconst T224_IV = /* @__PURE__ */ Uint32Array.from([\n 0x8c3d37c8, 0x19544da2, 0x73e19966, 0x89dcd4d6, 0x1dfab7ae, 0x32ff9c82, 0x679dd514, 0x582f9fcf,\n 0x0f6d2b69, 0x7bd44da8, 0x77e36f73, 0x04c48942, 0x3f9d85a8, 0x6a1d36c8, 0x1112e6ad, 0x91d692a1,\n]);\n/** SHA512/256 IV */\nconst T256_IV = /* @__PURE__ */ Uint32Array.from([\n 0x22312194, 0xfc2bf72c, 0x9f555fa3, 0xc84c64c2, 0x2393b86b, 0x6f53b151, 0x96387719, 0x5940eabd,\n 0x96283ee2, 0xa88effe3, 0xbe5e1e25, 0x53863992, 0x2b0199fc, 0x2c85b8aa, 0x0eb72ddc, 0x81c52ca2,\n]);\nexport class SHA512_224 extends SHA512 {\n constructor() {\n super(28);\n this.Ah = T224_IV[0] | 0;\n this.Al = T224_IV[1] | 0;\n this.Bh = T224_IV[2] | 0;\n this.Bl = T224_IV[3] | 0;\n this.Ch = T224_IV[4] | 0;\n this.Cl = T224_IV[5] | 0;\n this.Dh = T224_IV[6] | 0;\n this.Dl = T224_IV[7] | 0;\n this.Eh = T224_IV[8] | 0;\n this.El = T224_IV[9] | 0;\n this.Fh = T224_IV[10] | 0;\n this.Fl = T224_IV[11] | 0;\n this.Gh = T224_IV[12] | 0;\n this.Gl = T224_IV[13] | 0;\n this.Hh = T224_IV[14] | 0;\n this.Hl = T224_IV[15] | 0;\n }\n}\nexport class SHA512_256 extends SHA512 {\n constructor() {\n super(32);\n this.Ah = T256_IV[0] | 0;\n this.Al = T256_IV[1] | 0;\n this.Bh = T256_IV[2] | 0;\n this.Bl = T256_IV[3] | 0;\n this.Ch = T256_IV[4] | 0;\n this.Cl = T256_IV[5] | 0;\n this.Dh = T256_IV[6] | 0;\n this.Dl = T256_IV[7] | 0;\n this.Eh = T256_IV[8] | 0;\n this.El = T256_IV[9] | 0;\n this.Fh = T256_IV[10] | 0;\n this.Fl = T256_IV[11] | 0;\n this.Gh = T256_IV[12] | 0;\n this.Gl = T256_IV[13] | 0;\n this.Hh = T256_IV[14] | 0;\n this.Hl = T256_IV[15] | 0;\n }\n}\n/**\n * SHA2-256 hash function from RFC 4634.\n *\n * It is the fastest JS hash, even faster than Blake3.\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n */\nexport const sha256 = /* @__PURE__ */ createHasher(() => new SHA256());\n/** SHA2-224 hash function from RFC 4634 */\nexport const sha224 = /* @__PURE__ */ createHasher(() => new SHA224());\n/** SHA2-512 hash function from RFC 4634. */\nexport const sha512 = /* @__PURE__ */ createHasher(() => new SHA512());\n/** SHA2-384 hash function from RFC 4634. */\nexport const sha384 = /* @__PURE__ */ createHasher(() => new SHA384());\n/**\n * SHA2-512/256 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexport const sha512_256 = /* @__PURE__ */ createHasher(() => new SHA512_256());\n/**\n * SHA2-512/224 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexport const sha512_224 = /* @__PURE__ */ createHasher(() => new SHA512_224());\n//# sourceMappingURL=sha2.js.map","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar BN = require('bn.js');\nvar EC = require('elliptic').ec;\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nfunction verify(sig, hash, key, signType, tag) {\n var pub = parseKeys(key);\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n return ecVerify(sig, hash, pub);\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong public key type'); }\n return dsaVerify(sig, hash, pub);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = pub.modulus.byteLength();\n var pad = [1];\n var padNum = 0;\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff);\n padNum += 1;\n }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) {\n pad.push(hash[i]);\n }\n pad = Buffer.from(pad);\n var red = BN.mont(pub.modulus);\n sig = new BN(sig).toRed(red);\n\n sig = sig.redPow(new BN(pub.publicExponent));\n sig = Buffer.from(sig.fromRed().toArray());\n var out = padNum < 8 ? 1 : 0;\n len = Math.min(sig.length, pad.length);\n if (sig.length !== pad.length) { out = 1; }\n\n i = -1;\n while (++i < len) { out |= sig[i] ^ pad[i]; }\n return out === 0;\n}\n\nfunction ecVerify(sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.')); }\n\n var curve = new EC(curveId);\n var pubkey = pub.data.subjectPrivateKey.data;\n\n return curve.verify(hash, sig, pubkey);\n}\n\nfunction dsaVerify(sig, hash, pub) {\n var p = pub.data.p;\n var q = pub.data.q;\n var g = pub.data.g;\n var y = pub.data.pub_key;\n var unpacked = parseKeys.signature.decode(sig, 'der');\n var s = unpacked.s;\n var r = unpacked.r;\n checkValue(s, q);\n checkValue(r, q);\n var montp = BN.mont(p);\n var w = s.invm(q);\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q);\n return v.cmp(r) === 0;\n}\n\nfunction checkValue(b, q) {\n if (b.cmpn(0) <= 0) { throw new Error('invalid sig'); }\n if (b.cmp(q) >= 0) { throw new Error('invalid sig'); }\n}\n\nmodule.exports = verify;\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","import { secp256k1 } from '@noble/curves/secp256k1';\nimport { hexToBigInt } from '../encoding/fromHex.js';\nimport { hexToBytes } from '../encoding/toBytes.js';\n/**\n * @description Converts a signature into hex format.\n *\n * @param signature The signature to convert.\n * @returns The signature in hex format.\n *\n * @example\n * serializeSignature({\n * r: '0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf',\n * s: '0x4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db8',\n * yParity: 1\n * })\n * // \"0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c\"\n */\nexport function serializeSignature({ r, s, to = 'hex', v, yParity, }) {\n const yParity_ = (() => {\n if (yParity === 0 || yParity === 1)\n return yParity;\n if (v && (v === 27n || v === 28n || v >= 35n))\n return v % 2n === 0n ? 1 : 0;\n throw new Error('Invalid `v` or `yParity` value');\n })();\n const signature = `0x${new secp256k1.Signature(hexToBigInt(r), hexToBigInt(s)).toCompactHex()}${yParity_ === 0 ? '1b' : '1c'}`;\n if (to === 'hex')\n return signature;\n return hexToBytes(signature);\n}\n//# sourceMappingURL=serializeSignature.js.map","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","import { BaseError } from './base.js';\nexport class InvalidDecimalNumberError extends BaseError {\n constructor({ value }) {\n super(`Number \\`${value}\\` is not a valid decimal number.`, {\n name: 'InvalidDecimalNumberError',\n });\n }\n}\n//# sourceMappingURL=unit.js.map","import { InvalidDecimalNumberError } from '../../errors/unit.js';\n/**\n * Multiplies a string representation of a number by a given exponent of base 10 (10exponent).\n *\n * - Docs: https://viem.sh/docs/utilities/parseUnits\n *\n * @example\n * import { parseUnits } from 'viem'\n *\n * parseUnits('420', 9)\n * // 420000000000n\n */\nexport function parseUnits(value, decimals) {\n if (!/^(-?)([0-9]*)\\.?([0-9]*)$/.test(value))\n throw new InvalidDecimalNumberError({ value });\n let [integer, fraction = '0'] = value.split('.');\n const negative = integer.startsWith('-');\n if (negative)\n integer = integer.slice(1);\n // trim trailing zeros.\n fraction = fraction.replace(/(0+)$/, '');\n // round off if the fraction is larger than the number of decimals.\n if (decimals === 0) {\n if (Math.round(Number(`.${fraction}`)) === 1)\n integer = `${BigInt(integer) + 1n}`;\n fraction = '';\n }\n else if (fraction.length > decimals) {\n const [left, unit, right] = [\n fraction.slice(0, decimals - 1),\n fraction.slice(decimals - 1, decimals),\n fraction.slice(decimals),\n ];\n const rounded = Math.round(Number(`${unit}.${right}`));\n if (rounded > 9)\n fraction = `${BigInt(left) + BigInt(1)}0`.padStart(left.length + 1, '0');\n else\n fraction = `${left}${rounded}`;\n if (fraction.length > decimals) {\n fraction = fraction.slice(1);\n integer = `${BigInt(integer) + 1n}`;\n }\n fraction = fraction.slice(0, decimals);\n }\n else {\n fraction = fraction.padEnd(decimals, '0');\n }\n return BigInt(`${negative ? '-' : ''}${integer}${fraction}`);\n}\n//# sourceMappingURL=parseUnits.js.map","import { CallExecutionError, } from '../../errors/contract.js';\nimport { UnknownNodeError } from '../../errors/node.js';\nimport { getNodeError, } from './getNodeError.js';\nexport function getCallError(err, { docsPath, ...args }) {\n const cause = (() => {\n const cause = getNodeError(err, args);\n if (cause instanceof UnknownNodeError)\n return err;\n return cause;\n })();\n return new CallExecutionError(cause, {\n docsPath,\n ...args,\n });\n}\n//# sourceMappingURL=getCallError.js.map","/**\n * Retrieves and returns an action from the client (if exists), and falls\n * back to the tree-shakable action.\n *\n * Useful for extracting overridden actions from a client (ie. if a consumer\n * wants to override the `sendTransaction` implementation).\n */\nexport function getAction(client, actionFn, \n// Some minifiers drop `Function.prototype.name`, or replace it with short letters,\n// meaning that `actionFn.name` will not always work. For that case, the consumer\n// needs to pass the name explicitly.\nname) {\n const action_implicit = client[actionFn.name];\n if (typeof action_implicit === 'function')\n return action_implicit;\n const action_explicit = client[name];\n if (typeof action_explicit === 'function')\n return action_explicit;\n return (params) => actionFn(client, params);\n}\n//# sourceMappingURL=getAction.js.map","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md#parameters\n/** Blob limit per transaction. */\nconst blobsPerTransaction = 6;\n/** The number of bytes in a BLS scalar field element. */\nexport const bytesPerFieldElement = 32;\n/** The number of field elements in a blob. */\nexport const fieldElementsPerBlob = 4096;\n/** The number of bytes in a blob. */\nexport const bytesPerBlob = bytesPerFieldElement * fieldElementsPerBlob;\n/** Blob bytes limit per transaction. */\nexport const maxBytesPerTransaction = bytesPerBlob * blobsPerTransaction -\n // terminator byte (0x80).\n 1 -\n // zero byte (0x00) appended to each field element.\n 1 * fieldElementsPerBlob * blobsPerTransaction;\n//# sourceMappingURL=blob.js.map","import { blobsToCommitments, } from './blobsToCommitments.js';\nimport { blobsToProofs } from './blobsToProofs.js';\nimport { toBlobs } from './toBlobs.js';\n/**\n * Transforms arbitrary data (or blobs, commitments, & proofs) into a sidecar array.\n *\n * @example\n * ```ts\n * import { toBlobSidecars, stringToHex } from 'viem'\n *\n * const sidecars = toBlobSidecars({ data: stringToHex('hello world') })\n * ```\n *\n * @example\n * ```ts\n * import {\n * blobsToCommitments,\n * toBlobs,\n * blobsToProofs,\n * toBlobSidecars,\n * stringToHex\n * } from 'viem'\n *\n * const blobs = toBlobs({ data: stringToHex('hello world') })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const proofs = blobsToProofs({ blobs, commitments, kzg })\n *\n * const sidecars = toBlobSidecars({ blobs, commitments, proofs })\n * ```\n */\nexport function toBlobSidecars(parameters) {\n const { data, kzg, to } = parameters;\n const blobs = parameters.blobs ?? toBlobs({ data: data, to });\n const commitments = parameters.commitments ?? blobsToCommitments({ blobs, kzg: kzg, to });\n const proofs = parameters.proofs ?? blobsToProofs({ blobs, commitments, kzg: kzg, to });\n const sidecars = [];\n for (let i = 0; i < blobs.length; i++)\n sidecars.push({\n blob: blobs[i],\n commitment: commitments[i],\n proof: proofs[i],\n });\n return sidecars;\n}\n//# sourceMappingURL=toBlobSidecars.js.map","import { bytesPerBlob, bytesPerFieldElement, fieldElementsPerBlob, maxBytesPerTransaction, } from '../../constants/blob.js';\nimport { BlobSizeTooLargeError, EmptyBlobError, } from '../../errors/blob.js';\nimport { createCursor } from '../cursor.js';\nimport { size } from '../data/size.js';\nimport { hexToBytes } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\n/**\n * Transforms arbitrary data to blobs.\n *\n * @example\n * ```ts\n * import { toBlobs, stringToHex } from 'viem'\n *\n * const blobs = toBlobs({ data: stringToHex('hello world') })\n * ```\n */\nexport function toBlobs(parameters) {\n const to = parameters.to ?? (typeof parameters.data === 'string' ? 'hex' : 'bytes');\n const data = (typeof parameters.data === 'string'\n ? hexToBytes(parameters.data)\n : parameters.data);\n const size_ = size(data);\n if (!size_)\n throw new EmptyBlobError();\n if (size_ > maxBytesPerTransaction)\n throw new BlobSizeTooLargeError({\n maxSize: maxBytesPerTransaction,\n size: size_,\n });\n const blobs = [];\n let active = true;\n let position = 0;\n while (active) {\n const blob = createCursor(new Uint8Array(bytesPerBlob));\n let size = 0;\n while (size < fieldElementsPerBlob) {\n const bytes = data.slice(position, position + (bytesPerFieldElement - 1));\n // Push a zero byte so the field element doesn't overflow the BLS modulus.\n blob.pushByte(0x00);\n // Push the current segment of data bytes.\n blob.pushBytes(bytes);\n // If we detect that the current segment of data bytes is less than 31 bytes,\n // we can stop processing and push a terminator byte to indicate the end of the blob.\n if (bytes.length < 31) {\n blob.pushByte(0x80);\n active = false;\n break;\n }\n size++;\n position += 31;\n }\n blobs.push(blob);\n }\n return (to === 'bytes'\n ? blobs.map((x) => x.bytes)\n : blobs.map((x) => bytesToHex(x.bytes)));\n}\n//# sourceMappingURL=toBlobs.js.map","/**\n * SHA3 (keccak) hash function, based on a new \"Sponge function\" design.\n * Different from older hashes, the internal state is bigger than output size.\n *\n * Check out [FIPS-202](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf),\n * [Website](https://keccak.team/keccak.html),\n * [the differences between SHA-3 and Keccak](https://crypto.stackexchange.com/questions/15727/what-are-the-key-differences-between-the-draft-sha-3-standard-and-the-keccak-sub).\n *\n * Check out `sha3-addons` module for cSHAKE, k12, and others.\n * @module\n */\nimport { rotlBH, rotlBL, rotlSH, rotlSL, split } from \"./_u64.js\";\n// prettier-ignore\nimport { abytes, aexists, anumber, aoutput, clean, createHasher, createXOFer, Hash, swap32IfBE, toBytes, u32 } from \"./utils.js\";\n// No __PURE__ annotations in sha3 header:\n// EVERYTHING is in fact used on every export.\n// Various per round constants calculations\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = BigInt(0x71);\nconst SHA3_PI = [];\nconst SHA3_ROTL = [];\nconst _SHA3_IOTA = [];\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 IOTAS = split(_SHA3_IOTA, true);\nconst SHA3_IOTA_H = IOTAS[0];\nconst SHA3_IOTA_L = IOTAS[1];\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/** `keccakf1600` internal function, additionally allows to adjust round count. */\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 clean(B);\n}\n/** Keccak sponge function. */\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.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n this.enableXOF = false;\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n // Can be passed from user as dkLen\n anumber(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n // 0 < blockLen < 200\n if (!(0 < blockLen && blockLen < 200))\n throw new Error('only keccak-f1600 function is supported');\n this.state = new Uint8Array(200);\n this.state32 = u32(this.state);\n }\n clone() {\n return this._cloneInto();\n }\n keccak() {\n swap32IfBE(this.state32);\n keccakP(this.state32, this.rounds);\n swap32IfBE(this.state32);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n aexists(this);\n data = toBytes(data);\n abytes(data);\n const { blockLen, state } = this;\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 aexists(this, false);\n abytes(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 anumber(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n aoutput(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 clean(this.state);\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) => createHasher(() => new Keccak(blockLen, suffix, outputLen));\n/** SHA3-224 hash function. */\nexport const sha3_224 = /* @__PURE__ */ (() => gen(0x06, 144, 224 / 8))();\n/** SHA3-256 hash function. Different from keccak-256. */\nexport const sha3_256 = /* @__PURE__ */ (() => gen(0x06, 136, 256 / 8))();\n/** SHA3-384 hash function. */\nexport const sha3_384 = /* @__PURE__ */ (() => gen(0x06, 104, 384 / 8))();\n/** SHA3-512 hash function. */\nexport const sha3_512 = /* @__PURE__ */ (() => gen(0x06, 72, 512 / 8))();\n/** keccak-224 hash function. */\nexport const keccak_224 = /* @__PURE__ */ (() => gen(0x01, 144, 224 / 8))();\n/** keccak-256 hash function. Different from SHA3-256. */\nexport const keccak_256 = /* @__PURE__ */ (() => gen(0x01, 136, 256 / 8))();\n/** keccak-384 hash function. */\nexport const keccak_384 = /* @__PURE__ */ (() => gen(0x01, 104, 384 / 8))();\n/** keccak-512 hash function. */\nexport const keccak_512 = /* @__PURE__ */ (() => gen(0x01, 72, 512 / 8))();\nconst genShake = (suffix, blockLen, outputLen) => createXOFer((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\n/** SHAKE128 XOF with 128-bit security. */\nexport const shake128 = /* @__PURE__ */ (() => genShake(0x1f, 168, 128 / 8))();\n/** SHAKE256 XOF with 256-bit security. */\nexport const shake256 = /* @__PURE__ */ (() => genShake(0x1f, 136, 256 / 8))();\n//# sourceMappingURL=sha3.js.map","var encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","/**\n * @since 2.0.0\n */\n/** @internal */\nexport const isNonEmptyArray = self => self.length > 0;\n//# sourceMappingURL=array.js.map","/**\n * This module provides utility functions for working with Iterables in TypeScript.\n *\n * @since 2.0.0\n */\nimport * as E from \"./Either.js\";\nimport * as Equal from \"./Equal.js\";\nimport { dual, identity } from \"./Function.js\";\nimport * as O from \"./Option.js\";\nimport { isBoolean } from \"./Predicate.js\";\nimport * as Tuple from \"./Tuple.js\";\n/**\n * Return a `Iterable` with element `i` initialized with `f(i)`.\n *\n * If the `length` is not specified, the `Iterable` will be infinite.\n *\n * **Note**. `length` is normalized to an integer >= 1.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { makeBy } from \"effect/Iterable\"\n *\n * assert.deepStrictEqual(Array.from(makeBy(n => n * 2, { length: 5 })), [0, 2, 4, 6, 8])\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const makeBy = (f, options) => {\n const max = options?.length !== undefined ? Math.max(1, Math.floor(options.length)) : Infinity;\n return {\n [Symbol.iterator]() {\n let i = 0;\n return {\n next() {\n if (i < max) {\n return {\n value: f(i++),\n done: false\n };\n }\n return {\n done: true,\n value: undefined\n };\n }\n };\n }\n };\n};\n/**\n * Return a `Iterable` containing a range of integers, including both endpoints.\n *\n * If `end` is omitted, the range will not have an upper bound.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { range } from \"effect/Iterable\"\n *\n * assert.deepStrictEqual(Array.from(range(1, 3)), [1, 2, 3])\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const range = (start, end) => {\n if (end === undefined) {\n return makeBy(i => start + i);\n }\n return makeBy(i => start + i, {\n length: start <= end ? end - start + 1 : 1\n });\n};\n/**\n * Return a `Iterable` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to an integer >= 1.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { replicate } from \"effect/Iterable\"\n *\n * assert.deepStrictEqual(Array.from(replicate(\"a\", 3)), [\"a\", \"a\", \"a\"])\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const replicate = /*#__PURE__*/dual(2, (a, n) => makeBy(() => a, {\n length: n\n}));\n/**\n * Takes a record and returns an Iterable of tuples containing its keys and values.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { fromRecord } from \"effect/Iterable\"\n *\n * const x = { a: 1, b: 2, c: 3 }\n * assert.deepStrictEqual(Array.from(fromRecord(x)), [[\"a\", 1], [\"b\", 2], [\"c\", 3]])\n * ```\n *\n * @category conversions\n * @since 2.0.0\n */\nexport const fromRecord = self => ({\n *[Symbol.iterator]() {\n for (const key in self) {\n if (Object.prototype.hasOwnProperty.call(self, key)) {\n yield [key, self[key]];\n }\n }\n }\n});\n/**\n * Prepend an element to the front of an `Iterable`, creating a new `Iterable`.\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const prepend = /*#__PURE__*/dual(2, (self, head) => prependAll(self, [head]));\n/**\n * Prepends the specified prefix iterable to the beginning of the specified iterable.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Iterable } from \"effect\"\n *\n * assert.deepStrictEqual(\n * Array.from(Iterable.prependAll([1, 2], [\"a\", \"b\"])),\n * [\"a\", \"b\", 1, 2]\n * )\n * ```\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const prependAll = /*#__PURE__*/dual(2, (self, that) => appendAll(that, self));\n/**\n * Append an element to the end of an `Iterable`, creating a new `Iterable`.\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const append = /*#__PURE__*/dual(2, (self, last) => appendAll(self, [last]));\n/**\n * Concatenates two iterables, combining their elements.\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const appendAll = /*#__PURE__*/dual(2, (self, that) => ({\n [Symbol.iterator]() {\n const iterA = self[Symbol.iterator]();\n let doneA = false;\n let iterB;\n return {\n next() {\n if (!doneA) {\n const r = iterA.next();\n if (r.done) {\n doneA = true;\n iterB = that[Symbol.iterator]();\n return iterB.next();\n }\n return r;\n }\n return iterB.next();\n }\n };\n }\n}));\n/**\n * Reduce an `Iterable` from the left, keeping all intermediate results instead of only the final result.\n *\n * @category folding\n * @since 2.0.0\n */\nexport const scan = /*#__PURE__*/dual(3, (self, b, f) => ({\n [Symbol.iterator]() {\n let acc = b;\n let iterator;\n function next() {\n if (iterator === undefined) {\n iterator = self[Symbol.iterator]();\n return {\n done: false,\n value: acc\n };\n }\n const result = iterator.next();\n if (result.done) {\n return result;\n }\n acc = f(acc, result.value);\n return {\n done: false,\n value: acc\n };\n }\n return {\n next\n };\n }\n}));\n/**\n * Determine if an `Iterable` is empty\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { isEmpty } from \"effect/Iterable\"\n *\n * assert.deepStrictEqual(isEmpty([]), true);\n * assert.deepStrictEqual(isEmpty([1, 2, 3]), false);\n * ```\n *\n * @category guards\n * @since 2.0.0\n */\nexport const isEmpty = self => {\n const iterator = self[Symbol.iterator]();\n return iterator.next().done === true;\n};\n/**\n * Return the number of elements in a `Iterable`.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const size = self => {\n const iterator = self[Symbol.iterator]();\n let count = 0;\n while (!iterator.next().done) {\n count++;\n }\n return count;\n};\n/**\n * Get the first element of a `Iterable`, or `None` if the `Iterable` is empty.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const head = self => {\n const iterator = self[Symbol.iterator]();\n const result = iterator.next();\n return result.done ? O.none() : O.some(result.value);\n};\n/**\n * Get the first element of a `Iterable`, or throw an error if the `Iterable` is empty.\n *\n * @category getters\n * @since 3.3.0\n */\nexport const unsafeHead = self => {\n const iterator = self[Symbol.iterator]();\n const result = iterator.next();\n if (result.done) throw new Error(\"unsafeHead: empty iterable\");\n return result.value;\n};\n/**\n * Keep only a max number of elements from the start of an `Iterable`, creating a new `Iterable`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const take = /*#__PURE__*/dual(2, (self, n) => ({\n [Symbol.iterator]() {\n let i = 0;\n const iterator = self[Symbol.iterator]();\n return {\n next() {\n if (i < n) {\n i++;\n return iterator.next();\n }\n return {\n done: true,\n value: undefined\n };\n }\n };\n }\n}));\n/**\n * Calculate the longest initial Iterable for which all element satisfy the specified predicate, creating a new `Iterable`.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const takeWhile = /*#__PURE__*/dual(2, (self, predicate) => ({\n [Symbol.iterator]() {\n const iterator = self[Symbol.iterator]();\n let i = 0;\n return {\n next() {\n const result = iterator.next();\n if (result.done || !predicate(result.value, i++)) {\n return {\n done: true,\n value: undefined\n };\n }\n return result;\n }\n };\n }\n}));\n/**\n * Drop a max number of elements from the start of an `Iterable`\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const drop = /*#__PURE__*/dual(2, (self, n) => ({\n [Symbol.iterator]() {\n const iterator = self[Symbol.iterator]();\n let i = 0;\n return {\n next() {\n while (i < n) {\n const result = iterator.next();\n if (result.done) {\n return {\n done: true,\n value: undefined\n };\n }\n i++;\n }\n return iterator.next();\n }\n };\n }\n}));\n/**\n * Returns the first element that satisfies the specified\n * predicate, or `None` if no such element exists.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const findFirst = /*#__PURE__*/dual(2, (self, f) => {\n let i = 0;\n for (const a of self) {\n const o = f(a, i);\n if (isBoolean(o)) {\n if (o) {\n return O.some(a);\n }\n } else {\n if (O.isSome(o)) {\n return o;\n }\n }\n i++;\n }\n return O.none();\n});\n/**\n * Find the last element for which a predicate holds.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const findLast = /*#__PURE__*/dual(2, (self, f) => {\n let i = 0;\n let last = O.none();\n for (const a of self) {\n const o = f(a, i);\n if (isBoolean(o)) {\n if (o) {\n last = O.some(a);\n }\n } else {\n if (O.isSome(o)) {\n last = o;\n }\n }\n i++;\n }\n return last;\n});\n/**\n * Takes two `Iterable`s and returns an `Iterable` of corresponding pairs.\n *\n * @category zipping\n * @since 2.0.0\n */\nexport const zip = /*#__PURE__*/dual(2, (self, that) => zipWith(self, that, Tuple.make));\n/**\n * Apply a function to pairs of elements at the same index in two `Iterable`s, collecting the results. If one\n * input `Iterable` is short, excess elements of the longer `Iterable` are discarded.\n *\n * @category zipping\n * @since 2.0.0\n */\nexport const zipWith = /*#__PURE__*/dual(3, (self, that, f) => ({\n [Symbol.iterator]() {\n const selfIterator = self[Symbol.iterator]();\n const thatIterator = that[Symbol.iterator]();\n return {\n next() {\n const selfResult = selfIterator.next();\n const thatResult = thatIterator.next();\n if (selfResult.done || thatResult.done) {\n return {\n done: true,\n value: undefined\n };\n }\n return {\n done: false,\n value: f(selfResult.value, thatResult.value)\n };\n }\n };\n }\n}));\n/**\n * Places an element in between members of an `Iterable`.\n * If the input is a non-empty array, the result is also a non-empty array.\n *\n * @since 2.0.0\n */\nexport const intersperse = /*#__PURE__*/dual(2, (self, middle) => ({\n [Symbol.iterator]() {\n const iterator = self[Symbol.iterator]();\n let next = iterator.next();\n let emitted = false;\n return {\n next() {\n if (next.done) {\n return next;\n } else if (emitted) {\n emitted = false;\n return {\n done: false,\n value: middle\n };\n }\n emitted = true;\n const result = next;\n next = iterator.next();\n return result;\n }\n };\n }\n}));\n/**\n * Returns a function that checks if an `Iterable` contains a given value using a provided `isEquivalent` function.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const containsWith = isEquivalent => dual(2, (self, a) => {\n for (const i of self) {\n if (isEquivalent(a, i)) {\n return true;\n }\n }\n return false;\n});\nconst _equivalence = /*#__PURE__*/Equal.equivalence();\n/**\n * Returns a function that checks if a `Iterable` contains a given value using the default `Equivalence`.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const contains = /*#__PURE__*/containsWith(_equivalence);\n/**\n * Splits an `Iterable` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of\n * the `Iterable`.\n *\n * @category splitting\n * @since 2.0.0\n */\nexport const chunksOf = /*#__PURE__*/dual(2, (self, n) => {\n const safeN = Math.max(1, Math.floor(n));\n return {\n [Symbol.iterator]() {\n let iterator = self[Symbol.iterator]();\n return {\n next() {\n if (iterator === undefined) {\n return {\n done: true,\n value: undefined\n };\n }\n const chunk = [];\n for (let i = 0; i < safeN; i++) {\n const result = iterator.next();\n if (result.done) {\n iterator = undefined;\n return chunk.length === 0 ? {\n done: true,\n value: undefined\n } : {\n done: false,\n value: chunk\n };\n }\n chunk.push(result.value);\n }\n return {\n done: false,\n value: chunk\n };\n }\n };\n }\n };\n});\n/**\n * Group equal, consecutive elements of an `Iterable` into `NonEmptyArray`s using the provided `isEquivalent` function.\n *\n * @category grouping\n * @since 2.0.0\n */\nexport const groupWith = /*#__PURE__*/dual(2, (self, isEquivalent) => ({\n [Symbol.iterator]() {\n const iterator = self[Symbol.iterator]();\n let nextResult;\n return {\n next() {\n let result;\n if (nextResult !== undefined) {\n if (nextResult.done) {\n return {\n done: true,\n value: undefined\n };\n }\n result = nextResult;\n nextResult = undefined;\n } else {\n result = iterator.next();\n if (result.done) {\n return {\n done: true,\n value: undefined\n };\n }\n }\n const chunk = [result.value];\n while (true) {\n const next = iterator.next();\n if (next.done || !isEquivalent(result.value, next.value)) {\n nextResult = next;\n return {\n done: false,\n value: chunk\n };\n }\n chunk.push(next.value);\n }\n }\n };\n }\n}));\n/**\n * Group equal, consecutive elements of an `Iterable` into `NonEmptyArray`s.\n *\n * @category grouping\n * @since 2.0.0\n */\nexport const group = /*#__PURE__*/groupWith(/*#__PURE__*/Equal.equivalence());\n/**\n * Splits an `Iterable` into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning\n * function on each element, and grouping the results according to values returned\n *\n * @category grouping\n * @since 2.0.0\n */\nexport const groupBy = /*#__PURE__*/dual(2, (self, f) => {\n const out = {};\n for (const a of self) {\n const k = f(a);\n if (Object.prototype.hasOwnProperty.call(out, k)) {\n out[k].push(a);\n } else {\n out[k] = [a];\n }\n }\n return out;\n});\nconst constEmpty = {\n [Symbol.iterator]() {\n return constEmptyIterator;\n }\n};\nconst constEmptyIterator = {\n next() {\n return {\n done: true,\n value: undefined\n };\n }\n};\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport const empty = () => constEmpty;\n/**\n * Constructs a new `Iterable` from the specified value.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const of = a => [a];\n/**\n * @category mapping\n * @since 2.0.0\n */\nexport const map = /*#__PURE__*/dual(2, (self, f) => ({\n [Symbol.iterator]() {\n const iterator = self[Symbol.iterator]();\n let i = 0;\n return {\n next() {\n const result = iterator.next();\n if (result.done) {\n return {\n done: true,\n value: undefined\n };\n }\n return {\n done: false,\n value: f(result.value, i++)\n };\n }\n };\n }\n}));\n/**\n * Applies a function to each element in an Iterable and returns a new Iterable containing the concatenated mapped elements.\n *\n * @category sequencing\n * @since 2.0.0\n */\nexport const flatMap = /*#__PURE__*/dual(2, (self, f) => flatten(map(self, f)));\n/**\n * Flattens an Iterable of Iterables into a single Iterable\n *\n * @category sequencing\n * @since 2.0.0\n */\nexport const flatten = self => ({\n [Symbol.iterator]() {\n const outerIterator = self[Symbol.iterator]();\n let innerIterator;\n function next() {\n if (innerIterator === undefined) {\n const next = outerIterator.next();\n if (next.done) {\n return next;\n }\n innerIterator = next.value[Symbol.iterator]();\n }\n const result = innerIterator.next();\n if (result.done) {\n innerIterator = undefined;\n return next();\n }\n return result;\n }\n return {\n next\n };\n }\n});\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport const filterMap = /*#__PURE__*/dual(2, (self, f) => ({\n [Symbol.iterator]() {\n const iterator = self[Symbol.iterator]();\n let i = 0;\n return {\n next() {\n let result = iterator.next();\n while (!result.done) {\n const b = f(result.value, i++);\n if (O.isSome(b)) {\n return {\n done: false,\n value: b.value\n };\n }\n result = iterator.next();\n }\n return {\n done: true,\n value: undefined\n };\n }\n };\n }\n}));\n/**\n * Transforms all elements of the `Iterable` for as long as the specified function returns some value\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const filterMapWhile = /*#__PURE__*/dual(2, (self, f) => ({\n [Symbol.iterator]() {\n const iterator = self[Symbol.iterator]();\n let i = 0;\n return {\n next() {\n const result = iterator.next();\n if (result.done) {\n return {\n done: true,\n value: undefined\n };\n }\n const b = f(result.value, i++);\n if (O.isSome(b)) {\n return {\n done: false,\n value: b.value\n };\n }\n return {\n done: true,\n value: undefined\n };\n }\n };\n }\n}));\n/**\n * Retrieves the `Some` values from an `Iterable` of `Option`s.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Iterable, Option } from \"effect\"\n *\n * assert.deepStrictEqual(\n * Array.from(Iterable.getSomes([Option.some(1), Option.none(), Option.some(2)])),\n * [1, 2]\n * )\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const getSomes = /*#__PURE__*/filterMap(identity);\n/**\n * Retrieves the `Left` values from an `Iterable` of `Either`s.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Iterable, Either } from \"effect\"\n *\n * assert.deepStrictEqual(\n * Array.from(Iterable.getLefts([Either.right(1), Either.left(\"err\"), Either.right(2)])),\n * [\"err\"]\n * )\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const getLefts = self => filterMap(self, E.getLeft);\n/**\n * Retrieves the `Right` values from an `Iterable` of `Either`s.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Iterable, Either } from \"effect\"\n *\n * assert.deepStrictEqual(\n * Array.from(Iterable.getRights([Either.right(1), Either.left(\"err\"), Either.right(2)])),\n * [1, 2]\n * )\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const getRights = self => filterMap(self, E.getRight);\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport const filter = /*#__PURE__*/dual(2, (self, predicate) => ({\n [Symbol.iterator]() {\n const iterator = self[Symbol.iterator]();\n let i = 0;\n return {\n next() {\n let result = iterator.next();\n while (!result.done) {\n if (predicate(result.value, i++)) {\n return {\n done: false,\n value: result.value\n };\n }\n result = iterator.next();\n }\n return {\n done: true,\n value: undefined\n };\n }\n };\n }\n}));\n/**\n * @category sequencing\n * @since 2.0.0\n */\nexport const flatMapNullable = /*#__PURE__*/dual(2, (self, f) => filterMap(self, a => {\n const b = f(a);\n return b == null ? O.none() : O.some(b);\n}));\n/**\n * Check if a predicate holds true for some `Iterable` element.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const some = /*#__PURE__*/dual(2, (self, predicate) => {\n let i = 0;\n for (const a of self) {\n if (predicate(a, i++)) {\n return true;\n }\n }\n return false;\n});\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport const unfold = (b, f) => ({\n [Symbol.iterator]() {\n let next = b;\n return {\n next() {\n const o = f(next);\n if (O.isNone(o)) {\n return {\n done: true,\n value: undefined\n };\n }\n const [a, b] = o.value;\n next = b;\n return {\n done: false,\n value: a\n };\n }\n };\n }\n});\n/**\n * Iterate over the `Iterable` applying `f`.\n *\n * @since 2.0.0\n */\nexport const forEach = /*#__PURE__*/dual(2, (self, f) => {\n let i = 0;\n for (const a of self) {\n f(a, i++);\n }\n});\n/**\n * @category folding\n * @since 2.0.0\n */\nexport const reduce = /*#__PURE__*/dual(3, (self, b, f) => {\n if (Array.isArray(self)) {\n return self.reduce(f, b);\n }\n let i = 0;\n let result = b;\n for (const n of self) {\n result = f(result, n, i++);\n }\n return result;\n});\n/**\n * Deduplicates adjacent elements that are identical using the provided `isEquivalent` function.\n *\n * @since 2.0.0\n */\nexport const dedupeAdjacentWith = /*#__PURE__*/dual(2, (self, isEquivalent) => ({\n [Symbol.iterator]() {\n const iterator = self[Symbol.iterator]();\n let first = true;\n let last;\n function next() {\n const result = iterator.next();\n if (result.done) {\n return {\n done: true,\n value: undefined\n };\n }\n if (first) {\n first = false;\n last = result.value;\n return result;\n }\n const current = result.value;\n if (isEquivalent(last, current)) {\n return next();\n }\n last = current;\n return result;\n }\n return {\n next\n };\n }\n}));\n/**\n * Deduplicates adjacent elements that are identical.\n *\n * @since 2.0.0\n */\nexport const dedupeAdjacent = /*#__PURE__*/dedupeAdjacentWith(/*#__PURE__*/Equal.equivalence());\n/**\n * Zips this Iterable crosswise with the specified Iterable using the specified combiner.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const cartesianWith = /*#__PURE__*/dual(3, (self, that, f) => flatMap(self, a => map(that, b => f(a, b))));\n/**\n * Zips this Iterable crosswise with the specified Iterable.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const cartesian = /*#__PURE__*/dual(2, (self, that) => cartesianWith(self, that, (a, b) => [a, b]));\n/**\n * Counts all the element of the given iterable that pass the given predicate\n *\n * **Example**\n *\n * ```ts\n * import { Iterable } from \"effect\"\n *\n * const result = Iterable.countBy([1, 2, 3, 4, 5], n => n % 2 === 0)\n * console.log(result) // 2\n * ```\n *\n * @category folding\n * @since 3.16.0\n */\nexport const countBy = /*#__PURE__*/dual(2, (self, f) => {\n let count = 0;\n let i = 0;\n for (const a of self) {\n if (f(a, i)) {\n count++;\n }\n i++;\n }\n return count;\n});\n//# sourceMappingURL=Iterable.js.map","/**\n * This module provides utility functions for working with records in TypeScript.\n *\n * @since 2.0.0\n */\nimport * as E from \"./Either.js\";\nimport * as Equal from \"./Equal.js\";\nimport { dual, identity } from \"./Function.js\";\nimport * as Option from \"./Option.js\";\n/**\n * Creates a new, empty record.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const empty = () => ({});\n/**\n * Determine if a record is empty.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { isEmptyRecord } from \"effect/Record\"\n *\n * assert.deepStrictEqual(isEmptyRecord({}), true);\n * assert.deepStrictEqual(isEmptyRecord({ a: 3 }), false);\n * ```\n *\n * @category guards\n * @since 2.0.0\n */\nexport const isEmptyRecord = self => keys(self).length === 0;\n/**\n * Determine if a record is empty.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { isEmptyReadonlyRecord } from \"effect/Record\"\n *\n * assert.deepStrictEqual(isEmptyReadonlyRecord({}), true);\n * assert.deepStrictEqual(isEmptyReadonlyRecord({ a: 3 }), false);\n * ```\n *\n * @category guards\n * @since 2.0.0\n */\nexport const isEmptyReadonlyRecord = isEmptyRecord;\n/**\n * Takes an iterable and a projection function and returns a record.\n * The projection function maps each value of the iterable to a tuple of a key and a value, which is then added to the resulting record.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { fromIterableWith } from \"effect/Record\"\n *\n * const input = [1, 2, 3, 4]\n *\n * assert.deepStrictEqual(\n * fromIterableWith(input, a => [String(a), a * 2]),\n * { '1': 2, '2': 4, '3': 6, '4': 8 }\n * )\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const fromIterableWith = /*#__PURE__*/dual(2, (self, f) => {\n const out = empty();\n for (const a of self) {\n const [k, b] = f(a);\n out[k] = b;\n }\n return out;\n});\n/**\n * Creates a new record from an iterable, utilizing the provided function to determine the key for each element.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { fromIterableBy } from \"effect/Record\"\n *\n * const users = [\n * { id: \"2\", name: \"name2\" },\n * { id: \"1\", name: \"name1\" }\n * ]\n *\n * assert.deepStrictEqual(\n * fromIterableBy(users, user => user.id),\n * {\n * \"2\": { id: \"2\", name: \"name2\" },\n * \"1\": { id: \"1\", name: \"name1\" }\n * }\n * )\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const fromIterableBy = (items, f) => fromIterableWith(items, a => [f(a), a]);\n/**\n * Builds a record from an iterable of key-value pairs.\n *\n * If there are conflicting keys when using `fromEntries`, the last occurrence of the key/value pair will overwrite the\n * previous ones. So the resulting record will only have the value of the last occurrence of each key.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { fromEntries } from \"effect/Record\"\n *\n * const input: Array<[string, number]> = [[\"a\", 1], [\"b\", 2]]\n *\n * assert.deepStrictEqual(fromEntries(input), { a: 1, b: 2 })\n * ```\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const fromEntries = Object.fromEntries;\n/**\n * Transforms the values of a record into an `Array` with a custom mapping function.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { collect } from \"effect/Record\"\n *\n * const x = { a: 1, b: 2, c: 3 }\n * assert.deepStrictEqual(collect(x, (key, n) => [key, n]), [[\"a\", 1], [\"b\", 2], [\"c\", 3]])\n * ```\n *\n * @category conversions\n * @since 2.0.0\n */\nexport const collect = /*#__PURE__*/dual(2, (self, f) => {\n const out = [];\n for (const key of keys(self)) {\n out.push(f(key, self[key]));\n }\n return out;\n});\n/**\n * Takes a record and returns an array of tuples containing its keys and values.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { toEntries } from \"effect/Record\"\n *\n * const x = { a: 1, b: 2, c: 3 }\n * assert.deepStrictEqual(toEntries(x), [[\"a\", 1], [\"b\", 2], [\"c\", 3]])\n * ```\n *\n * @category conversions\n * @since 2.0.0\n */\nexport const toEntries = /*#__PURE__*/collect((key, value) => [key, value]);\n/**\n * Returns the number of key/value pairs in a record.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { size } from \"effect/Record\";\n *\n * assert.deepStrictEqual(size({ a: \"a\", b: 1, c: true }), 3);\n * ```\n *\n * @since 2.0.0\n */\nexport const size = self => keys(self).length;\n/**\n * Check if a given `key` exists in a record.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { empty, has } from \"effect/Record\"\n *\n * assert.deepStrictEqual(has({ a: 1, b: 2 }, \"a\"), true);\n * assert.deepStrictEqual(has(empty(), \"c\"), false);\n * ```\n *\n * @since 2.0.0\n */\nexport const has = /*#__PURE__*/dual(2, (self, key) => Object.prototype.hasOwnProperty.call(self, key));\n/**\n * Retrieve a value at a particular key from a record, returning it wrapped in an `Option`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record as R, Option } from \"effect\"\n *\n * const person: Record = { name: \"John Doe\", age: 35 }\n *\n * assert.deepStrictEqual(R.get(person, \"name\"), Option.some(\"John Doe\"))\n * assert.deepStrictEqual(R.get(person, \"email\"), Option.none())\n * ```\n *\n * @since 2.0.0\n */\nexport const get = /*#__PURE__*/dual(2, (self, key) => has(self, key) ? Option.some(self[key]) : Option.none());\n/**\n * Apply a function to the element at the specified key, creating a new record.\n * If the key does not exist, the record is returned unchanged.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record as R } from \"effect\"\n *\n * const f = (x: number) => x * 2\n *\n * assert.deepStrictEqual(\n * R.modify({ a: 3 }, 'a', f),\n * { a: 6 }\n * )\n * assert.deepStrictEqual(\n * R.modify({ a: 3 } as Record, 'b', f),\n * { a: 3 }\n * )\n * ```\n *\n * @since 2.0.0\n */\nexport const modify = /*#__PURE__*/dual(3, (self, key, f) => {\n if (!has(self, key)) {\n return {\n ...self\n };\n }\n return {\n ...self,\n [key]: f(self[key])\n };\n});\n/**\n * Apply a function to the element at the specified key, creating a new record,\n * or return `None` if the key doesn't exist.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record as R, Option } from \"effect\"\n *\n * const f = (x: number) => x * 2\n *\n * assert.deepStrictEqual(\n * R.modifyOption({ a: 3 }, 'a', f),\n * Option.some({ a: 6 })\n * )\n * assert.deepStrictEqual(\n * R.modifyOption({ a: 3 } as Record, 'b', f),\n * Option.none()\n * )\n * ```\n *\n * @since 2.0.0\n */\nexport const modifyOption = /*#__PURE__*/dual(3, (self, key, f) => {\n if (!has(self, key)) {\n return Option.none();\n }\n return Option.some({\n ...self,\n [key]: f(self[key])\n });\n});\n/**\n * Replaces a value in the record with the new value passed as parameter.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record, Option } from \"effect\"\n *\n * assert.deepStrictEqual(\n * Record.replaceOption({ a: 1, b: 2, c: 3 }, 'a', 10),\n * Option.some({ a: 10, b: 2, c: 3 })\n * )\n * assert.deepStrictEqual(Record.replaceOption(Record.empty(), 'a', 10), Option.none())\n * ```\n *\n * @since 2.0.0\n */\nexport const replaceOption = /*#__PURE__*/dual(3, (self, key, b) => modifyOption(self, key, () => b));\n/**\n * If the given key exists in the record, returns a new record with the key removed,\n * otherwise returns a copy of the original record.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { remove } from \"effect/Record\"\n *\n * assert.deepStrictEqual(remove({ a: 1, b: 2 }, \"a\"), { b: 2 })\n * ```\n *\n * @since 2.0.0\n */\nexport const remove = /*#__PURE__*/dual(2, (self, key) => {\n if (!has(self, key)) {\n return {\n ...self\n };\n }\n const out = {\n ...self\n };\n delete out[key];\n return out;\n});\n/**\n * Retrieves the value of the property with the given `key` from a record and returns an `Option`\n * of a tuple with the value and the record with the removed property.\n * If the key is not present, returns `O.none`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record as R, Option } from \"effect\"\n *\n * assert.deepStrictEqual(R.pop({ a: 1, b: 2 }, \"a\"), Option.some([1, { b: 2 }]))\n * assert.deepStrictEqual(R.pop({ a: 1, b: 2 } as Record, \"c\"), Option.none())\n * ```\n *\n * @category record\n * @since 2.0.0\n */\nexport const pop = /*#__PURE__*/dual(2, (self, key) => has(self, key) ? Option.some([self[key], remove(self, key)]) : Option.none());\n/**\n * Maps a record into another record by applying a transformation function to each of its values.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { map } from \"effect/Record\"\n *\n * const f = (n: number) => `-${n}`\n *\n * assert.deepStrictEqual(map({ a: 3, b: 5 }, f), { a: \"-3\", b: \"-5\" })\n *\n * const g = (n: number, key: string) => `${key.toUpperCase()}-${n}`\n *\n * assert.deepStrictEqual(map({ a: 3, b: 5 }, g), { a: \"A-3\", b: \"B-5\" })\n * ```\n *\n * @category mapping\n * @since 2.0.0\n */\nexport const map = /*#__PURE__*/dual(2, (self, f) => {\n const out = {\n ...self\n };\n for (const key of keys(self)) {\n out[key] = f(self[key], key);\n }\n return out;\n});\n/**\n * Maps the keys of a `ReadonlyRecord` while preserving the corresponding values.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { mapKeys } from \"effect/Record\"\n *\n * assert.deepStrictEqual(mapKeys({ a: 3, b: 5 }, (key) => key.toUpperCase()), { A: 3, B: 5 })\n * ```\n *\n * @category mapping\n * @since 2.0.0\n */\nexport const mapKeys = /*#__PURE__*/dual(2, (self, f) => {\n const out = {};\n for (const key of keys(self)) {\n const a = self[key];\n out[f(key, a)] = a;\n }\n return out;\n});\n/**\n * Maps entries of a `ReadonlyRecord` using the provided function, allowing modification of both keys and corresponding values.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { mapEntries } from \"effect/Record\"\n *\n * assert.deepStrictEqual(mapEntries({ a: 3, b: 5 }, (a, key) => [key.toUpperCase(), a + 1]), { A: 4, B: 6 })\n * ```\n *\n * @category mapping\n * @since 2.0.0\n */\nexport const mapEntries = /*#__PURE__*/dual(2, (self, f) => {\n const out = {};\n for (const key of keys(self)) {\n const [k, b] = f(self[key], key);\n out[k] = b;\n }\n return out;\n});\n/**\n * Transforms a record into a record by applying the function `f` to each key and value in the original record.\n * If the function returns `Some`, the key-value pair is included in the output record.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record, Option } from \"effect\"\n *\n * const x = { a: 1, b: 2, c: 3 }\n * const f = (a: number, key: string) => a > 2 ? Option.some(a * 2) : Option.none()\n * assert.deepStrictEqual(Record.filterMap(x, f), { c: 6 })\n * ```\n *\n * @since 2.0.0\n */\nexport const filterMap = /*#__PURE__*/dual(2, (self, f) => {\n const out = empty();\n for (const key of keys(self)) {\n const o = f(self[key], key);\n if (Option.isSome(o)) {\n out[key] = o.value;\n }\n }\n return out;\n});\n/**\n * Selects properties from a record whose values match the given predicate.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { filter } from \"effect/Record\"\n *\n * const x = { a: 1, b: 2, c: 3, d: 4 }\n * assert.deepStrictEqual(filter(x, (n) => n > 2), { c: 3, d: 4 })\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const filter = /*#__PURE__*/dual(2, (self, predicate) => {\n const out = empty();\n for (const key of keys(self)) {\n if (predicate(self[key], key)) {\n out[key] = self[key];\n }\n }\n return out;\n});\n/**\n * Given a record with `Option` values, returns a new record containing only the `Some` values, preserving the original keys.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record, Option } from \"effect\"\n *\n * assert.deepStrictEqual(\n * Record.getSomes({ a: Option.some(1), b: Option.none(), c: Option.some(2) }),\n * { a: 1, c: 2 }\n * )\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const getSomes = /*#__PURE__*/filterMap(identity);\n/**\n * Given a record with `Either` values, returns a new record containing only the `Left` values, preserving the original keys.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record, Either } from \"effect\"\n *\n * assert.deepStrictEqual(\n * Record.getLefts({ a: Either.right(1), b: Either.left(\"err\"), c: Either.right(2) }),\n * { b: \"err\" }\n * )\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const getLefts = self => {\n const out = empty();\n for (const key of keys(self)) {\n const value = self[key];\n if (E.isLeft(value)) {\n out[key] = value.left;\n }\n }\n return out;\n};\n/**\n * Given a record with `Either` values, returns a new record containing only the `Right` values, preserving the original keys.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record, Either } from \"effect\"\n *\n * assert.deepStrictEqual(\n * Record.getRights({ a: Either.right(1), b: Either.left(\"err\"), c: Either.right(2) }),\n * { a: 1, c: 2 }\n * )\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const getRights = self => {\n const out = empty();\n for (const key of keys(self)) {\n const value = self[key];\n if (E.isRight(value)) {\n out[key] = value.right;\n }\n }\n return out;\n};\n/**\n * Partitions the elements of a record into two groups: those that match a predicate, and those that don't.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record, Either } from \"effect\"\n *\n * const x = { a: 1, b: 2, c: 3 }\n * const f = (n: number) => (n % 2 === 0 ? Either.right(n) : Either.left(n))\n * assert.deepStrictEqual(Record.partitionMap(x, f), [{ a: 1, c: 3 }, { b: 2}])\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const partitionMap = /*#__PURE__*/dual(2, (self, f) => {\n const left = empty();\n const right = empty();\n for (const key of keys(self)) {\n const e = f(self[key], key);\n if (E.isLeft(e)) {\n left[key] = e.left;\n } else {\n right[key] = e.right;\n }\n }\n return [left, right];\n});\n/**\n * Partitions a record of `Either` values into two separate records,\n * one with the `Left` values and one with the `Right` values.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record, Either } from \"effect\"\n *\n * assert.deepStrictEqual(\n * Record.separate({ a: Either.left(\"e\"), b: Either.right(1) }),\n * [{ a: \"e\" }, { b: 1 }]\n * )\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const separate = /*#__PURE__*/partitionMap(identity);\n/**\n * Partitions a record into two separate records based on the result of a predicate function.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { partition } from \"effect/Record\"\n *\n * assert.deepStrictEqual(\n * partition({ a: 1, b: 3 }, (n) => n > 2),\n * [{ a: 1 }, { b: 3 }]\n * )\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const partition = /*#__PURE__*/dual(2, (self, predicate) => {\n const left = empty();\n const right = empty();\n for (const key of keys(self)) {\n if (predicate(self[key], key)) {\n right[key] = self[key];\n } else {\n left[key] = self[key];\n }\n }\n return [left, right];\n});\n/**\n * Retrieve the keys of a given record as an array.\n *\n * @since 2.0.0\n */\nexport const keys = self => Object.keys(self);\n/**\n * Retrieve the values of a given record as an array.\n *\n * @since 2.0.0\n */\nexport const values = self => collect(self, (_, a) => a);\n/**\n * Add a new key-value pair or update an existing key's value in a record.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { set } from \"effect/Record\"\n *\n * assert.deepStrictEqual(set(\"a\", 5)({ a: 1, b: 2 }), { a: 5, b: 2 });\n * assert.deepStrictEqual(set(\"c\", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 });\n * ```\n *\n * @since 2.0.0\n */\nexport const set = /*#__PURE__*/dual(3, (self, key, value) => {\n return {\n ...self,\n [key]: value\n };\n});\n/**\n * Replace a key's value in a record and return the updated record.\n * If the key does not exist in the record, a copy of the original record is returned.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record } from \"effect\"\n *\n * assert.deepStrictEqual(Record.replace(\"a\", 3)({ a: 1, b: 2 }), { a: 3, b: 2 });\n * assert.deepStrictEqual(Record.replace(\"c\", 3)({ a: 1, b: 2 }), { a: 1, b: 2 });\n * ```\n *\n * @since 2.0.0\n */\nexport const replace = /*#__PURE__*/dual(3, (self, key, value) => {\n if (has(self, key)) {\n return {\n ...self,\n [key]: value\n };\n }\n return {\n ...self\n };\n});\n/**\n * Check if all the keys and values in one record are also found in another record.\n *\n * @since 2.0.0\n */\nexport const isSubrecordBy = equivalence => dual(2, (self, that) => {\n for (const key of keys(self)) {\n if (!has(that, key) || !equivalence(self[key], that[key])) {\n return false;\n }\n }\n return true;\n});\n/**\n * Check if one record is a subrecord of another, meaning it contains all the keys and values found in the second record.\n * This comparison uses default equality checks (`Equal.equivalence()`).\n *\n * @since 2.0.0\n */\nexport const isSubrecord = /*#__PURE__*/isSubrecordBy(/*#__PURE__*/Equal.equivalence());\n/**\n * Reduce a record to a single value by combining its entries with a specified function.\n *\n * @category folding\n * @since 2.0.0\n */\nexport const reduce = /*#__PURE__*/dual(3, (self, zero, f) => {\n let out = zero;\n for (const key of keys(self)) {\n out = f(out, self[key], key);\n }\n return out;\n});\n/**\n * Check if all entries in a record meet a specific condition.\n *\n * @since 2.0.0\n */\nexport const every = /*#__PURE__*/dual(2, (self, refinement) => {\n for (const key of keys(self)) {\n if (!refinement(self[key], key)) {\n return false;\n }\n }\n return true;\n});\n/**\n * Check if any entry in a record meets a specific condition.\n *\n * @since 2.0.0\n */\nexport const some = /*#__PURE__*/dual(2, (self, predicate) => {\n for (const key of keys(self)) {\n if (predicate(self[key], key)) {\n return true;\n }\n }\n return false;\n});\n/**\n * Merge two records, preserving entries that exist in either of the records.\n *\n * @since 2.0.0\n */\nexport const union = /*#__PURE__*/dual(3, (self, that, combine) => {\n if (isEmptyRecord(self)) {\n return {\n ...that\n };\n }\n if (isEmptyRecord(that)) {\n return {\n ...self\n };\n }\n const out = empty();\n for (const key of keys(self)) {\n if (has(that, key)) {\n out[key] = combine(self[key], that[key]);\n } else {\n out[key] = self[key];\n }\n }\n for (const key of keys(that)) {\n if (!has(out, key)) {\n out[key] = that[key];\n }\n }\n return out;\n});\n/**\n * Merge two records, retaining only the entries that exist in both records.\n *\n * @since 2.0.0\n */\nexport const intersection = /*#__PURE__*/dual(3, (self, that, combine) => {\n const out = empty();\n if (isEmptyRecord(self) || isEmptyRecord(that)) {\n return out;\n }\n for (const key of keys(self)) {\n if (has(that, key)) {\n out[key] = combine(self[key], that[key]);\n }\n }\n return out;\n});\n/**\n * Merge two records, preserving only the entries that are unique to each record.\n *\n * @since 2.0.0\n */\nexport const difference = /*#__PURE__*/dual(2, (self, that) => {\n if (isEmptyRecord(self)) {\n return {\n ...that\n };\n }\n if (isEmptyRecord(that)) {\n return {\n ...self\n };\n }\n const out = {};\n for (const key of keys(self)) {\n if (!has(that, key)) {\n out[key] = self[key];\n }\n }\n for (const key of keys(that)) {\n if (!has(self, key)) {\n out[key] = that[key];\n }\n }\n return out;\n});\n/**\n * Create an `Equivalence` for records using the provided `Equivalence` for values.\n *\n * @category instances\n * @since 2.0.0\n */\nexport const getEquivalence = equivalence => {\n const is = isSubrecordBy(equivalence);\n return (self, that) => is(self, that) && is(that, self);\n};\n/**\n * Create a non-empty record from a single element.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const singleton = (key, value) => ({\n [key]: value\n});\n/**\n * Returns the first entry that satisfies the specified\n * predicate, or `None` if no such entry exists.\n *\n * @example\n * ```ts\n * import { Record, Option } from \"effect\"\n *\n * const record = { a: 1, b: 2, c: 3 }\n * const result = Record.findFirst(record, (value, key) => value > 1 && key !== \"b\")\n * console.log(result) // Option.Some([\"c\", 3])\n * ```\n *\n * @category elements\n * @since 3.14.0\n */\nexport const findFirst = /*#__PURE__*/dual(2, (self, f) => {\n const k = keys(self);\n for (let i = 0; i < k.length; i++) {\n const key = k[i];\n if (f(self[key], key)) {\n return Option.some([key, self[key]]);\n }\n }\n return Option.none();\n});\n//# sourceMappingURL=Record.js.map","/**\n * This module provides utility functions for working with tuples in TypeScript.\n *\n * @since 2.0.0\n */\nimport * as Equivalence from \"./Equivalence.js\";\nimport { dual } from \"./Function.js\";\nimport * as order from \"./Order.js\";\n/**\n * Constructs a new tuple from the provided values.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { make } from \"effect/Tuple\"\n *\n * assert.deepStrictEqual(make(1, 'hello', true), [1, 'hello', true])\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const make = (...elements) => elements;\n/**\n * Return the first element from a tuple with two elements.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { getFirst } from \"effect/Tuple\"\n *\n * assert.deepStrictEqual(getFirst([\"hello\", 42]), \"hello\")\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const getFirst = self => self[0];\n/**\n * Return the second element from a tuple with two elements.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { getSecond } from \"effect/Tuple\"\n *\n * assert.deepStrictEqual(getSecond([\"hello\", 42]), 42)\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const getSecond = self => self[1];\n/**\n * Transforms each element of tuple using the given function, treating tuple homomorphically\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { pipe, Tuple } from \"effect\"\n *\n * const result = pipe(\n * [\"a\", 1, false] as const,\n * Tuple.map((el) => el.toString().toUpperCase())\n * )\n * assert.deepStrictEqual(result, ['A', '1', 'FALSE'])\n * ```\n *\n * @category mapping\n * @since 3.9.0\n */\nexport const map = /*#__PURE__*/dual(2, (self, fn) => self.map(element => fn(element)));\n/**\n * Transforms both elements of a tuple with two elements using the given functions.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { mapBoth } from \"effect/Tuple\"\n *\n * assert.deepStrictEqual(\n * mapBoth([\"hello\", 42], { onFirst: s => s.toUpperCase(), onSecond: n => n.toString() }),\n * [\"HELLO\", \"42\"]\n * )\n * ```\n *\n * @category mapping\n * @since 2.0.0\n */\nexport const mapBoth = /*#__PURE__*/dual(2, (self, {\n onFirst,\n onSecond\n}) => [onFirst(self[0]), onSecond(self[1])]);\n/**\n * Transforms the first component of a tuple with two elements using a given function.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { mapFirst } from \"effect/Tuple\"\n *\n * assert.deepStrictEqual(\n * mapFirst([\"hello\", 42], s => s.toUpperCase()),\n * [\"HELLO\", 42]\n * )\n * ```\n *\n * @category mapping\n * @since 2.0.0\n */\nexport const mapFirst = /*#__PURE__*/dual(2, (self, f) => [f(self[0]), self[1]]);\n/**\n * Transforms the second component of a tuple with two elements using a given function.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { mapSecond } from \"effect/Tuple\"\n *\n * assert.deepStrictEqual(\n * mapSecond([\"hello\", 42], n => n.toString()),\n * [\"hello\", \"42\"]\n * )\n * ```\n *\n * @category mapping\n * @since 2.0.0\n */\nexport const mapSecond = /*#__PURE__*/dual(2, (self, f) => [self[0], f(self[1])]);\n/**\n * Swaps the elements of a tuple with two elements.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { swap } from \"effect/Tuple\"\n *\n * assert.deepStrictEqual(swap([\"hello\", 42]), [42, \"hello\"])\n * ```\n *\n * @since 2.0.0\n */\nexport const swap = self => [self[1], self[0]];\n/**\n * Given a tuple of `Equivalence`s returns a new `Equivalence` that compares values of a tuple\n * by applying each `Equivalence` to the corresponding element of the tuple.\n *\n * @category combinators\n * @since 2.0.0\n */\nexport const getEquivalence = Equivalence.tuple;\n/**\n * This function creates and returns a new `Order` for a tuple of values based on the given `Order`s for each element in the tuple.\n * The returned `Order` compares two tuples of the same type by applying the corresponding `Order` to each element in the tuple.\n * It is useful when you need to compare two tuples of the same type and you have a specific way of comparing each element\n * of the tuple.\n *\n * @category combinators\n * @since 2.0.0\n */\nexport const getOrder = order.tuple;\n/**\n * Appends an element to the end of a tuple.\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const appendElement = /*#__PURE__*/dual(2, (self, that) => [...self, that]);\n/**\n * Retrieves the element at a specified index from a tuple.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Tuple } from \"effect\"\n *\n * assert.deepStrictEqual(Tuple.at([1, 'hello', true], 1), 'hello')\n * ```\n *\n * @category getters\n * @since 3.4.0\n */\nexport const at = /*#__PURE__*/dual(2, (self, index) => self[index]);\nexport {\n/**\n * Determine if an `Array` is a tuple with exactly `N` elements, narrowing down the type to `TupleOf`.\n *\n * An `Array` is considered to be a `TupleOf` if its length is exactly `N`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { isTupleOf } from \"effect/Tuple\"\n *\n * assert.deepStrictEqual(isTupleOf([1, 2, 3], 3), true);\n * assert.deepStrictEqual(isTupleOf([1, 2, 3], 2), false);\n * assert.deepStrictEqual(isTupleOf([1, 2, 3], 4), false);\n *\n * const arr: number[] = [1, 2, 3];\n * if (isTupleOf(arr, 3)) {\n * console.log(arr);\n * // ^? [number, number, number]\n * }\n *\n * ```\n * @category guards\n * @since 3.3.0\n */\nisTupleOf,\n/**\n * Determine if an `Array` is a tuple with at least `N` elements, narrowing down the type to `TupleOfAtLeast`.\n *\n * An `Array` is considered to be a `TupleOfAtLeast` if its length is at least `N`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { isTupleOfAtLeast } from \"effect/Tuple\"\n *\n * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 3), true);\n * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 2), true);\n * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 4), false);\n *\n * const arr: number[] = [1, 2, 3, 4];\n * if (isTupleOfAtLeast(arr, 3)) {\n * console.log(arr);\n * // ^? [number, number, number, ...number[]]\n * }\n *\n * ```\n * @category guards\n * @since 3.3.0\n */\nisTupleOfAtLeast } from \"./Predicate.js\";\n//# sourceMappingURL=Tuple.js.map","/**\n * This module provides utility functions for working with arrays in TypeScript.\n *\n * @since 2.0.0\n */\nimport * as Either from \"./Either.js\";\nimport * as Equal from \"./Equal.js\";\nimport * as Equivalence from \"./Equivalence.js\";\nimport { dual, identity } from \"./Function.js\";\nimport * as internalArray from \"./internal/array.js\";\nimport * as internalDoNotation from \"./internal/doNotation.js\";\nimport * as moduleIterable from \"./Iterable.js\";\nimport * as Option from \"./Option.js\";\nimport * as Order from \"./Order.js\";\nimport * as Predicate from \"./Predicate.js\";\nimport * as Record from \"./Record.js\";\nimport * as Tuple from \"./Tuple.js\";\n/**\n * Builds a `NonEmptyArray` from an non-empty collection of elements.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.make(1, 2, 3)\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const make = (...elements) => elements;\n/**\n * Creates a new `Array` of the specified length.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.allocate(3)\n * console.log(result) // [ <3 empty items> ]\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const allocate = n => new Array(n);\n/**\n * Return a `NonEmptyArray` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to an integer >= 1.\n *\n * **Example**\n *\n * ```ts\n * import { makeBy } from \"effect/Array\"\n *\n * const result = makeBy(5, n => n * 2)\n * console.log(result) // [0, 2, 4, 6, 8]\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const makeBy = /*#__PURE__*/dual(2, (n, f) => {\n const max = Math.max(1, Math.floor(n));\n const out = new Array(max);\n for (let i = 0; i < max; i++) {\n out[i] = f(i);\n }\n return out;\n});\n/**\n * Return a `NonEmptyArray` containing a range of integers, including both endpoints.\n *\n * **Example**\n *\n * ```ts\n * import { range } from \"effect/Array\"\n *\n * const result = range(1, 3)\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const range = (start, end) => start <= end ? makeBy(end - start + 1, i => start + i) : [start];\n/**\n * Return a `NonEmptyArray` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to an integer >= 1.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.replicate(\"a\", 3)\n * console.log(result) // [\"a\", \"a\", \"a\"]\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const replicate = /*#__PURE__*/dual(2, (a, n) => makeBy(n, () => a));\n/**\n * Creates a new `Array` from an iterable collection of values.\n * If the input is already an array, it returns the input as-is.\n * Otherwise, it converts the iterable collection to an array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.fromIterable(new Set([1, 2, 3]))\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const fromIterable = collection => Array.isArray(collection) ? collection : Array.from(collection);\n/**\n * Creates a new `Array` from a value that might not be an iterable.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * console.log(Array.ensure(\"a\")) // [\"a\"]\n * console.log(Array.ensure([\"a\"])) // [\"a\"]\n * console.log(Array.ensure([\"a\", \"b\", \"c\"])) // [\"a\", \"b\", \"c\"]\n * ```\n *\n * @category constructors\n * @since 3.3.0\n */\nexport const ensure = self => Array.isArray(self) ? self : [self];\n/**\n * Takes a record and returns an array of tuples containing its keys and values.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.fromRecord({ a: 1, b: 2, c: 3 })\n * console.log(result) // [[\"a\", 1], [\"b\", 2], [\"c\", 3]]\n * ```\n *\n * @category conversions\n * @since 2.0.0\n */\nexport const fromRecord = Record.toEntries;\n/**\n * Converts an `Option` to an array.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Option } from \"effect\"\n *\n * console.log(Array.fromOption(Option.some(1))) // [1]\n * console.log(Array.fromOption(Option.none())) // []\n * ```\n *\n * @category conversions\n * @since 2.0.0\n */\nexport const fromOption = Option.toArray;\n/**\n * Matches the elements of an array, applying functions to cases of empty and non-empty arrays.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const match = Array.match({\n * onEmpty: () => \"empty\",\n * onNonEmpty: ([head, ...tail]) => `head: ${head}, tail: ${tail.length}`\n * })\n * console.log(match([])) // \"empty\"\n * console.log(match([1, 2, 3])) // \"head: 1, tail: 2\"\n * ```\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexport const match = /*#__PURE__*/dual(2, (self, {\n onEmpty,\n onNonEmpty\n}) => isNonEmptyReadonlyArray(self) ? onNonEmpty(self) : onEmpty());\n/**\n * Matches the elements of an array from the left, applying functions to cases of empty and non-empty arrays.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const matchLeft = Array.matchLeft({\n * onEmpty: () => \"empty\",\n * onNonEmpty: (head, tail) => `head: ${head}, tail: ${tail.length}`\n * })\n * console.log(matchLeft([])) // \"empty\"\n * console.log(matchLeft([1, 2, 3])) // \"head: 1, tail: 2\"\n * ```\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexport const matchLeft = /*#__PURE__*/dual(2, (self, {\n onEmpty,\n onNonEmpty\n}) => isNonEmptyReadonlyArray(self) ? onNonEmpty(headNonEmpty(self), tailNonEmpty(self)) : onEmpty());\n/**\n * Matches the elements of an array from the right, applying functions to cases of empty and non-empty arrays.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const matchRight = Array.matchRight({\n * onEmpty: () => \"empty\",\n * onNonEmpty: (init, last) => `init: ${init.length}, last: ${last}`\n * })\n * console.log(matchRight([])) // \"empty\"\n * console.log(matchRight([1, 2, 3])) // \"init: 2, last: 3\"\n * ```\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexport const matchRight = /*#__PURE__*/dual(2, (self, {\n onEmpty,\n onNonEmpty\n}) => isNonEmptyReadonlyArray(self) ? onNonEmpty(initNonEmpty(self), lastNonEmpty(self)) : onEmpty());\n/**\n * Prepend an element to the front of an `Iterable`, creating a new `NonEmptyArray`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.prepend([2, 3, 4], 1)\n * console.log(result) // [1, 2, 3, 4]\n * ```\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const prepend = /*#__PURE__*/dual(2, (self, head) => [head, ...self]);\n/**\n * Prepends the specified prefix array (or iterable) to the beginning of the specified array (or iterable).\n * If either array is non-empty, the result is also a non-empty array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.prependAll([2, 3], [0, 1])\n * console.log(result) // [0, 1, 2, 3]\n * ```\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const prependAll = /*#__PURE__*/dual(2, (self, that) => fromIterable(that).concat(fromIterable(self)));\n/**\n * Append an element to the end of an `Iterable`, creating a new `NonEmptyArray`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.append([1, 2, 3], 4);\n * console.log(result) // [1, 2, 3, 4]\n * ```\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const append = /*#__PURE__*/dual(2, (self, last) => [...self, last]);\n/**\n * Concatenates two arrays (or iterables), combining their elements.\n * If either array is non-empty, the result is also a non-empty array.\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const appendAll = /*#__PURE__*/dual(2, (self, that) => fromIterable(self).concat(fromIterable(that)));\n/**\n * Accumulates values from an `Iterable` starting from the left, storing\n * each intermediate result in an array. Useful for tracking the progression of\n * a value through a series of transformations.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\";\n *\n * const result = Array.scan([1, 2, 3, 4], 0, (acc, value) => acc + value)\n * console.log(result) // [0, 1, 3, 6, 10]\n *\n * // Explanation:\n * // This function starts with the initial value (0 in this case)\n * // and adds each element of the array to this accumulator one by one,\n * // keeping track of the cumulative sum after each addition.\n * // Each of these sums is captured in the resulting array.\n * ```\n *\n * @category folding\n * @since 2.0.0\n */\nexport const scan = /*#__PURE__*/dual(3, (self, b, f) => {\n const out = [b];\n let i = 0;\n for (const a of self) {\n out[i + 1] = f(out[i], a);\n i++;\n }\n return out;\n});\n/**\n * Accumulates values from an `Iterable` starting from the right, storing\n * each intermediate result in an array. Useful for tracking the progression of\n * a value through a series of transformations.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\";\n *\n * const result = Array.scanRight([1, 2, 3, 4], 0, (acc, value) => acc + value)\n * console.log(result) // [10, 9, 7, 4, 0]\n * ```\n *\n * @category folding\n * @since 2.0.0\n */\nexport const scanRight = /*#__PURE__*/dual(3, (self, b, f) => {\n const input = fromIterable(self);\n const out = new Array(input.length + 1);\n out[input.length] = b;\n for (let i = input.length - 1; i >= 0; i--) {\n out[i] = f(out[i + 1], input[i]);\n }\n return out;\n});\n/**\n * Determine if `unknown` is an Array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * console.log(Array.isArray(null)) // false\n * console.log(Array.isArray([1, 2, 3])) // true\n * ```\n *\n * @category guards\n * @since 2.0.0\n */\nexport const isArray = Array.isArray;\n/**\n * Determine if an `Array` is empty narrowing down the type to `[]`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * console.log(Array.isEmptyArray([])) // true\n * console.log(Array.isEmptyArray([1, 2, 3])) // false\n * ```\n *\n * @category guards\n * @since 2.0.0\n */\nexport const isEmptyArray = self => self.length === 0;\n/**\n * Determine if a `ReadonlyArray` is empty narrowing down the type to `readonly []`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * console.log(Array.isEmptyReadonlyArray([])) // true\n * console.log(Array.isEmptyReadonlyArray([1, 2, 3])) // false\n * ```\n *\n * @category guards\n * @since 2.0.0\n */\nexport const isEmptyReadonlyArray = isEmptyArray;\n/**\n * Determine if an `Array` is non empty narrowing down the type to `NonEmptyArray`.\n *\n * An `Array` is considered to be a `NonEmptyArray` if it contains at least one element.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * console.log(Array.isNonEmptyArray([])) // false\n * console.log(Array.isNonEmptyArray([1, 2, 3])) // true\n * ```\n *\n * @category guards\n * @since 2.0.0\n */\nexport const isNonEmptyArray = internalArray.isNonEmptyArray;\n/**\n * Determine if a `ReadonlyArray` is non empty narrowing down the type to `NonEmptyReadonlyArray`.\n *\n * A `ReadonlyArray` is considered to be a `NonEmptyReadonlyArray` if it contains at least one element.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * console.log(Array.isNonEmptyReadonlyArray([])) // false\n * console.log(Array.isNonEmptyReadonlyArray([1, 2, 3])) // true\n * ```\n *\n * @category guards\n * @since 2.0.0\n */\nexport const isNonEmptyReadonlyArray = internalArray.isNonEmptyArray;\n/**\n * Return the number of elements in a `ReadonlyArray`.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const length = self => self.length;\nconst isOutOfBounds = (i, as) => i < 0 || i >= as.length;\nconst clamp = (i, as) => Math.floor(Math.min(Math.max(0, i), as.length));\n/**\n * This function provides a safe way to read a value at a particular index from a `ReadonlyArray`.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const get = /*#__PURE__*/dual(2, (self, index) => {\n const i = Math.floor(index);\n return isOutOfBounds(i, self) ? Option.none() : Option.some(self[i]);\n});\n/**\n * Gets an element unsafely, will throw on out of bounds.\n *\n * @since 2.0.0\n * @category unsafe\n */\nexport const unsafeGet = /*#__PURE__*/dual(2, (self, index) => {\n const i = Math.floor(index);\n if (isOutOfBounds(i, self)) {\n throw new Error(`Index ${i} out of bounds`);\n }\n return self[i];\n});\n/**\n * Return a tuple containing the first element, and a new `Array` of the remaining elements, if any.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\";\n *\n * const result = Array.unprepend([1, 2, 3, 4])\n * console.log(result) // [1, [2, 3, 4]]\n * ```\n *\n * @category splitting\n * @since 2.0.0\n */\nexport const unprepend = self => [headNonEmpty(self), tailNonEmpty(self)];\n/**\n * Return a tuple containing a copy of the `NonEmptyReadonlyArray` without its last element, and that last element.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\";\n *\n * const result = Array.unappend([1, 2, 3, 4])\n * console.log(result) // [[1, 2, 3], 4]\n * ```\n *\n * @category splitting\n * @since 2.0.0\n */\nexport const unappend = self => [initNonEmpty(self), lastNonEmpty(self)];\n/**\n * Get the first element of a `ReadonlyArray`, or `None` if the `ReadonlyArray` is empty.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const head = /*#__PURE__*/get(0);\n/**\n * Get the first element of a non empty array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.headNonEmpty([1, 2, 3, 4])\n * console.log(result) // 1\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const headNonEmpty = /*#__PURE__*/unsafeGet(0);\n/**\n * Get the last element in a `ReadonlyArray`, or `None` if the `ReadonlyArray` is empty.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const last = self => isNonEmptyReadonlyArray(self) ? Option.some(lastNonEmpty(self)) : Option.none();\n/**\n * Get the last element of a non empty array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.lastNonEmpty([1, 2, 3, 4])\n * console.log(result) // 4\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const lastNonEmpty = self => self[self.length - 1];\n/**\n * Get all but the first element of an `Iterable`, creating a new `Array`, or `None` if the `Iterable` is empty.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const tail = self => {\n const input = fromIterable(self);\n return isNonEmptyReadonlyArray(input) ? Option.some(tailNonEmpty(input)) : Option.none();\n};\n/**\n * Get all but the first element of a `NonEmptyReadonlyArray`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.tailNonEmpty([1, 2, 3, 4])\n * console.log(result) // [2, 3, 4]\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const tailNonEmpty = self => self.slice(1);\n/**\n * Get all but the last element of an `Iterable`, creating a new `Array`, or `None` if the `Iterable` is empty.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const init = self => {\n const input = fromIterable(self);\n return isNonEmptyReadonlyArray(input) ? Option.some(initNonEmpty(input)) : Option.none();\n};\n/**\n * Get all but the last element of a non empty array, creating a new array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.initNonEmpty([1, 2, 3, 4])\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const initNonEmpty = self => self.slice(0, -1);\n/**\n * Keep only a max number of elements from the start of an `Iterable`, creating a new `Array`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.take([1, 2, 3, 4, 5], 3)\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const take = /*#__PURE__*/dual(2, (self, n) => {\n const input = fromIterable(self);\n return input.slice(0, clamp(n, input));\n});\n/**\n * Keep only a max number of elements from the end of an `Iterable`, creating a new `Array`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.takeRight([1, 2, 3, 4, 5], 3)\n * console.log(result) // [3, 4, 5]\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const takeRight = /*#__PURE__*/dual(2, (self, n) => {\n const input = fromIterable(self);\n const i = clamp(n, input);\n return i === 0 ? [] : input.slice(-i);\n});\n/**\n * Calculate the longest initial subarray for which all element satisfy the specified predicate, creating a new `Array`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.takeWhile([1, 3, 2, 4, 1, 2], x => x < 4)\n * console.log(result) // [1, 3, 2]\n *\n * // Explanation:\n * // - The function starts with the first element (`1`), which is less than `4`, so it adds `1` to the result.\n * // - The next element (`3`) is also less than `4`, so it adds `3`.\n * // - The next element (`2`) is again less than `4`, so it adds `2`.\n * // - The function then encounters `4`, which is not less than `4`. At this point, it stops checking further elements and finalizes the result.\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const takeWhile = /*#__PURE__*/dual(2, (self, predicate) => {\n let i = 0;\n const out = [];\n for (const a of self) {\n if (!predicate(a, i)) {\n break;\n }\n out.push(a);\n i++;\n }\n return out;\n});\nconst spanIndex = (self, predicate) => {\n let i = 0;\n for (const a of self) {\n if (!predicate(a, i)) {\n break;\n }\n i++;\n }\n return i;\n};\n/**\n * Split an `Iterable` into two parts:\n *\n * 1. the longest initial subarray for which all elements satisfy the specified predicate\n * 2. the remaining elements\n *\n * @category splitting\n * @since 2.0.0\n */\nexport const span = /*#__PURE__*/dual(2, (self, predicate) => splitAt(self, spanIndex(self, predicate)));\n/**\n * Drop a max number of elements from the start of an `Iterable`, creating a new `Array`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.drop([1, 2, 3, 4, 5], 2)\n * console.log(result) // [3, 4, 5]\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const drop = /*#__PURE__*/dual(2, (self, n) => {\n const input = fromIterable(self);\n return input.slice(clamp(n, input), input.length);\n});\n/**\n * Drop a max number of elements from the end of an `Iterable`, creating a new `Array`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.dropRight([1, 2, 3, 4, 5], 2)\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const dropRight = /*#__PURE__*/dual(2, (self, n) => {\n const input = fromIterable(self);\n return input.slice(0, input.length - clamp(n, input));\n});\n/**\n * Remove the longest initial subarray for which all element satisfy the specified predicate, creating a new `Array`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.dropWhile([1, 2, 3, 4, 5], x => x < 4)\n * console.log(result) // [4, 5]\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const dropWhile = /*#__PURE__*/dual(2, (self, predicate) => fromIterable(self).slice(spanIndex(self, predicate)));\n/**\n * Return the first index for which a predicate holds.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.findFirstIndex([5, 3, 8, 9], x => x > 5)\n * console.log(result) // Option.some(2)\n * ```\n *\n * @category elements\n * @since 2.0.0\n */\nexport const findFirstIndex = /*#__PURE__*/dual(2, (self, predicate) => {\n let i = 0;\n for (const a of self) {\n if (predicate(a, i)) {\n return Option.some(i);\n }\n i++;\n }\n return Option.none();\n});\n/**\n * Return the last index for which a predicate holds.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.findLastIndex([1, 3, 8, 9], x => x < 5)\n * console.log(result) // Option.some(1)\n * ```\n *\n * @category elements\n * @since 2.0.0\n */\nexport const findLastIndex = /*#__PURE__*/dual(2, (self, predicate) => {\n const input = fromIterable(self);\n for (let i = input.length - 1; i >= 0; i--) {\n if (predicate(input[i], i)) {\n return Option.some(i);\n }\n }\n return Option.none();\n});\n/**\n * Returns the first element that satisfies the specified\n * predicate, or `None` if no such element exists.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.findFirst([1, 2, 3, 4, 5], x => x > 3)\n * console.log(result) // Option.some(4)\n * ```\n *\n * @category elements\n * @since 2.0.0\n */\nexport const findFirst = moduleIterable.findFirst;\n/**\n * Finds the last element in an iterable collection that satisfies the given predicate or refinement.\n * Returns an `Option` containing the found element, or `Option.none` if no element matches.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.findLast([1, 2, 3, 4, 5], n => n % 2 === 0)\n * console.log(result) // Option.some(4)\n * ```\n *\n * @category elements\n * @since 2.0.0\n */\nexport const findLast = /*#__PURE__*/dual(2, (self, f) => {\n const input = fromIterable(self);\n for (let i = input.length - 1; i >= 0; i--) {\n const a = input[i];\n const o = f(a, i);\n if (Predicate.isBoolean(o)) {\n if (o) {\n return Option.some(a);\n }\n } else {\n if (Option.isSome(o)) {\n return o;\n }\n }\n }\n return Option.none();\n});\n/**\n * Returns a tuple of the first element that satisfies the specified\n * predicate and its index, or `None` if no such element exists.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.findFirstWithIndex([1, 2, 3, 4, 5], x => x > 3)\n * console.log(result) // Option.some([4, 3])\n * ```\n *\n * @category elements\n * @since 3.17.0\n */\nexport const findFirstWithIndex = /*#__PURE__*/dual(2, (self, f) => {\n let i = 0;\n for (const a of self) {\n const o = f(a, i);\n if (Predicate.isBoolean(o)) {\n if (o) {\n return Option.some([a, i]);\n }\n } else {\n if (Option.isSome(o)) {\n return Option.some([o.value, i]);\n }\n }\n i++;\n }\n return Option.none();\n});\n/**\n * Counts all the element of the given array that pass the given predicate\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.countBy([1, 2, 3, 4, 5], n => n % 2 === 0)\n * console.log(result) // 2\n * ```\n *\n * @category folding\n * @since 3.16.0\n */\nexport const countBy = /*#__PURE__*/dual(2, (self, f) => {\n let count = 0;\n const as = fromIterable(self);\n for (let i = 0; i < as.length; i++) {\n const a = as[i];\n if (f(a, i)) {\n count++;\n }\n }\n return count;\n});\n/**\n * Insert an element at the specified index, creating a new `NonEmptyArray`,\n * or return `None` if the index is out of bounds.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.insertAt(['a', 'b', 'c', 'e'], 3, 'd')\n * console.log(result) // Option.some(['a', 'b', 'c', 'd', 'e'])\n * ```\n *\n * @since 2.0.0\n */\nexport const insertAt = /*#__PURE__*/dual(3, (self, i, b) => {\n const out = Array.from(self);\n // v--- `= self.length` is ok, it means inserting in last position\n if (i < 0 || i > out.length) {\n return Option.none();\n }\n out.splice(i, 0, b);\n return Option.some(out);\n});\n/**\n * Change the element at the specified index, creating a new `Array`,\n * or return a copy of the input if the index is out of bounds.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.replace(['a', 'b', 'c', 'd'], 1, 'z')\n * console.log(result) // ['a', 'z', 'c', 'd']\n * ```\n *\n * @since 2.0.0\n */\nexport const replace = /*#__PURE__*/dual(3, (self, i, b) => modify(self, i, () => b));\n/**\n * Replaces an element in an array with the given value, returning an option of the updated array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.replaceOption([1, 2, 3], 1, 4)\n * console.log(result) // Option.some([1, 4, 3])\n * ```\n *\n * @since 2.0.0\n */\nexport const replaceOption = /*#__PURE__*/dual(3, (self, i, b) => modifyOption(self, i, () => b));\n/**\n * Apply a function to the element at the specified index, creating a new `Array`,\n * or return a copy of the input if the index is out of bounds.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.modify([1, 2, 3, 4], 2, (n) => n * 2)\n * console.log(result) // [1, 2, 6, 4]\n * ```\n *\n * @since 2.0.0\n */\nexport const modify = /*#__PURE__*/dual(3, (self, i, f) => {\n const out = Array.from(self);\n if (isOutOfBounds(i, out)) {\n return out;\n }\n const b = f(out[i]);\n out[i] = b;\n return out;\n});\n/**\n * Apply a function to the element at the specified index, creating a new `Array`,\n * or return `None` if the index is out of bounds.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const input = [1, 2, 3, 4]\n * const result = Array.modifyOption(input, 2, (n) => n * 2)\n * console.log(result) // Option.some([1, 2, 6, 4])\n *\n * const outOfBoundsResult = Array.modifyOption(input, 5, (n) => n * 2)\n * console.log(outOfBoundsResult) // Option.none()\n * ```\n *\n * @since 2.0.0\n */\nexport const modifyOption = /*#__PURE__*/dual(3, (self, i, f) => {\n const arr = fromIterable(self);\n if (isOutOfBounds(i, arr)) {\n return Option.none();\n }\n const out = Array.isArray(self) ? self.slice() : arr;\n const b = f(arr[i]);\n out[i] = b;\n return Option.some(out);\n});\n/**\n * Delete the element at the specified index, creating a new `Array`,\n * or return a copy of the input if the index is out of bounds.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const input = [1, 2, 3, 4]\n * const result = Array.remove(input, 2)\n * console.log(result) // [1, 2, 4]\n *\n * const outOfBoundsResult = Array.remove(input, 5)\n * console.log(outOfBoundsResult) // [1, 2, 3, 4]\n * ```\n *\n * @since 2.0.0\n */\nexport const remove = /*#__PURE__*/dual(2, (self, i) => {\n const out = Array.from(self);\n if (isOutOfBounds(i, out)) {\n return out;\n }\n out.splice(i, 1);\n return out;\n});\n/**\n * Delete the element at the specified index, creating a new `Array`,\n * or return `None` if the index is out of bounds.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Array, Option } from \"effect\"\n *\n * const numbers = [1, 2, 3, 4]\n * const result = Array.removeOption(numbers, 2)\n * assert.deepStrictEqual(result, Option.some([1, 2, 4]))\n *\n * const outOfBoundsResult = Array.removeOption(numbers, 5)\n * assert.deepStrictEqual(outOfBoundsResult, Option.none())\n * ```\n *\n * @since 3.16.0\n */\nexport const removeOption = /*#__PURE__*/dual(2, (self, i) => {\n const arr = fromIterable(self);\n if (isOutOfBounds(i, arr)) {\n return Option.none();\n }\n const out = Array.isArray(self) ? self.slice() : arr;\n out.splice(i, 1);\n return Option.some(out);\n});\n/**\n * Reverse an `Iterable`, creating a new `Array`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.reverse([1, 2, 3, 4])\n * console.log(result) // [4, 3, 2, 1]\n * ```\n *\n * @category elements\n * @since 2.0.0\n */\nexport const reverse = self => Array.from(self).reverse();\n/**\n * Create a new array with elements sorted in increasing order based on the specified comparator.\n * If the input is a `NonEmptyReadonlyArray`, the output will also be a `NonEmptyReadonlyArray`.\n *\n * @category sorting\n * @since 2.0.0\n */\nexport const sort = /*#__PURE__*/dual(2, (self, O) => {\n const out = Array.from(self);\n out.sort(O);\n return out;\n});\n/**\n * Sorts an array based on a provided mapping function and order. The mapping\n * function transforms the elements into a value that can be compared, and the\n * order defines how those values should be sorted.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Order } from \"effect\"\n *\n * const result = Array.sortWith([\"aaa\", \"b\", \"cc\"], (s) => s.length, Order.number)\n * console.log(result) // [\"b\", \"cc\", \"aaa\"]\n *\n * // Explanation:\n * // The array of strings is sorted based on their lengths. The mapping function `(s) => s.length`\n * // converts each string into its length, and the `Order.number` specifies that the lengths should\n * // be sorted in ascending order.\n * ```\n *\n * @since 2.0.0\n * @category elements\n */\nexport const sortWith = /*#__PURE__*/dual(3, (self, f, order) => Array.from(self).map(a => [a, f(a)]).sort(([, a], [, b]) => order(a, b)).map(([_]) => _));\n/**\n * Sorts the elements of an `Iterable` in increasing order based on the provided\n * orders. The elements are compared using the first order in `orders`, then the\n * second order if the first comparison is equal, and so on.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Order, pipe } from \"effect\"\n *\n * const users = [\n * { name: \"Alice\", age: 30 },\n * { name: \"Bob\", age: 25 },\n * { name: \"Charlie\", age: 30 }\n * ]\n *\n * const result = pipe(\n * users,\n * Array.sortBy(\n * Order.mapInput(Order.number, (user: (typeof users)[number]) => user.age),\n * Order.mapInput(Order.string, (user: (typeof users)[number]) => user.name)\n * )\n * )\n *\n * console.log(result)\n * // [\n * // { name: \"Bob\", age: 25 },\n * // { name: \"Alice\", age: 30 },\n * // { name: \"Charlie\", age: 30 }\n * // ]\n *\n * // Explanation:\n * // The array of users is sorted first by age in ascending order. When ages are equal,\n * // the users are further sorted by name in ascending order.\n * ```\n *\n * @category sorting\n * @since 2.0.0\n */\nexport const sortBy = (...orders) => {\n const sortByAll = sort(Order.combineAll(orders));\n return self => {\n const input = fromIterable(self);\n if (isNonEmptyReadonlyArray(input)) {\n return sortByAll(input);\n }\n return [];\n };\n};\n/**\n * Takes two `Iterable`s and returns an `Array` of corresponding pairs.\n * If one input `Iterable` is short, excess elements of the\n * longer `Iterable` are discarded.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.zip([1, 2, 3], ['a', 'b'])\n * console.log(result) // [[1, 'a'], [2, 'b']]\n * ```\n *\n * @category zipping\n * @since 2.0.0\n */\nexport const zip = /*#__PURE__*/dual(2, (self, that) => zipWith(self, that, Tuple.make));\n/**\n * Apply a function to pairs of elements at the same index in two `Iterable`s, collecting the results in a new `Array`. If one\n * input `Iterable` is short, excess elements of the longer `Iterable` are discarded.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.zipWith([1, 2, 3], [4, 5, 6], (a, b) => a + b)\n * console.log(result) // [5, 7, 9]\n * ```\n *\n * @category zipping\n * @since 2.0.0\n */\nexport const zipWith = /*#__PURE__*/dual(3, (self, that, f) => {\n const as = fromIterable(self);\n const bs = fromIterable(that);\n if (isNonEmptyReadonlyArray(as) && isNonEmptyReadonlyArray(bs)) {\n const out = [f(headNonEmpty(as), headNonEmpty(bs))];\n const len = Math.min(as.length, bs.length);\n for (let i = 1; i < len; i++) {\n out[i] = f(as[i], bs[i]);\n }\n return out;\n }\n return [];\n});\n/**\n * This function is the inverse of `zip`. Takes an `Iterable` of pairs and return two corresponding `Array`s.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.unzip([[1, \"a\"], [2, \"b\"], [3, \"c\"]])\n * console.log(result) // [[1, 2, 3], ['a', 'b', 'c']]\n * ```\n *\n * @since 2.0.0\n */\nexport const unzip = self => {\n const input = fromIterable(self);\n if (isNonEmptyReadonlyArray(input)) {\n const fa = [input[0][0]];\n const fb = [input[0][1]];\n for (let i = 1; i < input.length; i++) {\n fa[i] = input[i][0];\n fb[i] = input[i][1];\n }\n return [fa, fb];\n }\n return [[], []];\n};\n/**\n * Places an element in between members of an `Iterable`.\n * If the input is a non-empty array, the result is also a non-empty array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.intersperse([1, 2, 3], 0)\n * console.log(result) // [1, 0, 2, 0, 3]\n * ```\n *\n * @since 2.0.0\n */\nexport const intersperse = /*#__PURE__*/dual(2, (self, middle) => {\n const input = fromIterable(self);\n if (isNonEmptyReadonlyArray(input)) {\n const out = [headNonEmpty(input)];\n const tail = tailNonEmpty(input);\n for (let i = 0; i < tail.length; i++) {\n if (i < tail.length) {\n out.push(middle);\n }\n out.push(tail[i]);\n }\n return out;\n }\n return [];\n});\n/**\n * Apply a function to the head, creating a new `NonEmptyReadonlyArray`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.modifyNonEmptyHead([1, 2, 3], n => n * 10)\n * console.log(result) // [10, 2, 3]\n * ```\n *\n * @since 2.0.0\n */\nexport const modifyNonEmptyHead = /*#__PURE__*/dual(2, (self, f) => [f(headNonEmpty(self)), ...tailNonEmpty(self)]);\n/**\n * Change the head, creating a new `NonEmptyReadonlyArray`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.setNonEmptyHead([1, 2, 3], 10)\n * console.log(result) // [10, 2, 3]\n * ```\n *\n * @since 2.0.0\n */\nexport const setNonEmptyHead = /*#__PURE__*/dual(2, (self, b) => modifyNonEmptyHead(self, () => b));\n/**\n * Apply a function to the last element, creating a new `NonEmptyReadonlyArray`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.modifyNonEmptyLast([1, 2, 3], n => n * 2)\n * console.log(result) // [1, 2, 6]\n * ```\n *\n * @since 2.0.0\n */\nexport const modifyNonEmptyLast = /*#__PURE__*/dual(2, (self, f) => append(initNonEmpty(self), f(lastNonEmpty(self))));\n/**\n * Change the last element, creating a new `NonEmptyReadonlyArray`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.setNonEmptyLast([1, 2, 3], 4)\n * console.log(result) // [1, 2, 4]\n * ```\n *\n * @since 2.0.0\n */\nexport const setNonEmptyLast = /*#__PURE__*/dual(2, (self, b) => modifyNonEmptyLast(self, () => b));\n/**\n * Rotate an `Iterable` by `n` steps.\n * If the input is a non-empty array, the result is also a non-empty array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.rotate(['a', 'b', 'c', 'd', 'e'], 2)\n * console.log(result) // [ 'd', 'e', 'a', 'b', 'c' ]\n * ```\n *\n * @since 2.0.0\n */\nexport const rotate = /*#__PURE__*/dual(2, (self, n) => {\n const input = fromIterable(self);\n if (isNonEmptyReadonlyArray(input)) {\n const len = input.length;\n const m = Math.round(n) % len;\n if (isOutOfBounds(Math.abs(m), input) || m === 0) {\n return copy(input);\n }\n if (m < 0) {\n const [f, s] = splitNonEmptyAt(input, -m);\n return appendAll(s, f);\n } else {\n return rotate(self, m - len);\n }\n }\n return [];\n});\n/**\n * Returns a function that checks if a `ReadonlyArray` contains a given value using a provided `isEquivalent` function.\n *\n * **Example**\n *\n * ```ts\n * import { Array, pipe } from \"effect\"\n *\n * const isEquivalent = (a: number, b: number) => a === b\n * const containsNumber = Array.containsWith(isEquivalent)\n * const result = pipe([1, 2, 3, 4], containsNumber(3))\n * console.log(result) // true\n * ```\n *\n * @category elements\n * @since 2.0.0\n */\nexport const containsWith = isEquivalent => dual(2, (self, a) => {\n for (const i of self) {\n if (isEquivalent(a, i)) {\n return true;\n }\n }\n return false;\n});\nconst _equivalence = /*#__PURE__*/Equal.equivalence();\n/**\n * Returns a function that checks if a `ReadonlyArray` contains a given value using the default `Equivalence`.\n *\n * **Example**\n *\n * ```ts\n * import { Array, pipe } from \"effect\"\n *\n * const result = pipe(['a', 'b', 'c', 'd'], Array.contains('c'))\n * console.log(result) // true\n * ```\n *\n * @category elements\n * @since 2.0.0\n */\nexport const contains = /*#__PURE__*/containsWith(_equivalence);\n/**\n * A useful recursion pattern for processing an `Iterable` to produce a new `Array`, often used for \"chopping\" up the input\n * `Iterable`. Typically chop is called with some function that will consume an initial prefix of the `Iterable` and produce a\n * value and the rest of the `Array`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.chop([1, 2, 3, 4, 5], (as): [number, Array] => [as[0] * 2, as.slice(1)])\n * console.log(result) // [2, 4, 6, 8, 10]\n *\n * // Explanation:\n * // The `chopFunction` takes the first element of the array, doubles it, and then returns it along with the rest of the array.\n * // The `chop` function applies this `chopFunction` recursively to the input array `[1, 2, 3, 4, 5]`,\n * // resulting in a new array `[2, 4, 6, 8, 10]`.\n * ```\n *\n * @since 2.0.0\n */\nexport const chop = /*#__PURE__*/dual(2, (self, f) => {\n const input = fromIterable(self);\n if (isNonEmptyReadonlyArray(input)) {\n const [b, rest] = f(input);\n const out = [b];\n let next = rest;\n while (internalArray.isNonEmptyArray(next)) {\n const [b, rest] = f(next);\n out.push(b);\n next = rest;\n }\n return out;\n }\n return [];\n});\n/**\n * Splits an `Iterable` into two segments, with the first segment containing a maximum of `n` elements.\n * The value of `n` can be `0`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.splitAt([1, 2, 3, 4, 5], 3)\n * console.log(result) // [[1, 2, 3], [4, 5]]\n * ```\n *\n * @category splitting\n * @since 2.0.0\n */\nexport const splitAt = /*#__PURE__*/dual(2, (self, n) => {\n const input = Array.from(self);\n const _n = Math.floor(n);\n if (isNonEmptyReadonlyArray(input)) {\n if (_n >= 1) {\n return splitNonEmptyAt(input, _n);\n }\n return [[], input];\n }\n return [input, []];\n});\n/**\n * Splits a `NonEmptyReadonlyArray` into two segments, with the first segment containing a maximum of `n` elements.\n * The value of `n` must be `>= 1`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.splitNonEmptyAt([\"a\", \"b\", \"c\", \"d\", \"e\"], 3)\n * console.log(result) // [[\"a\", \"b\", \"c\"], [\"d\", \"e\"]]\n * ```\n *\n * @category splitting\n * @since 2.0.0\n */\nexport const splitNonEmptyAt = /*#__PURE__*/dual(2, (self, n) => {\n const _n = Math.max(1, Math.floor(n));\n return _n >= self.length ? [copy(self), []] : [prepend(self.slice(1, _n), headNonEmpty(self)), self.slice(_n)];\n});\n/**\n * Splits this iterable into `n` equally sized arrays.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.split([1, 2, 3, 4, 5, 6, 7, 8], 3)\n * console.log(result) // [[1, 2, 3], [4, 5, 6], [7, 8]]\n * ```\n *\n * @since 2.0.0\n * @category splitting\n */\nexport const split = /*#__PURE__*/dual(2, (self, n) => {\n const input = fromIterable(self);\n return chunksOf(input, Math.ceil(input.length / Math.floor(n)));\n});\n/**\n * Splits this iterable on the first element that matches this predicate.\n * Returns a tuple containing two arrays: the first one is before the match, and the second one is from the match onward.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.splitWhere([1, 2, 3, 4, 5], n => n > 3)\n * console.log(result) // [[1, 2, 3], [4, 5]]\n * ```\n *\n * @category splitting\n * @since 2.0.0\n */\nexport const splitWhere = /*#__PURE__*/dual(2, (self, predicate) => span(self, (a, i) => !predicate(a, i)));\n/**\n * Copies an array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.copy([1, 2, 3])\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @since 2.0.0\n */\nexport const copy = self => self.slice();\n/**\n * Pads an array.\n * Returns a new array of length `n` with the elements of `array` followed by `fill` elements if `array` is shorter than `n`.\n * If `array` is longer than `n`, the returned array will be a slice of `array` containing the `n` first elements of `array`.\n * If `n` is less than or equal to 0, the returned array will be an empty array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.pad([1, 2, 3], 6, 0)\n * console.log(result) // [1, 2, 3, 0, 0, 0]\n * ```\n *\n * @since 3.8.4\n */\nexport const pad = /*#__PURE__*/dual(3, (self, n, fill) => {\n if (self.length >= n) {\n return take(self, n);\n }\n return appendAll(self, makeBy(n - self.length, () => fill));\n});\n/**\n * Splits an `Iterable` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of\n * the `Iterable`. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive\n * definition of `chunksOf`; it satisfies the property that\n *\n * ```ts skip-type-checking\n * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys)))\n * ```\n *\n * whenever `n` evenly divides the length of `self`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.chunksOf([1, 2, 3, 4, 5], 2)\n * console.log(result) // [[1, 2], [3, 4], [5]]\n *\n * // Explanation:\n * // The `chunksOf` function takes an array of numbers `[1, 2, 3, 4, 5]` and a number `2`.\n * // It splits the array into chunks of length 2. Since the array length is not evenly divisible by 2,\n * // the last chunk contains the remaining elements.\n * // The result is `[[1, 2], [3, 4], [5]]`.\n * ```\n *\n * @category splitting\n * @since 2.0.0\n */\nexport const chunksOf = /*#__PURE__*/dual(2, (self, n) => {\n const input = fromIterable(self);\n if (isNonEmptyReadonlyArray(input)) {\n return chop(input, splitNonEmptyAt(n));\n }\n return [];\n});\n/**\n * Creates sliding windows of size `n` from an `Iterable`.\n * If the number of elements is less than `n` or if `n` is not greater than zero,\n * an empty array is returned.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Array } from \"effect\"\n *\n * const numbers = [1, 2, 3, 4, 5]\n * assert.deepStrictEqual(Array.window(numbers, 3), [[1, 2, 3], [2, 3, 4], [3, 4, 5]])\n * assert.deepStrictEqual(Array.window(numbers, 6), [])\n * ```\n *\n * @category splitting\n * @since 3.13.2\n */\nexport const window = /*#__PURE__*/dual(2, (self, n) => {\n const input = fromIterable(self);\n if (n > 0 && isNonEmptyReadonlyArray(input)) {\n return Array.from({\n length: input.length - (n - 1)\n }, (_, index) => input.slice(index, index + n));\n }\n return [];\n});\n/**\n * Group equal, consecutive elements of a `NonEmptyReadonlyArray` into `NonEmptyArray`s using the provided `isEquivalent` function.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.groupWith([\"a\", \"a\", \"b\", \"b\", \"b\", \"c\", \"a\"], (x, y) => x === y)\n * console.log(result) // [[\"a\", \"a\"], [\"b\", \"b\", \"b\"], [\"c\"], [\"a\"]]\n * ```\n *\n * @category grouping\n * @since 2.0.0\n */\nexport const groupWith = /*#__PURE__*/dual(2, (self, isEquivalent) => chop(self, as => {\n const h = headNonEmpty(as);\n const out = [h];\n let i = 1;\n for (; i < as.length; i++) {\n const a = as[i];\n if (isEquivalent(a, h)) {\n out.push(a);\n } else {\n break;\n }\n }\n return [out, as.slice(i)];\n}));\n/**\n * Group equal, consecutive elements of a `NonEmptyReadonlyArray` into `NonEmptyArray`s.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.group([1, 1, 2, 2, 2, 3, 1])\n * console.log(result) // [[1, 1], [2, 2, 2], [3], [1]]\n * ```\n *\n * @category grouping\n * @since 2.0.0\n */\nexport const group = /*#__PURE__*/groupWith(/*#__PURE__*/Equal.equivalence());\n/**\n * Splits an `Iterable` into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning\n * function on each element, and grouping the results according to values returned\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const people = [\n * { name: \"Alice\", group: \"A\" },\n * { name: \"Bob\", group: \"B\" },\n * { name: \"Charlie\", group: \"A\" }\n * ]\n *\n * const result = Array.groupBy(people, person => person.group)\n * console.log(result)\n * // {\n * // A: [{ name: \"Alice\", group: \"A\" }, { name: \"Charlie\", group: \"A\" }],\n * // B: [{ name: \"Bob\", group: \"B\" }]\n * // }\n * ```\n *\n * @category grouping\n * @since 2.0.0\n */\nexport const groupBy = /*#__PURE__*/dual(2, (self, f) => {\n const out = {};\n for (const a of self) {\n const k = f(a);\n if (Object.prototype.hasOwnProperty.call(out, k)) {\n out[k].push(a);\n } else {\n out[k] = [a];\n }\n }\n return out;\n});\n/**\n * Calculates the union of two arrays using the provided equivalence relation.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const union = Array.unionWith([1, 2], [2, 3], (a, b) => a === b)\n * console.log(union) // [1, 2, 3]\n * ```\n *\n * @since 2.0.0\n */\nexport const unionWith = /*#__PURE__*/dual(3, (self, that, isEquivalent) => {\n const a = fromIterable(self);\n const b = fromIterable(that);\n if (isNonEmptyReadonlyArray(a)) {\n if (isNonEmptyReadonlyArray(b)) {\n const dedupe = dedupeWith(isEquivalent);\n return dedupe(appendAll(a, b));\n }\n return a;\n }\n return b;\n});\n/**\n * Creates a union of two arrays, removing duplicates.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.union([1, 2], [2, 3])\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @since 2.0.0\n */\nexport const union = /*#__PURE__*/dual(2, (self, that) => unionWith(self, that, _equivalence));\n/**\n * Creates an `Array` of unique values that are included in all given `Iterable`s using the provided `isEquivalent` function.\n * The order and references of result values are determined by the first `Iterable`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }]\n * const array2 = [{ id: 3 }, { id: 4 }, { id: 1 }]\n * const isEquivalent = (a: { id: number }, b: { id: number }) => a.id === b.id\n * const result = Array.intersectionWith(isEquivalent)(array2)(array1)\n * console.log(result) // [{ id: 1 }, { id: 3 }]\n * ```\n *\n * @since 2.0.0\n */\nexport const intersectionWith = isEquivalent => {\n const has = containsWith(isEquivalent);\n return dual(2, (self, that) => {\n const bs = fromIterable(that);\n return fromIterable(self).filter(a => has(bs, a));\n });\n};\n/**\n * Creates an `Array` of unique values that are included in all given `Iterable`s.\n * The order and references of result values are determined by the first `Iterable`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.intersection([1, 2, 3], [3, 4, 1])\n * console.log(result) // [1, 3]\n * ```\n *\n * @since 2.0.0\n */\nexport const intersection = /*#__PURE__*/intersectionWith(_equivalence);\n/**\n * Creates a `Array` of values not included in the other given `Iterable` using the provided `isEquivalent` function.\n * The order and references of result values are determined by the first `Iterable`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const array1 = [1, 2, 3]\n * const array2 = [2, 3, 4]\n * const difference = Array.differenceWith((a, b) => a === b)(array1, array2)\n * console.log(difference) // [1]\n * ```\n *\n * @since 2.0.0\n */\nexport const differenceWith = isEquivalent => {\n const has = containsWith(isEquivalent);\n return dual(2, (self, that) => {\n const bs = fromIterable(that);\n return fromIterable(self).filter(a => !has(bs, a));\n });\n};\n/**\n * Creates a `Array` of values not included in the other given `Iterable`.\n * The order and references of result values are determined by the first `Iterable`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const difference = Array.difference([1, 2, 3], [2, 3, 4])\n * console.log(difference) // [1]\n * ```\n *\n * @since 2.0.0\n */\nexport const difference = /*#__PURE__*/differenceWith(_equivalence);\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport const empty = () => [];\n/**\n * Constructs a new `NonEmptyArray` from the specified value.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const of = a => [a];\n/**\n * @category mapping\n * @since 2.0.0\n */\nexport const map = /*#__PURE__*/dual(2, (self, f) => self.map(f));\n/**\n * Applies a function to each element in an array and returns a new array containing the concatenated mapped elements.\n *\n * @category sequencing\n * @since 2.0.0\n */\nexport const flatMap = /*#__PURE__*/dual(2, (self, f) => {\n if (isEmptyReadonlyArray(self)) {\n return [];\n }\n const out = [];\n for (let i = 0; i < self.length; i++) {\n const inner = f(self[i], i);\n for (let j = 0; j < inner.length; j++) {\n out.push(inner[j]);\n }\n }\n return out;\n});\n/**\n * Combines multiple arrays into a single array by concatenating all elements\n * from each nested array. This function ensures that the structure of nested\n * arrays is collapsed into a single, flat array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.flatten([[1, 2], [], [3, 4], [], [5, 6]])\n * console.log(result) // [1, 2, 3, 4, 5, 6]\n * ```\n *\n * @category sequencing\n * @since 2.0.0\n */\nexport const flatten = /*#__PURE__*/flatMap(identity);\n/**\n * Applies a function to each element of the `Iterable` and filters based on the result, keeping the transformed values where the function returns `Some`.\n * This method combines filtering and mapping functionalities, allowing transformations and filtering of elements based on a single function pass.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Option } from \"effect\"\n *\n * const evenSquares = (x: number) => x % 2 === 0 ? Option.some(x * x) : Option.none()\n *\n * const result = Array.filterMap([1, 2, 3, 4, 5], evenSquares);\n * console.log(result) // [4, 16]\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const filterMap = /*#__PURE__*/dual(2, (self, f) => {\n const as = fromIterable(self);\n const out = [];\n for (let i = 0; i < as.length; i++) {\n const o = f(as[i], i);\n if (Option.isSome(o)) {\n out.push(o.value);\n }\n }\n return out;\n});\n/**\n * Applies a function to each element of the array and filters based on the result, stopping when a condition is not met.\n * This method combines filtering and mapping in a single pass, and short-circuits, i.e., stops processing, as soon as the function returns `None`.\n * This is useful when you need to transform an array but only up to the point where a certain condition holds true.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Option } from \"effect\"\n *\n * const toSquareTillOdd = (x: number) => x % 2 === 0 ? Option.some(x * x) : Option.none()\n *\n * const result = Array.filterMapWhile([2, 4, 5], toSquareTillOdd)\n * console.log(result) // [4, 16]\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const filterMapWhile = /*#__PURE__*/dual(2, (self, f) => {\n let i = 0;\n const out = [];\n for (const a of self) {\n const b = f(a, i);\n if (Option.isSome(b)) {\n out.push(b.value);\n } else {\n break;\n }\n i++;\n }\n return out;\n});\n/**\n * Applies a function to each element of the `Iterable`, categorizing the results into two separate arrays.\n * This function is particularly useful for operations where each element can result in two possible types,\n * and you want to separate these types into different collections. For instance, separating validation results\n * into successes and failures.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Either } from \"effect\";\n *\n * const isEven = (x: number) => x % 2 === 0\n *\n * const result = Array.partitionMap([1, 2, 3, 4, 5], x =>\n * isEven(x) ? Either.right(x) : Either.left(x)\n * )\n * console.log(result)\n * // [\n * // [1, 3, 5],\n * // [2, 4]\n * // ]\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const partitionMap = /*#__PURE__*/dual(2, (self, f) => {\n const left = [];\n const right = [];\n const as = fromIterable(self);\n for (let i = 0; i < as.length; i++) {\n const e = f(as[i], i);\n if (Either.isLeft(e)) {\n left.push(e.left);\n } else {\n right.push(e.right);\n }\n }\n return [left, right];\n});\n/**\n * Retrieves the `Some` values from an `Iterable` of `Option`s, collecting them into an array.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Option } from \"effect\"\n *\n * const result = Array.getSomes([Option.some(1), Option.none(), Option.some(2)])\n * console.log(result) // [1, 2]\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const getSomes = /*#__PURE__*/filterMap(identity);\n/**\n * Retrieves the `Left` values from an `Iterable` of `Either`s, collecting them into an array.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Either } from \"effect\"\n *\n * const result = Array.getLefts([Either.right(1), Either.left(\"err\"), Either.right(2)])\n * console.log(result) // [\"err\"]\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const getLefts = self => {\n const out = [];\n for (const a of self) {\n if (Either.isLeft(a)) {\n out.push(a.left);\n }\n }\n return out;\n};\n/**\n * Retrieves the `Right` values from an `Iterable` of `Either`s, collecting them into an array.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Either } from \"effect\"\n *\n * const result = Array.getRights([Either.right(1), Either.left(\"err\"), Either.right(2)])\n * console.log(result) // [1, 2]\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const getRights = self => {\n const out = [];\n for (const a of self) {\n if (Either.isRight(a)) {\n out.push(a.right);\n }\n }\n return out;\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport const filter = /*#__PURE__*/dual(2, (self, predicate) => {\n const as = fromIterable(self);\n const out = [];\n for (let i = 0; i < as.length; i++) {\n if (predicate(as[i], i)) {\n out.push(as[i]);\n }\n }\n return out;\n});\n/**\n * Separate elements based on a predicate that also exposes the index of the element.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.partition([1, 2, 3, 4], n => n % 2 === 0)\n * console.log(result) // [[1, 3], [2, 4]]\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const partition = /*#__PURE__*/dual(2, (self, predicate) => {\n const left = [];\n const right = [];\n const as = fromIterable(self);\n for (let i = 0; i < as.length; i++) {\n if (predicate(as[i], i)) {\n right.push(as[i]);\n } else {\n left.push(as[i]);\n }\n }\n return [left, right];\n});\n/**\n * Separates an `Iterable` into two arrays based on a predicate.\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const separate = /*#__PURE__*/partitionMap(identity);\n/**\n * Reduces an array from the left.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.reduce([1, 2, 3], 0, (acc, n) => acc + n)\n * console.log(result) // 6\n * ```\n *\n * @category folding\n * @since 2.0.0\n */\nexport const reduce = /*#__PURE__*/dual(3, (self, b, f) => fromIterable(self).reduce((b, a, i) => f(b, a, i), b));\n/**\n * Reduces an array from the right.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.reduceRight([1, 2, 3], 0, (acc, n) => acc + n)\n * console.log(result) // 6\n * ```\n *\n * @category folding\n * @since 2.0.0\n */\nexport const reduceRight = /*#__PURE__*/dual(3, (self, b, f) => fromIterable(self).reduceRight((b, a, i) => f(b, a, i), b));\n/**\n * Lifts a predicate into an array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const isEven = (n: number) => n % 2 === 0\n * const to = Array.liftPredicate(isEven)\n * console.log(to(1)) // []\n * console.log(to(2)) // [2]\n * ```\n *\n * @category lifting\n * @since 2.0.0\n */\nexport const liftPredicate = predicate => b => predicate(b) ? [b] : [];\n/**\n * @category lifting\n * @since 2.0.0\n */\nexport const liftOption = f => (...a) => fromOption(f(...a));\n/**\n * @category conversions\n * @since 2.0.0\n */\nexport const fromNullable = a => a == null ? empty() : [a];\n/**\n * @category lifting\n * @since 2.0.0\n */\nexport const liftNullable = f => (...a) => fromNullable(f(...a));\n/**\n * Maps over an array and flattens the result, removing null and undefined values.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.flatMapNullable([1, 2, 3], n => (n % 2 === 0 ? null : n))\n * console.log(result) // [1, 3]\n *\n * // Explanation:\n * // The array of numbers [1, 2, 3] is mapped with a function that returns null for even numbers\n * // and the number itself for odd numbers. The resulting array [1, null, 3] is then flattened\n * // to remove null values, resulting in [1, 3].\n * ```\n *\n * @category sequencing\n * @since 2.0.0\n */\nexport const flatMapNullable = /*#__PURE__*/dual(2, (self, f) => flatMap(self, a => fromNullable(f(a))));\n/**\n * Lifts a function that returns an `Either` into a function that returns an array.\n * If the `Either` is a left, it returns an empty array.\n * If the `Either` is a right, it returns an array with the right value.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Either } from \"effect\"\n *\n * const parseNumber = (s: string): Either.Either =>\n * isNaN(Number(s)) ? Either.left(new Error(\"Not a number\")) : Either.right(Number(s))\n *\n * const liftedParseNumber = Array.liftEither(parseNumber)\n *\n * const result1 = liftedParseNumber(\"42\")\n * console.log(result1) // [42]\n *\n * const result2 = liftedParseNumber(\"not a number\")\n * console.log(result2) // []\n *\n * // Explanation:\n * // The function parseNumber is lifted to return an array.\n * // When parsing \"42\", it returns an Either.left with the number 42, resulting in [42].\n * // When parsing \"not a number\", it returns an Either.right with an error, resulting in an empty array [].\n * ```\n *\n * @category lifting\n * @since 2.0.0\n */\nexport const liftEither = f => (...a) => {\n const e = f(...a);\n return Either.isLeft(e) ? [] : [e.right];\n};\n/**\n * Check if a predicate holds true for every `ReadonlyArray` element.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const every = /*#__PURE__*/dual(2, (self, refinement) => self.every(refinement));\n/**\n * Check if a predicate holds true for some `ReadonlyArray` element.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const some = /*#__PURE__*/dual(2, (self, predicate) => self.some(predicate));\n/**\n * Extends an array with a function that maps each subarray to a value.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.extend([1, 2, 3], as => as.length)\n * console.log(result) // [3, 2, 1]\n *\n * // Explanation:\n * // The function maps each subarray starting from each element to its length.\n * // The subarrays are: [1, 2, 3], [2, 3], [3].\n * // The lengths are: 3, 2, 1.\n * // Therefore, the result is [3, 2, 1].\n * ```\n *\n * @since 2.0.0\n */\nexport const extend = /*#__PURE__*/dual(2, (self, f) => self.map((_, i, as) => f(as.slice(i))));\n/**\n * Finds the minimum element in an array based on a comparator.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Order } from \"effect\"\n *\n * const result = Array.min([3, 1, 2], Order.number)\n * console.log(result) // 1\n * ```\n *\n * @since 2.0.0\n */\nexport const min = /*#__PURE__*/dual(2, (self, O) => self.reduce(Order.min(O)));\n/**\n * Finds the maximum element in an array based on a comparator.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Order } from \"effect\"\n *\n * const result = Array.max([3, 1, 2], Order.number)\n * console.log(result) // 3\n * ```\n *\n * @since 2.0.0\n */\nexport const max = /*#__PURE__*/dual(2, (self, O) => self.reduce(Order.max(O)));\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport const unfold = (b, f) => {\n const out = [];\n let next = b;\n let o;\n while (Option.isSome(o = f(next))) {\n const [a, b] = o.value;\n out.push(a);\n next = b;\n }\n return out;\n};\n/**\n * This function creates and returns a new `Order` for an array of values based on a given `Order` for the elements of the array.\n * The returned `Order` compares two arrays by applying the given `Order` to each element in the arrays.\n * If all elements are equal, the arrays are then compared based on their length.\n * It is useful when you need to compare two arrays of the same type and you have a specific way of comparing each element of the array.\n *\n * @category instances\n * @since 2.0.0\n */\nexport const getOrder = Order.array;\n/**\n * Creates an equivalence relation for arrays.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const eq = Array.getEquivalence((a, b) => a === b)\n * console.log(eq([1, 2, 3], [1, 2, 3])) // true\n * ```\n *\n * @category instances\n * @since 2.0.0\n */\nexport const getEquivalence = Equivalence.array;\n/**\n * Performs a side-effect for each element of the `Iterable`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * Array.forEach([1, 2, 3], n => console.log(n)) // 1, 2, 3\n * ```\n *\n * @since 2.0.0\n */\nexport const forEach = /*#__PURE__*/dual(2, (self, f) => fromIterable(self).forEach((a, i) => f(a, i)));\n/**\n * Remove duplicates from an `Iterable` using the provided `isEquivalent` function,\n * preserving the order of the first occurrence of each element.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.dedupeWith([1, 2, 2, 3, 3, 3], (a, b) => a === b)\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @since 2.0.0\n */\nexport const dedupeWith = /*#__PURE__*/dual(2, (self, isEquivalent) => {\n const input = fromIterable(self);\n if (isNonEmptyReadonlyArray(input)) {\n const out = [headNonEmpty(input)];\n const rest = tailNonEmpty(input);\n for (const r of rest) {\n if (out.every(a => !isEquivalent(r, a))) {\n out.push(r);\n }\n }\n return out;\n }\n return [];\n});\n/**\n * Remove duplicates from an `Iterable`, preserving the order of the first occurrence of each element.\n * The equivalence used to compare elements is provided by `Equal.equivalence()` from the `Equal` module.\n *\n * @since 2.0.0\n */\nexport const dedupe = self => dedupeWith(self, Equal.equivalence());\n/**\n * Deduplicates adjacent elements that are identical using the provided `isEquivalent` function.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.dedupeAdjacentWith([1, 1, 2, 2, 3, 3], (a, b) => a === b)\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @since 2.0.0\n */\nexport const dedupeAdjacentWith = /*#__PURE__*/dual(2, (self, isEquivalent) => {\n const out = [];\n let lastA = Option.none();\n for (const a of self) {\n if (Option.isNone(lastA) || !isEquivalent(a, lastA.value)) {\n out.push(a);\n lastA = Option.some(a);\n }\n }\n return out;\n});\n/**\n * Deduplicates adjacent elements that are identical.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.dedupeAdjacent([1, 1, 2, 2, 3, 3])\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @since 2.0.0\n */\nexport const dedupeAdjacent = /*#__PURE__*/dedupeAdjacentWith(/*#__PURE__*/Equal.equivalence());\n/**\n * Joins the elements together with \"sep\" in the middle.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const strings = [\"a\", \"b\", \"c\"]\n * const joined = Array.join(strings, \"-\")\n * console.log(joined) // \"a-b-c\"\n * ```\n *\n * @since 2.0.0\n * @category folding\n */\nexport const join = /*#__PURE__*/dual(2, (self, sep) => fromIterable(self).join(sep));\n/**\n * Statefully maps over the chunk, producing new elements of type `B`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.mapAccum([1, 2, 3], 0, (acc, n) => [acc + n, acc + n])\n * console.log(result) // [6, [1, 3, 6]]\n * ```\n *\n * @since 2.0.0\n * @category folding\n */\nexport const mapAccum = /*#__PURE__*/dual(3, (self, s, f) => {\n let i = 0;\n let s1 = s;\n const out = [];\n for (const a of self) {\n const r = f(s1, a, i);\n s1 = r[0];\n out.push(r[1]);\n i++;\n }\n return [s1, out];\n});\n/**\n * Zips this chunk crosswise with the specified chunk using the specified combiner.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.cartesianWith([1, 2], [\"a\", \"b\"], (a, b) => `${a}-${b}`)\n * console.log(result) // [\"1-a\", \"1-b\", \"2-a\", \"2-b\"]\n * ```\n *\n * @since 2.0.0\n * @category elements\n */\nexport const cartesianWith = /*#__PURE__*/dual(3, (self, that, f) => flatMap(self, a => map(that, b => f(a, b))));\n/**\n * Zips this chunk crosswise with the specified chunk.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.cartesian([1, 2], [\"a\", \"b\"])\n * console.log(result) // [[1, \"a\"], [1, \"b\"], [2, \"a\"], [2, \"b\"]]\n * ```\n *\n * @since 2.0.0\n * @category elements\n */\nexport const cartesian = /*#__PURE__*/dual(2, (self, that) => cartesianWith(self, that, (a, b) => [a, b]));\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * The \"do simulation\" for array allows you to sequentially apply operations to the elements of arrays, just as nested loops allow you to go through all combinations of elements in an arrays.\n *\n * It can be used to simulate \"array comprehension\".\n * It's a technique that allows you to create new arrays by iterating over existing ones and applying specific **conditions** or **transformations** to the elements. It's like assembling a new collection from pieces of other collections based on certain rules.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Array` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n * 5. Regular `Array` functions like `map` and `filter` can still be used within the do simulation. These functions will receive the accumulated variables as arguments within the scope\n *\n * **Example**\n *\n * ```ts\n * import { Array, pipe } from \"effect\"\n *\n * const doResult = pipe(\n * Array.Do,\n * Array.bind(\"x\", () => [1, 3, 5]),\n * Array.bind(\"y\", () => [2, 4, 6]),\n * Array.filter(({ x, y }) => x < y), // condition\n * Array.map(({ x, y }) => [x, y] as const) // transformation\n * )\n * console.log(doResult) // [[1, 2], [1, 4], [1, 6], [3, 4], [3, 6], [5, 6]]\n *\n * // equivalent\n * const x = [1, 3, 5],\n * y = [2, 4, 6],\n * result = [];\n * for(let i = 0; i < x.length; i++) {\n * for(let j = 0; j < y.length; j++) {\n * const _x = x[i], _y = y[j];\n * if(_x < _y) result.push([_x, _y] as const)\n * }\n * }\n * ```\n *\n * @see {@link bindTo}\n * @see {@link bind}\n * @see {@link let_ let}\n *\n * @category do notation\n * @since 3.2.0\n */\nexport const Do = /*#__PURE__*/of({});\n/**\n * The \"do simulation\" for array allows you to sequentially apply operations to the elements of arrays, just as nested loops allow you to go through all combinations of elements in an arrays.\n *\n * It can be used to simulate \"array comprehension\".\n * It's a technique that allows you to create new arrays by iterating over existing ones and applying specific **conditions** or **transformations** to the elements. It's like assembling a new collection from pieces of other collections based on certain rules.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Array` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n * 5. Regular `Array` functions like `map` and `filter` can still be used within the do simulation. These functions will receive the accumulated variables as arguments within the scope\n *\n * **Example**\n *\n * ```ts\n * import { Array, pipe } from \"effect\"\n *\n * const doResult = pipe(\n * Array.Do,\n * Array.bind(\"x\", () => [1, 3, 5]),\n * Array.bind(\"y\", () => [2, 4, 6]),\n * Array.filter(({ x, y }) => x < y), // condition\n * Array.map(({ x, y }) => [x, y] as const) // transformation\n * )\n * console.log(doResult) // [[1, 2], [1, 4], [1, 6], [3, 4], [3, 6], [5, 6]]\n *\n * // equivalent\n * const x = [1, 3, 5],\n * y = [2, 4, 6],\n * result = [];\n * for(let i = 0; i < x.length; i++) {\n * for(let j = 0; j < y.length; j++) {\n * const _x = x[i], _y = y[j];\n * if(_x < _y) result.push([_x, _y] as const)\n * }\n * }\n * ```\n *\n * @see {@link bindTo}\n * @see {@link Do}\n * @see {@link let_ let}\n *\n * @category do notation\n * @since 3.2.0\n */\nexport const bind = /*#__PURE__*/internalDoNotation.bind(map, flatMap);\n/**\n * The \"do simulation\" for array allows you to sequentially apply operations to the elements of arrays, just as nested loops allow you to go through all combinations of elements in an arrays.\n *\n * It can be used to simulate \"array comprehension\".\n * It's a technique that allows you to create new arrays by iterating over existing ones and applying specific **conditions** or **transformations** to the elements. It's like assembling a new collection from pieces of other collections based on certain rules.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Array` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n * 5. Regular `Array` functions like `map` and `filter` can still be used within the do simulation. These functions will receive the accumulated variables as arguments within the scope\n *\n * **Example**\n *\n * ```ts\n * import { Array, pipe } from \"effect\"\n *\n * const doResult = pipe(\n * Array.Do,\n * Array.bind(\"x\", () => [1, 3, 5]),\n * Array.bind(\"y\", () => [2, 4, 6]),\n * Array.filter(({ x, y }) => x < y), // condition\n * Array.map(({ x, y }) => [x, y] as const) // transformation\n * )\n * console.log(doResult) // [[1, 2], [1, 4], [1, 6], [3, 4], [3, 6], [5, 6]]\n *\n * // equivalent\n * const x = [1, 3, 5],\n * y = [2, 4, 6],\n * result = [];\n * for(let i = 0; i < x.length; i++) {\n * for(let j = 0; j < y.length; j++) {\n * const _x = x[i], _y = y[j];\n * if(_x < _y) result.push([_x, _y] as const)\n * }\n * }\n * ```\n *\n * @see {@link bindTo}\n * @see {@link Do}\n * @see {@link let_ let}\n *\n * @category do notation\n * @since 3.2.0\n */\nexport const bindTo = /*#__PURE__*/internalDoNotation.bindTo(map);\nconst let_ = /*#__PURE__*/internalDoNotation.let_(map);\nexport {\n/**\n * The \"do simulation\" for array allows you to sequentially apply operations to the elements of arrays, just as nested loops allow you to go through all combinations of elements in an arrays.\n *\n * It can be used to simulate \"array comprehension\".\n * It's a technique that allows you to create new arrays by iterating over existing ones and applying specific **conditions** or **transformations** to the elements. It's like assembling a new collection from pieces of other collections based on certain rules.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Array` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n * 5. Regular `Array` functions like `map` and `filter` can still be used within the do simulation. These functions will receive the accumulated variables as arguments within the scope\n *\n * **Example**\n *\n * ```ts\n * import { Array, pipe } from \"effect\"\n *\n * const doResult = pipe(\n * Array.Do,\n * Array.bind(\"x\", () => [1, 3, 5]),\n * Array.bind(\"y\", () => [2, 4, 6]),\n * Array.filter(({ x, y }) => x < y), // condition\n * Array.map(({ x, y }) => [x, y] as const) // transformation\n * )\n * console.log(doResult) // [[1, 2], [1, 4], [1, 6], [3, 4], [3, 6], [5, 6]]\n *\n * // equivalent\n * const x = [1, 3, 5],\n * y = [2, 4, 6],\n * result = [];\n * for(let i = 0; i < x.length; i++) {\n * for(let j = 0; j < y.length; j++) {\n * const _x = x[i], _y = y[j];\n * if(_x < _y) result.push([_x, _y] as const)\n * }\n * }\n *\n * ```\n *\n * @see {@link bindTo}\n * @see {@link bind}\n * @see {@link Do}\n *\n * @category do notation\n * @since 3.2.0\n */\nlet_ as let };\n//# sourceMappingURL=Array.js.map","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","import { AbiEncodingArrayLengthMismatchError, AbiEncodingBytesSizeMismatchError, AbiEncodingLengthMismatchError, InvalidAbiEncodingTypeError, InvalidArrayError, } from '../../errors/abi.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { BaseError } from '../../errors/base.js';\nimport { IntegerOutOfRangeError } from '../../errors/encoding.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { concat } from '../data/concat.js';\nimport { padHex } from '../data/pad.js';\nimport { size } from '../data/size.js';\nimport { slice } from '../data/slice.js';\nimport { boolToHex, numberToHex, stringToHex, } from '../encoding/toHex.js';\nimport { integerRegex } from '../regex.js';\n/**\n * @description Encodes a list of primitive values into an ABI-encoded hex value.\n *\n * - Docs: https://viem.sh/docs/abi/encodeAbiParameters#encodeabiparameters\n *\n * Generates ABI encoded data using the [ABI specification](https://docs.soliditylang.org/en/latest/abi-spec), given a set of ABI parameters (inputs/outputs) and their corresponding values.\n *\n * @param params - a set of ABI Parameters (params), that can be in the shape of the inputs or outputs attribute of an ABI Item.\n * @param values - a set of values (values) that correspond to the given params.\n * @example\n * ```typescript\n * import { encodeAbiParameters } from 'viem'\n *\n * const encodedData = encodeAbiParameters(\n * [\n * { name: 'x', type: 'string' },\n * { name: 'y', type: 'uint' },\n * { name: 'z', type: 'bool' }\n * ],\n * ['wagmi', 420n, true]\n * )\n * ```\n *\n * You can also pass in Human Readable parameters with the parseAbiParameters utility.\n *\n * @example\n * ```typescript\n * import { encodeAbiParameters, parseAbiParameters } from 'viem'\n *\n * const encodedData = encodeAbiParameters(\n * parseAbiParameters('string x, uint y, bool z'),\n * ['wagmi', 420n, true]\n * )\n * ```\n */\nexport function encodeAbiParameters(params, values) {\n if (params.length !== values.length)\n throw new AbiEncodingLengthMismatchError({\n expectedLength: params.length,\n givenLength: values.length,\n });\n // Prepare the parameters to determine dynamic types to encode.\n const preparedParams = prepareParams({\n params: params,\n values: values,\n });\n const data = encodeParams(preparedParams);\n if (data.length === 0)\n return '0x';\n return data;\n}\nfunction prepareParams({ params, values, }) {\n const preparedParams = [];\n for (let i = 0; i < params.length; i++) {\n preparedParams.push(prepareParam({ param: params[i], value: values[i] }));\n }\n return preparedParams;\n}\nfunction prepareParam({ param, value, }) {\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents) {\n const [length, type] = arrayComponents;\n return encodeArray(value, { length, param: { ...param, type } });\n }\n if (param.type === 'tuple') {\n return encodeTuple(value, {\n param: param,\n });\n }\n if (param.type === 'address') {\n return encodeAddress(value);\n }\n if (param.type === 'bool') {\n return encodeBool(value);\n }\n if (param.type.startsWith('uint') || param.type.startsWith('int')) {\n const signed = param.type.startsWith('int');\n const [, , size = '256'] = integerRegex.exec(param.type) ?? [];\n return encodeNumber(value, {\n signed,\n size: Number(size),\n });\n }\n if (param.type.startsWith('bytes')) {\n return encodeBytes(value, { param });\n }\n if (param.type === 'string') {\n return encodeString(value);\n }\n throw new InvalidAbiEncodingTypeError(param.type, {\n docsPath: '/docs/contract/encodeAbiParameters',\n });\n}\nfunction encodeParams(preparedParams) {\n // 1. Compute the size of the static part of the parameters.\n let staticSize = 0;\n for (let i = 0; i < preparedParams.length; i++) {\n const { dynamic, encoded } = preparedParams[i];\n if (dynamic)\n staticSize += 32;\n else\n staticSize += size(encoded);\n }\n // 2. Split the parameters into static and dynamic parts.\n const staticParams = [];\n const dynamicParams = [];\n let dynamicSize = 0;\n for (let i = 0; i < preparedParams.length; i++) {\n const { dynamic, encoded } = preparedParams[i];\n if (dynamic) {\n staticParams.push(numberToHex(staticSize + dynamicSize, { size: 32 }));\n dynamicParams.push(encoded);\n dynamicSize += size(encoded);\n }\n else {\n staticParams.push(encoded);\n }\n }\n // 3. Concatenate static and dynamic parts.\n return concat([...staticParams, ...dynamicParams]);\n}\nfunction encodeAddress(value) {\n if (!isAddress(value))\n throw new InvalidAddressError({ address: value });\n return { dynamic: false, encoded: padHex(value.toLowerCase()) };\n}\nfunction encodeArray(value, { length, param, }) {\n const dynamic = length === null;\n if (!Array.isArray(value))\n throw new InvalidArrayError(value);\n if (!dynamic && value.length !== length)\n throw new AbiEncodingArrayLengthMismatchError({\n expectedLength: length,\n givenLength: value.length,\n type: `${param.type}[${length}]`,\n });\n let dynamicChild = false;\n const preparedParams = [];\n for (let i = 0; i < value.length; i++) {\n const preparedParam = prepareParam({ param, value: value[i] });\n if (preparedParam.dynamic)\n dynamicChild = true;\n preparedParams.push(preparedParam);\n }\n if (dynamic || dynamicChild) {\n const data = encodeParams(preparedParams);\n if (dynamic) {\n const length = numberToHex(preparedParams.length, { size: 32 });\n return {\n dynamic: true,\n encoded: preparedParams.length > 0 ? concat([length, data]) : length,\n };\n }\n if (dynamicChild)\n return { dynamic: true, encoded: data };\n }\n return {\n dynamic: false,\n encoded: concat(preparedParams.map(({ encoded }) => encoded)),\n };\n}\nfunction encodeBytes(value, { param }) {\n const [, paramSize] = param.type.split('bytes');\n const bytesSize = size(value);\n if (!paramSize) {\n let value_ = value;\n // If the size is not divisible by 32 bytes, pad the end\n // with empty bytes to the ceiling 32 bytes.\n if (bytesSize % 32 !== 0)\n value_ = padHex(value_, {\n dir: 'right',\n size: Math.ceil((value.length - 2) / 2 / 32) * 32,\n });\n return {\n dynamic: true,\n encoded: concat([padHex(numberToHex(bytesSize, { size: 32 })), value_]),\n };\n }\n if (bytesSize !== Number.parseInt(paramSize, 10))\n throw new AbiEncodingBytesSizeMismatchError({\n expectedSize: Number.parseInt(paramSize, 10),\n value,\n });\n return { dynamic: false, encoded: padHex(value, { dir: 'right' }) };\n}\nfunction encodeBool(value) {\n if (typeof value !== 'boolean')\n throw new BaseError(`Invalid boolean value: \"${value}\" (type: ${typeof value}). Expected: \\`true\\` or \\`false\\`.`);\n return { dynamic: false, encoded: padHex(boolToHex(value)) };\n}\nfunction encodeNumber(value, { signed, size = 256 }) {\n if (typeof size === 'number') {\n const max = 2n ** (BigInt(size) - (signed ? 1n : 0n)) - 1n;\n const min = signed ? -max - 1n : 0n;\n if (value > max || value < min)\n throw new IntegerOutOfRangeError({\n max: max.toString(),\n min: min.toString(),\n signed,\n size: size / 8,\n value: value.toString(),\n });\n }\n return {\n dynamic: false,\n encoded: numberToHex(value, {\n size: 32,\n signed,\n }),\n };\n}\nfunction encodeString(value) {\n const hexValue = stringToHex(value);\n const partsLength = Math.ceil(size(hexValue) / 32);\n const parts = [];\n for (let i = 0; i < partsLength; i++) {\n parts.push(padHex(slice(hexValue, i * 32, (i + 1) * 32), {\n dir: 'right',\n }));\n }\n return {\n dynamic: true,\n encoded: concat([\n padHex(numberToHex(size(hexValue), { size: 32 })),\n ...parts,\n ]),\n };\n}\nfunction encodeTuple(value, { param }) {\n let dynamic = false;\n const preparedParams = [];\n for (let i = 0; i < param.components.length; i++) {\n const param_ = param.components[i];\n const index = Array.isArray(value) ? i : param_.name;\n const preparedParam = prepareParam({\n param: param_,\n value: value[index],\n });\n preparedParams.push(preparedParam);\n if (preparedParam.dynamic)\n dynamic = true;\n }\n return {\n dynamic,\n encoded: dynamic\n ? encodeParams(preparedParams)\n : concat(preparedParams.map(({ encoded }) => encoded)),\n };\n}\nexport function getArrayComponents(type) {\n const matches = type.match(/^(.*)\\[(\\d+)?\\]$/);\n return matches\n ? // Return `null` if the array is dynamic.\n [matches[2] ? Number(matches[2]) : null, matches[1]]\n : undefined;\n}\n//# sourceMappingURL=encodeAbiParameters.js.map","/**\n * # Number\n *\n * This module provides utility functions and type class instances for working\n * with the `number` type in TypeScript. It includes functions for basic\n * arithmetic operations, as well as type class instances for `Equivalence` and\n * `Order`.\n *\n * ## Operations Reference\n *\n * | Category | Operation | Description | Domain | Co-domain |\n * | ------------ | ------------------------------------------ | ------------------------------------------------------- | ------------------------------ | --------------------- |\n * | constructors | {@link module:Number.parse} | Safely parses a string to a number | `string` | `Option` |\n * | | | | | |\n * | math | {@link module:Number.sum} | Adds two numbers | `number`, `number` | `number` |\n * | math | {@link module:Number.sumAll} | Sums all numbers in a collection | `Iterable` | `number` |\n * | math | {@link module:Number.subtract} | Subtracts one number from another | `number`, `number` | `number` |\n * | math | {@link module:Number.multiply} | Multiplies two numbers | `number`, `number` | `number` |\n * | math | {@link module:Number.multiplyAll} | Multiplies all numbers in a collection | `Iterable` | `number` |\n * | math | {@link module:Number.divide} | Safely divides handling division by zero | `number`, `number` | `Option` |\n * | math | {@link module:Number.unsafeDivide} | Divides but misbehaves for division by zero | `number`, `number` | `number` |\n * | math | {@link module:Number.remainder} | Calculates remainder of division | `number`, `number` | `number` |\n * | math | {@link module:Number.increment} | Adds 1 to a number | `number` | `number` |\n * | math | {@link module:Number.decrement} | Subtracts 1 from a number | `number` | `number` |\n * | math | {@link module:Number.sign} | Determines the sign of a number | `number` | `Ordering` |\n * | math | {@link module:Number.nextPow2} | Finds the next power of 2 | `number` | `number` |\n * | math | {@link module:Number.round} | Rounds a number with specified precision | `number`, `number` | `number` |\n * | | | | | |\n * | predicates | {@link module:Number.between} | Checks if a number is in a range | `number`, `{minimum, maximum}` | `boolean` |\n * | predicates | {@link module:Number.lessThan} | Checks if one number is less than another | `number`, `number` | `boolean` |\n * | predicates | {@link module:Number.lessThanOrEqualTo} | Checks if one number is less than or equal | `number`, `number` | `boolean` |\n * | predicates | {@link module:Number.greaterThan} | Checks if one number is greater than another | `number`, `number` | `boolean` |\n * | predicates | {@link module:Number.greaterThanOrEqualTo} | Checks if one number is greater or equal | `number`, `number` | `boolean` |\n * | | | | | |\n * | guards | {@link module:Number.isNumber} | Type guard for JavaScript numbers | `unknown` | `boolean` |\n * | | | | | |\n * | comparison | {@link module:Number.min} | Returns the minimum of two numbers | `number`, `number` | `number` |\n * | comparison | {@link module:Number.max} | Returns the maximum of two numbers | `number`, `number` | `number` |\n * | comparison | {@link module:Number.clamp} | Restricts a number to a range | `number`, `{minimum, maximum}` | `number` |\n * | | | | | |\n * | instances | {@link module:Number.Equivalence} | Equivalence instance for numbers | | `Equivalence` |\n * | instances | {@link module:Number.Order} | Order instance for numbers | | `Order` |\n * | | | | | |\n * | errors | {@link module:Number.DivisionByZeroError} | Error thrown by unsafeDivide | | |\n *\n * ## Composition Patterns and Type Safety\n *\n * When building function pipelines, understanding how types flow through\n * operations is critical:\n *\n * ### Composing with type-preserving operations\n *\n * Most operations in this module are type-preserving (`number → number`),\n * making them easily composable in pipelines:\n *\n * ```ts\n * import { pipe } from \"effect\"\n * import * as Number from \"effect/Number\"\n *\n * const result = pipe(\n * 10,\n * Number.increment, // number → number\n * Number.multiply(2), // number → number\n * Number.round(1) // number → number\n * ) // Result: number (21)\n * ```\n *\n * ### Working with Option results\n *\n * Operations that might fail (like division by zero) return Option types and\n * require Option combinators:\n *\n * ```ts\n * import { pipe, Option } from \"effect\"\n * import * as Number from \"effect/Number\"\n *\n * const result = pipe(\n * 10,\n * Number.divide(0), // number → Option\n * Option.getOrElse(() => 0) // Option → number\n * ) // Result: number (0)\n * ```\n *\n * ### Composition best practices\n *\n * - Chain type-preserving operations for maximum composability\n * - Use Option combinators when working with potentially failing operations\n * - Consider using Effect for operations that might fail with specific errors\n * - Remember that all operations maintain JavaScript's floating-point precision\n * limitations\n *\n * @module Number\n * @since 2.0.0\n * @see {@link module:BigInt} for more similar operations on `bigint` types\n * @see {@link module:BigDecimal} for more similar operations on `BigDecimal` types\n */\nimport * as equivalence from \"./Equivalence.js\";\nimport { dual } from \"./Function.js\";\nimport * as option from \"./internal/option.js\";\nimport * as _Iterable from \"./Iterable.js\";\nimport * as order from \"./Order.js\";\nimport * as predicate from \"./Predicate.js\";\n/**\n * Type guard that tests if a value is a member of the set of JavaScript\n * numbers.\n *\n * @memberof Number\n * @since 2.0.0\n * @category guards\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import * as Number from \"effect/Number\"\n *\n * // Regular numbers\n * assert.equal(Number.isNumber(2), true)\n * assert.equal(Number.isNumber(-3.14), true)\n * assert.equal(Number.isNumber(0), true)\n *\n * // Special numeric values\n * assert.equal(Number.isNumber(Infinity), true)\n * assert.equal(Number.isNumber(NaN), true)\n *\n * // Non-number values\n * assert.equal(Number.isNumber(\"2\"), false)\n * assert.equal(Number.isNumber(true), false)\n * assert.equal(Number.isNumber(null), false)\n * assert.equal(Number.isNumber(undefined), false)\n * assert.equal(Number.isNumber({}), false)\n * assert.equal(Number.isNumber([]), false)\n *\n * // Using as a type guard in conditionals\n * function processValue(value: unknown): string {\n * if (Number.isNumber(value)) {\n * // TypeScript now knows 'value' is a number\n * return `Numeric value: ${value.toFixed(2)}`\n * }\n * return \"Not a number\"\n * }\n *\n * assert.strictEqual(processValue(42), \"Numeric value: 42.00\")\n * assert.strictEqual(processValue(\"hello\"), \"Not a number\")\n *\n * // Filtering for numbers in an array\n * const mixed = [1, \"two\", 3, false, 5]\n * const onlyNumbers = mixed.filter(Number.isNumber)\n * assert.equal(onlyNumbers, [1, 3, 5])\n * ```\n *\n * @param input - The value to test for membership in the set of JavaScript\n * numbers\n *\n * @returns `true` if the input is a JavaScript number, `false` otherwise\n */\nexport const isNumber = predicate.isNumber;\n/**\n * Returns the additive inverse of a number, effectively negating it.\n *\n * @memberof Number\n * @since 3.14.6\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { pipe } from \"effect\"\n * import * as Number from \"effect/Number\"\n *\n * assert.equal(\n * Number.negate(5), //\n * -5\n * )\n *\n * assert.equal(\n * Number.negate(-5), //\n * 5\n * )\n *\n * assert.equal(\n * Number.negate(0), //\n * 0\n * )\n * ```\n *\n * @param n - The number value to be negated.\n *\n * @returns The negated number value.\n */\nexport const negate = n => multiply(n, -1);\n/**\n * Performs addition in the set of JavaScript numbers.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { pipe } from \"effect\"\n * import * as Number from \"effect/Number\"\n *\n * // Data-first style (direct application)\n * assert.equal(Number.sum(2, 3), 5)\n * assert.equal(Number.sum(-10, 5), -5)\n * assert.equal(Number.sum(0.1, 0.2), 0.30000000000000004) // Note: floating-point precision limitation\n *\n * // Data-last style (pipeable)\n * assert.equal(\n * pipe(\n * 10,\n * Number.sum(5) // 10 + 5 = 15\n * ),\n * 15\n * )\n *\n * // Chaining multiple additions\n * assert.equal(\n * pipe(\n * 1,\n * Number.sum(2), // 1 + 2 = 3\n * Number.sum(3), // 3 + 3 = 6\n * Number.sum(4) // 6 + 4 = 10\n * ),\n * 10\n * )\n *\n * // Identity property: a + 0 = a\n * assert.equal(Number.sum(42, 0), 42)\n *\n * // Commutative property: a + b = b + a\n * assert.equal(Number.sum(5, 3), Number.sum(3, 5))\n * ```\n */\nexport const sum = /*#__PURE__*/dual(2, (self, that) => self + that);\n/**\n * Computes the sum of all elements in an iterable collection of numbers.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import * as Number from \"effect/Number\"\n *\n * // Basic sums\n * assert.equal(Number.sumAll([2, 3, 4]), 9) // 2 + 3 + 4 = 9\n * assert.equal(Number.sumAll([1.1, 2.2, 3.3]), 6.6) // 1.1 + 2.2 + 3.3 = 6.6\n *\n * // Empty collection returns the additive identity (0)\n * assert.equal(Number.sumAll([]), 0)\n *\n * // Single element collection\n * assert.equal(Number.sumAll([42]), 42)\n *\n * // Sums with negative numbers\n * assert.equal(Number.sumAll([2, -3, 4]), 3) // 2 + (-3) + 4 = 3\n * assert.equal(Number.sumAll([-2, -3, -4]), -9) // (-2) + (-3) + (-4) = -9\n *\n * // Works with any iterable\n * assert.equal(Number.sumAll(new Set([2, 3, 4])), 9)\n *\n * // Using with generated sequences\n * function* range(start: number, end: number) {\n * for (let i = start; i <= end; i++) yield i\n * }\n *\n * // Compute sum of first 5 natural numbers: 1 + 2 + 3 + 4 + 5 = 15\n * assert.equal(Number.sumAll(range(1, 5)), 15)\n *\n * // Floating point precision example\n * assert.equal(\n * Number.sumAll([0.1, 0.2]),\n * 0.30000000000000004 // Note IEEE 754 precision limitation\n * )\n * ```\n *\n * @param collection - An `iterable` containing the `numbers` to sum\n *\n * @returns The sum of all numbers in the collection, or 0 if the collection is\n * empty\n */\nexport const sumAll = collection => _Iterable.reduce(collection, 0, sum);\n/**\n * Performs subtraction in the set of JavaScript numbers.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { pipe } from \"effect\"\n * import * as Number from \"effect/Number\"\n *\n * // Data-first style (direct application)\n * assert.equal(Number.subtract(2, 3), -1) // 2 - 3 = -1\n * assert.equal(Number.subtract(10, 5), 5) // 10 - 5 = 5\n * assert.equal(Number.subtract(0.3, 0.1), 0.19999999999999998) // Note: floating-point precision limitation\n *\n * // Data-last style (pipeable)\n * assert.equal(\n * pipe(\n * 10,\n * Number.subtract(5) // 10 - 5 = 5\n * ),\n * 5\n * )\n *\n * // Chaining multiple subtractions\n * assert.equal(\n * pipe(\n * 20,\n * Number.subtract(5), // 20 - 5 = 15\n * Number.subtract(3), // 15 - 3 = 12\n * Number.subtract(2) // 12 - 2 = 10\n * ),\n * 10\n * )\n *\n * // Right identity property: a - 0 = a\n * assert.equal(Number.subtract(42, 0), 42)\n *\n * // Self-annihilation property: a - a = 0\n * assert.equal(Number.subtract(42, 42), 0)\n *\n * // Non-commutative property: a - b ≠ b - a\n * assert.equal(Number.subtract(5, 3), 2) // 5 - 3 = 2\n * assert.equal(Number.subtract(3, 5), -2) // 3 - 5 = -2\n *\n * // Inverse relation: a - b = -(b - a)\n * assert.equal(Number.subtract(5, 3), -Number.subtract(3, 5))\n * ```\n */\nexport const subtract = /*#__PURE__*/dual(2, (minuend, subtrahend) => minuend - subtrahend);\n/**\n * Performs **multiplication** in the set of JavaScript numbers.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { pipe } from \"effect\"\n * import * as Number from \"effect/Number\"\n *\n * // Data-first style (direct application)\n * assert.equal(Number.multiply(2, 3), 6) // 2 × 3 = 6\n * assert.equal(Number.multiply(-4, 5), -20) // (-4) × 5 = -20\n * assert.equal(Number.multiply(-3, -2), 6) // (-3) × (-2) = 6\n * assert.equal(Number.multiply(0.1, 0.2), 0.020000000000000004) // Note: floating-point precision limitation\n *\n * // Data-last style (pipeable)\n * assert.equal(\n * pipe(\n * 10,\n * Number.multiply(5) // 10 × 5 = 50\n * ),\n * 50\n * )\n *\n * // Chaining multiple multiplications\n * assert.equal(\n * pipe(\n * 2,\n * Number.multiply(3), // 2 × 3 = 6\n * Number.multiply(4), // 6 × 4 = 24\n * Number.multiply(0.5) // 24 × 0.5 = 12\n * ),\n * 12\n * )\n *\n * // Identity property: a × 1 = a\n * assert.equal(Number.multiply(42, 1), 42)\n *\n * // Zero property: a × 0 = 0\n * assert.equal(Number.multiply(42, 0), 0)\n *\n * // Commutative property: a × b = b × a\n * assert.equal(Number.multiply(5, 3), Number.multiply(3, 5))\n *\n * // Associative property: (a × b) × c = a × (b × c)\n * const a = 2,\n * b = 3,\n * c = 4\n * assert.equal(\n * Number.multiply(Number.multiply(a, b), c),\n * Number.multiply(a, Number.multiply(b, c))\n * )\n * ```\n */\nexport const multiply = /*#__PURE__*/dual(2, (multiplier, multiplicand) => multiplier * multiplicand);\n/**\n * Computes the product of all elements in an iterable collection of numbers.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import * as Number from \"effect/Number\"\n *\n * // Basic products\n * assert.equal(Number.multiplyAll([2, 3, 4]), 24) // 2 × 3 × 4 = 24\n * assert.equal(Number.multiplyAll([1.5, 2, 3]), 9) // 1.5 × 2 × 3 = 9\n *\n * // Empty collection returns the multiplicative identity (1)\n * assert.equal(Number.multiplyAll([]), 1)\n *\n * // Single element collection\n * assert.equal(Number.multiplyAll([42]), 42)\n *\n * // Products with negative numbers\n * assert.equal(Number.multiplyAll([2, -3, 4]), -24) // 2 × (-3) × 4 = -24\n * assert.equal(Number.multiplyAll([-2, -3]), 6) // (-2) × (-3) = 6\n *\n * // Zero property - if any element is zero, product is zero\n * assert.equal(Number.multiplyAll([2, 0, 3]), 0)\n *\n * // Works with any iterable\n * assert.equal(Number.multiplyAll(new Set([2, 3, 4])), 24)\n *\n * // Using with generated sequences\n * function* range(start: number, end: number) {\n * for (let i = start; i <= end; i++) yield i\n * }\n *\n * // Compute factorial: 5! = 5 × 4 × 3 × 2 × 1 = 120\n * assert.equal(Number.multiplyAll(range(1, 5)), 120)\n * ```\n *\n * @param collection - An `iterable` containing the `numbers` to multiply\n *\n * @returns The product of all numbers in the collection, or 1 if the collection\n * is empty\n */\nexport const multiplyAll = collection => {\n let out = 1;\n for (const n of collection) {\n if (n === 0) {\n return 0;\n }\n out *= n;\n }\n return out;\n};\n/**\n * Performs division in the set of JavaScript numbers, returning the result\n * wrapped in an `Option` to handle division by zero.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { pipe, Option } from \"effect\"\n * import * as Number from \"effect/Number\"\n *\n * // Data-first style (direct application)\n * assert.equal(Number.divide(6, 3), Option.some(2)) // 6 ÷ 3 = 2\n * assert.equal(Number.divide(-8, 4), Option.some(-2)) // (-8) ÷ 4 = -2\n * assert.equal(Number.divide(-10, -5), Option.some(2)) // (-10) ÷ (-5) = 2\n * assert.equal(Number.divide(1, 3), Option.some(0.3333333333333333)) // Note: floating-point approximation\n *\n * // Handling division by zero\n * assert.equal(Number.divide(6, 0), Option.none()) // 6 ÷ 0 is undefined\n *\n * // Data-last style (pipeable)\n * assert.equal(\n * pipe(\n * 10,\n * Number.divide(2) // 10 ÷ 2 = 5\n * ),\n * Option.some(5)\n * )\n *\n * // Chaining multiple divisions using Option combinators\n * assert.equal(\n * pipe(\n * Option.some(24),\n * Option.flatMap((n) => Number.divide(n, 2)), // 24 ÷ 2 = 12\n * Option.flatMap(Number.divide(3)), // 12 ÷ 3 = 4\n * Option.flatMap(Number.divide(2)) // 4 ÷ 2 = 2\n * ),\n * Option.some(2)\n * )\n *\n * // Division-by-one property: a ÷ 1 = a\n * assert.equal(Number.divide(42, 1), Option.some(42))\n *\n * // Self-division property: a ÷ a = 1 (for a ≠ 0)\n * assert.equal(Number.divide(42, 42), Option.some(1))\n *\n * // Non-commutative property: a ÷ b ≠ b ÷ a\n * assert.notDeepStrictEqual(\n * Number.divide(6, 3), // 6 ÷ 3 = 2\n * Number.divide(3, 6) // 3 ÷ 6 = 0.5\n * )\n * ```\n */\nexport const divide = /*#__PURE__*/dual(2, (dividend, divisor) => divisor === 0 ? option.none : option.some(dividend / divisor));\n/**\n * Performs division in the set of JavaScript numbers, but misbehaves for\n * division by zero.\n *\n * Unlike {@link module:Number.divide} which returns an Option, this function\n * directly returns a number or `Infinity` or `NaN`.\n *\n * - If the `divisor` is zero, it returns `Infinity`.\n * - If both the `dividend` and the `divisor` are zero, then it returns `NaN`.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { pipe } from \"effect\"\n * import * as Number from \"effect/Number\"\n *\n * // Data-first style (direct application)\n * assert.equal(Number.unsafeDivide(6, 3), 2) // 6 ÷ 3 = 2\n * assert.equal(Number.unsafeDivide(-8, 4), -2) // (-8) ÷ 4 = -2\n * assert.equal(Number.unsafeDivide(-10, -5), 2) // (-10) ÷ (-5) = 2\n * assert.equal(Number.unsafeDivide(1, 3), 0.3333333333333333)\n *\n * // Data-last style (pipeable)\n * assert.equal(\n * pipe(\n * 10,\n * Number.unsafeDivide(2) // 10 ÷ 2 = 5\n * ),\n * 5\n * )\n *\n * // Chaining multiple divisions\n * assert.equal(\n * pipe(\n * 24,\n * Number.unsafeDivide(2), // 24 ÷ 2 = 12\n * Number.unsafeDivide(3), // 12 ÷ 3 = 4\n * Number.unsafeDivide(2) // 4 ÷ 2 = 2\n * ),\n * 2\n * )\n *\n * assert.equal(Number.unsafeDivide(6, 0), Infinity)\n *\n * assert.equal(Number.unsafeDivide(0, 0), NaN)\n *\n * // Compare with safe division\n * const safeResult = Number.divide(6, 3) // Option.some(2)\n * const unsafeResult = Number.unsafeDivide(6, 3) // 2 directly\n * ```\n *\n * @throws - An {@link module:Number.DivisionByZeroError} if the divisor is zero.\n * @see {@link module:Number.divide} - Safe division returning an Option\n */\nexport const unsafeDivide = /*#__PURE__*/dual(2, (dividend, divisor) => dividend / divisor);\n/**\n * Returns the result of adding `1` to a given number.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { increment } from \"effect/Number\"\n *\n * assert.equal(increment(2), 3)\n * ```\n */\nexport const increment = n => sum(n, 1);\n/**\n * Decrements a number by `1`.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { decrement } from \"effect/Number\"\n *\n * assert.equal(decrement(3), 2)\n * ```\n */\nexport const decrement = n => subtract(n, 1);\n/**\n * @memberof Number\n * @since 2.0.0\n * @category instances\n */\nexport const Equivalence = equivalence.number;\n/**\n * @memberof Number\n * @since 2.0.0\n * @category instances\n */\nexport const Order = order.number;\n/**\n * Returns `true` if the first argument is less than the second, otherwise\n * `false`.\n *\n * @memberof Number\n * @since 2.0.0\n * @category predicates\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { lessThan } from \"effect/Number\"\n *\n * assert.equal(lessThan(2, 3), true)\n * assert.equal(lessThan(3, 3), false)\n * assert.equal(lessThan(4, 3), false)\n * ```\n */\nexport const lessThan = /*#__PURE__*/order.lessThan(Order);\n/**\n * Returns a function that checks if a given `number` is less than or equal to\n * the provided one.\n *\n * @memberof Number\n * @since 2.0.0\n * @category predicates\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { lessThanOrEqualTo } from \"effect/Number\"\n *\n * assert.equal(lessThanOrEqualTo(2, 3), true)\n * assert.equal(lessThanOrEqualTo(3, 3), true)\n * assert.equal(lessThanOrEqualTo(4, 3), false)\n * ```\n */\nexport const lessThanOrEqualTo = /*#__PURE__*/order.lessThanOrEqualTo(Order);\n/**\n * Returns `true` if the first argument is greater than the second, otherwise\n * `false`.\n *\n * @memberof Number\n * @since 2.0.0\n * @category predicates\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { greaterThan } from \"effect/Number\"\n *\n * assert.equal(greaterThan(2, 3), false)\n * assert.equal(greaterThan(3, 3), false)\n * assert.equal(greaterThan(4, 3), true)\n * ```\n */\nexport const greaterThan = /*#__PURE__*/order.greaterThan(Order);\n/**\n * Returns a function that checks if a given `number` is greater than or equal\n * to the provided one.\n *\n * @memberof Number\n * @since 2.0.0\n * @category predicates\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { greaterThanOrEqualTo } from \"effect/Number\"\n *\n * assert.equal(greaterThanOrEqualTo(2, 3), false)\n * assert.equal(greaterThanOrEqualTo(3, 3), true)\n * assert.equal(greaterThanOrEqualTo(4, 3), true)\n * ```\n */\nexport const greaterThanOrEqualTo = /*#__PURE__*/order.greaterThanOrEqualTo(Order);\n/**\n * Checks if a `number` is between a `minimum` and `maximum` value (inclusive).\n *\n * @memberof Number\n * @since 2.0.0\n * @category predicates\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { Number } from \"effect\"\n *\n * const between = Number.between({ minimum: 0, maximum: 5 })\n *\n * assert.equal(between(3), true)\n * assert.equal(between(-1), false)\n * assert.equal(between(6), false)\n * ```\n */\nexport const between = /*#__PURE__*/order.between(Order);\n/**\n * Restricts the given `number` to be within the range specified by the\n * `minimum` and `maximum` values.\n *\n * - If the `number` is less than the `minimum` value, the function returns the\n * `minimum` value.\n * - If the `number` is greater than the `maximum` value, the function returns the\n * `maximum` value.\n * - Otherwise, it returns the original `number`.\n *\n * @memberof Number\n * @since 2.0.0\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { Number } from \"effect\"\n *\n * const clamp = Number.clamp({ minimum: 1, maximum: 5 })\n *\n * assert.equal(clamp(3), 3)\n * assert.equal(clamp(0), 1)\n * assert.equal(clamp(6), 5)\n * ```\n */\nexport const clamp = /*#__PURE__*/order.clamp(Order);\n/**\n * Returns the minimum between two `number`s.\n *\n * @memberof Number\n * @since 2.0.0\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { min } from \"effect/Number\"\n *\n * assert.equal(min(2, 3), 2)\n * ```\n */\nexport const min = /*#__PURE__*/order.min(Order);\n/**\n * Returns the maximum between two `number`s.\n *\n * @memberof Number\n * @since 2.0.0\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { max } from \"effect/Number\"\n *\n * assert.equal(max(2, 3), 3)\n * ```\n */\nexport const max = /*#__PURE__*/order.max(Order);\n/**\n * Determines the sign of a given `number`.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { sign } from \"effect/Number\"\n *\n * assert.equal(sign(-5), -1)\n * assert.equal(sign(0), 0)\n * assert.equal(sign(5), 1)\n * ```\n */\nexport const sign = n => Order(n, 0);\n/**\n * Returns the remainder left over when one operand is divided by a second\n * operand.\n *\n * It always takes the sign of the dividend.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { remainder } from \"effect/Number\"\n *\n * assert.equal(remainder(2, 2), 0)\n * assert.equal(remainder(3, 2), 1)\n * assert.equal(remainder(-4, 2), -0)\n * ```\n */\nexport const remainder = /*#__PURE__*/dual(2, (dividend, divisor) => {\n // https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\n const selfDecCount = (dividend.toString().split(\".\")[1] || \"\").length;\n const divisorDecCount = (divisor.toString().split(\".\")[1] || \"\").length;\n const decCount = selfDecCount > divisorDecCount ? selfDecCount : divisorDecCount;\n const selfInt = parseInt(dividend.toFixed(decCount).replace(\".\", \"\"));\n const divisorInt = parseInt(divisor.toFixed(decCount).replace(\".\", \"\"));\n return selfInt % divisorInt / Math.pow(10, decCount);\n});\n/**\n * Returns the next power of 2 greater than or equal to the given number.\n *\n * - For `positive` inputs, returns the smallest power of 2 that is >= the input\n * - For `zero`, returns 2\n * - For `negative` inputs, returns NaN (as logarithms of negative numbers are\n * undefined)\n * - For `NaN` input, returns NaN\n * - For `Infinity`, returns Infinity\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { nextPow2 } from \"effect/Number\"\n *\n * assert.equal(nextPow2(5), 8)\n * assert.equal(nextPow2(17), 32)\n * assert.equal(nextPow2(0), 2)\n * assert.equal(Number.isNaN(nextPow2(-1)), true) // Negative inputs result in NaN\n * ```\n */\nexport const nextPow2 = n => {\n const nextPow = Math.ceil(Math.log(n) / Math.log(2));\n return Math.max(Math.pow(2, nextPow), 2);\n};\n/**\n * Tries to parse a `number` from a `string` using the `Number()` function. The\n * following special string values are supported: \"NaN\", \"Infinity\",\n * \"-Infinity\".\n *\n * @memberof Number\n * @since 2.0.0\n * @category constructors\n */\nexport const parse = s => {\n if (s === \"NaN\") {\n return option.some(NaN);\n }\n if (s === \"Infinity\") {\n return option.some(Infinity);\n }\n if (s === \"-Infinity\") {\n return option.some(-Infinity);\n }\n if (s.trim() === \"\") {\n return option.none;\n }\n const n = Number(s);\n return Number.isNaN(n) ? option.none : option.some(n);\n};\n/**\n * Returns the number rounded with the given precision.\n *\n * @memberof Number\n * @since 3.8.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { round } from \"effect/Number\"\n *\n * assert.equal(round(1.1234, 2), 1.12)\n * assert.equal(round(1.567, 2), 1.57)\n * ```\n */\nexport const round = /*#__PURE__*/dual(2, (self, precision) => {\n const factor = Math.pow(10, precision);\n return Math.round(self * factor) / factor;\n});\n//# sourceMappingURL=Number.js.map","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar inherits = require('inherits')\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nvar useUint8Array = typeof Uint8Array !== 'undefined'\nvar useArrayBuffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n ArrayBuffer.isView &&\n (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT)\n\nfunction toBuffer (data, encoding) {\n // No need to do anything for exact instance\n // This is only valid when safe-buffer.Buffer === buffer.Buffer, i.e. when Buffer.from/Buffer.alloc existed\n if (data instanceof Buffer) return data\n\n // Convert strings to Buffer\n if (typeof data === 'string') return Buffer.from(data, encoding)\n\n /*\n * Wrap any TypedArray instances and DataViews\n * Makes sense only on engines with full TypedArray support -- let Buffer detect that\n */\n if (useArrayBuffer && ArrayBuffer.isView(data)) {\n if (data.byteLength === 0) return Buffer.alloc(0) // Bug in Node.js <6.3.1, which treats this as out-of-bounds\n var res = Buffer.from(data.buffer, data.byteOffset, data.byteLength)\n // Recheck result size, as offset/length doesn't work on Node.js <5.10\n // We just go to Uint8Array case if this fails\n if (res.byteLength === data.byteLength) return res\n }\n\n /*\n * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over\n * Doesn't make sense with other TypedArray instances\n */\n if (useUint8Array && data instanceof Uint8Array) return Buffer.from(data)\n\n /*\n * Old Buffer polyfill on an engine that doesn't have TypedArray support\n * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed\n * Convert to our current Buffer implementation\n */\n if (\n Buffer.isBuffer(data) &&\n data.constructor &&\n typeof data.constructor.isBuffer === 'function' &&\n data.constructor.isBuffer(data)\n ) {\n return Buffer.from(data)\n }\n\n throw new TypeError('The \"data\" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')\n}\n\nHashBase.prototype.update = function (data, encoding) {\n if (this._finalized) throw new Error('Digest already called')\n\n data = toBuffer(data, encoding) // asserts correct input type\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature, options) {\n return this.ec.verify(msg, signature, this, undefined, options);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar createHash = require('create-hash');\nvar stream = require('readable-stream');\nvar inherits = require('inherits');\nvar sign = require('./sign');\nvar verify = require('./verify');\n\nvar algorithms = require('./algorithms.json');\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex');\n algorithms[key.toLowerCase()] = algorithms[key];\n});\n\nfunction Sign(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hashType = data.hash;\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Sign, stream.Writable);\n\nSign.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nSign.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nSign.prototype.sign = function signMethod(key, enc) {\n this.end();\n var hash = this._hash.digest();\n var sig = sign(hash, key, this._hashType, this._signType, this._tag);\n\n return enc ? sig.toString(enc) : sig;\n};\n\nfunction Verify(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Verify, stream.Writable);\n\nVerify.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nVerify.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nVerify.prototype.verify = function verifyMethod(key, sig, enc) {\n var sigBuffer = typeof sig === 'string' ? Buffer.from(sig, enc) : sig;\n\n this.end();\n var hash = this._hash.digest();\n return verify(sigBuffer, hash, key, this._signType, this._tag);\n};\n\nfunction createSign(algorithm) {\n return new Sign(algorithm);\n}\n\nfunction createVerify(algorithm) {\n return new Verify(algorithm);\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n};\n","/**\n * @since 2.0.0\n */\nimport * as Context from \"../Context.js\";\nimport { constFalse } from \"../Function.js\";\n/** @internal */\nexport const TracerTypeId = /*#__PURE__*/Symbol.for(\"effect/Tracer\");\n/** @internal */\nexport const make = options => ({\n [TracerTypeId]: TracerTypeId,\n ...options\n});\n/** @internal */\nexport const tracerTag = /*#__PURE__*/Context.GenericTag(\"effect/Tracer\");\n/** @internal */\nexport const spanTag = /*#__PURE__*/Context.GenericTag(\"effect/ParentSpan\");\nconst randomHexString = /*#__PURE__*/function () {\n const characters = \"abcdef0123456789\";\n const charactersLength = characters.length;\n return function (length) {\n let result = \"\";\n for (let i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n };\n}();\n/** @internal */\nexport class NativeSpan {\n name;\n parent;\n context;\n startTime;\n kind;\n _tag = \"Span\";\n spanId;\n traceId = \"native\";\n sampled = true;\n status;\n attributes;\n events = [];\n links;\n constructor(name, parent, context, links, startTime, kind) {\n this.name = name;\n this.parent = parent;\n this.context = context;\n this.startTime = startTime;\n this.kind = kind;\n this.status = {\n _tag: \"Started\",\n startTime\n };\n this.attributes = new Map();\n this.traceId = parent._tag === \"Some\" ? parent.value.traceId : randomHexString(32);\n this.spanId = randomHexString(16);\n this.links = Array.from(links);\n }\n end(endTime, exit) {\n this.status = {\n _tag: \"Ended\",\n endTime,\n exit,\n startTime: this.status.startTime\n };\n }\n attribute(key, value) {\n this.attributes.set(key, value);\n }\n event(name, startTime, attributes) {\n this.events.push([name, startTime, attributes ?? {}]);\n }\n addLinks(links) {\n // eslint-disable-next-line no-restricted-syntax\n this.links.push(...links);\n }\n}\n/** @internal */\nexport const nativeTracer = /*#__PURE__*/make({\n span: (name, parent, context, links, startTime, kind) => new NativeSpan(name, parent, context, links, startTime, kind),\n context: f => f()\n});\n/** @internal */\nexport const externalSpan = options => ({\n _tag: \"ExternalSpan\",\n spanId: options.spanId,\n traceId: options.traceId,\n sampled: options.sampled ?? true,\n context: options.context ?? Context.empty()\n});\n/** @internal */\nexport const addSpanStackTrace = options => {\n if (options?.captureStackTrace === false) {\n return options;\n } else if (options?.captureStackTrace !== undefined && typeof options.captureStackTrace !== \"boolean\") {\n return options;\n }\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 3;\n const traceError = new Error();\n Error.stackTraceLimit = limit;\n let cache = false;\n return {\n ...options,\n captureStackTrace: () => {\n if (cache !== false) {\n return cache;\n }\n if (traceError.stack !== undefined) {\n const stack = traceError.stack.split(\"\\n\");\n if (stack[3] !== undefined) {\n cache = stack[3].trim();\n return cache;\n }\n }\n }\n };\n};\n/** @internal */\nexport const DisablePropagation = /*#__PURE__*/Context.Reference()(\"effect/Tracer/DisablePropagation\", {\n defaultValue: constFalse\n});\n//# sourceMappingURL=tracer.js.map","var inherits = require('inherits');\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\nvar bignum = asn1.bignum;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!(data instanceof base.DecoderBuffer))\n data = new base.DecoderBuffer(data, options);\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n var state = buffer.save();\n var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n var decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n var len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n var state = buffer.save();\n var res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n while (true) {\n var tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n var len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n var res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len)\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n var result = [];\n while (!buffer.isEmpty()) {\n var possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n var res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n var unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n var raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n var str = '';\n for (var i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n var numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n var printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n var result;\n var identifiers = [];\n var ident = 0;\n while (!buffer.isEmpty()) {\n var subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n var first = (identifiers[0] / 40) | 0;\n var second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n var tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n var str = buffer.raw().toString();\n if (tag === 'gentime') {\n var year = str.slice(0, 4) | 0;\n var mon = str.slice(4, 6) | 0;\n var day = str.slice(6, 8) | 0;\n var hour = str.slice(8, 10) | 0;\n var min = str.slice(10, 12) | 0;\n var sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n var year = str.slice(0, 2) | 0;\n var mon = str.slice(2, 4) | 0;\n var day = str.slice(4, 6) | 0;\n var hour = str.slice(6, 8) | 0;\n var min = str.slice(8, 10) | 0;\n var sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull(buffer) {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n var res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n var raw = buffer.raw();\n var res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n var tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n var cls = der.tagClass[tag >> 6];\n var primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n var oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n var tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n var len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n var num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (var i = 0; i < num; i++) {\n len <<= 8;\n var j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bound');\nvar gOPD = require('gopd');\nvar getProto = require('get-proto');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\n\n/** @type {(array: readonly T[], value: unknown) => number} */\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n/** @typedef {import('./types').Getter} Getter */\n/** @type {import('./types').Cache} */\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getProto) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr && getProto) {\n\t\t\tvar proto = getProto(arr);\n\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor && proto) {\n\t\t\t\tvar superProto = getProto(proto);\n\t\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\tcache[\n\t\t\t\t/** @type {`$${import('.').TypedArrayName}`} */ ('$' + typedArray)\n\t\t\t] = /** @type {import('./types').BoundSlice | import('./types').BoundSet} */ (\n\t\t\t\t// @ts-expect-error TODO FIXME\n\t\t\t\tcallBind(fn)\n\t\t\t);\n\t\t}\n\t});\n}\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */ (cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */\n\t\tfunction (getter, typedArray) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(typedArray, 1));\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar trySlices = function tryAllSlices(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */(cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */ function (getter, name) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tgetter(value);\n\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(name, 1));\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\t/** @type {string} */\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/** @type {(arr: A, iterator: (this: This | void, value: A[number], index: number, arr: A) => void, receiver: This | undefined) => void} */\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\n/** @type {(string: S, iterator: (this: This | void, value: S[number], index: number, string: S) => void, receiver: This | undefined) => void} */\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\n/** @type {(obj: O, iterator: (this: This | void, value: O[keyof O], index: keyof O, obj: O) => void, receiver: This | undefined) => void} */\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\n/** @type {(x: unknown) => x is readonly unknown[]} */\nfunction isArray(x) {\n return toStr.call(x) === '[object Array]';\n}\n\n/** @type {import('.')._internal} */\nmodule.exports = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (isArray(list)) {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n","/**\n * Divides a number by a given exponent of base 10 (10exponent), and formats it into a string representation of the number..\n *\n * - Docs: https://viem.sh/docs/utilities/formatUnits\n *\n * @example\n * import { formatUnits } from 'viem'\n *\n * formatUnits(420000000000n, 9)\n * // '420'\n */\nexport function formatUnits(value, decimals) {\n let display = value.toString();\n const negative = display.startsWith('-');\n if (negative)\n display = display.slice(1);\n display = display.padStart(decimals, '0');\n let [integer, fraction] = [\n display.slice(0, display.length - decimals),\n display.slice(display.length - decimals),\n ];\n fraction = fraction.replace(/(0+)$/, '');\n return `${negative ? '-' : ''}${integer || '0'}${fraction ? `.${fraction}` : ''}`;\n}\n//# sourceMappingURL=formatUnits.js.map","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly, bitLength) {\n var byteLength;\n if (BN.isBN(msg) || typeof msg === 'number') {\n msg = new BN(msg, 16);\n byteLength = msg.byteLength();\n } else if (typeof msg === 'object') {\n // BN assumes an array-like input and asserts length\n byteLength = msg.length;\n msg = new BN(msg, 16);\n } else {\n // BN converts the value to string\n var str = msg.toString();\n // HEX encoding\n byteLength = (str.length + 1) >>> 1;\n msg = new BN(str, 16);\n }\n // Allow overriding\n if (typeof bitLength !== 'number') {\n bitLength = byteLength * 8;\n }\n var delta = bitLength - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n if (typeof msg !== 'string' && typeof msg !== 'number' && !BN.isBN(msg)) {\n assert(typeof msg === 'object' && msg && typeof msg.length === 'number',\n 'Expected message to be an array-like, a hex string, or a BN instance');\n assert((msg.length >>> 0) === msg.length); // non-negative 32-bit integer\n for (var i = 0; i < msg.length; i++) assert((msg[i] & 255) === msg[i]);\n }\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(msg, false, options.msgBitLength);\n\n // Would fail further checks, but let's make the error message clear\n assert(!msg.isNeg(), 'Can not sign a negative message');\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Recheck nonce to be bijective to msg\n assert((new BN(nonce)).eq(msg), 'Can not sign message');\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc, options) {\n if (!options)\n options = {};\n\n msg = this._truncateToN(msg, false, options.msgBitLength);\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","export const deploylessCallViaBytecodeBytecode = '0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe';\nexport const deploylessCallViaFactoryBytecode = '0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe';\nexport const erc6492SignatureValidatorByteCode = '0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572';\nexport const multicall3Bytecode = '0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033';\n//# sourceMappingURL=contracts.js.map","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports[\"default\"]=void 0;var _roundConstants=_interopRequireDefault(require(\"./round-constants\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{\"default\":obj}}var iota=function iota(_ref){var A=_ref.A,roundIndex=_ref.roundIndex;var i=roundIndex*2;A[0]^=_roundConstants[\"default\"][i];A[1]^=_roundConstants[\"default\"][i+1]};var _default=iota;exports[\"default\"]=_default;","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","const size = 256;\nlet index = size;\nlet buffer;\nexport function uid(length = 11) {\n if (!buffer || index + length > size * 2) {\n buffer = '';\n index = 0;\n for (let i = 0; i < size; i++) {\n buffer += ((256 + Math.random() * 256) | 0).toString(16).substring(1);\n }\n }\n return buffer.substring(index, index++ + length);\n}\n//# sourceMappingURL=uid.js.map","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports[\"default\"]=void 0;var _copy=_interopRequireDefault(require(\"../copy\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{\"default\":obj}}var theta=function theta(_ref){var A=_ref.A,C=_ref.C,D=_ref.D,W=_ref.W;var H=0;var L=0;for(var x=0;x<5;x++){var x20=x*2;var x21=(x+5)*2;var x22=(x+10)*2;var x23=(x+15)*2;var x24=(x+20)*2;C[x20]=A[x20]^A[x21]^A[x22]^A[x23]^A[x24];C[x20+1]=A[x20+1]^A[x21+1]^A[x22+1]^A[x23+1]^A[x24+1]}for(var _x=0;_x<5;_x++){(0,_copy[\"default\"])(C,(_x+1)%5)(W,0);H=W[0];L=W[1];W[0]=H<<1|L>>>31;W[1]=L<<1|H>>>31;D[_x*2]=C[(_x+4)%5*2]^W[0];D[_x*2+1]=C[(_x+4)%5*2+1]^W[1];for(var y=0;y<25;y+=5){A[(y+_x)*2]^=D[_x*2];A[(y+_x)*2+1]^=D[_x*2+1]}}};var _default=theta;exports[\"default\"]=_default;","export function defineFormatter(type, format) {\n return ({ exclude, format: overrides, }) => {\n return {\n exclude,\n format: (args, action) => {\n const formatted = format(args, action);\n if (exclude) {\n for (const key of exclude) {\n delete formatted[key];\n }\n }\n return {\n ...formatted,\n ...overrides(args, action),\n };\n },\n type,\n };\n };\n}\n//# sourceMappingURL=formatter.js.map","import { execTyped } from '../regex.js';\n// https://regexr.com/7f7rv\nconst tupleRegex = /^tuple(?(\\[(\\d*)\\])*)$/;\n/**\n * Formats {@link AbiParameter} to human-readable ABI parameter.\n *\n * @param abiParameter - ABI parameter\n * @returns Human-readable ABI parameter\n *\n * @example\n * const result = formatAbiParameter({ type: 'address', name: 'from' })\n * // ^? const result: 'address from'\n */\nexport function formatAbiParameter(abiParameter) {\n let type = abiParameter.type;\n if (tupleRegex.test(abiParameter.type) && 'components' in abiParameter) {\n type = '(';\n const length = abiParameter.components.length;\n for (let i = 0; i < length; i++) {\n const component = abiParameter.components[i];\n type += formatAbiParameter(component);\n if (i < length - 1)\n type += ', ';\n }\n const result = execTyped(tupleRegex, abiParameter.type);\n type += `)${result?.array || ''}`;\n return formatAbiParameter({\n ...abiParameter,\n type,\n });\n }\n // Add `indexed` to type if in `abiParameter`\n if ('indexed' in abiParameter && abiParameter.indexed)\n type = `${type} indexed`;\n // Return human-readable ABI parameter\n if (abiParameter.name)\n return `${type} ${abiParameter.name}`;\n return type;\n}\n//# sourceMappingURL=formatAbiParameter.js.map","import { formatAbiParameter, } from './formatAbiParameter.js';\n/**\n * Formats {@link AbiParameter}s to human-readable ABI parameters.\n *\n * @param abiParameters - ABI parameters\n * @returns Human-readable ABI parameters\n *\n * @example\n * const result = formatAbiParameters([\n * // ^? const result: 'address from, uint256 tokenId'\n * { type: 'address', name: 'from' },\n * { type: 'uint256', name: 'tokenId' },\n * ])\n */\nexport function formatAbiParameters(abiParameters) {\n let params = '';\n const length = abiParameters.length;\n for (let i = 0; i < length; i++) {\n const abiParameter = abiParameters[i];\n params += formatAbiParameter(abiParameter);\n if (i !== length - 1)\n params += ', ';\n }\n return params;\n}\n//# sourceMappingURL=formatAbiParameters.js.map","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","import { versionedHashVersionKzg } from '../../constants/kzg.js';\nimport { maxUint256 } from '../../constants/number.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { BaseError } from '../../errors/base.js';\nimport { EmptyBlobError, InvalidVersionedHashSizeError, InvalidVersionedHashVersionError, } from '../../errors/blob.js';\nimport { InvalidChainIdError, } from '../../errors/chain.js';\nimport { FeeCapTooHighError, TipAboveFeeCapError, } from '../../errors/node.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { size } from '../data/size.js';\nimport { slice } from '../data/slice.js';\nimport { hexToNumber } from '../encoding/fromHex.js';\nexport function assertTransactionEIP7702(transaction) {\n const { authorizationList } = transaction;\n if (authorizationList) {\n for (const authorization of authorizationList) {\n const { chainId } = authorization;\n const address = authorization.address;\n if (!isAddress(address))\n throw new InvalidAddressError({ address });\n if (chainId < 0)\n throw new InvalidChainIdError({ chainId });\n }\n }\n assertTransactionEIP1559(transaction);\n}\nexport function assertTransactionEIP4844(transaction) {\n const { blobVersionedHashes } = transaction;\n if (blobVersionedHashes) {\n if (blobVersionedHashes.length === 0)\n throw new EmptyBlobError();\n for (const hash of blobVersionedHashes) {\n const size_ = size(hash);\n const version = hexToNumber(slice(hash, 0, 1));\n if (size_ !== 32)\n throw new InvalidVersionedHashSizeError({ hash, size: size_ });\n if (version !== versionedHashVersionKzg)\n throw new InvalidVersionedHashVersionError({\n hash,\n version,\n });\n }\n }\n assertTransactionEIP1559(transaction);\n}\nexport function assertTransactionEIP1559(transaction) {\n const { chainId, maxPriorityFeePerGas, maxFeePerGas, to } = transaction;\n if (chainId <= 0)\n throw new InvalidChainIdError({ chainId });\n if (to && !isAddress(to))\n throw new InvalidAddressError({ address: to });\n if (maxFeePerGas && maxFeePerGas > maxUint256)\n throw new FeeCapTooHighError({ maxFeePerGas });\n if (maxPriorityFeePerGas &&\n maxFeePerGas &&\n maxPriorityFeePerGas > maxFeePerGas)\n throw new TipAboveFeeCapError({ maxFeePerGas, maxPriorityFeePerGas });\n}\nexport function assertTransactionEIP2930(transaction) {\n const { chainId, maxPriorityFeePerGas, gasPrice, maxFeePerGas, to } = transaction;\n if (chainId <= 0)\n throw new InvalidChainIdError({ chainId });\n if (to && !isAddress(to))\n throw new InvalidAddressError({ address: to });\n if (maxPriorityFeePerGas || maxFeePerGas)\n throw new BaseError('`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.');\n if (gasPrice && gasPrice > maxUint256)\n throw new FeeCapTooHighError({ maxFeePerGas: gasPrice });\n}\nexport function assertTransactionLegacy(transaction) {\n const { chainId, maxPriorityFeePerGas, gasPrice, maxFeePerGas, to } = transaction;\n if (to && !isAddress(to))\n throw new InvalidAddressError({ address: to });\n if (typeof chainId !== 'undefined' && chainId <= 0)\n throw new InvalidChainIdError({ chainId });\n if (maxPriorityFeePerGas || maxFeePerGas)\n throw new BaseError('`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.');\n if (gasPrice && gasPrice > maxUint256)\n throw new FeeCapTooHighError({ maxFeePerGas: gasPrice });\n}\n//# sourceMappingURL=assertTransaction.js.map","import { InvalidAddressError, } from '../../errors/address.js';\nimport { InvalidStorageKeySizeError, } from '../../errors/transaction.js';\nimport { isAddress } from '../address/isAddress.js';\n/*\n * Serialize an EIP-2930 access list\n * @remarks\n * Use to create a transaction serializer with support for EIP-2930 access lists\n *\n * @param accessList - Array of objects of address and arrays of Storage Keys\n * @throws InvalidAddressError, InvalidStorageKeySizeError\n * @returns Array of hex strings\n */\nexport function serializeAccessList(accessList) {\n if (!accessList || accessList.length === 0)\n return [];\n const serializedAccessList = [];\n for (let i = 0; i < accessList.length; i++) {\n const { address, storageKeys } = accessList[i];\n for (let j = 0; j < storageKeys.length; j++) {\n if (storageKeys[j].length - 2 !== 64) {\n throw new InvalidStorageKeySizeError({ storageKey: storageKeys[j] });\n }\n }\n if (!isAddress(address, { strict: false })) {\n throw new InvalidAddressError({ address });\n }\n serializedAccessList.push([address, storageKeys]);\n }\n return serializedAccessList;\n}\n//# sourceMappingURL=serializeAccessList.js.map","import { InvalidLegacyVError, } from '../../errors/transaction.js';\nimport { serializeAuthorizationList, } from '../authorization/serializeAuthorizationList.js';\nimport { blobsToCommitments, } from '../blob/blobsToCommitments.js';\nimport { blobsToProofs, } from '../blob/blobsToProofs.js';\nimport { commitmentsToVersionedHashes, } from '../blob/commitmentsToVersionedHashes.js';\nimport { toBlobSidecars, } from '../blob/toBlobSidecars.js';\nimport { concatHex } from '../data/concat.js';\nimport { trim } from '../data/trim.js';\nimport { bytesToHex, numberToHex, } from '../encoding/toHex.js';\nimport { toRlp } from '../encoding/toRlp.js';\nimport { assertTransactionEIP1559, assertTransactionEIP2930, assertTransactionEIP4844, assertTransactionEIP7702, assertTransactionLegacy, } from './assertTransaction.js';\nimport { getTransactionType, } from './getTransactionType.js';\nimport { serializeAccessList, } from './serializeAccessList.js';\nexport function serializeTransaction(transaction, signature) {\n const type = getTransactionType(transaction);\n if (type === 'eip1559')\n return serializeTransactionEIP1559(transaction, signature);\n if (type === 'eip2930')\n return serializeTransactionEIP2930(transaction, signature);\n if (type === 'eip4844')\n return serializeTransactionEIP4844(transaction, signature);\n if (type === 'eip7702')\n return serializeTransactionEIP7702(transaction, signature);\n return serializeTransactionLegacy(transaction, signature);\n}\nfunction serializeTransactionEIP7702(transaction, signature) {\n const { authorizationList, chainId, gas, nonce, to, value, maxFeePerGas, maxPriorityFeePerGas, accessList, data, } = transaction;\n assertTransactionEIP7702(transaction);\n const serializedAccessList = serializeAccessList(accessList);\n const serializedAuthorizationList = serializeAuthorizationList(authorizationList);\n return concatHex([\n '0x04',\n toRlp([\n numberToHex(chainId),\n nonce ? numberToHex(nonce) : '0x',\n maxPriorityFeePerGas ? numberToHex(maxPriorityFeePerGas) : '0x',\n maxFeePerGas ? numberToHex(maxFeePerGas) : '0x',\n gas ? numberToHex(gas) : '0x',\n to ?? '0x',\n value ? numberToHex(value) : '0x',\n data ?? '0x',\n serializedAccessList,\n serializedAuthorizationList,\n ...toYParitySignatureArray(transaction, signature),\n ]),\n ]);\n}\nfunction serializeTransactionEIP4844(transaction, signature) {\n const { chainId, gas, nonce, to, value, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, accessList, data, } = transaction;\n assertTransactionEIP4844(transaction);\n let blobVersionedHashes = transaction.blobVersionedHashes;\n let sidecars = transaction.sidecars;\n // If `blobs` are passed, we will need to compute the KZG commitments & proofs.\n if (transaction.blobs &&\n (typeof blobVersionedHashes === 'undefined' ||\n typeof sidecars === 'undefined')) {\n const blobs = (typeof transaction.blobs[0] === 'string'\n ? transaction.blobs\n : transaction.blobs.map((x) => bytesToHex(x)));\n const kzg = transaction.kzg;\n const commitments = blobsToCommitments({\n blobs,\n kzg,\n });\n if (typeof blobVersionedHashes === 'undefined')\n blobVersionedHashes = commitmentsToVersionedHashes({\n commitments,\n });\n if (typeof sidecars === 'undefined') {\n const proofs = blobsToProofs({ blobs, commitments, kzg });\n sidecars = toBlobSidecars({ blobs, commitments, proofs });\n }\n }\n const serializedAccessList = serializeAccessList(accessList);\n const serializedTransaction = [\n numberToHex(chainId),\n nonce ? numberToHex(nonce) : '0x',\n maxPriorityFeePerGas ? numberToHex(maxPriorityFeePerGas) : '0x',\n maxFeePerGas ? numberToHex(maxFeePerGas) : '0x',\n gas ? numberToHex(gas) : '0x',\n to ?? '0x',\n value ? numberToHex(value) : '0x',\n data ?? '0x',\n serializedAccessList,\n maxFeePerBlobGas ? numberToHex(maxFeePerBlobGas) : '0x',\n blobVersionedHashes ?? [],\n ...toYParitySignatureArray(transaction, signature),\n ];\n const blobs = [];\n const commitments = [];\n const proofs = [];\n if (sidecars)\n for (let i = 0; i < sidecars.length; i++) {\n const { blob, commitment, proof } = sidecars[i];\n blobs.push(blob);\n commitments.push(commitment);\n proofs.push(proof);\n }\n return concatHex([\n '0x03',\n sidecars\n ? // If sidecars are enabled, envelope turns into a \"wrapper\":\n toRlp([serializedTransaction, blobs, commitments, proofs])\n : // If sidecars are disabled, standard envelope is used:\n toRlp(serializedTransaction),\n ]);\n}\nfunction serializeTransactionEIP1559(transaction, signature) {\n const { chainId, gas, nonce, to, value, maxFeePerGas, maxPriorityFeePerGas, accessList, data, } = transaction;\n assertTransactionEIP1559(transaction);\n const serializedAccessList = serializeAccessList(accessList);\n const serializedTransaction = [\n numberToHex(chainId),\n nonce ? numberToHex(nonce) : '0x',\n maxPriorityFeePerGas ? numberToHex(maxPriorityFeePerGas) : '0x',\n maxFeePerGas ? numberToHex(maxFeePerGas) : '0x',\n gas ? numberToHex(gas) : '0x',\n to ?? '0x',\n value ? numberToHex(value) : '0x',\n data ?? '0x',\n serializedAccessList,\n ...toYParitySignatureArray(transaction, signature),\n ];\n return concatHex([\n '0x02',\n toRlp(serializedTransaction),\n ]);\n}\nfunction serializeTransactionEIP2930(transaction, signature) {\n const { chainId, gas, data, nonce, to, value, accessList, gasPrice } = transaction;\n assertTransactionEIP2930(transaction);\n const serializedAccessList = serializeAccessList(accessList);\n const serializedTransaction = [\n numberToHex(chainId),\n nonce ? numberToHex(nonce) : '0x',\n gasPrice ? numberToHex(gasPrice) : '0x',\n gas ? numberToHex(gas) : '0x',\n to ?? '0x',\n value ? numberToHex(value) : '0x',\n data ?? '0x',\n serializedAccessList,\n ...toYParitySignatureArray(transaction, signature),\n ];\n return concatHex([\n '0x01',\n toRlp(serializedTransaction),\n ]);\n}\nfunction serializeTransactionLegacy(transaction, signature) {\n const { chainId = 0, gas, data, nonce, to, value, gasPrice } = transaction;\n assertTransactionLegacy(transaction);\n let serializedTransaction = [\n nonce ? numberToHex(nonce) : '0x',\n gasPrice ? numberToHex(gasPrice) : '0x',\n gas ? numberToHex(gas) : '0x',\n to ?? '0x',\n value ? numberToHex(value) : '0x',\n data ?? '0x',\n ];\n if (signature) {\n const v = (() => {\n // EIP-155 (inferred chainId)\n if (signature.v >= 35n) {\n const inferredChainId = (signature.v - 35n) / 2n;\n if (inferredChainId > 0)\n return signature.v;\n return 27n + (signature.v === 35n ? 0n : 1n);\n }\n // EIP-155 (explicit chainId)\n if (chainId > 0)\n return BigInt(chainId * 2) + BigInt(35n + signature.v - 27n);\n // Pre-EIP-155 (no chainId)\n const v = 27n + (signature.v === 27n ? 0n : 1n);\n if (signature.v !== v)\n throw new InvalidLegacyVError({ v: signature.v });\n return v;\n })();\n const r = trim(signature.r);\n const s = trim(signature.s);\n serializedTransaction = [\n ...serializedTransaction,\n numberToHex(v),\n r === '0x00' ? '0x' : r,\n s === '0x00' ? '0x' : s,\n ];\n }\n else if (chainId > 0) {\n serializedTransaction = [\n ...serializedTransaction,\n numberToHex(chainId),\n '0x',\n '0x',\n ];\n }\n return toRlp(serializedTransaction);\n}\nexport function toYParitySignatureArray(transaction, signature_) {\n const signature = signature_ ?? transaction;\n const { v, yParity } = signature;\n if (typeof signature.r === 'undefined')\n return [];\n if (typeof signature.s === 'undefined')\n return [];\n if (typeof v === 'undefined' && typeof yParity === 'undefined')\n return [];\n const r = trim(signature.r);\n const s = trim(signature.s);\n const yParity_ = (() => {\n if (typeof yParity === 'number')\n return yParity ? numberToHex(1) : '0x';\n if (v === 0n)\n return '0x';\n if (v === 1n)\n return numberToHex(1);\n return v === 27n ? '0x' : numberToHex(1);\n })();\n return [yParity_, r === '0x00' ? '0x' : r, s === '0x00' ? '0x' : s];\n}\n//# sourceMappingURL=serializeTransaction.js.map","import { toHex } from '../encoding/toHex.js';\nimport { toYParitySignatureArray } from '../transaction/serializeTransaction.js';\n/*\n * Serializes an EIP-7702 authorization list.\n */\nexport function serializeAuthorizationList(authorizationList) {\n if (!authorizationList || authorizationList.length === 0)\n return [];\n const serializedAuthorizationList = [];\n for (const authorization of authorizationList) {\n const { chainId, nonce, ...signature } = authorization;\n const contractAddress = authorization.address;\n serializedAuthorizationList.push([\n chainId ? toHex(chainId) : '0x',\n contractAddress,\n nonce ? toHex(nonce) : '0x',\n ...toYParitySignatureArray({}, signature),\n ]);\n }\n return serializedAuthorizationList;\n}\n//# sourceMappingURL=serializeAuthorizationList.js.map","'use strict';\n\n// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m;\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m;\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m;\nvar evp = require('evp_bytestokey');\nvar ciphers = require('browserify-aes');\nvar Buffer = require('safe-buffer').Buffer;\nmodule.exports = function (okey, password) {\n\tvar key = okey.toString();\n\tvar match = key.match(findProc);\n\tvar decrypted;\n\tif (!match) {\n\t\tvar match2 = key.match(fullRegex);\n\t\tdecrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64');\n\t} else {\n\t\tvar suite = 'aes' + match[1];\n\t\tvar iv = Buffer.from(match[2], 'hex');\n\t\tvar cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64');\n\t\tvar cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key;\n\t\tvar out = [];\n\t\tvar cipher = ciphers.createDecipheriv(suite, cipherKey, iv);\n\t\tout.push(cipher.update(cipherText));\n\t\tout.push(cipher['final']());\n\t\tdecrypted = Buffer.concat(out);\n\t}\n\tvar tag = key.match(startRegex)[1];\n\treturn {\n\t\ttag: tag,\n\t\tdata: decrypted\n\t};\n};\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (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}\n","export function concat(values) {\n if (typeof values[0] === 'string')\n return concatHex(values);\n return concatBytes(values);\n}\nexport function concatBytes(values) {\n let length = 0;\n for (const arr of values) {\n length += arr.length;\n }\n const result = new Uint8Array(length);\n let offset = 0;\n for (const arr of values) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\nexport function concatHex(values) {\n return `0x${values.reduce((acc, x) => acc + x.replace('0x', ''), '')}`;\n}\n//# sourceMappingURL=concat.js.map","import { AbiEncodingLengthMismatchError, BytesSizeMismatchError, UnsupportedPackedAbiType, } from '../../errors/abi.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { concatHex } from '../data/concat.js';\nimport { pad } from '../data/pad.js';\nimport { boolToHex, numberToHex, stringToHex, } from '../encoding/toHex.js';\nimport { arrayRegex, bytesRegex, integerRegex } from '../regex.js';\nexport function encodePacked(types, values) {\n if (types.length !== values.length)\n throw new AbiEncodingLengthMismatchError({\n expectedLength: types.length,\n givenLength: values.length,\n });\n const data = [];\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n const value = values[i];\n data.push(encode(type, value));\n }\n return concatHex(data);\n}\nfunction encode(type, value, isArray = false) {\n if (type === 'address') {\n const address = value;\n if (!isAddress(address))\n throw new InvalidAddressError({ address });\n return pad(address.toLowerCase(), {\n size: isArray ? 32 : null,\n });\n }\n if (type === 'string')\n return stringToHex(value);\n if (type === 'bytes')\n return value;\n if (type === 'bool')\n return pad(boolToHex(value), { size: isArray ? 32 : 1 });\n const intMatch = type.match(integerRegex);\n if (intMatch) {\n const [_type, baseType, bits = '256'] = intMatch;\n const size = Number.parseInt(bits, 10) / 8;\n return numberToHex(value, {\n size: isArray ? 32 : size,\n signed: baseType === 'int',\n });\n }\n const bytesMatch = type.match(bytesRegex);\n if (bytesMatch) {\n const [_type, size] = bytesMatch;\n if (Number.parseInt(size, 10) !== (value.length - 2) / 2)\n throw new BytesSizeMismatchError({\n expectedSize: Number.parseInt(size, 10),\n givenSize: (value.length - 2) / 2,\n });\n return pad(value, { dir: 'right', size: isArray ? 32 : null });\n }\n const arrayMatch = type.match(arrayRegex);\n if (arrayMatch && Array.isArray(value)) {\n const [_type, childType] = arrayMatch;\n const data = [];\n for (let i = 0; i < value.length; i++) {\n data.push(encode(childType, value[i], true));\n }\n if (data.length === 0)\n return '0x';\n return concatHex(data);\n }\n throw new UnsupportedPackedAbiType(type);\n}\n//# sourceMappingURL=encodePacked.js.map","// See solidity https://github.com/zama-ai/fhevm/blob/429d127709b56c5b8ec564a2f2cc329aa7f6722f/lib/TFHEExecutor.sol#L15\nimport { Schema } from 'effect';\nimport { Keccak } from 'sha3';\nimport { encodePacked, hexToBytes, toHex } from 'viem';\nimport { HexString } from './binary.js';\nexport const HANDLE_VERSION = 0;\n// This enum maps to FheType as defined in tfhe-rs in value, but the keys provide an additional interpretation over\n// the underlying integral FheType. For example, ebool interprets an uint16 as a boolean, ebytes64 interprets an uint512\n// as a 64-byte array, etc.\nexport const handleTypes = Object.freeze({\n ebool: 0,\n euint4: 1,\n euint8: 2,\n euint16: 3,\n euint32: 4,\n euint64: 5,\n euint128: 6,\n euint160: 7,\n euint256: 8,\n ebytes64: 9,\n ebytes128: 10,\n ebytes256: 11,\n});\nconst handleNames = Object.keys(handleTypes);\nexport const HandleTypeName = Schema.Literal(...handleNames);\nexport function isFheType(value) {\n return Object.values(handleTypes).includes(value);\n}\nexport const InputContext = Schema.Struct({\n hostChainId: Schema.BigInt,\n aclAddress: HexString,\n userAddress: HexString,\n contractAddress: HexString,\n});\n// Returns the FheType of the handle. See:\n// https://github.com/Inco-fhevm/inco-monorepo/blob/636756f512ae16535bdcb9a43df76bf14fbd6ba7/pkg/fhe/handle.md\nexport function getHandleType(handle) {\n const handleBytes = hexToBytes(handle);\n const handleType = handleBytes[30];\n if (!isFheType(handleType)) {\n throw new Error(`Invalid handle type ${handleType} for handle ${handle}`);\n }\n return handleType;\n}\n// A note from Solidity at https://github.com/Inco-fhevm/fhevm/blob/7952950243b144b1bbdfc30318412a2dc6b575fd/lib/TFHEExecutor.sol#L87-L89:\n/// @dev handle format for user inputs is: keccak256(keccak256(CiphertextFHEList)||index_handle)[0:29] || index_handle || handle_type || handle_version\n/// @dev other handles format (fhe ops results) is: keccak256(keccak256(rawCiphertextFHEList)||index_handle)[0:30] || handle_type || handle_versioreenctestn\n/// @dev the CiphertextFHEList actually contains: 1 byte (= N) for size of handles_list, N bytes for the handles_types : 1 per handle, then the original fhe160list raw ciphertext\n/**\n * Computes the prehandle hash for an input based on the ciphertext\n *\n * @param ciphertextPayload Note this is the different from the input which has the external handle prepended\n * @param indexHandle\n * @param handleType\n * @param handleVersion\n */\nexport function computePrehandle({ ciphertext, indexHandle, handleType, handleVersion, }) {\n assertUint8(indexHandle);\n assertUint8(handleType);\n assertUint8(handleVersion);\n const ciphertextHash = new Keccak(256)\n .update(Buffer.from(ciphertext))\n .digest();\n const ciphertextIndexHash = new Keccak(256)\n .update(Buffer.from(ciphertextHash))\n .update(Buffer.from([indexHandle]))\n .digest();\n const handle = Buffer.alloc(32);\n ciphertextIndexHash.copy(handle, 0, 0, 29);\n handle.writeUInt8(indexHandle, 29);\n handle.writeUInt8(handleType, 30);\n handle.writeUInt8(handleVersion, 31);\n return handle;\n}\n/**\n * Computes the final handle for an input based on the prehandle and the input context, matches the handle generation\n * in Go and Solidity\n *\n * @param prehandle\n * @param context\n */\nexport function computeHandle({ prehandle, context, }) {\n if (prehandle.length !== 32) {\n throw new Error(`prehandle should be 32 bytes but is: ${prehandle.length}`);\n }\n const packed = encodePacked(['bytes32', 'string', 'uint256', 'address', 'address', 'address'], [\n toHex(prehandle),\n // Note: The x/hostchain spec requires the chain ID to be prefixed with 'evm/' for EVM chains\n 'evm/',\n context.hostChainId,\n context.aclAddress,\n context.userAddress,\n context.contractAddress,\n ]);\n return Buffer.concat([\n new Keccak(256)\n .update(Buffer.from(hexToBytes(packed)))\n .digest()\n .subarray(0, 29),\n // Preserve the final three bytes of handle metadata\n prehandle.slice(29, 32),\n ]);\n}\nexport function hashInputContext(context) {\n const packed = encodePacked(['string', 'uint256', 'address', 'address', 'address'], [\n // Note: The x/hostchain spec requires the chain ID to be prefixed with 'evm/' for EVM chains\n 'evm/',\n context.hostChainId,\n context.aclAddress,\n context.userAddress,\n context.contractAddress,\n ]);\n return new Keccak(256).update(Buffer.from(hexToBytes(packed))).digest();\n}\nfunction assertUint8(value) {\n if (!Number.isInteger(value) || value < 0 || value > 255) {\n throw new Error(`Invalid uint8 value: ${value}`);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhbmRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1SEFBdUg7QUFDdkgsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQUM7QUFFaEMsbUhBQW1IO0FBQ25ILHdIQUF3SDtBQUN4SCwyQkFBMkI7QUFDM0IsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDdkMsS0FBSyxFQUFFLENBQUM7SUFDUixNQUFNLEVBQUUsQ0FBQztJQUNULE1BQU0sRUFBRSxDQUFDO0lBQ1QsT0FBTyxFQUFFLENBQUM7SUFDVixPQUFPLEVBQUUsQ0FBQztJQUNWLE9BQU8sRUFBRSxDQUFDO0lBQ1YsUUFBUSxFQUFFLENBQUM7SUFDWCxRQUFRLEVBQUUsQ0FBQztJQUNYLFFBQVEsRUFBRSxDQUFDO0lBQ1gsUUFBUSxFQUFFLENBQUM7SUFDWCxTQUFTLEVBQUUsRUFBRTtJQUNiLFNBQVMsRUFBRSxFQUFFO0NBQ2QsQ0FBQyxDQUFDO0FBRUgsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQWlDLENBQUM7QUFFN0UsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQztBQVE3RCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQWE7SUFDckMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFnQixDQUFDLENBQUM7QUFDL0QsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3hDLFdBQVcsRUFBRSxNQUFNLENBQUMsTUFBTTtJQUMxQixVQUFVLEVBQUUsU0FBUztJQUNyQixXQUFXLEVBQUUsU0FBUztJQUN0QixlQUFlLEVBQUUsU0FBUztDQUMzQixDQUFDLENBQUM7QUFlSCwwQ0FBMEM7QUFDMUMsOEdBQThHO0FBQzlHLE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBaUI7SUFDN0MsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsVUFBVSxlQUFlLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFFRCwwSUFBMEk7QUFDMUksdUpBQXVKO0FBQ3ZKLDRKQUE0SjtBQUM1SixrTEFBa0w7QUFFbEw7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxFQUMvQixVQUFVLEVBQ1YsV0FBVyxFQUNYLFVBQVUsRUFDVixhQUFhLEdBTWQ7SUFDQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekIsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hCLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMzQixNQUFNLGNBQWMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUM7U0FDbkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDL0IsTUFBTSxFQUFFLENBQUM7SUFDWixNQUFNLG1CQUFtQixHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQztTQUN4QyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNuQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDbEMsTUFBTSxFQUFFLENBQUM7SUFDWixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzQyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNuQyxNQUFNLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNsQyxNQUFNLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyQyxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxFQUM1QixTQUFTLEVBQ1QsT0FBTyxHQUlSO0lBQ0MsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQ3pCLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFDakU7UUFDRSxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2hCLDZGQUE2RjtRQUM3RixNQUFNO1FBQ04sT0FBTyxDQUFDLFdBQVc7UUFDbkIsT0FBTyxDQUFDLFVBQVU7UUFDbEIsT0FBTyxDQUFDLFdBQVc7UUFDbkIsT0FBTyxDQUFDLGVBQWU7S0FDeEIsQ0FDRixDQUFDO0lBQ0YsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ25CLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQzthQUNaLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2FBQ3ZDLE1BQU0sRUFBRTthQUNSLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2xCLG9EQUFvRDtRQUNwRCxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7S0FDeEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxPQUFxQjtJQUNwRCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQ3pCLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUN0RDtRQUNFLDZGQUE2RjtRQUM3RixNQUFNO1FBQ04sT0FBTyxDQUFDLFdBQVc7UUFDbkIsT0FBTyxDQUFDLFVBQVU7UUFDbEIsT0FBTyxDQUFDLFdBQVc7UUFDbkIsT0FBTyxDQUFDLGVBQWU7S0FDeEIsQ0FDRixDQUFDO0lBQ0YsT0FBTyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQzFFLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxLQUFhO0lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ3pELE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztBQUNILENBQUMifQ==","\"use strict\";\n/*\nMIT License\n\nCopyright (c) 2019 Cyril Dever\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decrypt = exports.encrypt = exports.derive = exports.verify = exports.sign = exports.getPublic = exports.kdf = void 0;\n/**\n * Browser ecies-geth implementation.\n * This is based off the `eccrypto` JS module.\n */\nvar elliptic_1 = require(\"elliptic\");\n/* eslint-disable @typescript-eslint/unbound-method */\nvar ec = new elliptic_1.ec('secp256k1');\n/* eslint-disable @typescript-eslint/strict-boolean-expressions */\nvar crypto = window.crypto || window.msCrypto; // eslint-disable-line @typescript-eslint/no-non-null-assertion\nvar subtle = crypto.subtle || crypto.webkitSubtle;\n/* eslint-enable @typescript-eslint/strict-boolean-expressions */\nif (subtle === undefined || crypto === undefined) {\n throw new Error('crypto and/or subtle api unavailable');\n}\n// Use the browser RNG\nvar randomBytes = function (size) {\n return crypto.getRandomValues(Buffer.alloc(size));\n};\n// Get the browser SHA256 implementation\nvar sha256 = function (msg) {\n return subtle.digest({ name: 'SHA-256' }, msg).then(Buffer.from);\n};\n// The KDF as implemented in Parity mimics Geth's implementation\nvar kdf = function (secret, outputLength) {\n var ctr = 1;\n var written = 0;\n var willBeResult = Promise.resolve(Buffer.from(''));\n var _loop_1 = function () {\n var ctrs = Buffer.from([ctr >> 24, ctr >> 16, ctr >> 8, ctr]);\n var willBeHashResult = sha256(Buffer.concat([ctrs, secret]));\n willBeResult = willBeResult.then(function (result) { return willBeHashResult.then(function (hashResult) {\n return Buffer.concat([result, hashResult]);\n }); });\n written += 32;\n ctr += 1;\n };\n while (written < outputLength) {\n _loop_1();\n }\n return willBeResult;\n};\nexports.kdf = kdf;\nvar aesCtrEncrypt = function (counter, key, data) {\n return subtle\n .importKey('raw', key, 'AES-CTR', false, ['encrypt'])\n .then(function (cryptoKey) {\n return subtle.encrypt({ name: 'AES-CTR', counter: counter, length: 128 }, cryptoKey, data);\n }).then(Buffer.from);\n};\nvar aesCtrDecrypt = function (counter, key, data) {\n return subtle\n .importKey('raw', key, 'AES-CTR', false, ['decrypt'])\n .then(function (cryptoKey) {\n return subtle.decrypt({ name: 'AES-CTR', counter: counter, length: 128 }, cryptoKey, data);\n }).then(Buffer.from);\n};\nvar hmacSha256Sign = function (key, msg) {\n var algorithm = { name: 'HMAC', hash: { name: 'SHA-256' } };\n return subtle.importKey('raw', key, algorithm, false, ['sign'])\n .then(function (cryptoKey) { return subtle.sign(algorithm, cryptoKey, msg); })\n .then(Buffer.from);\n};\nvar hmacSha256Verify = function (key, msg, sig) {\n var algorithm = { name: 'HMAC', hash: { name: 'SHA-256' } };\n var keyp = subtle.importKey('raw', key, algorithm, false, ['verify']);\n return keyp.then(function (cryptoKey) { return subtle.verify(algorithm, cryptoKey, sig, msg); });\n};\n/**\n * Compute the public key for a given private key.\n *\n * @param {Buffer} privateKey - A 32-byte private key\n * @return {Promise} A promise that resolve with the 65-byte public key or reject on wrong private key.\n * @function\n */\nvar getPublic = function (privateKey) { return new Promise(function (resolve, reject) {\n if (privateKey.length !== 32) {\n reject(new Error('Private key should be 32 bytes long'));\n }\n else {\n resolve(Buffer.from(ec.keyFromPrivate(privateKey).getPublic('array')));\n }\n}); };\nexports.getPublic = getPublic;\n/**\n * Create an ECDSA signature.\n *\n * @param {Buffer} privateKey - A 32-byte private key\n * @param {Buffer} msg - The message being signed, no more than 32 bytes\n * @return {Promise.} A promise that resolves with the signature and rejects on bad key or message\n */\nvar sign = function (privateKey, msg) { return new Promise(function (resolve, reject) {\n if (privateKey.length !== 32) {\n reject(new Error('Private key should be 32 bytes long'));\n }\n else if (msg.length <= 0) {\n reject(new Error('Message should not be empty'));\n }\n else if (msg.length > 32) {\n reject(new Error('Message is too long (max 32 bytes)'));\n }\n else {\n resolve(Buffer.from(ec.sign(msg, privateKey, { canonical: true }).toDER('hex'), 'hex'));\n }\n}); };\nexports.sign = sign;\n/**\n * Verify an ECDSA signature.\n *\n * @param {Buffer} publicKey - A 65-byte public key\n * @param {Buffer} msg - The message being verified\n * @param {Buffer} sig - The signature\n * @return {Promise.} A promise that resolves on correct signature and rejects on bad key or signature\n */\nvar verify = function (publicKey, msg, sig) { return new Promise(function (resolve, reject) {\n try {\n if (publicKey.length !== 65 || publicKey[0] !== 4) {\n reject(new Error('Public key should 65 bytes long'));\n }\n else if (msg.length <= 0) {\n reject(new Error('Message should not be empty'));\n }\n else if (msg.length > 32) {\n reject(new Error('Message is too long (max 32 bytes)'));\n }\n else if (!ec.verify(msg, sig.toString('hex'), publicKey, 'hex')) { // eslint-disable-line @typescript-eslint/no-unsafe-argument\n reject(new Error('Bad signature'));\n }\n else {\n resolve(true);\n }\n }\n catch (_) { // eslint-disable-line @typescript-eslint/no-unused-vars\n reject(new Error('Invalid arguments'));\n }\n}); };\nexports.verify = verify;\n/**\n * Derive shared secret for given private and public keys.\n *\n * @param {Buffer} privateKey - Sender's private key (32 bytes)\n * @param {Buffer} publicKey - Recipient's public key (65 bytes)\n * @return {Promise.} A promise that resolves with the derived shared secret (Px, 32 bytes) and rejects on bad key\n */\nvar derive = function (privateKeyA, publicKeyB) { return new Promise(function (resolve, reject) {\n if (privateKeyA.length !== 32) {\n reject(new Error(\"Bad private key, it should be 32 bytes but it's actually \".concat(privateKeyA.length, \" bytes long\")));\n }\n else if (publicKeyB.length !== 65) {\n reject(new Error(\"Bad public key, it should be 65 bytes but it's actually \".concat(publicKeyB.length, \" bytes long\")));\n }\n else if (publicKeyB[0] !== 4) {\n reject(new Error('Bad public key, a valid public key would begin with 4'));\n }\n else {\n var keyA = ec.keyFromPrivate(privateKeyA);\n var keyB = ec.keyFromPublic(publicKeyB);\n var Px = keyA.derive(keyB.getPublic()); // BN instance\n resolve(pad32(Buffer.from(Px.toArray())));\n }\n}); };\nexports.derive = derive;\n/**\n * Encrypt message for given recepient's public key.\n *\n * @param {Buffer} publicKeyTo - Recipient's public key (65 bytes)\n * @param {Buffer} msg - The message being encrypted\n * @param {?{?iv: Buffer, ?ephemPrivateKey: Buffer}} opts - You may also specify initialization vector (16 bytes) and ephemeral private key (32 bytes) to get deterministic results.\n * @return {Promise.} - A promise that resolves with the ECIES structure serialized\n */\nvar encrypt = function (publicKeyTo, msg, opts) { return __awaiter(void 0, void 0, void 0, function () {\n var ephemPrivateKey;\n return __generator(this, function (_a) {\n opts = opts || {};\n ephemPrivateKey = opts.ephemPrivateKey || randomBytes(32);\n return [2 /*return*/, (0, exports.derive)(ephemPrivateKey, publicKeyTo)\n .then(function (sharedPx) { return (0, exports.kdf)(sharedPx, 32); })\n .then(function (hash) { return __awaiter(void 0, void 0, void 0, function () {\n var iv, encryptionKey;\n return __generator(this, function (_a) {\n iv = opts.iv || randomBytes(16);\n encryptionKey = hash.slice(0, 16);\n return [2 /*return*/, aesCtrEncrypt(iv, encryptionKey, msg)\n .then(function (cipherText) { return Buffer.concat([iv, cipherText]); })\n .then(function (ivCipherText) {\n return sha256(hash.slice(16))\n .then(function (macKey) { return hmacSha256Sign(macKey, ivCipherText); })\n .then(function (HMAC) {\n return (0, exports.getPublic)(ephemPrivateKey)\n .then(function (ephemPublicKey) { return Buffer.concat([ephemPublicKey, ivCipherText, HMAC]); });\n });\n })];\n });\n }); })];\n });\n}); };\nexports.encrypt = encrypt;\nvar metaLength = 1 + 64 + 16 + 32;\n/**\n * Decrypt message using given private key.\n *\n * @param {Buffer} privateKey - A 32-byte private key of recepient of the message\n * @param {Ecies} encrypted - ECIES serialized structure (result of ECIES encryption)\n * @return {Promise.} - A promise that resolves with the plaintext on successful decryption and rejects on failure\n */\nvar decrypt = function (privateKey, encrypted) { return new Promise(function (resolve, reject) {\n if (encrypted.length <= metaLength) {\n reject(new Error(\"Invalid Ciphertext. Data is too small. It should ba at least \".concat(metaLength, \" bytes\")));\n }\n else if (encrypted[0] !== 4) {\n reject(new Error(\"Not a valid ciphertext. It should begin with 4 but actually begin with \".concat(encrypted[0])));\n }\n else {\n // deserialize\n var ephemPublicKey = encrypted.slice(0, 65);\n var cipherTextLength = encrypted.length - metaLength;\n var iv_1 = encrypted.slice(65, 65 + 16);\n var cipherAndIv_1 = encrypted.slice(65, 65 + 16 + cipherTextLength);\n var ciphertext_1 = cipherAndIv_1.slice(16);\n var msgMac_1 = encrypted.slice(65 + 16 + cipherTextLength);\n // check HMAC\n resolve((0, exports.derive)(privateKey, ephemPublicKey)\n .then(function (px) { return (0, exports.kdf)(px, 32); })\n .then(function (hash) { return sha256(hash.slice(16)).then(function (macKey) { return [hash.slice(0, 16), macKey]; }); })\n .then(function (_a) {\n var encryptionKey = _a[0], macKey = _a[1];\n return hmacSha256Verify(macKey, cipherAndIv_1, msgMac_1)\n .then(function (isHmacGood) { return !isHmacGood\n ? Promise.reject(new Error('Incorrect MAC'))\n : aesCtrDecrypt(iv_1, encryptionKey, ciphertext_1); });\n }).then(Buffer.from));\n }\n}); };\nexports.decrypt = decrypt;\nvar pad32 = function (msg) {\n if (msg.length < 32) {\n var buff = Buffer.alloc(32).fill(0);\n msg.copy(buff, 32 - msg.length);\n return buff;\n }\n else\n return msg;\n};\n__exportStar(require(\"./model\"), exports);\n/* eslint-enable @typescript-eslint/unbound-method */ \n//# sourceMappingURL=browser.js.map","import { InvalidSerializableTransactionError, } from '../../errors/transaction.js';\nexport function getTransactionType(transaction) {\n if (transaction.type)\n return transaction.type;\n if (typeof transaction.authorizationList !== 'undefined')\n return 'eip7702';\n if (typeof transaction.blobs !== 'undefined' ||\n typeof transaction.blobVersionedHashes !== 'undefined' ||\n typeof transaction.maxFeePerBlobGas !== 'undefined' ||\n typeof transaction.sidecars !== 'undefined')\n return 'eip4844';\n if (typeof transaction.maxFeePerGas !== 'undefined' ||\n typeof transaction.maxPriorityFeePerGas !== 'undefined') {\n return 'eip1559';\n }\n if (typeof transaction.gasPrice !== 'undefined') {\n if (typeof transaction.accessList !== 'undefined')\n return 'eip2930';\n return 'legacy';\n }\n throw new InvalidSerializableTransactionError({ transaction });\n}\n//# sourceMappingURL=getTransactionType.js.map","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","import { ParseResult, Schema } from 'effect';\nimport { isHex } from 'viem';\nimport { parse } from './schema.js';\nexport const HexString = Schema.TemplateLiteral('0x', Schema.String);\nexport function bytesToBigInt(byteArray) {\n // Ugly but better than bigint-buffer that insists on writing junk to stderr if it doesn't have native bindings\n return !byteArray?.length\n ? BigInt(0)\n : BigInt('0x' + Buffer.from(byteArray).toString('hex'));\n}\nexport function bufferToBigInt(buffer) {\n return bytesToBigInt(Uint8Array.from(buffer));\n}\nexport function bigintToBytes(value) {\n return Buffer.from(value.toString(16).padStart(64, '0'), 'hex');\n}\n// Convert a bigint to a 32-byte array, left-padded if necessary. Note: it is\n// caller's responsibility to ensure that the bigint is not too large to fit in\n// 32 bytes, or else the result will be truncated.\nexport function bigintToBytes32(value) {\n return parse(Bytes32, bigintToBytes(value).toString('hex'));\n}\nexport function padLeft(bs, n) {\n if (bs.length > n) {\n throw new Error(`Cannot pad ${bs.length} bytes to ${n} - would truncate`);\n }\n const buf = Buffer.alloc(n);\n buf.set(bs, n - bs.length);\n return buf;\n}\nexport function bytes32ToBigint(bs) {\n const bytes32 = asBytes32(bs);\n return BigInt(bytes32);\n}\nexport function bytesFromHexString(hexString) {\n return Buffer.from(hexString.startsWith('0x') ? hexString.slice(2) : hexString, 'hex');\n}\nexport function mustBeHex(value) {\n if (!isHex(value)) {\n throw new Error(`Expected hex string, got: ${value}`);\n }\n return value;\n}\nexport function normaliseToHex(value) {\n return mustBeHex(value.startsWith('0x') ? value : `0x${value}`);\n}\nexport function bytesToHex(bs) {\n return ('0x' + Buffer.from(bs).toString('hex'));\n}\nconst ByteArray = Schema.Object.pipe(Schema.filter((x) => x instanceof Uint8Array));\nconst BytesToHex = Schema.transformOrFail(Schema.Union(Schema.String, ByteArray), HexString, {\n strict: true,\n encode: ParseResult.succeed,\n decode: (x) => x instanceof Uint8Array\n ? ParseResult.succeed(bytesToHex(x))\n : ((y) => isHex(y)\n ? ParseResult.succeed(y)\n : ParseResult.fail(new ParseResult.Unexpected(y, `'${y}' is not a hex string`)))(normaliseToHex(x)),\n});\nexport const Bytes32 = BytesToHex.pipe(Schema.filter((x) => x.length === 66 ||\n `Expected 32-byte hex string (66 characters with 0x prefix) but got ${x.length} character string`), Schema.brand('Bytes32'));\nexport function asBytes32(x) {\n return parse(Bytes32, x);\n}\nexport const Address = HexString.pipe(Schema.filter((s) => s.length === 42 ||\n `Address must be a 20-byte '0x'-prefixed hex string, but got: ${s}`), Schema.brand('Address'));\nexport function parseAddress(address) {\n return parse(Address, address);\n}\nexport function parseHex(hex) {\n return parse(HexString, hex);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JpbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM3QyxPQUFPLEVBQU8sS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQU1yRSxNQUFNLFVBQVUsYUFBYSxDQUFDLFNBQXFCO0lBQ2pELCtHQUErRztJQUMvRyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU07UUFDdkIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQWM7SUFDM0MsT0FBTyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEtBQWE7SUFDekMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBRUQsNkVBQTZFO0FBQzdFLCtFQUErRTtBQUMvRSxrREFBa0Q7QUFDbEQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxLQUFhO0lBQzNDLE9BQU8sS0FBSyxDQUFDLE9BQU8s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","/**\n * Returns the current price of gas (in wei).\n *\n * - Docs: https://viem.sh/docs/actions/public/getGasPrice\n * - JSON-RPC Methods: [`eth_gasPrice`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gasprice)\n *\n * @param client - Client to use\n * @returns The gas price (in wei). {@link GetGasPriceReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getGasPrice } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const gasPrice = await getGasPrice(client)\n */\nexport async function getGasPrice(client) {\n const gasPrice = await client.request({\n method: 'eth_gasPrice',\n });\n return BigInt(gasPrice);\n}\n//# sourceMappingURL=getGasPrice.js.map","import * as OpCodes from \"./opCodes/deferred.js\";\n/** @internal */\nconst DeferredSymbolKey = \"effect/Deferred\";\n/** @internal */\nexport const DeferredTypeId = /*#__PURE__*/Symbol.for(DeferredSymbolKey);\n/** @internal */\nexport const deferredVariance = {\n /* c8 ignore next */\n _E: _ => _,\n /* c8 ignore next */\n _A: _ => _\n};\n/** @internal */\nexport const pending = joiners => {\n return {\n _tag: OpCodes.OP_STATE_PENDING,\n joiners\n };\n};\n/** @internal */\nexport const done = effect => {\n return {\n _tag: OpCodes.OP_STATE_DONE,\n effect\n };\n};\n//# sourceMappingURL=deferred.js.map","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","import * as Equal from \"../Equal.js\";\nimport { dual, pipe } from \"../Function.js\";\nimport { globalValue } from \"../GlobalValue.js\";\nimport * as Hash from \"../Hash.js\";\nimport * as HashSet from \"../HashSet.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"../Inspectable.js\";\nimport * as MutableRef from \"../MutableRef.js\";\nimport * as Option from \"../Option.js\";\nimport { hasProperty } from \"../Predicate.js\";\n/** @internal */\nconst FiberIdSymbolKey = \"effect/FiberId\";\n/** @internal */\nexport const FiberIdTypeId = /*#__PURE__*/Symbol.for(FiberIdSymbolKey);\n/** @internal */\nconst OP_NONE = \"None\";\n/** @internal */\nconst OP_RUNTIME = \"Runtime\";\n/** @internal */\nconst OP_COMPOSITE = \"Composite\";\nconst emptyHash = /*#__PURE__*/Hash.string(`${FiberIdSymbolKey}-${OP_NONE}`);\n/** @internal */\nclass None {\n [FiberIdTypeId] = FiberIdTypeId;\n _tag = OP_NONE;\n id = -1;\n startTimeMillis = -1;\n [Hash.symbol]() {\n return emptyHash;\n }\n [Equal.symbol](that) {\n return isFiberId(that) && that._tag === OP_NONE;\n }\n toString() {\n return format(this.toJSON());\n }\n toJSON() {\n return {\n _id: \"FiberId\",\n _tag: this._tag\n };\n }\n [NodeInspectSymbol]() {\n return this.toJSON();\n }\n}\n/** @internal */\nclass Runtime {\n id;\n startTimeMillis;\n [FiberIdTypeId] = FiberIdTypeId;\n _tag = OP_RUNTIME;\n constructor(id, startTimeMillis) {\n this.id = id;\n this.startTimeMillis = startTimeMillis;\n }\n [Hash.symbol]() {\n return Hash.cached(this, Hash.string(`${FiberIdSymbolKey}-${this._tag}-${this.id}-${this.startTimeMillis}`));\n }\n [Equal.symbol](that) {\n return isFiberId(that) && that._tag === OP_RUNTIME && this.id === that.id && this.startTimeMillis === that.startTimeMillis;\n }\n toString() {\n return format(this.toJSON());\n }\n toJSON() {\n return {\n _id: \"FiberId\",\n _tag: this._tag,\n id: this.id,\n startTimeMillis: this.startTimeMillis\n };\n }\n [NodeInspectSymbol]() {\n return this.toJSON();\n }\n}\n/** @internal */\nclass Composite {\n left;\n right;\n [FiberIdTypeId] = FiberIdTypeId;\n _tag = OP_COMPOSITE;\n constructor(left, right) {\n this.left = left;\n this.right = right;\n }\n _hash;\n [Hash.symbol]() {\n return pipe(Hash.string(`${FiberIdSymbolKey}-${this._tag}`), Hash.combine(Hash.hash(this.left)), Hash.combine(Hash.hash(this.right)), Hash.cached(this));\n }\n [Equal.symbol](that) {\n return isFiberId(that) && that._tag === OP_COMPOSITE && Equal.equals(this.left, that.left) && Equal.equals(this.right, that.right);\n }\n toString() {\n return format(this.toJSON());\n }\n toJSON() {\n return {\n _id: \"FiberId\",\n _tag: this._tag,\n left: toJSON(this.left),\n right: toJSON(this.right)\n };\n }\n [NodeInspectSymbol]() {\n return this.toJSON();\n }\n}\n/** @internal */\nexport const none = /*#__PURE__*/new None();\n/** @internal */\nexport const runtime = (id, startTimeMillis) => {\n return new Runtime(id, startTimeMillis);\n};\n/** @internal */\nexport const composite = (left, right) => {\n return new Composite(left, right);\n};\n/** @internal */\nexport const isFiberId = self => hasProperty(self, FiberIdTypeId);\n/** @internal */\nexport const isNone = self => {\n return self._tag === OP_NONE || pipe(toSet(self), HashSet.every(id => isNone(id)));\n};\n/** @internal */\nexport const isRuntime = self => {\n return self._tag === OP_RUNTIME;\n};\n/** @internal */\nexport const isComposite = self => {\n return self._tag === OP_COMPOSITE;\n};\n/** @internal */\nexport const combine = /*#__PURE__*/dual(2, (self, that) => {\n if (self._tag === OP_NONE) {\n return that;\n }\n if (that._tag === OP_NONE) {\n return self;\n }\n return new Composite(self, that);\n});\n/** @internal */\nexport const combineAll = fiberIds => {\n return pipe(fiberIds, HashSet.reduce(none, (a, b) => combine(b)(a)));\n};\n/** @internal */\nexport const getOrElse = /*#__PURE__*/dual(2, (self, that) => isNone(self) ? that : self);\n/** @internal */\nexport const ids = self => {\n switch (self._tag) {\n case OP_NONE:\n {\n return HashSet.empty();\n }\n case OP_RUNTIME:\n {\n return HashSet.make(self.id);\n }\n case OP_COMPOSITE:\n {\n return pipe(ids(self.left), HashSet.union(ids(self.right)));\n }\n }\n};\nconst _fiberCounter = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Fiber/Id/_fiberCounter\"), () => MutableRef.make(0));\n/** @internal */\nexport const make = (id, startTimeSeconds) => {\n return new Runtime(id, startTimeSeconds);\n};\n/** @internal */\nexport const threadName = self => {\n const identifiers = Array.from(ids(self)).map(n => `#${n}`).join(\",\");\n return identifiers;\n};\n/** @internal */\nexport const toOption = self => {\n const fiberIds = toSet(self);\n if (HashSet.size(fiberIds) === 0) {\n return Option.none();\n }\n let first = true;\n let acc;\n for (const fiberId of fiberIds) {\n if (first) {\n acc = fiberId;\n first = false;\n } else {\n // @ts-expect-error\n acc = pipe(acc, combine(fiberId));\n }\n }\n // @ts-expect-error\n return Option.some(acc);\n};\n/** @internal */\nexport const toSet = self => {\n switch (self._tag) {\n case OP_NONE:\n {\n return HashSet.empty();\n }\n case OP_RUNTIME:\n {\n return HashSet.make(self);\n }\n case OP_COMPOSITE:\n {\n return pipe(toSet(self.left), HashSet.union(toSet(self.right)));\n }\n }\n};\n/** @internal */\nexport const unsafeMake = () => {\n const id = MutableRef.get(_fiberCounter);\n pipe(_fiberCounter, MutableRef.set(id + 1));\n return new Runtime(id, Date.now());\n};\n//# sourceMappingURL=fiberId.js.map","import * as Arr from \"../Array.js\";\nimport * as Equal from \"../Equal.js\";\nimport { dual, pipe } from \"../Function.js\";\nimport * as HashSet from \"../HashSet.js\";\nimport * as Option from \"../Option.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport * as core from \"./core.js\";\n/** @internal */\nexport function unsafeMake(fiberRefLocals) {\n return new FiberRefsImpl(fiberRefLocals);\n}\n/** @internal */\nexport function empty() {\n return unsafeMake(new Map());\n}\n/** @internal */\nexport const FiberRefsSym = /*#__PURE__*/Symbol.for(\"effect/FiberRefs\");\n/** @internal */\nexport class FiberRefsImpl {\n locals;\n [FiberRefsSym] = FiberRefsSym;\n constructor(locals) {\n this.locals = locals;\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nconst findAncestor = (_ref, _parentStack, _childStack, _childModified = false) => {\n const ref = _ref;\n let parentStack = _parentStack;\n let childStack = _childStack;\n let childModified = _childModified;\n let ret = undefined;\n while (ret === undefined) {\n if (Arr.isNonEmptyReadonlyArray(parentStack) && Arr.isNonEmptyReadonlyArray(childStack)) {\n const parentFiberId = Arr.headNonEmpty(parentStack)[0];\n const parentAncestors = Arr.tailNonEmpty(parentStack);\n const childFiberId = Arr.headNonEmpty(childStack)[0];\n const childRefValue = Arr.headNonEmpty(childStack)[1];\n const childAncestors = Arr.tailNonEmpty(childStack);\n if (parentFiberId.startTimeMillis < childFiberId.startTimeMillis) {\n childStack = childAncestors;\n childModified = true;\n } else if (parentFiberId.startTimeMillis > childFiberId.startTimeMillis) {\n parentStack = parentAncestors;\n } else {\n if (parentFiberId.id < childFiberId.id) {\n childStack = childAncestors;\n childModified = true;\n } else if (parentFiberId.id > childFiberId.id) {\n parentStack = parentAncestors;\n } else {\n ret = [childRefValue, childModified];\n }\n }\n } else {\n ret = [ref.initial, true];\n }\n }\n return ret;\n};\n/** @internal */\nexport const joinAs = /*#__PURE__*/dual(3, (self, fiberId, that) => {\n const parentFiberRefs = new Map(self.locals);\n that.locals.forEach((childStack, fiberRef) => {\n const childValue = childStack[0][1];\n if (!childStack[0][0][Equal.symbol](fiberId)) {\n if (!parentFiberRefs.has(fiberRef)) {\n if (Equal.equals(childValue, fiberRef.initial)) {\n return;\n }\n parentFiberRefs.set(fiberRef, [[fiberId, fiberRef.join(fiberRef.initial, childValue)]]);\n return;\n }\n const parentStack = parentFiberRefs.get(fiberRef);\n const [ancestor, wasModified] = findAncestor(fiberRef, parentStack, childStack);\n if (wasModified) {\n const patch = fiberRef.diff(ancestor, childValue);\n const oldValue = parentStack[0][1];\n const newValue = fiberRef.join(oldValue, fiberRef.patch(patch)(oldValue));\n if (!Equal.equals(oldValue, newValue)) {\n let newStack;\n const parentFiberId = parentStack[0][0];\n if (parentFiberId[Equal.symbol](fiberId)) {\n newStack = [[parentFiberId, newValue], ...parentStack.slice(1)];\n } else {\n newStack = [[fiberId, newValue], ...parentStack];\n }\n parentFiberRefs.set(fiberRef, newStack);\n }\n }\n }\n });\n return new FiberRefsImpl(parentFiberRefs);\n});\n/** @internal */\nexport const forkAs = /*#__PURE__*/dual(2, (self, childId) => {\n const map = new Map();\n unsafeForkAs(self, map, childId);\n return new FiberRefsImpl(map);\n});\nconst unsafeForkAs = (self, map, fiberId) => {\n self.locals.forEach((stack, fiberRef) => {\n const oldValue = stack[0][1];\n const newValue = fiberRef.patch(fiberRef.fork)(oldValue);\n if (Equal.equals(oldValue, newValue)) {\n map.set(fiberRef, stack);\n } else {\n map.set(fiberRef, [[fiberId, newValue], ...stack]);\n }\n });\n};\n/** @internal */\nexport const fiberRefs = self => HashSet.fromIterable(self.locals.keys());\n/** @internal */\nexport const setAll = self => core.forEachSequentialDiscard(fiberRefs(self), fiberRef => core.fiberRefSet(fiberRef, getOrDefault(self, fiberRef)));\n/** @internal */\nexport const delete_ = /*#__PURE__*/dual(2, (self, fiberRef) => {\n const locals = new Map(self.locals);\n locals.delete(fiberRef);\n return new FiberRefsImpl(locals);\n});\n/** @internal */\nexport const get = /*#__PURE__*/dual(2, (self, fiberRef) => {\n if (!self.locals.has(fiberRef)) {\n return Option.none();\n }\n return Option.some(Arr.headNonEmpty(self.locals.get(fiberRef))[1]);\n});\n/** @internal */\nexport const getOrDefault = /*#__PURE__*/dual(2, (self, fiberRef) => pipe(get(self, fiberRef), Option.getOrElse(() => fiberRef.initial)));\n/** @internal */\nexport const updateAs = /*#__PURE__*/dual(2, (self, {\n fiberId,\n fiberRef,\n value\n}) => {\n if (self.locals.size === 0) {\n return new FiberRefsImpl(new Map([[fiberRef, [[fiberId, value]]]]));\n }\n const locals = new Map(self.locals);\n unsafeUpdateAs(locals, fiberId, fiberRef, value);\n return new FiberRefsImpl(locals);\n});\nconst unsafeUpdateAs = (locals, fiberId, fiberRef, value) => {\n const oldStack = locals.get(fiberRef) ?? [];\n let newStack;\n if (Arr.isNonEmptyReadonlyArray(oldStack)) {\n const [currentId, currentValue] = Arr.headNonEmpty(oldStack);\n if (currentId[Equal.symbol](fiberId)) {\n if (Equal.equals(currentValue, value)) {\n return;\n } else {\n newStack = [[fiberId, value], ...oldStack.slice(1)];\n }\n } else {\n newStack = [[fiberId, value], ...oldStack];\n }\n } else {\n newStack = [[fiberId, value]];\n }\n locals.set(fiberRef, newStack);\n};\n/** @internal */\nexport const updateManyAs = /*#__PURE__*/dual(2, (self, {\n entries,\n forkAs\n}) => {\n if (self.locals.size === 0) {\n return new FiberRefsImpl(new Map(entries));\n }\n const locals = new Map(self.locals);\n if (forkAs !== undefined) {\n unsafeForkAs(self, locals, forkAs);\n }\n entries.forEach(([fiberRef, values]) => {\n if (values.length === 1) {\n unsafeUpdateAs(locals, values[0][0], fiberRef, values[0][1]);\n } else {\n values.forEach(([fiberId, value]) => {\n unsafeUpdateAs(locals, fiberId, fiberRef, value);\n });\n }\n });\n return new FiberRefsImpl(locals);\n});\n//# sourceMappingURL=fiberRefs.js.map","import { TransactionReceiptRevertedError } from '../../errors/transaction.js';\nimport { formatTransactionReceipt } from '../../utils/formatters/transactionReceipt.js';\nimport { numberToHex, } from '../../utils/index.js';\n/**\n * Sends a **signed** transaction to the network synchronously,\n * and waits for the transaction to be included in a block.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendRawTransactionSync\n * - JSON-RPC Method: [`eth_sendRawTransactionSync`](https://eips.ethereum.org/EIPS/eip-7966)\n *\n * @param client - Client to use\n * @param parameters - {@link SendRawTransactionParameters}\n * @returns The transaction receipt. {@link SendRawTransactionSyncReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendRawTransactionSync } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n *\n * const receipt = await sendRawTransactionSync(client, {\n * serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\n * })\n */\nexport async function sendRawTransactionSync(client, { serializedTransaction, throwOnReceiptRevert, timeout, }) {\n const receipt = await client.request({\n method: 'eth_sendRawTransactionSync',\n params: timeout\n ? [serializedTransaction, numberToHex(timeout)]\n : [serializedTransaction],\n }, { retryCount: 0 });\n const format = client.chain?.formatters?.transactionReceipt?.format ||\n formatTransactionReceipt;\n const formatted = format(receipt);\n if (formatted.status === 'reverted' && throwOnReceiptRevert)\n throw new TransactionReceiptRevertedError({ receipt: formatted });\n return formatted;\n}\n//# sourceMappingURL=sendRawTransactionSync.js.map","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","import { keccak_256 } from '@noble/hashes/sha3';\nimport { isHex } from '../data/isHex.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { toHex } from '../encoding/toHex.js';\nexport function keccak256(value, to_) {\n const to = to_ || 'hex';\n const bytes = keccak_256(isHex(value, { strict: false }) ? toBytes(value) : value);\n if (to === 'bytes')\n return bytes;\n return toHex(bytes);\n}\n//# sourceMappingURL=keccak256.js.map","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports[\"default\"]=void 0;var _chi=_interopRequireDefault(require(\"./chi\"));var _iota=_interopRequireDefault(require(\"./iota\"));var _rhoPi=_interopRequireDefault(require(\"./rho-pi\"));var _theta=_interopRequireDefault(require(\"./theta\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{\"default\":obj}}var permute=function permute(){var C=new Uint32Array(10);var D=new Uint32Array(10);var W=new Uint32Array(2);return function(A){for(var roundIndex=0;roundIndex<24;roundIndex++){(0,_theta[\"default\"])({A:A,C:C,D:D,W:W});(0,_rhoPi[\"default\"])({A:A,C:C,W:W});(0,_chi[\"default\"])({A:A,C:C});(0,_iota[\"default\"])({A:A,roundIndex:roundIndex})}C.fill(0);D.fill(0);W.fill(0)}};var _default=permute;exports[\"default\"]=_default;","'use strict';\n\nmodule.exports = function SHA(algorithm) {\n\tvar alg = algorithm.toLowerCase();\n\n\tvar Algorithm = module.exports[alg];\n\tif (!Algorithm) {\n\t\tthrow new Error(alg + ' is not supported (we accept pull requests)');\n\t}\n\n\treturn new Algorithm();\n};\n\nmodule.exports.sha = require('./sha');\nmodule.exports.sha1 = require('./sha1');\nmodule.exports.sha224 = require('./sha224');\nmodule.exports.sha256 = require('./sha256');\nmodule.exports.sha384 = require('./sha384');\nmodule.exports.sha512 = require('./sha512');\n","/** @internal */\nexport const listenersCache = /*#__PURE__*/ new Map();\n/** @internal */\nexport const cleanupCache = /*#__PURE__*/ new Map();\nlet callbackCount = 0;\n/**\n * @description Sets up an observer for a given function. If another function\n * is set up under the same observer id, the function will only be called once\n * for both instances of the observer.\n */\nexport function observe(observerId, callbacks, fn) {\n const callbackId = ++callbackCount;\n const getListeners = () => listenersCache.get(observerId) || [];\n const unsubscribe = () => {\n const listeners = getListeners();\n listenersCache.set(observerId, listeners.filter((cb) => cb.id !== callbackId));\n };\n const unwatch = () => {\n const listeners = getListeners();\n if (!listeners.some((cb) => cb.id === callbackId))\n return;\n const cleanup = cleanupCache.get(observerId);\n if (listeners.length === 1 && cleanup) {\n const p = cleanup();\n if (p instanceof Promise)\n p.catch(() => { });\n }\n unsubscribe();\n };\n const listeners = getListeners();\n listenersCache.set(observerId, [\n ...listeners,\n { id: callbackId, fns: callbacks },\n ]);\n if (listeners && listeners.length > 0)\n return unwatch;\n const emit = {};\n for (const key in callbacks) {\n emit[key] = ((...args) => {\n const listeners = getListeners();\n if (listeners.length === 0)\n return;\n for (const listener of listeners)\n listener.fns[key]?.(...args);\n });\n }\n const cleanup = fn(emit);\n if (typeof cleanup === 'function')\n cleanupCache.set(observerId, cleanup);\n return unwatch;\n}\n//# sourceMappingURL=observe.js.map","import * as Context from \"../../Context.js\";\nimport * as core from \"../core.js\";\n/** @internal */\nexport const TypeId = /*#__PURE__*/Symbol.for(\"effect/Console\");\n/** @internal */\nexport const consoleTag = /*#__PURE__*/Context.GenericTag(\"effect/Console\");\n/** @internal */\nexport const defaultConsole = {\n [TypeId]: TypeId,\n assert(condition, ...args) {\n return core.sync(() => {\n console.assert(condition, ...args);\n });\n },\n clear: /*#__PURE__*/core.sync(() => {\n console.clear();\n }),\n count(label) {\n return core.sync(() => {\n console.count(label);\n });\n },\n countReset(label) {\n return core.sync(() => {\n console.countReset(label);\n });\n },\n debug(...args) {\n return core.sync(() => {\n console.debug(...args);\n });\n },\n dir(item, options) {\n return core.sync(() => {\n console.dir(item, options);\n });\n },\n dirxml(...args) {\n return core.sync(() => {\n console.dirxml(...args);\n });\n },\n error(...args) {\n return core.sync(() => {\n console.error(...args);\n });\n },\n group(options) {\n return options?.collapsed ? core.sync(() => console.groupCollapsed(options?.label)) : core.sync(() => console.group(options?.label));\n },\n groupEnd: /*#__PURE__*/core.sync(() => {\n console.groupEnd();\n }),\n info(...args) {\n return core.sync(() => {\n console.info(...args);\n });\n },\n log(...args) {\n return core.sync(() => {\n console.log(...args);\n });\n },\n table(tabularData, properties) {\n return core.sync(() => {\n console.table(tabularData, properties);\n });\n },\n time(label) {\n return core.sync(() => console.time(label));\n },\n timeEnd(label) {\n return core.sync(() => console.timeEnd(label));\n },\n timeLog(label, ...args) {\n return core.sync(() => {\n console.timeLog(label, ...args);\n });\n },\n trace(...args) {\n return core.sync(() => {\n console.trace(...args);\n });\n },\n warn(...args) {\n return core.sync(() => {\n console.warn(...args);\n });\n },\n unsafe: console\n};\n//# sourceMappingURL=console.js.map","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","import * as Equal from \"./Equal.js\";\nimport * as Equivalence from \"./Equivalence.js\";\nimport { constNull, constUndefined, dual, identity, isFunction } from \"./Function.js\";\nimport * as doNotation from \"./internal/doNotation.js\";\nimport * as either from \"./internal/either.js\";\nimport * as option from \"./internal/option.js\";\nimport * as order from \"./Order.js\";\nimport * as Gen from \"./Utils.js\";\n/**\n * @category Symbols\n * @since 2.0.0\n */\nexport const TypeId = /*#__PURE__*/Symbol.for(\"effect/Option\");\n/**\n * Represents the absence of a value by creating an empty `Option`.\n *\n * `Option.none` returns an `Option`, which is a subtype of `Option`.\n * This means you can use it in place of any `Option` regardless of the type\n * `A`.\n *\n * **Example** (Creating an Option with No Value)\n *\n * ```ts\n * import { Option } from \"effect\"\n *\n * // An Option holding no value\n * //\n * // ┌─── Option\n * // ▼\n * const noValue = Option.none()\n *\n * console.log(noValue)\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @see {@link some} for the opposite operation.\n *\n * @category Constructors\n * @since 2.0.0\n */\nexport const none = () => option.none;\n/**\n * Wraps the given value into an `Option` to represent its presence.\n *\n * **Example** (Creating an Option with a Value)\n *\n * ```ts\n * import { Option } from \"effect\"\n *\n * // An Option holding the number 1\n * //\n * // ┌─── Option\n * // ▼\n * const value = Option.some(1)\n *\n * console.log(value)\n * // Output: { _id: 'Option', _tag: 'Some', value: 1 }\n * ```\n *\n * @see {@link none} for the opposite operation.\n *\n * @category Constructors\n * @since 2.0.0\n */\nexport const some = option.some;\n/**\n * Determines whether the given value is an `Option`.\n *\n * **Details**\n *\n * This function checks if a value is an instance of `Option`. It returns `true`\n * if the value is either `Option.some` or `Option.none`, and `false` otherwise.\n * This is particularly useful when working with unknown values or when you need\n * to ensure type safety in your code.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.isOption(Option.some(1)))\n * // Output: true\n *\n * console.log(Option.isOption(Option.none()))\n * // Output: true\n *\n * console.log(Option.isOption({}))\n * // Output: false\n * ```\n *\n * @category Guards\n * @since 2.0.0\n */\nexport const isOption = option.isOption;\n/**\n * Checks whether an `Option` represents the absence of a value (`None`).\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.isNone(Option.some(1)))\n * // Output: false\n *\n * console.log(Option.isNone(Option.none()))\n * // Output: true\n * ```\n *\n * @see {@link isSome} for the opposite check.\n *\n * @category Guards\n * @since 2.0.0\n */\nexport const isNone = option.isNone;\n/**\n * Checks whether an `Option` contains a value (`Some`).\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.isSome(Option.some(1)))\n * // Output: true\n *\n * console.log(Option.isSome(Option.none()))\n * // Output: false\n * ```\n *\n * @see {@link isNone} for the opposite check.\n *\n * @category Guards\n * @since 2.0.0\n */\nexport const isSome = option.isSome;\n/**\n * Performs pattern matching on an `Option` to handle both `Some` and `None`\n * cases.\n *\n * **Details**\n *\n * This function allows you to match against an `Option` and handle both\n * scenarios: when the `Option` is `None` (i.e., contains no value), and when\n * the `Option` is `Some` (i.e., contains a value). It executes one of the\n * provided functions based on the case:\n *\n * - If the `Option` is `None`, the `onNone` function is executed and its result\n * is returned.\n * - If the `Option` is `Some`, the `onSome` function is executed with the\n * contained value, and its result is returned.\n *\n * This function provides a concise and functional way to handle optional values\n * without resorting to `if` or manual checks, making your code more declarative\n * and readable.\n *\n * **Example** (Pattern Matching with Option)\n *\n * ```ts\n * import { Option } from \"effect\"\n *\n * const foo = Option.some(1)\n *\n * const message = Option.match(foo, {\n * onNone: () => \"Option is empty\",\n * onSome: (value) => `Option has a value: ${value}`\n * })\n *\n * console.log(message)\n * // Output: \"Option has a value: 1\"\n * ```\n *\n * @category Pattern matching\n * @since 2.0.0\n */\nexport const match = /*#__PURE__*/dual(2, (self, {\n onNone,\n onSome\n}) => isNone(self) ? onNone() : onSome(self.value));\n/**\n * Converts an `Option`-returning function into a type guard.\n *\n * **Details**\n *\n * This function transforms a function that returns an `Option` into a type\n * guard, ensuring type safety when validating or narrowing types. The returned\n * type guard function checks whether the input satisfies the condition defined\n * in the original `Option`-returning function.\n *\n * If the original function returns `Option.some`, the type guard evaluates to\n * `true`, confirming the input is of the desired type. If the function returns\n * `Option.none`, the type guard evaluates to `false`.\n *\n * This utility is especially useful for validating types in union types,\n * filtering arrays, or ensuring safe handling of specific subtypes.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * type MyData = string | number\n *\n * const parseString = (data: MyData): Option.Option =>\n * typeof data === \"string\" ? Option.some(data) : Option.none()\n *\n * // ┌─── (a: MyData) => a is string\n * // ▼\n * const isString = Option.toRefinement(parseString)\n *\n * console.log(isString(\"a\"))\n * // Output: true\n *\n * console.log(isString(1))\n * // Output: false\n * ```\n *\n * @category Conversions\n * @since 2.0.0\n */\nexport const toRefinement = f => a => isSome(f(a));\n/**\n * Converts an `Iterable` into an `Option`, wrapping the first element if it\n * exists.\n *\n * **Details**\n *\n * This function takes an `Iterable` (e.g., an array, a generator, or any object\n * implementing the `Iterable` interface) and returns an `Option` based on its\n * content:\n *\n * - If the `Iterable` contains at least one element, the first element is\n * wrapped in a `Some` and returned.\n * - If the `Iterable` is empty, `None` is returned, representing the absence of\n * a value.\n *\n * This utility is useful for safely handling collections that might be empty,\n * ensuring you explicitly handle both cases where a value exists or doesn't.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.fromIterable([1, 2, 3]))\n * // Output: { _id: 'Option', _tag: 'Some', value: 1 }\n *\n * console.log(Option.fromIterable([]))\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @category Constructors\n * @since 2.0.0\n */\nexport const fromIterable = collection => {\n for (const a of collection) {\n return some(a);\n }\n return none();\n};\n/**\n * Converts an `Either` into an `Option` by discarding the error and extracting\n * the right value.\n *\n * **Details**\n *\n * This function takes an `Either` and returns an `Option` based on its value:\n *\n * - If the `Either` is a `Right`, its value is wrapped in a `Some` and\n * returned.\n * - If the `Either` is a `Left`, the error is discarded, and `None` is\n * returned.\n *\n * This is particularly useful when you only care about the success case\n * (`Right`) of an `Either` and want to handle the result using `Option`. By\n * using this function, you can convert `Either` into a simpler structure for\n * cases where error handling is not required.\n *\n * @example\n * ```ts\n * import { Either, Option } from \"effect\"\n *\n * console.log(Option.getRight(Either.right(\"ok\")))\n * // Output: { _id: 'Option', _tag: 'Some', value: 'ok' }\n *\n * console.log(Option.getRight(Either.left(\"err\")))\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @see {@link getLeft} for the opposite operation.\n *\n * @category Conversions\n * @since 2.0.0\n */\nexport const getRight = either.getRight;\n/**\n * Converts an `Either` into an `Option` by discarding the right value and\n * extracting the left value.\n *\n * **Details**\n *\n * This function transforms an `Either` into an `Option` as follows:\n *\n * - If the `Either` is a `Left`, its value is wrapped in a `Some` and returned.\n * - If the `Either` is a `Right`, the value is discarded, and `None` is\n * returned.\n *\n * This utility is useful when you only care about the error case (`Left`) of an\n * `Either` and want to handle it as an `Option`. By discarding the right value,\n * it simplifies error-focused workflows.\n *\n * @example\n * ```ts\n * import { Either, Option } from \"effect\"\n *\n * console.log(Option.getLeft(Either.right(\"ok\")))\n * // Output: { _id: 'Option', _tag: 'None' }\n *\n * console.log(Option.getLeft(Either.left(\"err\")))\n * // Output: { _id: 'Option', _tag: 'Some', value: 'err' }\n * ```\n *\n * @see {@link getRight} for the opposite operation.\n *\n * @category Conversions\n * @since 2.0.0\n */\nexport const getLeft = either.getLeft;\n/**\n * Returns the value contained in the `Option` if it is `Some`, otherwise\n * evaluates and returns the result of `onNone`.\n *\n * **Details**\n *\n * This function allows you to provide a fallback value or computation for when\n * an `Option` is `None`. If the `Option` contains a value (`Some`), that value\n * is returned. If it is empty (`None`), the `onNone` function is executed, and\n * its result is returned instead.\n *\n * This utility is helpful for safely handling `Option` values by ensuring you\n * always receive a meaningful result, whether or not the `Option` contains a\n * value. It is particularly useful for providing default values or alternative\n * logic when working with optional values.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.some(1).pipe(Option.getOrElse(() => 0)))\n * // Output: 1\n *\n * console.log(Option.none().pipe(Option.getOrElse(() => 0)))\n * // Output: 0\n * ```\n *\n * @see {@link getOrNull} for a version that returns `null` instead of executing a function.\n * @see {@link getOrUndefined} for a version that returns `undefined` instead of executing a function.\n *\n * @category Getters\n * @since 2.0.0\n */\nexport const getOrElse = /*#__PURE__*/dual(2, (self, onNone) => isNone(self) ? onNone() : self.value);\n/**\n * Returns the provided `Option` `that` if the current `Option` (`self`) is\n * `None`; otherwise, it returns `self`.\n *\n * **Details**\n *\n * This function provides a fallback mechanism for `Option` values. If the\n * current `Option` is `None` (i.e., it contains no value), the `that` function\n * is evaluated, and its resulting `Option` is returned. If the current `Option`\n * is `Some` (i.e., it contains a value), the original `Option` is returned\n * unchanged.\n *\n * This is particularly useful for chaining fallback values or computations,\n * allowing you to provide alternative `Option` values when the first one is\n * empty.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.none().pipe(Option.orElse(() => Option.none())))\n * // Output: { _id: 'Option', _tag: 'None' }\n *\n * console.log(Option.some(\"a\").pipe(Option.orElse(() => Option.none())))\n * // Output: { _id: 'Option', _tag: 'Some', value: 'a' }\n *\n * console.log(Option.none().pipe(Option.orElse(() => Option.some(\"b\"))))\n * // Output: { _id: 'Option', _tag: 'Some', value: 'b' }\n *\n * console.log(Option.some(\"a\").pipe(Option.orElse(() => Option.some(\"b\"))))\n * // Output: { _id: 'Option', _tag: 'Some', value: 'a' }\n * ```\n *\n * @category Error handling\n * @since 2.0.0\n */\nexport const orElse = /*#__PURE__*/dual(2, (self, that) => isNone(self) ? that() : self);\n/**\n * Returns the provided default value wrapped in `Some` if the current `Option`\n * (`self`) is `None`; otherwise, returns `self`.\n *\n * **Details**\n *\n * This function provides a way to supply a default value for cases where an\n * `Option` is `None`. If the current `Option` is empty (`None`), the `onNone`\n * function is executed to compute the default value, which is then wrapped in a\n * `Some`. If the current `Option` contains a value (`Some`), it is returned as\n * is.\n *\n * This is particularly useful for handling optional values where a fallback\n * default needs to be provided explicitly in case of absence.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.none().pipe(Option.orElseSome(() => \"b\")))\n * // Output: { _id: 'Option', _tag: 'Some', value: 'b' }\n *\n * console.log(Option.some(\"a\").pipe(Option.orElseSome(() => \"b\")))\n * // Output: { _id: 'Option', _tag: 'Some', value: 'a' }\n * ```\n *\n * @category Error handling\n * @since 2.0.0\n */\nexport const orElseSome = /*#__PURE__*/dual(2, (self, onNone) => isNone(self) ? some(onNone()) : self);\n/**\n * Similar to {@link orElse}, but returns an `Either` wrapped in an `Option` to\n * indicate the source of the value.\n *\n * **Details**\n *\n * This function allows you to provide a fallback `Option` in case the current\n * `Option` (`self`) is `None`. However, unlike `orElse`, it returns the value\n * wrapped in an `Either` object, providing additional information about where\n * the value came from:\n *\n * - If the value is from the fallback `Option` (`that`), it is wrapped in an\n * `Either.right`.\n * - If the value is from the original `Option` (`self`), it is wrapped in an\n * `Either.left`.\n *\n * This is especially useful when you need to differentiate between values\n * originating from the primary `Option` and those coming from the fallback,\n * while still maintaining the `Option`-style handling.\n *\n * @category Error handling\n * @since 2.0.0\n */\nexport const orElseEither = /*#__PURE__*/dual(2, (self, that) => isNone(self) ? map(that(), either.right) : map(self, either.left));\n/**\n * Returns the first `Some` value found in an `Iterable` collection of\n * `Option`s, or `None` if no `Some` is found.\n *\n * **Details**\n *\n * This function iterates over a collection of `Option` values and returns the\n * first `Some` it encounters. If the collection contains only `None` values,\n * the result will also be `None`. This utility is useful for efficiently\n * finding the first valid value in a sequence of potentially empty or invalid\n * options.\n *\n * The iteration stops as soon as a `Some` is found, making this function\n * efficient for large collections.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.firstSomeOf([\n * Option.none(),\n * Option.some(1),\n * Option.some(2)\n * ]))\n * // Output: { _id: 'Option', _tag: 'Some', value: 1 }\n * ```\n *\n * @category Error handling\n * @since 2.0.0\n */\nexport const firstSomeOf = collection => {\n let out = none();\n for (out of collection) {\n if (isSome(out)) {\n return out;\n }\n }\n return out;\n};\n/**\n * Converts a nullable value into an `Option`. Returns `None` if the value is\n * `null` or `undefined`, otherwise wraps the value in a `Some`.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.fromNullable(undefined))\n * // Output: { _id: 'Option', _tag: 'None' }\n *\n * console.log(Option.fromNullable(null))\n * // Output: { _id: 'Option', _tag: 'None' }\n *\n * console.log(Option.fromNullable(1))\n * // Output: { _id: 'Option', _tag: 'Some', value: 1 }\n * ```\n *\n * @category Conversions\n * @since 2.0.0\n */\nexport const fromNullable = nullableValue => nullableValue == null ? none() : some(nullableValue);\n/**\n * Lifts a function that returns `null` or `undefined` into the `Option`\n * context.\n *\n * **Details**\n *\n * This function takes a function `f` that might return `null` or `undefined`\n * and transforms it into a function that returns an `Option`. The resulting\n * function will return:\n * - `Some` if the original function produces a non-null, non-undefined value.\n * - `None` if the original function produces `null` or `undefined`.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * const parse = (s: string): number | undefined => {\n * const n = parseFloat(s)\n * return isNaN(n) ? undefined : n\n * }\n *\n * const parseOption = Option.liftNullable(parse)\n *\n * console.log(parseOption(\"1\"))\n * // Output: { _id: 'Option', _tag: 'Some', value: 1 }\n *\n * console.log(parseOption(\"not a number\"))\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @category Conversions\n * @since 2.0.0\n */\nexport const liftNullable = f => (...a) => fromNullable(f(...a));\n/**\n * Returns the value contained in the `Option` if it is `Some`; otherwise,\n * returns `null`.\n *\n * **Details**\n *\n * This function provides a way to extract the value of an `Option` while\n * falling back to `null` if the `Option` is `None`.\n *\n * It is particularly useful in scenarios where `null` is an acceptable\n * placeholder for the absence of a value, such as when interacting with APIs or\n * systems that use `null` as a default for missing values.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.getOrNull(Option.some(1)))\n * // Output: 1\n *\n * console.log(Option.getOrNull(Option.none()))\n * // Output: null\n * ```\n *\n * @category Getters\n * @since 2.0.0\n */\nexport const getOrNull = /*#__PURE__*/getOrElse(constNull);\n/**\n * Returns the value contained in the `Option` if it is `Some`; otherwise,\n * returns `undefined`.\n *\n * **Details**\n *\n * This function provides a way to extract the value of an `Option` while\n * falling back to `undefined` if the `Option` is `None`.\n *\n * It is particularly useful in scenarios where `undefined` is an acceptable\n * placeholder for the absence of a value, such as when interacting with APIs or\n * systems that use `undefined` as a default for missing values.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.getOrUndefined(Option.some(1)))\n * // Output: 1\n *\n * console.log(Option.getOrUndefined(Option.none()))\n * // Output: undefined\n * ```\n *\n * @category Getters\n * @since 2.0.0\n */\nexport const getOrUndefined = /*#__PURE__*/getOrElse(constUndefined);\n/**\n * Lifts a function that throws exceptions into a function that returns an\n * `Option`.\n *\n * **Details**\n *\n * This utility function takes a function `f` that might throw an exception and\n * transforms it into a safer function that returns an `Option`. If the original\n * function executes successfully, the result is wrapped in a `Some`. If an\n * exception is thrown, the result is `None`, allowing the developer to handle\n * errors in a functional, type-safe way.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * const parse = Option.liftThrowable(JSON.parse)\n *\n * console.log(parse(\"1\"))\n * // Output: { _id: 'Option', _tag: 'Some', value: 1 }\n *\n * console.log(parse(\"\"))\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @category Conversions\n * @since 2.0.0\n */\nexport const liftThrowable = f => (...a) => {\n try {\n return some(f(...a));\n } catch {\n return none();\n }\n};\n/**\n * Extracts the value of an `Option` or throws an error if the `Option` is\n * `None`, using a custom error factory.\n *\n * **Details**\n *\n * This function allows you to extract the value of an `Option` when it is\n * `Some`. If the `Option` is `None`, it throws an error generated by the\n * provided `onNone` function. This utility is particularly useful when you need\n * a fail-fast behavior for empty `Option` values and want to provide a custom\n * error message or object.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Option } from \"effect\"\n *\n * assert.deepStrictEqual(\n * Option.getOrThrowWith(Option.some(1), () => new Error('Unexpected None')),\n * 1\n * )\n * assert.throws(() => Option.getOrThrowWith(Option.none(), () => new Error('Unexpected None')))\n * ```\n *\n * @see {@link getOrThrow} for a version that throws a default error.\n *\n * @category Conversions\n * @since 2.0.0\n */\nexport const getOrThrowWith = /*#__PURE__*/dual(2, (self, onNone) => {\n if (isSome(self)) {\n return self.value;\n }\n throw onNone();\n});\n/**\n * Extracts the value of an `Option` or throws a default error if the `Option`\n * is `None`.\n *\n * **Details**\n *\n * This function extracts the value from an `Option` if it is `Some`. If the\n * `Option` is `None`, it throws a default error. It is useful for fail-fast\n * scenarios where the absence of a value is treated as an exceptional case and\n * a default error is sufficient.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Option } from \"effect\"\n *\n * assert.deepStrictEqual(Option.getOrThrow(Option.some(1)), 1)\n * assert.throws(() => Option.getOrThrow(Option.none()))\n * ```\n *\n * @see {@link getOrThrowWith} for a version that allows you to provide a custom error.\n *\n * @category Conversions\n * @since 2.0.0\n */\nexport const getOrThrow = /*#__PURE__*/getOrThrowWith(() => new Error(\"getOrThrow called on a None\"));\n/**\n * Transforms the value inside a `Some` to a new value using the provided\n * function, while leaving `None` unchanged.\n *\n * **Details**\n *\n * This function applies a mapping function `f` to the value inside an `Option`\n * if it is a `Some`. If the `Option` is `None`, it remains unchanged. The\n * result is a new `Option` with the transformed value (if it was a `Some`) or\n * still `None`.\n *\n * This utility is particularly useful for chaining transformations in a\n * functional way without needing to manually handle `None` cases.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * // Mapping over a `Some`\n * const someValue = Option.some(2)\n *\n * console.log(Option.map(someValue, (n) => n * 2))\n * // Output: { _id: 'Option', _tag: 'Some', value: 4 }\n *\n * // Mapping over a `None`\n * const noneValue = Option.none()\n *\n * console.log(Option.map(noneValue, (n) => n * 2))\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @category Mapping\n * @since 2.0.0\n */\nexport const map = /*#__PURE__*/dual(2, (self, f) => isNone(self) ? none() : some(f(self.value)));\n/**\n * Replaces the value inside a `Some` with the specified constant value, leaving\n * `None` unchanged.\n *\n * **Details**\n *\n * This function transforms an `Option` by replacing the value inside a `Some`\n * with the given constant value `b`. If the `Option` is `None`, it remains\n * unchanged.\n *\n * This is useful when you want to preserve the presence of a value (`Some`) but\n * replace its content with a fixed value.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * // Replacing the value of a `Some`\n * const someValue = Option.some(42)\n *\n * console.log(Option.as(someValue, \"new value\"))\n * // Output: { _id: 'Option', _tag: 'Some', value: 'new value' }\n *\n * // Replacing a `None` (no effect)\n * const noneValue = Option.none()\n *\n * console.log(Option.as(noneValue, \"new value\"))\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @category Mapping\n * @since 2.0.0\n */\nexport const as = /*#__PURE__*/dual(2, (self, b) => map(self, () => b));\n/**\n * Replaces the value inside a `Some` with the constant value `void`, leaving\n * `None` unchanged.\n *\n * **Details**\n *\n * This function transforms an `Option` by replacing the value inside a `Some`\n * with `void`. If the `Option` is `None`, it remains unchanged.\n *\n * This is particularly useful in scenarios where the presence or absence of a\n * value is significant, but the actual content of the value is irrelevant.\n *\n * @category Mapping\n * @since 2.0.0\n */\nexport const asVoid = /*#__PURE__*/as(undefined);\nconst void_ = /*#__PURE__*/some(undefined);\nexport {\n/**\n * @since 2.0.0\n */\nvoid_ as void };\n/**\n * Applies a function to the value of a `Some` and flattens the resulting\n * `Option`. If the input is `None`, it remains `None`.\n *\n * **Details**\n *\n * This function allows you to chain computations that return `Option` values.\n * If the input `Option` is `Some`, the provided function `f` is applied to the\n * contained value, and the resulting `Option` is returned. If the input is\n * `None`, the function is not applied, and the result remains `None`.\n *\n * This utility is particularly useful for sequencing operations that may fail\n * or produce optional results, enabling clean and concise workflows for\n * handling such cases.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * interface Address {\n * readonly city: string\n * readonly street: Option.Option\n * }\n *\n * interface User {\n * readonly id: number\n * readonly username: string\n * readonly email: Option.Option\n * readonly address: Option.Option
\n * }\n *\n * const user: User = {\n * id: 1,\n * username: \"john_doe\",\n * email: Option.some(\"john.doe@example.com\"),\n * address: Option.some({\n * city: \"New York\",\n * street: Option.some(\"123 Main St\")\n * })\n * }\n *\n * // Use flatMap to extract the street value\n * const street = user.address.pipe(\n * Option.flatMap((address) => address.street)\n * )\n *\n * console.log(street)\n * // Output: { _id: 'Option', _tag: 'Some', value: '123 Main St' }\n * ```\n *\n * @category Sequencing\n * @since 2.0.0\n */\nexport const flatMap = /*#__PURE__*/dual(2, (self, f) => isNone(self) ? none() : f(self.value));\n/**\n * Chains two `Option`s together. The second `Option` can either be a static\n * value or depend on the result of the first `Option`.\n *\n * **Details**\n *\n * This function enables sequencing of two `Option` computations. If the first\n * `Option` is `Some`, the second `Option` is evaluated. The second `Option` can\n * either:\n *\n * - Be a static `Option` value.\n * - Be a function that produces an `Option`, optionally based on the value of\n * the first `Option`.\n *\n * If the first `Option` is `None`, the function skips the evaluation of the\n * second `Option` and directly returns `None`.\n *\n * @category Sequencing\n * @since 2.0.0\n */\nexport const andThen = /*#__PURE__*/dual(2, (self, f) => flatMap(self, a => {\n const b = isFunction(f) ? f(a) : f;\n return isOption(b) ? b : some(b);\n}));\n/**\n * Combines `flatMap` and `fromNullable`, transforming the value inside a `Some`\n * using a function that may return `null` or `undefined`.\n *\n * **Details**\n *\n * This function applies a transformation function `f` to the value inside a\n * `Some`. The function `f` may return a value, `null`, or `undefined`. If `f`\n * returns a value, it is wrapped in a `Some`. If `f` returns `null` or\n * `undefined`, the result is `None`. If the input `Option` is `None`, the\n * function is not applied, and `None` is returned.\n *\n * This utility is particularly useful when working with deeply nested optional\n * values or chaining computations that may result in `null` or `undefined` at\n * some point.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * interface Employee {\n * company?: {\n * address?: {\n * street?: {\n * name?: string\n * }\n * }\n * }\n * }\n *\n * const employee1: Employee = { company: { address: { street: { name: \"high street\" } } } }\n *\n * // Extracting a deeply nested property\n * console.log(\n * Option.some(employee1)\n * .pipe(Option.flatMapNullable((employee) => employee.company?.address?.street?.name))\n * )\n * // Output: { _id: 'Option', _tag: 'Some', value: 'high street' }\n *\n * const employee2: Employee = { company: { address: { street: {} } } }\n *\n * // Property does not exist\n * console.log(\n * Option.some(employee2)\n * .pipe(Option.flatMapNullable((employee) => employee.company?.address?.street?.name))\n * )\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @category Sequencing\n * @since 2.0.0\n */\nexport const flatMapNullable = /*#__PURE__*/dual(2, (self, f) => isNone(self) ? none() : fromNullable(f(self.value)));\n/**\n * Flattens an `Option` of `Option` into a single `Option`.\n *\n * **Details**\n *\n * This function takes an `Option` that wraps another `Option` and flattens it\n * into a single `Option`. If the outer `Option` is `Some`, the function\n * extracts the inner `Option`. If the outer `Option` is `None`, the result\n * remains `None`.\n *\n * This is useful for simplifying nested `Option` structures that may arise\n * during functional operations.\n *\n * @category Sequencing\n * @since 2.0.0\n */\nexport const flatten = /*#__PURE__*/flatMap(identity);\n/**\n * Combines two `Option`s, keeping the value from the second `Option` if both\n * are `Some`.\n *\n * **Details**\n *\n * This function takes two `Option`s and returns the second one if the first is\n * `Some`. If the first `Option` is `None`, the result will also be `None`,\n * regardless of the second `Option`. It effectively \"zips\" the two `Option`s\n * while discarding the value from the first `Option`.\n *\n * This is particularly useful when sequencing computations where the result of\n * the first computation is not needed, and you only care about the result of\n * the second computation.\n *\n * @category Zipping\n * @since 2.0.0\n */\nexport const zipRight = /*#__PURE__*/dual(2, (self, that) => flatMap(self, () => that));\n/**\n * Combines two `Option`s, keeping the value from the first `Option` if both are\n * `Some`.\n *\n * **Details**\n *\n * This function takes two `Option`s and returns the first one if it is `Some`.\n * If either the first `Option` or the second `Option` is `None`, the result\n * will be `None`. This operation \"zips\" the two `Option`s while discarding the\n * value from the second `Option`.\n *\n * This is useful when sequencing computations where the second `Option`\n * represents a dependency or condition that must hold, but its value is\n * irrelevant.\n *\n * @category Zipping\n * @since 2.0.0\n */\nexport const zipLeft = /*#__PURE__*/dual(2, (self, that) => tap(self, () => that));\n/**\n * Composes two functions that return `Option` values, creating a new function\n * that chains them together.\n *\n * **Details**\n *\n * This function allows you to compose two computations, each represented by a\n * function that returns an `Option`. The result of the first function is passed\n * to the second function if it is `Some`. If the first function returns `None`,\n * the composed function short-circuits and returns `None` without invoking the\n * second function.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * const parse = (s: string): Option.Option => isNaN(Number(s)) ? Option.none() : Option.some(Number(s))\n *\n * const double = (n: number): Option.Option => n > 0 ? Option.some(n * 2) : Option.none()\n *\n * const parseAndDouble = Option.composeK(parse, double)\n *\n * console.log(parseAndDouble(\"42\"))\n * // Output: { _id: 'Option', _tag: 'Some', value: 84 }\n *\n * console.log(parseAndDouble(\"not a number\"))\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @category Sequencing\n * @since 2.0.0\n */\nexport const composeK = /*#__PURE__*/dual(2, (afb, bfc) => a => flatMap(afb(a), bfc));\n/**\n * Applies the provided function `f` to the value of the `Option` if it is\n * `Some` and returns the original `Option`, unless `f` returns `None`, in which\n * case it returns `None`.\n *\n * **Details**\n *\n * This function allows you to perform additional computations on the value of\n * an `Option` without modifying its original value. If the `Option` is `Some`,\n * the provided function `f` is executed with the value, and its result\n * determines whether the original `Option` is returned (`Some`) or the result\n * is `None` if `f` returns `None`. If the input `Option` is `None`, the\n * function is not executed, and `None` is returned.\n *\n * This is particularly useful for applying side conditions or performing\n * validation checks while retaining the original `Option`'s value.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * const getInteger = (n: number) => Number.isInteger(n) ? Option.some(n) : Option.none()\n *\n * console.log(Option.tap(Option.none(), getInteger))\n * // Output: { _id: 'Option', _tag: 'None' }\n *\n * console.log(Option.tap(Option.some(1), getInteger))\n * // Output: { _id: 'Option', _tag: 'Some', value: 1 }\n *\n * console.log(Option.tap(Option.some(1.14), getInteger))\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @category Sequencing\n * @since 2.0.0\n */\nexport const tap = /*#__PURE__*/dual(2, (self, f) => flatMap(self, a => map(f(a), () => a)));\n/**\n * Combines two `Option` values into a single `Option` containing a tuple of\n * their values if both are `Some`.\n *\n * **Details**\n *\n * This function takes two `Option`s and combines their values into a tuple `[A,\n * B]` if both are `Some`. If either of the `Option`s is `None`, the result is\n * `None`. This is particularly useful for combining multiple `Option` values\n * into a single one, ensuring both contain valid values.\n *\n * @category Combining\n * @since 2.0.0\n */\nexport const product = (self, that) => isSome(self) && isSome(that) ? some([self.value, that.value]) : none();\n/**\n * Combines an `Option` with a collection of `Option`s into a single `Option`\n * containing a tuple of their values if all are `Some`.\n *\n * **Details**\n *\n * This function takes a primary `Option` and a collection of `Option`s and\n * combines their values into a tuple `[A, ...Array]` if all are `Some`. If\n * the primary `Option` or any `Option` in the collection is `None`, the result\n * is `None`.\n *\n * @category Combining\n * @since 2.0.0\n */\nexport const productMany = (self, collection) => {\n if (isNone(self)) {\n return none();\n }\n const out = [self.value];\n for (const o of collection) {\n if (isNone(o)) {\n return none();\n }\n out.push(o.value);\n }\n return some(out);\n};\n/**\n * Combines a structure of `Option`s into a single `Option` containing the\n * values with the same structure.\n *\n * **Details**\n *\n * This function takes a structure of `Option`s (a tuple, struct, or iterable)\n * and produces a single `Option` that contains the values from the input\n * structure if all `Option`s are `Some`. If any `Option` in the input is\n * `None`, the result is `None`. The structure of the input is preserved in the\n * output.\n *\n * - If the input is a tuple (e.g., an array), the result will be an `Option`\n * containing a tuple with the same length.\n * - If the input is a struct (e.g., an object), the result will be an `Option`\n * containing a struct with the same keys.\n * - If the input is an iterable, the result will be an `Option` containing an\n * array.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * const maybeName: Option.Option = Option.some(\"John\")\n * const maybeAge: Option.Option = Option.some(25)\n *\n * // ┌─── Option<[string, number]>\n * // ▼\n * const tuple = Option.all([maybeName, maybeAge])\n * console.log(tuple)\n * // Output:\n * // { _id: 'Option', _tag: 'Some', value: [ 'John', 25 ] }\n *\n * // ┌─── Option<{ name: string; age: number; }>\n * // ▼\n * const struct = Option.all({ name: maybeName, age: maybeAge })\n * console.log(struct)\n * // Output:\n * // { _id: 'Option', _tag: 'Some', value: { name: 'John', age: 25 } }\n * ```\n *\n * @category Combining\n * @since 2.0.0\n */\n// @ts-expect-error\nexport const all = input => {\n if (Symbol.iterator in input) {\n const out = [];\n for (const o of input) {\n if (isNone(o)) {\n return none();\n }\n out.push(o.value);\n }\n return some(out);\n }\n const out = {};\n for (const key of Object.keys(input)) {\n const o = input[key];\n if (isNone(o)) {\n return none();\n }\n out[key] = o.value;\n }\n return some(out);\n};\n/**\n * Combines two `Option` values into a new `Option` by applying a provided\n * function to their values.\n *\n * **Details**\n *\n * This function takes two `Option` values (`self` and `that`) and a combining\n * function `f`. If both `Option` values are `Some`, the function `f` is applied\n * to their values, and the result is wrapped in a new `Some`. If either\n * `Option` is `None`, the result is `None`.\n *\n * This utility is useful for combining two optional computations into a single\n * result while maintaining type safety and avoiding explicit checks for `None`.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * const maybeName: Option.Option = Option.some(\"John\")\n * const maybeAge: Option.Option = Option.some(25)\n *\n * // Combine the name and age into a person object\n * const person = Option.zipWith(maybeName, maybeAge, (name, age) => ({\n * name: name.toUpperCase(),\n * age\n * }))\n *\n * console.log(person)\n * // Output:\n * // { _id: 'Option', _tag: 'Some', value: { name: 'JOHN', age: 25 } }\n * ```\n *\n * @category Zipping\n * @since 2.0.0\n */\nexport const zipWith = /*#__PURE__*/dual(3, (self, that, f) => map(product(self, that), ([a, b]) => f(a, b)));\n/**\n * Applies a function inside a `Some` to a value inside another `Some`,\n * combining them into a new `Option`.\n *\n * **Details**\n *\n * This function allows you to apply a function wrapped in an `Option` (`self`)\n * to a value wrapped in another `Option` (`that`). If both `Option`s are\n * `Some`, the function is applied to the value, and the result is wrapped in a\n * new `Some`. If either `Option` is `None`, the result is `None`.\n *\n * @category Combining\n * @since 2.0.0\n */\nexport const ap = /*#__PURE__*/dual(2, (self, that) => zipWith(self, that, (f, a) => f(a)));\n/**\n * Reduces an `Iterable` of `Option` to a single value of type `B`, ignoring\n * elements that are `None`.\n *\n * **Details**\n *\n * This function takes an initial value of type `B` and a reducing function `f`\n * that combines the accumulator with values of type `A`. It processes an\n * iterable of `Option`, applying `f` only to the `Some` values while\n * ignoring the `None` values. The result is a single value of type `B`.\n *\n * This utility is particularly useful for aggregating values from an iterable\n * of `Option`s while skipping the absent (`None`) values.\n *\n * @example\n * ```ts\n * import { Option, pipe } from \"effect\"\n *\n * const iterable = [Option.some(1), Option.none(), Option.some(2), Option.none()]\n *\n * console.log(pipe(iterable, Option.reduceCompact(0, (b, a) => b + a)))\n * // Output: 3\n * ```\n *\n * @category Reducing\n * @since 2.0.0\n */\nexport const reduceCompact = /*#__PURE__*/dual(3, (self, b, f) => {\n let out = b;\n for (const oa of self) {\n if (isSome(oa)) {\n out = f(out, oa.value);\n }\n }\n return out;\n});\n/**\n * Converts an `Option` into an `Array`.\n * If the input is `None`, an empty array is returned.\n * If the input is `Some`, its value is wrapped in a single-element array.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.toArray(Option.some(1)))\n * // Output: [1]\n *\n * console.log(Option.toArray(Option.none()))\n * // Output: []\n * ```\n *\n * @category Conversions\n * @since 2.0.0\n */\nexport const toArray = self => isNone(self) ? [] : [self.value];\n/**\n * Splits an `Option` into two `Option`s based on the result of a mapping\n * function that produces an `Either`.\n *\n * **Details**\n *\n * This function takes an `Option` and a mapping function `f` that converts its\n * value into an `Either`. It returns a tuple of two `Option`s:\n *\n * - The first `Option` (`left`) contains the value from the `Left` side of the\n * `Either` if it exists, otherwise `None`.\n * - The second `Option` (`right`) contains the value from the `Right` side of\n * the `Either` if it exists, otherwise `None`.\n *\n * If the input `Option` is `None`, both returned `Option`s are `None`.\n *\n * This utility is useful for filtering and categorizing the contents of an\n * `Option` based on a bifurcating computation.\n *\n * @category Filtering\n * @since 2.0.0\n */\nexport const partitionMap = /*#__PURE__*/dual(2, (self, f) => {\n if (isNone(self)) {\n return [none(), none()];\n }\n const e = f(self.value);\n return either.isLeft(e) ? [some(e.left), none()] : [none(), some(e.right)];\n});\n// TODO(4.0): remove?\n/**\n * Alias of {@link flatMap}.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * // Transform and filter numbers\n * const transformEven = (n: Option.Option): Option.Option =>\n * Option.filterMap(n, (n) => (n % 2 === 0 ? Option.some(`Even: ${n}`) : Option.none()))\n *\n * console.log(transformEven(Option.none()))\n * // Output: { _id: 'Option', _tag: 'None' }\n *\n * console.log(transformEven(Option.some(1)))\n * // Output: { _id: 'Option', _tag: 'None' }\n *\n * console.log(transformEven(Option.some(2)))\n * // Output: { _id: 'Option', _tag: 'Some', value: 'Even: 2' }\n * ```\n *\n * @category Filtering\n * @since 2.0.0\n */\nexport const filterMap = flatMap;\n/**\n * Filters an `Option` using a predicate. If the predicate is not satisfied or the `Option` is `None` returns `None`.\n *\n * If you need to change the type of the `Option` in addition to filtering, see `filterMap`.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * const removeEmptyString = (input: Option.Option) =>\n * Option.filter(input, (value) => value !== \"\")\n *\n * console.log(removeEmptyString(Option.none()))\n * // Output: { _id: 'Option', _tag: 'None' }\n *\n * console.log(removeEmptyString(Option.some(\"\")))\n * // Output: { _id: 'Option', _tag: 'None' }\n *\n * console.log(removeEmptyString(Option.some(\"a\")))\n * // Output: { _id: 'Option', _tag: 'Some', value: 'a' }\n * ```\n *\n * @category Filtering\n * @since 2.0.0\n */\nexport const filter = /*#__PURE__*/dual(2, (self, predicate) => filterMap(self, b => predicate(b) ? option.some(b) : option.none));\n/**\n * Creates an `Equivalence` instance for comparing `Option` values, using a\n * provided `Equivalence` for the inner type.\n *\n * **Details**\n *\n * This function takes an `Equivalence` instance for a specific type `A` and\n * produces an `Equivalence` instance for `Option`. The resulting\n * `Equivalence` determines whether two `Option` values are equivalent:\n *\n * - Two `None`s are considered equivalent.\n * - A `Some` and a `None` are not equivalent.\n * - Two `Some` values are equivalent if their inner values are equivalent\n * according to the provided `Equivalence`.\n *\n * **Example** (Comparing Optional Numbers for Equivalence)\n *\n * ```ts\n * import { Number, Option } from \"effect\"\n *\n * const isEquivalent = Option.getEquivalence(Number.Equivalence)\n *\n * console.log(isEquivalent(Option.none(), Option.none()))\n * // Output: true\n *\n * console.log(isEquivalent(Option.none(), Option.some(1)))\n * // Output: false\n *\n * console.log(isEquivalent(Option.some(1), Option.none()))\n * // Output: false\n *\n * console.log(isEquivalent(Option.some(1), Option.some(2)))\n * // Output: false\n *\n * console.log(isEquivalent(Option.some(1), Option.some(1)))\n * // Output: true\n * ```\n *\n * @category Equivalence\n * @since 2.0.0\n */\nexport const getEquivalence = isEquivalent => Equivalence.make((x, y) => isNone(x) ? isNone(y) : isNone(y) ? false : isEquivalent(x.value, y.value));\n/**\n * Creates an `Order` instance for comparing `Option` values, using a provided\n * `Order` for the inner type.\n *\n * **Details**\n *\n * This function produces an `Order` instance for `Option`, allowing `Option`\n * values to be compared:\n *\n * - `None` is always considered less than any `Some` value.\n * - If both are `Some`, their inner values are compared using the provided\n * `Order` instance.\n *\n * @example\n * ```ts\n * import { Number, Option } from \"effect\"\n *\n * const order = Option.getOrder(Number.Order)\n *\n * console.log(order(Option.none(), Option.none()))\n * // Output: 0\n *\n * console.log(order(Option.none(), Option.some(1)))\n * // Output: -1\n *\n * console.log(order(Option.some(1), Option.none()))\n * // Output: 1\n *\n * console.log(order(Option.some(1), Option.some(2)))\n * // Output: -1\n *\n * console.log(order(Option.some(1), Option.some(1)))\n * // Output: 0\n * ```\n *\n * @category Sorting\n * @since 2.0.0\n */\nexport const getOrder = O => order.make((self, that) => isSome(self) ? isSome(that) ? O(self.value, that.value) : 1 : -1);\n/**\n * Lifts a binary function to work with `Option` values, allowing the function\n * to operate on two `Option`s.\n *\n * **Details**\n *\n * This function takes a binary function `f` and returns a new function that\n * applies `f` to the values of two `Option`s (`self` and `that`). If both\n * `Option`s are `Some`, the binary function `f` is applied to their values, and\n * the result is wrapped in a new `Some`. If either `Option` is `None`, the\n * result is `None`.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * // A binary function to add two numbers\n * const add = (a: number, b: number): number => a + b\n *\n * // Lift the `add` function to work with `Option` values\n * const addOptions = Option.lift2(add)\n *\n * // Both `Option`s are `Some`\n * console.log(addOptions(Option.some(2), Option.some(3)))\n * // Output: { _id: 'Option', _tag: 'Some', value: 5 }\n *\n * // One `Option` is `None`\n * console.log(addOptions(Option.some(2), Option.none()))\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @category Lifting\n * @since 2.0.0\n */\nexport const lift2 = f => dual(2, (self, that) => zipWith(self, that, f));\n/**\n * Lifts a `Predicate` or `Refinement` into the `Option` context, returning a\n * `Some` of the input value if the predicate is satisfied, or `None` otherwise.\n *\n * **Details**\n *\n * This function transforms a `Predicate` (or a more specific `Refinement`) into\n * a function that produces an `Option`. If the predicate evaluates to `true`,\n * the input value is wrapped in a `Some`. If the predicate evaluates to\n * `false`, the result is `None`.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * // Check if a number is positive\n * const isPositive = (n: number) => n > 0\n *\n * // ┌─── (b: number) => Option\n * // ▼\n * const parsePositive = Option.liftPredicate(isPositive)\n *\n * console.log(parsePositive(1))\n * // Output: { _id: 'Option', _tag: 'Some', value: 1 }\n *\n * console.log(parsePositive(-1))\n * // OUtput: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @category Lifting\n * @since 2.0.0\n */\nexport const liftPredicate = /*#__PURE__*/dual(2, (b, predicate) => predicate(b) ? some(b) : none());\n/**\n * Returns a function that checks if an `Option` contains a specified value,\n * using a provided equivalence function.\n *\n * **Details**\n *\n * This function allows you to check whether an `Option` contains a specific\n * value. It uses an equivalence function `isEquivalent` to compare the value\n * inside the `Option` to the provided value. If the `Option` is `Some` and the\n * equivalence function returns `true`, the result is `true`. If the `Option` is\n * `None` or the values are not equivalent, the result is `false`.\n *\n * @example\n * ```ts\n * import { Number, Option } from \"effect\"\n *\n * const contains = Option.containsWith(Number.Equivalence)\n *\n * console.log(Option.some(2).pipe(contains(2)))\n * // Output: true\n *\n * console.log(Option.some(1).pipe(contains(2)))\n * // Output: false\n *\n * console.log(Option.none().pipe(contains(2)))\n * // Output: false\n * ```\n *\n * @see {@link contains} for a version that uses the default `Equivalence`.\n *\n * @category Elements\n * @since 2.0.0\n */\nexport const containsWith = isEquivalent => dual(2, (self, a) => isNone(self) ? false : isEquivalent(self.value, a));\nconst _equivalence = /*#__PURE__*/Equal.equivalence();\n/**\n * Returns a function that checks if an `Option` contains a specified value\n * using the default `Equivalence`.\n *\n * **Details**\n *\n * This function allows you to check whether an `Option` contains a specific\n * value. It uses the default `Equivalence` for equality comparison. If the\n * `Option` is `Some` and its value is equivalent to the provided value, the\n * result is `true`. If the `Option` is `None` or the values are not equivalent,\n * the result is `false`.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.some(2).pipe(Option.contains(2)))\n * // Output: true\n *\n * console.log(Option.some(1).pipe(Option.contains(2)))\n * // Output: false\n *\n * console.log(Option.none().pipe(Option.contains(2)))\n * // Output: false\n * ```\n *\n * @see {@link containsWith} for a version that allows you to specify a custom equivalence function.\n *\n * @category Elements\n * @since 2.0.0\n */\nexport const contains = /*#__PURE__*/containsWith(_equivalence);\n/**\n * Checks if a value in an `Option` satisfies a given predicate or refinement.\n *\n * **Details**\n *\n * This function allows you to check if a value inside a `Some` meets a\n * specified condition. If the `Option` is `None`, the result is `false`. If the\n * `Option` is `Some`, the provided predicate or refinement is applied to the\n * value:\n *\n * - If the condition is met, the result is `true`.\n * - If the condition is not met, the result is `false`.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * const isEven = (n: number) => n % 2 === 0\n *\n * console.log(Option.some(2).pipe(Option.exists(isEven)))\n * // Output: true\n *\n * console.log(Option.some(1).pipe(Option.exists(isEven)))\n * // Output: false\n *\n * console.log(Option.none().pipe(Option.exists(isEven)))\n * // Output: false\n * ```\n *\n * @category Elements\n * @since 2.0.0\n */\nexport const exists = /*#__PURE__*/dual(2, (self, refinement) => isNone(self) ? false : refinement(self.value));\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * The \"do simulation\" in Effect allows you to write code in a more declarative style, similar to the \"do notation\" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Option` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n * 5. Regular `Option` functions like `map` and `filter` can still be used within the do simulation. These functions will receive the accumulated variables as arguments within the scope\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Option, pipe } from \"effect\"\n *\n * const result = pipe(\n * Option.Do,\n * Option.bind(\"x\", () => Option.some(2)),\n * Option.bind(\"y\", () => Option.some(3)),\n * Option.let(\"sum\", ({ x, y }) => x + y),\n * Option.filter(({ x, y }) => x * y > 5)\n * )\n * assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))\n * ```\n *\n * @see {@link Do}\n * @see {@link bind}\n * @see {@link let_ let}\n *\n * @category Do notation\n * @since 2.0.0\n */\nexport const bindTo = /*#__PURE__*/doNotation.bindTo(map);\nconst let_ = /*#__PURE__*/doNotation.let_(map);\nexport {\n/**\n * The \"do simulation\" in Effect allows you to write code in a more declarative style, similar to the \"do notation\" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Option` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n * 5. Regular `Option` functions like `map` and `filter` can still be used within the do simulation. These functions will receive the accumulated variables as arguments within the scope\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Option, pipe } from \"effect\"\n *\n * const result = pipe(\n * Option.Do,\n * Option.bind(\"x\", () => Option.some(2)),\n * Option.bind(\"y\", () => Option.some(3)),\n * Option.let(\"sum\", ({ x, y }) => x + y),\n * Option.filter(({ x, y }) => x * y > 5)\n * )\n * assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))\n * ```\n *\n * @see {@link Do}\n * @see {@link bind}\n * @see {@link bindTo}\n *\n * @category Do notation\n * @since 2.0.0\n */\nlet_ as let };\n/**\n * The \"do simulation\" in Effect allows you to write code in a more declarative style, similar to the \"do notation\" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Option` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n * 5. Regular `Option` functions like `map` and `filter` can still be used within the do simulation. These functions will receive the accumulated variables as arguments within the scope\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Option, pipe } from \"effect\"\n *\n * const result = pipe(\n * Option.Do,\n * Option.bind(\"x\", () => Option.some(2)),\n * Option.bind(\"y\", () => Option.some(3)),\n * Option.let(\"sum\", ({ x, y }) => x + y),\n * Option.filter(({ x, y }) => x * y > 5)\n * )\n * assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))\n * ```\n *\n * @see {@link Do}\n * @see {@link bindTo}\n * @see {@link let_ let}\n *\n * @category Do notation\n * @since 2.0.0\n */\nexport const bind = /*#__PURE__*/doNotation.bind(map, flatMap);\n/**\n * The \"do simulation\" in Effect allows you to write code in a more declarative style, similar to the \"do notation\" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Option` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n * 5. Regular `Option` functions like `map` and `filter` can still be used within the do simulation. These functions will receive the accumulated variables as arguments within the scope\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Option, pipe } from \"effect\"\n *\n * const result = pipe(\n * Option.Do,\n * Option.bind(\"x\", () => Option.some(2)),\n * Option.bind(\"y\", () => Option.some(3)),\n * Option.let(\"sum\", ({ x, y }) => x + y),\n * Option.filter(({ x, y }) => x * y > 5)\n * )\n * assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))\n * ```\n *\n * @see {@link bindTo}\n * @see {@link bind}\n * @see {@link let_ let}\n *\n * @category Do notation\n * @since 2.0.0\n */\nexport const Do = /*#__PURE__*/some({});\nconst adapter = /*#__PURE__*/Gen.adapter();\n/**\n * Similar to `Effect.gen`, `Option.gen` provides a more readable,\n * generator-based syntax for working with `Option` values, making code that\n * involves `Option` easier to write and understand. This approach is similar to\n * using `async/await` but tailored for `Option`.\n *\n * **Example** (Using `Option.gen` to Create a Combined Value)\n *\n * ```ts\n * import { Option } from \"effect\"\n *\n * const maybeName: Option.Option = Option.some(\"John\")\n * const maybeAge: Option.Option = Option.some(25)\n *\n * const person = Option.gen(function* () {\n * const name = (yield* maybeName).toUpperCase()\n * const age = yield* maybeAge\n * return { name, age }\n * })\n *\n * console.log(person)\n * // Output:\n * // { _id: 'Option', _tag: 'Some', value: { name: 'JOHN', age: 25 } }\n * ```\n *\n * @category Generators\n * @since 2.0.0\n */\nexport const gen = (...args) => {\n const f = args.length === 1 ? args[0] : args[1].bind(args[0]);\n const iterator = f(adapter);\n let state = iterator.next();\n while (!state.done) {\n const current = Gen.isGenKind(state.value) ? state.value.value : Gen.yieldWrapGet(state.value);\n if (isNone(current)) {\n return current;\n }\n state = iterator.next(current.value);\n }\n return some(state.value);\n};\n/**\n * Merges two optional values, applying a function if both exist.\n * Unlike {@link zipWith}, this function returns `None` only if both inputs are `None`.\n *\n * @internal\n */\nexport const mergeWith = f => (o1, o2) => {\n if (isNone(o1)) {\n return o2;\n } else if (isNone(o2)) {\n return o1;\n }\n return some(f(o1.value, o2.value));\n};\n//# sourceMappingURL=Option.js.map","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = [\n\t'Float16Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\n];\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","/**\n * Destroys a [`Filter`](https://viem.sh/docs/glossary/types#filter).\n *\n * - Docs: https://viem.sh/docs/actions/public/uninstallFilter\n * - JSON-RPC Methods: [`eth_uninstallFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_uninstallFilter)\n *\n * Destroys a Filter that was created from one of the following Actions:\n * - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter)\n * - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter)\n * - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter)\n *\n * @param client - Client to use\n * @param parameters - {@link UninstallFilterParameters}\n * @returns A boolean indicating if the Filter was successfully uninstalled. {@link UninstallFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createPendingTransactionFilter, uninstallFilter } from 'viem/public'\n *\n * const filter = await createPendingTransactionFilter(client)\n * const uninstalled = await uninstallFilter(client, { filter })\n * // true\n */\nexport async function uninstallFilter(_client, { filter }) {\n return filter.request({\n method: 'eth_uninstallFilter',\n params: [filter.id],\n });\n}\n//# sourceMappingURL=uninstallFilter.js.map","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n var lines = data.toString().split(/[\\r\\n]+/g);\n\n var label = options.label.toUpperCase();\n\n var re = /^-----(BEGIN|END) ([^-]+)-----$/;\n var start = -1;\n var end = -1;\n for (var i = 0; i < lines.length; i++) {\n var match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n var base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9\\+\\/=]+/gi, '');\n\n var input = new Buffer(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","export function defineChain(chain) {\n const chainInstance = {\n formatters: undefined,\n fees: undefined,\n serializers: undefined,\n ...chain,\n };\n function extend(base) {\n return (fnOrExtended) => {\n const properties = (typeof fnOrExtended === 'function' ? fnOrExtended(base) : fnOrExtended);\n const combined = { ...base, ...properties };\n return Object.assign(combined, { extend: extend(combined) });\n };\n }\n return Object.assign(chainInstance, {\n extend: extend(chainInstance),\n });\n}\nexport function extendSchema() {\n return {};\n}\n//# sourceMappingURL=defineChain.js.map","var asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","export const crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! 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 (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\n/** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */\nexport function isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is positive integer. */\nexport function anumber(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error('positive integer expected, got ' + n);\n}\n/** Asserts something is Uint8Array. */\nexport function abytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n/** Asserts something is hash */\nexport function ahash(h) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.createHasher');\n anumber(h.outputLen);\n anumber(h.blockLen);\n}\n/** Asserts a hash instance has not been destroyed / finished */\nexport function aexists(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}\n/** Asserts output is properly-sized byte array */\nexport function aoutput(out, instance) {\n abytes(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}\n/** Cast u8 / u16 / u32 to u8. */\nexport function u8(arr) {\n return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** Cast u8 / u16 / u32 to u32. */\nexport function u32(arr) {\n return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n/** Zeroize a byte array. Warning: JS provides no guarantees. */\nexport function clean(...arrays) {\n for (let i = 0; i < arrays.length; i++) {\n arrays[i].fill(0);\n }\n}\n/** Create DataView of an array for easy byte-level manipulation. */\nexport function createView(arr) {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** The rotate right (circular right shift) operation for uint32 */\nexport function rotr(word, shift) {\n return (word << (32 - shift)) | (word >>> shift);\n}\n/** The rotate left (circular left shift) operation for uint32 */\nexport function rotl(word, shift) {\n return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nexport const isLE = /* @__PURE__ */ (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n/** The byte swap operation for uint32 */\nexport function byteSwap(word) {\n return (((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff));\n}\n/** Conditionally byte swap if on a big-endian platform */\nexport const swap8IfBE = isLE\n ? (n) => n\n : (n) => byteSwap(n);\n/** @deprecated */\nexport const byteSwapIfBE = swap8IfBE;\n/** In place byte swap for Uint32Array */\nexport function byteSwap32(arr) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n return arr;\n}\nexport const swap32IfBE = isLE\n ? (u) => u\n : byteSwap32;\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = /* @__PURE__ */ (() => \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function')();\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin)\n return bytes.toHex();\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// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n if (ch >= asciis._0 && ch <= asciis._9)\n return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F)\n return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f)\n return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\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 // @ts-ignore\n if (hasHexBuiltin)\n return Uint8Array.fromHex(hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n }\n return array;\n}\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.\n */\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 * Converts string to bytes using UTF8 encoding.\n * @example utf8ToBytes('abc') // Uint8Array.from([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Converts bytes to string using UTF8 encoding.\n * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'\n */\nexport function bytesToUtf8(bytes) {\n return new TextDecoder().decode(bytes);\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 abytes(data);\n return data;\n}\n/**\n * Helper for KDFs: consumes uint8array or string.\n * When string is passed, does utf8 decoding, using TextDecoder.\n */\nexport function kdfInputToBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/** Copies several Uint8Arrays into one. */\nexport function concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && {}.toString.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}\n/** For runtime check if class implements interface */\nexport class Hash {\n}\n/** Wraps hash function, creating an interface on top of it */\nexport function createHasher(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 createOptHasher(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 createXOFer(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 const wrapConstructor = createHasher;\nexport const wrapConstructorWithOpts = createOptHasher;\nexport const wrapXOFConstructorWithOpts = createXOFer;\n/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nexport function randomBytes(bytesLength = 32) {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto && typeof crypto.randomBytes === 'function') {\n return Uint8Array.from(crypto.randomBytes(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","import { BaseError } from './base.js';\nexport class NegativeOffsetError extends BaseError {\n constructor({ offset }) {\n super(`Offset \\`${offset}\\` cannot be negative.`, {\n name: 'NegativeOffsetError',\n });\n }\n}\nexport class PositionOutOfBoundsError extends BaseError {\n constructor({ length, position }) {\n super(`Position \\`${position}\\` is out of bounds (\\`0 < position < ${length}\\`).`, { name: 'PositionOutOfBoundsError' });\n }\n}\nexport class RecursiveReadLimitExceededError extends BaseError {\n constructor({ count, limit }) {\n super(`Recursive read limit of \\`${limit}\\` exceeded (recursive read count: \\`${count}\\`).`, { name: 'RecursiveReadLimitExceededError' });\n }\n}\n//# sourceMappingURL=cursor.js.map","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError, } from '../../errors/account.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getContractError, } from '../../utils/errors/getContractError.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { sendTransaction, } from './sendTransaction.js';\n/**\n * Executes a write function on a contract.\n *\n * - Docs: https://viem.sh/docs/contract/writeContract\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\n *\n * A \"write\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\n *\n * Internally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n *\n * __Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\n *\n * @param client - Client to use\n * @param parameters - {@link WriteContractParameters}\n * @returns A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\n *\n * @example\n * import { createWalletClient, custom, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { writeContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const hash = await writeContract(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\n * functionName: 'mint',\n * args: [69420],\n * })\n *\n * @example\n * // With Validation\n * import { createWalletClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { simulateContract, writeContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const { request } = await simulateContract(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\n * functionName: 'mint',\n * args: [69420],\n * }\n * const hash = await writeContract(client, request)\n */\nexport async function writeContract(client, parameters) {\n return writeContract.internal(client, sendTransaction, 'sendTransaction', parameters);\n}\n(function (writeContract) {\n async function internal(client, actionFn, name, parameters) {\n const { abi, account: account_ = client.account, address, args, dataSuffix, functionName, ...request } = parameters;\n if (typeof account_ === 'undefined')\n throw new AccountNotFoundError({\n docsPath: '/docs/contract/writeContract',\n });\n const account = account_ ? parseAccount(account_) : null;\n const data = encodeFunctionData({\n abi,\n args,\n functionName,\n });\n try {\n return await getAction(client, actionFn, name)({\n data: `${data}${dataSuffix ? dataSuffix.replace('0x', '') : ''}`,\n to: address,\n account,\n ...request,\n });\n }\n catch (error) {\n throw getContractError(error, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/writeContract',\n functionName,\n sender: account?.address,\n });\n }\n }\n writeContract.internal = internal;\n})(writeContract || (writeContract = {}));\n//# sourceMappingURL=writeContract.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { maxUint256 } from '../../constants/number.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { FeeCapTooHighError, TipAboveFeeCapError, } from '../../errors/node.js';\nimport { isAddress } from '../address/isAddress.js';\nexport function assertRequest(args) {\n const { account: account_, maxFeePerGas, maxPriorityFeePerGas, to } = args;\n const account = account_ ? parseAccount(account_) : undefined;\n if (account && !isAddress(account.address))\n throw new InvalidAddressError({ address: account.address });\n if (to && !isAddress(to))\n throw new InvalidAddressError({ address: to });\n if (maxFeePerGas && maxFeePerGas > maxUint256)\n throw new FeeCapTooHighError({ maxFeePerGas });\n if (maxPriorityFeePerGas &&\n maxFeePerGas &&\n maxPriorityFeePerGas > maxFeePerGas)\n throw new TipAboveFeeCapError({ maxFeePerGas, maxPriorityFeePerGas });\n}\n//# sourceMappingURL=assertRequest.js.map","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","\"use strict\";\n/*\nMIT License\n\nCopyright (c) 2021 Cyril Dever\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyPath = exports.Path = void 0;\nvar Path = function (account, scope, keyIndex) { return ({\n account: account,\n scope: scope,\n keyIndex: keyIndex\n}); };\nexports.Path = Path;\nvar parse = function (value) {\n var parts = value.split('/');\n if (parts.length !== 4 || parts[0] !== 'm') {\n throw new Error('invalid value for path');\n }\n return (0, exports.Path)(parts[1], parts[2], parts[3]);\n};\nvar next = function (value, increment) {\n var parsed = parse(value);\n var index = parseInt(parsed.keyIndex);\n var actualIncrement = increment !== undefined && increment > 1 ? increment : 1;\n var newValue = 'm/' + parsed.account + '/' + parsed.scope + '/' + (index + actualIncrement).toString(10);\n return (0, exports.KeyPath)(newValue);\n};\nvar setValue = function (value) {\n var parsed = parse(value);\n if (parseInt(parsed.account) > Math.pow(2, 16) - 1 || parseInt(parsed.scope) > Math.pow(2, 16) - 1 || parseInt(parsed.keyIndex) > Math.pow(2, 21) - 1) {\n throw new Error('invalid path with value exceeding its limits');\n }\n return value;\n};\nvar valueOf = function (value) { return function () {\n var parsed = parse(value);\n return parseInt(parsed.account) * Math.pow(2, 37) + parseInt(parsed.scope) * Math.pow(2, 21) + parseInt(parsed.keyIndex);\n}; };\n/**\n * Build an immutable key path\n *\n * @param {string} value - The path string\n * @returns an instance of KeyPath\n * @throws invalid value for path\n * @throws invalid path with value exceeding its limits\n */\nvar KeyPath = function (value) { return ({\n value: setValue(value),\n parse: function () { return parse(value); },\n next: function (increment) { return next(value, increment); },\n valueOf: valueOf(value)\n}); };\nexports.KeyPath = KeyPath;\n//# sourceMappingURL=model.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","'use strict';\n\n/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [\n\t0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n];\n\nvar W = new Array(80);\n\nfunction Sha1() {\n\tthis.init();\n\tthis._w = W;\n\n\tHash.call(this, 64, 56);\n}\n\ninherits(Sha1, Hash);\n\nSha1.prototype.init = function () {\n\tthis._a = 0x67452301;\n\tthis._b = 0xefcdab89;\n\tthis._c = 0x98badcfe;\n\tthis._d = 0x10325476;\n\tthis._e = 0xc3d2e1f0;\n\n\treturn this;\n};\n\nfunction rotl1(num) {\n\treturn (num << 1) | (num >>> 31);\n}\n\nfunction rotl5(num) {\n\treturn (num << 5) | (num >>> 27);\n}\n\nfunction rotl30(num) {\n\treturn (num << 30) | (num >>> 2);\n}\n\nfunction ft(s, b, c, d) {\n\tif (s === 0) {\n\t\treturn (b & c) | (~b & d);\n\t}\n\tif (s === 2) {\n\t\treturn (b & c) | (b & d) | (c & d);\n\t}\n\treturn b ^ c ^ d;\n}\n\nSha1.prototype._update = function (M) {\n\tvar w = this._w;\n\n\tvar a = this._a | 0;\n\tvar b = this._b | 0;\n\tvar c = this._c | 0;\n\tvar d = this._d | 0;\n\tvar e = this._e | 0;\n\n\tfor (var i = 0; i < 16; ++i) {\n\t\tw[i] = M.readInt32BE(i * 4);\n\t}\n\tfor (; i < 80; ++i) {\n\t\tw[i] = rotl1(w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16]);\n\t}\n\n\tfor (var j = 0; j < 80; ++j) {\n\t\tvar s = ~~(j / 20);\n\t\tvar t = (rotl5(a) + ft(s, b, c, d) + e + w[j] + K[s]) | 0;\n\n\t\te = d;\n\t\td = c;\n\t\tc = rotl30(b);\n\t\tb = a;\n\t\ta = t;\n\t}\n\n\tthis._a = (a + this._a) | 0;\n\tthis._b = (b + this._b) | 0;\n\tthis._c = (c + this._c) | 0;\n\tthis._d = (d + this._d) | 0;\n\tthis._e = (e + this._e) | 0;\n};\n\nSha1.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(20);\n\n\tH.writeInt32BE(this._a | 0, 0);\n\tH.writeInt32BE(this._b | 0, 4);\n\tH.writeInt32BE(this._c | 0, 8);\n\tH.writeInt32BE(this._d | 0, 12);\n\tH.writeInt32BE(this._e | 0, 16);\n\n\treturn H;\n};\n\nmodule.exports = Sha1;\n","/** @internal */\nexport const promiseCache = /*#__PURE__*/ new Map();\n/** @internal */\nexport const responseCache = /*#__PURE__*/ new Map();\nexport function getCache(cacheKey) {\n const buildCache = (cacheKey, cache) => ({\n clear: () => cache.delete(cacheKey),\n get: () => cache.get(cacheKey),\n set: (data) => cache.set(cacheKey, data),\n });\n const promise = buildCache(cacheKey, promiseCache);\n const response = buildCache(cacheKey, responseCache);\n return {\n clear: () => {\n promise.clear();\n response.clear();\n },\n promise,\n response,\n };\n}\n/**\n * @description Returns the result of a given promise, and caches the result for\n * subsequent invocations against a provided cache key.\n */\nexport async function withCache(fn, { cacheKey, cacheTime = Number.POSITIVE_INFINITY }) {\n const cache = getCache(cacheKey);\n // If a response exists in the cache, and it's not expired, return it\n // and do not invoke the promise.\n // If the max age is 0, the cache is disabled.\n const response = cache.response.get();\n if (response && cacheTime > 0) {\n const age = Date.now() - response.created.getTime();\n if (age < cacheTime)\n return response.data;\n }\n let promise = cache.promise.get();\n if (!promise) {\n promise = fn();\n // Store the promise in the cache so that subsequent invocations\n // will wait for the same promise to resolve (deduping).\n cache.promise.set(promise);\n }\n try {\n const data = await promise;\n // Store the response in the cache so that subsequent invocations\n // will return the same response.\n cache.response.set({ created: new Date(), data });\n return data;\n }\n finally {\n // Clear the promise cache so that subsequent invocations will\n // invoke the promise again.\n cache.promise.clear();\n }\n}\n//# sourceMappingURL=withCache.js.map","import { getCache, withCache, } from '../../utils/promise/withCache.js';\nconst cacheKey = (id) => `blockNumber.${id}`;\n/** @internal */\nexport function getBlockNumberCache(id) {\n return getCache(cacheKey(id));\n}\n/**\n * Returns the number of the most recent block seen.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlockNumber\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\n * - JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)\n *\n * @param client - Client to use\n * @param parameters - {@link GetBlockNumberParameters}\n * @returns The number of the block. {@link GetBlockNumberReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlockNumber } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const blockNumber = await getBlockNumber(client)\n * // 69420n\n */\nexport async function getBlockNumber(client, { cacheTime = client.cacheTime } = {}) {\n const blockNumberHex = await withCache(() => client.request({\n method: 'eth_blockNumber',\n }), { cacheKey: cacheKey(client.uid), cacheTime });\n return BigInt(blockNumberHex);\n}\n//# sourceMappingURL=getBlockNumber.js.map","import { formatGwei } from '../utils/unit/formatGwei.js';\nimport { BaseError } from './base.js';\nexport class BaseFeeScalarError extends BaseError {\n constructor() {\n super('`baseFeeMultiplier` must be greater than 1.', {\n name: 'BaseFeeScalarError',\n });\n }\n}\nexport class Eip1559FeesNotSupportedError extends BaseError {\n constructor() {\n super('Chain does not support EIP-1559 fees.', {\n name: 'Eip1559FeesNotSupportedError',\n });\n }\n}\nexport class MaxFeePerGasTooLowError extends BaseError {\n constructor({ maxPriorityFeePerGas }) {\n super(`\\`maxFeePerGas\\` cannot be less than the \\`maxPriorityFeePerGas\\` (${formatGwei(maxPriorityFeePerGas)} gwei).`, { name: 'MaxFeePerGasTooLowError' });\n }\n}\n//# sourceMappingURL=fee.js.map","// TODO(v3): checksum address.\nimport { isAddressEqual } from '../address/isAddressEqual.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { toEventSelector } from '../hash/toEventSelector.js';\nimport { decodeEventLog, } from './decodeEventLog.js';\n/**\n * Extracts & decodes logs matching the provided signature(s) (`abi` + optional `eventName`)\n * from a set of opaque logs.\n *\n * @param parameters - {@link ParseEventLogsParameters}\n * @returns The logs. {@link ParseEventLogsReturnType}\n *\n * @example\n * import { createClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { parseEventLogs } from 'viem/op-stack'\n *\n * const client = createClient({\n * chain: mainnet,\n * transport: http(),\n * })\n *\n * const receipt = await getTransactionReceipt(client, {\n * hash: '0xec23b2ba4bc59ba61554507c1b1bc91649e6586eb2dd00c728e8ed0db8bb37ea',\n * })\n *\n * const logs = parseEventLogs({ logs: receipt.logs })\n * // [{ args: { ... }, eventName: 'TransactionDeposited', ... }, ...]\n */\nexport function parseEventLogs(parameters) {\n const { abi, args, logs, strict = true } = parameters;\n const eventName = (() => {\n if (!parameters.eventName)\n return undefined;\n if (Array.isArray(parameters.eventName))\n return parameters.eventName;\n return [parameters.eventName];\n })();\n return logs\n .map((log) => {\n // Find all matching ABI items with the same selector.\n // Multiple events can share the same selector but differ in indexed parameters\n // (e.g., ERC20 vs ERC721 Transfer events).\n const abiItems = abi.filter((abiItem) => abiItem.type === 'event' &&\n log.topics[0] === toEventSelector(abiItem));\n if (abiItems.length === 0)\n return null;\n // Try each matching ABI item until one successfully decodes.\n let event;\n let abiItem;\n for (const item of abiItems) {\n try {\n event = decodeEventLog({\n ...log,\n abi: [item],\n strict: true,\n });\n abiItem = item;\n break;\n }\n catch {\n // Try next ABI item\n }\n }\n // If strict decoding failed for all, and we're in non-strict mode,\n // fall back to the first matching ABI item.\n if (!event && !strict) {\n abiItem = abiItems[0];\n try {\n event = decodeEventLog({\n ...log,\n abi: [abiItem],\n strict: false,\n });\n }\n catch {\n // If decoding still fails, return partial log in non-strict mode.\n const isUnnamed = abiItem.inputs?.some((x) => !('name' in x && x.name));\n return {\n ...log,\n args: isUnnamed ? [] : {},\n eventName: abiItem.name,\n };\n }\n }\n // If no event was found, return null.\n if (!event || !abiItem)\n return null;\n // Check that the decoded event name matches the provided event name.\n if (eventName && !eventName.includes(event.eventName))\n return null;\n // Check that the decoded event args match the provided args.\n if (!includesArgs({\n args: event.args,\n inputs: abiItem.inputs,\n matchArgs: args,\n }))\n return null;\n return { ...event, ...log };\n })\n .filter(Boolean);\n}\nfunction includesArgs(parameters) {\n const { args, inputs, matchArgs } = parameters;\n if (!matchArgs)\n return true;\n if (!args)\n return false;\n function isEqual(input, value, arg) {\n try {\n if (input.type === 'address')\n return isAddressEqual(value, arg);\n if (input.type === 'string' || input.type === 'bytes')\n return keccak256(toBytes(value)) === arg;\n return value === arg;\n }\n catch {\n return false;\n }\n }\n if (Array.isArray(args) && Array.isArray(matchArgs)) {\n return matchArgs.every((value, index) => {\n if (value === null || value === undefined)\n return true;\n const input = inputs[index];\n if (!input)\n return false;\n const value_ = Array.isArray(value) ? value : [value];\n return value_.some((value) => isEqual(input, value, args[index]));\n });\n }\n if (typeof args === 'object' &&\n !Array.isArray(args) &&\n typeof matchArgs === 'object' &&\n !Array.isArray(matchArgs))\n return Object.entries(matchArgs).every(([key, value]) => {\n if (value === null || value === undefined)\n return true;\n const input = inputs.find((input) => input.name === key);\n if (!input)\n return false;\n const value_ = Array.isArray(value) ? value : [value];\n return value_.some((value) => isEqual(input, value, args[key]));\n });\n return false;\n}\n//# sourceMappingURL=parseEventLogs.js.map","import * as Equal from \"../Equal.js\";\nimport { dual } from \"../Function.js\";\nimport * as Hash from \"../Hash.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"../Inspectable.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport { hasProperty } from \"../Predicate.js\";\nimport * as HM from \"./hashMap.js\";\nconst HashSetSymbolKey = \"effect/HashSet\";\n/** @internal */\nexport const HashSetTypeId = /*#__PURE__*/Symbol.for(HashSetSymbolKey);\nconst HashSetProto = {\n [HashSetTypeId]: HashSetTypeId,\n [Symbol.iterator]() {\n return HM.keys(this._keyMap);\n },\n [Hash.symbol]() {\n return Hash.cached(this, Hash.combine(Hash.hash(this._keyMap))(Hash.hash(HashSetSymbolKey)));\n },\n [Equal.symbol](that) {\n if (isHashSet(that)) {\n return HM.size(this._keyMap) === HM.size(that._keyMap) && Equal.equals(this._keyMap, that._keyMap);\n }\n return false;\n },\n toString() {\n return format(this.toJSON());\n },\n toJSON() {\n return {\n _id: \"HashSet\",\n values: Array.from(this).map(toJSON)\n };\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\n/** @internal */\nexport const makeImpl = keyMap => {\n const set = Object.create(HashSetProto);\n set._keyMap = keyMap;\n return set;\n};\n/** @internal */\nexport const isHashSet = u => hasProperty(u, HashSetTypeId);\nconst _empty = /*#__PURE__*/makeImpl(/*#__PURE__*/HM.empty());\n/** @internal */\nexport const empty = () => _empty;\n/** @internal */\nexport const fromIterable = elements => {\n const set = beginMutation(empty());\n for (const value of elements) {\n add(set, value);\n }\n return endMutation(set);\n};\n/** @internal */\nexport const make = (...elements) => {\n const set = beginMutation(empty());\n for (const value of elements) {\n add(set, value);\n }\n return endMutation(set);\n};\n/** @internal */\nexport const has = /*#__PURE__*/dual(2, (self, value) => HM.has(self._keyMap, value));\n/** @internal */\nexport const some = /*#__PURE__*/dual(2, (self, f) => {\n let found = false;\n for (const value of self) {\n found = f(value);\n if (found) {\n break;\n }\n }\n return found;\n});\n/** @internal */\nexport const every = /*#__PURE__*/dual(2, (self, refinement) => !some(self, a => !refinement(a)));\n/** @internal */\nexport const isSubset = /*#__PURE__*/dual(2, (self, that) => every(self, value => has(that, value)));\n/** @internal */\nexport const values = self => HM.keys(self._keyMap);\n/** @internal */\nexport const size = self => HM.size(self._keyMap);\n/** @internal */\nexport const beginMutation = self => makeImpl(HM.beginMutation(self._keyMap));\n/** @internal */\nexport const endMutation = self => {\n ;\n self._keyMap._editable = false;\n return self;\n};\n/** @internal */\nexport const mutate = /*#__PURE__*/dual(2, (self, f) => {\n const transient = beginMutation(self);\n f(transient);\n return endMutation(transient);\n});\n/** @internal */\nexport const add = /*#__PURE__*/dual(2, (self, value) => self._keyMap._editable ? (HM.set(value, true)(self._keyMap), self) : makeImpl(HM.set(value, true)(self._keyMap)));\n/** @internal */\nexport const remove = /*#__PURE__*/dual(2, (self, value) => self._keyMap._editable ? (HM.remove(value)(self._keyMap), self) : makeImpl(HM.remove(value)(self._keyMap)));\n/** @internal */\nexport const difference = /*#__PURE__*/dual(2, (self, that) => mutate(self, set => {\n for (const value of that) {\n remove(set, value);\n }\n}));\n/** @internal */\nexport const intersection = /*#__PURE__*/dual(2, (self, that) => mutate(empty(), set => {\n for (const value of that) {\n if (has(value)(self)) {\n add(value)(set);\n }\n }\n}));\n/** @internal */\nexport const union = /*#__PURE__*/dual(2, (self, that) => mutate(empty(), set => {\n forEach(self, value => add(set, value));\n for (const value of that) {\n add(set, value);\n }\n}));\n/** @internal */\nexport const toggle = /*#__PURE__*/dual(2, (self, value) => has(self, value) ? remove(self, value) : add(self, value));\n/** @internal */\nexport const map = /*#__PURE__*/dual(2, (self, f) => mutate(empty(), set => {\n forEach(self, a => {\n const b = f(a);\n if (!has(set, b)) {\n add(set, b);\n }\n });\n}));\n/** @internal */\nexport const flatMap = /*#__PURE__*/dual(2, (self, f) => mutate(empty(), set => {\n forEach(self, a => {\n for (const b of f(a)) {\n if (!has(set, b)) {\n add(set, b);\n }\n }\n });\n}));\n/** @internal */\nexport const forEach = /*#__PURE__*/dual(2, (self, f) => HM.forEach(self._keyMap, (_, k) => f(k)));\n/** @internal */\nexport const reduce = /*#__PURE__*/dual(3, (self, zero, f) => HM.reduce(self._keyMap, zero, (z, _, a) => f(z, a)));\n/** @internal */\nexport const filter = /*#__PURE__*/dual(2, (self, f) => {\n return mutate(empty(), set => {\n const iterator = values(self);\n let next;\n while (!(next = iterator.next()).done) {\n const value = next.value;\n if (f(value)) {\n add(set, value);\n }\n }\n });\n});\n/** @internal */\nexport const partition = /*#__PURE__*/dual(2, (self, predicate) => {\n const iterator = values(self);\n let next;\n const right = beginMutation(empty());\n const left = beginMutation(empty());\n while (!(next = iterator.next()).done) {\n const value = next.value;\n if (predicate(value)) {\n add(right, value);\n } else {\n add(left, value);\n }\n }\n return [endMutation(left), endMutation(right)];\n});\n//# sourceMappingURL=hashSet.js.map","import { isStructSignature } from './runtime/signatures.js';\nimport { parseStructs } from './runtime/structs.js';\nimport { parseSignature } from './runtime/utils.js';\n/**\n * Parses human-readable ABI into JSON {@link Abi}\n *\n * @param signatures - Human-Readable ABI\n * @returns Parsed {@link Abi}\n *\n * @example\n * const abi = parseAbi([\n * // ^? const abi: readonly [{ name: \"balanceOf\"; type: \"function\"; stateMutability:...\n * 'function balanceOf(address owner) view returns (uint256)',\n * 'event Transfer(address indexed from, address indexed to, uint256 amount)',\n * ])\n */\nexport function parseAbi(signatures) {\n const structs = parseStructs(signatures);\n const abi = [];\n const length = signatures.length;\n for (let i = 0; i < length; i++) {\n const signature = signatures[i];\n if (isStructSignature(signature))\n continue;\n abi.push(parseSignature(signature, structs));\n }\n return abi;\n}\n//# sourceMappingURL=parseAbi.js.map","import { parseAbi } from 'abitype';\nimport * as BlockOverrides from 'ox/BlockOverrides';\nimport { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { multicall3Abi } from '../../constants/abis.js';\nimport { aggregate3Signature } from '../../constants/contract.js';\nimport { deploylessCallViaBytecodeBytecode, deploylessCallViaFactoryBytecode, multicall3Bytecode, } from '../../constants/contracts.js';\nimport { BaseError } from '../../errors/base.js';\nimport { ChainDoesNotSupportContract, ClientChainNotConfiguredError, } from '../../errors/chain.js';\nimport { CounterfactualDeploymentFailedError, RawContractError, } from '../../errors/contract.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeDeployData, } from '../../utils/abi/encodeDeployData.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { getCallError, } from '../../utils/errors/getCallError.js';\nimport { extract } from '../../utils/formatters/extract.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { createBatchScheduler, } from '../../utils/promise/createBatchScheduler.js';\nimport { serializeStateOverride, } from '../../utils/stateOverride.js';\nimport { assertRequest } from '../../utils/transaction/assertRequest.js';\n/**\n * Executes a new message call immediately without submitting a transaction to the network.\n *\n * - Docs: https://viem.sh/docs/actions/public/call\n * - JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\n *\n * @param client - Client to use\n * @param parameters - {@link CallParameters}\n * @returns The call data. {@link CallReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { call } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const data = await call(client, {\n * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * })\n */\nexport async function call(client, args) {\n const { account: account_ = client.account, authorizationList, batch = Boolean(client.batch?.multicall), blockNumber, blockTag = client.experimental_blockTag ?? 'latest', accessList, blobs, blockOverrides, code, data: data_, factory, factoryData, gas, gasPrice, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, stateOverride, ...rest } = args;\n const account = account_ ? parseAccount(account_) : undefined;\n if (code && (factory || factoryData))\n throw new BaseError('Cannot provide both `code` & `factory`/`factoryData` as parameters.');\n if (code && to)\n throw new BaseError('Cannot provide both `code` & `to` as parameters.');\n // Check if the call is deployless via bytecode.\n const deploylessCallViaBytecode = code && data_;\n // Check if the call is deployless via a factory.\n const deploylessCallViaFactory = factory && factoryData && to && data_;\n const deploylessCall = deploylessCallViaBytecode || deploylessCallViaFactory;\n const data = (() => {\n if (deploylessCallViaBytecode)\n return toDeploylessCallViaBytecodeData({\n code,\n data: data_,\n });\n if (deploylessCallViaFactory)\n return toDeploylessCallViaFactoryData({\n data: data_,\n factory,\n factoryData,\n to,\n });\n return data_;\n })();\n try {\n assertRequest(args);\n const blockNumberHex = typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\n const rpcBlockOverrides = blockOverrides\n ? BlockOverrides.toRpc(blockOverrides)\n : undefined;\n const rpcStateOverride = serializeStateOverride(stateOverride);\n const chainFormat = client.chain?.formatters?.transactionRequest?.format;\n const format = chainFormat || formatTransactionRequest;\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n accessList,\n account,\n authorizationList,\n blobs,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to: deploylessCall ? undefined : to,\n value,\n }, 'call');\n if (batch &&\n shouldPerformMulticall({ request }) &&\n !rpcStateOverride &&\n !rpcBlockOverrides) {\n try {\n return await scheduleMulticall(client, {\n ...request,\n blockNumber,\n blockTag,\n });\n }\n catch (err) {\n if (!(err instanceof ClientChainNotConfiguredError) &&\n !(err instanceof ChainDoesNotSupportContract))\n throw err;\n }\n }\n const params = (() => {\n const base = [\n request,\n block,\n ];\n if (rpcStateOverride && rpcBlockOverrides)\n return [...base, rpcStateOverride, rpcBlockOverrides];\n if (rpcStateOverride)\n return [...base, rpcStateOverride];\n if (rpcBlockOverrides)\n return [...base, {}, rpcBlockOverrides];\n return base;\n })();\n const response = await client.request({\n method: 'eth_call',\n params,\n });\n if (response === '0x')\n return { data: undefined };\n return { data: response };\n }\n catch (err) {\n const data = getRevertErrorData(err);\n // Check for CCIP-Read offchain lookup signature.\n const { offchainLookup, offchainLookupSignature } = await import('../../utils/ccip.js');\n if (client.ccipRead !== false &&\n data?.slice(0, 10) === offchainLookupSignature &&\n to)\n return { data: await offchainLookup(client, { data, to }) };\n // Check for counterfactual deployment error.\n if (deploylessCall && data?.slice(0, 10) === '0x101bb98d')\n throw new CounterfactualDeploymentFailedError({ factory });\n throw getCallError(err, {\n ...args,\n account,\n chain: client.chain,\n });\n }\n}\n// We only want to perform a scheduled multicall if:\n// - The request has calldata,\n// - The request has a target address,\n// - The target address is not already the aggregate3 signature,\n// - The request has no other properties (`nonce`, `gas`, etc cannot be sent with a multicall).\nfunction shouldPerformMulticall({ request }) {\n const { data, to, ...request_ } = request;\n if (!data)\n return false;\n if (data.startsWith(aggregate3Signature))\n return false;\n if (!to)\n return false;\n if (Object.values(request_).filter((x) => typeof x !== 'undefined').length > 0)\n return false;\n return true;\n}\nasync function scheduleMulticall(client, args) {\n const { batchSize = 1024, deployless = false, wait = 0, } = typeof client.batch?.multicall === 'object' ? client.batch.multicall : {};\n const { blockNumber, blockTag = client.experimental_blockTag ?? 'latest', data, to, } = args;\n const multicallAddress = (() => {\n if (deployless)\n return null;\n if (args.multicallAddress)\n return args.multicallAddress;\n if (client.chain) {\n return getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'multicall3',\n });\n }\n throw new ClientChainNotConfiguredError();\n })();\n const blockNumberHex = typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\n const { schedule } = createBatchScheduler({\n id: `${client.uid}.${block}`,\n wait,\n shouldSplitBatch(args) {\n const size = args.reduce((size, { data }) => size + (data.length - 2), 0);\n return size > batchSize * 2;\n },\n fn: async (requests) => {\n const calls = requests.map((request) => ({\n allowFailure: true,\n callData: request.data,\n target: request.to,\n }));\n const calldata = encodeFunctionData({\n abi: multicall3Abi,\n args: [calls],\n functionName: 'aggregate3',\n });\n const data = await client.request({\n method: 'eth_call',\n params: [\n {\n ...(multicallAddress === null\n ? {\n data: toDeploylessCallViaBytecodeData({\n code: multicall3Bytecode,\n data: calldata,\n }),\n }\n : { to: multicallAddress, data: calldata }),\n },\n block,\n ],\n });\n return decodeFunctionResult({\n abi: multicall3Abi,\n args: [calls],\n functionName: 'aggregate3',\n data: data || '0x',\n });\n },\n });\n const [{ returnData, success }] = await schedule({ data, to });\n if (!success)\n throw new RawContractError({ data: returnData });\n if (returnData === '0x')\n return { data: undefined };\n return { data: returnData };\n}\nfunction toDeploylessCallViaBytecodeData(parameters) {\n const { code, data } = parameters;\n return encodeDeployData({\n abi: parseAbi(['constructor(bytes, bytes)']),\n bytecode: deploylessCallViaBytecodeBytecode,\n args: [code, data],\n });\n}\nfunction toDeploylessCallViaFactoryData(parameters) {\n const { data, factory, factoryData, to } = parameters;\n return encodeDeployData({\n abi: parseAbi(['constructor(address, bytes, address, bytes)']),\n bytecode: deploylessCallViaFactoryBytecode,\n args: [to, data, factory, factoryData],\n });\n}\n/** @internal */\nexport function getRevertErrorData(err) {\n if (!(err instanceof BaseError))\n return undefined;\n const error = err.walk();\n return typeof error?.data === 'object' ? error.data?.data : error.data;\n}\n//# sourceMappingURL=call.js.map","export const aggregate3Signature = '0x82ad56cb';\n//# sourceMappingURL=contract.js.map","/**\n * HMAC: RFC2104 message authentication code.\n * @module\n */\nimport { abytes, aexists, ahash, clean, Hash, toBytes } from \"./utils.js\";\nexport class HMAC extends Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n ahash(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 clean(pad);\n }\n update(buf) {\n aexists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n aexists(this);\n abytes(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 clone() {\n return this._cloneInto();\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 * @example\n * import { hmac } from '@noble/hashes/hmac';\n * import { sha256 } from '@noble/hashes/sha2';\n * const mac1 = hmac(sha256, 'key', 'message');\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","/**\n * Hex, bytes and number utilities.\n * @module\n */\n/*! 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 = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nexport function isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\nexport function abytes(item) {\n if (!isBytes(item))\n throw new Error('Uint8Array expected');\n}\nexport function abool(title, value) {\n if (typeof value !== 'boolean')\n throw new Error(title + ' boolean expected, got ' + value);\n}\n// Used in weierstrass, der\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 return hex === '' ? _0n : BigInt('0x' + hex); // Big Endian\n}\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function';\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin)\n return bytes.toHex();\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// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n if (ch >= asciis._0 && ch <= asciis._9)\n return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F)\n return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f)\n return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\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 // @ts-ignore\n if (hasHexBuiltin)\n return Uint8Array.fromHex(hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\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 abytes(bytes);\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 hex string or Uint8Array, cause: ' + e);\n }\n }\n else if (isBytes(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 + ' of length ' + expectedLength + ' expected, got ' + len);\n return res;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n// Compares 2 u8a-s in kinda constant time\nexport function equalBytes(a, b) {\n if (a.length !== b.length)\n return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++)\n diff |= a[i] ^ b[i];\n return diff === 0;\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('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n// Is positive bigint\nconst isPosBig = (n) => typeof n === 'bigint' && _0n <= n;\nexport function inRange(n, min, max) {\n return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max;\n}\n/**\n * Asserts min <= n < max. NOTE: It's < max and not <= max.\n * @example\n * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)\n */\nexport function aInRange(title, n, min, max) {\n // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)?\n // consider P=256n, min=0n, max=P\n // - a for min=0 would require -1: `inRange('x', x, -1n, P)`\n // - b would commonly require subtraction: `inRange('x', x, 0n, P - 1n)`\n // - our way is the cleanest: `inRange('x', x, 0n, P)\n if (!inRange(n, min, max))\n throw new Error('expected valid ' + title + ': ' + min + ' <= n < ' + max + ', got ' + n);\n}\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n * TODO: merge with nLength in modular\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 function 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) => (_1n << BigInt(n)) - _1n;\n// DRBG\nconst u8n = (len) => new Uint8Array(len); // 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(0)) => {\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' || isBytes(val),\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 function');\n const val = object[fieldName];\n if (isOptional && val === undefined)\n return;\n if (!checkVal(val, object)) {\n throw new Error('param ' + String(fieldName) + ' is invalid. Expected ' + type + ', got ' + val);\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/**\n * throws not implemented error\n */\nexport const notImplemented = () => {\n throw new Error('not implemented');\n};\n/**\n * Memoizes (caches) computation result.\n * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.\n */\nexport function memoized(fn) {\n const map = new WeakMap();\n return (arg, ...args) => {\n const val = map.get(arg);\n if (val !== undefined)\n return val;\n const computed = fn(arg, ...args);\n map.set(arg, computed);\n return computed;\n };\n}\n//# sourceMappingURL=utils.js.map","/**\n * Utils for modular division and finite fields.\n * A finite field over 11 is integer number operations `mod 11`.\n * There is no division: it is replaced by modular multiplicative inverse.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { anumber } from '@noble/hashes/utils';\nimport { bitMask, bytesToNumberBE, bytesToNumberLE, ensureBytes, numberToBytesBE, numberToBytesLE, validateObject, } from \"./utils.js\";\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = /* @__PURE__ */ BigInt(2), _3n = /* @__PURE__ */ BigInt(3);\n// prettier-ignore\nconst _4n = /* @__PURE__ */ BigInt(4), _5n = /* @__PURE__ */ BigInt(5), _8n = /* @__PURE__ */ BigInt(8);\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 * TODO: remove.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\nexport function pow(num, power, modulo) {\n return FpPow(Field(modulo), num, power);\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/**\n * Inverses number over modulo.\n * Implemented using [Euclidean GCD](https://brilliant.org/wiki/extended-euclidean-algorithm/).\n */\nexport function invert(number, modulo) {\n if (number === _0n)\n throw new Error('invert: expected non-zero number');\n if (modulo <= _0n)\n throw new Error('invert: expected positive modulus, got ' + modulo);\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// Not all roots are possible! Example which will throw:\n// const NUM =\n// n = 72057594037927816n;\n// Fp = Field(BigInt('0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab'));\nfunction sqrt3mod4(Fp, n) {\n const p1div4 = (Fp.ORDER + _1n) / _4n;\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}\nfunction sqrt5mod8(Fp, n) {\n const p5div8 = (Fp.ORDER - _5n) / _8n;\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, p5div8);\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// TODO: Commented-out for now. Provide test vectors.\n// Tonelli is too slow for extension fields Fp2.\n// That means we can't use sqrt (c1, c2...) even for initialization constants.\n// if (P % _16n === _9n) return sqrt9mod16;\n// // prettier-ignore\n// function sqrt9mod16(Fp: IField, n: T, p7div16?: bigint) {\n// if (p7div16 === undefined) p7div16 = (Fp.ORDER + BigInt(7)) / _16n;\n// const c1 = Fp.sqrt(Fp.neg(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.neg(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n// const c4 = p7div16; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n// let tv1 = Fp.pow(n, 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.eql(Fp.sqr(tv2), n); // 5. e1 = (tv2^2) == x\n// const e2 = Fp.eql(Fp.sqr(tv3), n); // 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.eql(Fp.sqr(tv2), n); // 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 * 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 * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nexport function tonelliShanks(P) {\n // Initialization (precomputation).\n if (P < BigInt(3))\n throw new Error('sqrt is not defined for small field');\n // Factor P - 1 = Q * 2^S, where Q is odd\n let Q = P - _1n;\n let S = 0;\n while (Q % _2n === _0n) {\n Q /= _2n;\n S++;\n }\n // Find the first quadratic non-residue Z >= 2\n let Z = _2n;\n const _Fp = Field(P);\n while (FpLegendre(_Fp, Z) === 1) {\n // Basic primality test for P. After x iterations, chance of\n // not finding quadratic non-residue is 2^x, so 2^1000.\n if (Z++ > 1000)\n throw new Error('Cannot find square root: probably non-prime P');\n }\n // Fast-path; usually done before Z, but we do \"primality test\".\n if (S === 1)\n return sqrt3mod4;\n // Slow-path\n // TODO: test on Fp2 and others\n let cc = _Fp.pow(Z, Q); // c = z^Q\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp, n) {\n if (Fp.is0(n))\n return n;\n // Check if n is a quadratic residue using Legendre symbol\n if (FpLegendre(Fp, n) !== 1)\n throw new Error('Cannot find square root');\n // Initialize variables for the main loop\n let M = S;\n let c = Fp.mul(Fp.ONE, cc); // c = z^Q, move cc from field _Fp into field Fp\n let t = Fp.pow(n, Q); // t = n^Q, first guess at the fudge factor\n let R = Fp.pow(n, Q1div2); // R = n^((Q+1)/2), first guess at the square root\n // Main loop\n // while t != 1\n while (!Fp.eql(t, Fp.ONE)) {\n if (Fp.is0(t))\n return Fp.ZERO; // if t=0 return R=0\n let i = 1;\n // Find the smallest i >= 1 such that t^(2^i) ≡ 1 (mod P)\n let t_tmp = Fp.sqr(t); // t^(2^1)\n while (!Fp.eql(t_tmp, Fp.ONE)) {\n i++;\n t_tmp = Fp.sqr(t_tmp); // t^(2^2)...\n if (i === M)\n throw new Error('Cannot find square root');\n }\n // Calculate the exponent for b: 2^(M - i - 1)\n const exponent = _1n << BigInt(M - i - 1); // bigint is important\n const b = Fp.pow(c, exponent); // b = 2^(M - i - 1)\n // Update variables\n M = i;\n c = Fp.sqr(b); // c = b^2\n t = Fp.mul(t, c); // t = (t * b^2)\n R = Fp.mul(R, b); // R = R*b\n }\n return R;\n };\n}\n/**\n * Square root for a finite field. Will try optimized versions first:\n *\n * 1. P ≡ 3 (mod 4)\n * 2. P ≡ 5 (mod 8)\n * 3. Tonelli-Shanks algorithm\n *\n * 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 */\nexport function FpSqrt(P) {\n // P ≡ 3 (mod 4) => √n = n^((P+1)/4)\n if (P % _4n === _3n)\n return sqrt3mod4;\n // P ≡ 5 (mod 8) => Atkin algorithm, page 10 of https://eprint.iacr.org/2012/685.pdf\n if (P % _8n === _5n)\n return sqrt5mod8;\n // P ≡ 9 (mod 16) not implemented, see above\n // 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(Fp, num, power) {\n if (power < _0n)\n throw new Error('invalid exponent, negatives unsupported');\n if (power === _0n)\n return Fp.ONE;\n if (power === _1n)\n return num;\n let p = Fp.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n)\n p = Fp.mul(p, d);\n d = Fp.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n/**\n * Efficiently invert an array of Field elements.\n * Exception-free. Will return `undefined` for 0 elements.\n * @param passZero map 0 to 0 (instead of undefined)\n */\nexport function FpInvertBatch(Fp, nums, passZero = false) {\n const inverted = new Array(nums.length).fill(passZero ? Fp.ZERO : undefined);\n // Walk from first to last, multiply them by each other MOD p\n const multipliedAcc = nums.reduce((acc, num, i) => {\n if (Fp.is0(num))\n return acc;\n inverted[i] = acc;\n return Fp.mul(acc, num);\n }, Fp.ONE);\n // Invert last element\n const invertedAcc = Fp.inv(multipliedAcc);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (Fp.is0(num))\n return acc;\n inverted[i] = Fp.mul(acc, inverted[i]);\n return Fp.mul(acc, num);\n }, invertedAcc);\n return inverted;\n}\n// TODO: remove\nexport function FpDiv(Fp, lhs, rhs) {\n return Fp.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, Fp.ORDER) : Fp.inv(rhs));\n}\n/**\n * Legendre symbol.\n * Legendre constant is used to calculate Legendre symbol (a | p)\n * which denotes the value of a^((p-1)/2) (mod p).\n *\n * * (a | p) ≡ 1 if a is a square (mod p), quadratic residue\n * * (a | p) ≡ -1 if a is not a square (mod p), quadratic non residue\n * * (a | p) ≡ 0 if a ≡ 0 (mod p)\n */\nexport function FpLegendre(Fp, n) {\n // We can use 3rd argument as optional cache of this value\n // but seems unneeded for now. The operation is very fast.\n const p1mod2 = (Fp.ORDER - _1n) / _2n;\n const powered = Fp.pow(n, p1mod2);\n const yes = Fp.eql(powered, Fp.ONE);\n const zero = Fp.eql(powered, Fp.ZERO);\n const no = Fp.eql(powered, Fp.neg(Fp.ONE));\n if (!yes && !zero && !no)\n throw new Error('invalid Legendre symbol result');\n return yes ? 1 : zero ? 0 : -1;\n}\n// This function returns True whenever the value x is a square in the field F.\nexport function FpIsSquare(Fp, n) {\n const l = FpLegendre(Fp, n);\n return l === 1;\n}\n// CURVE.n lengths\nexport function nLength(n, nBitLength) {\n // Bit size, byte size of CURVE.n\n if (nBitLength !== undefined)\n anumber(nBitLength);\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.\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 * Fragile: always run a benchmark on a change.\n * Security note: operations don't check 'isValid' for all elements for performance reasons,\n * it is caller responsibility to check this.\n * This is low-level code, please make sure you know what you're doing.\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('invalid field: expected ORDER > 0, got ' + ORDER);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048)\n throw new Error('invalid field: expected ORDER of <= 2048 bytes');\n let sqrtP; // cached sqrtP\n const f = Object.freeze({\n ORDER,\n isLE,\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 ((n) => {\n if (!sqrtP)\n sqrtP = FpSqrt(ORDER);\n return sqrtP(f, n);\n }),\n toBytes: (num) => (isLE ? numberToBytesLE(num, BYTES) : numberToBytesBE(num, BYTES)),\n fromBytes: (bytes) => {\n if (bytes.length !== BYTES)\n throw new Error('Field.fromBytes: expected ' + BYTES + ' bytes, got ' + bytes.length);\n return isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n },\n // TODO: we don't need it here, move out to separate fn\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // We can't move this out because Fp6, Fp12 implement it\n // and it's unclear what to return in there.\n cmov: (a, b, c) => (c ? b : a),\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 ? bytesToNumberLE(key) : bytesToNumberBE(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","/**\n * Methods for elliptic curve multiplication by scalars.\n * Contains wNAF, pippenger\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { nLength, validateField } from \"./modular.js\";\nimport { bitLen, bitMask, validateObject } from \"./utils.js\";\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nfunction constTimeNegate(condition, item) {\n const neg = item.negate();\n return condition ? neg : item;\n}\nfunction validateW(W, bits) {\n if (!Number.isSafeInteger(W) || W <= 0 || W > bits)\n throw new Error('invalid window size, expected [1..' + bits + '], got W=' + W);\n}\nfunction calcWOpts(W, scalarBits) {\n validateW(W, scalarBits);\n const windows = Math.ceil(scalarBits / W) + 1; // W=8 33. Not 32, because we skip zero\n const windowSize = 2 ** (W - 1); // W=8 128. Not 256, because we skip zero\n const maxNumber = 2 ** W; // W=8 256\n const mask = bitMask(W); // W=8 255 == mask 0b11111111\n const shiftBy = BigInt(W); // W=8 8\n return { windows, windowSize, mask, maxNumber, shiftBy };\n}\nfunction calcOffsets(n, window, wOpts) {\n const { windowSize, mask, maxNumber, shiftBy } = wOpts;\n let wbits = Number(n & mask); // extract W bits.\n let nextN = n >> shiftBy; // shift number by W bits.\n // What actually happens here:\n // const highestBit = Number(mask ^ (mask >> 1n));\n // let wbits2 = wbits - 1; // skip zero\n // if (wbits2 & highestBit) { wbits2 ^= Number(mask); // (~);\n // split if bits > max: +224 => 256-32\n if (wbits > windowSize) {\n // we skip zero, which means instead of `>= size-1`, we do `> size`\n wbits -= maxNumber; // -32, can be maxNumber - wbits, but then we need to set isNeg here.\n nextN += _1n; // +256 (carry)\n }\n const offsetStart = window * windowSize;\n const offset = offsetStart + Math.abs(wbits) - 1; // -1 because we skip zero\n const isZero = wbits === 0; // is current window slice a 0?\n const isNeg = wbits < 0; // is current window slice negative?\n const isNegF = window % 2 !== 0; // fake random statement for noise\n const offsetF = offsetStart; // fake offset for noise\n return { nextN, offset, isZero, isNeg, isNegF, offsetF };\n}\nfunction validateMSMPoints(points, c) {\n if (!Array.isArray(points))\n throw new Error('array expected');\n points.forEach((p, i) => {\n if (!(p instanceof c))\n throw new Error('invalid point at index ' + i);\n });\n}\nfunction validateMSMScalars(scalars, field) {\n if (!Array.isArray(scalars))\n throw new Error('array of scalars expected');\n scalars.forEach((s, i) => {\n if (!field.isValid(s))\n throw new Error('invalid scalar at index ' + i);\n });\n}\n// Since points in different groups cannot be equal (different object constructor),\n// we can have single place to store precomputes.\n// Allows to make points frozen / immutable.\nconst pointPrecomputes = new WeakMap();\nconst pointWindowSizes = new WeakMap();\nfunction getW(P) {\n return pointWindowSizes.get(P) || 1;\n}\n/**\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 *\n * @todo Research returning 2d JS array of windows, instead of a single window.\n * This would allow windows to be in different memory locations\n */\nexport function wNAF(c, bits) {\n return {\n constTimeNegate,\n hasPrecomputes(elm) {\n return getW(elm) !== 1;\n },\n // non-const time multiplication ladder\n unsafeLadder(elm, n, 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 * @param elm Point instance\n * @param W window size\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(elm, W) {\n const { windows, windowSize } = calcWOpts(W, bits);\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 // i=1, bc we skip 0\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 // Smaller version:\n // https://github.com/paulmillr/noble-secp256k1/blob/47cb1669b6e506ad66b35fe7d76132ae97465da2/index.ts#L502-L541\n // TODO: check the scalar is less than group order?\n // wNAF behavior is undefined otherwise. But have to carefully remove\n // other checks before wNAF. ORDER == bits here.\n // Accumulators\n let p = c.ZERO;\n let f = c.BASE;\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 const wo = calcWOpts(W, bits);\n for (let window = 0; window < wo.windows; window++) {\n // (n === _0n) is handled and not early-exited. isEven and offsetF are used for noise\n const { nextN, offset, isZero, isNeg, isNegF, offsetF } = calcOffsets(n, window, wo);\n n = nextN;\n if (isZero) {\n // bits are 0: add garbage to fake point\n // Important part for const-time getPublicKey: add random \"noise\" point to f.\n f = f.add(constTimeNegate(isNegF, precomputes[offsetF]));\n }\n else {\n // bits are 1: add to result point\n p = p.add(constTimeNegate(isNeg, precomputes[offset]));\n }\n }\n // Return both real and fake points: JIT won't eliminate f.\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 /**\n * Implements ec unsafe (non const-time) 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 * @param acc accumulator point to add result of multiplication\n * @returns point\n */\n wNAFUnsafe(W, precomputes, n, acc = c.ZERO) {\n const wo = calcWOpts(W, bits);\n for (let window = 0; window < wo.windows; window++) {\n if (n === _0n)\n break; // Early-exit, skip 0 value\n const { nextN, offset, isZero, isNeg } = calcOffsets(n, window, wo);\n n = nextN;\n if (isZero) {\n // Window bits are 0: skip processing.\n // Move to next window.\n continue;\n }\n else {\n const item = precomputes[offset];\n acc = acc.add(isNeg ? item.negate() : item); // Re-using acc allows to save adds in MSM\n }\n }\n return acc;\n },\n getPrecomputes(W, P, transform) {\n // Calculate precomputes on a first run, reuse them after\n let comp = pointPrecomputes.get(P);\n if (!comp) {\n comp = this.precomputeWindow(P, W);\n if (W !== 1)\n pointPrecomputes.set(P, transform(comp));\n }\n return comp;\n },\n wNAFCached(P, n, transform) {\n const W = getW(P);\n return this.wNAF(W, this.getPrecomputes(W, P, transform), n);\n },\n wNAFCachedUnsafe(P, n, transform, prev) {\n const W = getW(P);\n if (W === 1)\n return this.unsafeLadder(P, n, prev); // For W=1 ladder is ~x2 faster\n return this.wNAFUnsafe(W, this.getPrecomputes(W, P, transform), n, prev);\n },\n // We calculate precomputes for elliptic curve point multiplication\n // using windowed method. This specifies window size and\n // stores precomputed values. Usually only base point would be precomputed.\n setWindowSize(P, W) {\n validateW(W, bits);\n pointWindowSizes.set(P, W);\n pointPrecomputes.delete(P);\n },\n };\n}\n/**\n * Pippenger algorithm for multi-scalar multiplication (MSM, Pa + Qb + Rc + ...).\n * 30x faster vs naive addition on L=4096, 10x faster than precomputes.\n * For N=254bit, L=1, it does: 1024 ADD + 254 DBL. For L=5: 1536 ADD + 254 DBL.\n * Algorithmically constant-time (for same L), even when 1 point + scalar, or when scalar = 0.\n * @param c Curve Point constructor\n * @param fieldN field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @param scalars array of L scalars (aka private keys / bigints)\n */\nexport function pippenger(c, fieldN, points, scalars) {\n // If we split scalars by some window (let's say 8 bits), every chunk will only\n // take 256 buckets even if there are 4096 scalars, also re-uses double.\n // TODO:\n // - https://eprint.iacr.org/2024/750.pdf\n // - https://tches.iacr.org/index.php/TCHES/article/view/10287\n // 0 is accepted in scalars\n validateMSMPoints(points, c);\n validateMSMScalars(scalars, fieldN);\n const plength = points.length;\n const slength = scalars.length;\n if (plength !== slength)\n throw new Error('arrays of points and scalars must have equal length');\n // if (plength === 0) throw new Error('array must be of length >= 2');\n const zero = c.ZERO;\n const wbits = bitLen(BigInt(plength));\n let windowSize = 1; // bits\n if (wbits > 12)\n windowSize = wbits - 3;\n else if (wbits > 4)\n windowSize = wbits - 2;\n else if (wbits > 0)\n windowSize = 2;\n const MASK = bitMask(windowSize);\n const buckets = new Array(Number(MASK) + 1).fill(zero); // +1 for zero array\n const lastBits = Math.floor((fieldN.BITS - 1) / windowSize) * windowSize;\n let sum = zero;\n for (let i = lastBits; i >= 0; i -= windowSize) {\n buckets.fill(zero);\n for (let j = 0; j < slength; j++) {\n const scalar = scalars[j];\n const wbits = Number((scalar >> BigInt(i)) & MASK);\n buckets[wbits] = buckets[wbits].add(points[j]);\n }\n let resI = zero; // not using this will do small speed-up, but will lose ct\n // Skip first bucket, because it is zero\n for (let j = buckets.length - 1, sumI = zero; j > 0; j--) {\n sumI = sumI.add(buckets[j]);\n resI = resI.add(sumI);\n }\n sum = sum.add(resI);\n if (i !== 0)\n for (let j = 0; j < windowSize; j++)\n sum = sum.double();\n }\n return sum;\n}\n/**\n * Precomputed multi-scalar multiplication (MSM, Pa + Qb + Rc + ...).\n * @param c Curve Point constructor\n * @param fieldN field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @returns function which multiplies points with scaars\n */\nexport function precomputeMSMUnsafe(c, fieldN, points, windowSize) {\n /**\n * Performance Analysis of Window-based Precomputation\n *\n * Base Case (256-bit scalar, 8-bit window):\n * - Standard precomputation requires:\n * - 31 additions per scalar × 256 scalars = 7,936 ops\n * - Plus 255 summary additions = 8,191 total ops\n * Note: Summary additions can be optimized via accumulator\n *\n * Chunked Precomputation Analysis:\n * - Using 32 chunks requires:\n * - 255 additions per chunk\n * - 256 doublings\n * - Total: (255 × 32) + 256 = 8,416 ops\n *\n * Memory Usage Comparison:\n * Window Size | Standard Points | Chunked Points\n * ------------|-----------------|---------------\n * 4-bit | 520 | 15\n * 8-bit | 4,224 | 255\n * 10-bit | 13,824 | 1,023\n * 16-bit | 557,056 | 65,535\n *\n * Key Advantages:\n * 1. Enables larger window sizes due to reduced memory overhead\n * 2. More efficient for smaller scalar counts:\n * - 16 chunks: (16 × 255) + 256 = 4,336 ops\n * - ~2x faster than standard 8,191 ops\n *\n * Limitations:\n * - Not suitable for plain precomputes (requires 256 constant doublings)\n * - Performance degrades with larger scalar counts:\n * - Optimal for ~256 scalars\n * - Less efficient for 4096+ scalars (Pippenger preferred)\n */\n validateW(windowSize, fieldN.BITS);\n validateMSMPoints(points, c);\n const zero = c.ZERO;\n const tableSize = 2 ** windowSize - 1; // table size (without zero)\n const chunks = Math.ceil(fieldN.BITS / windowSize); // chunks of item\n const MASK = bitMask(windowSize);\n const tables = points.map((p) => {\n const res = [];\n for (let i = 0, acc = p; i < tableSize; i++) {\n res.push(acc);\n acc = acc.add(p);\n }\n return res;\n });\n return (scalars) => {\n validateMSMScalars(scalars, fieldN);\n if (scalars.length > points.length)\n throw new Error('array of scalars must be smaller than array of points');\n let res = zero;\n for (let i = 0; i < chunks; i++) {\n // No need to double if accumulator is still zero.\n if (res !== zero)\n for (let j = 0; j < windowSize; j++)\n res = res.double();\n const shiftBy = BigInt(chunks * windowSize - (i + 1) * windowSize);\n for (let j = 0; j < scalars.length; j++) {\n const n = scalars[j];\n const curr = Number((n >> shiftBy) & MASK);\n if (!curr)\n continue; // skip zero scalars chunks\n res = res.add(tables[j][curr - 1]);\n }\n }\n return res;\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","/**\n * Short Weierstrass curve methods. The formula is: y² = x³ + ax + b.\n *\n * ### Parameters\n *\n * To initialize a weierstrass curve, one needs to pass following params:\n *\n * * a: formula param\n * * b: formula param\n * * Fp: finite field of prime characteristic P; may be complex (Fp2). Arithmetics is done in field\n * * n: order of prime subgroup a.k.a total amount of valid curve points\n * * Gx: Base point (x, y) aka generator point. Gx = x coordinate\n * * Gy: ...y coordinate\n * * h: cofactor, usually 1. h*n = curve group order (n is only subgroup order)\n * * lowS: whether to enable (default) or disable \"low-s\" non-malleable signatures\n *\n * ### Design rationale for types\n *\n * * Interaction between classes from different curves should fail:\n * `k256.Point.BASE.add(p256.Point.BASE)`\n * * For this purpose we want to use `instanceof` operator, which is fast and works during runtime\n * * Different calls of `curve()` would return different classes -\n * `curve(params) !== curve(params)`: if somebody decided to monkey-patch their curve,\n * it won't affect others\n *\n * TypeScript can't infer types for classes created inside a function. Classes is one instance\n * of nominative types in TypeScript and interfaces only check for shape, so it's hard to create\n * unique type for every function call.\n *\n * We can use generic types via some param, like curve opts, but that would:\n * 1. Enable interaction between `curve(params)` and `curve(params)` (curves of same params)\n * which is hard to debug.\n * 2. Params can be generic and we can't enforce them to be constant value:\n * if somebody creates curve from non-constant params,\n * it would be allowed to interact with other curves with non-constant params\n *\n * @todo https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#unique-symbol\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// prettier-ignore\nimport { pippenger, validateBasic, wNAF } from \"./curve.js\";\n// prettier-ignore\nimport { Field, FpInvertBatch, getMinHashLength, invert, mapHashToField, mod, validateField } from \"./modular.js\";\n// prettier-ignore\nimport { aInRange, abool, bitMask, bytesToHex, bytesToNumberBE, concatBytes, createHmacDrbg, ensureBytes, hexToBytes, inRange, isBytes, memoized, numberToBytesBE, numberToHexUnpadded, validateObject } from \"./utils.js\";\nfunction validateSigVerOpts(opts) {\n if (opts.lowS !== undefined)\n abool('lowS', opts.lowS);\n if (opts.prehash !== undefined)\n abool('prehash', opts.prehash);\n}\nfunction validatePointOpts(curve) {\n const opts = validateBasic(curve);\n validateObject(opts, {\n a: 'field',\n b: 'field',\n }, {\n allowInfinityPoint: 'boolean',\n allowedPrivateKeyLengths: 'array',\n clearCofactor: 'function',\n fromBytes: 'function',\n isTorsionFree: 'function',\n toBytes: 'function',\n wrapPrivateKey: 'boolean',\n });\n const { endo, Fp, a } = opts;\n if (endo) {\n if (!Fp.eql(a, Fp.ZERO)) {\n throw new Error('invalid endo: CURVE.a must be 0');\n }\n if (typeof endo !== 'object' ||\n typeof endo.beta !== 'bigint' ||\n typeof endo.splitScalar !== 'function') {\n throw new Error('invalid endo: expected \"beta\": bigint and \"splitScalar\": function');\n }\n }\n return Object.freeze({ ...opts });\n}\nexport class DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n}\n/**\n * ASN.1 DER encoding utilities. ASN is very complex & fragile. Format:\n *\n * [0x30 (SEQUENCE), bytelength, 0x02 (INTEGER), intLength, R, 0x02 (INTEGER), intLength, S]\n *\n * Docs: https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/, https://luca.ntop.org/Teaching/Appunti/asn1.html\n */\nexport const DER = {\n // asn.1 DER encoding utils\n Err: DERErr,\n // Basic building block is TLV (Tag-Length-Value)\n _tlv: {\n encode: (tag, data) => {\n const { Err: E } = DER;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length & 1)\n throw new E('tlv.encode: unpadded data');\n const dataLen = data.length / 2;\n const len = numberToHexUnpadded(dataLen);\n if ((len.length / 2) & 128)\n throw new E('tlv.encode: long form length too big');\n // length of length with long form flag\n const lenLen = dataLen > 127 ? numberToHexUnpadded((len.length / 2) | 128) : '';\n const t = numberToHexUnpadded(tag);\n return t + lenLen + len + data;\n },\n // v - value, l - left bytes (unparsed)\n decode(tag, data) {\n const { Err: E } = DER;\n let pos = 0;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length < 2 || data[pos++] !== tag)\n throw new E('tlv.decode: wrong tlv');\n const first = data[pos++];\n const isLong = !!(first & 128); // First bit of first length byte is flag for short/long form\n let length = 0;\n if (!isLong)\n length = first;\n else {\n // Long form: [longFlag(1bit), lengthLength(7bit), length (BE)]\n const lenLen = first & 127;\n if (!lenLen)\n throw new E('tlv.decode(long): indefinite length not supported');\n if (lenLen > 4)\n throw new E('tlv.decode(long): byte length is too big'); // this will overflow u32 in js\n const lengthBytes = data.subarray(pos, pos + lenLen);\n if (lengthBytes.length !== lenLen)\n throw new E('tlv.decode: length bytes not complete');\n if (lengthBytes[0] === 0)\n throw new E('tlv.decode(long): zero leftmost byte');\n for (const b of lengthBytes)\n length = (length << 8) | b;\n pos += lenLen;\n if (length < 128)\n throw new E('tlv.decode(long): not minimal encoding');\n }\n const v = data.subarray(pos, pos + length);\n if (v.length !== length)\n throw new E('tlv.decode: wrong value length');\n return { v, l: data.subarray(pos + length) };\n },\n },\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 _int: {\n encode(num) {\n const { Err: E } = DER;\n if (num < _0n)\n throw new E('integer: negative integers are not allowed');\n let hex = numberToHexUnpadded(num);\n // Pad with zero byte if negative flag is present\n if (Number.parseInt(hex[0], 16) & 0b1000)\n hex = '00' + hex;\n if (hex.length & 1)\n throw new E('unexpected DER parsing assertion: unpadded hex');\n return hex;\n },\n decode(data) {\n const { Err: E } = DER;\n if (data[0] & 128)\n throw new E('invalid signature integer: negative');\n if (data[0] === 0x00 && !(data[1] & 128))\n throw new E('invalid signature integer: unnecessary leading zero');\n return bytesToNumberBE(data);\n },\n },\n toSig(hex) {\n // parse DER signature\n const { Err: E, _int: int, _tlv: tlv } = DER;\n const data = ensureBytes('signature', hex);\n const { v: seqBytes, l: seqLeftBytes } = tlv.decode(0x30, data);\n if (seqLeftBytes.length)\n throw new E('invalid signature: left bytes after parsing');\n const { v: rBytes, l: rLeftBytes } = tlv.decode(0x02, seqBytes);\n const { v: sBytes, l: sLeftBytes } = tlv.decode(0x02, rLeftBytes);\n if (sLeftBytes.length)\n throw new E('invalid signature: left bytes after parsing');\n return { r: int.decode(rBytes), s: int.decode(sBytes) };\n },\n hexFromSig(sig) {\n const { _tlv: tlv, _int: int } = DER;\n const rs = tlv.encode(0x02, int.encode(sig.r));\n const ss = tlv.encode(0x02, int.encode(sig.s));\n const seq = rs + ss;\n return tlv.encode(0x30, seq);\n },\n};\nfunction numToSizedHex(num, size) {\n return bytesToHex(numberToBytesBE(num, size));\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 Fn = Field(CURVE.n, CURVE.nBitLength);\n const toBytes = CURVE.toBytes ||\n ((_c, point, _isCompressed) => {\n const a = point.toAffine();\n return 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. Takes x, returns y².\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); // x² * x\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x³ + a * x + b\n }\n function isValidXY(x, y) {\n const left = Fp.sqr(y); // y²\n const right = weierstrassEquation(x); // x³ + ax + b\n return Fp.eql(left, right);\n }\n // Validate whether the passed curve params are valid.\n // Test 1: equation y² = x³ + ax + b should work for generator point.\n if (!isValidXY(CURVE.Gx, CURVE.Gy))\n throw new Error('bad curve params: generator point');\n // Test 2: discriminant Δ part should be non-zero: 4a³ + 27b² != 0.\n // Guarantees curve is genus-1, smooth (non-singular).\n const _4a3 = Fp.mul(Fp.pow(CURVE.a, _3n), _4n);\n const _27b2 = Fp.mul(Fp.sqr(CURVE.b), BigInt(27));\n if (Fp.is0(Fp.add(_4a3, _27b2)))\n throw new Error('bad curve params: a or b');\n // Valid group elements reside in range 1..n-1\n function isWithinCurveOrder(num) {\n return inRange(num, _1n, 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: N } = CURVE;\n if (lengths && typeof key !== 'bigint') {\n if (isBytes(key))\n key = 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 private key');\n key = key.padStart(nByteLength * 2, '0');\n }\n let num;\n try {\n num =\n typeof key === 'bigint'\n ? key\n : bytesToNumberBE(ensureBytes('private key', key, nByteLength));\n }\n catch (error) {\n throw new Error('invalid private key, expected hex or ' + nByteLength + ' bytes, got ' + typeof key);\n }\n if (wrapPrivateKey)\n num = mod(num, N); // disabled by default, enabled for BLS\n aInRange('private key', num, _1n, N); // num in range [1..N-1]\n return num;\n }\n function aprjpoint(other) {\n if (!(other instanceof Point))\n throw new Error('ProjectivePoint expected');\n }\n // Memoized toAffine / validity check. They are heavy. Points are immutable.\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 const toAffineMemo = memoized((p, iz) => {\n const { px: x, py: y, pz: z } = p;\n // Fast-path for normalized points\n if (Fp.eql(z, Fp.ONE))\n return { x, y };\n const is0 = p.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 // NOTE: on exception this will crash 'cached' and no value will be set.\n // Otherwise true will be return\n const assertValidMemo = memoized((p) => {\n if (p.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 invalid representation of ZERO.\n if (CURVE.allowInfinityPoint && !Fp.is0(p.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 } = p.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 if (!isValidXY(x, y))\n throw new Error('bad point: equation left != right');\n if (!p.isTorsionFree())\n throw new Error('bad point: not in prime-order subgroup');\n return true;\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 if (px == null || !Fp.isValid(px))\n throw new Error('x required');\n if (py == null || !Fp.isValid(py) || Fp.is0(py))\n throw new Error('y required');\n if (pz == null || !Fp.isValid(pz))\n throw new Error('z required');\n this.px = px;\n this.py = py;\n this.pz = pz;\n Object.freeze(this);\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 = FpInvertBatch(Fp, 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 // Multiscalar Multiplication\n static msm(points, scalars) {\n return pippenger(Point, Fn, points, scalars);\n }\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize) {\n wnaf.setWindowSize(this, windowSize);\n }\n // A point on curve is valid if it conforms to equation.\n assertValidity() {\n assertValidMemo(this);\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 aprjpoint(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 aprjpoint(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, n, Point.normalizeZ);\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(sc) {\n const { endo, n: N } = CURVE;\n aInRange('scalar', sc, _0n, N);\n const I = Point.ZERO;\n if (sc === _0n)\n return I;\n if (this.is0() || sc === _1n)\n return this;\n // Case a: no endomorphism. Case b: has precomputes.\n if (!endo || wnaf.hasPrecomputes(this))\n return wnaf.wNAFCachedUnsafe(this, sc, Point.normalizeZ);\n // Case c: endomorphism\n /** See docs for {@link EndomorphismOpts} */\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(sc);\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 const { endo, n: N } = CURVE;\n aInRange('scalar', scalar, _1n, N);\n let point, fake; // Fake point is used to const-time mult\n /** See docs for {@link EndomorphismOpts} */\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(scalar);\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(scalar);\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 return toAffineMemo(this, iz);\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 abool('isCompressed', isCompressed);\n this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n toHex(isCompressed = true) {\n abool('isCompressed', isCompressed);\n return bytesToHex(this.toRawBytes(isCompressed));\n }\n }\n // base / generator point\n Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n // zero / infinity / identity point\n Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO); // 0, 1, 0\n const { endo, nBitLength } = CURVE;\n const wnaf = wNAF(Point, endo ? Math.ceil(nBitLength / 2) : nBitLength);\n return {\n CURVE,\n ProjectivePoint: Point,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n };\n}\nfunction validateOpts(curve) {\n const opts = validateBasic(curve);\n 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}\n/**\n * Creates short weierstrass curve and ECDSA signature methods for it.\n * @example\n * import { Field } from '@noble/curves/abstract/modular';\n * // Before that, define BigInt-s: a, b, p, n, Gx, Gy\n * const curve = weierstrass({ a, b, Fp: Field(p), n, Gx, Gy, h: 1n })\n */\nexport function weierstrass(curveDef) {\n const CURVE = validateOpts(curveDef);\n const { Fp, n: CURVE_ORDER, nByteLength, nBitLength } = 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 modN(a) {\n return mod(a, CURVE_ORDER);\n }\n function invN(a) {\n return 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 = concatBytes;\n abool('isCompressed', isCompressed);\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 = bytesToNumberBE(tail);\n if (!inRange(x, _1n, Fp.ORDER))\n throw new Error('Point is not on curve');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y;\n try {\n y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n }\n catch (sqrtError) {\n const suffix = sqrtError instanceof Error ? ': ' + sqrtError.message : '';\n throw new Error('Point is not on curve' + suffix);\n }\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 const cl = compressedLen;\n const ul = uncompressedLen;\n throw new Error('invalid Point, expected length of ' + cl + ', or uncompressed ' + ul + ', got ' + len);\n }\n },\n });\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) => 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 aInRange('r', r, _1n, CURVE_ORDER); // r in [1..N]\n aInRange('s', s, _1n, CURVE_ORDER); // s in [1..N]\n this.r = r;\n this.s = s;\n if (recovery != null)\n this.recovery = recovery;\n Object.freeze(this);\n }\n // pair (bytes of r, bytes of s)\n static fromCompact(hex) {\n const l = 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 /**\n * @todo remove\n * @deprecated\n */\n assertValidity() { }\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 + numToSizedHex(radj, Fp.BYTES));\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 hexToBytes(this.toDERHex());\n }\n toDERHex() {\n return DER.hexFromSig(this);\n }\n // padded bytes of r, then padded bytes of s\n toCompactRawBytes() {\n return hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n const l = nByteLength;\n return numToSizedHex(this.r, l) + numToSizedHex(this.s, l);\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 = getMinHashLength(CURVE.n);\n return 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 if (typeof item === 'bigint')\n return false;\n if (item instanceof Point)\n return true;\n const arr = ensureBytes('key', item);\n const len = arr.length;\n const fpl = Fp.BYTES;\n const compLen = fpl + 1; // e.g. 33 for 32\n const uncompLen = 2 * fpl + 1; // e.g. 65 for 32\n if (CURVE.allowedPrivateKeyLengths || nByteLength === compLen) {\n return undefined;\n }\n else {\n return len === compLen || len === uncompLen;\n }\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) === true)\n throw new Error('first arg must be private key');\n if (isProbPub(publicB) === false)\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 // Our custom check \"just in case\", for protection against DoS\n if (bytes.length > 8192)\n throw new Error('input is too large');\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 = bytesToNumberBE(bytes); // check for == u8 done here\n const delta = bytes.length * 8 - 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 = bitMask(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 aInRange('num < 2^' + nBitLength, num, _0n, ORDER_MASK);\n // works with order, can have different size than numToField!\n return numberToBytesBE(num, 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,\n // this will be invalid at least for P521. 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 validateSigVerOpts(opts);\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 && ent !== false) {\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 = 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 = 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 const { lowS, prehash, format } = opts;\n // Verify opts, deduce signature format\n validateSigVerOpts(opts);\n if ('strict' in opts)\n throw new Error('options.strict was renamed to lowS');\n if (format !== undefined && format !== 'compact' && format !== 'der')\n throw new Error('format must be compact or der');\n const isHex = typeof sg === 'string' || isBytes(sg);\n const isObj = !isHex &&\n !format &&\n typeof sg === 'object' &&\n sg !== null &&\n typeof sg.r === 'bigint' &&\n typeof sg.s === 'bigint';\n if (!isHex && !isObj)\n throw new Error('invalid signature, expected Uint8Array, hex string or Signature instance');\n let _sig = undefined;\n let P;\n try {\n if (isObj)\n _sig = new Signature(sg.r, sg.s);\n if (isHex) {\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 if (format !== 'compact')\n _sig = Signature.fromDER(sg);\n }\n catch (derError) {\n if (!(derError instanceof DER.Err))\n throw derError;\n }\n if (!_sig && format !== 'der')\n _sig = Signature.fromCompact(sg);\n }\n P = Point.fromHex(publicKey);\n }\n catch (error) {\n return false;\n }\n if (!_sig)\n return false;\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 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 const tv4_inv = FpInvertBatch(Fp, [tv4], true)[0];\n x = Fp.mul(x, tv4_inv); // 25. x = x / tv4\n return { x, y };\n };\n}\n//# sourceMappingURL=weierstrass.js.map","/**\n * Utilities for short weierstrass curves, combined with noble-hashes.\n * @module\n */\n/*! 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 { ...create(defHash), create };\n}\n//# sourceMappingURL=_shortw_utils.js.map","/**\n * NIST secp256k1. See [pdf](https://www.secg.org/sec2-v2.pdf).\n *\n * Seems to be rigid (not backdoored)\n * [as per discussion](https://bitcointalk.org/index.php?topic=289795.msg3183975#msg3183975).\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 * [See explanation](https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066).\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha256 } from '@noble/hashes/sha2';\nimport { randomBytes } from '@noble/hashes/utils';\nimport { createCurve } from \"./_shortw_utils.js\";\nimport { createHasher, isogenyMap } from \"./abstract/hash-to-curve.js\";\nimport { Field, mod, pow2 } from \"./abstract/modular.js\";\nimport { aInRange, bytesToNumberBE, concatBytes, ensureBytes, inRange, numberToBytesBE, } from \"./abstract/utils.js\";\nimport { mapToCurveSimpleSWU } from \"./abstract/weierstrass.js\";\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nconst _0n = BigInt(0);\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 (!Fpk1.eql(Fpk1.sqr(root), y))\n throw new Error('Cannot find square root');\n return root;\n}\nconst Fpk1 = Field(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\n/**\n * secp256k1 curve, ECDSA and ECDH methods.\n *\n * Field: `2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n`\n *\n * @example\n * ```js\n * import { secp256k1 } from '@noble/curves/secp256k1';\n * const priv = secp256k1.utils.randomPrivateKey();\n * const pub = secp256k1.getPublicKey(priv);\n * const msg = new Uint8Array(32).fill(1); // message hash (not message) in ecdsa\n * const sig = secp256k1.sign(msg, priv); // `{prehash: true}` option is available\n * const isValid = secp256k1.verify(sig, msg, pub) === true;\n * ```\n */\nexport const secp256k1 = createCurve({\n a: _0n,\n b: BigInt(7),\n Fp: Fpk1,\n n: secp256k1N,\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1),\n lowS: true, // Allow only low-S signatures by default in sign() and verify()\n endo: {\n // Endomorphism, see above\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\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 = /* @__PURE__ */ (() => 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 aInRange('x', x, _1n, secp256k1P); // 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}\nconst num = bytesToNumberBE;\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args) {\n return modN(num(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 ^ num(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(num(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(num(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = num(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!inRange(r, _1n, secp256k1P))\n return false;\n const s = num(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!inRange(s, _1n, secp256k1N))\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}\n/**\n * Schnorr signatures over secp256k1.\n * https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\n * @example\n * ```js\n * import { schnorr } from '@noble/curves/secp256k1';\n * const priv = schnorr.utils.randomPrivateKey();\n * const pub = schnorr.getPublicKey(priv);\n * const msg = new TextEncoder().encode('hello');\n * const sig = schnorr.sign(msg, priv);\n * const isValid = schnorr.verify(sig, msg, pub);\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(Fpk1, [\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(Fpk1, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fpk1.create(BigInt('-11')),\n}))();\n/** Hashing / encoding to secp256k1 points / field. RFC 9380 methods. */\nexport const secp256k1_hasher = /* @__PURE__ */ (() => createHasher(secp256k1.ProjectivePoint, (scalars) => {\n const { x, y } = mapSWU(Fpk1.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: Fpk1.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha256,\n}))();\nexport const hashToCurve = /* @__PURE__ */ (() => secp256k1_hasher.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => secp256k1_hasher.encodeToCurve)();\n//# sourceMappingURL=secp256k1.js.map","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar asn1 = require('./asn1');\nvar aesid = require('./aesid.json');\nvar fixProc = require('./fixProc');\nvar ciphers = require('browserify-aes');\nvar pbkdf2Sync = require('pbkdf2').pbkdf2Sync;\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction decrypt(data, password) {\n\tvar salt = data.algorithm.decrypt.kde.kdeparams.salt;\n\tvar iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10);\n\tvar algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')];\n\tvar iv = data.algorithm.decrypt.cipher.iv;\n\tvar cipherText = data.subjectPrivateKey;\n\tvar keylen = parseInt(algo.split('-')[1], 10) / 8;\n\tvar key = pbkdf2Sync(password, salt, iters, keylen, 'sha1');\n\tvar cipher = ciphers.createDecipheriv(algo, key, iv);\n\tvar out = [];\n\tout.push(cipher.update(cipherText));\n\tout.push(cipher['final']());\n\treturn Buffer.concat(out);\n}\n\nfunction parseKeys(buffer) {\n\tvar password;\n\tif (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n\t\tpassword = buffer.passphrase;\n\t\tbuffer = buffer.key;\n\t}\n\tif (typeof buffer === 'string') {\n\t\tbuffer = Buffer.from(buffer);\n\t}\n\n\tvar stripped = fixProc(buffer, password);\n\n\tvar type = stripped.tag;\n\tvar data = stripped.data;\n\tvar subtype, ndata;\n\tswitch (type) {\n\t\tcase 'CERTIFICATE':\n\t\t\tndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo;\n\t\t\t// falls through\n\t\tcase 'PUBLIC KEY':\n\t\t\tif (!ndata) {\n\t\t\t\tndata = asn1.PublicKey.decode(data, 'der');\n\t\t\t}\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\tndata.subjectPrivateKey = ndata.subjectPublicKey;\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'ec',\n\t\t\t\t\t\tdata: ndata\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tdata: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'ENCRYPTED PRIVATE KEY':\n\t\t\tdata = asn1.EncryptedPrivateKey.decode(data, 'der');\n\t\t\tdata = decrypt(data, password);\n\t\t\t// falls through\n\t\tcase 'PRIVATE KEY':\n\t\t\tndata = asn1.PrivateKey.decode(data, 'der');\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcurve: ndata.algorithm.curve,\n\t\t\t\t\t\tprivateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tparams: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'RSA PUBLIC KEY':\n\t\t\treturn asn1.RSAPublicKey.decode(data, 'der');\n\t\tcase 'RSA PRIVATE KEY':\n\t\t\treturn asn1.RSAPrivateKey.decode(data, 'der');\n\t\tcase 'DSA PRIVATE KEY':\n\t\t\treturn {\n\t\t\t\ttype: 'dsa',\n\t\t\t\tparams: asn1.DSAPrivateKey.decode(data, 'der')\n\t\t\t};\n\t\tcase 'EC PRIVATE KEY':\n\t\t\tdata = asn1.ECPrivateKey.decode(data, 'der');\n\t\t\treturn {\n\t\t\t\tcurve: data.parameters.value,\n\t\t\t\tprivateKey: data.privateKey\n\t\t\t};\n\t\tdefault: throw new Error('unknown key type ' + type);\n\t}\n}\nparseKeys.signature = asn1.signature;\n\nmodule.exports = parseKeys;\n","import { withResolvers } from './withResolvers.js';\nconst schedulerCache = /*#__PURE__*/ new Map();\n/** @internal */\nexport function createBatchScheduler({ fn, id, shouldSplitBatch, wait = 0, sort, }) {\n const exec = async () => {\n const scheduler = getScheduler();\n flush();\n const args = scheduler.map(({ args }) => args);\n if (args.length === 0)\n return;\n fn(args)\n .then((data) => {\n if (sort && Array.isArray(data))\n data.sort(sort);\n for (let i = 0; i < scheduler.length; i++) {\n const { resolve } = scheduler[i];\n resolve?.([data[i], data]);\n }\n })\n .catch((err) => {\n for (let i = 0; i < scheduler.length; i++) {\n const { reject } = scheduler[i];\n reject?.(err);\n }\n });\n };\n const flush = () => schedulerCache.delete(id);\n const getBatchedArgs = () => getScheduler().map(({ args }) => args);\n const getScheduler = () => schedulerCache.get(id) || [];\n const setScheduler = (item) => schedulerCache.set(id, [...getScheduler(), item]);\n return {\n flush,\n async schedule(args) {\n const { promise, resolve, reject } = withResolvers();\n const split = shouldSplitBatch?.([...getBatchedArgs(), args]);\n if (split)\n exec();\n const hasActiveScheduler = getScheduler().length > 0;\n if (hasActiveScheduler) {\n setScheduler({ args, resolve, reject });\n return promise;\n }\n setScheduler({ args, resolve, reject });\n setTimeout(exec, wait);\n return promise;\n },\n };\n}\n//# sourceMappingURL=createBatchScheduler.js.map","import * as Arr from \"../../Array.js\";\nimport { equals } from \"../../Equal.js\";\nimport { dual } from \"../../Function.js\";\nimport * as fiberRefs_ from \"../fiberRefs.js\";\n/** @internal */\nexport const OP_EMPTY = \"Empty\";\n/** @internal */\nexport const OP_ADD = \"Add\";\n/** @internal */\nexport const OP_REMOVE = \"Remove\";\n/** @internal */\nexport const OP_UPDATE = \"Update\";\n/** @internal */\nexport const OP_AND_THEN = \"AndThen\";\n/** @internal */\nexport const empty = {\n _tag: OP_EMPTY\n};\n/** @internal */\nexport const diff = (oldValue, newValue) => {\n const missingLocals = new Map(oldValue.locals);\n let patch = empty;\n for (const [fiberRef, pairs] of newValue.locals.entries()) {\n const newValue = Arr.headNonEmpty(pairs)[1];\n const old = missingLocals.get(fiberRef);\n if (old !== undefined) {\n const oldValue = Arr.headNonEmpty(old)[1];\n if (!equals(oldValue, newValue)) {\n patch = combine({\n _tag: OP_UPDATE,\n fiberRef,\n patch: fiberRef.diff(oldValue, newValue)\n })(patch);\n }\n } else {\n patch = combine({\n _tag: OP_ADD,\n fiberRef,\n value: newValue\n })(patch);\n }\n missingLocals.delete(fiberRef);\n }\n for (const [fiberRef] of missingLocals.entries()) {\n patch = combine({\n _tag: OP_REMOVE,\n fiberRef\n })(patch);\n }\n return patch;\n};\n/** @internal */\nexport const combine = /*#__PURE__*/dual(2, (self, that) => ({\n _tag: OP_AND_THEN,\n first: self,\n second: that\n}));\n/** @internal */\nexport const patch = /*#__PURE__*/dual(3, (self, fiberId, oldValue) => {\n let fiberRefs = oldValue;\n let patches = Arr.of(self);\n while (Arr.isNonEmptyReadonlyArray(patches)) {\n const head = Arr.headNonEmpty(patches);\n const tail = Arr.tailNonEmpty(patches);\n switch (head._tag) {\n case OP_EMPTY:\n {\n patches = tail;\n break;\n }\n case OP_ADD:\n {\n fiberRefs = fiberRefs_.updateAs(fiberRefs, {\n fiberId,\n fiberRef: head.fiberRef,\n value: head.value\n });\n patches = tail;\n break;\n }\n case OP_REMOVE:\n {\n fiberRefs = fiberRefs_.delete_(fiberRefs, head.fiberRef);\n patches = tail;\n break;\n }\n case OP_UPDATE:\n {\n const value = fiberRefs_.getOrDefault(fiberRefs, head.fiberRef);\n fiberRefs = fiberRefs_.updateAs(fiberRefs, {\n fiberId,\n fiberRef: head.fiberRef,\n value: head.fiberRef.patch(head.patch)(value)\n });\n patches = tail;\n break;\n }\n case OP_AND_THEN:\n {\n patches = Arr.prepend(head.first)(Arr.prepend(head.second)(tail));\n break;\n }\n }\n }\n return fiberRefs;\n});\n//# sourceMappingURL=patch.js.map","/**\n * @since 2.0.0\n */\nimport { pipe } from \"./Function.js\";\nimport { globalValue } from \"./GlobalValue.js\";\nimport { hasProperty } from \"./Predicate.js\";\nimport { structuralRegionState } from \"./Utils.js\";\n/** @internal */\nconst randomHashCache = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Hash/randomHashCache\"), () => new WeakMap());\n/**\n * @since 2.0.0\n * @category symbols\n */\nexport const symbol = /*#__PURE__*/Symbol.for(\"effect/Hash\");\n/**\n * @since 2.0.0\n * @category hashing\n */\nexport const hash = self => {\n if (structuralRegionState.enabled === true) {\n return 0;\n }\n switch (typeof self) {\n case \"number\":\n return number(self);\n case \"bigint\":\n return string(self.toString(10));\n case \"boolean\":\n return string(String(self));\n case \"symbol\":\n return string(String(self));\n case \"string\":\n return string(self);\n case \"undefined\":\n return string(\"undefined\");\n case \"function\":\n case \"object\":\n {\n if (self === null) {\n return string(\"null\");\n } else if (self instanceof Date) {\n if (Number.isNaN(self.getTime())) {\n return string(\"Invalid Date\");\n }\n return hash(self.toISOString());\n } else if (self instanceof URL) {\n return hash(self.href);\n } else if (isHash(self)) {\n return self[symbol]();\n } else {\n return random(self);\n }\n }\n default:\n throw new Error(`BUG: unhandled typeof ${typeof self} - please report an issue at https://github.com/Effect-TS/effect/issues`);\n }\n};\n/**\n * @since 2.0.0\n * @category hashing\n */\nexport const random = self => {\n if (!randomHashCache.has(self)) {\n randomHashCache.set(self, number(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER)));\n }\n return randomHashCache.get(self);\n};\n/**\n * @since 2.0.0\n * @category hashing\n */\nexport const combine = b => self => self * 53 ^ b;\n/**\n * @since 2.0.0\n * @category hashing\n */\nexport const optimize = n => n & 0xbfffffff | n >>> 1 & 0x40000000;\n/**\n * @since 2.0.0\n * @category guards\n */\nexport const isHash = u => hasProperty(u, symbol);\n/**\n * @since 2.0.0\n * @category hashing\n */\nexport const number = n => {\n if (n !== n || n === Infinity) {\n return 0;\n }\n let h = n | 0;\n if (h !== n) {\n h ^= n * 0xffffffff;\n }\n while (n > 0xffffffff) {\n h ^= n /= 0xffffffff;\n }\n return optimize(h);\n};\n/**\n * @since 2.0.0\n * @category hashing\n */\nexport const string = str => {\n let h = 5381,\n i = str.length;\n while (i) {\n h = h * 33 ^ str.charCodeAt(--i);\n }\n return optimize(h);\n};\n/**\n * @since 2.0.0\n * @category hashing\n */\nexport const structureKeys = (o, keys) => {\n let h = 12289;\n for (let i = 0; i < keys.length; i++) {\n h ^= pipe(string(keys[i]), combine(hash(o[keys[i]])));\n }\n return optimize(h);\n};\n/**\n * @since 2.0.0\n * @category hashing\n */\nexport const structure = o => structureKeys(o, Object.keys(o));\n/**\n * @since 2.0.0\n * @category hashing\n */\nexport const array = arr => {\n let h = 6151;\n for (let i = 0; i < arr.length; i++) {\n h = pipe(h, combine(hash(arr[i])));\n }\n return optimize(h);\n};\n/**\n * @since 2.0.0\n * @category hashing\n */\nexport const cached = function () {\n if (arguments.length === 1) {\n const self = arguments[0];\n return function (hash) {\n Object.defineProperty(self, symbol, {\n value() {\n return hash;\n },\n enumerable: false\n });\n return hash;\n };\n }\n const self = arguments[0];\n const hash = arguments[1];\n Object.defineProperty(self, symbol, {\n value() {\n return hash;\n },\n enumerable: false\n });\n return hash;\n};\n//# sourceMappingURL=Hash.js.map","import { wait } from './wait.js';\n/**\n * @description Polls a function at a specified interval.\n */\nexport function poll(fn, { emitOnBegin, initialWaitTime, interval }) {\n let active = true;\n const unwatch = () => (active = false);\n const watch = async () => {\n let data;\n if (emitOnBegin)\n data = await fn({ unpoll: unwatch });\n const initialWait = (await initialWaitTime?.(data)) ?? interval;\n await wait(initialWait);\n const poll = async () => {\n if (!active)\n return;\n await fn({ unpoll: unwatch });\n await wait(interval);\n poll();\n };\n poll();\n };\n watch();\n return unwatch;\n}\n//# sourceMappingURL=poll.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","var decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","import { keccak256 } from '../hash/keccak256.js';\nimport { toPrefixedMessage } from './toPrefixedMessage.js';\nexport function hashMessage(message, to_) {\n return keccak256(toPrefixedMessage(message), to_);\n}\n//# sourceMappingURL=hashMessage.js.map","import { presignMessagePrefix } from '../../constants/strings.js';\nimport { concat } from '../data/concat.js';\nimport { size } from '../data/size.js';\nimport { bytesToHex, stringToHex, } from '../encoding/toHex.js';\nexport function toPrefixedMessage(message_) {\n const message = (() => {\n if (typeof message_ === 'string')\n return stringToHex(message_);\n if (typeof message_.raw === 'string')\n return message_.raw;\n return bytesToHex(message_.raw);\n })();\n const prefix = stringToHex(`${presignMessagePrefix}${size(message)}`);\n return concat([prefix, message]);\n}\n//# sourceMappingURL=toPrefixedMessage.js.map","import { hexToNumber } from '../encoding/fromHex.js';\nimport { defineFormatter } from './formatter.js';\nexport const transactionType = {\n '0x0': 'legacy',\n '0x1': 'eip2930',\n '0x2': 'eip1559',\n '0x3': 'eip4844',\n '0x4': 'eip7702',\n};\nexport function formatTransaction(transaction, _) {\n const transaction_ = {\n ...transaction,\n blockHash: transaction.blockHash ? transaction.blockHash : null,\n blockNumber: transaction.blockNumber\n ? BigInt(transaction.blockNumber)\n : null,\n chainId: transaction.chainId ? hexToNumber(transaction.chainId) : undefined,\n gas: transaction.gas ? BigInt(transaction.gas) : undefined,\n gasPrice: transaction.gasPrice ? BigInt(transaction.gasPrice) : undefined,\n maxFeePerBlobGas: transaction.maxFeePerBlobGas\n ? BigInt(transaction.maxFeePerBlobGas)\n : undefined,\n maxFeePerGas: transaction.maxFeePerGas\n ? BigInt(transaction.maxFeePerGas)\n : undefined,\n maxPriorityFeePerGas: transaction.maxPriorityFeePerGas\n ? BigInt(transaction.maxPriorityFeePerGas)\n : undefined,\n nonce: transaction.nonce ? hexToNumber(transaction.nonce) : undefined,\n to: transaction.to ? transaction.to : null,\n transactionIndex: transaction.transactionIndex\n ? Number(transaction.transactionIndex)\n : null,\n type: transaction.type\n ? transactionType[transaction.type]\n : undefined,\n typeHex: transaction.type ? transaction.type : undefined,\n value: transaction.value ? BigInt(transaction.value) : undefined,\n v: transaction.v ? BigInt(transaction.v) : undefined,\n };\n if (transaction.authorizationList)\n transaction_.authorizationList = formatAuthorizationList(transaction.authorizationList);\n transaction_.yParity = (() => {\n // If `yParity` is provided, we will use it.\n if (transaction.yParity)\n return Number(transaction.yParity);\n // If no `yParity` provided, try derive from `v`.\n if (typeof transaction_.v === 'bigint') {\n if (transaction_.v === 0n || transaction_.v === 27n)\n return 0;\n if (transaction_.v === 1n || transaction_.v === 28n)\n return 1;\n if (transaction_.v >= 35n)\n return transaction_.v % 2n === 0n ? 1 : 0;\n }\n return undefined;\n })();\n if (transaction_.type === 'legacy') {\n delete transaction_.accessList;\n delete transaction_.maxFeePerBlobGas;\n delete transaction_.maxFeePerGas;\n delete transaction_.maxPriorityFeePerGas;\n delete transaction_.yParity;\n }\n if (transaction_.type === 'eip2930') {\n delete transaction_.maxFeePerBlobGas;\n delete transaction_.maxFeePerGas;\n delete transaction_.maxPriorityFeePerGas;\n }\n if (transaction_.type === 'eip1559')\n delete transaction_.maxFeePerBlobGas;\n return transaction_;\n}\nexport const defineTransaction = /*#__PURE__*/ defineFormatter('transaction', formatTransaction);\n//////////////////////////////////////////////////////////////////////////////\nfunction formatAuthorizationList(authorizationList) {\n return authorizationList.map((authorization) => ({\n address: authorization.address,\n chainId: Number(authorization.chainId),\n nonce: Number(authorization.nonce),\n r: authorization.r,\n s: authorization.s,\n yParity: Number(authorization.yParity),\n }));\n}\n//# sourceMappingURL=transaction.js.map","/**\n * Internal helpers for u64. BigUint64Array is too slow as per 2025, so we implement it using Uint32Array.\n * @todo re-check https://issues.chromium.org/issues/42212588\n * @module\n */\nconst U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\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 const len = lst.length;\n let Ah = new Uint32Array(len);\n let Al = new Uint32Array(len);\n for (let i = 0; i < len; 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 { add, add3H, add3L, add4H, add4L, add5H, add5L, fromBig, rotlBH, rotlBL, rotlSH, rotlSL, rotr32H, rotr32L, rotrBH, rotrBL, rotrSH, rotrSL, shrSH, shrSL, split, toBig };\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 * as internal from \"./internal/context.js\";\n/**\n * @since 2.0.0\n * @category symbol\n */\nexport const TagTypeId = internal.TagTypeId;\n/**\n * @since 3.11.0\n * @category symbol\n */\nexport const ReferenceTypeId = internal.ReferenceTypeId;\n/**\n * Creates a new `Tag` instance with an optional key parameter.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context } from \"effect\"\n *\n * assert.strictEqual(Context.GenericTag(\"PORT\").key === Context.GenericTag(\"PORT\").key, true)\n * ```\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const GenericTag = internal.makeGenericTag;\nconst TypeId = internal.TypeId;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const unsafeMake = internal.makeContext;\n/**\n * Checks if the provided argument is a `Context`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context } from \"effect\"\n *\n * assert.strictEqual(Context.isContext(Context.empty()), true)\n * ```\n *\n * @since 2.0.0\n * @category guards\n */\nexport const isContext = internal.isContext;\n/**\n * Checks if the provided argument is a `Tag`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context } from \"effect\"\n *\n * assert.strictEqual(Context.isTag(Context.GenericTag(\"Tag\")), true)\n * ```\n *\n * @since 2.0.0\n * @category guards\n */\nexport const isTag = internal.isTag;\n/**\n * Checks if the provided argument is a `Reference`.\n *\n * @since 3.11.0\n * @category guards\n * @experimental\n */\nexport const isReference = internal.isReference;\n/**\n * Returns an empty `Context`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context } from \"effect\"\n *\n * assert.strictEqual(Context.isContext(Context.empty()), true)\n * ```\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const empty = internal.empty;\n/**\n * Creates a new `Context` with a single service associated to the tag.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context } from \"effect\"\n *\n * const Port = Context.GenericTag<{ PORT: number }>(\"Port\")\n *\n * const Services = Context.make(Port, { PORT: 8080 })\n *\n * assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })\n * ```\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const make = internal.make;\n/**\n * Adds a service to a given `Context`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context, pipe } from \"effect\"\n *\n * const Port = Context.GenericTag<{ PORT: number }>(\"Port\")\n * const Timeout = Context.GenericTag<{ TIMEOUT: number }>(\"Timeout\")\n *\n * const someContext = Context.make(Port, { PORT: 8080 })\n *\n * const Services = pipe(\n * someContext,\n * Context.add(Timeout, { TIMEOUT: 5000 })\n * )\n *\n * assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })\n * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })\n * ```\n *\n * @since 2.0.0\n */\nexport const add = internal.add;\n/**\n * Get a service from the context that corresponds to the given tag.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { pipe, Context } from \"effect\"\n *\n * const Port = Context.GenericTag<{ PORT: number }>(\"Port\")\n * const Timeout = Context.GenericTag<{ TIMEOUT: number }>(\"Timeout\")\n *\n * const Services = pipe(\n * Context.make(Port, { PORT: 8080 }),\n * Context.add(Timeout, { TIMEOUT: 5000 })\n * )\n *\n * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })\n * ```\n *\n * @since 2.0.0\n * @category getters\n */\nexport const get = internal.get;\n/**\n * Get a service from the context that corresponds to the given tag, or\n * use the fallback value.\n *\n * @since 3.7.0\n * @category getters\n */\nexport const getOrElse = internal.getOrElse;\n/**\n * Get a service from the context that corresponds to the given tag.\n * This function is unsafe because if the tag is not present in the context, a runtime error will be thrown.\n *\n * For a safer version see {@link getOption}.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context } from \"effect\"\n *\n * const Port = Context.GenericTag<{ PORT: number }>(\"Port\")\n * const Timeout = Context.GenericTag<{ TIMEOUT: number }>(\"Timeout\")\n *\n * const Services = Context.make(Port, { PORT: 8080 })\n *\n * assert.deepStrictEqual(Context.unsafeGet(Services, Port), { PORT: 8080 })\n * assert.throws(() => Context.unsafeGet(Services, Timeout))\n * ```\n *\n * @since 2.0.0\n * @category unsafe\n */\nexport const unsafeGet = internal.unsafeGet;\n/**\n * Get the value associated with the specified tag from the context wrapped in an `Option` object. If the tag is not\n * found, the `Option` object will be `None`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context, Option } from \"effect\"\n *\n * const Port = Context.GenericTag<{ PORT: number }>(\"Port\")\n * const Timeout = Context.GenericTag<{ TIMEOUT: number }>(\"Timeout\")\n *\n * const Services = Context.make(Port, { PORT: 8080 })\n *\n * assert.deepStrictEqual(Context.getOption(Services, Port), Option.some({ PORT: 8080 }))\n * assert.deepStrictEqual(Context.getOption(Services, Timeout), Option.none())\n * ```\n *\n * @since 2.0.0\n * @category getters\n */\nexport const getOption = internal.getOption;\n/**\n * Merges two `Context`s, returning a new `Context` containing the services of both.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context } from \"effect\"\n *\n * const Port = Context.GenericTag<{ PORT: number }>(\"Port\")\n * const Timeout = Context.GenericTag<{ TIMEOUT: number }>(\"Timeout\")\n *\n * const firstContext = Context.make(Port, { PORT: 8080 })\n * const secondContext = Context.make(Timeout, { TIMEOUT: 5000 })\n *\n * const Services = Context.merge(firstContext, secondContext)\n *\n * assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })\n * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })\n * ```\n *\n * @since 2.0.0\n */\nexport const merge = internal.merge;\n/**\n * Merges any number of `Context`s, returning a new `Context` containing the services of all.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context } from \"effect\"\n *\n * const Port = Context.GenericTag<{ PORT: number }>(\"Port\")\n * const Timeout = Context.GenericTag<{ TIMEOUT: number }>(\"Timeout\")\n * const Host = Context.GenericTag<{ HOST: string }>(\"Host\")\n *\n * const firstContext = Context.make(Port, { PORT: 8080 })\n * const secondContext = Context.make(Timeout, { TIMEOUT: 5000 })\n * const thirdContext = Context.make(Host, { HOST: \"localhost\" })\n *\n * const Services = Context.mergeAll(firstContext, secondContext, thirdContext)\n *\n * assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })\n * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })\n * assert.deepStrictEqual(Context.get(Services, Host), { HOST: \"localhost\" })\n * ```\n *\n * @since 3.12.0\n */\nexport const mergeAll = internal.mergeAll;\n/**\n * Returns a new `Context` that contains only the specified services.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { pipe, Context, Option } from \"effect\"\n *\n * const Port = Context.GenericTag<{ PORT: number }>(\"Port\")\n * const Timeout = Context.GenericTag<{ TIMEOUT: number }>(\"Timeout\")\n *\n * const someContext = pipe(\n * Context.make(Port, { PORT: 8080 }),\n * Context.add(Timeout, { TIMEOUT: 5000 })\n * )\n *\n * const Services = pipe(someContext, Context.pick(Port))\n *\n * assert.deepStrictEqual(Context.getOption(Services, Port), Option.some({ PORT: 8080 }))\n * assert.deepStrictEqual(Context.getOption(Services, Timeout), Option.none())\n * ```\n *\n * @since 2.0.0\n */\nexport const pick = internal.pick;\n/**\n * @since 2.0.0\n */\nexport const omit = internal.omit;\n/**\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context, Layer } from \"effect\"\n *\n * class MyTag extends Context.Tag(\"MyTag\")<\n * MyTag,\n * { readonly myNum: number }\n * >() {\n * static Live = Layer.succeed(this, { myNum: 108 })\n * }\n * ```\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const Tag = internal.Tag;\n/**\n * Creates a context tag with a default value.\n *\n * **Details**\n *\n * `Context.Reference` allows you to create a tag that can hold a value. You can\n * provide a default value for the service, which will automatically be used\n * when the context is accessed, or override it with a custom implementation\n * when needed.\n *\n * **Example** (Declaring a Tag with a default value)\n *\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context, Effect } from \"effect\"\n *\n * class SpecialNumber extends Context.Reference()(\n * \"SpecialNumber\",\n * { defaultValue: () => 2048 }\n * ) {}\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function* () {\n * const specialNumber = yield* SpecialNumber\n * console.log(`The special number is ${specialNumber}`)\n * })\n *\n * // No need to provide the SpecialNumber implementation\n * Effect.runPromise(program)\n * // Output: The special number is 2048\n * ```\n *\n * **Example** (Overriding the default value)\n *\n * ```ts\n * import { Context, Effect } from \"effect\"\n *\n * class SpecialNumber extends Context.Reference()(\n * \"SpecialNumber\",\n * { defaultValue: () => 2048 }\n * ) {}\n *\n * const program = Effect.gen(function* () {\n * const specialNumber = yield* SpecialNumber\n * console.log(`The special number is ${specialNumber}`)\n * })\n *\n * Effect.runPromise(program.pipe(Effect.provideService(SpecialNumber, -1)))\n * // Output: The special number is -1\n * ```\n *\n * @since 3.11.0\n * @category constructors\n * @experimental\n */\nexport const Reference = internal.Reference;\n//# sourceMappingURL=Context.js.map","/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray;\nfunction noop() {}\nvar ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, props) {\n var refProp = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== refProp ? refProp : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, oldElement.props);\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\nexports.Activity = REACT_ACTIVITY_TYPE;\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cacheSignal = function () {\n return null;\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useEffectEvent = function (callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.2.3\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","import * as Arr from \"../../Array.js\";\nimport * as Equal from \"../../Equal.js\";\nimport * as Dual from \"../../Function.js\";\nimport * as Data from \"../data.js\";\n/** @internal */\nexport const ReadonlyArrayPatchTypeId = /*#__PURE__*/Symbol.for(\"effect/DifferReadonlyArrayPatch\");\nfunction variance(a) {\n return a;\n}\nconst PatchProto = {\n ...Data.Structural.prototype,\n [ReadonlyArrayPatchTypeId]: {\n _Value: variance,\n _Patch: variance\n }\n};\nconst EmptyProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Empty\"\n});\nconst _empty = /*#__PURE__*/Object.create(EmptyProto);\n/**\n * @internal\n */\nexport const empty = () => _empty;\nconst AndThenProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"AndThen\"\n});\nconst makeAndThen = (first, second) => {\n const o = Object.create(AndThenProto);\n o.first = first;\n o.second = second;\n return o;\n};\nconst AppendProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Append\"\n});\nconst makeAppend = values => {\n const o = Object.create(AppendProto);\n o.values = values;\n return o;\n};\nconst SliceProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Slice\"\n});\nconst makeSlice = (from, until) => {\n const o = Object.create(SliceProto);\n o.from = from;\n o.until = until;\n return o;\n};\nconst UpdateProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Update\"\n});\nconst makeUpdate = (index, patch) => {\n const o = Object.create(UpdateProto);\n o.index = index;\n o.patch = patch;\n return o;\n};\n/** @internal */\nexport const diff = options => {\n let i = 0;\n let patch = empty();\n while (i < options.oldValue.length && i < options.newValue.length) {\n const oldElement = options.oldValue[i];\n const newElement = options.newValue[i];\n const valuePatch = options.differ.diff(oldElement, newElement);\n if (!Equal.equals(valuePatch, options.differ.empty)) {\n patch = combine(patch, makeUpdate(i, valuePatch));\n }\n i = i + 1;\n }\n if (i < options.oldValue.length) {\n patch = combine(patch, makeSlice(0, i));\n }\n if (i < options.newValue.length) {\n patch = combine(patch, makeAppend(Arr.drop(i)(options.newValue)));\n }\n return patch;\n};\n/** @internal */\nexport const combine = /*#__PURE__*/Dual.dual(2, (self, that) => makeAndThen(self, that));\n/** @internal */\nexport const patch = /*#__PURE__*/Dual.dual(3, (self, oldValue, differ) => {\n if (self._tag === \"Empty\") {\n return oldValue;\n }\n let readonlyArray = oldValue.slice();\n let patches = Arr.of(self);\n while (Arr.isNonEmptyArray(patches)) {\n const head = Arr.headNonEmpty(patches);\n const tail = Arr.tailNonEmpty(patches);\n switch (head._tag) {\n case \"Empty\":\n {\n patches = tail;\n break;\n }\n case \"AndThen\":\n {\n tail.unshift(head.first, head.second);\n patches = tail;\n break;\n }\n case \"Append\":\n {\n for (const value of head.values) {\n readonlyArray.push(value);\n }\n patches = tail;\n break;\n }\n case \"Slice\":\n {\n readonlyArray = readonlyArray.slice(head.from, head.until);\n patches = tail;\n break;\n }\n case \"Update\":\n {\n readonlyArray[head.index] = differ.patch(head.patch, readonlyArray[head.index]);\n patches = tail;\n break;\n }\n }\n }\n return readonlyArray;\n});\n//# sourceMappingURL=readonlyArrayPatch.js.map","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","import * as Chunk from \"../../Chunk.js\";\nimport * as Equal from \"../../Equal.js\";\nimport * as Dual from \"../../Function.js\";\nimport * as HashMap from \"../../HashMap.js\";\nimport { Structural } from \"../data.js\";\n/** @internal */\nexport const HashMapPatchTypeId = /*#__PURE__*/Symbol.for(\"effect/DifferHashMapPatch\");\nfunction variance(a) {\n return a;\n}\n/** @internal */\nconst PatchProto = {\n ...Structural.prototype,\n [HashMapPatchTypeId]: {\n _Value: variance,\n _Key: variance,\n _Patch: variance\n }\n};\nconst EmptyProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Empty\"\n});\nconst _empty = /*#__PURE__*/Object.create(EmptyProto);\n/** @internal */\nexport const empty = () => _empty;\nconst AndThenProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"AndThen\"\n});\nconst makeAndThen = (first, second) => {\n const o = Object.create(AndThenProto);\n o.first = first;\n o.second = second;\n return o;\n};\nconst AddProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Add\"\n});\nconst makeAdd = (key, value) => {\n const o = Object.create(AddProto);\n o.key = key;\n o.value = value;\n return o;\n};\nconst RemoveProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Remove\"\n});\nconst makeRemove = key => {\n const o = Object.create(RemoveProto);\n o.key = key;\n return o;\n};\nconst UpdateProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Update\"\n});\nconst makeUpdate = (key, patch) => {\n const o = Object.create(UpdateProto);\n o.key = key;\n o.patch = patch;\n return o;\n};\n/** @internal */\nexport const diff = options => {\n const [removed, patch] = HashMap.reduce([options.oldValue, empty()], ([map, patch], newValue, key) => {\n const option = HashMap.get(key)(map);\n switch (option._tag) {\n case \"Some\":\n {\n const valuePatch = options.differ.diff(option.value, newValue);\n if (Equal.equals(valuePatch, options.differ.empty)) {\n return [HashMap.remove(key)(map), patch];\n }\n return [HashMap.remove(key)(map), combine(makeUpdate(key, valuePatch))(patch)];\n }\n case \"None\":\n {\n return [map, combine(makeAdd(key, newValue))(patch)];\n }\n }\n })(options.newValue);\n return HashMap.reduce(patch, (patch, _, key) => combine(makeRemove(key))(patch))(removed);\n};\n/** @internal */\nexport const combine = /*#__PURE__*/Dual.dual(2, (self, that) => makeAndThen(self, that));\n/** @internal */\nexport const patch = /*#__PURE__*/Dual.dual(3, (self, oldValue, differ) => {\n if (self._tag === \"Empty\") {\n return oldValue;\n }\n let map = oldValue;\n let patches = Chunk.of(self);\n while (Chunk.isNonEmpty(patches)) {\n const head = Chunk.headNonEmpty(patches);\n const tail = Chunk.tailNonEmpty(patches);\n switch (head._tag) {\n case \"Empty\":\n {\n patches = tail;\n break;\n }\n case \"AndThen\":\n {\n patches = Chunk.prepend(head.first)(Chunk.prepend(head.second)(tail));\n break;\n }\n case \"Add\":\n {\n map = HashMap.set(head.key, head.value)(map);\n patches = tail;\n break;\n }\n case \"Remove\":\n {\n map = HashMap.remove(head.key)(map);\n patches = tail;\n break;\n }\n case \"Update\":\n {\n const option = HashMap.get(head.key)(map);\n if (option._tag === \"Some\") {\n map = HashMap.set(head.key, differ.patch(head.patch, option.value))(map);\n }\n patches = tail;\n break;\n }\n }\n }\n return map;\n});\n//# sourceMappingURL=hashMapPatch.js.map","/** @internal */\nexport const SIZE = 5;\n/** @internal */\nexport const BUCKET_SIZE = /*#__PURE__*/Math.pow(2, SIZE);\n/** @internal */\nexport const MASK = BUCKET_SIZE - 1;\n/** @internal */\nexport const MAX_INDEX_NODE = BUCKET_SIZE / 2;\n/** @internal */\nexport const MIN_ARRAY_NODE = BUCKET_SIZE / 4;\n//# sourceMappingURL=config.js.map","import { MASK } from \"./config.js\";\n/**\n * Hamming weight.\n *\n * Taken from: http://jsperf.com/hamming-weight\n *\n * @internal\n */\nexport function popcount(x) {\n x -= x >> 1 & 0x55555555;\n x = (x & 0x33333333) + (x >> 2 & 0x33333333);\n x = x + (x >> 4) & 0x0f0f0f0f;\n x += x >> 8;\n x += x >> 16;\n return x & 0x7f;\n}\n/** @internal */\nexport function hashFragment(shift, h) {\n return h >>> shift & MASK;\n}\n/** @internal */\nexport function toBitmap(x) {\n return 1 << x;\n}\n/** @internal */\nexport function fromBitmap(bitmap, bit) {\n return popcount(bitmap & bit - 1);\n}\n//# sourceMappingURL=bitwise.js.map","export const make = (value, previous) => ({\n value,\n previous\n});\n//# sourceMappingURL=stack.js.map","/** @internal */\nexport function arrayUpdate(mutate, at, v, arr) {\n let out = arr;\n if (!mutate) {\n const len = arr.length;\n out = new Array(len);\n for (let i = 0; i < len; ++i) out[i] = arr[i];\n }\n out[at] = v;\n return out;\n}\n/** @internal */\nexport function arraySpliceOut(mutate, at, arr) {\n const newLen = arr.length - 1;\n let i = 0;\n let g = 0;\n let out = arr;\n if (mutate) {\n i = g = at;\n } else {\n out = new Array(newLen);\n while (i < at) out[g++] = arr[i++];\n }\n ++i;\n while (i <= newLen) out[g++] = arr[i++];\n if (mutate) {\n out.length = newLen;\n }\n return out;\n}\n/** @internal */\nexport function arraySpliceIn(mutate, at, v, arr) {\n const len = arr.length;\n if (mutate) {\n let i = len;\n while (i >= at) arr[i--] = arr[i];\n arr[at] = v;\n return arr;\n }\n let i = 0,\n g = 0;\n const out = new Array(len + 1);\n while (i < at) out[g++] = arr[i++];\n out[at] = v;\n while (i < len) out[++g] = arr[i++];\n return out;\n}\n//# sourceMappingURL=array.js.map","import { equals } from \"../../Equal.js\";\nimport * as O from \"../../Option.js\";\nimport { isTagged } from \"../../Predicate.js\";\nimport * as Stack from \"../stack.js\";\nimport { arraySpliceIn, arraySpliceOut, arrayUpdate } from \"./array.js\";\nimport { fromBitmap, hashFragment, toBitmap } from \"./bitwise.js\";\nimport { MAX_INDEX_NODE, MIN_ARRAY_NODE, SIZE } from \"./config.js\";\n/** @internal */\nexport class EmptyNode {\n _tag = \"EmptyNode\";\n modify(edit, _shift, f, hash, key, size) {\n const v = f(O.none());\n if (O.isNone(v)) return new EmptyNode();\n ++size.value;\n return new LeafNode(edit, hash, key, v);\n }\n}\n/** @internal */\nexport function isEmptyNode(a) {\n return isTagged(a, \"EmptyNode\");\n}\n/** @internal */\nexport function isLeafNode(node) {\n return isEmptyNode(node) || node._tag === \"LeafNode\" || node._tag === \"CollisionNode\";\n}\n/** @internal */\nexport function canEditNode(node, edit) {\n return isEmptyNode(node) ? false : edit === node.edit;\n}\n/** @internal */\nexport class LeafNode {\n edit;\n hash;\n key;\n value;\n _tag = \"LeafNode\";\n constructor(edit, hash, key, value) {\n this.edit = edit;\n this.hash = hash;\n this.key = key;\n this.value = value;\n }\n modify(edit, shift, f, hash, key, size) {\n if (equals(key, this.key)) {\n const v = f(this.value);\n if (v === this.value) return this;else if (O.isNone(v)) {\n --size.value;\n return new EmptyNode();\n }\n if (canEditNode(this, edit)) {\n this.value = v;\n return this;\n }\n return new LeafNode(edit, hash, key, v);\n }\n const v = f(O.none());\n if (O.isNone(v)) return this;\n ++size.value;\n return mergeLeaves(edit, shift, this.hash, this, hash, new LeafNode(edit, hash, key, v));\n }\n}\n/** @internal */\nexport class CollisionNode {\n edit;\n hash;\n children;\n _tag = \"CollisionNode\";\n constructor(edit, hash, children) {\n this.edit = edit;\n this.hash = hash;\n this.children = children;\n }\n modify(edit, shift, f, hash, key, size) {\n if (hash === this.hash) {\n const canEdit = canEditNode(this, edit);\n const list = this.updateCollisionList(canEdit, edit, this.hash, this.children, f, key, size);\n if (list === this.children) return this;\n return list.length > 1 ? new CollisionNode(edit, this.hash, list) : list[0]; // collapse single element collision list\n }\n const v = f(O.none());\n if (O.isNone(v)) return this;\n ++size.value;\n return mergeLeaves(edit, shift, this.hash, this, hash, new LeafNode(edit, hash, key, v));\n }\n updateCollisionList(mutate, edit, hash, list, f, key, size) {\n const len = list.length;\n for (let i = 0; i < len; ++i) {\n const child = list[i];\n if (\"key\" in child && equals(key, child.key)) {\n const value = child.value;\n const newValue = f(value);\n if (newValue === value) return list;\n if (O.isNone(newValue)) {\n --size.value;\n return arraySpliceOut(mutate, i, list);\n }\n return arrayUpdate(mutate, i, new LeafNode(edit, hash, key, newValue), list);\n }\n }\n const newValue = f(O.none());\n if (O.isNone(newValue)) return list;\n ++size.value;\n return arrayUpdate(mutate, len, new LeafNode(edit, hash, key, newValue), list);\n }\n}\n/** @internal */\nexport class IndexedNode {\n edit;\n mask;\n children;\n _tag = \"IndexedNode\";\n constructor(edit, mask, children) {\n this.edit = edit;\n this.mask = mask;\n this.children = children;\n }\n modify(edit, shift, f, hash, key, size) {\n const mask = this.mask;\n const children = this.children;\n const frag = hashFragment(shift, hash);\n const bit = toBitmap(frag);\n const indx = fromBitmap(mask, bit);\n const exists = mask & bit;\n const canEdit = canEditNode(this, edit);\n if (!exists) {\n const _newChild = new EmptyNode().modify(edit, shift + SIZE, f, hash, key, size);\n if (!_newChild) return this;\n return children.length >= MAX_INDEX_NODE ? expand(edit, frag, _newChild, mask, children) : new IndexedNode(edit, mask | bit, arraySpliceIn(canEdit, indx, _newChild, children));\n }\n const current = children[indx];\n const child = current.modify(edit, shift + SIZE, f, hash, key, size);\n if (current === child) return this;\n let bitmap = mask;\n let newChildren;\n if (isEmptyNode(child)) {\n // remove\n bitmap &= ~bit;\n if (!bitmap) return new EmptyNode();\n if (children.length <= 2 && isLeafNode(children[indx ^ 1])) {\n return children[indx ^ 1]; // collapse\n }\n newChildren = arraySpliceOut(canEdit, indx, children);\n } else {\n // modify\n newChildren = arrayUpdate(canEdit, indx, child, children);\n }\n if (canEdit) {\n this.mask = bitmap;\n this.children = newChildren;\n return this;\n }\n return new IndexedNode(edit, bitmap, newChildren);\n }\n}\n/** @internal */\nexport class ArrayNode {\n edit;\n size;\n children;\n _tag = \"ArrayNode\";\n constructor(edit, size, children) {\n this.edit = edit;\n this.size = size;\n this.children = children;\n }\n modify(edit, shift, f, hash, key, size) {\n let count = this.size;\n const children = this.children;\n const frag = hashFragment(shift, hash);\n const child = children[frag];\n const newChild = (child || new EmptyNode()).modify(edit, shift + SIZE, f, hash, key, size);\n if (child === newChild) return this;\n const canEdit = canEditNode(this, edit);\n let newChildren;\n if (isEmptyNode(child) && !isEmptyNode(newChild)) {\n // add\n ++count;\n newChildren = arrayUpdate(canEdit, frag, newChild, children);\n } else if (!isEmptyNode(child) && isEmptyNode(newChild)) {\n // remove\n --count;\n if (count <= MIN_ARRAY_NODE) {\n return pack(edit, count, frag, children);\n }\n newChildren = arrayUpdate(canEdit, frag, new EmptyNode(), children);\n } else {\n // modify\n newChildren = arrayUpdate(canEdit, frag, newChild, children);\n }\n if (canEdit) {\n this.size = count;\n this.children = newChildren;\n return this;\n }\n return new ArrayNode(edit, count, newChildren);\n }\n}\nfunction pack(edit, count, removed, elements) {\n const children = new Array(count - 1);\n let g = 0;\n let bitmap = 0;\n for (let i = 0, len = elements.length; i < len; ++i) {\n if (i !== removed) {\n const elem = elements[i];\n if (elem && !isEmptyNode(elem)) {\n children[g++] = elem;\n bitmap |= 1 << i;\n }\n }\n }\n return new IndexedNode(edit, bitmap, children);\n}\nfunction expand(edit, frag, child, bitmap, subNodes) {\n const arr = [];\n let bit = bitmap;\n let count = 0;\n for (let i = 0; bit; ++i) {\n if (bit & 1) arr[i] = subNodes[count++];\n bit >>>= 1;\n }\n arr[frag] = child;\n return new ArrayNode(edit, count + 1, arr);\n}\nfunction mergeLeavesInner(edit, shift, h1, n1, h2, n2) {\n if (h1 === h2) return new CollisionNode(edit, h1, [n2, n1]);\n const subH1 = hashFragment(shift, h1);\n const subH2 = hashFragment(shift, h2);\n if (subH1 === subH2) {\n return child => new IndexedNode(edit, toBitmap(subH1) | toBitmap(subH2), [child]);\n } else {\n const children = subH1 < subH2 ? [n1, n2] : [n2, n1];\n return new IndexedNode(edit, toBitmap(subH1) | toBitmap(subH2), children);\n }\n}\nfunction mergeLeaves(edit, shift, h1, n1, h2, n2) {\n let stack = undefined;\n let currentShift = shift;\n while (true) {\n const res = mergeLeavesInner(edit, currentShift, h1, n1, h2, n2);\n if (typeof res === \"function\") {\n stack = Stack.make(res, stack);\n currentShift = currentShift + SIZE;\n } else {\n let final = res;\n while (stack != null) {\n final = stack.value(final);\n stack = stack.previous;\n }\n return final;\n }\n }\n}\n//# sourceMappingURL=node.js.map","import * as Equal from \"../Equal.js\";\nimport * as Dual from \"../Function.js\";\nimport { identity, pipe } from \"../Function.js\";\nimport * as Hash from \"../Hash.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"../Inspectable.js\";\nimport * as Option from \"../Option.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport { hasProperty } from \"../Predicate.js\";\nimport { fromBitmap, hashFragment, toBitmap } from \"./hashMap/bitwise.js\";\nimport { SIZE } from \"./hashMap/config.js\";\nimport * as Node from \"./hashMap/node.js\";\nconst HashMapSymbolKey = \"effect/HashMap\";\n/** @internal */\nexport const HashMapTypeId = /*#__PURE__*/Symbol.for(HashMapSymbolKey);\nconst HashMapProto = {\n [HashMapTypeId]: HashMapTypeId,\n [Symbol.iterator]() {\n return new HashMapIterator(this, (k, v) => [k, v]);\n },\n [Hash.symbol]() {\n let hash = Hash.hash(HashMapSymbolKey);\n for (const item of this) {\n hash ^= pipe(Hash.hash(item[0]), Hash.combine(Hash.hash(item[1])));\n }\n return Hash.cached(this, hash);\n },\n [Equal.symbol](that) {\n if (isHashMap(that)) {\n if (that._size !== this._size) {\n return false;\n }\n for (const item of this) {\n const elem = pipe(that, getHash(item[0], Hash.hash(item[0])));\n if (Option.isNone(elem)) {\n return false;\n } else {\n if (!Equal.equals(item[1], elem.value)) {\n return false;\n }\n }\n }\n return true;\n }\n return false;\n },\n toString() {\n return format(this.toJSON());\n },\n toJSON() {\n return {\n _id: \"HashMap\",\n values: Array.from(this).map(toJSON)\n };\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\nconst makeImpl = (editable, edit, root, size) => {\n const map = Object.create(HashMapProto);\n map._editable = editable;\n map._edit = edit;\n map._root = root;\n map._size = size;\n return map;\n};\nclass HashMapIterator {\n map;\n f;\n v;\n constructor(map, f) {\n this.map = map;\n this.f = f;\n this.v = visitLazy(this.map._root, this.f, undefined);\n }\n next() {\n if (Option.isNone(this.v)) {\n return {\n done: true,\n value: undefined\n };\n }\n const v0 = this.v.value;\n this.v = applyCont(v0.cont);\n return {\n done: false,\n value: v0.value\n };\n }\n [Symbol.iterator]() {\n return new HashMapIterator(this.map, this.f);\n }\n}\nconst applyCont = cont => cont ? visitLazyChildren(cont[0], cont[1], cont[2], cont[3], cont[4]) : Option.none();\nconst visitLazy = (node, f, cont = undefined) => {\n switch (node._tag) {\n case \"LeafNode\":\n {\n if (Option.isSome(node.value)) {\n return Option.some({\n value: f(node.key, node.value.value),\n cont\n });\n }\n return applyCont(cont);\n }\n case \"CollisionNode\":\n case \"ArrayNode\":\n case \"IndexedNode\":\n {\n const children = node.children;\n return visitLazyChildren(children.length, children, 0, f, cont);\n }\n default:\n {\n return applyCont(cont);\n }\n }\n};\nconst visitLazyChildren = (len, children, i, f, cont) => {\n while (i < len) {\n const child = children[i++];\n if (child && !Node.isEmptyNode(child)) {\n return visitLazy(child, f, [len, children, i, f, cont]);\n }\n }\n return applyCont(cont);\n};\nconst _empty = /*#__PURE__*/makeImpl(false, 0, /*#__PURE__*/new Node.EmptyNode(), 0);\n/** @internal */\nexport const empty = () => _empty;\n/** @internal */\nexport const make = (...entries) => fromIterable(entries);\n/** @internal */\nexport const fromIterable = entries => {\n const map = beginMutation(empty());\n for (const entry of entries) {\n set(map, entry[0], entry[1]);\n }\n return endMutation(map);\n};\n/** @internal */\nexport const isHashMap = u => hasProperty(u, HashMapTypeId);\n/** @internal */\nexport const isEmpty = self => self && Node.isEmptyNode(self._root);\n/** @internal */\nexport const get = /*#__PURE__*/Dual.dual(2, (self, key) => getHash(self, key, Hash.hash(key)));\n/** @internal */\nexport const getHash = /*#__PURE__*/Dual.dual(3, (self, key, hash) => {\n let node = self._root;\n let shift = 0;\n while (true) {\n switch (node._tag) {\n case \"LeafNode\":\n {\n return Equal.equals(key, node.key) ? node.value : Option.none();\n }\n case \"CollisionNode\":\n {\n if (hash === node.hash) {\n const children = node.children;\n for (let i = 0, len = children.length; i < len; ++i) {\n const child = children[i];\n if (\"key\" in child && Equal.equals(key, child.key)) {\n return child.value;\n }\n }\n }\n return Option.none();\n }\n case \"IndexedNode\":\n {\n const frag = hashFragment(shift, hash);\n const bit = toBitmap(frag);\n if (node.mask & bit) {\n node = node.children[fromBitmap(node.mask, bit)];\n shift += SIZE;\n break;\n }\n return Option.none();\n }\n case \"ArrayNode\":\n {\n node = node.children[hashFragment(shift, hash)];\n if (node) {\n shift += SIZE;\n break;\n }\n return Option.none();\n }\n default:\n return Option.none();\n }\n }\n});\n/** @internal */\nexport const unsafeGet = /*#__PURE__*/Dual.dual(2, (self, key) => {\n const element = getHash(self, key, Hash.hash(key));\n if (Option.isNone(element)) {\n throw new Error(\"Expected map to contain key\");\n }\n return element.value;\n});\n/** @internal */\nexport const has = /*#__PURE__*/Dual.dual(2, (self, key) => Option.isSome(getHash(self, key, Hash.hash(key))));\n/** @internal */\nexport const hasHash = /*#__PURE__*/Dual.dual(3, (self, key, hash) => Option.isSome(getHash(self, key, hash)));\n/** @internal */\nexport const hasBy = /*#__PURE__*/Dual.dual(2, (self, predicate) => Option.isSome(findFirst(self, predicate)));\n/** @internal */\nexport const set = /*#__PURE__*/Dual.dual(3, (self, key, value) => modifyAt(self, key, () => Option.some(value)));\n/** @internal */\nexport const setTree = /*#__PURE__*/Dual.dual(3, (self, newRoot, newSize) => {\n if (self._editable) {\n ;\n self._root = newRoot;\n self._size = newSize;\n return self;\n }\n return newRoot === self._root ? self : makeImpl(self._editable, self._edit, newRoot, newSize);\n});\n/** @internal */\nexport const keys = self => new HashMapIterator(self, key => key);\n/** @internal */\nexport const values = self => new HashMapIterator(self, (_, value) => value);\n/** @internal */\nexport const entries = self => new HashMapIterator(self, (key, value) => [key, value]);\n/** @internal */\nexport const size = self => self._size;\n/** @internal */\nexport const countBy = /*#__PURE__*/Dual.dual(2, (self, f) => {\n let count = 0;\n for (const [k, a] of self) {\n if (f(a, k)) {\n count++;\n }\n }\n return count;\n});\n/** @internal */\nexport const beginMutation = self => makeImpl(true, self._edit + 1, self._root, self._size);\n/** @internal */\nexport const endMutation = self => {\n ;\n self._editable = false;\n return self;\n};\n/** @internal */\nexport const mutate = /*#__PURE__*/Dual.dual(2, (self, f) => {\n const transient = beginMutation(self);\n f(transient);\n return endMutation(transient);\n});\n/** @internal */\nexport const modifyAt = /*#__PURE__*/Dual.dual(3, (self, key, f) => modifyHash(self, key, Hash.hash(key), f));\n/** @internal */\nexport const modifyHash = /*#__PURE__*/Dual.dual(4, (self, key, hash, f) => {\n const size = {\n value: self._size\n };\n const newRoot = self._root.modify(self._editable ? self._edit : NaN, 0, f, hash, key, size);\n return pipe(self, setTree(newRoot, size.value));\n});\n/** @internal */\nexport const modify = /*#__PURE__*/Dual.dual(3, (self, key, f) => modifyAt(self, key, Option.map(f)));\n/** @internal */\nexport const union = /*#__PURE__*/Dual.dual(2, (self, that) => {\n const result = beginMutation(self);\n forEach(that, (v, k) => set(result, k, v));\n return endMutation(result);\n});\n/** @internal */\nexport const remove = /*#__PURE__*/Dual.dual(2, (self, key) => modifyAt(self, key, Option.none));\n/** @internal */\nexport const removeMany = /*#__PURE__*/Dual.dual(2, (self, keys) => mutate(self, map => {\n for (const key of keys) {\n remove(key)(map);\n }\n}));\n/**\n * Maps over the entries of the `HashMap` using the specified function.\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const map = /*#__PURE__*/Dual.dual(2, (self, f) => reduce(self, empty(), (map, value, key) => set(map, key, f(value, key))));\n/** @internal */\nexport const flatMap = /*#__PURE__*/Dual.dual(2, (self, f) => reduce(self, empty(), (zero, value, key) => mutate(zero, map => forEach(f(value, key), (value, key) => set(map, key, value)))));\n/** @internal */\nexport const forEach = /*#__PURE__*/Dual.dual(2, (self, f) => reduce(self, void 0, (_, value, key) => f(value, key)));\n/** @internal */\nexport const reduce = /*#__PURE__*/Dual.dual(3, (self, zero, f) => {\n const root = self._root;\n if (root._tag === \"LeafNode\") {\n return Option.isSome(root.value) ? f(zero, root.value.value, root.key) : zero;\n }\n if (root._tag === \"EmptyNode\") {\n return zero;\n }\n const toVisit = [root.children];\n let children;\n while (children = toVisit.pop()) {\n for (let i = 0, len = children.length; i < len;) {\n const child = children[i++];\n if (child && !Node.isEmptyNode(child)) {\n if (child._tag === \"LeafNode\") {\n if (Option.isSome(child.value)) {\n zero = f(zero, child.value.value, child.key);\n }\n } else {\n toVisit.push(child.children);\n }\n }\n }\n }\n return zero;\n});\n/** @internal */\nexport const filter = /*#__PURE__*/Dual.dual(2, (self, f) => mutate(empty(), map => {\n for (const [k, a] of self) {\n if (f(a, k)) {\n set(map, k, a);\n }\n }\n}));\n/** @internal */\nexport const compact = self => filterMap(self, identity);\n/** @internal */\nexport const filterMap = /*#__PURE__*/Dual.dual(2, (self, f) => mutate(empty(), map => {\n for (const [k, a] of self) {\n const option = f(a, k);\n if (Option.isSome(option)) {\n set(map, k, option.value);\n }\n }\n}));\n/** @internal */\nexport const findFirst = /*#__PURE__*/Dual.dual(2, (self, predicate) => {\n for (const ka of self) {\n if (predicate(ka[1], ka[0])) {\n return Option.some(ka);\n }\n }\n return Option.none();\n});\n/** @internal */\nexport const some = /*#__PURE__*/Dual.dual(2, (self, predicate) => {\n for (const ka of self) {\n if (predicate(ka[1], ka[0])) {\n return true;\n }\n }\n return false;\n});\n/** @internal */\nexport const every = /*#__PURE__*/Dual.dual(2, (self, predicate) => !some(self, (a, k) => !predicate(a, k)));\n//# sourceMappingURL=hashMap.js.map","import { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { parseEventLogs } from '../../utils/abi/parseEventLogs.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatLog, } from '../../utils/formatters/log.js';\n/**\n * Returns a list of event logs matching the provided parameters.\n *\n * - Docs: https://viem.sh/docs/actions/public/getLogs\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/logs_event-logs\n * - JSON-RPC Methods: [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs)\n *\n * @param client - Client to use\n * @param parameters - {@link GetLogsParameters}\n * @returns A list of event logs. {@link GetLogsReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbiItem } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getLogs } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const logs = await getLogs(client)\n */\nexport async function getLogs(client, { address, blockHash, fromBlock, toBlock, event, events: events_, args, strict: strict_, } = {}) {\n const strict = strict_ ?? false;\n const events = events_ ?? (event ? [event] : undefined);\n let topics = [];\n if (events) {\n const encoded = events.flatMap((event) => encodeEventTopics({\n abi: [event],\n eventName: event.name,\n args: events_ ? undefined : args,\n }));\n // TODO: Clean up type casting\n topics = [encoded];\n if (event)\n topics = topics[0];\n }\n let logs;\n if (blockHash) {\n logs = await client.request({\n method: 'eth_getLogs',\n params: [{ address, topics, blockHash }],\n });\n }\n else {\n logs = await client.request({\n method: 'eth_getLogs',\n params: [\n {\n address,\n topics,\n fromBlock: typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n },\n ],\n });\n }\n const formattedLogs = logs.map((log) => formatLog(log));\n if (!events)\n return formattedLogs;\n return parseEventLogs({\n abi: events,\n args: args,\n logs: formattedLogs,\n strict,\n });\n}\n//# sourceMappingURL=getLogs.js.map","import { etherUnits } from '../../constants/unit.js';\nimport { formatUnits } from './formatUnits.js';\n/**\n * Converts numerical wei to a string representation of ether.\n *\n * - Docs: https://viem.sh/docs/utilities/formatEther\n *\n * @example\n * import { formatEther } from 'viem'\n *\n * formatEther(1000000000000000000n)\n * // '1'\n */\nexport function formatEther(wei, unit = 'wei') {\n return formatUnits(wei, etherUnits[unit]);\n}\n//# sourceMappingURL=formatEther.js.map","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n this.padding = options.padding !== false\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","import * as array_ from \"../../Array.js\";\nimport * as Inspectable from \"../../Inspectable.js\";\nimport * as util_ from \"./util.js\";\nconst getErrorMessage = (reason, details, path, ast) => {\n let out = reason;\n if (path && array_.isNonEmptyReadonlyArray(path)) {\n out += `\\nat path: ${util_.formatPath(path)}`;\n }\n if (details !== undefined) {\n out += `\\ndetails: ${details}`;\n }\n if (ast) {\n out += `\\nschema (${ast._tag}): ${ast}`;\n }\n return out;\n};\n// ---------------------------------------------\n// generic\n// ---------------------------------------------\n/** @internal */\nexport const getInvalidArgumentErrorMessage = details => getErrorMessage(\"Invalid Argument\", details);\nconst getUnsupportedSchemaErrorMessage = (details, path, ast) => getErrorMessage(\"Unsupported schema\", details, path, ast);\nconst getMissingAnnotationErrorMessage = (details, path, ast) => getErrorMessage(\"Missing annotation\", details, path, ast);\n// ---------------------------------------------\n// Arbitrary\n// ---------------------------------------------\n/** @internal */\nexport const getArbitraryUnsupportedErrorMessage = (path, ast) => getUnsupportedSchemaErrorMessage(\"Cannot build an Arbitrary for this schema\", path, ast);\n/** @internal */\nexport const getArbitraryMissingAnnotationErrorMessage = (path, ast) => getMissingAnnotationErrorMessage(`Generating an Arbitrary for this schema requires an \"arbitrary\" annotation`, path, ast);\n/** @internal */\nexport const getArbitraryEmptyEnumErrorMessage = path => getErrorMessage(\"Empty Enums schema\", \"Generating an Arbitrary for this schema requires at least one enum\", path);\n// ---------------------------------------------\n// Equivalence\n// ---------------------------------------------\n/** @internal */\nexport const getEquivalenceUnsupportedErrorMessage = (ast, path) => getUnsupportedSchemaErrorMessage(\"Cannot build an Equivalence\", path, ast);\n// ---------------------------------------------\n// JSON Schema\n// ---------------------------------------------\n/** @internal */\nexport const getJSONSchemaMissingAnnotationErrorMessage = (path, ast) => getMissingAnnotationErrorMessage(`Generating a JSON Schema for this schema requires a \"jsonSchema\" annotation`, path, ast);\n/** @internal */\nexport const getJSONSchemaMissingIdentifierAnnotationErrorMessage = (path, ast) => getMissingAnnotationErrorMessage(`Generating a JSON Schema for this schema requires an \"identifier\" annotation`, path, ast);\n/** @internal */\nexport const getJSONSchemaUnsupportedPostRestElementsErrorMessage = path => getErrorMessage(\"Generating a JSON Schema for post-rest elements is not currently supported. You're welcome to contribute by submitting a Pull Request\", undefined, path);\n/** @internal */\nexport const getJSONSchemaUnsupportedKeyErrorMessage = (key, path) => getErrorMessage(\"Unsupported key\", `Cannot encode ${Inspectable.formatPropertyKey(key)} key to JSON Schema`, path);\n// ---------------------------------------------\n// Pretty\n// ---------------------------------------------\n/** @internal */\nexport const getPrettyMissingAnnotationErrorMessage = (path, ast) => getMissingAnnotationErrorMessage(`Generating a Pretty for this schema requires a \"pretty\" annotation`, path, ast);\n/** @internal */\nexport const getPrettyNeverErrorMessage = \"Cannot pretty print a `never` value\";\n/** @internal */\nexport const getPrettyNoMatchingSchemaErrorMessage = (actual, path, ast) => getErrorMessage(\"Unexpected Error\", `Cannot find a matching schema for ${Inspectable.formatUnknown(actual)}`, path, ast);\n// ---------------------------------------------\n// Schema\n// ---------------------------------------------\n/** @internal */\nexport const getSchemaExtendErrorMessage = (x, y, path) => getErrorMessage(\"Unsupported schema or overlapping types\", `cannot extend ${x} with ${y}`, path);\n/** @internal */\nexport const getSchemaUnsupportedLiteralSpanErrorMessage = ast => getErrorMessage(\"Unsupported template literal span\", undefined, undefined, ast);\n// ---------------------------------------------\n// AST\n// ---------------------------------------------\n/** @internal */\nexport const getASTUnsupportedSchemaErrorMessage = ast => getUnsupportedSchemaErrorMessage(undefined, undefined, ast);\n/** @internal */\nexport const getASTUnsupportedKeySchemaErrorMessage = ast => getErrorMessage(\"Unsupported key schema\", undefined, undefined, ast);\n/** @internal */\nexport const getASTUnsupportedLiteralErrorMessage = literal => getErrorMessage(\"Unsupported literal\", `literal value: ${Inspectable.formatUnknown(literal)}`);\n/** @internal */\nexport const getASTDuplicateIndexSignatureErrorMessage = type => getErrorMessage(\"Duplicate index signature\", `${type} index signature`);\n/** @internal */\nexport const getASTIndexSignatureParameterErrorMessage = /*#__PURE__*/getErrorMessage(\"Unsupported index signature parameter\", \"An index signature parameter type must be `string`, `symbol`, a template literal type or a refinement of the previous types\");\n/** @internal */\nexport const getASTRequiredElementFollowinAnOptionalElementErrorMessage = /*#__PURE__*/getErrorMessage(\"Invalid element\", \"A required element cannot follow an optional element. ts(1257)\");\n/** @internal */\nexport const getASTDuplicatePropertySignatureTransformationErrorMessage = key => getErrorMessage(\"Duplicate property signature transformation\", `Duplicate key ${Inspectable.formatUnknown(key)}`);\n/** @internal */\nexport const getASTUnsupportedRenameSchemaErrorMessage = ast => getUnsupportedSchemaErrorMessage(undefined, undefined, ast);\n/** @internal */\nexport const getASTDuplicatePropertySignatureErrorMessage = key => getErrorMessage(\"Duplicate property signature\", `Duplicate key ${Inspectable.formatUnknown(key)}`);\n//# sourceMappingURL=errors.js.map","/**\n * @since 3.10.0\n */\nimport * as Arr from \"./Array.js\";\nimport { dual, identity } from \"./Function.js\";\nimport { globalValue } from \"./GlobalValue.js\";\nimport * as Inspectable from \"./Inspectable.js\";\nimport * as errors_ from \"./internal/schema/errors.js\";\nimport * as util_ from \"./internal/schema/util.js\";\nimport * as Number from \"./Number.js\";\nimport * as Option from \"./Option.js\";\nimport * as Order from \"./Order.js\";\nimport * as Predicate from \"./Predicate.js\";\nimport * as regexp from \"./RegExp.js\";\n/**\n * @category annotations\n * @since 3.19.0\n * @experimental\n */\nexport const TypeConstructorAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/TypeConstructor\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const BrandAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Brand\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const SchemaIdAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/SchemaId\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const MessageAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Message\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const MissingMessageAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/MissingMessage\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const IdentifierAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Identifier\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const TitleAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Title\");\n/** @internal */\nexport const AutoTitleAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/AutoTitle\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const DescriptionAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Description\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const ExamplesAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Examples\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const DefaultAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Default\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const JSONSchemaAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/JSONSchema\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const ArbitraryAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Arbitrary\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const PrettyAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Pretty\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const EquivalenceAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Equivalence\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const DocumentationAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Documentation\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const ConcurrencyAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Concurrency\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const BatchingAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Batching\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const ParseIssueTitleAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/ParseIssueTitle\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const ParseOptionsAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/ParseOptions\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const DecodingFallbackAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/DecodingFallback\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const SurrogateAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Surrogate\");\n/** @internal */\nexport const StableFilterAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/StableFilter\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getAnnotation = /*#__PURE__*/dual(2, (annotated, key) => Object.prototype.hasOwnProperty.call(annotated.annotations, key) ? Option.some(annotated.annotations[key]) : Option.none());\n/**\n * @category annotations\n * @since 3.19.0\n * @experimental\n */\nexport const getTypeConstructorAnnotation = /*#__PURE__*/getAnnotation(TypeConstructorAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getBrandAnnotation = /*#__PURE__*/getAnnotation(BrandAnnotationId);\n/**\n * @category annotations\n * @since 3.14.2\n */\nexport const getSchemaIdAnnotation = /*#__PURE__*/getAnnotation(SchemaIdAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getMessageAnnotation = /*#__PURE__*/getAnnotation(MessageAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getMissingMessageAnnotation = /*#__PURE__*/getAnnotation(MissingMessageAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getTitleAnnotation = /*#__PURE__*/getAnnotation(TitleAnnotationId);\n/** @internal */\nexport const getAutoTitleAnnotation = /*#__PURE__*/getAnnotation(AutoTitleAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getIdentifierAnnotation = /*#__PURE__*/getAnnotation(IdentifierAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getDescriptionAnnotation = /*#__PURE__*/getAnnotation(DescriptionAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getExamplesAnnotation = /*#__PURE__*/getAnnotation(ExamplesAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getDefaultAnnotation = /*#__PURE__*/getAnnotation(DefaultAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getJSONSchemaAnnotation = /*#__PURE__*/getAnnotation(JSONSchemaAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getDocumentationAnnotation = /*#__PURE__*/getAnnotation(DocumentationAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getConcurrencyAnnotation = /*#__PURE__*/getAnnotation(ConcurrencyAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getBatchingAnnotation = /*#__PURE__*/getAnnotation(BatchingAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getParseIssueTitleAnnotation = /*#__PURE__*/getAnnotation(ParseIssueTitleAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getParseOptionsAnnotation = /*#__PURE__*/getAnnotation(ParseOptionsAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getDecodingFallbackAnnotation = /*#__PURE__*/getAnnotation(DecodingFallbackAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getSurrogateAnnotation = /*#__PURE__*/getAnnotation(SurrogateAnnotationId);\nconst getStableFilterAnnotation = /*#__PURE__*/getAnnotation(StableFilterAnnotationId);\n/** @internal */\nexport const hasStableFilter = annotated => Option.exists(getStableFilterAnnotation(annotated), b => b === true);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const JSONIdentifierAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/JSONIdentifier\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getJSONIdentifierAnnotation = /*#__PURE__*/getAnnotation(JSONIdentifierAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getJSONIdentifier = annotated => Option.orElse(getJSONIdentifierAnnotation(annotated), () => getIdentifierAnnotation(annotated));\n// -------------------------------------------------------------------------------------\n// schema ids\n// -------------------------------------------------------------------------------------\n/**\n * @category schema id\n * @since 3.10.0\n */\nexport const ParseJsonSchemaId = /*#__PURE__*/Symbol.for(\"effect/schema/ParseJson\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class Declaration {\n typeParameters;\n decodeUnknown;\n encodeUnknown;\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"Declaration\";\n constructor(typeParameters, decodeUnknown, encodeUnknown, annotations = {}) {\n this.typeParameters = typeParameters;\n this.decodeUnknown = decodeUnknown;\n this.encodeUnknown = encodeUnknown;\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return Option.getOrElse(getExpected(this), () => \"\");\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n typeParameters: this.typeParameters.map(ast => ast.toJSON()),\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\nconst createASTGuard = tag => ast => ast._tag === tag;\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isDeclaration = /*#__PURE__*/createASTGuard(\"Declaration\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class Literal {\n literal;\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"Literal\";\n constructor(literal, annotations = {}) {\n this.literal = literal;\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return Option.getOrElse(getExpected(this), () => Inspectable.formatUnknown(this.literal));\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n literal: Predicate.isBigInt(this.literal) ? String(this.literal) : this.literal,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isLiteral = /*#__PURE__*/createASTGuard(\"Literal\");\nconst $null = /*#__PURE__*/new Literal(null);\nexport {\n/**\n * @category constructors\n * @since 3.10.0\n */\n$null as null };\n/**\n * @category model\n * @since 3.10.0\n */\nexport class UniqueSymbol {\n symbol;\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"UniqueSymbol\";\n constructor(symbol, annotations = {}) {\n this.symbol = symbol;\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return Option.getOrElse(getExpected(this), () => Inspectable.formatUnknown(this.symbol));\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n symbol: String(this.symbol),\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isUniqueSymbol = /*#__PURE__*/createASTGuard(\"UniqueSymbol\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class UndefinedKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"UndefinedKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const undefinedKeyword = /*#__PURE__*/new UndefinedKeyword({\n [TitleAnnotationId]: \"undefined\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isUndefinedKeyword = /*#__PURE__*/createASTGuard(\"UndefinedKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class VoidKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"VoidKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const voidKeyword = /*#__PURE__*/new VoidKeyword({\n [TitleAnnotationId]: \"void\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isVoidKeyword = /*#__PURE__*/createASTGuard(\"VoidKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class NeverKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"NeverKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const neverKeyword = /*#__PURE__*/new NeverKeyword({\n [TitleAnnotationId]: \"never\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isNeverKeyword = /*#__PURE__*/createASTGuard(\"NeverKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class UnknownKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"UnknownKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const unknownKeyword = /*#__PURE__*/new UnknownKeyword({\n [TitleAnnotationId]: \"unknown\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isUnknownKeyword = /*#__PURE__*/createASTGuard(\"UnknownKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class AnyKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"AnyKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const anyKeyword = /*#__PURE__*/new AnyKeyword({\n [TitleAnnotationId]: \"any\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isAnyKeyword = /*#__PURE__*/createASTGuard(\"AnyKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class StringKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"StringKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const stringKeyword = /*#__PURE__*/new StringKeyword({\n [TitleAnnotationId]: \"string\",\n [DescriptionAnnotationId]: \"a string\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isStringKeyword = /*#__PURE__*/createASTGuard(\"StringKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class NumberKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"NumberKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const numberKeyword = /*#__PURE__*/new NumberKeyword({\n [TitleAnnotationId]: \"number\",\n [DescriptionAnnotationId]: \"a number\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isNumberKeyword = /*#__PURE__*/createASTGuard(\"NumberKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class BooleanKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"BooleanKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const booleanKeyword = /*#__PURE__*/new BooleanKeyword({\n [TitleAnnotationId]: \"boolean\",\n [DescriptionAnnotationId]: \"a boolean\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isBooleanKeyword = /*#__PURE__*/createASTGuard(\"BooleanKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class BigIntKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"BigIntKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const bigIntKeyword = /*#__PURE__*/new BigIntKeyword({\n [TitleAnnotationId]: \"bigint\",\n [DescriptionAnnotationId]: \"a bigint\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isBigIntKeyword = /*#__PURE__*/createASTGuard(\"BigIntKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class SymbolKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"SymbolKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const symbolKeyword = /*#__PURE__*/new SymbolKeyword({\n [TitleAnnotationId]: \"symbol\",\n [DescriptionAnnotationId]: \"a symbol\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isSymbolKeyword = /*#__PURE__*/createASTGuard(\"SymbolKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class ObjectKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"ObjectKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const objectKeyword = /*#__PURE__*/new ObjectKeyword({\n [TitleAnnotationId]: \"object\",\n [DescriptionAnnotationId]: \"an object in the TypeScript meaning, i.e. the `object` type\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isObjectKeyword = /*#__PURE__*/createASTGuard(\"ObjectKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class Enums {\n enums;\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"Enums\";\n constructor(enums, annotations = {}) {\n this.enums = enums;\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return Option.getOrElse(getExpected(this), () => ` JSON.stringify(value)).join(\" | \")}>`);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n enums: this.enums,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isEnums = /*#__PURE__*/createASTGuard(\"Enums\");\nconst isTemplateLiteralSpanType = ast => {\n switch (ast._tag) {\n case \"Literal\":\n case \"NumberKeyword\":\n case \"StringKeyword\":\n case \"TemplateLiteral\":\n return true;\n case \"Union\":\n return ast.types.every(isTemplateLiteralSpanType);\n }\n return false;\n};\nconst templateLiteralSpanUnionTypeToString = type => {\n switch (type._tag) {\n case \"Literal\":\n return JSON.stringify(String(type.literal));\n case \"StringKeyword\":\n return \"string\";\n case \"NumberKeyword\":\n return \"number\";\n case \"TemplateLiteral\":\n return String(type);\n case \"Union\":\n return type.types.map(templateLiteralSpanUnionTypeToString).join(\" | \");\n }\n};\nconst templateLiteralSpanTypeToString = type => {\n switch (type._tag) {\n case \"Literal\":\n return String(type.literal);\n case \"StringKeyword\":\n return \"${string}\";\n case \"NumberKeyword\":\n return \"${number}\";\n case \"TemplateLiteral\":\n return \"${\" + String(type) + \"}\";\n case \"Union\":\n return \"${\" + type.types.map(templateLiteralSpanUnionTypeToString).join(\" | \") + \"}\";\n }\n};\n/**\n * @category model\n * @since 3.10.0\n */\nexport class TemplateLiteralSpan {\n literal;\n /**\n * @since 3.10.0\n */\n type;\n constructor(type, literal) {\n this.literal = literal;\n if (isTemplateLiteralSpanType(type)) {\n this.type = type;\n } else {\n throw new Error(errors_.getSchemaUnsupportedLiteralSpanErrorMessage(type));\n }\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return templateLiteralSpanTypeToString(this.type) + this.literal;\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n type: this.type.toJSON(),\n literal: this.literal\n };\n }\n}\n/**\n * @category model\n * @since 3.10.0\n */\nexport class TemplateLiteral {\n head;\n spans;\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"TemplateLiteral\";\n constructor(head, spans, annotations = {}) {\n this.head = head;\n this.spans = spans;\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return Option.getOrElse(getExpected(this), () => formatTemplateLiteral(this));\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n head: this.head,\n spans: this.spans.map(span => span.toJSON()),\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\nconst formatTemplateLiteral = ast => \"`\" + ast.head + ast.spans.map(String).join(\"\") + \"`\";\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isTemplateLiteral = /*#__PURE__*/createASTGuard(\"TemplateLiteral\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class Type {\n type;\n annotations;\n constructor(type, annotations = {}) {\n this.type = type;\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n type: this.type.toJSON(),\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return String(this.type);\n }\n}\n/**\n * @category model\n * @since 3.10.0\n */\nexport class OptionalType extends Type {\n isOptional;\n constructor(type, isOptional, annotations = {}) {\n super(type, annotations);\n this.isOptional = isOptional;\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n type: this.type.toJSON(),\n isOptional: this.isOptional,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return String(this.type) + (this.isOptional ? \"?\" : \"\");\n }\n}\nconst getRestASTs = rest => rest.map(annotatedAST => annotatedAST.type);\n/**\n * @category model\n * @since 3.10.0\n */\nexport class TupleType {\n elements;\n rest;\n isReadonly;\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"TupleType\";\n constructor(elements, rest, isReadonly, annotations = {}) {\n this.elements = elements;\n this.rest = rest;\n this.isReadonly = isReadonly;\n this.annotations = annotations;\n let hasOptionalElement = false;\n let hasIllegalRequiredElement = false;\n for (const e of elements) {\n if (e.isOptional) {\n hasOptionalElement = true;\n } else if (hasOptionalElement) {\n hasIllegalRequiredElement = true;\n break;\n }\n }\n if (hasIllegalRequiredElement || hasOptionalElement && rest.length > 1) {\n throw new Error(errors_.getASTRequiredElementFollowinAnOptionalElementErrorMessage);\n }\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return Option.getOrElse(getExpected(this), () => formatTuple(this));\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n elements: this.elements.map(e => e.toJSON()),\n rest: this.rest.map(ast => ast.toJSON()),\n isReadonly: this.isReadonly,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\nconst formatTuple = ast => {\n const formattedElements = ast.elements.map(String).join(\", \");\n return Arr.matchLeft(ast.rest, {\n onEmpty: () => `readonly [${formattedElements}]`,\n onNonEmpty: (head, tail) => {\n const formattedHead = String(head);\n const wrappedHead = formattedHead.includes(\" | \") ? `(${formattedHead})` : formattedHead;\n if (tail.length > 0) {\n const formattedTail = tail.map(String).join(\", \");\n if (ast.elements.length > 0) {\n return `readonly [${formattedElements}, ...${wrappedHead}[], ${formattedTail}]`;\n } else {\n return `readonly [...${wrappedHead}[], ${formattedTail}]`;\n }\n } else {\n if (ast.elements.length > 0) {\n return `readonly [${formattedElements}, ...${wrappedHead}[]]`;\n } else {\n return `ReadonlyArray<${formattedHead}>`;\n }\n }\n }\n });\n};\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isTupleType = /*#__PURE__*/createASTGuard(\"TupleType\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class PropertySignature extends OptionalType {\n name;\n isReadonly;\n constructor(name, type, isOptional, isReadonly, annotations) {\n super(type, isOptional, annotations);\n this.name = name;\n this.isReadonly = isReadonly;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return (this.isReadonly ? \"readonly \" : \"\") + String(this.name) + (this.isOptional ? \"?\" : \"\") + \": \" + this.type;\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n name: String(this.name),\n type: this.type.toJSON(),\n isOptional: this.isOptional,\n isReadonly: this.isReadonly,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @since 3.10.0\n */\nexport const isParameter = ast => {\n switch (ast._tag) {\n case \"StringKeyword\":\n case \"SymbolKeyword\":\n case \"TemplateLiteral\":\n return true;\n case \"Refinement\":\n return isParameter(ast.from);\n }\n return false;\n};\n/**\n * @category model\n * @since 3.10.0\n */\nexport class IndexSignature {\n type;\n isReadonly;\n /**\n * @since 3.10.0\n */\n parameter;\n constructor(parameter, type, isReadonly) {\n this.type = type;\n this.isReadonly = isReadonly;\n if (isParameter(parameter)) {\n this.parameter = parameter;\n } else {\n throw new Error(errors_.getASTIndexSignatureParameterErrorMessage);\n }\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return (this.isReadonly ? \"readonly \" : \"\") + `[x: ${this.parameter}]: ${this.type}`;\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n parameter: this.parameter.toJSON(),\n type: this.type.toJSON(),\n isReadonly: this.isReadonly\n };\n }\n}\n/**\n * @category model\n * @since 3.10.0\n */\nexport class TypeLiteral {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"TypeLiteral\";\n /**\n * @since 3.10.0\n */\n propertySignatures;\n /**\n * @since 3.10.0\n */\n indexSignatures;\n constructor(propertySignatures, indexSignatures, annotations = {}) {\n this.annotations = annotations;\n // check for duplicate property signatures\n const keys = {};\n for (let i = 0; i < propertySignatures.length; i++) {\n const name = propertySignatures[i].name;\n if (Object.prototype.hasOwnProperty.call(keys, name)) {\n throw new Error(errors_.getASTDuplicatePropertySignatureErrorMessage(name));\n }\n keys[name] = null;\n }\n // check for duplicate index signatures\n const parameters = {\n string: false,\n symbol: false\n };\n for (let i = 0; i < indexSignatures.length; i++) {\n const encodedParameter = getEncodedParameter(indexSignatures[i].parameter);\n if (isStringKeyword(encodedParameter)) {\n if (parameters.string) {\n throw new Error(errors_.getASTDuplicateIndexSignatureErrorMessage(\"string\"));\n }\n parameters.string = true;\n } else if (isSymbolKeyword(encodedParameter)) {\n if (parameters.symbol) {\n throw new Error(errors_.getASTDuplicateIndexSignatureErrorMessage(\"symbol\"));\n }\n parameters.symbol = true;\n }\n }\n this.propertySignatures = propertySignatures;\n this.indexSignatures = indexSignatures;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return Option.getOrElse(getExpected(this), () => formatTypeLiteral(this));\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n propertySignatures: this.propertySignatures.map(ps => ps.toJSON()),\n indexSignatures: this.indexSignatures.map(ps => ps.toJSON()),\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\nconst formatIndexSignatures = iss => iss.map(String).join(\"; \");\nconst formatTypeLiteral = ast => {\n if (ast.propertySignatures.length > 0) {\n const pss = ast.propertySignatures.map(String).join(\"; \");\n if (ast.indexSignatures.length > 0) {\n return `{ ${pss}; ${formatIndexSignatures(ast.indexSignatures)} }`;\n } else {\n return `{ ${pss} }`;\n }\n } else {\n if (ast.indexSignatures.length > 0) {\n return `{ ${formatIndexSignatures(ast.indexSignatures)} }`;\n } else {\n return \"{}\";\n }\n }\n};\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isTypeLiteral = /*#__PURE__*/createASTGuard(\"TypeLiteral\");\nconst sortCandidates = /*#__PURE__*/Arr.sort(/*#__PURE__*/Order.mapInput(Number.Order, ast => {\n switch (ast._tag) {\n case \"AnyKeyword\":\n return 0;\n case \"UnknownKeyword\":\n return 1;\n case \"ObjectKeyword\":\n return 2;\n case \"StringKeyword\":\n case \"NumberKeyword\":\n case \"BooleanKeyword\":\n case \"BigIntKeyword\":\n case \"SymbolKeyword\":\n return 3;\n }\n return 4;\n}));\nconst literalMap = {\n string: \"StringKeyword\",\n number: \"NumberKeyword\",\n boolean: \"BooleanKeyword\",\n bigint: \"BigIntKeyword\"\n};\n/** @internal */\nexport const flatten = candidates => Arr.flatMap(candidates, ast => isUnion(ast) ? flatten(ast.types) : [ast]);\n/** @internal */\nexport const unify = candidates => {\n const cs = sortCandidates(candidates);\n const out = [];\n const uniques = {};\n const literals = [];\n for (const ast of cs) {\n switch (ast._tag) {\n case \"NeverKeyword\":\n break;\n case \"AnyKeyword\":\n return [anyKeyword];\n case \"UnknownKeyword\":\n return [unknownKeyword];\n // uniques\n case \"ObjectKeyword\":\n case \"UndefinedKeyword\":\n case \"VoidKeyword\":\n case \"StringKeyword\":\n case \"NumberKeyword\":\n case \"BooleanKeyword\":\n case \"BigIntKeyword\":\n case \"SymbolKeyword\":\n {\n if (!uniques[ast._tag]) {\n uniques[ast._tag] = ast;\n out.push(ast);\n }\n break;\n }\n case \"Literal\":\n {\n const type = typeof ast.literal;\n switch (type) {\n case \"string\":\n case \"number\":\n case \"bigint\":\n case \"boolean\":\n {\n const _tag = literalMap[type];\n if (!uniques[_tag] && !literals.includes(ast.literal)) {\n literals.push(ast.literal);\n out.push(ast);\n }\n break;\n }\n // null\n case \"object\":\n {\n if (!literals.includes(ast.literal)) {\n literals.push(ast.literal);\n out.push(ast);\n }\n break;\n }\n }\n break;\n }\n case \"UniqueSymbol\":\n {\n if (!uniques[\"SymbolKeyword\"] && !literals.includes(ast.symbol)) {\n literals.push(ast.symbol);\n out.push(ast);\n }\n break;\n }\n case \"TupleType\":\n {\n if (!uniques[\"ObjectKeyword\"]) {\n out.push(ast);\n }\n break;\n }\n case \"TypeLiteral\":\n {\n if (ast.propertySignatures.length === 0 && ast.indexSignatures.length === 0) {\n if (!uniques[\"{}\"]) {\n uniques[\"{}\"] = ast;\n out.push(ast);\n }\n } else if (!uniques[\"ObjectKeyword\"]) {\n out.push(ast);\n }\n break;\n }\n default:\n out.push(ast);\n }\n }\n return out;\n};\n/**\n * @category model\n * @since 3.10.0\n */\nexport class Union {\n types;\n annotations;\n static make = (types, annotations) => {\n return isMembers(types) ? new Union(types, annotations) : types.length === 1 ? types[0] : neverKeyword;\n };\n /** @internal */\n static unify = (candidates, annotations) => {\n return Union.make(unify(flatten(candidates)), annotations);\n };\n /**\n * @since 3.10.0\n */\n _tag = \"Union\";\n constructor(types, annotations = {}) {\n this.types = types;\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return Option.getOrElse(getExpected(this), () => this.types.map(String).join(\" | \"));\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n types: this.types.map(ast => ast.toJSON()),\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/** @internal */\nexport const mapMembers = (members, f) => members.map(f);\n/** @internal */\nexport const isMembers = as => as.length > 1;\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isUnion = /*#__PURE__*/createASTGuard(\"Union\");\nconst toJSONMemoMap = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Schema/AST/toJSONMemoMap\"), () => new WeakMap());\n/**\n * @category model\n * @since 3.10.0\n */\nexport class Suspend {\n f;\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"Suspend\";\n constructor(f, annotations = {}) {\n this.f = f;\n this.annotations = annotations;\n this.f = util_.memoizeThunk(f);\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return getExpected(this).pipe(Option.orElse(() => Option.flatMap(Option.liftThrowable(this.f)(), ast => getExpected(ast))), Option.getOrElse(() => \"\"));\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n const ast = this.f();\n let out = toJSONMemoMap.get(ast);\n if (out) {\n return out;\n }\n toJSONMemoMap.set(ast, {\n _tag: this._tag\n });\n out = {\n _tag: this._tag,\n ast: ast.toJSON(),\n annotations: toJSONAnnotations(this.annotations)\n };\n toJSONMemoMap.set(ast, out);\n return out;\n }\n}\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isSuspend = /*#__PURE__*/createASTGuard(\"Suspend\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class Refinement {\n from;\n filter;\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"Refinement\";\n constructor(from, filter, annotations = {}) {\n this.from = from;\n this.filter = filter;\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return getIdentifierAnnotation(this).pipe(Option.getOrElse(() => Option.match(getOrElseExpected(this), {\n onNone: () => `{ ${this.from} | filter }`,\n onSome: expected => isRefinement(this.from) ? String(this.from) + \" & \" + expected : expected\n })));\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n from: this.from.toJSON(),\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isRefinement = /*#__PURE__*/createASTGuard(\"Refinement\");\n/**\n * @since 3.10.0\n */\nexport const defaultParseOption = {};\n/**\n * @category model\n * @since 3.10.0\n */\nexport class Transformation {\n from;\n to;\n transformation;\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"Transformation\";\n constructor(from, to, transformation, annotations = {}) {\n this.from = from;\n this.to = to;\n this.transformation = transformation;\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return Option.getOrElse(getExpected(this), () => `(${String(this.from)} <-> ${String(this.to)})`);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n from: this.from.toJSON(),\n to: this.to.toJSON(),\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isTransformation = /*#__PURE__*/createASTGuard(\"Transformation\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class FinalTransformation {\n decode;\n encode;\n /**\n * @since 3.10.0\n */\n _tag = \"FinalTransformation\";\n constructor(decode, encode) {\n this.decode = decode;\n this.encode = encode;\n }\n}\nconst createTransformationGuard = tag => ast => ast._tag === tag;\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isFinalTransformation = /*#__PURE__*/createTransformationGuard(\"FinalTransformation\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class ComposeTransformation {\n /**\n * @since 3.10.0\n */\n _tag = \"ComposeTransformation\";\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const composeTransformation = /*#__PURE__*/new ComposeTransformation();\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isComposeTransformation = /*#__PURE__*/createTransformationGuard(\"ComposeTransformation\");\n/**\n * Represents a `PropertySignature -> PropertySignature` transformation\n *\n * The semantic of `decode` is:\n * - `none()` represents the absence of the key/value pair\n * - `some(value)` represents the presence of the key/value pair\n *\n * The semantic of `encode` is:\n * - `none()` you don't want to output the key/value pair\n * - `some(value)` you want to output the key/value pair\n *\n * @category model\n * @since 3.10.0\n */\nexport class PropertySignatureTransformation {\n from;\n to;\n decode;\n encode;\n constructor(from, to, decode, encode) {\n this.from = from;\n this.to = to;\n this.decode = decode;\n this.encode = encode;\n }\n}\nconst isRenamingPropertySignatureTransformation = t => t.decode === identity && t.encode === identity;\n/**\n * @category model\n * @since 3.10.0\n */\nexport class TypeLiteralTransformation {\n propertySignatureTransformations;\n /**\n * @since 3.10.0\n */\n _tag = \"TypeLiteralTransformation\";\n constructor(propertySignatureTransformations) {\n this.propertySignatureTransformations = propertySignatureTransformations;\n // check for duplicate property signature transformations\n const fromKeys = {};\n const toKeys = {};\n for (const pst of propertySignatureTransformations) {\n const from = pst.from;\n if (fromKeys[from]) {\n throw new Error(errors_.getASTDuplicatePropertySignatureTransformationErrorMessage(from));\n }\n fromKeys[from] = true;\n const to = pst.to;\n if (toKeys[to]) {\n throw new Error(errors_.getASTDuplicatePropertySignatureTransformationErrorMessage(to));\n }\n toKeys[to] = true;\n }\n }\n}\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isTypeLiteralTransformation = /*#__PURE__*/createTransformationGuard(\"TypeLiteralTransformation\");\n// -------------------------------------------------------------------------------------\n// API\n// -------------------------------------------------------------------------------------\n/**\n * Merges a set of new annotations with existing ones, potentially overwriting\n * any duplicates.\n *\n * Any previously existing identifier annotations are deleted.\n *\n * @since 3.10.0\n */\nexport const annotations = (ast, overrides) => {\n const d = Object.getOwnPropertyDescriptors(ast);\n const base = {\n ...ast.annotations\n };\n delete base[IdentifierAnnotationId];\n const value = {\n ...base,\n ...overrides\n };\n const surrogate = getSurrogateAnnotation(ast);\n if (Option.isSome(surrogate)) {\n value[SurrogateAnnotationId] = annotations(surrogate.value, overrides);\n }\n d.annotations.value = value;\n return Object.create(Object.getPrototypeOf(ast), d);\n};\n/**\n * Equivalent at runtime to the TypeScript type-level `keyof` operator.\n *\n * @since 3.10.0\n */\nexport const keyof = ast => Union.unify(_keyof(ast));\nconst STRING_KEYWORD_PATTERN = \"[\\\\s\\\\S]*?\"; // any string, including newlines\nconst NUMBER_KEYWORD_PATTERN = \"[+-]?\\\\d*\\\\.?\\\\d+(?:[Ee][+-]?\\\\d+)?\";\nconst getTemplateLiteralSpanTypePattern = (type, capture) => {\n switch (type._tag) {\n case \"Literal\":\n return regexp.escape(String(type.literal));\n case \"StringKeyword\":\n return STRING_KEYWORD_PATTERN;\n case \"NumberKeyword\":\n return NUMBER_KEYWORD_PATTERN;\n case \"TemplateLiteral\":\n return getTemplateLiteralPattern(type, capture, false);\n case \"Union\":\n return type.types.map(type => getTemplateLiteralSpanTypePattern(type, capture)).join(\"|\");\n }\n};\nconst handleTemplateLiteralSpanTypeParens = (type, s, capture, top) => {\n if (isUnion(type)) {\n if (capture && !top) {\n return `(?:${s})`;\n }\n } else if (!capture || !top) {\n return s;\n }\n return `(${s})`;\n};\nconst getTemplateLiteralPattern = (ast, capture, top) => {\n let pattern = ``;\n if (ast.head !== \"\") {\n const head = regexp.escape(ast.head);\n pattern += capture && top ? `(${head})` : head;\n }\n for (const span of ast.spans) {\n const spanPattern = getTemplateLiteralSpanTypePattern(span.type, capture);\n pattern += handleTemplateLiteralSpanTypeParens(span.type, spanPattern, capture, top);\n if (span.literal !== \"\") {\n const literal = regexp.escape(span.literal);\n pattern += capture && top ? `(${literal})` : literal;\n }\n }\n return pattern;\n};\n/**\n * Generates a regular expression from a `TemplateLiteral` AST node.\n *\n * @see {@link getTemplateLiteralCapturingRegExp} for a variant that captures the pattern.\n *\n * @since 3.10.0\n */\nexport const getTemplateLiteralRegExp = ast => new RegExp(`^${getTemplateLiteralPattern(ast, false, true)}$`);\n/**\n * Generates a regular expression that captures the pattern defined by the given `TemplateLiteral` AST.\n *\n * @see {@link getTemplateLiteralRegExp} for a variant that does not capture the pattern.\n *\n * @since 3.10.0\n */\nexport const getTemplateLiteralCapturingRegExp = ast => new RegExp(`^${getTemplateLiteralPattern(ast, true, true)}$`);\n/**\n * @since 3.10.0\n */\nexport const getPropertySignatures = ast => {\n const annotation = getSurrogateAnnotation(ast);\n if (Option.isSome(annotation)) {\n return getPropertySignatures(annotation.value);\n }\n switch (ast._tag) {\n case \"TypeLiteral\":\n return ast.propertySignatures.slice();\n case \"Suspend\":\n return getPropertySignatures(ast.f());\n case \"Refinement\":\n return getPropertySignatures(ast.from);\n }\n return getPropertyKeys(ast).map(name => getPropertyKeyIndexedAccess(ast, name));\n};\nconst getIndexSignatures = ast => {\n const annotation = getSurrogateAnnotation(ast);\n if (Option.isSome(annotation)) {\n return getIndexSignatures(annotation.value);\n }\n switch (ast._tag) {\n case \"TypeLiteral\":\n return ast.indexSignatures.slice();\n case \"Suspend\":\n return getIndexSignatures(ast.f());\n case \"Refinement\":\n return getIndexSignatures(ast.from);\n }\n return [];\n};\n/** @internal */\nexport const getNumberIndexedAccess = ast => {\n switch (ast._tag) {\n case \"TupleType\":\n {\n let hasOptional = false;\n let out = [];\n for (const e of ast.elements) {\n if (e.isOptional) {\n hasOptional = true;\n }\n out.push(e.type);\n }\n if (hasOptional) {\n out.push(undefinedKeyword);\n }\n out = out.concat(getRestASTs(ast.rest));\n return Union.make(out);\n }\n case \"Refinement\":\n return getNumberIndexedAccess(ast.from);\n case \"Union\":\n return Union.make(ast.types.map(getNumberIndexedAccess));\n case \"Suspend\":\n return getNumberIndexedAccess(ast.f());\n }\n throw new Error(errors_.getASTUnsupportedSchemaErrorMessage(ast));\n};\nconst getTypeLiteralPropertySignature = (ast, name) => {\n // from property signatures...\n const ops = Arr.findFirst(ast.propertySignatures, ps => ps.name === name);\n if (Option.isSome(ops)) {\n return ops.value;\n }\n // from index signatures...\n if (Predicate.isString(name)) {\n let out = undefined;\n for (const is of ast.indexSignatures) {\n const encodedParameter = getEncodedParameter(is.parameter);\n switch (encodedParameter._tag) {\n case \"TemplateLiteral\":\n {\n const regex = getTemplateLiteralRegExp(encodedParameter);\n if (regex.test(name)) {\n return new PropertySignature(name, is.type, false, true);\n }\n break;\n }\n case \"StringKeyword\":\n {\n if (out === undefined) {\n out = new PropertySignature(name, is.type, false, true);\n }\n }\n }\n }\n if (out) {\n return out;\n }\n } else if (Predicate.isSymbol(name)) {\n for (const is of ast.indexSignatures) {\n const encodedParameter = getEncodedParameter(is.parameter);\n if (isSymbolKeyword(encodedParameter)) {\n return new PropertySignature(name, is.type, false, true);\n }\n }\n }\n};\n/** @internal */\nexport const getPropertyKeyIndexedAccess = (ast, name) => {\n const annotation = getSurrogateAnnotation(ast);\n if (Option.isSome(annotation)) {\n return getPropertyKeyIndexedAccess(annotation.value, name);\n }\n switch (ast._tag) {\n case \"TypeLiteral\":\n {\n const ps = getTypeLiteralPropertySignature(ast, name);\n if (ps) {\n return ps;\n }\n break;\n }\n case \"Union\":\n return new PropertySignature(name, Union.make(ast.types.map(ast => getPropertyKeyIndexedAccess(ast, name).type)), false, true);\n case \"Suspend\":\n return getPropertyKeyIndexedAccess(ast.f(), name);\n case \"Refinement\":\n return getPropertyKeyIndexedAccess(ast.from, name);\n }\n throw new Error(errors_.getASTUnsupportedSchemaErrorMessage(ast));\n};\nconst getPropertyKeys = ast => {\n const annotation = getSurrogateAnnotation(ast);\n if (Option.isSome(annotation)) {\n return getPropertyKeys(annotation.value);\n }\n switch (ast._tag) {\n case \"TypeLiteral\":\n return ast.propertySignatures.map(ps => ps.name);\n case \"Union\":\n return ast.types.slice(1).reduce((out, ast) => Arr.intersection(out, getPropertyKeys(ast)), getPropertyKeys(ast.types[0]));\n case \"Suspend\":\n return getPropertyKeys(ast.f());\n case \"Refinement\":\n return getPropertyKeys(ast.from);\n case \"Transformation\":\n return getPropertyKeys(ast.to);\n }\n return [];\n};\n/** @internal */\nexport const record = (key, value) => {\n const propertySignatures = [];\n const indexSignatures = [];\n const go = key => {\n switch (key._tag) {\n case \"NeverKeyword\":\n break;\n case \"StringKeyword\":\n case \"SymbolKeyword\":\n case \"TemplateLiteral\":\n case \"Refinement\":\n indexSignatures.push(new IndexSignature(key, value, true));\n break;\n case \"Literal\":\n if (Predicate.isString(key.literal) || Predicate.isNumber(key.literal)) {\n propertySignatures.push(new PropertySignature(key.literal, value, false, true));\n } else {\n throw new Error(errors_.getASTUnsupportedLiteralErrorMessage(key.literal));\n }\n break;\n case \"Enums\":\n {\n for (const [_, name] of key.enums) {\n propertySignatures.push(new PropertySignature(name, value, false, true));\n }\n break;\n }\n case \"UniqueSymbol\":\n propertySignatures.push(new PropertySignature(key.symbol, value, false, true));\n break;\n case \"Union\":\n key.types.forEach(go);\n break;\n default:\n throw new Error(errors_.getASTUnsupportedKeySchemaErrorMessage(key));\n }\n };\n go(key);\n return {\n propertySignatures,\n indexSignatures\n };\n};\n/**\n * Equivalent at runtime to the built-in TypeScript utility type `Pick`.\n *\n * @since 3.10.0\n */\nexport const pick = (ast, keys) => {\n const annotation = getSurrogateAnnotation(ast);\n if (Option.isSome(annotation)) {\n return pick(annotation.value, keys);\n }\n switch (ast._tag) {\n case \"TypeLiteral\":\n {\n const pss = [];\n const names = {};\n for (const ps of ast.propertySignatures) {\n names[ps.name] = null;\n if (keys.includes(ps.name)) {\n pss.push(ps);\n }\n }\n for (const key of keys) {\n if (!(key in names)) {\n const ps = getTypeLiteralPropertySignature(ast, key);\n if (ps) {\n pss.push(ps);\n }\n }\n }\n return new TypeLiteral(pss, []);\n }\n case \"Union\":\n return new TypeLiteral(keys.map(name => getPropertyKeyIndexedAccess(ast, name)), []);\n case \"Suspend\":\n return pick(ast.f(), keys);\n case \"Refinement\":\n return pick(ast.from, keys);\n case \"Transformation\":\n {\n switch (ast.transformation._tag) {\n case \"ComposeTransformation\":\n return new Transformation(pick(ast.from, keys), pick(ast.to, keys), composeTransformation);\n case \"TypeLiteralTransformation\":\n {\n const ts = [];\n const fromKeys = [];\n for (const k of keys) {\n const t = ast.transformation.propertySignatureTransformations.find(t => t.to === k);\n if (t) {\n ts.push(t);\n fromKeys.push(t.from);\n } else {\n fromKeys.push(k);\n }\n }\n return Arr.isNonEmptyReadonlyArray(ts) ? new Transformation(pick(ast.from, fromKeys), pick(ast.to, keys), new TypeLiteralTransformation(ts)) : pick(ast.from, fromKeys);\n }\n }\n }\n }\n throw new Error(errors_.getASTUnsupportedSchemaErrorMessage(ast));\n};\n/**\n * Equivalent at runtime to the built-in TypeScript utility type `Omit`.\n *\n * @since 3.10.0\n */\nexport const omit = (ast, keys) => {\n let indexSignatures = getIndexSignatures(ast);\n if (indexSignatures.length > 0) {\n if (indexSignatures.some(is => isStringKeyword(getEncodedParameter(is.parameter)))) {\n indexSignatures = indexSignatures.filter(is => !isTemplateLiteral(getEncodedParameter(is.parameter)));\n }\n return new TypeLiteral([], indexSignatures);\n }\n return pick(ast, getPropertyKeys(ast).filter(name => !keys.includes(name)));\n};\n/** @internal */\nexport const orUndefined = ast => Union.make([ast, undefinedKeyword]);\n/**\n * Equivalent at runtime to the built-in TypeScript utility type `Partial`.\n *\n * @since 3.10.0\n */\nexport const partial = (ast, options) => {\n const exact = options?.exact === true;\n switch (ast._tag) {\n case \"TupleType\":\n return new TupleType(ast.elements.map(e => new OptionalType(exact ? e.type : orUndefined(e.type), true)), Arr.match(ast.rest, {\n onEmpty: () => ast.rest,\n onNonEmpty: rest => [new Type(Union.make([...getRestASTs(rest), undefinedKeyword]))]\n }), ast.isReadonly);\n case \"TypeLiteral\":\n return new TypeLiteral(ast.propertySignatures.map(ps => new PropertySignature(ps.name, exact ? ps.type : orUndefined(ps.type), true, ps.isReadonly, ps.annotations)), ast.indexSignatures.map(is => new IndexSignature(is.parameter, orUndefined(is.type), is.isReadonly)));\n case \"Union\":\n return Union.make(ast.types.map(member => partial(member, options)));\n case \"Suspend\":\n return new Suspend(() => partial(ast.f(), options));\n case \"Declaration\":\n case \"Refinement\":\n throw new Error(errors_.getASTUnsupportedSchemaErrorMessage(ast));\n case \"Transformation\":\n {\n if (isTypeLiteralTransformation(ast.transformation) && ast.transformation.propertySignatureTransformations.every(isRenamingPropertySignatureTransformation)) {\n return new Transformation(partial(ast.from, options), partial(ast.to, options), ast.transformation);\n }\n throw new Error(errors_.getASTUnsupportedSchemaErrorMessage(ast));\n }\n }\n return ast;\n};\n/**\n * Equivalent at runtime to the built-in TypeScript utility type `Required`.\n *\n * @since 3.10.0\n */\nexport const required = ast => {\n switch (ast._tag) {\n case \"TupleType\":\n return new TupleType(ast.elements.map(e => new OptionalType(e.type, false)), ast.rest, ast.isReadonly);\n case \"TypeLiteral\":\n return new TypeLiteral(ast.propertySignatures.map(f => new PropertySignature(f.name, f.type, false, f.isReadonly, f.annotations)), ast.indexSignatures);\n case \"Union\":\n return Union.make(ast.types.map(member => required(member)));\n case \"Suspend\":\n return new Suspend(() => required(ast.f()));\n case \"Declaration\":\n case \"Refinement\":\n throw new Error(errors_.getASTUnsupportedSchemaErrorMessage(ast));\n case \"Transformation\":\n {\n if (isTypeLiteralTransformation(ast.transformation) && ast.transformation.propertySignatureTransformations.every(isRenamingPropertySignatureTransformation)) {\n return new Transformation(required(ast.from), required(ast.to), ast.transformation);\n }\n throw new Error(errors_.getASTUnsupportedSchemaErrorMessage(ast));\n }\n }\n return ast;\n};\n/**\n * Creates a new AST with shallow mutability applied to its properties.\n *\n * @since 3.10.0\n */\nexport const mutable = ast => {\n switch (ast._tag) {\n case \"TupleType\":\n return ast.isReadonly === false ? ast : new TupleType(ast.elements, ast.rest, false, ast.annotations);\n case \"TypeLiteral\":\n {\n const propertySignatures = changeMap(ast.propertySignatures, ps => ps.isReadonly === false ? ps : new PropertySignature(ps.name, ps.type, ps.isOptional, false, ps.annotations));\n const indexSignatures = changeMap(ast.indexSignatures, is => is.isReadonly === false ? is : new IndexSignature(is.parameter, is.type, false));\n return propertySignatures === ast.propertySignatures && indexSignatures === ast.indexSignatures ? ast : new TypeLiteral(propertySignatures, indexSignatures, ast.annotations);\n }\n case \"Union\":\n {\n const types = changeMap(ast.types, mutable);\n return types === ast.types ? ast : Union.make(types, ast.annotations);\n }\n case \"Suspend\":\n return new Suspend(() => mutable(ast.f()), ast.annotations);\n case \"Refinement\":\n {\n const from = mutable(ast.from);\n return from === ast.from ? ast : new Refinement(from, ast.filter, ast.annotations);\n }\n case \"Transformation\":\n {\n const from = mutable(ast.from);\n const to = mutable(ast.to);\n return from === ast.from && to === ast.to ? ast : new Transformation(from, to, ast.transformation, ast.annotations);\n }\n }\n return ast;\n};\n/**\n * @since 3.10.0\n */\nexport const getCompiler = match => {\n const compile = (ast, path) => match[ast._tag](ast, compile, path);\n return compile;\n};\n/** @internal */\nexport const pickAnnotations = annotationIds => annotated => {\n let out = undefined;\n for (const id of annotationIds) {\n if (Object.prototype.hasOwnProperty.call(annotated.annotations, id)) {\n if (out === undefined) {\n out = {};\n }\n out[id] = annotated.annotations[id];\n }\n }\n return out;\n};\n/** @internal */\nexport const omitAnnotations = annotationIds => annotated => {\n const out = {\n ...annotated.annotations\n };\n for (const id of annotationIds) {\n delete out[id];\n }\n return out;\n};\nconst preserveTransformationAnnotations = /*#__PURE__*/pickAnnotations([ExamplesAnnotationId, DefaultAnnotationId, JSONSchemaAnnotationId, ArbitraryAnnotationId, PrettyAnnotationId, EquivalenceAnnotationId]);\n/**\n * @since 3.10.0\n */\nexport const typeAST = ast => {\n switch (ast._tag) {\n case \"Declaration\":\n {\n const typeParameters = changeMap(ast.typeParameters, typeAST);\n return typeParameters === ast.typeParameters ? ast : new Declaration(typeParameters, ast.decodeUnknown, ast.encodeUnknown, ast.annotations);\n }\n case \"TupleType\":\n {\n const elements = changeMap(ast.elements, e => {\n const type = typeAST(e.type);\n return type === e.type ? e : new OptionalType(type, e.isOptional);\n });\n const restASTs = getRestASTs(ast.rest);\n const rest = changeMap(restASTs, typeAST);\n return elements === ast.elements && rest === restASTs ? ast : new TupleType(elements, rest.map(type => new Type(type)), ast.isReadonly, ast.annotations);\n }\n case \"TypeLiteral\":\n {\n const propertySignatures = changeMap(ast.propertySignatures, p => {\n const type = typeAST(p.type);\n return type === p.type ? p : new PropertySignature(p.name, type, p.isOptional, p.isReadonly);\n });\n const indexSignatures = changeMap(ast.indexSignatures, is => {\n const type = typeAST(is.type);\n return type === is.type ? is : new IndexSignature(is.parameter, type, is.isReadonly);\n });\n return propertySignatures === ast.propertySignatures && indexSignatures === ast.indexSignatures ? ast : new TypeLiteral(propertySignatures, indexSignatures, ast.annotations);\n }\n case \"Union\":\n {\n const types = changeMap(ast.types, typeAST);\n return types === ast.types ? ast : Union.make(types, ast.annotations);\n }\n case \"Suspend\":\n return new Suspend(() => typeAST(ast.f()), ast.annotations);\n case \"Refinement\":\n {\n const from = typeAST(ast.from);\n return from === ast.from ? ast : new Refinement(from, ast.filter, ast.annotations);\n }\n case \"Transformation\":\n {\n const preserve = preserveTransformationAnnotations(ast);\n return typeAST(preserve !== undefined ? annotations(ast.to, preserve) : ast.to);\n }\n }\n return ast;\n};\nfunction changeMap(as, f) {\n let changed = false;\n const out = Arr.allocate(as.length);\n for (let i = 0; i < as.length; i++) {\n const a = as[i];\n const fa = f(a);\n if (fa !== a) {\n changed = true;\n }\n out[i] = fa;\n }\n return changed ? out : as;\n}\n/**\n * Returns the from part of a transformation if it exists\n *\n * @internal\n */\nexport const getTransformationFrom = ast => {\n switch (ast._tag) {\n case \"Transformation\":\n return ast.from;\n case \"Refinement\":\n return getTransformationFrom(ast.from);\n case \"Suspend\":\n return getTransformationFrom(ast.f());\n }\n};\nconst encodedAST_ = (ast, isBound) => {\n switch (ast._tag) {\n case \"Declaration\":\n {\n const typeParameters = changeMap(ast.typeParameters, ast => encodedAST_(ast, isBound));\n return typeParameters === ast.typeParameters ? ast : new Declaration(typeParameters, ast.decodeUnknown, ast.encodeUnknown);\n }\n case \"TupleType\":\n {\n const elements = changeMap(ast.elements, e => {\n const type = encodedAST_(e.type, isBound);\n return type === e.type ? e : new OptionalType(type, e.isOptional);\n });\n const restASTs = getRestASTs(ast.rest);\n const rest = changeMap(restASTs, ast => encodedAST_(ast, isBound));\n return elements === ast.elements && rest === restASTs ? ast : new TupleType(elements, rest.map(ast => new Type(ast)), ast.isReadonly);\n }\n case \"TypeLiteral\":\n {\n const propertySignatures = changeMap(ast.propertySignatures, ps => {\n const type = encodedAST_(ps.type, isBound);\n return type === ps.type ? ps : new PropertySignature(ps.name, type, ps.isOptional, ps.isReadonly);\n });\n const indexSignatures = changeMap(ast.indexSignatures, is => {\n const type = encodedAST_(is.type, isBound);\n return type === is.type ? is : new IndexSignature(is.parameter, type, is.isReadonly);\n });\n return propertySignatures === ast.propertySignatures && indexSignatures === ast.indexSignatures ? ast : new TypeLiteral(propertySignatures, indexSignatures);\n }\n case \"Union\":\n {\n const types = changeMap(ast.types, ast => encodedAST_(ast, isBound));\n return types === ast.types ? ast : Union.make(types);\n }\n case \"Suspend\":\n {\n let borrowedAnnotations = undefined;\n const identifier = getJSONIdentifier(ast);\n if (Option.isSome(identifier)) {\n const suffix = isBound ? \"Bound\" : \"\";\n borrowedAnnotations = {\n [JSONIdentifierAnnotationId]: `${identifier.value}Encoded${suffix}`\n };\n }\n return new Suspend(() => encodedAST_(ast.f(), isBound), borrowedAnnotations);\n }\n case \"Refinement\":\n {\n const from = encodedAST_(ast.from, isBound);\n if (isBound) {\n if (from === ast.from) return ast;\n if (getTransformationFrom(ast.from) === undefined && hasStableFilter(ast)) {\n return new Refinement(from, ast.filter, ast.annotations);\n }\n return from;\n } else {\n return from;\n }\n }\n case \"Transformation\":\n return encodedAST_(ast.from, isBound);\n }\n return ast;\n};\n/**\n * @since 3.10.0\n */\nexport const encodedAST = ast => encodedAST_(ast, false);\n/**\n * @since 3.10.0\n */\nexport const encodedBoundAST = ast => encodedAST_(ast, true);\nconst toJSONAnnotations = annotations => {\n const out = {};\n for (const k of Object.getOwnPropertySymbols(annotations)) {\n out[String(k)] = annotations[k];\n }\n return out;\n};\n/** @internal */\nexport const getEncodedParameter = ast => {\n switch (ast._tag) {\n case \"StringKeyword\":\n case \"SymbolKeyword\":\n case \"TemplateLiteral\":\n return ast;\n case \"Refinement\":\n return getEncodedParameter(ast.from);\n }\n};\n/** @internal */\nexport const equals = (self, that) => {\n switch (self._tag) {\n case \"Literal\":\n return isLiteral(that) && that.literal === self.literal;\n case \"UniqueSymbol\":\n return isUniqueSymbol(that) && that.symbol === self.symbol;\n case \"UndefinedKeyword\":\n case \"VoidKeyword\":\n case \"NeverKeyword\":\n case \"UnknownKeyword\":\n case \"AnyKeyword\":\n case \"StringKeyword\":\n case \"NumberKeyword\":\n case \"BooleanKeyword\":\n case \"BigIntKeyword\":\n case \"SymbolKeyword\":\n case \"ObjectKeyword\":\n return that._tag === self._tag;\n case \"TemplateLiteral\":\n return isTemplateLiteral(that) && that.head === self.head && equalsTemplateLiteralSpan(that.spans, self.spans);\n case \"Enums\":\n return isEnums(that) && equalsEnums(that.enums, self.enums);\n case \"Union\":\n return isUnion(that) && equalsUnion(self.types, that.types);\n case \"Refinement\":\n case \"TupleType\":\n case \"TypeLiteral\":\n case \"Suspend\":\n case \"Transformation\":\n case \"Declaration\":\n return self === that;\n }\n};\nconst equalsTemplateLiteralSpan = /*#__PURE__*/Arr.getEquivalence((self, that) => {\n return self.literal === that.literal && equals(self.type, that.type);\n});\nconst equalsEnums = /*#__PURE__*/Arr.getEquivalence((self, that) => that[0] === self[0] && that[1] === self[1]);\nconst equalsUnion = /*#__PURE__*/Arr.getEquivalence(equals);\nconst intersection = /*#__PURE__*/Arr.intersectionWith(equals);\nconst _keyof = ast => {\n switch (ast._tag) {\n case \"Declaration\":\n {\n const annotation = getSurrogateAnnotation(ast);\n if (Option.isSome(annotation)) {\n return _keyof(annotation.value);\n }\n break;\n }\n case \"TypeLiteral\":\n return ast.propertySignatures.map(p => Predicate.isSymbol(p.name) ? new UniqueSymbol(p.name) : new Literal(p.name)).concat(ast.indexSignatures.map(is => getEncodedParameter(is.parameter)));\n case \"Suspend\":\n return _keyof(ast.f());\n case \"Union\":\n return ast.types.slice(1).reduce((out, ast) => intersection(out, _keyof(ast)), _keyof(ast.types[0]));\n case \"Transformation\":\n return _keyof(ast.to);\n }\n throw new Error(errors_.getASTUnsupportedSchemaErrorMessage(ast));\n};\n/** @internal */\nexport const compose = (ab, cd) => new Transformation(ab, cd, composeTransformation);\n/** @internal */\nexport const rename = (ast, mapping) => {\n switch (ast._tag) {\n case \"TypeLiteral\":\n {\n const propertySignatureTransformations = [];\n for (const key of Reflect.ownKeys(mapping)) {\n const name = mapping[key];\n if (name !== undefined) {\n propertySignatureTransformations.push(new PropertySignatureTransformation(key, name, identity, identity));\n }\n }\n if (propertySignatureTransformations.length === 0) {\n return ast;\n }\n return new Transformation(ast, new TypeLiteral(ast.propertySignatures.map(ps => {\n const name = mapping[ps.name];\n return new PropertySignature(name === undefined ? ps.name : name, typeAST(ps.type), ps.isOptional, ps.isReadonly, ps.annotations);\n }), ast.indexSignatures), new TypeLiteralTransformation(propertySignatureTransformations));\n }\n case \"Union\":\n return Union.make(ast.types.map(ast => rename(ast, mapping)));\n case \"Suspend\":\n return new Suspend(() => rename(ast.f(), mapping));\n case \"Transformation\":\n return compose(ast, rename(typeAST(ast), mapping));\n }\n throw new Error(errors_.getASTUnsupportedRenameSchemaErrorMessage(ast));\n};\nconst formatKeyword = ast => Option.getOrElse(getExpected(ast), () => ast._tag);\nfunction getBrands(ast) {\n return Option.match(getBrandAnnotation(ast), {\n onNone: () => \"\",\n onSome: brands => brands.map(brand => ` & Brand<${Inspectable.formatUnknown(brand)}>`).join(\"\")\n });\n}\nconst getOrElseExpected = ast => getTitleAnnotation(ast).pipe(Option.orElse(() => getDescriptionAnnotation(ast)), Option.orElse(() => getAutoTitleAnnotation(ast)), Option.map(s => s + getBrands(ast)));\nconst getExpected = ast => Option.orElse(getIdentifierAnnotation(ast), () => getOrElseExpected(ast));\n/** @internal */\nexport const pruneUndefined = (ast, self, onTransformation) => {\n switch (ast._tag) {\n case \"UndefinedKeyword\":\n return neverKeyword;\n case \"Union\":\n {\n const types = [];\n let hasUndefined = false;\n for (const type of ast.types) {\n const pruned = self(type);\n if (pruned) {\n hasUndefined = true;\n if (!isNeverKeyword(pruned)) {\n types.push(pruned);\n }\n } else {\n types.push(type);\n }\n }\n if (hasUndefined) {\n return Union.make(types);\n }\n break;\n }\n case \"Suspend\":\n return self(ast.f());\n case \"Transformation\":\n return onTransformation(ast);\n }\n};\n//# sourceMappingURL=SchemaAST.js.map","import { AbiFunctionNotFoundError, AbiFunctionOutputsNotFoundError, } from '../../errors/abi.js';\nimport { decodeAbiParameters, } from './decodeAbiParameters.js';\nimport { getAbiItem } from './getAbiItem.js';\nconst docsPath = '/docs/contract/decodeFunctionResult';\nexport function decodeFunctionResult(parameters) {\n const { abi, args, functionName, data } = parameters;\n let abiItem = abi[0];\n if (functionName) {\n const item = getAbiItem({ abi, args, name: functionName });\n if (!item)\n throw new AbiFunctionNotFoundError(functionName, { docsPath });\n abiItem = item;\n }\n if (abiItem.type !== 'function')\n throw new AbiFunctionNotFoundError(undefined, { docsPath });\n if (!abiItem.outputs)\n throw new AbiFunctionOutputsNotFoundError(abiItem.name, { docsPath });\n const values = decodeAbiParameters(abiItem.outputs, data);\n if (values && values.length > 1)\n return values;\n if (values && values.length === 1)\n return values[0];\n return undefined;\n}\n//# sourceMappingURL=decodeFunctionResult.js.map","module.exports = require('events').EventEmitter;\n","module.exports = require('./lib')(require('./lib/elliptic'))\n","import { wait } from '../wait.js';\nexport function withRetry(fn, { delay: delay_ = 100, retryCount = 2, shouldRetry = () => true, } = {}) {\n return new Promise((resolve, reject) => {\n const attemptRetry = async ({ count = 0 } = {}) => {\n const retry = async ({ error }) => {\n const delay = typeof delay_ === 'function' ? delay_({ count, error }) : delay_;\n if (delay)\n await wait(delay);\n attemptRetry({ count: count + 1 });\n };\n try {\n const data = await fn();\n resolve(data);\n }\n catch (err) {\n if (count < retryCount &&\n (await shouldRetry({ count, error: err })))\n return retry({ error: err });\n reject(err);\n }\n };\n attemptRetry();\n });\n}\n//# sourceMappingURL=withRetry.js.map","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","import { AbiConstructorNotFoundError, AbiConstructorParamsNotFoundError, } from '../../errors/abi.js';\nimport { concatHex } from '../data/concat.js';\nimport { encodeAbiParameters, } from './encodeAbiParameters.js';\nconst docsPath = '/docs/contract/encodeDeployData';\nexport function encodeDeployData(parameters) {\n const { abi, args, bytecode } = parameters;\n if (!args || args.length === 0)\n return bytecode;\n const description = abi.find((x) => 'type' in x && x.type === 'constructor');\n if (!description)\n throw new AbiConstructorNotFoundError({ docsPath });\n if (!('inputs' in description))\n throw new AbiConstructorParamsNotFoundError({ docsPath });\n if (!description.inputs || description.inputs.length === 0)\n throw new AbiConstructorParamsNotFoundError({ docsPath });\n const data = encodeAbiParameters(description.inputs, args);\n return concatHex([bytecode, data]);\n}\n//# sourceMappingURL=encodeDeployData.js.map","'use strict';\n\nexports.pbkdf2 = require('./lib/async');\nexports.pbkdf2Sync = require('./lib/sync');\n","var inherits = require('inherits');\n\nvar DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n var buf = DEREncoder.prototype.encode.call(this, data);\n\n var p = buf.toString('base64');\n var out = [ '-----BEGIN ' + options.label + '-----' ];\n for (var i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","var indexOf = function (xs, item) {\n if (xs.indexOf) return xs.indexOf(item);\n else for (var i = 0; i < xs.length; i++) {\n if (xs[i] === item) return i;\n }\n return -1;\n};\nvar Object_keys = function (obj) {\n if (Object.keys) return Object.keys(obj)\n else {\n var res = [];\n for (var key in obj) res.push(key)\n return res;\n }\n};\n\nvar forEach = function (xs, fn) {\n if (xs.forEach) return xs.forEach(fn)\n else for (var i = 0; i < xs.length; i++) {\n fn(xs[i], i, xs);\n }\n};\n\nvar defineProp = (function() {\n try {\n Object.defineProperty({}, '_', {});\n return function(obj, name, value) {\n Object.defineProperty(obj, name, {\n writable: true,\n enumerable: false,\n configurable: true,\n value: value\n })\n };\n } catch(e) {\n return function(obj, name, value) {\n obj[name] = value;\n };\n }\n}());\n\nvar globals = ['Array', 'Boolean', 'Date', 'Error', 'EvalError', 'Function',\n'Infinity', 'JSON', 'Math', 'NaN', 'Number', 'Object', 'RangeError',\n'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError',\n'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape',\n'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'undefined', 'unescape'];\n\nfunction Context() {}\nContext.prototype = {};\n\nvar Script = exports.Script = function NodeScript (code) {\n if (!(this instanceof Script)) return new Script(code);\n this.code = code;\n};\n\nScript.prototype.runInContext = function (context) {\n if (!(context instanceof Context)) {\n throw new TypeError(\"needs a 'context' argument.\");\n }\n \n var iframe = document.createElement('iframe');\n if (!iframe.style) iframe.style = {};\n iframe.style.display = 'none';\n \n document.body.appendChild(iframe);\n \n var win = iframe.contentWindow;\n var wEval = win.eval, wExecScript = win.execScript;\n\n if (!wEval && wExecScript) {\n // win.eval() magically appears when this is called in IE:\n wExecScript.call(win, 'null');\n wEval = win.eval;\n }\n \n forEach(Object_keys(context), function (key) {\n win[key] = context[key];\n });\n forEach(globals, function (key) {\n if (context[key]) {\n win[key] = context[key];\n }\n });\n \n var winKeys = Object_keys(win);\n\n var res = wEval.call(win, this.code);\n \n forEach(Object_keys(win), function (key) {\n // Avoid copying circular objects like `top` and `window` by only\n // updating existing context properties or new properties in the `win`\n // that was only introduced after the eval.\n if (key in context || indexOf(winKeys, key) === -1) {\n context[key] = win[key];\n }\n });\n\n forEach(globals, function (key) {\n if (!(key in context)) {\n defineProp(context, key, win[key]);\n }\n });\n \n document.body.removeChild(iframe);\n \n return res;\n};\n\nScript.prototype.runInThisContext = function () {\n return eval(this.code); // maybe...\n};\n\nScript.prototype.runInNewContext = function (context) {\n var ctx = Script.createContext(context);\n var res = this.runInContext(ctx);\n\n if (context) {\n forEach(Object_keys(ctx), function (key) {\n context[key] = ctx[key];\n });\n }\n\n return res;\n};\n\nforEach(Object_keys(Script.prototype), function (name) {\n exports[name] = Script[name] = function (code) {\n var s = Script(code);\n return s[name].apply(s, [].slice.call(arguments, 1));\n };\n});\n\nexports.isContext = function (context) {\n return context instanceof Context;\n};\n\nexports.createScript = function (code) {\n return exports.Script(code);\n};\n\nexports.createContext = Script.createContext = function (context) {\n var copy = new Context();\n if(typeof context === 'object') {\n forEach(Object_keys(context), function (key) {\n copy[key] = context[key];\n });\n }\n return copy;\n};\n","import { stringify } from '../utils/stringify.js';\nimport { BaseError } from './base.js';\nimport { getUrl } from './utils.js';\nexport class OffchainLookupError extends BaseError {\n constructor({ callbackSelector, cause, data, extraData, sender, urls, }) {\n super(cause.shortMessage ||\n 'An error occurred while fetching for an offchain result.', {\n cause,\n metaMessages: [\n ...(cause.metaMessages || []),\n cause.metaMessages?.length ? '' : [],\n 'Offchain Gateway Call:',\n urls && [\n ' Gateway URL(s):',\n ...urls.map((url) => ` ${getUrl(url)}`),\n ],\n ` Sender: ${sender}`,\n ` Data: ${data}`,\n ` Callback selector: ${callbackSelector}`,\n ` Extra data: ${extraData}`,\n ].flat(),\n name: 'OffchainLookupError',\n });\n }\n}\nexport class OffchainLookupResponseMalformedError extends BaseError {\n constructor({ result, url }) {\n super('Offchain gateway response is malformed. Response data must be a hex value.', {\n metaMessages: [\n `Gateway URL: ${getUrl(url)}`,\n `Response: ${stringify(result)}`,\n ],\n name: 'OffchainLookupResponseMalformedError',\n });\n }\n}\nexport class OffchainLookupSenderMismatchError extends BaseError {\n constructor({ sender, to }) {\n super('Reverted sender address does not match target contract address (`to`).', {\n metaMessages: [\n `Contract address: ${to}`,\n `OffchainLookup sender address: ${sender}`,\n ],\n name: 'OffchainLookupSenderMismatchError',\n });\n }\n}\n//# sourceMappingURL=ccip.js.map","import { call } from '../actions/public/call.js';\nimport { OffchainLookupError, OffchainLookupResponseMalformedError, OffchainLookupSenderMismatchError, } from '../errors/ccip.js';\nimport { HttpRequestError, } from '../errors/request.js';\nimport { decodeErrorResult } from './abi/decodeErrorResult.js';\nimport { encodeAbiParameters } from './abi/encodeAbiParameters.js';\nimport { isAddressEqual } from './address/isAddressEqual.js';\nimport { concat } from './data/concat.js';\nimport { isHex } from './data/isHex.js';\nimport { localBatchGatewayRequest, localBatchGatewayUrl, } from './ens/localBatchGatewayRequest.js';\nimport { stringify } from './stringify.js';\nexport const offchainLookupSignature = '0x556f1830';\nexport const offchainLookupAbiItem = {\n name: 'OffchainLookup',\n type: 'error',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'urls',\n type: 'string[]',\n },\n {\n name: 'callData',\n type: 'bytes',\n },\n {\n name: 'callbackFunction',\n type: 'bytes4',\n },\n {\n name: 'extraData',\n type: 'bytes',\n },\n ],\n};\nexport async function offchainLookup(client, { blockNumber, blockTag, data, to, }) {\n const { args } = decodeErrorResult({\n data,\n abi: [offchainLookupAbiItem],\n });\n const [sender, urls, callData, callbackSelector, extraData] = args;\n const { ccipRead } = client;\n const ccipRequest_ = ccipRead && typeof ccipRead?.request === 'function'\n ? ccipRead.request\n : ccipRequest;\n try {\n if (!isAddressEqual(to, sender))\n throw new OffchainLookupSenderMismatchError({ sender, to });\n const result = urls.includes(localBatchGatewayUrl)\n ? await localBatchGatewayRequest({\n data: callData,\n ccipRequest: ccipRequest_,\n })\n : await ccipRequest_({ data: callData, sender, urls });\n const { data: data_ } = await call(client, {\n blockNumber,\n blockTag,\n data: concat([\n callbackSelector,\n encodeAbiParameters([{ type: 'bytes' }, { type: 'bytes' }], [result, extraData]),\n ]),\n to,\n });\n return data_;\n }\n catch (err) {\n throw new OffchainLookupError({\n callbackSelector,\n cause: err,\n data,\n extraData,\n sender,\n urls,\n });\n }\n}\nexport async function ccipRequest({ data, sender, urls, }) {\n let error = new Error('An unknown error occurred.');\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n const method = url.includes('{data}') ? 'GET' : 'POST';\n const body = method === 'POST' ? { data, sender } : undefined;\n const headers = method === 'POST' ? { 'Content-Type': 'application/json' } : {};\n try {\n const response = await fetch(url.replace('{sender}', sender.toLowerCase()).replace('{data}', data), {\n body: JSON.stringify(body),\n headers,\n method,\n });\n let result;\n if (response.headers.get('Content-Type')?.startsWith('application/json')) {\n result = (await response.json()).data;\n }\n else {\n result = (await response.text());\n }\n if (!response.ok) {\n error = new HttpRequestError({\n body,\n details: result?.error\n ? stringify(result.error)\n : response.statusText,\n headers: response.headers,\n status: response.status,\n url,\n });\n continue;\n }\n if (!isHex(result)) {\n error = new OffchainLookupResponseMalformedError({\n result,\n url,\n });\n continue;\n }\n return result;\n }\n catch (err) {\n error = new HttpRequestError({\n body,\n details: err.message,\n url,\n });\n }\n }\n throw error;\n}\n//# sourceMappingURL=ccip.js.map","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","import { getVersion } from './internal/errors.js';\n/**\n * Base error class inherited by all errors thrown by ox.\n *\n * @example\n * ```ts\n * import { Errors } from 'ox'\n * throw new Errors.BaseError('An error occurred')\n * ```\n */\nexport class BaseError extends Error {\n static setStaticOptions(options) {\n BaseError.prototype.docsOrigin = options.docsOrigin;\n BaseError.prototype.showVersion = options.showVersion;\n BaseError.prototype.version = options.version;\n }\n constructor(shortMessage, options = {}) {\n const details = (() => {\n if (options.cause instanceof BaseError) {\n if (options.cause.details)\n return options.cause.details;\n if (options.cause.shortMessage)\n return options.cause.shortMessage;\n }\n if (options.cause &&\n 'details' in options.cause &&\n typeof options.cause.details === 'string')\n return options.cause.details;\n if (options.cause?.message)\n return options.cause.message;\n return options.details;\n })();\n const docsPath = (() => {\n if (options.cause instanceof BaseError)\n return options.cause.docsPath || options.docsPath;\n return options.docsPath;\n })();\n const docsBaseUrl = options.docsOrigin ?? BaseError.prototype.docsOrigin;\n const docs = `${docsBaseUrl}${docsPath ?? ''}`;\n const showVersion = Boolean(options.version ?? BaseError.prototype.showVersion);\n const version = options.version ?? BaseError.prototype.version;\n const message = [\n shortMessage || 'An error occurred.',\n ...(options.metaMessages ? ['', ...options.metaMessages] : []),\n ...(details || docsPath || showVersion\n ? [\n '',\n details ? `Details: ${details}` : undefined,\n docsPath ? `See: ${docs}` : undefined,\n showVersion ? `Version: ${version}` : undefined,\n ]\n : []),\n ]\n .filter((x) => typeof x === 'string')\n .join('\\n');\n super(message, options.cause ? { cause: options.cause } : undefined);\n Object.defineProperty(this, \"details\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"docs\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"docsOrigin\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"docsPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"shortMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"showVersion\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"cause\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'BaseError'\n });\n this.cause = options.cause;\n this.details = details;\n this.docs = docs;\n this.docsOrigin = docsBaseUrl;\n this.docsPath = docsPath;\n this.shortMessage = shortMessage;\n this.showVersion = showVersion;\n this.version = version;\n }\n walk(fn) {\n return walk(this, fn);\n }\n}\nObject.defineProperty(BaseError, \"defaultStaticOptions\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n docsOrigin: 'https://oxlib.sh',\n showVersion: false,\n version: `ox@${getVersion()}`,\n }\n});\n(() => {\n BaseError.setStaticOptions(BaseError.defaultStaticOptions);\n})();\n/** @internal */\nfunction walk(err, fn) {\n if (fn?.(err))\n return err;\n if (err && typeof err === 'object' && 'cause' in err && err.cause)\n return walk(err.cause, fn);\n return fn ? null : err;\n}\n//# sourceMappingURL=Errors.js.map","import * as Equal from \"../Equal.js\";\nimport * as Hash from \"../Hash.js\";\nimport { StructuralPrototype } from \"./effectable.js\";\n/** @internal */\nexport const ArrayProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(Array.prototype), {\n [Hash.symbol]() {\n return Hash.cached(this, Hash.array(this));\n },\n [Equal.symbol](that) {\n if (Array.isArray(that) && this.length === that.length) {\n return this.every((v, i) => Equal.equals(v, that[i]));\n } else {\n return false;\n }\n }\n});\n/** @internal */\nexport const Structural = /*#__PURE__*/function () {\n function Structural(args) {\n if (args) {\n Object.assign(this, args);\n }\n }\n Structural.prototype = StructuralPrototype;\n return Structural;\n}();\n/** @internal */\nexport const struct = as => Object.assign(Object.create(StructuralPrototype), as);\n//# sourceMappingURL=data.js.map","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar createHmac = require('create-hmac');\nvar crt = require('browserify-rsa');\nvar EC = require('elliptic').ec;\nvar BN = require('bn.js');\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nvar RSA_PKCS1_PADDING = 1;\n\nfunction sign(hash, key, hashType, signType, tag) {\n var priv = parseKeys(key);\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n return ecSign(hash, priv);\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong private key type'); }\n return dsaSign(hash, priv, hashType);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n if (key.padding !== undefined && key.padding !== RSA_PKCS1_PADDING) { throw new Error('illegal or unsupported padding mode'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = priv.modulus.byteLength();\n var pad = [0, 1];\n while (hash.length + pad.length + 1 < len) { pad.push(0xff); }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) { pad.push(hash[i]); }\n\n var out = crt(pad, priv);\n return out;\n}\n\nfunction ecSign(hash, priv) {\n var curveId = curves[priv.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + priv.curve.join('.')); }\n\n var curve = new EC(curveId);\n var key = curve.keyFromPrivate(priv.privateKey);\n var out = key.sign(hash);\n\n return Buffer.from(out.toDER());\n}\n\nfunction dsaSign(hash, priv, algo) {\n var x = priv.params.priv_key;\n var p = priv.params.p;\n var q = priv.params.q;\n var g = priv.params.g;\n var r = new BN(0);\n var k;\n var H = bits2int(hash, q).mod(q);\n var s = false;\n var kv = getKey(x, q, hash, algo);\n while (s === false) {\n k = makeKey(q, kv, algo);\n r = makeR(g, k, p, q);\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q);\n if (s.cmpn(0) === 0) {\n s = false;\n r = new BN(0);\n }\n }\n return toDER(r, s);\n}\n\nfunction toDER(r, s) {\n r = r.toArray();\n s = s.toArray();\n\n // Pad values\n if (r[0] & 0x80) { r = [0].concat(r); }\n if (s[0] & 0x80) { s = [0].concat(s); }\n\n var total = r.length + s.length + 4;\n var res = [\n 0x30, total, 0x02, r.length\n ];\n res = res.concat(r, [0x02, s.length], s);\n return Buffer.from(res);\n}\n\nfunction getKey(x, q, hash, algo) {\n x = Buffer.from(x.toArray());\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length);\n x = Buffer.concat([zeros, x]);\n }\n var hlen = hash.length;\n var hbits = bits2octets(hash, q);\n var v = Buffer.alloc(hlen);\n v.fill(1);\n var k = Buffer.alloc(hlen);\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n return { k: k, v: v };\n}\n\nfunction bits2int(obits, q) {\n var bits = new BN(obits);\n var shift = (obits.length << 3) - q.bitLength();\n if (shift > 0) { bits.ishrn(shift); }\n return bits;\n}\n\nfunction bits2octets(bits, q) {\n bits = bits2int(bits, q);\n bits = bits.mod(q);\n var out = Buffer.from(bits.toArray());\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length);\n out = Buffer.concat([zeros, out]);\n }\n return out;\n}\n\nfunction makeKey(q, kv, algo) {\n var t;\n var k;\n\n do {\n t = Buffer.alloc(0);\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n t = Buffer.concat([t, kv.v]);\n }\n\n k = bits2int(t, q);\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest();\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n } while (k.cmp(q) !== -1);\n\n return k;\n}\n\nfunction makeR(g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q);\n}\n\nmodule.exports = sign;\nmodule.exports.getKey = getKey;\nmodule.exports.makeKey = makeKey;\n","/**\n * @since 2.0.0\n */\nimport * as internal from \"./internal/logSpan.js\";\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const make = internal.make;\n/**\n * @since 2.0.0\n * @category destructors\n */\nexport const render = internal.render;\n//# sourceMappingURL=LogSpan.js.map","import * as defaultServices from \"./internal/defaultServices.js\";\nimport * as internal from \"./internal/tracer.js\";\n/**\n * @since 2.0.0\n */\nexport const TracerTypeId = internal.TracerTypeId;\n/**\n * @since 2.0.0\n * @category tags\n */\nexport const ParentSpan = internal.spanTag;\n/**\n * @since 2.0.0\n * @category tags\n */\nexport const Tracer = internal.tracerTag;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const make = internal.make;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const externalSpan = internal.externalSpan;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const tracerWith = defaultServices.tracerWith;\n/**\n * @since 3.12.0\n * @category annotations\n */\nexport const DisablePropagation = internal.DisablePropagation;\n//# sourceMappingURL=Tracer.js.map","import { dual } from \"../Function.js\";\n/** @internal */\nexport const let_ = map => dual(3, (self, name, f) => map(self, a => ({\n ...a,\n [name]: f(a)\n})));\n/** @internal */\nexport const bindTo = map => dual(2, (self, name) => map(self, a => ({\n [name]: a\n})));\n/** @internal */\nexport const bind = (map, flatMap) => dual(3, (self, name, f) => flatMap(self, a => map(f(a), b => ({\n ...a,\n [name]: b\n}))));\n//# sourceMappingURL=doNotation.js.map","import * as Arr from \"../Array.js\";\nimport * as Chunk from \"../Chunk.js\";\nimport * as Clock from \"../Clock.js\";\nimport * as Context from \"../Context.js\";\nimport * as Duration from \"../Duration.js\";\nimport * as FiberRefs from \"../FiberRefs.js\";\nimport { constFalse, constTrue, constVoid, dual, identity, pipe } from \"../Function.js\";\nimport * as HashMap from \"../HashMap.js\";\nimport * as HashSet from \"../HashSet.js\";\nimport * as List from \"../List.js\";\nimport * as LogLevel from \"../LogLevel.js\";\nimport * as LogSpan from \"../LogSpan.js\";\nimport * as Option from \"../Option.js\";\nimport * as Predicate from \"../Predicate.js\";\nimport * as Ref from \"../Ref.js\";\nimport * as Tracer from \"../Tracer.js\";\nimport { internalCall } from \"../Utils.js\";\nimport * as internalCause from \"./cause.js\";\nimport { clockTag } from \"./clock.js\";\nimport * as core from \"./core.js\";\nimport * as defaultServices from \"./defaultServices.js\";\nimport * as doNotation from \"./doNotation.js\";\nimport * as fiberRefsPatch from \"./fiberRefs/patch.js\";\nimport * as metricLabel from \"./metric/label.js\";\nimport * as runtimeFlags from \"./runtimeFlags.js\";\nimport * as internalTracer from \"./tracer.js\";\n/* @internal */\nexport const annotateLogs = /*#__PURE__*/dual(args => core.isEffect(args[0]), function () {\n const args = arguments;\n return core.fiberRefLocallyWith(args[0], core.currentLogAnnotations, typeof args[1] === \"string\" ? HashMap.set(args[1], args[2]) : annotations => Object.entries(args[1]).reduce((acc, [key, value]) => HashMap.set(acc, key, value), annotations));\n});\n/* @internal */\nexport const asSome = self => core.map(self, Option.some);\n/* @internal */\nexport const asSomeError = self => core.mapError(self, Option.some);\n/* @internal */\nexport const try_ = arg => {\n let evaluate;\n let onFailure = undefined;\n if (typeof arg === \"function\") {\n evaluate = arg;\n } else {\n evaluate = arg.try;\n onFailure = arg.catch;\n }\n return core.suspend(() => {\n try {\n return core.succeed(internalCall(evaluate));\n } catch (error) {\n return core.fail(onFailure ? internalCall(() => onFailure(error)) : new core.UnknownException(error, \"An unknown error occurred in Effect.try\"));\n }\n });\n};\n/* @internal */\nexport const _catch = /*#__PURE__*/dual(3, (self, tag, options) => core.catchAll(self, e => {\n if (Predicate.hasProperty(e, tag) && e[tag] === options.failure) {\n return options.onFailure(e);\n }\n return core.fail(e);\n}));\n/* @internal */\nexport const catchAllDefect = /*#__PURE__*/dual(2, (self, f) => core.catchAllCause(self, cause => {\n const option = internalCause.find(cause, _ => internalCause.isDieType(_) ? Option.some(_) : Option.none());\n switch (option._tag) {\n case \"None\":\n {\n return core.failCause(cause);\n }\n case \"Some\":\n {\n return f(option.value.defect);\n }\n }\n}));\n/* @internal */\nexport const catchSomeCause = /*#__PURE__*/dual(2, (self, f) => core.matchCauseEffect(self, {\n onFailure: cause => {\n const option = f(cause);\n switch (option._tag) {\n case \"None\":\n {\n return core.failCause(cause);\n }\n case \"Some\":\n {\n return option.value;\n }\n }\n },\n onSuccess: core.succeed\n}));\n/* @internal */\nexport const catchSomeDefect = /*#__PURE__*/dual(2, (self, pf) => core.catchAllCause(self, cause => {\n const option = internalCause.find(cause, _ => internalCause.isDieType(_) ? Option.some(_) : Option.none());\n switch (option._tag) {\n case \"None\":\n {\n return core.failCause(cause);\n }\n case \"Some\":\n {\n const optionEffect = pf(option.value.defect);\n return optionEffect._tag === \"Some\" ? optionEffect.value : core.failCause(cause);\n }\n }\n}));\n/* @internal */\nexport const catchTag = /*#__PURE__*/dual(args => core.isEffect(args[0]), (self, ...args) => {\n const f = args[args.length - 1];\n let predicate;\n if (args.length === 2) {\n predicate = Predicate.isTagged(args[0]);\n } else {\n predicate = e => {\n const tag = Predicate.hasProperty(e, \"_tag\") ? e[\"_tag\"] : undefined;\n if (!tag) return false;\n for (let i = 0; i < args.length - 1; i++) {\n if (args[i] === tag) return true;\n }\n return false;\n };\n }\n return core.catchIf(self, predicate, f);\n});\n/** @internal */\nexport const catchTags = /*#__PURE__*/dual(2, (self, cases) => {\n let keys;\n return core.catchIf(self, e => {\n keys ??= Object.keys(cases);\n return Predicate.hasProperty(e, \"_tag\") && Predicate.isString(e[\"_tag\"]) && keys.includes(e[\"_tag\"]);\n }, e => cases[e[\"_tag\"]](e));\n});\n/* @internal */\nexport const cause = self => core.matchCause(self, {\n onFailure: identity,\n onSuccess: () => internalCause.empty\n});\n/* @internal */\nexport const clockWith = Clock.clockWith;\n/* @internal */\nexport const clock = /*#__PURE__*/clockWith(core.succeed);\n/* @internal */\nexport const delay = /*#__PURE__*/dual(2, (self, duration) => core.zipRight(Clock.sleep(duration), self));\n/* @internal */\nexport const descriptorWith = f => core.withFiberRuntime((state, status) => f({\n id: state.id(),\n status,\n interruptors: internalCause.interruptors(state.getFiberRef(core.currentInterruptedCause))\n}));\n/* @internal */\nexport const allowInterrupt = /*#__PURE__*/descriptorWith(descriptor => HashSet.size(descriptor.interruptors) > 0 ? core.interrupt : core.void);\n/* @internal */\nexport const descriptor = /*#__PURE__*/descriptorWith(core.succeed);\n/* @internal */\nexport const diffFiberRefs = self => summarized(self, fiberRefs, fiberRefsPatch.diff);\n/* @internal */\nexport const diffFiberRefsAndRuntimeFlags = self => summarized(self, core.zip(fiberRefs, core.runtimeFlags), ([refs, flags], [refsNew, flagsNew]) => [fiberRefsPatch.diff(refs, refsNew), runtimeFlags.diff(flags, flagsNew)]);\n/* @internal */\nexport const Do = /*#__PURE__*/core.succeed({});\n/* @internal */\nexport const bind = /*#__PURE__*/doNotation.bind(core.map, core.flatMap);\n/* @internal */\nexport const bindTo = /*#__PURE__*/doNotation.bindTo(core.map);\n/* @internal */\nexport const let_ = /*#__PURE__*/doNotation.let_(core.map);\n/* @internal */\nexport const dropUntil = /*#__PURE__*/dual(2, (elements, predicate) => core.suspend(() => {\n const iterator = elements[Symbol.iterator]();\n const builder = [];\n let next;\n let dropping = core.succeed(false);\n let i = 0;\n while ((next = iterator.next()) && !next.done) {\n const a = next.value;\n const index = i++;\n dropping = core.flatMap(dropping, bool => {\n if (bool) {\n builder.push(a);\n return core.succeed(true);\n }\n return predicate(a, index);\n });\n }\n return core.map(dropping, () => builder);\n}));\n/* @internal */\nexport const dropWhile = /*#__PURE__*/dual(2, (elements, predicate) => core.suspend(() => {\n const iterator = elements[Symbol.iterator]();\n const builder = [];\n let next;\n let dropping = core.succeed(true);\n let i = 0;\n while ((next = iterator.next()) && !next.done) {\n const a = next.value;\n const index = i++;\n dropping = core.flatMap(dropping, d => core.map(d ? predicate(a, index) : core.succeed(false), b => {\n if (!b) {\n builder.push(a);\n }\n return b;\n }));\n }\n return core.map(dropping, () => builder);\n}));\n/* @internal */\nexport const contextWith = f => core.map(core.context(), f);\n/* @internal */\nexport const eventually = self => core.orElse(self, () => core.flatMap(core.yieldNow(), () => eventually(self)));\n/* @internal */\nexport const filterMap = /*#__PURE__*/dual(2, (elements, pf) => core.map(core.forEachSequential(elements, identity), Arr.filterMap(pf)));\n/* @internal */\nexport const filterOrDie = /*#__PURE__*/dual(3, (self, predicate, orDieWith) => filterOrElse(self, predicate, a => core.dieSync(() => orDieWith(a))));\n/* @internal */\nexport const filterOrDieMessage = /*#__PURE__*/dual(3, (self, predicate, message) => filterOrElse(self, predicate, () => core.dieMessage(message)));\n/* @internal */\nexport const filterOrElse = /*#__PURE__*/dual(3, (self, predicate, orElse) => core.flatMap(self, a => predicate(a) ? core.succeed(a) : orElse(a)));\n/** @internal */\nexport const liftPredicate = /*#__PURE__*/dual(3, (self, predicate, orFailWith) => core.suspend(() => predicate(self) ? core.succeed(self) : core.fail(orFailWith(self))));\n/* @internal */\nexport const filterOrFail = /*#__PURE__*/dual(args => core.isEffect(args[0]), (self, predicate, orFailWith) => filterOrElse(self, predicate, a => orFailWith === undefined ? core.fail(new core.NoSuchElementException()) : core.failSync(() => orFailWith(a))));\n/* @internal */\nexport const findFirst = /*#__PURE__*/dual(2, (elements, predicate) => core.suspend(() => {\n const iterator = elements[Symbol.iterator]();\n const next = iterator.next();\n if (!next.done) {\n return findLoop(iterator, 0, predicate, next.value);\n }\n return core.succeed(Option.none());\n}));\nconst findLoop = (iterator, index, f, value) => core.flatMap(f(value, index), result => {\n if (result) {\n return core.succeed(Option.some(value));\n }\n const next = iterator.next();\n if (!next.done) {\n return findLoop(iterator, index + 1, f, next.value);\n }\n return core.succeed(Option.none());\n});\n/* @internal */\nexport const firstSuccessOf = effects => core.suspend(() => {\n const list = Chunk.fromIterable(effects);\n if (!Chunk.isNonEmpty(list)) {\n return core.dieSync(() => new core.IllegalArgumentException(`Received an empty collection of effects`));\n }\n return pipe(Chunk.tailNonEmpty(list), Arr.reduce(Chunk.headNonEmpty(list), (left, right) => core.orElse(left, () => right)));\n});\n/* @internal */\nexport const flipWith = /*#__PURE__*/dual(2, (self, f) => core.flip(f(core.flip(self))));\n/* @internal */\nexport const match = /*#__PURE__*/dual(2, (self, options) => core.matchEffect(self, {\n onFailure: e => core.succeed(options.onFailure(e)),\n onSuccess: a => core.succeed(options.onSuccess(a))\n}));\n/* @internal */\nexport const every = /*#__PURE__*/dual(2, (elements, predicate) => core.suspend(() => forAllLoop(elements[Symbol.iterator](), 0, predicate)));\nconst forAllLoop = (iterator, index, f) => {\n const next = iterator.next();\n return next.done ? core.succeed(true) : core.flatMap(f(next.value, index), b => b ? forAllLoop(iterator, index + 1, f) : core.succeed(b));\n};\n/* @internal */\nexport const forever = self => {\n const loop = core.flatMap(core.flatMap(self, () => core.yieldNow()), () => loop);\n return loop;\n};\n/* @internal */\nexport const fiberRefs = /*#__PURE__*/core.withFiberRuntime(state => core.succeed(state.getFiberRefs()));\n/* @internal */\nexport const head = self => core.flatMap(self, as => {\n const iterator = as[Symbol.iterator]();\n const next = iterator.next();\n if (next.done) {\n return core.fail(new core.NoSuchElementException());\n }\n return core.succeed(next.value);\n});\n/* @internal */\nexport const ignore = self => match(self, {\n onFailure: constVoid,\n onSuccess: constVoid\n});\n/* @internal */\nexport const ignoreLogged = self => core.matchCauseEffect(self, {\n onFailure: cause => logDebug(cause, \"An error was silently ignored because it is not anticipated to be useful\"),\n onSuccess: () => core.void\n});\n/* @internal */\nexport const inheritFiberRefs = childFiberRefs => updateFiberRefs((parentFiberId, parentFiberRefs) => FiberRefs.joinAs(parentFiberRefs, parentFiberId, childFiberRefs));\n/* @internal */\nexport const isFailure = self => match(self, {\n onFailure: constTrue,\n onSuccess: constFalse\n});\n/* @internal */\nexport const isSuccess = self => match(self, {\n onFailure: constFalse,\n onSuccess: constTrue\n});\n/* @internal */\nexport const iterate = (initial, options) => core.suspend(() => {\n if (options.while(initial)) {\n return core.flatMap(options.body(initial), z2 => iterate(z2, options));\n }\n return core.succeed(initial);\n});\n/** @internal */\nexport const logWithLevel = level => (...message) => {\n const levelOption = Option.fromNullable(level);\n let cause = undefined;\n for (let i = 0, len = message.length; i < len; i++) {\n const msg = message[i];\n if (internalCause.isCause(msg)) {\n if (cause !== undefined) {\n cause = internalCause.sequential(cause, msg);\n } else {\n cause = msg;\n }\n message = [...message.slice(0, i), ...message.slice(i + 1)];\n i--;\n }\n }\n if (cause === undefined) {\n cause = internalCause.empty;\n }\n return core.withFiberRuntime(fiberState => {\n fiberState.log(message, cause, levelOption);\n return core.void;\n });\n};\n/** @internal */\nexport const log = /*#__PURE__*/logWithLevel();\n/** @internal */\nexport const logTrace = /*#__PURE__*/logWithLevel(LogLevel.Trace);\n/** @internal */\nexport const logDebug = /*#__PURE__*/logWithLevel(LogLevel.Debug);\n/** @internal */\nexport const logInfo = /*#__PURE__*/logWithLevel(LogLevel.Info);\n/** @internal */\nexport const logWarning = /*#__PURE__*/logWithLevel(LogLevel.Warning);\n/** @internal */\nexport const logError = /*#__PURE__*/logWithLevel(LogLevel.Error);\n/** @internal */\nexport const logFatal = /*#__PURE__*/logWithLevel(LogLevel.Fatal);\n/* @internal */\nexport const withLogSpan = /*#__PURE__*/dual(2, (effect, label) => core.flatMap(Clock.currentTimeMillis, now => core.fiberRefLocallyWith(effect, core.currentLogSpan, List.prepend(LogSpan.make(label, now)))));\n/* @internal */\nexport const logAnnotations = /*#__PURE__*/core.fiberRefGet(core.currentLogAnnotations);\n/* @internal */\nexport const loop = (initial, options) => options.discard ? loopDiscard(initial, options.while, options.step, options.body) : core.map(loopInternal(initial, options.while, options.step, options.body), Arr.fromIterable);\nconst loopInternal = (initial, cont, inc, body) => core.suspend(() => cont(initial) ? core.flatMap(body(initial), a => core.map(loopInternal(inc(initial), cont, inc, body), List.prepend(a))) : core.sync(() => List.empty()));\nconst loopDiscard = (initial, cont, inc, body) => core.suspend(() => cont(initial) ? core.flatMap(body(initial), () => loopDiscard(inc(initial), cont, inc, body)) : core.void);\n/* @internal */\nexport const mapAccum = /*#__PURE__*/dual(3, (elements, initial, f) => core.suspend(() => {\n const iterator = elements[Symbol.iterator]();\n const builder = [];\n let result = core.succeed(initial);\n let next;\n let i = 0;\n while (!(next = iterator.next()).done) {\n const index = i++;\n const value = next.value;\n result = core.flatMap(result, state => core.map(f(state, value, index), ([z, b]) => {\n builder.push(b);\n return z;\n }));\n }\n return core.map(result, z => [z, builder]);\n}));\n/* @internal */\nexport const mapErrorCause = /*#__PURE__*/dual(2, (self, f) => core.matchCauseEffect(self, {\n onFailure: c => core.failCauseSync(() => f(c)),\n onSuccess: core.succeed\n}));\n/* @internal */\nexport const memoize = self => pipe(core.deferredMake(), core.flatMap(deferred => pipe(diffFiberRefsAndRuntimeFlags(self), core.intoDeferred(deferred), once, core.map(complete => core.zipRight(complete, pipe(core.deferredAwait(deferred), core.flatMap(([patch, a]) => core.as(core.zip(patchFiberRefs(patch[0]), core.updateRuntimeFlags(patch[1])), a))))))));\n/* @internal */\nexport const merge = self => core.matchEffect(self, {\n onFailure: e => core.succeed(e),\n onSuccess: core.succeed\n});\n/* @internal */\nexport const negate = self => core.map(self, b => !b);\n/* @internal */\nexport const none = self => core.flatMap(self, option => {\n switch (option._tag) {\n case \"None\":\n return core.void;\n case \"Some\":\n return core.fail(new core.NoSuchElementException());\n }\n});\n/* @internal */\nexport const once = self => core.map(Ref.make(true), ref => core.asVoid(core.whenEffect(self, Ref.getAndSet(ref, false))));\n/* @internal */\nexport const option = self => core.matchEffect(self, {\n onFailure: () => core.succeed(Option.none()),\n onSuccess: a => core.succeed(Option.some(a))\n});\n/* @internal */\nexport const orElseFail = /*#__PURE__*/dual(2, (self, evaluate) => core.orElse(self, () => core.failSync(evaluate)));\n/* @internal */\nexport const orElseSucceed = /*#__PURE__*/dual(2, (self, evaluate) => core.orElse(self, () => core.sync(evaluate)));\n/* @internal */\nexport const parallelErrors = self => core.matchCauseEffect(self, {\n onFailure: cause => {\n const errors = Arr.fromIterable(internalCause.failures(cause));\n return errors.length === 0 ? core.failCause(cause) : core.fail(errors);\n },\n onSuccess: core.succeed\n});\n/* @internal */\nexport const patchFiberRefs = patch => updateFiberRefs((fiberId, fiberRefs) => pipe(patch, fiberRefsPatch.patch(fiberId, fiberRefs)));\n/* @internal */\nexport const promise = evaluate => evaluate.length >= 1 ? core.async((resolve, signal) => {\n try {\n evaluate(signal).then(a => resolve(core.succeed(a)), e => resolve(core.die(e)));\n } catch (e) {\n resolve(core.die(e));\n }\n}) : core.async(resolve => {\n try {\n ;\n evaluate().then(a => resolve(core.succeed(a)), e => resolve(core.die(e)));\n } catch (e) {\n resolve(core.die(e));\n }\n});\n/* @internal */\nexport const provideService = /*#__PURE__*/dual(3, (self, tag, service) => core.contextWithEffect(env => core.provideContext(self, Context.add(env, tag, service))));\n/* @internal */\nexport const provideServiceEffect = /*#__PURE__*/dual(3, (self, tag, effect) => core.contextWithEffect(env => core.flatMap(effect, service => core.provideContext(self, pipe(env, Context.add(tag, service))))));\n/* @internal */\nexport const random = /*#__PURE__*/defaultServices.randomWith(core.succeed);\n/* @internal */\nexport const reduce = /*#__PURE__*/dual(3, (elements, zero, f) => Arr.fromIterable(elements).reduce((acc, el, i) => core.flatMap(acc, a => f(a, el, i)), core.succeed(zero)));\n/* @internal */\nexport const reduceRight = /*#__PURE__*/dual(3, (elements, zero, f) => Arr.fromIterable(elements).reduceRight((acc, el, i) => core.flatMap(acc, a => f(el, a, i)), core.succeed(zero)));\n/* @internal */\nexport const reduceWhile = /*#__PURE__*/dual(3, (elements, zero, options) => core.flatMap(core.sync(() => elements[Symbol.iterator]()), iterator => reduceWhileLoop(iterator, 0, zero, options.while, options.body)));\nconst reduceWhileLoop = (iterator, index, state, predicate, f) => {\n const next = iterator.next();\n if (!next.done && predicate(state)) {\n return core.flatMap(f(state, next.value, index), nextState => reduceWhileLoop(iterator, index + 1, nextState, predicate, f));\n }\n return core.succeed(state);\n};\n/* @internal */\nexport const repeatN = /*#__PURE__*/dual(2, (self, n) => core.suspend(() => repeatNLoop(self, n)));\n/* @internal */\nconst repeatNLoop = (self, n) => core.flatMap(self, a => n <= 0 ? core.succeed(a) : core.zipRight(core.yieldNow(), repeatNLoop(self, n - 1)));\n/* @internal */\nexport const sandbox = self => core.matchCauseEffect(self, {\n onFailure: core.fail,\n onSuccess: core.succeed\n});\n/* @internal */\nexport const setFiberRefs = fiberRefs => core.suspend(() => FiberRefs.setAll(fiberRefs));\n/* @internal */\nexport const sleep = Clock.sleep;\n/* @internal */\nexport const succeedNone = /*#__PURE__*/core.succeed(/*#__PURE__*/Option.none());\n/* @internal */\nexport const succeedSome = value => core.succeed(Option.some(value));\n/* @internal */\nexport const summarized = /*#__PURE__*/dual(3, (self, summary, f) => core.flatMap(summary, start => core.flatMap(self, value => core.map(summary, end => [f(start, end), value]))));\n/* @internal */\nexport const tagMetrics = /*#__PURE__*/dual(args => core.isEffect(args[0]), function () {\n return labelMetrics(arguments[0], typeof arguments[1] === \"string\" ? [metricLabel.make(arguments[1], arguments[2])] : Object.entries(arguments[1]).map(([k, v]) => metricLabel.make(k, v)));\n});\n/* @internal */\nexport const labelMetrics = /*#__PURE__*/dual(2, (self, labels) => core.fiberRefLocallyWith(self, core.currentMetricLabels, old => Arr.union(old, labels)));\n/* @internal */\nexport const takeUntil = /*#__PURE__*/dual(2, (elements, predicate) => core.suspend(() => {\n const iterator = elements[Symbol.iterator]();\n const builder = [];\n let next;\n let effect = core.succeed(false);\n let i = 0;\n while ((next = iterator.next()) && !next.done) {\n const a = next.value;\n const index = i++;\n effect = core.flatMap(effect, bool => {\n if (bool) {\n return core.succeed(true);\n }\n builder.push(a);\n return predicate(a, index);\n });\n }\n return core.map(effect, () => builder);\n}));\n/* @internal */\nexport const takeWhile = /*#__PURE__*/dual(2, (elements, predicate) => core.suspend(() => {\n const iterator = elements[Symbol.iterator]();\n const builder = [];\n let next;\n let taking = core.succeed(true);\n let i = 0;\n while ((next = iterator.next()) && !next.done) {\n const a = next.value;\n const index = i++;\n taking = core.flatMap(taking, taking => pipe(taking ? predicate(a, index) : core.succeed(false), core.map(bool => {\n if (bool) {\n builder.push(a);\n }\n return bool;\n })));\n }\n return core.map(taking, () => builder);\n}));\n/* @internal */\nexport const tapBoth = /*#__PURE__*/dual(2, (self, {\n onFailure,\n onSuccess\n}) => core.matchCauseEffect(self, {\n onFailure: cause => {\n const either = internalCause.failureOrCause(cause);\n switch (either._tag) {\n case \"Left\":\n {\n return core.zipRight(onFailure(either.left), core.failCause(cause));\n }\n case \"Right\":\n {\n return core.failCause(cause);\n }\n }\n },\n onSuccess: a => core.as(onSuccess(a), a)\n}));\n/* @internal */\nexport const tapDefect = /*#__PURE__*/dual(2, (self, f) => core.catchAllCause(self, cause => Option.match(internalCause.keepDefects(cause), {\n onNone: () => core.failCause(cause),\n onSome: a => core.zipRight(f(a), core.failCause(cause))\n})));\n/* @internal */\nexport const tapError = /*#__PURE__*/dual(2, (self, f) => core.matchCauseEffect(self, {\n onFailure: cause => {\n const either = internalCause.failureOrCause(cause);\n switch (either._tag) {\n case \"Left\":\n return core.zipRight(f(either.left), core.failCause(cause));\n case \"Right\":\n return core.failCause(cause);\n }\n },\n onSuccess: core.succeed\n}));\n/* @internal */\nexport const tapErrorTag = /*#__PURE__*/dual(3, (self, k, f) => tapError(self, e => {\n if (Predicate.isTagged(e, k)) {\n return f(e);\n }\n return core.void;\n}));\n/* @internal */\nexport const tapErrorCause = /*#__PURE__*/dual(2, (self, f) => core.matchCauseEffect(self, {\n onFailure: cause => core.zipRight(f(cause), core.failCause(cause)),\n onSuccess: core.succeed\n}));\n/* @internal */\nexport const timed = self => timedWith(self, Clock.currentTimeNanos);\n/* @internal */\nexport const timedWith = /*#__PURE__*/dual(2, (self, nanos) => summarized(self, nanos, (start, end) => Duration.nanos(end - start)));\n/* @internal */\nexport const tracerWith = Tracer.tracerWith;\n/** @internal */\nexport const tracer = /*#__PURE__*/tracerWith(core.succeed);\n/* @internal */\nexport const tryPromise = arg => {\n let evaluate;\n let catcher = undefined;\n if (typeof arg === \"function\") {\n evaluate = arg;\n } else {\n evaluate = arg.try;\n catcher = arg.catch;\n }\n const fail = e => catcher ? core.failSync(() => catcher(e)) : core.fail(new core.UnknownException(e, \"An unknown error occurred in Effect.tryPromise\"));\n if (evaluate.length >= 1) {\n return core.async((resolve, signal) => {\n try {\n evaluate(signal).then(a => resolve(core.succeed(a)), e => resolve(fail(e)));\n } catch (e) {\n resolve(fail(e));\n }\n });\n }\n return core.async(resolve => {\n try {\n evaluate().then(a => resolve(core.succeed(a)), e => resolve(fail(e)));\n } catch (e) {\n resolve(fail(e));\n }\n });\n};\n/* @internal */\nexport const tryMap = /*#__PURE__*/dual(2, (self, options) => core.flatMap(self, a => try_({\n try: () => options.try(a),\n catch: options.catch\n})));\n/* @internal */\nexport const tryMapPromise = /*#__PURE__*/dual(2, (self, options) => core.flatMap(self, a => tryPromise({\n try: options.try.length >= 1 ? signal => options.try(a, signal) : () => options.try(a),\n catch: options.catch\n})));\n/* @internal */\nexport const unless = /*#__PURE__*/dual(2, (self, condition) => core.suspend(() => condition() ? succeedNone : asSome(self)));\n/* @internal */\nexport const unlessEffect = /*#__PURE__*/dual(2, (self, condition) => core.flatMap(condition, b => b ? succeedNone : asSome(self)));\n/* @internal */\nexport const unsandbox = self => mapErrorCause(self, internalCause.flatten);\n/* @internal */\nexport const updateFiberRefs = f => core.withFiberRuntime(state => {\n state.setFiberRefs(f(state.id(), state.getFiberRefs()));\n return core.void;\n});\n/* @internal */\nexport const updateService = /*#__PURE__*/dual(3, (self, tag, f) => core.mapInputContext(self, context => Context.add(context, tag, f(Context.unsafeGet(context, tag)))));\n/* @internal */\nexport const when = /*#__PURE__*/dual(2, (self, condition) => core.suspend(() => condition() ? core.map(self, Option.some) : core.succeed(Option.none())));\n/* @internal */\nexport const whenFiberRef = /*#__PURE__*/dual(3, (self, fiberRef, predicate) => core.flatMap(core.fiberRefGet(fiberRef), s => predicate(s) ? core.map(self, a => [s, Option.some(a)]) : core.succeed([s, Option.none()])));\n/* @internal */\nexport const whenRef = /*#__PURE__*/dual(3, (self, ref, predicate) => core.flatMap(Ref.get(ref), s => predicate(s) ? core.map(self, a => [s, Option.some(a)]) : core.succeed([s, Option.none()])));\n/* @internal */\nexport const withMetric = /*#__PURE__*/dual(2, (self, metric) => metric(self));\n/** @internal */\nexport const serviceFunctionEffect = (getService, f) => (...args) => core.flatMap(getService, a => f(a)(...args));\n/** @internal */\nexport const serviceFunction = (getService, f) => (...args) => core.map(getService, a => f(a)(...args));\n/** @internal */\nexport const serviceFunctions = getService => new Proxy({}, {\n get(_target, prop, _receiver) {\n return (...args) => core.flatMap(getService, s => s[prop](...args));\n }\n});\n/** @internal */\nexport const serviceConstants = getService => new Proxy({}, {\n get(_target, prop, _receiver) {\n return core.flatMap(getService, s => core.isEffect(s[prop]) ? s[prop] : core.succeed(s[prop]));\n }\n});\n/** @internal */\nexport const serviceMembers = getService => ({\n functions: serviceFunctions(getService),\n constants: serviceConstants(getService)\n});\n/** @internal */\nexport const serviceOption = tag => core.map(core.context(), Context.getOption(tag));\n/** @internal */\nexport const serviceOptional = tag => core.flatMap(core.context(), Context.getOption(tag));\n// -----------------------------------------------------------------------------\n// tracing\n// -----------------------------------------------------------------------------\n/* @internal */\nexport const annotateCurrentSpan = function () {\n const args = arguments;\n return ignore(core.flatMap(currentSpan, span => core.sync(() => {\n if (typeof args[0] === \"string\") {\n span.attribute(args[0], args[1]);\n } else {\n for (const key in args[0]) {\n span.attribute(key, args[0][key]);\n }\n }\n })));\n};\n/* @internal */\nexport const linkSpanCurrent = function () {\n const args = arguments;\n const links = Array.isArray(args[0]) ? args[0] : [{\n _tag: \"SpanLink\",\n span: args[0],\n attributes: args[1] ?? {}\n }];\n return ignore(core.flatMap(currentSpan, span => core.sync(() => span.addLinks(links))));\n};\n/* @internal */\nexport const annotateSpans = /*#__PURE__*/dual(args => core.isEffect(args[0]), function () {\n const args = arguments;\n return core.fiberRefLocallyWith(args[0], core.currentTracerSpanAnnotations, typeof args[1] === \"string\" ? HashMap.set(args[1], args[2]) : annotations => Object.entries(args[1]).reduce((acc, [key, value]) => HashMap.set(acc, key, value), annotations));\n});\n/** @internal */\nexport const currentParentSpan = /*#__PURE__*/serviceOptional(internalTracer.spanTag);\n/** @internal */\nexport const currentSpan = /*#__PURE__*/core.flatMap(/*#__PURE__*/core.context(), context => {\n const span = context.unsafeMap.get(internalTracer.spanTag.key);\n return span !== undefined && span._tag === \"Span\" ? core.succeed(span) : core.fail(new core.NoSuchElementException());\n});\n/* @internal */\nexport const linkSpans = /*#__PURE__*/dual(args => core.isEffect(args[0]), (self, span, attributes) => core.fiberRefLocallyWith(self, core.currentTracerSpanLinks, Chunk.append({\n _tag: \"SpanLink\",\n span,\n attributes: attributes ?? {}\n})));\nconst bigint0 = /*#__PURE__*/BigInt(0);\nconst filterDisablePropagation = /*#__PURE__*/Option.flatMap(span => Context.get(span.context, internalTracer.DisablePropagation) ? span._tag === \"Span\" ? filterDisablePropagation(span.parent) : Option.none() : Option.some(span));\n/** @internal */\nexport const unsafeMakeSpan = (fiber, name, options) => {\n const disablePropagation = !fiber.getFiberRef(core.currentTracerEnabled) || options.context && Context.get(options.context, internalTracer.DisablePropagation);\n const context = fiber.getFiberRef(core.currentContext);\n const parent = options.parent ? Option.some(options.parent) : options.root ? Option.none() : filterDisablePropagation(Context.getOption(context, internalTracer.spanTag));\n let span;\n if (disablePropagation) {\n span = core.noopSpan({\n name,\n parent,\n context: Context.add(options.context ?? Context.empty(), internalTracer.DisablePropagation, true)\n });\n } else {\n const services = fiber.getFiberRef(defaultServices.currentServices);\n const tracer = Context.get(services, internalTracer.tracerTag);\n const clock = Context.get(services, Clock.Clock);\n const timingEnabled = fiber.getFiberRef(core.currentTracerTimingEnabled);\n const fiberRefs = fiber.getFiberRefs();\n const annotationsFromEnv = FiberRefs.get(fiberRefs, core.currentTracerSpanAnnotations);\n const linksFromEnv = FiberRefs.get(fiberRefs, core.currentTracerSpanLinks);\n const links = linksFromEnv._tag === \"Some\" ? options.links !== undefined ? [...Chunk.toReadonlyArray(linksFromEnv.value), ...(options.links ?? [])] : Chunk.toReadonlyArray(linksFromEnv.value) : options.links ?? Arr.empty();\n span = tracer.span(name, parent, options.context ?? Context.empty(), links, timingEnabled ? clock.unsafeCurrentTimeNanos() : bigint0, options.kind ?? \"internal\", options);\n if (annotationsFromEnv._tag === \"Some\") {\n HashMap.forEach(annotationsFromEnv.value, (value, key) => span.attribute(key, value));\n }\n if (options.attributes !== undefined) {\n Object.entries(options.attributes).forEach(([k, v]) => span.attribute(k, v));\n }\n }\n if (typeof options.captureStackTrace === \"function\") {\n internalCause.spanToTrace.set(span, options.captureStackTrace);\n }\n return span;\n};\n/** @internal */\nexport const makeSpan = (name, options) => {\n options = internalTracer.addSpanStackTrace(options);\n return core.withFiberRuntime(fiber => core.succeed(unsafeMakeSpan(fiber, name, options)));\n};\n/* @internal */\nexport const spanAnnotations = /*#__PURE__*/core.fiberRefGet(core.currentTracerSpanAnnotations);\n/* @internal */\nexport const spanLinks = /*#__PURE__*/core.fiberRefGet(core.currentTracerSpanLinks);\n/** @internal */\nexport const endSpan = (span, exit, clock, timingEnabled) => core.sync(() => {\n if (span.status._tag === \"Ended\") {\n return;\n }\n if (core.exitIsFailure(exit) && internalCause.spanToTrace.has(span)) {\n // https://opentelemetry.io/docs/specs/semconv/registry/attributes/code/#code-stacktrace\n span.attribute(\"code.stacktrace\", internalCause.spanToTrace.get(span)());\n }\n span.end(timingEnabled ? clock.unsafeCurrentTimeNanos() : bigint0, exit);\n});\n/** @internal */\nexport const useSpan = (name, ...args) => {\n const options = internalTracer.addSpanStackTrace(args.length === 1 ? undefined : args[0]);\n const evaluate = args[args.length - 1];\n return core.withFiberRuntime(fiber => {\n const span = unsafeMakeSpan(fiber, name, options);\n const timingEnabled = fiber.getFiberRef(core.currentTracerTimingEnabled);\n const clock = Context.get(fiber.getFiberRef(defaultServices.currentServices), clockTag);\n return core.onExit(evaluate(span), exit => endSpan(span, exit, clock, timingEnabled));\n });\n};\n/** @internal */\nexport const withParentSpan = /*#__PURE__*/dual(2, (self, span) => provideService(self, internalTracer.spanTag, span));\n/** @internal */\nexport const withSpan = function () {\n const dataFirst = typeof arguments[0] !== \"string\";\n const name = dataFirst ? arguments[1] : arguments[0];\n const options = internalTracer.addSpanStackTrace(dataFirst ? arguments[2] : arguments[1]);\n if (dataFirst) {\n const self = arguments[0];\n return useSpan(name, options, span => withParentSpan(self, span));\n }\n return self => useSpan(name, options, span => withParentSpan(self, span));\n};\nexport const functionWithSpan = options => function () {\n let captureStackTrace = options.captureStackTrace ?? false;\n if (options.captureStackTrace !== false) {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 2;\n const error = new Error();\n Error.stackTraceLimit = limit;\n let cache = false;\n captureStackTrace = () => {\n if (cache !== false) {\n return cache;\n }\n if (error.stack) {\n const stack = error.stack.trim().split(\"\\n\");\n cache = stack.slice(2).join(\"\\n\").trim();\n return cache;\n }\n };\n }\n return core.suspend(() => {\n const opts = typeof options.options === \"function\" ? options.options.apply(null, arguments) : options.options;\n return withSpan(core.suspend(() => internalCall(() => options.body.apply(this, arguments))), opts.name, {\n ...opts,\n captureStackTrace\n });\n });\n};\n// -------------------------------------------------------------------------------------\n// optionality\n// -------------------------------------------------------------------------------------\n/* @internal */\nexport const fromNullable = value => value == null ? core.fail(new core.NoSuchElementException()) : core.succeed(value);\n/* @internal */\nexport const optionFromOptional = self => core.catchAll(core.map(self, Option.some), error => core.isNoSuchElementException(error) ? succeedNone : core.fail(error));\n//# sourceMappingURL=core-effect.js.map","import { parseAccount } from '../../accounts/utils/parseAccount.js';\nimport { BaseFeeScalarError } from '../../errors/fee.js';\nimport { getTransactionError, } from '../../utils/errors/getTransactionError.js';\nimport { extract } from '../../utils/formatters/extract.js';\nimport { formatTransaction, } from '../../utils/formatters/transaction.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { assertRequest } from '../../utils/transaction/assertRequest.js';\nimport { getBlock } from './getBlock.js';\nimport { getChainId as getChainId_ } from './getChainId.js';\n/**\n * Fills a transaction request with the necessary fields to be signed over.\n *\n * - Docs: https://viem.sh/docs/actions/public/fillTransaction\n *\n * @param client - Client to use\n * @param parameters - {@link FillTransactionParameters}\n * @returns The filled transaction. {@link FillTransactionReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { fillTransaction } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const result = await fillTransaction(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: parseEther('1'),\n * })\n */\nexport async function fillTransaction(client, parameters) {\n const { account = client.account, accessList, authorizationList, chain = client.chain, blobVersionedHashes, blobs, data, gas, gasPrice, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, nonce: nonce_, nonceManager, to, type, value, ...rest } = parameters;\n const nonce = await (async () => {\n if (!account)\n return nonce_;\n if (!nonceManager)\n return nonce_;\n if (typeof nonce_ !== 'undefined')\n return nonce_;\n const account_ = parseAccount(account);\n const chainId = chain\n ? chain.id\n : await getAction(client, getChainId_, 'getChainId')({});\n return await nonceManager.consume({\n address: account_.address,\n chainId,\n client,\n });\n })();\n assertRequest(parameters);\n const chainFormat = chain?.formatters?.transactionRequest?.format;\n const format = chainFormat || formatTransactionRequest;\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n account: account ? parseAccount(account) : undefined,\n accessList,\n authorizationList,\n blobs,\n blobVersionedHashes,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n type,\n value,\n }, 'fillTransaction');\n try {\n const response = await client.request({\n method: 'eth_fillTransaction',\n params: [request],\n });\n const format = chain?.formatters?.transaction?.format || formatTransaction;\n const transaction = format(response.tx);\n // Remove unnecessary fields.\n delete transaction.blockHash;\n delete transaction.blockNumber;\n delete transaction.r;\n delete transaction.s;\n delete transaction.transactionIndex;\n delete transaction.v;\n delete transaction.yParity;\n // Rewrite fields.\n transaction.data = transaction.input;\n // Preference supplied fees (some nodes do not take these preferences).\n if (transaction.gas)\n transaction.gas = parameters.gas ?? transaction.gas;\n if (transaction.gasPrice)\n transaction.gasPrice = parameters.gasPrice ?? transaction.gasPrice;\n if (transaction.maxFeePerBlobGas)\n transaction.maxFeePerBlobGas =\n parameters.maxFeePerBlobGas ?? transaction.maxFeePerBlobGas;\n if (transaction.maxFeePerGas)\n transaction.maxFeePerGas =\n parameters.maxFeePerGas ?? transaction.maxFeePerGas;\n if (transaction.maxPriorityFeePerGas)\n transaction.maxPriorityFeePerGas =\n parameters.maxPriorityFeePerGas ?? transaction.maxPriorityFeePerGas;\n if (transaction.nonce)\n transaction.nonce = parameters.nonce ?? transaction.nonce;\n // Build fee multiplier function.\n const feeMultiplier = await (async () => {\n if (typeof chain?.fees?.baseFeeMultiplier === 'function') {\n const block = await getAction(client, getBlock, 'getBlock')({});\n return chain.fees.baseFeeMultiplier({\n block,\n client,\n request: parameters,\n });\n }\n return chain?.fees?.baseFeeMultiplier ?? 1.2;\n })();\n if (feeMultiplier < 1)\n throw new BaseFeeScalarError();\n const decimals = feeMultiplier.toString().split('.')[1]?.length ?? 0;\n const denominator = 10 ** decimals;\n const multiplyFee = (base) => (base * BigInt(Math.ceil(feeMultiplier * denominator))) /\n BigInt(denominator);\n // Apply fee multiplier.\n if (transaction.maxFeePerGas && !parameters.maxFeePerGas)\n transaction.maxFeePerGas = multiplyFee(transaction.maxFeePerGas);\n if (transaction.gasPrice && !parameters.gasPrice)\n transaction.gasPrice = multiplyFee(transaction.gasPrice);\n return {\n raw: response.raw,\n transaction: {\n from: request.from,\n ...transaction,\n },\n };\n }\n catch (err) {\n throw getTransactionError(err, {\n ...parameters,\n chain: client.chain,\n });\n }\n}\n//# sourceMappingURL=fillTransaction.js.map","var base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","'use strict';\n\nvar defaultEncoding;\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n\tdefaultEncoding = 'utf-8';\n} else if (global.process && global.process.version) {\n\tvar pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10);\n\n\tdefaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary';\n} else {\n\tdefaultEncoding = 'utf-8';\n}\nmodule.exports = defaultEncoding;\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","import * as Array from \"../Array.js\";\nimport * as Context from \"../Context.js\";\nimport * as Duration from \"../Duration.js\";\nimport { dual, pipe } from \"../Function.js\";\nimport { globalValue } from \"../GlobalValue.js\";\nimport * as clock from \"./clock.js\";\nimport * as configProvider from \"./configProvider.js\";\nimport * as core from \"./core.js\";\nimport * as console_ from \"./defaultServices/console.js\";\nimport * as random from \"./random.js\";\nimport * as tracer from \"./tracer.js\";\n/** @internal */\nexport const liveServices = /*#__PURE__*/pipe(/*#__PURE__*/Context.empty(), /*#__PURE__*/Context.add(clock.clockTag, /*#__PURE__*/clock.make()), /*#__PURE__*/Context.add(console_.consoleTag, console_.defaultConsole), /*#__PURE__*/Context.add(random.randomTag, /*#__PURE__*/random.make(/*#__PURE__*/Math.random())), /*#__PURE__*/Context.add(configProvider.configProviderTag, /*#__PURE__*/configProvider.fromEnv()), /*#__PURE__*/Context.add(tracer.tracerTag, tracer.nativeTracer));\n/**\n * The `FiberRef` holding the default `Effect` services.\n *\n * @since 2.0.0\n * @category fiberRefs\n */\nexport const currentServices = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/DefaultServices/currentServices\"), () => core.fiberRefUnsafeMakeContext(liveServices));\n// circular with Clock\n/** @internal */\nexport const sleep = duration => {\n const decodedDuration = Duration.decode(duration);\n return clockWith(clock => clock.sleep(decodedDuration));\n};\n/** @internal */\nexport const defaultServicesWith = f => core.withFiberRuntime(fiber => f(fiber.currentDefaultServices));\n/** @internal */\nexport const clockWith = f => defaultServicesWith(services => f(services.unsafeMap.get(clock.clockTag.key)));\n/** @internal */\nexport const currentTimeMillis = /*#__PURE__*/clockWith(clock => clock.currentTimeMillis);\n/** @internal */\nexport const currentTimeNanos = /*#__PURE__*/clockWith(clock => clock.currentTimeNanos);\n/** @internal */\nexport const withClock = /*#__PURE__*/dual(2, (effect, c) => core.fiberRefLocallyWith(currentServices, Context.add(clock.clockTag, c))(effect));\n// circular with ConfigProvider\n/** @internal */\nexport const withConfigProvider = /*#__PURE__*/dual(2, (self, provider) => core.fiberRefLocallyWith(currentServices, Context.add(configProvider.configProviderTag, provider))(self));\n/** @internal */\nexport const configProviderWith = f => defaultServicesWith(services => f(services.unsafeMap.get(configProvider.configProviderTag.key)));\n/** @internal */\nexport const config = config => configProviderWith(_ => _.load(config));\n/** @internal */\nexport const configOrDie = config => core.orDie(configProviderWith(_ => _.load(config)));\n// circular with Random\n/** @internal */\nexport const randomWith = f => defaultServicesWith(services => f(services.unsafeMap.get(random.randomTag.key)));\n/** @internal */\nexport const withRandom = /*#__PURE__*/dual(2, (effect, value) => core.fiberRefLocallyWith(currentServices, Context.add(random.randomTag, value))(effect));\n/** @internal */\nexport const next = /*#__PURE__*/randomWith(random => random.next);\n/** @internal */\nexport const nextInt = /*#__PURE__*/randomWith(random => random.nextInt);\n/** @internal */\nexport const nextBoolean = /*#__PURE__*/randomWith(random => random.nextBoolean);\n/** @internal */\nexport const nextRange = (min, max) => randomWith(random => random.nextRange(min, max));\n/** @internal */\nexport const nextIntBetween = (min, max) => randomWith(random => random.nextIntBetween(min, max));\n/** @internal */\nexport const shuffle = elements => randomWith(random => random.shuffle(elements));\n/** @internal */\nexport const choice = elements => {\n const array = Array.fromIterable(elements);\n return core.map(array.length === 0 ? core.fail(new core.NoSuchElementException(\"Cannot select a random element from an empty array\")) : randomWith(random => random.nextIntBetween(0, array.length)), i => array[i]);\n};\n// circular with Tracer\n/** @internal */\nexport const tracerWith = f => defaultServicesWith(services => f(services.unsafeMap.get(tracer.tracerTag.key)));\n/** @internal */\nexport const withTracer = /*#__PURE__*/dual(2, (effect, value) => core.fiberRefLocallyWith(currentServices, Context.add(tracer.tracerTag, value))(effect));\n//# sourceMappingURL=defaultServices.js.map","(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 this.length = num === 0 ? 1 : this.length;\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","/**\n * The `GlobalValue` module ensures that a single instance of a value is created globally,\n * even when modules are imported multiple times (e.g., due to mixing CommonJS and ESM builds)\n * or during hot-reloading in development environments like Next.js or Remix.\n *\n * It achieves this by using a versioned global store, identified by a unique `Symbol` tied to\n * the current version of the `effect` library. The store holds values that are keyed by an identifier,\n * allowing the reuse of previously computed instances across imports or reloads.\n *\n * This pattern is particularly useful in scenarios where frequent reloading can cause services or\n * single-instance objects to be recreated unnecessarily, such as in development environments with hot-reloading.\n *\n * @since 2.0.0\n */\nconst globalStoreId = `effect/GlobalValue`;\nlet globalStore;\n/**\n * Retrieves or computes a global value associated with the given `id`. If the value for this `id`\n * has already been computed, it will be returned from the global store. If it does not exist yet,\n * the provided `compute` function will be executed to compute the value, store it, and then return it.\n *\n * This ensures that even in cases where the module is imported multiple times (e.g., in mixed environments\n * like CommonJS and ESM, or during hot-reloading in development), the value is computed only once and reused\n * thereafter.\n *\n * @example\n * ```ts\n * import { globalValue } from \"effect/GlobalValue\"\n *\n * // This cache will persist as long as the module is running,\n * // even if reloaded or imported elsewhere\n * const myCache = globalValue(\n * Symbol.for(\"myCache\"),\n * () => new WeakMap()\n * )\n * ```\n *\n * @since 2.0.0\n */\nexport const globalValue = (id, compute) => {\n if (!globalStore) {\n // @ts-expect-error\n globalThis[globalStoreId] ??= new Map();\n // @ts-expect-error\n globalStore = globalThis[globalStoreId];\n }\n if (!globalStore.has(id)) {\n globalStore.set(id, compute());\n }\n return globalStore.get(id);\n};\n//# sourceMappingURL=GlobalValue.js.map","import { BaseError } from '../../errors/base.js';\nimport { ContractFunctionRevertedError } from '../../errors/contract.js';\n/*\n * @description Checks if error is a valid null result UniversalResolver error\n */\nexport function isNullUniversalResolverError(err) {\n if (!(err instanceof BaseError))\n return false;\n const cause = err.walk((e) => e instanceof ContractFunctionRevertedError);\n if (!(cause instanceof ContractFunctionRevertedError))\n return false;\n if (cause.data?.errorName === 'HttpError')\n return true;\n if (cause.data?.errorName === 'ResolverError')\n return true;\n if (cause.data?.errorName === 'ResolverNotContract')\n return true;\n if (cause.data?.errorName === 'ResolverNotFound')\n return true;\n if (cause.data?.errorName === 'ReverseAddressMismatch')\n return true;\n if (cause.data?.errorName === 'UnsupportedResolverProfile')\n return true;\n return false;\n}\n//# sourceMappingURL=errors.js.map","import { isHex } from '../data/isHex.js';\nexport function encodedLabelToLabelhash(label) {\n if (label.length !== 66)\n return null;\n if (label.indexOf('[') !== 0)\n return null;\n if (label.indexOf(']') !== 65)\n return null;\n const hash = `0x${label.slice(1, 65)}`;\n if (!isHex(hash))\n return null;\n return hash;\n}\n//# sourceMappingURL=encodedLabelToLabelhash.js.map","import { concat } from '../data/concat.js';\nimport { stringToBytes, toBytes, } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { encodedLabelToLabelhash, } from './encodedLabelToLabelhash.js';\n/**\n * @description Hashes ENS name\n *\n * - Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `namehash`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @example\n * namehash('wevm.eth')\n * '0x08c85f2f4059e930c45a6aeff9dcd3bd95dc3c5c1cddef6a0626b31152248560'\n *\n * @link https://eips.ethereum.org/EIPS/eip-137\n */\nexport function namehash(name) {\n let result = new Uint8Array(32).fill(0);\n if (!name)\n return bytesToHex(result);\n const labels = name.split('.');\n // Iterate in reverse order building up hash\n for (let i = labels.length - 1; i >= 0; i -= 1) {\n const hashFromEncodedLabel = encodedLabelToLabelhash(labels[i]);\n const hashed = hashFromEncodedLabel\n ? toBytes(hashFromEncodedLabel)\n : keccak256(stringToBytes(labels[i]), 'bytes');\n result = keccak256(concat([result, hashed]), 'bytes');\n }\n return bytesToHex(result);\n}\n//# sourceMappingURL=namehash.js.map","export function encodeLabelhash(hash) {\n return `[${hash.slice(2)}]`;\n}\n//# sourceMappingURL=encodeLabelhash.js.map","import { stringToBytes, } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { encodedLabelToLabelhash, } from './encodedLabelToLabelhash.js';\n/**\n * @description Hashes ENS label\n *\n * - Since ENS labels prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS labels](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `labelhash`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @example\n * labelhash('eth')\n * '0x4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0'\n */\nexport function labelhash(label) {\n const result = new Uint8Array(32).fill(0);\n if (!label)\n return bytesToHex(result);\n return encodedLabelToLabelhash(label) || keccak256(stringToBytes(label));\n}\n//# sourceMappingURL=labelhash.js.map","import { stringToBytes, } from '../encoding/toBytes.js';\nimport { encodeLabelhash, } from './encodeLabelhash.js';\nimport { labelhash } from './labelhash.js';\n/*\n * @description Encodes a DNS packet into a ByteArray containing a UDP payload.\n *\n * @example\n * packetToBytes('awkweb.eth')\n * '0x0661776b7765620365746800'\n *\n * @see https://docs.ens.domains/resolution/names#dns\n *\n */\nexport function packetToBytes(packet) {\n // strip leading and trailing `.`\n const value = packet.replace(/^\\.|\\.$/gm, '');\n if (value.length === 0)\n return new Uint8Array(1);\n const bytes = new Uint8Array(stringToBytes(value).byteLength + 2);\n let offset = 0;\n const list = value.split('.');\n for (let i = 0; i < list.length; i++) {\n let encoded = stringToBytes(list[i]);\n // if the length is > 255, make the encoded label value a labelhash\n // this is compatible with the universal resolver\n if (encoded.byteLength > 255)\n encoded = stringToBytes(encodeLabelhash(labelhash(list[i])));\n bytes[offset] = encoded.length;\n bytes.set(encoded, offset + 1);\n offset += encoded.length + 1;\n }\n if (bytes.byteLength !== offset + 1)\n return bytes.slice(0, offset + 1);\n return bytes;\n}\n//# sourceMappingURL=packetToBytes.js.map","import { BaseError } from './base.js';\nexport class EnsAvatarInvalidMetadataError extends BaseError {\n constructor({ data }) {\n super('Unable to extract image from metadata. The metadata may be malformed or invalid.', {\n metaMessages: [\n '- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.',\n '',\n `Provided data: ${JSON.stringify(data)}`,\n ],\n name: 'EnsAvatarInvalidMetadataError',\n });\n }\n}\nexport class EnsAvatarInvalidNftUriError extends BaseError {\n constructor({ reason }) {\n super(`ENS NFT avatar URI is invalid. ${reason}`, {\n name: 'EnsAvatarInvalidNftUriError',\n });\n }\n}\nexport class EnsAvatarUriResolutionError extends BaseError {\n constructor({ uri }) {\n super(`Unable to resolve ENS avatar URI \"${uri}\". The URI may be malformed, invalid, or does not respond with a valid image.`, { name: 'EnsAvatarUriResolutionError' });\n }\n}\nexport class EnsAvatarUnsupportedNamespaceError extends BaseError {\n constructor({ namespace }) {\n super(`ENS NFT avatar namespace \"${namespace}\" is not supported. Must be \"erc721\" or \"erc1155\".`, { name: 'EnsAvatarUnsupportedNamespaceError' });\n }\n}\nexport class EnsInvalidChainIdError extends BaseError {\n constructor({ chainId }) {\n super(`Invalid ENSIP-11 chainId: ${chainId}. Must be between 0 and 0x7fffffff, or 1.`, {\n name: 'EnsInvalidChainIdError',\n });\n }\n}\n//# sourceMappingURL=ens.js.map","import { readContract, } from '../../../actions/public/readContract.js';\nimport { EnsAvatarInvalidMetadataError, EnsAvatarInvalidNftUriError, EnsAvatarUnsupportedNamespaceError, EnsAvatarUriResolutionError, } from '../../../errors/ens.js';\nconst networkRegex = /(?https?:\\/\\/[^/]*|ipfs:\\/|ipns:\\/|ar:\\/)?(?\\/)?(?ipfs\\/|ipns\\/)?(?[\\w\\-.]+)(?\\/.*)?/;\nconst ipfsHashRegex = /^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\\/(?[\\w\\-.]+))?(?\\/.*)?$/;\nconst base64Regex = /^data:([a-zA-Z\\-/+]*);base64,([^\"].*)/;\nconst dataURIRegex = /^data:([a-zA-Z\\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;\n/** @internal */\nexport async function isImageUri(uri) {\n try {\n const res = await fetch(uri, { method: 'HEAD' });\n // retrieve content type header to check if content is image\n if (res.status === 200) {\n const contentType = res.headers.get('content-type');\n return contentType?.startsWith('image/');\n }\n return false;\n }\n catch (error) {\n // if error is not cors related then fail\n if (typeof error === 'object' && typeof error.response !== 'undefined') {\n return false;\n }\n // fail in NodeJS, since the error is not cors but any other network issue\n if (!Object.hasOwn(globalThis, 'Image'))\n return false;\n // in case of cors, use image api to validate if given url is an actual image\n return new Promise((resolve) => {\n const img = new Image();\n img.onload = () => {\n resolve(true);\n };\n img.onerror = () => {\n resolve(false);\n };\n img.src = uri;\n });\n }\n}\n/** @internal */\nexport function getGateway(custom, defaultGateway) {\n if (!custom)\n return defaultGateway;\n if (custom.endsWith('/'))\n return custom.slice(0, -1);\n return custom;\n}\nexport function resolveAvatarUri({ uri, gatewayUrls, }) {\n const isEncoded = base64Regex.test(uri);\n if (isEncoded)\n return { uri, isOnChain: true, isEncoded };\n const ipfsGateway = getGateway(gatewayUrls?.ipfs, 'https://ipfs.io');\n const arweaveGateway = getGateway(gatewayUrls?.arweave, 'https://arweave.net');\n const networkRegexMatch = uri.match(networkRegex);\n const { protocol, subpath, target, subtarget = '', } = networkRegexMatch?.groups || {};\n const isIPNS = protocol === 'ipns:/' || subpath === 'ipns/';\n const isIPFS = protocol === 'ipfs:/' || subpath === 'ipfs/' || ipfsHashRegex.test(uri);\n if (uri.startsWith('http') && !isIPNS && !isIPFS) {\n let replacedUri = uri;\n if (gatewayUrls?.arweave)\n replacedUri = uri.replace(/https:\\/\\/arweave.net/g, gatewayUrls?.arweave);\n return { uri: replacedUri, isOnChain: false, isEncoded: false };\n }\n if ((isIPNS || isIPFS) && target) {\n return {\n uri: `${ipfsGateway}/${isIPNS ? 'ipns' : 'ipfs'}/${target}${subtarget}`,\n isOnChain: false,\n isEncoded: false,\n };\n }\n if (protocol === 'ar:/' && target) {\n return {\n uri: `${arweaveGateway}/${target}${subtarget || ''}`,\n isOnChain: false,\n isEncoded: false,\n };\n }\n let parsedUri = uri.replace(dataURIRegex, '');\n if (parsedUri.startsWith(' res.json());\n const image = await parseAvatarUri({\n gatewayUrls,\n uri: getJsonImage(res),\n });\n return image;\n }\n catch {\n throw new EnsAvatarUriResolutionError({ uri });\n }\n}\nexport async function parseAvatarUri({ gatewayUrls, uri, }) {\n const { uri: resolvedURI, isOnChain } = resolveAvatarUri({ uri, gatewayUrls });\n if (isOnChain)\n return resolvedURI;\n // check if resolvedURI is an image, if it is return the url\n const isImage = await isImageUri(resolvedURI);\n if (isImage)\n return resolvedURI;\n throw new EnsAvatarUriResolutionError({ uri });\n}\nexport function parseNftUri(uri_) {\n let uri = uri_;\n // parse valid nft spec (CAIP-22/CAIP-29)\n // @see: https://github.com/ChainAgnostic/CAIPs/tree/master/CAIPs\n if (uri.startsWith('did:nft:')) {\n // convert DID to CAIP\n uri = uri.replace('did:nft:', '').replace(/_/g, '/');\n }\n const [reference, asset_namespace, tokenID] = uri.split('/');\n const [eip_namespace, chainID] = reference.split(':');\n const [erc_namespace, contractAddress] = asset_namespace.split(':');\n if (!eip_namespace || eip_namespace.toLowerCase() !== 'eip155')\n throw new EnsAvatarInvalidNftUriError({ reason: 'Only EIP-155 supported' });\n if (!chainID)\n throw new EnsAvatarInvalidNftUriError({ reason: 'Chain ID not found' });\n if (!contractAddress)\n throw new EnsAvatarInvalidNftUriError({\n reason: 'Contract address not found',\n });\n if (!tokenID)\n throw new EnsAvatarInvalidNftUriError({ reason: 'Token ID not found' });\n if (!erc_namespace)\n throw new EnsAvatarInvalidNftUriError({ reason: 'ERC namespace not found' });\n return {\n chainID: Number.parseInt(chainID, 10),\n namespace: erc_namespace.toLowerCase(),\n contractAddress: contractAddress,\n tokenID,\n };\n}\nexport async function getNftTokenUri(client, { nft }) {\n if (nft.namespace === 'erc721') {\n return readContract(client, {\n address: nft.contractAddress,\n abi: [\n {\n name: 'tokenURI',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: 'tokenId', type: 'uint256' }],\n outputs: [{ name: '', type: 'string' }],\n },\n ],\n functionName: 'tokenURI',\n args: [BigInt(nft.tokenID)],\n });\n }\n if (nft.namespace === 'erc1155') {\n return readContract(client, {\n address: nft.contractAddress,\n abi: [\n {\n name: 'uri',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: '_id', type: 'uint256' }],\n outputs: [{ name: '', type: 'string' }],\n },\n ],\n functionName: 'uri',\n args: [BigInt(nft.tokenID)],\n });\n }\n throw new EnsAvatarUnsupportedNamespaceError({ namespace: nft.namespace });\n}\n//# sourceMappingURL=utils.js.map","import { textResolverAbi, universalResolverResolveAbi, } from '../../constants/abis.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { toHex } from '../../utils/encoding/toHex.js';\nimport { isNullUniversalResolverError } from '../../utils/ens/errors.js';\nimport { localBatchGatewayUrl } from '../../utils/ens/localBatchGatewayRequest.js';\nimport { namehash } from '../../utils/ens/namehash.js';\nimport { packetToBytes, } from '../../utils/ens/packetToBytes.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from '../public/readContract.js';\n/**\n * Gets a text record for specified ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsTextParameters}\n * @returns Address for ENS resolver. {@link GetEnsTextReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsText, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const twitterRecord = await getEnsText(client, {\n * name: normalize('wevm.eth'),\n * key: 'com.twitter',\n * })\n * // 'wevm_dev'\n */\nexport async function getEnsText(client, parameters) {\n const { blockNumber, blockTag, key, name, gatewayUrls, strict } = parameters;\n const { chain } = client;\n const universalResolverAddress = (() => {\n if (parameters.universalResolverAddress)\n return parameters.universalResolverAddress;\n if (!chain)\n throw new Error('client chain not configured. universalResolverAddress is required.');\n return getChainContractAddress({\n blockNumber,\n chain,\n contract: 'ensUniversalResolver',\n });\n })();\n const tlds = chain?.ensTlds;\n if (tlds && !tlds.some((tld) => name.endsWith(tld)))\n return null;\n try {\n const readContractParameters = {\n address: universalResolverAddress,\n abi: universalResolverResolveAbi,\n args: [\n toHex(packetToBytes(name)),\n encodeFunctionData({\n abi: textResolverAbi,\n functionName: 'text',\n args: [namehash(name), key],\n }),\n gatewayUrls ?? [localBatchGatewayUrl],\n ],\n functionName: 'resolveWithGateways',\n blockNumber,\n blockTag,\n };\n const readContractAction = getAction(client, readContract, 'readContract');\n const res = await readContractAction(readContractParameters);\n if (res[0] === '0x')\n return null;\n const record = decodeFunctionResult({\n abi: textResolverAbi,\n functionName: 'text',\n data: res[0],\n });\n return record === '' ? null : record;\n }\n catch (err) {\n if (strict)\n throw err;\n if (isNullUniversalResolverError(err))\n return null;\n throw err;\n }\n}\n//# sourceMappingURL=getEnsText.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { getCallError, } from '../../utils/errors/getCallError.js';\nimport { extract } from '../../utils/formatters/extract.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { assertRequest } from '../../utils/transaction/assertRequest.js';\n/**\n * Creates an EIP-2930 access list.\n *\n * - Docs: https://viem.sh/docs/actions/public/createAccessList\n * - JSON-RPC Methods: `eth_createAccessList`\n *\n * @param client - Client to use\n * @param parameters - {@link CreateAccessListParameters}\n * @returns The access list. {@link CreateAccessListReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createAccessList } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const data = await createAccessList(client, {\n * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * })\n */\nexport async function createAccessList(client, args) {\n const { account: account_ = client.account, blockNumber, blockTag = 'latest', blobs, data, gas, gasPrice, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, to, value, ...rest } = args;\n const account = account_ ? parseAccount(account_) : undefined;\n try {\n assertRequest(args);\n const blockNumberHex = typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\n const chainFormat = client.chain?.formatters?.transactionRequest?.format;\n const format = chainFormat || formatTransactionRequest;\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n account,\n blobs,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n to,\n value,\n }, 'createAccessList');\n const response = await client.request({\n method: 'eth_createAccessList',\n params: [request, block],\n });\n return {\n accessList: response.accessList,\n gasUsed: BigInt(response.gasUsed),\n };\n }\n catch (err) {\n throw getCallError(err, {\n ...args,\n account,\n chain: client.chain,\n });\n }\n}\n//# sourceMappingURL=createAccessList.js.map","import { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js';\n/**\n * Creates a [`Filter`](https://viem.sh/docs/glossary/types#filter) to listen for new events that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).\n *\n * - Docs: https://viem.sh/docs/actions/public/createEventFilter\n * - JSON-RPC Methods: [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter)\n *\n * @param client - Client to use\n * @param parameters - {@link CreateEventFilterParameters}\n * @returns [`Filter`](https://viem.sh/docs/glossary/types#filter). {@link CreateEventFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createEventFilter } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createEventFilter(client, {\n * address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',\n * })\n */\nexport async function createEventFilter(client, { address, args, event, events: events_, fromBlock, strict, toBlock, } = {}) {\n const events = events_ ?? (event ? [event] : undefined);\n const getRequest = createFilterRequestScope(client, {\n method: 'eth_newFilter',\n });\n let topics = [];\n if (events) {\n const encoded = events.flatMap((event) => encodeEventTopics({\n abi: [event],\n eventName: event.name,\n args,\n }));\n // TODO: Clean up type casting\n topics = [encoded];\n if (event)\n topics = topics[0];\n }\n const id = await client.request({\n method: 'eth_newFilter',\n params: [\n {\n address,\n fromBlock: typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n ...(topics.length ? { topics } : {}),\n },\n ],\n });\n return {\n abi: events,\n args,\n eventName: event ? event.name : undefined,\n fromBlock,\n id,\n request: getRequest(id),\n strict: Boolean(strict),\n toBlock,\n type: 'event',\n };\n}\n//# sourceMappingURL=createEventFilter.js.map","import { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js';\n/**\n * Creates a Filter to listen for new pending transaction hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).\n *\n * - Docs: https://viem.sh/docs/actions/public/createPendingTransactionFilter\n * - JSON-RPC Methods: [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter)\n *\n * @param client - Client to use\n * @returns [`Filter`](https://viem.sh/docs/glossary/types#filter). {@link CreateBlockFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createPendingTransactionFilter } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createPendingTransactionFilter(client)\n * // { id: \"0x345a6572337856574a76364e457a4366\", type: 'transaction' }\n */\nexport async function createPendingTransactionFilter(client) {\n const getRequest = createFilterRequestScope(client, {\n method: 'eth_newPendingTransactionFilter',\n });\n const id = await client.request({\n method: 'eth_newPendingTransactionFilter',\n });\n return { id, request: getRequest(id), type: 'transaction' };\n}\n//# sourceMappingURL=createPendingTransactionFilter.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Retrieves the bytecode at an address.\n *\n * - Docs: https://viem.sh/docs/contract/getCode\n * - JSON-RPC Methods: [`eth_getCode`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getcode)\n *\n * @param client - Client to use\n * @param parameters - {@link GetCodeParameters}\n * @returns The contract's bytecode. {@link GetCodeReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getCode } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const code = await getCode(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * })\n */\nexport async function getCode(client, { address, blockNumber, blockTag = 'latest' }) {\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n const hex = await client.request({\n method: 'eth_getCode',\n params: [address, blockNumberHex || blockTag],\n }, { dedupe: Boolean(blockNumberHex) });\n if (hex === '0x')\n return undefined;\n return hex;\n}\n//# sourceMappingURL=getCode.js.map","import { BaseError } from './base.js';\nexport class Eip712DomainNotFoundError extends BaseError {\n constructor({ address }) {\n super(`No EIP-712 domain found on contract \"${address}\".`, {\n metaMessages: [\n 'Ensure that:',\n `- The contract is deployed at the address \"${address}\".`,\n '- `eip712Domain()` function exists on the contract.',\n '- `eip712Domain()` function matches signature to ERC-5267 specification.',\n ],\n name: 'Eip712DomainNotFoundError',\n });\n }\n}\n//# sourceMappingURL=eip712.js.map","import { Eip712DomainNotFoundError, } from '../../errors/eip712.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from './readContract.js';\n/**\n * Reads the EIP-712 domain from a contract, based on the ERC-5267 specification.\n *\n * @param client - A {@link Client} instance.\n * @param parameters - The parameters of the action. {@link GetEip712DomainParameters}\n * @returns The EIP-712 domain, fields, and extensions. {@link GetEip712DomainReturnType}\n *\n * @example\n * ```ts\n * import { createPublicClient, http, getEip712Domain } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n *\n * const domain = await getEip712Domain(client, {\n * address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n * })\n * // {\n * // domain: {\n * // name: 'ExampleContract',\n * // version: '1',\n * // chainId: 1,\n * // verifyingContract: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n * // },\n * // fields: '0x0f',\n * // extensions: [],\n * // }\n * ```\n */\nexport async function getEip712Domain(client, parameters) {\n const { address, factory, factoryData } = parameters;\n try {\n const [fields, name, version, chainId, verifyingContract, salt, extensions,] = await getAction(client, readContract, 'readContract')({\n abi,\n address,\n functionName: 'eip712Domain',\n factory,\n factoryData,\n });\n return {\n domain: {\n name,\n version,\n chainId: Number(chainId),\n verifyingContract,\n salt,\n },\n extensions,\n fields,\n };\n }\n catch (e) {\n const error = e;\n if (error.name === 'ContractFunctionExecutionError' &&\n error.cause.name === 'ContractFunctionZeroDataError') {\n throw new Eip712DomainNotFoundError({ address });\n }\n throw error;\n }\n}\nconst abi = [\n {\n inputs: [],\n name: 'eip712Domain',\n outputs: [\n { name: 'fields', type: 'bytes1' },\n { name: 'name', type: 'string' },\n { name: 'version', type: 'string' },\n { name: 'chainId', type: 'uint256' },\n { name: 'verifyingContract', type: 'address' },\n { name: 'salt', type: 'bytes32' },\n { name: 'extensions', type: 'uint256[]' },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\n//# sourceMappingURL=getEip712Domain.js.map","import * as BlockOverrides from 'ox/BlockOverrides';\nimport { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AbiDecodingZeroDataError } from '../../errors/abi.js';\nimport { RawContractError } from '../../errors/contract.js';\nimport { UnknownNodeError } from '../../errors/node.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { concat } from '../../utils/data/concat.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { getContractError } from '../../utils/errors/getContractError.js';\nimport { getNodeError, } from '../../utils/errors/getNodeError.js';\nimport { formatBlock, } from '../../utils/formatters/block.js';\nimport { formatLog } from '../../utils/formatters/log.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { serializeStateOverride, } from '../../utils/stateOverride.js';\nimport { assertRequest, } from '../../utils/transaction/assertRequest.js';\n/**\n * Simulates a set of calls on block(s) with optional block and state overrides.\n *\n * @example\n * ```ts\n * import { createClient, http, parseEther } from 'viem'\n * import { simulate } from 'viem/actions'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createClient({\n * chain: mainnet,\n * transport: http(),\n * })\n *\n * const result = await simulate(client, {\n * blocks: [{\n * blockOverrides: {\n * number: 69420n,\n * },\n * calls: [{\n * {\n * account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n * data: '0xdeadbeef',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * },\n * {\n * account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: parseEther('1'),\n * },\n * }],\n * stateOverrides: [{\n * address: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n * balance: parseEther('10'),\n * }],\n * }]\n * })\n * ```\n *\n * @param client - Client to use.\n * @param parameters - {@link SimulateBlocksParameters}\n * @returns Simulated blocks. {@link SimulateBlocksReturnType}\n */\nexport async function simulateBlocks(client, parameters) {\n const { blockNumber, blockTag = client.experimental_blockTag ?? 'latest', blocks, returnFullTransactions, traceTransfers, validation, } = parameters;\n try {\n const blockStateCalls = [];\n for (const block of blocks) {\n const blockOverrides = block.blockOverrides\n ? BlockOverrides.toRpc(block.blockOverrides)\n : undefined;\n const calls = block.calls.map((call_) => {\n const call = call_;\n const account = call.account ? parseAccount(call.account) : undefined;\n const data = call.abi ? encodeFunctionData(call) : call.data;\n const request = {\n ...call,\n account,\n data: call.dataSuffix\n ? concat([data || '0x', call.dataSuffix])\n : data,\n from: call.from ?? account?.address,\n };\n assertRequest(request);\n return formatTransactionRequest(request);\n });\n const stateOverrides = block.stateOverrides\n ? serializeStateOverride(block.stateOverrides)\n : undefined;\n blockStateCalls.push({\n blockOverrides,\n calls,\n stateOverrides,\n });\n }\n const blockNumberHex = typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\n const result = await client.request({\n method: 'eth_simulateV1',\n params: [\n { blockStateCalls, returnFullTransactions, traceTransfers, validation },\n block,\n ],\n });\n return result.map((block, i) => ({\n ...formatBlock(block),\n calls: block.calls.map((call, j) => {\n const { abi, args, functionName, to } = blocks[i].calls[j];\n const data = call.error?.data ?? call.returnData;\n const gasUsed = BigInt(call.gasUsed);\n const logs = call.logs?.map((log) => formatLog(log));\n const status = call.status === '0x1' ? 'success' : 'failure';\n const result = abi && status === 'success' && data !== '0x'\n ? decodeFunctionResult({\n abi,\n data,\n functionName,\n })\n : null;\n const error = (() => {\n if (status === 'success')\n return undefined;\n let error;\n if (call.error?.data === '0x')\n error = new AbiDecodingZeroDataError();\n else if (call.error)\n error = new RawContractError(call.error);\n if (!error)\n return undefined;\n return getContractError(error, {\n abi: (abi ?? []),\n address: to ?? '0x',\n args,\n functionName: functionName ?? '',\n });\n })();\n return {\n data,\n gasUsed,\n logs,\n status,\n ...(status === 'success'\n ? {\n result,\n }\n : {\n error,\n }),\n };\n }),\n }));\n }\n catch (e) {\n const cause = e;\n const error = getNodeError(cause, {});\n if (error instanceof UnknownNodeError)\n throw cause;\n throw error;\n }\n}\n//# sourceMappingURL=simulateBlocks.js.map","import * as Bytes from '../Bytes.js';\n/** @internal */\nexport function assertSize(bytes, size_) {\n if (Bytes.size(bytes) > size_)\n throw new Bytes.SizeOverflowError({\n givenSize: Bytes.size(bytes),\n maxSize: size_,\n });\n}\n/** @internal */\nexport function assertStartOffset(value, start) {\n if (typeof start === 'number' && start > 0 && start > Bytes.size(value) - 1)\n throw new Bytes.SliceOffsetOutOfBoundsError({\n offset: start,\n position: 'start',\n size: Bytes.size(value),\n });\n}\n/** @internal */\nexport function assertEndOffset(value, start, end) {\n if (typeof start === 'number' &&\n typeof end === 'number' &&\n Bytes.size(value) !== end - start) {\n throw new Bytes.SliceOffsetOutOfBoundsError({\n offset: end,\n position: 'end',\n size: Bytes.size(value),\n });\n }\n}\n/** @internal */\nexport const charCodeMap = {\n zero: 48,\n nine: 57,\n A: 65,\n F: 70,\n a: 97,\n f: 102,\n};\n/** @internal */\nexport function charCodeToBase16(char) {\n if (char >= charCodeMap.zero && char <= charCodeMap.nine)\n return char - charCodeMap.zero;\n if (char >= charCodeMap.A && char <= charCodeMap.F)\n return char - (charCodeMap.A - 10);\n if (char >= charCodeMap.a && char <= charCodeMap.f)\n return char - (charCodeMap.a - 10);\n return undefined;\n}\n/** @internal */\nexport function pad(bytes, options = {}) {\n const { dir, size = 32 } = options;\n if (size === 0)\n return bytes;\n if (bytes.length > size)\n throw new Bytes.SizeExceedsPaddingSizeError({\n size: bytes.length,\n targetSize: size,\n type: 'Bytes',\n });\n const paddedBytes = new Uint8Array(size);\n for (let i = 0; i < size; i++) {\n const padEnd = dir === 'right';\n paddedBytes[padEnd ? i : size - i - 1] =\n bytes[padEnd ? i : bytes.length - i - 1];\n }\n return paddedBytes;\n}\n/** @internal */\nexport function trim(value, options = {}) {\n const { dir = 'left' } = options;\n let data = value;\n let sliceLength = 0;\n for (let i = 0; i < data.length - 1; i++) {\n if (data[dir === 'left' ? i : data.length - i - 1].toString() === '0')\n sliceLength++;\n else\n break;\n }\n data =\n dir === 'left'\n ? data.slice(sliceLength)\n : data.slice(0, data.length - sliceLength);\n return data;\n}\n//# sourceMappingURL=bytes.js.map","import { equalBytes } from '@noble/curves/abstract/utils';\nimport * as Errors from './Errors.js';\nimport * as Hex from './Hex.js';\nimport * as internal from './internal/bytes.js';\nimport * as internal_hex from './internal/hex.js';\nimport * as Json from './Json.js';\nconst decoder = /*#__PURE__*/ new TextDecoder();\nconst encoder = /*#__PURE__*/ new TextEncoder();\n/**\n * Asserts if the given value is {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.assert('abc')\n * // @error: Bytes.InvalidBytesTypeError:\n * // @error: Value `\"abc\"` of type `string` is an invalid Bytes value.\n * // @error: Bytes values must be of type `Uint8Array`.\n * ```\n *\n * @param value - Value to assert.\n */\nexport function assert(value) {\n if (value instanceof Uint8Array)\n return;\n if (!value)\n throw new InvalidBytesTypeError(value);\n if (typeof value !== 'object')\n throw new InvalidBytesTypeError(value);\n if (!('BYTES_PER_ELEMENT' in value))\n throw new InvalidBytesTypeError(value);\n if (value.BYTES_PER_ELEMENT !== 1 || value.constructor.name !== 'Uint8Array')\n throw new InvalidBytesTypeError(value);\n}\n/**\n * Concatenates two or more {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const bytes = Bytes.concat(\n * Bytes.from([1]),\n * Bytes.from([69]),\n * Bytes.from([420, 69]),\n * )\n * // @log: Uint8Array [ 1, 69, 420, 69 ]\n * ```\n *\n * @param values - Values to concatenate.\n * @returns Concatenated {@link ox#Bytes.Bytes}.\n */\nexport function concat(...values) {\n let length = 0;\n for (const arr of values) {\n length += arr.length;\n }\n const result = new Uint8Array(length);\n for (let i = 0, index = 0; i < values.length; i++) {\n const arr = values[i];\n result.set(arr, index);\n index += arr.length;\n }\n return result;\n}\n/**\n * Instantiates a {@link ox#Bytes.Bytes} value from a `Uint8Array`, a hex string, or an array of unsigned 8-bit integers.\n *\n * :::tip\n *\n * To instantiate from a **Boolean**, **String**, or **Number**, use one of the following:\n *\n * - `Bytes.fromBoolean`\n *\n * - `Bytes.fromString`\n *\n * - `Bytes.fromNumber`\n *\n * :::\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.from([255, 124, 5, 4])\n * // @log: Uint8Array([255, 124, 5, 4])\n *\n * const data = Bytes.from('0xdeadbeef')\n * // @log: Uint8Array([222, 173, 190, 239])\n * ```\n *\n * @param value - Value to convert.\n * @returns A {@link ox#Bytes.Bytes} instance.\n */\nexport function from(value) {\n if (value instanceof Uint8Array)\n return value;\n if (typeof value === 'string')\n return fromHex(value);\n return fromArray(value);\n}\n/**\n * Converts an array of unsigned 8-bit integers into {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromArray([255, 124, 5, 4])\n * // @log: Uint8Array([255, 124, 5, 4])\n * ```\n *\n * @param value - Value to convert.\n * @returns A {@link ox#Bytes.Bytes} instance.\n */\nexport function fromArray(value) {\n return value instanceof Uint8Array ? value : new Uint8Array(value);\n}\n/**\n * Encodes a boolean value into {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromBoolean(true)\n * // @log: Uint8Array([1])\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromBoolean(true, { size: 32 })\n * // @log: Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1])\n * ```\n *\n * @param value - Boolean value to encode.\n * @param options - Encoding options.\n * @returns Encoded {@link ox#Bytes.Bytes}.\n */\nexport function fromBoolean(value, options = {}) {\n const { size } = options;\n const bytes = new Uint8Array(1);\n bytes[0] = Number(value);\n if (typeof size === 'number') {\n internal.assertSize(bytes, size);\n return padLeft(bytes, size);\n }\n return bytes;\n}\n/**\n * Encodes a {@link ox#Hex.Hex} value into {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromHex('0x48656c6c6f20776f726c6421')\n * // @log: Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromHex('0x48656c6c6f20776f726c6421', { size: 32 })\n * // @log: Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n * ```\n *\n * @param value - {@link ox#Hex.Hex} value to encode.\n * @param options - Encoding options.\n * @returns Encoded {@link ox#Bytes.Bytes}.\n */\nexport function fromHex(value, options = {}) {\n const { size } = options;\n let hex = value;\n if (size) {\n internal_hex.assertSize(value, size);\n hex = Hex.padRight(value, size);\n }\n let hexString = hex.slice(2);\n if (hexString.length % 2)\n hexString = `0${hexString}`;\n const length = hexString.length / 2;\n const bytes = new Uint8Array(length);\n for (let index = 0, j = 0; index < length; index++) {\n const nibbleLeft = internal.charCodeToBase16(hexString.charCodeAt(j++));\n const nibbleRight = internal.charCodeToBase16(hexString.charCodeAt(j++));\n if (nibbleLeft === undefined || nibbleRight === undefined) {\n throw new Errors.BaseError(`Invalid byte sequence (\"${hexString[j - 2]}${hexString[j - 1]}\" in \"${hexString}\").`);\n }\n bytes[index] = (nibbleLeft << 4) | nibbleRight;\n }\n return bytes;\n}\n/**\n * Encodes a number value into {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromNumber(420)\n * // @log: Uint8Array([1, 164])\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromNumber(420, { size: 4 })\n * // @log: Uint8Array([0, 0, 1, 164])\n * ```\n *\n * @param value - Number value to encode.\n * @param options - Encoding options.\n * @returns Encoded {@link ox#Bytes.Bytes}.\n */\nexport function fromNumber(value, options) {\n const hex = Hex.fromNumber(value, options);\n return fromHex(hex);\n}\n/**\n * Encodes a string into {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromString('Hello world!')\n * // @log: Uint8Array([72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33])\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromString('Hello world!', { size: 32 })\n * // @log: Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n * ```\n *\n * @param value - String to encode.\n * @param options - Encoding options.\n * @returns Encoded {@link ox#Bytes.Bytes}.\n */\nexport function fromString(value, options = {}) {\n const { size } = options;\n const bytes = encoder.encode(value);\n if (typeof size === 'number') {\n internal.assertSize(bytes, size);\n return padRight(bytes, size);\n }\n return bytes;\n}\n/**\n * Checks if two {@link ox#Bytes.Bytes} values are equal.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.isEqual(Bytes.from([1]), Bytes.from([1]))\n * // @log: true\n *\n * Bytes.isEqual(Bytes.from([1]), Bytes.from([2]))\n * // @log: false\n * ```\n *\n * @param bytesA - First {@link ox#Bytes.Bytes} value.\n * @param bytesB - Second {@link ox#Bytes.Bytes} value.\n * @returns `true` if the two values are equal, otherwise `false`.\n */\nexport function isEqual(bytesA, bytesB) {\n return equalBytes(bytesA, bytesB);\n}\n/**\n * Pads a {@link ox#Bytes.Bytes} value to the left with zero bytes until it reaches the given `size` (default: 32 bytes).\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.padLeft(Bytes.from([1]), 4)\n * // @log: Uint8Array([0, 0, 0, 1])\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} value to pad.\n * @param size - Size to pad the {@link ox#Bytes.Bytes} value to.\n * @returns Padded {@link ox#Bytes.Bytes} value.\n */\nexport function padLeft(value, size) {\n return internal.pad(value, { dir: 'left', size });\n}\n/**\n * Pads a {@link ox#Bytes.Bytes} value to the right with zero bytes until it reaches the given `size` (default: 32 bytes).\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.padRight(Bytes.from([1]), 4)\n * // @log: Uint8Array([1, 0, 0, 0])\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} value to pad.\n * @param size - Size to pad the {@link ox#Bytes.Bytes} value to.\n * @returns Padded {@link ox#Bytes.Bytes} value.\n */\nexport function padRight(value, size) {\n return internal.pad(value, { dir: 'right', size });\n}\n/**\n * Generates random {@link ox#Bytes.Bytes} of the specified length.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const bytes = Bytes.random(32)\n * // @log: Uint8Array([... x32])\n * ```\n *\n * @param length - Length of the random {@link ox#Bytes.Bytes} to generate.\n * @returns Random {@link ox#Bytes.Bytes} of the specified length.\n */\nexport function random(length) {\n return crypto.getRandomValues(new Uint8Array(length));\n}\n/**\n * Retrieves the size of a {@link ox#Bytes.Bytes} value.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.size(Bytes.from([1, 2, 3, 4]))\n * // @log: 4\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} value.\n * @returns Size of the {@link ox#Bytes.Bytes} value.\n */\nexport function size(value) {\n return value.length;\n}\n/**\n * Returns a section of a {@link ox#Bytes.Bytes} value given a start/end bytes offset.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.slice(\n * Bytes.from([1, 2, 3, 4, 5, 6, 7, 8, 9]),\n * 1,\n * 4,\n * )\n * // @log: Uint8Array([2, 3, 4])\n * ```\n *\n * @param value - The {@link ox#Bytes.Bytes} value.\n * @param start - Start offset.\n * @param end - End offset.\n * @param options - Slice options.\n * @returns Sliced {@link ox#Bytes.Bytes} value.\n */\nexport function slice(value, start, end, options = {}) {\n const { strict } = options;\n internal.assertStartOffset(value, start);\n const value_ = value.slice(start, end);\n if (strict)\n internal.assertEndOffset(value_, start, end);\n return value_;\n}\n/**\n * Decodes a {@link ox#Bytes.Bytes} into a bigint.\n *\n * @example\n * ```ts\n * import { Bytes } from 'ox'\n *\n * Bytes.toBigInt(Bytes.from([1, 164]))\n * // @log: 420n\n * ```\n *\n * @param bytes - The {@link ox#Bytes.Bytes} to decode.\n * @param options - Decoding options.\n * @returns Decoded bigint.\n */\nexport function toBigInt(bytes, options = {}) {\n const { size } = options;\n if (typeof size !== 'undefined')\n internal.assertSize(bytes, size);\n const hex = Hex.fromBytes(bytes, options);\n return Hex.toBigInt(hex, options);\n}\n/**\n * Decodes a {@link ox#Bytes.Bytes} into a boolean.\n *\n * @example\n * ```ts\n * import { Bytes } from 'ox'\n *\n * Bytes.toBoolean(Bytes.from([1]))\n * // @log: true\n * ```\n *\n * @param bytes - The {@link ox#Bytes.Bytes} to decode.\n * @param options - Decoding options.\n * @returns Decoded boolean.\n */\nexport function toBoolean(bytes, options = {}) {\n const { size } = options;\n let bytes_ = bytes;\n if (typeof size !== 'undefined') {\n internal.assertSize(bytes_, size);\n bytes_ = trimLeft(bytes_);\n }\n if (bytes_.length > 1 || bytes_[0] > 1)\n throw new InvalidBytesBooleanError(bytes_);\n return Boolean(bytes_[0]);\n}\n/**\n * Encodes a {@link ox#Bytes.Bytes} value into a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.toHex(Bytes.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))\n * // '0x48656c6c6f20576f726c6421'\n * ```\n *\n * @param value - The {@link ox#Bytes.Bytes} to decode.\n * @param options - Options.\n * @returns Decoded {@link ox#Hex.Hex} value.\n */\nexport function toHex(value, options = {}) {\n return Hex.fromBytes(value, options);\n}\n/**\n * Decodes a {@link ox#Bytes.Bytes} into a number.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.toNumber(Bytes.from([1, 164]))\n * // @log: 420\n * ```\n */\nexport function toNumber(bytes, options = {}) {\n const { size } = options;\n if (typeof size !== 'undefined')\n internal.assertSize(bytes, size);\n const hex = Hex.fromBytes(bytes, options);\n return Hex.toNumber(hex, options);\n}\n/**\n * Decodes a {@link ox#Bytes.Bytes} into a string.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.toString(Bytes.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))\n * // @log: 'Hello world'\n * ```\n *\n * @param bytes - The {@link ox#Bytes.Bytes} to decode.\n * @param options - Options.\n * @returns Decoded string.\n */\nexport function toString(bytes, options = {}) {\n const { size } = options;\n let bytes_ = bytes;\n if (typeof size !== 'undefined') {\n internal.assertSize(bytes_, size);\n bytes_ = trimRight(bytes_);\n }\n return decoder.decode(bytes_);\n}\n/**\n * Trims leading zeros from a {@link ox#Bytes.Bytes} value.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.trimLeft(Bytes.from([0, 0, 0, 0, 1, 2, 3]))\n * // @log: Uint8Array([1, 2, 3])\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} value.\n * @returns Trimmed {@link ox#Bytes.Bytes} value.\n */\nexport function trimLeft(value) {\n return internal.trim(value, { dir: 'left' });\n}\n/**\n * Trims trailing zeros from a {@link ox#Bytes.Bytes} value.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.trimRight(Bytes.from([1, 2, 3, 0, 0, 0, 0]))\n * // @log: Uint8Array([1, 2, 3])\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} value.\n * @returns Trimmed {@link ox#Bytes.Bytes} value.\n */\nexport function trimRight(value) {\n return internal.trim(value, { dir: 'right' });\n}\n/**\n * Checks if the given value is {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.validate('0x')\n * // @log: false\n *\n * Bytes.validate(Bytes.from([1, 2, 3]))\n * // @log: true\n * ```\n *\n * @param value - Value to check.\n * @returns `true` if the value is {@link ox#Bytes.Bytes}, otherwise `false`.\n */\nexport function validate(value) {\n try {\n assert(value);\n return true;\n }\n catch {\n return false;\n }\n}\n/**\n * Thrown when the bytes value cannot be represented as a boolean.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.toBoolean(Bytes.from([5]))\n * // @error: Bytes.InvalidBytesBooleanError: Bytes value `[5]` is not a valid boolean.\n * // @error: The bytes array must contain a single byte of either a `0` or `1` value.\n * ```\n */\nexport class InvalidBytesBooleanError extends Errors.BaseError {\n constructor(bytes) {\n super(`Bytes value \\`${bytes}\\` is not a valid boolean.`, {\n metaMessages: [\n 'The bytes array must contain a single byte of either a `0` or `1` value.',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Bytes.InvalidBytesBooleanError'\n });\n }\n}\n/**\n * Thrown when a value cannot be converted to bytes.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Bytes } from 'ox'\n *\n * Bytes.from('foo')\n * // @error: Bytes.InvalidBytesTypeError: Value `foo` of type `string` is an invalid Bytes value.\n * ```\n */\nexport class InvalidBytesTypeError extends Errors.BaseError {\n constructor(value) {\n super(`Value \\`${typeof value === 'object' ? Json.stringify(value) : value}\\` of type \\`${typeof value}\\` is an invalid Bytes value.`, {\n metaMessages: ['Bytes values must be of type `Bytes`.'],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Bytes.InvalidBytesTypeError'\n });\n }\n}\n/**\n * Thrown when a size exceeds the maximum allowed size.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.fromString('Hello World!', { size: 8 })\n * // @error: Bytes.SizeOverflowError: Size cannot exceed `8` bytes. Given size: `12` bytes.\n * ```\n */\nexport class SizeOverflowError extends Errors.BaseError {\n constructor({ givenSize, maxSize }) {\n super(`Size cannot exceed \\`${maxSize}\\` bytes. Given size: \\`${givenSize}\\` bytes.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Bytes.SizeOverflowError'\n });\n }\n}\n/**\n * Thrown when a slice offset is out-of-bounds.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.slice(Bytes.from([1, 2, 3]), 4)\n * // @error: Bytes.SliceOffsetOutOfBoundsError: Slice starting at offset `4` is out-of-bounds (size: `3`).\n * ```\n */\nexport class SliceOffsetOutOfBoundsError extends Errors.BaseError {\n constructor({ offset, position, size, }) {\n super(`Slice ${position === 'start' ? 'starting' : 'ending'} at offset \\`${offset}\\` is out-of-bounds (size: \\`${size}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Bytes.SliceOffsetOutOfBoundsError'\n });\n }\n}\n/**\n * Thrown when a the padding size exceeds the maximum allowed size.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.padLeft(Bytes.fromString('Hello World!'), 8)\n * // @error: [Bytes.SizeExceedsPaddingSizeError: Bytes size (`12`) exceeds padding size (`8`).\n * ```\n */\nexport class SizeExceedsPaddingSizeError extends Errors.BaseError {\n constructor({ size, targetSize, type, }) {\n super(`${type.charAt(0).toUpperCase()}${type\n .slice(1)\n .toLowerCase()} size (\\`${size}\\`) exceeds padding size (\\`${targetSize}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Bytes.SizeExceedsPaddingSizeError'\n });\n }\n}\n//# sourceMappingURL=Bytes.js.map","import { ripemd160 as noble_ripemd160 } from '@noble/hashes/ripemd160';\nimport { keccak_256 as noble_keccak256 } from '@noble/hashes/sha3';\nimport { sha256 as noble_sha256 } from '@noble/hashes/sha256';\nimport * as Bytes from './Bytes.js';\nimport * as Hex from './Hex.js';\n/**\n * Calculates the [Keccak256](https://en.wikipedia.org/wiki/SHA-3) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n *\n * This function is a re-export of `keccak_256` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library.\n *\n * @example\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.keccak256('0xdeadbeef')\n * // @log: '0xd4fd4e189132273036449fc9e11198c739161b4c0116a9a2dccdfa1c492006f1'\n * ```\n *\n * @example\n * ### Calculate Hash of a String\n *\n * ```ts twoslash\n * import { Hash, Hex } from 'ox'\n *\n * Hash.keccak256(Hex.fromString('hello world'))\n * // @log: '0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0'\n * ```\n *\n * @example\n * ### Configure Return Type\n *\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.keccak256('0xdeadbeef', { as: 'Bytes' })\n * // @log: Uint8Array [...]\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n * @param options - Options.\n * @returns Keccak256 hash.\n */\nexport function keccak256(value, options = {}) {\n const { as = typeof value === 'string' ? 'Hex' : 'Bytes' } = options;\n const bytes = noble_keccak256(Bytes.from(value));\n if (as === 'Bytes')\n return bytes;\n return Hex.fromBytes(bytes);\n}\n/**\n * Calculates the [Ripemd160](https://en.wikipedia.org/wiki/RIPEMD) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n *\n * This function is a re-export of `ripemd160` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library.\n *\n * @example\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.ripemd160('0xdeadbeef')\n * // '0x226821c2f5423e11fe9af68bd285c249db2e4b5a'\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n * @param options - Options.\n * @returns Ripemd160 hash.\n */\nexport function ripemd160(value, options = {}) {\n const { as = typeof value === 'string' ? 'Hex' : 'Bytes' } = options;\n const bytes = noble_ripemd160(Bytes.from(value));\n if (as === 'Bytes')\n return bytes;\n return Hex.fromBytes(bytes);\n}\n/**\n * Calculates the [Sha256](https://en.wikipedia.org/wiki/SHA-256) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n *\n * This function is a re-export of `sha256` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library.\n *\n * @example\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.sha256('0xdeadbeef')\n * // '0x5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953'\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n * @param options - Options.\n * @returns Sha256 hash.\n */\nexport function sha256(value, options = {}) {\n const { as = typeof value === 'string' ? 'Hex' : 'Bytes' } = options;\n const bytes = noble_sha256(Bytes.from(value));\n if (as === 'Bytes')\n return bytes;\n return Hex.fromBytes(bytes);\n}\n/**\n * Checks if a string is a valid hash value.\n *\n * @example\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.validate('0x')\n * // @log: false\n *\n * Hash.validate('0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0')\n * // @log: true\n * ```\n *\n * @param value - Value to check.\n * @returns Whether the value is a valid hash.\n */\nexport function validate(value) {\n return Hex.validate(value) && Hex.size(value) === 32;\n}\n//# sourceMappingURL=Hash.js.map","/**\n * @internal\n *\n * Map with a LRU (Least recently used) policy.\n * @see https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU\n */\nexport class LruMap extends Map {\n constructor(size) {\n super();\n Object.defineProperty(this, \"maxSize\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.maxSize = size;\n }\n get(key) {\n const value = super.get(key);\n if (super.has(key) && value !== undefined) {\n this.delete(key);\n super.set(key, value);\n }\n return value;\n }\n set(key, value) {\n super.set(key, value);\n if (this.maxSize && this.size > this.maxSize) {\n const firstKey = this.keys().next().value;\n if (firstKey)\n this.delete(firstKey);\n }\n return this;\n }\n}\n//# sourceMappingURL=lru.js.map","import { LruMap } from './internal/lru.js';\nconst caches = {\n checksum: /*#__PURE__*/ new LruMap(8192),\n};\nexport const checksum = caches.checksum;\n/**\n * Clears all global caches.\n *\n * @example\n * ```ts\n * import { Caches } from 'ox'\n * Caches.clear()\n * ```\n */\nexport function clear() {\n for (const cache of Object.values(caches))\n cache.clear();\n}\n//# sourceMappingURL=Caches.js.map","import * as Bytes from './Bytes.js';\nimport * as Caches from './Caches.js';\nimport * as Errors from './Errors.js';\nimport * as Hash from './Hash.js';\nimport * as PublicKey from './PublicKey.js';\nconst addressRegex = /^0x[a-fA-F0-9]{40}$/;\n/**\n * Asserts that the given value is a valid {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.assert('0xA0Cf798816D4b9b9866b5330EEa46a18382f251e')\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.assert('0xdeadbeef')\n * // @error: InvalidAddressError: Address \"0xdeadbeef\" is invalid.\n * ```\n *\n * @param value - Value to assert if it is a valid address.\n * @param options - Assertion options.\n */\nexport function assert(value, options = {}) {\n const { strict = true } = options;\n if (!addressRegex.test(value))\n throw new InvalidAddressError({\n address: value,\n cause: new InvalidInputError(),\n });\n if (strict) {\n if (value.toLowerCase() === value)\n return;\n if (checksum(value) !== value)\n throw new InvalidAddressError({\n address: value,\n cause: new InvalidChecksumError(),\n });\n }\n}\n/**\n * Computes the checksum address for the given {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.checksum('0xa0cf798816d4b9b9866b5330eea46a18382f251e')\n * // @log: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'\n * ```\n *\n * @param address - The address to compute the checksum for.\n * @returns The checksummed address.\n */\nexport function checksum(address) {\n if (Caches.checksum.has(address))\n return Caches.checksum.get(address);\n assert(address, { strict: false });\n const hexAddress = address.substring(2).toLowerCase();\n const hash = Hash.keccak256(Bytes.fromString(hexAddress), { as: 'Bytes' });\n const characters = hexAddress.split('');\n for (let i = 0; i < 40; i += 2) {\n if (hash[i >> 1] >> 4 >= 8 && characters[i]) {\n characters[i] = characters[i].toUpperCase();\n }\n if ((hash[i >> 1] & 0x0f) >= 8 && characters[i + 1]) {\n characters[i + 1] = characters[i + 1].toUpperCase();\n }\n }\n const result = `0x${characters.join('')}`;\n Caches.checksum.set(address, result);\n return result;\n}\n/**\n * Converts a stringified address to a typed (optionally checksummed) {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.from('0xa0cf798816d4b9b9866b5330eea46a18382f251e')\n * // @log: '0xa0cf798816d4b9b9866b5330eea46a18382f251e'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.from('0xa0cf798816d4b9b9866b5330eea46a18382f251e', {\n * checksum: true\n * })\n * // @log: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.from('hello')\n * // @error: InvalidAddressError: Address \"0xa\" is invalid.\n * ```\n *\n * @param address - An address string to convert to a typed Address.\n * @param options - Conversion options.\n * @returns The typed Address.\n */\nexport function from(address, options = {}) {\n const { checksum: checksumVal = false } = options;\n assert(address);\n if (checksumVal)\n return checksum(address);\n return address;\n}\n/**\n * Converts an ECDSA public key to an {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address, PublicKey } from 'ox'\n *\n * const publicKey = PublicKey.from(\n * '0x048318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5',\n * )\n * const address = Address.fromPublicKey(publicKey)\n * // @log: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\n * ```\n *\n * @param publicKey - The ECDSA public key to convert to an {@link ox#Address.Address}.\n * @param options - Conversion options.\n * @returns The {@link ox#Address.Address} corresponding to the public key.\n */\nexport function fromPublicKey(publicKey, options = {}) {\n const address = Hash.keccak256(`0x${PublicKey.toHex(publicKey).slice(4)}`).substring(26);\n return from(`0x${address}`, options);\n}\n/**\n * Checks if two {@link ox#Address.Address} are equal.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.isEqual(\n * '0xa0cf798816d4b9b9866b5330eea46a18382f251e',\n * '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'\n * )\n * // @log: true\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.isEqual(\n * '0xa0cf798816d4b9b9866b5330eea46a18382f251e',\n * '0xA0Cf798816D4b9b9866b5330EEa46a18382f251f'\n * )\n * // @log: false\n * ```\n *\n * @param addressA - The first address to compare.\n * @param addressB - The second address to compare.\n * @returns Whether the addresses are equal.\n */\nexport function isEqual(addressA, addressB) {\n assert(addressA, { strict: false });\n assert(addressB, { strict: false });\n return addressA.toLowerCase() === addressB.toLowerCase();\n}\n/**\n * Checks if the given address is a valid {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.validate('0xA0Cf798816D4b9b9866b5330EEa46a18382f251e')\n * // @log: true\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.validate('0xdeadbeef')\n * // @log: false\n * ```\n *\n * @param address - Value to check if it is a valid address.\n * @param options - Check options.\n * @returns Whether the address is a valid address.\n */\nexport function validate(address, options = {}) {\n const { strict = true } = options ?? {};\n try {\n assert(address, { strict });\n return true;\n }\n catch {\n return false;\n }\n}\n/**\n * Thrown when an address is invalid.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.from('0x123')\n * // @error: Address.InvalidAddressError: Address `0x123` is invalid.\n * ```\n */\nexport class InvalidAddressError extends Errors.BaseError {\n constructor({ address, cause }) {\n super(`Address \"${address}\" is invalid.`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Address.InvalidAddressError'\n });\n }\n}\n/** Thrown when an address is not a 20 byte (40 hexadecimal character) value. */\nexport class InvalidInputError extends Errors.BaseError {\n constructor() {\n super('Address is not a 20 byte (40 hexadecimal character) value.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Address.InvalidInputError'\n });\n }\n}\n/** Thrown when an address does not match its checksum counterpart. */\nexport class InvalidChecksumError extends Errors.BaseError {\n constructor() {\n super('Address does not match its checksum counterpart.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Address.InvalidChecksumError'\n });\n }\n}\n//# sourceMappingURL=Address.js.map","import * as Address from '../Address.js';\nimport * as Errors from '../Errors.js';\n/** @internal */\nexport function normalizeSignature(signature) {\n let active = true;\n let current = '';\n let level = 0;\n let result = '';\n let valid = false;\n for (let i = 0; i < signature.length; i++) {\n const char = signature[i];\n // If the character is a separator, we want to reactivate.\n if (['(', ')', ','].includes(char))\n active = true;\n // If the character is a \"level\" token, we want to increment/decrement.\n if (char === '(')\n level++;\n if (char === ')')\n level--;\n // If we aren't active, we don't want to mutate the result.\n if (!active)\n continue;\n // If level === 0, we are at the definition level.\n if (level === 0) {\n if (char === ' ' && ['event', 'function', 'error', ''].includes(result))\n result = '';\n else {\n result += char;\n // If we are at the end of the definition, we must be finished.\n if (char === ')') {\n valid = true;\n break;\n }\n }\n continue;\n }\n // Ignore spaces\n if (char === ' ') {\n // If the previous character is a separator, and the current section isn't empty, we want to deactivate.\n if (signature[i - 1] !== ',' && current !== ',' && current !== ',(') {\n current = '';\n active = false;\n }\n continue;\n }\n result += char;\n current += char;\n }\n if (!valid)\n throw new Errors.BaseError('Unable to normalize signature.');\n return result;\n}\n/** @internal */\nexport function isArgOfType(arg, abiParameter) {\n const argType = typeof arg;\n const abiParameterType = abiParameter.type;\n switch (abiParameterType) {\n case 'address':\n return Address.validate(arg, { strict: false });\n case 'bool':\n return argType === 'boolean';\n case 'function':\n return argType === 'string';\n case 'string':\n return argType === 'string';\n default: {\n if (abiParameterType === 'tuple' && 'components' in abiParameter)\n return Object.values(abiParameter.components).every((component, index) => {\n return isArgOfType(Object.values(arg)[index], component);\n });\n // `(u)int`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n // https://regexr.com/6v8hp\n if (/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(abiParameterType))\n return argType === 'number' || argType === 'bigint';\n // `bytes`: binary type of `M` bytes, `0 < M <= 32`\n // https://regexr.com/6va55\n if (/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(abiParameterType))\n return argType === 'string' || arg instanceof Uint8Array;\n // fixed-length (`[M]`) and dynamic (`[]`) arrays\n // https://regexr.com/6va6i\n if (/[a-z]+[1-9]{0,3}(\\[[0-9]{0,}\\])+$/.test(abiParameterType)) {\n return (Array.isArray(arg) &&\n arg.every((x) => isArgOfType(x, {\n ...abiParameter,\n // Pop off `[]` or `[M]` from end of type\n type: abiParameterType.replace(/(\\[[0-9]{0,}\\])$/, ''),\n })));\n }\n return false;\n }\n }\n}\n/** @internal */\nexport function getAmbiguousTypes(sourceParameters, targetParameters, args) {\n for (const parameterIndex in sourceParameters) {\n const sourceParameter = sourceParameters[parameterIndex];\n const targetParameter = targetParameters[parameterIndex];\n if (sourceParameter.type === 'tuple' &&\n targetParameter.type === 'tuple' &&\n 'components' in sourceParameter &&\n 'components' in targetParameter)\n return getAmbiguousTypes(sourceParameter.components, targetParameter.components, args[parameterIndex]);\n const types = [sourceParameter.type, targetParameter.type];\n const ambiguous = (() => {\n if (types.includes('address') && types.includes('bytes20'))\n return true;\n if (types.includes('address') && types.includes('string'))\n return Address.validate(args[parameterIndex], {\n strict: false,\n });\n if (types.includes('address') && types.includes('bytes'))\n return Address.validate(args[parameterIndex], {\n strict: false,\n });\n return false;\n })();\n if (ambiguous)\n return types;\n }\n return;\n}\n//# sourceMappingURL=abiItem.js.map","import * as abitype from 'abitype';\nimport * as Errors from './Errors.js';\nimport * as Hash from './Hash.js';\nimport * as Hex from './Hex.js';\nimport * as internal from './internal/abiItem.js';\n/**\n * Formats an {@link ox#AbiItem.AbiItem} into a **Human Readable ABI Item**.\n *\n * @example\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const formatted = AbiItem.format({\n * type: 'function',\n * name: 'approve',\n * stateMutability: 'nonpayable',\n * inputs: [\n * {\n * name: 'spender',\n * type: 'address',\n * },\n * {\n * name: 'amount',\n * type: 'uint256',\n * },\n * ],\n * outputs: [{ type: 'bool' }],\n * })\n *\n * formatted\n * // ^?\n *\n *\n * ```\n *\n * @param abiItem - The ABI Item to format.\n * @returns The formatted ABI Item .\n */\nexport function format(abiItem) {\n return abitype.formatAbiItem(abiItem);\n}\n/**\n * Parses an arbitrary **JSON ABI Item** or **Human Readable ABI Item** into a typed {@link ox#AbiItem.AbiItem}.\n *\n * @example\n * ### JSON ABIs\n *\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const abiItem = AbiItem.from({\n * type: 'function',\n * name: 'approve',\n * stateMutability: 'nonpayable',\n * inputs: [\n * {\n * name: 'spender',\n * type: 'address',\n * },\n * {\n * name: 'amount',\n * type: 'uint256',\n * },\n * ],\n * outputs: [{ type: 'bool' }],\n * })\n *\n * abiItem\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Human Readable ABIs\n *\n * A Human Readable ABI can be parsed into a typed ABI object:\n *\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const abiItem = AbiItem.from(\n * 'function approve(address spender, uint256 amount) returns (bool)' // [!code hl]\n * )\n *\n * abiItem\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * It is possible to specify `struct`s along with your definitions:\n *\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const abiItem = AbiItem.from([\n * 'struct Foo { address spender; uint256 amount; }', // [!code hl]\n * 'function approve(Foo foo) returns (bool)',\n * ])\n *\n * abiItem\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n *\n *\n * @param abiItem - The ABI Item to parse.\n * @returns The typed ABI Item.\n */\nexport function from(abiItem, options = {}) {\n const { prepare = true } = options;\n const item = (() => {\n if (Array.isArray(abiItem))\n return abitype.parseAbiItem(abiItem);\n if (typeof abiItem === 'string')\n return abitype.parseAbiItem(abiItem);\n return abiItem;\n })();\n return {\n ...item,\n ...(prepare ? { hash: getSignatureHash(item) } : {}),\n };\n}\n/**\n * Extracts an {@link ox#AbiItem.AbiItem} from an {@link ox#Abi.Abi} given a name and optional arguments.\n *\n * @example\n * ABI Items can be extracted by their name using the `name` option:\n *\n * ```ts twoslash\n * import { Abi, AbiItem } from 'ox'\n *\n * const abi = Abi.from([\n * 'function foo()',\n * 'event Transfer(address owner, address to, uint256 tokenId)',\n * 'function bar(string a) returns (uint256 x)',\n * ])\n *\n * const item = AbiItem.fromAbi(abi, 'Transfer') // [!code focus]\n * // ^?\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Extracting by Selector\n *\n * ABI Items can be extract by their selector when {@link ox#Hex.Hex} is provided to `name`.\n *\n * ```ts twoslash\n * import { Abi, AbiItem } from 'ox'\n *\n * const abi = Abi.from([\n * 'function foo()',\n * 'event Transfer(address owner, address to, uint256 tokenId)',\n * 'function bar(string a) returns (uint256 x)',\n * ])\n * const item = AbiItem.fromAbi(abi, '0x095ea7b3') // [!code focus]\n * // ^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * :::note\n *\n * Extracting via a hex selector is useful when extracting an ABI Item from an `eth_call` RPC response,\n * a Transaction `input`, or from Event Log `topics`.\n *\n * :::\n *\n * @param abi - The ABI to extract from.\n * @param name - The name (or selector) of the ABI item to extract.\n * @param options - Extraction options.\n * @returns The ABI item.\n */\nexport function fromAbi(abi, name, options) {\n const { args = [], prepare = true } = (options ??\n {});\n const isSelector = Hex.validate(name, { strict: false });\n const abiItems = abi.filter((abiItem) => {\n if (isSelector) {\n if (abiItem.type === 'function' || abiItem.type === 'error')\n return getSelector(abiItem) === Hex.slice(name, 0, 4);\n if (abiItem.type === 'event')\n return getSignatureHash(abiItem) === name;\n return false;\n }\n return 'name' in abiItem && abiItem.name === name;\n });\n if (abiItems.length === 0)\n throw new NotFoundError({ name: name });\n if (abiItems.length === 1)\n return {\n ...abiItems[0],\n ...(prepare ? { hash: getSignatureHash(abiItems[0]) } : {}),\n };\n let matchedAbiItem;\n for (const abiItem of abiItems) {\n if (!('inputs' in abiItem))\n continue;\n if (!args || args.length === 0) {\n if (!abiItem.inputs || abiItem.inputs.length === 0)\n return {\n ...abiItem,\n ...(prepare ? { hash: getSignatureHash(abiItem) } : {}),\n };\n continue;\n }\n if (!abiItem.inputs)\n continue;\n if (abiItem.inputs.length === 0)\n continue;\n if (abiItem.inputs.length !== args.length)\n continue;\n const matched = args.every((arg, index) => {\n const abiParameter = 'inputs' in abiItem && abiItem.inputs[index];\n if (!abiParameter)\n return false;\n return internal.isArgOfType(arg, abiParameter);\n });\n if (matched) {\n // Check for ambiguity against already matched parameters (e.g. `address` vs `bytes20`).\n if (matchedAbiItem &&\n 'inputs' in matchedAbiItem &&\n matchedAbiItem.inputs) {\n const ambiguousTypes = internal.getAmbiguousTypes(abiItem.inputs, matchedAbiItem.inputs, args);\n if (ambiguousTypes)\n throw new AmbiguityError({\n abiItem,\n type: ambiguousTypes[0],\n }, {\n abiItem: matchedAbiItem,\n type: ambiguousTypes[1],\n });\n }\n matchedAbiItem = abiItem;\n }\n }\n const abiItem = (() => {\n if (matchedAbiItem)\n return matchedAbiItem;\n const [abiItem, ...overloads] = abiItems;\n return { ...abiItem, overloads };\n })();\n if (!abiItem)\n throw new NotFoundError({ name: name });\n return {\n ...abiItem,\n ...(prepare ? { hash: getSignatureHash(abiItem) } : {}),\n };\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function getSelector(...parameters) {\n const abiItem = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name] = parameters;\n return fromAbi(abi, name);\n }\n return parameters[0];\n })();\n return Hex.slice(getSignatureHash(abiItem), 0, 4);\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function getSignature(...parameters) {\n const abiItem = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name] = parameters;\n return fromAbi(abi, name);\n }\n return parameters[0];\n })();\n const signature = (() => {\n if (typeof abiItem === 'string')\n return abiItem;\n return abitype.formatAbiItem(abiItem);\n })();\n return internal.normalizeSignature(signature);\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function getSignatureHash(...parameters) {\n const abiItem = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name] = parameters;\n return fromAbi(abi, name);\n }\n return parameters[0];\n })();\n if (typeof abiItem !== 'string' && 'hash' in abiItem && abiItem.hash)\n return abiItem.hash;\n return Hash.keccak256(Hex.fromString(getSignature(abiItem)));\n}\n/**\n * Throws when ambiguous types are found on overloaded ABI items.\n *\n * @example\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from(['function foo(address)', 'function foo(bytes20)'])\n * AbiFunction.fromAbi(foo, 'foo', {\n * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n * })\n * // @error: AbiItem.AmbiguityError: Found ambiguous types in overloaded ABI Items.\n * // @error: `bytes20` in `foo(bytes20)`, and\n * // @error: `address` in `foo(address)`\n * // @error: These types encode differently and cannot be distinguished at runtime.\n * // @error: Remove one of the ambiguous items in the ABI.\n * ```\n *\n * ### Solution\n *\n * Remove one of the ambiguous types from the ABI.\n *\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n * 'function foo(address)',\n * 'function foo(bytes20)' // [!code --]\n * ])\n * AbiFunction.fromAbi(foo, 'foo', {\n * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n * })\n * // @error: AbiItem.AmbiguityError: Found ambiguous types in overloaded ABI Items.\n * // @error: `bytes20` in `foo(bytes20)`, and\n * // @error: `address` in `foo(address)`\n * // @error: These types encode differently and cannot be distinguished at runtime.\n * // @error: Remove one of the ambiguous items in the ABI.\n * ```\n */\nexport class AmbiguityError extends Errors.BaseError {\n constructor(x, y) {\n super('Found ambiguous types in overloaded ABI Items.', {\n metaMessages: [\n // TODO: abitype to add support for signature-formatted ABI items.\n `\\`${x.type}\\` in \\`${internal.normalizeSignature(abitype.formatAbiItem(x.abiItem))}\\`, and`,\n `\\`${y.type}\\` in \\`${internal.normalizeSignature(abitype.formatAbiItem(y.abiItem))}\\``,\n '',\n 'These types encode differently and cannot be distinguished at runtime.',\n 'Remove one of the ambiguous items in the ABI.',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiItem.AmbiguityError'\n });\n }\n}\n/**\n * Throws when an ABI item is not found in the ABI.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n * 'function foo(address)',\n * 'function bar(uint)'\n * ])\n * AbiFunction.fromAbi(foo, 'baz')\n * // @error: AbiItem.NotFoundError: ABI function with name \"baz\" not found.\n * ```\n *\n * ### Solution\n *\n * Ensure the ABI item exists on the ABI.\n *\n * ```ts twoslash\n * // @noErrors\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n * 'function foo(address)',\n * 'function bar(uint)',\n * 'function baz(bool)' // [!code ++]\n * ])\n * AbiFunction.fromAbi(foo, 'baz')\n * ```\n */\nexport class NotFoundError extends Errors.BaseError {\n constructor({ name, data, type = 'item', }) {\n const selector = (() => {\n if (name)\n return ` with name \"${name}\"`;\n if (data)\n return ` with data \"${data}\"`;\n return '';\n })();\n super(`ABI ${type}${selector} not found.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiItem.NotFoundError'\n });\n }\n}\n/**\n * Throws when the selector size is invalid.\n *\n * @example\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n * 'function foo(address)',\n * 'function bar(uint)'\n * ])\n * AbiFunction.fromAbi(foo, '0xaaa')\n * // @error: AbiItem.InvalidSelectorSizeError: Selector size is invalid. Expected 4 bytes. Received 2 bytes (\"0xaaa\").\n * ```\n *\n * ### Solution\n *\n * Ensure the selector size is 4 bytes.\n *\n * ```ts twoslash\n * // @noErrors\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n * 'function foo(address)',\n * 'function bar(uint)'\n * ])\n * AbiFunction.fromAbi(foo, '0x7af82b1a')\n * ```\n */\nexport class InvalidSelectorSizeError extends Errors.BaseError {\n constructor({ data }) {\n super(`Selector size is invalid. Expected 4 bytes. Received ${Hex.size(data)} bytes (\"${data}\").`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiItem.InvalidSelectorSizeError'\n });\n }\n}\n//# sourceMappingURL=AbiItem.js.map","import { InvalidAbiItemError } from './errors/abiItem.js';\nimport { isStructSignature } from './runtime/signatures.js';\nimport { parseStructs } from './runtime/structs.js';\nimport { parseSignature } from './runtime/utils.js';\n/**\n * Parses human-readable ABI item (e.g. error, event, function) into {@link Abi} item\n *\n * @param signature - Human-readable ABI item\n * @returns Parsed {@link Abi} item\n *\n * @example\n * const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\n * // ^? const abiItem: { name: \"balanceOf\"; type: \"function\"; stateMutability: \"view\";...\n *\n * @example\n * const abiItem = parseAbiItem([\n * // ^? const abiItem: { name: \"foo\"; type: \"function\"; stateMutability: \"view\"; inputs:...\n * 'function foo(Baz bar) view returns (string)',\n * 'struct Baz { string name; }',\n * ])\n */\nexport function parseAbiItem(signature) {\n let abiItem;\n if (typeof signature === 'string')\n abiItem = parseSignature(signature);\n else {\n const structs = parseStructs(signature);\n const length = signature.length;\n for (let i = 0; i < length; i++) {\n const signature_ = signature[i];\n if (isStructSignature(signature_))\n continue;\n abiItem = parseSignature(signature_, structs);\n break;\n }\n }\n if (!abiItem)\n throw new InvalidAbiItemError({ signature });\n return abiItem;\n}\n//# sourceMappingURL=parseAbiItem.js.map","export const arrayRegex = /^(.*)\\[([0-9]*)\\]$/;\n// `bytes`: binary type of `M` bytes, `0 < M <= 32`\n// https://regexr.com/6va55\nexport const bytesRegex = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/;\n// `(u)int`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n// https://regexr.com/6v8hp\nexport const integerRegex = /^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;\nexport const maxInt8 = 2n ** (8n - 1n) - 1n;\nexport const maxInt16 = 2n ** (16n - 1n) - 1n;\nexport const maxInt24 = 2n ** (24n - 1n) - 1n;\nexport const maxInt32 = 2n ** (32n - 1n) - 1n;\nexport const maxInt40 = 2n ** (40n - 1n) - 1n;\nexport const maxInt48 = 2n ** (48n - 1n) - 1n;\nexport const maxInt56 = 2n ** (56n - 1n) - 1n;\nexport const maxInt64 = 2n ** (64n - 1n) - 1n;\nexport const maxInt72 = 2n ** (72n - 1n) - 1n;\nexport const maxInt80 = 2n ** (80n - 1n) - 1n;\nexport const maxInt88 = 2n ** (88n - 1n) - 1n;\nexport const maxInt96 = 2n ** (96n - 1n) - 1n;\nexport const maxInt104 = 2n ** (104n - 1n) - 1n;\nexport const maxInt112 = 2n ** (112n - 1n) - 1n;\nexport const maxInt120 = 2n ** (120n - 1n) - 1n;\nexport const maxInt128 = 2n ** (128n - 1n) - 1n;\nexport const maxInt136 = 2n ** (136n - 1n) - 1n;\nexport const maxInt144 = 2n ** (144n - 1n) - 1n;\nexport const maxInt152 = 2n ** (152n - 1n) - 1n;\nexport const maxInt160 = 2n ** (160n - 1n) - 1n;\nexport const maxInt168 = 2n ** (168n - 1n) - 1n;\nexport const maxInt176 = 2n ** (176n - 1n) - 1n;\nexport const maxInt184 = 2n ** (184n - 1n) - 1n;\nexport const maxInt192 = 2n ** (192n - 1n) - 1n;\nexport const maxInt200 = 2n ** (200n - 1n) - 1n;\nexport const maxInt208 = 2n ** (208n - 1n) - 1n;\nexport const maxInt216 = 2n ** (216n - 1n) - 1n;\nexport const maxInt224 = 2n ** (224n - 1n) - 1n;\nexport const maxInt232 = 2n ** (232n - 1n) - 1n;\nexport const maxInt240 = 2n ** (240n - 1n) - 1n;\nexport const maxInt248 = 2n ** (248n - 1n) - 1n;\nexport const maxInt256 = 2n ** (256n - 1n) - 1n;\nexport const minInt8 = -(2n ** (8n - 1n));\nexport const minInt16 = -(2n ** (16n - 1n));\nexport const minInt24 = -(2n ** (24n - 1n));\nexport const minInt32 = -(2n ** (32n - 1n));\nexport const minInt40 = -(2n ** (40n - 1n));\nexport const minInt48 = -(2n ** (48n - 1n));\nexport const minInt56 = -(2n ** (56n - 1n));\nexport const minInt64 = -(2n ** (64n - 1n));\nexport const minInt72 = -(2n ** (72n - 1n));\nexport const minInt80 = -(2n ** (80n - 1n));\nexport const minInt88 = -(2n ** (88n - 1n));\nexport const minInt96 = -(2n ** (96n - 1n));\nexport const minInt104 = -(2n ** (104n - 1n));\nexport const minInt112 = -(2n ** (112n - 1n));\nexport const minInt120 = -(2n ** (120n - 1n));\nexport const minInt128 = -(2n ** (128n - 1n));\nexport const minInt136 = -(2n ** (136n - 1n));\nexport const minInt144 = -(2n ** (144n - 1n));\nexport const minInt152 = -(2n ** (152n - 1n));\nexport const minInt160 = -(2n ** (160n - 1n));\nexport const minInt168 = -(2n ** (168n - 1n));\nexport const minInt176 = -(2n ** (176n - 1n));\nexport const minInt184 = -(2n ** (184n - 1n));\nexport const minInt192 = -(2n ** (192n - 1n));\nexport const minInt200 = -(2n ** (200n - 1n));\nexport const minInt208 = -(2n ** (208n - 1n));\nexport const minInt216 = -(2n ** (216n - 1n));\nexport const minInt224 = -(2n ** (224n - 1n));\nexport const minInt232 = -(2n ** (232n - 1n));\nexport const minInt240 = -(2n ** (240n - 1n));\nexport const minInt248 = -(2n ** (248n - 1n));\nexport const minInt256 = -(2n ** (256n - 1n));\nexport const maxUint8 = 2n ** 8n - 1n;\nexport const maxUint16 = 2n ** 16n - 1n;\nexport const maxUint24 = 2n ** 24n - 1n;\nexport const maxUint32 = 2n ** 32n - 1n;\nexport const maxUint40 = 2n ** 40n - 1n;\nexport const maxUint48 = 2n ** 48n - 1n;\nexport const maxUint56 = 2n ** 56n - 1n;\nexport const maxUint64 = 2n ** 64n - 1n;\nexport const maxUint72 = 2n ** 72n - 1n;\nexport const maxUint80 = 2n ** 80n - 1n;\nexport const maxUint88 = 2n ** 88n - 1n;\nexport const maxUint96 = 2n ** 96n - 1n;\nexport const maxUint104 = 2n ** 104n - 1n;\nexport const maxUint112 = 2n ** 112n - 1n;\nexport const maxUint120 = 2n ** 120n - 1n;\nexport const maxUint128 = 2n ** 128n - 1n;\nexport const maxUint136 = 2n ** 136n - 1n;\nexport const maxUint144 = 2n ** 144n - 1n;\nexport const maxUint152 = 2n ** 152n - 1n;\nexport const maxUint160 = 2n ** 160n - 1n;\nexport const maxUint168 = 2n ** 168n - 1n;\nexport const maxUint176 = 2n ** 176n - 1n;\nexport const maxUint184 = 2n ** 184n - 1n;\nexport const maxUint192 = 2n ** 192n - 1n;\nexport const maxUint200 = 2n ** 200n - 1n;\nexport const maxUint208 = 2n ** 208n - 1n;\nexport const maxUint216 = 2n ** 216n - 1n;\nexport const maxUint224 = 2n ** 224n - 1n;\nexport const maxUint232 = 2n ** 232n - 1n;\nexport const maxUint240 = 2n ** 240n - 1n;\nexport const maxUint248 = 2n ** 248n - 1n;\nexport const maxUint256 = 2n ** 256n - 1n;\n//# sourceMappingURL=Solidity.js.map","import * as AbiParameters from '../AbiParameters.js';\nimport * as Address from '../Address.js';\nimport * as Bytes from '../Bytes.js';\nimport * as Errors from '../Errors.js';\nimport * as Hex from '../Hex.js';\nimport { integerRegex } from '../Solidity.js';\n/** @internal */\nexport function decodeParameter(cursor, param, options) {\n const { checksumAddress, staticPosition } = options;\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents) {\n const [length, type] = arrayComponents;\n return decodeArray(cursor, { ...param, type }, { checksumAddress, length, staticPosition });\n }\n if (param.type === 'tuple')\n return decodeTuple(cursor, param, {\n checksumAddress,\n staticPosition,\n });\n if (param.type === 'address')\n return decodeAddress(cursor, { checksum: checksumAddress });\n if (param.type === 'bool')\n return decodeBool(cursor);\n if (param.type.startsWith('bytes'))\n return decodeBytes(cursor, param, { staticPosition });\n if (param.type.startsWith('uint') || param.type.startsWith('int'))\n return decodeNumber(cursor, param);\n if (param.type === 'string')\n return decodeString(cursor, { staticPosition });\n throw new AbiParameters.InvalidTypeError(param.type);\n}\nconst sizeOfLength = 32;\nconst sizeOfOffset = 32;\n/** @internal */\nexport function decodeAddress(cursor, options = {}) {\n const { checksum = false } = options;\n const value = cursor.readBytes(32);\n const wrap = (address) => checksum ? Address.checksum(address) : address;\n return [wrap(Hex.fromBytes(Bytes.slice(value, -20))), 32];\n}\n/** @internal */\nexport function decodeArray(cursor, param, options) {\n const { checksumAddress, length, staticPosition } = options;\n // If the length of the array is not known in advance (dynamic array),\n // this means we will need to wonder off to the pointer and decode.\n if (!length) {\n // Dealing with a dynamic type, so get the offset of the array data.\n const offset = Bytes.toNumber(cursor.readBytes(sizeOfOffset));\n // Start is the static position of current slot + offset.\n const start = staticPosition + offset;\n const startOfData = start + sizeOfLength;\n // Get the length of the array from the offset.\n cursor.setPosition(start);\n const length = Bytes.toNumber(cursor.readBytes(sizeOfLength));\n // Check if the array has any dynamic children.\n const dynamicChild = hasDynamicChild(param);\n let consumed = 0;\n const value = [];\n for (let i = 0; i < length; ++i) {\n // If any of the children is dynamic, then all elements will be offset pointer, thus size of one slot (32 bytes).\n // Otherwise, elements will be the size of their encoding (consumed bytes).\n cursor.setPosition(startOfData + (dynamicChild ? i * 32 : consumed));\n const [data, consumed_] = decodeParameter(cursor, param, {\n checksumAddress,\n staticPosition: startOfData,\n });\n consumed += consumed_;\n value.push(data);\n }\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n }\n // If the length of the array is known in advance,\n // and the length of an element deeply nested in the array is not known,\n // we need to decode the offset of the array data.\n if (hasDynamicChild(param)) {\n // Dealing with dynamic types, so get the offset of the array data.\n const offset = Bytes.toNumber(cursor.readBytes(sizeOfOffset));\n // Start is the static position of current slot + offset.\n const start = staticPosition + offset;\n const value = [];\n for (let i = 0; i < length; ++i) {\n // Move cursor along to the next slot (next offset pointer).\n cursor.setPosition(start + i * 32);\n const [data] = decodeParameter(cursor, param, {\n checksumAddress,\n staticPosition: start,\n });\n value.push(data);\n }\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n }\n // If the length of the array is known in advance and the array is deeply static,\n // then we can just decode each element in sequence.\n let consumed = 0;\n const value = [];\n for (let i = 0; i < length; ++i) {\n const [data, consumed_] = decodeParameter(cursor, param, {\n checksumAddress,\n staticPosition: staticPosition + consumed,\n });\n consumed += consumed_;\n value.push(data);\n }\n return [value, consumed];\n}\n/** @internal */\nexport function decodeBool(cursor) {\n return [Bytes.toBoolean(cursor.readBytes(32), { size: 32 }), 32];\n}\n/** @internal */\nexport function decodeBytes(cursor, param, { staticPosition }) {\n const [_, size] = param.type.split('bytes');\n if (!size) {\n // Dealing with dynamic types, so get the offset of the bytes data.\n const offset = Bytes.toNumber(cursor.readBytes(32));\n // Set position of the cursor to start of bytes data.\n cursor.setPosition(staticPosition + offset);\n const length = Bytes.toNumber(cursor.readBytes(32));\n // If there is no length, we have zero data.\n if (length === 0) {\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return ['0x', 32];\n }\n const data = cursor.readBytes(length);\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [Hex.fromBytes(data), 32];\n }\n const value = Hex.fromBytes(cursor.readBytes(Number.parseInt(size, 10), 32));\n return [value, 32];\n}\n/** @internal */\nexport function decodeNumber(cursor, param) {\n const signed = param.type.startsWith('int');\n const size = Number.parseInt(param.type.split('int')[1] || '256', 10);\n const value = cursor.readBytes(32);\n return [\n size > 48\n ? Bytes.toBigInt(value, { signed })\n : Bytes.toNumber(value, { signed }),\n 32,\n ];\n}\n/** @internal */\nexport function decodeTuple(cursor, param, options) {\n const { checksumAddress, staticPosition } = options;\n // Tuples can have unnamed components (i.e. they are arrays), so we must\n // determine whether the tuple is named or unnamed. In the case of a named\n // tuple, the value will be an object where each property is the name of the\n // component. In the case of an unnamed tuple, the value will be an array.\n const hasUnnamedChild = param.components.length === 0 || param.components.some(({ name }) => !name);\n // Initialize the value to an object or an array, depending on whether the\n // tuple is named or unnamed.\n const value = hasUnnamedChild ? [] : {};\n let consumed = 0;\n // If the tuple has a dynamic child, we must first decode the offset to the\n // tuple data.\n if (hasDynamicChild(param)) {\n // Dealing with dynamic types, so get the offset of the tuple data.\n const offset = Bytes.toNumber(cursor.readBytes(sizeOfOffset));\n // Start is the static position of referencing slot + offset.\n const start = staticPosition + offset;\n for (let i = 0; i < param.components.length; ++i) {\n const component = param.components[i];\n cursor.setPosition(start + consumed);\n const [data, consumed_] = decodeParameter(cursor, component, {\n checksumAddress,\n staticPosition: start,\n });\n consumed += consumed_;\n value[hasUnnamedChild ? i : component?.name] = data;\n }\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n }\n // If the tuple has static children, we can just decode each component\n // in sequence.\n for (let i = 0; i < param.components.length; ++i) {\n const component = param.components[i];\n const [data, consumed_] = decodeParameter(cursor, component, {\n checksumAddress,\n staticPosition,\n });\n value[hasUnnamedChild ? i : component?.name] = data;\n consumed += consumed_;\n }\n return [value, consumed];\n}\n/** @internal */\nexport function decodeString(cursor, { staticPosition }) {\n // Get offset to start of string data.\n const offset = Bytes.toNumber(cursor.readBytes(32));\n // Start is the static position of current slot + offset.\n const start = staticPosition + offset;\n cursor.setPosition(start);\n const length = Bytes.toNumber(cursor.readBytes(32));\n // If there is no length, we have zero data (empty string).\n if (length === 0) {\n cursor.setPosition(staticPosition + 32);\n return ['', 32];\n }\n const data = cursor.readBytes(length, 32);\n const value = Bytes.toString(Bytes.trimLeft(data));\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n}\n/** @internal */\nexport function prepareParameters({ checksumAddress, parameters, values, }) {\n const preparedParameters = [];\n for (let i = 0; i < parameters.length; i++) {\n preparedParameters.push(prepareParameter({\n checksumAddress,\n parameter: parameters[i],\n value: values[i],\n }));\n }\n return preparedParameters;\n}\n/** @internal */\nexport function prepareParameter({ checksumAddress = false, parameter: parameter_, value, }) {\n const parameter = parameter_;\n const arrayComponents = getArrayComponents(parameter.type);\n if (arrayComponents) {\n const [length, type] = arrayComponents;\n return encodeArray(value, {\n checksumAddress,\n length,\n parameter: {\n ...parameter,\n type,\n },\n });\n }\n if (parameter.type === 'tuple') {\n return encodeTuple(value, {\n checksumAddress,\n parameter: parameter,\n });\n }\n if (parameter.type === 'address') {\n return encodeAddress(value, {\n checksum: checksumAddress,\n });\n }\n if (parameter.type === 'bool') {\n return encodeBoolean(value);\n }\n if (parameter.type.startsWith('uint') || parameter.type.startsWith('int')) {\n const signed = parameter.type.startsWith('int');\n const [, , size = '256'] = integerRegex.exec(parameter.type) ?? [];\n return encodeNumber(value, {\n signed,\n size: Number(size),\n });\n }\n if (parameter.type.startsWith('bytes')) {\n return encodeBytes(value, { type: parameter.type });\n }\n if (parameter.type === 'string') {\n return encodeString(value);\n }\n throw new AbiParameters.InvalidTypeError(parameter.type);\n}\n/** @internal */\nexport function encode(preparedParameters) {\n // 1. Compute the size of the static part of the parameters.\n let staticSize = 0;\n for (let i = 0; i < preparedParameters.length; i++) {\n const { dynamic, encoded } = preparedParameters[i];\n if (dynamic)\n staticSize += 32;\n else\n staticSize += Hex.size(encoded);\n }\n // 2. Split the parameters into static and dynamic parts.\n const staticParameters = [];\n const dynamicParameters = [];\n let dynamicSize = 0;\n for (let i = 0; i < preparedParameters.length; i++) {\n const { dynamic, encoded } = preparedParameters[i];\n if (dynamic) {\n staticParameters.push(Hex.fromNumber(staticSize + dynamicSize, { size: 32 }));\n dynamicParameters.push(encoded);\n dynamicSize += Hex.size(encoded);\n }\n else {\n staticParameters.push(encoded);\n }\n }\n // 3. Concatenate static and dynamic parts.\n return Hex.concat(...staticParameters, ...dynamicParameters);\n}\n/** @internal */\nexport function encodeAddress(value, options) {\n const { checksum = false } = options;\n Address.assert(value, { strict: checksum });\n return {\n dynamic: false,\n encoded: Hex.padLeft(value.toLowerCase()),\n };\n}\n/** @internal */\nexport function encodeArray(value, options) {\n const { checksumAddress, length, parameter } = options;\n const dynamic = length === null;\n if (!Array.isArray(value))\n throw new AbiParameters.InvalidArrayError(value);\n if (!dynamic && value.length !== length)\n throw new AbiParameters.ArrayLengthMismatchError({\n expectedLength: length,\n givenLength: value.length,\n type: `${parameter.type}[${length}]`,\n });\n let dynamicChild = false;\n const preparedParameters = [];\n for (let i = 0; i < value.length; i++) {\n const preparedParam = prepareParameter({\n checksumAddress,\n parameter,\n value: value[i],\n });\n if (preparedParam.dynamic)\n dynamicChild = true;\n preparedParameters.push(preparedParam);\n }\n if (dynamic || dynamicChild) {\n const data = encode(preparedParameters);\n if (dynamic) {\n const length = Hex.fromNumber(preparedParameters.length, { size: 32 });\n return {\n dynamic: true,\n encoded: preparedParameters.length > 0 ? Hex.concat(length, data) : length,\n };\n }\n if (dynamicChild)\n return { dynamic: true, encoded: data };\n }\n return {\n dynamic: false,\n encoded: Hex.concat(...preparedParameters.map(({ encoded }) => encoded)),\n };\n}\n/** @internal */\nexport function encodeBytes(value, { type }) {\n const [, parametersize] = type.split('bytes');\n const bytesSize = Hex.size(value);\n if (!parametersize) {\n let value_ = value;\n // If the size is not divisible by 32 bytes, pad the end\n // with empty bytes to the ceiling 32 bytes.\n if (bytesSize % 32 !== 0)\n value_ = Hex.padRight(value_, Math.ceil((value.length - 2) / 2 / 32) * 32);\n return {\n dynamic: true,\n encoded: Hex.concat(Hex.padLeft(Hex.fromNumber(bytesSize, { size: 32 })), value_),\n };\n }\n if (bytesSize !== Number.parseInt(parametersize, 10))\n throw new AbiParameters.BytesSizeMismatchError({\n expectedSize: Number.parseInt(parametersize, 10),\n value,\n });\n return { dynamic: false, encoded: Hex.padRight(value) };\n}\n/** @internal */\nexport function encodeBoolean(value) {\n if (typeof value !== 'boolean')\n throw new Errors.BaseError(`Invalid boolean value: \"${value}\" (type: ${typeof value}). Expected: \\`true\\` or \\`false\\`.`);\n return { dynamic: false, encoded: Hex.padLeft(Hex.fromBoolean(value)) };\n}\n/** @internal */\nexport function encodeNumber(value, { signed, size }) {\n if (typeof size === 'number') {\n const max = 2n ** (BigInt(size) - (signed ? 1n : 0n)) - 1n;\n const min = signed ? -max - 1n : 0n;\n if (value > max || value < min)\n throw new Hex.IntegerOutOfRangeError({\n max: max.toString(),\n min: min.toString(),\n signed,\n size: size / 8,\n value: value.toString(),\n });\n }\n return {\n dynamic: false,\n encoded: Hex.fromNumber(value, {\n size: 32,\n signed,\n }),\n };\n}\n/** @internal */\nexport function encodeString(value) {\n const hexValue = Hex.fromString(value);\n const partsLength = Math.ceil(Hex.size(hexValue) / 32);\n const parts = [];\n for (let i = 0; i < partsLength; i++) {\n parts.push(Hex.padRight(Hex.slice(hexValue, i * 32, (i + 1) * 32)));\n }\n return {\n dynamic: true,\n encoded: Hex.concat(Hex.padRight(Hex.fromNumber(Hex.size(hexValue), { size: 32 })), ...parts),\n };\n}\n/** @internal */\nexport function encodeTuple(value, options) {\n const { checksumAddress, parameter } = options;\n let dynamic = false;\n const preparedParameters = [];\n for (let i = 0; i < parameter.components.length; i++) {\n const param_ = parameter.components[i];\n const index = Array.isArray(value) ? i : param_.name;\n const preparedParam = prepareParameter({\n checksumAddress,\n parameter: param_,\n value: value[index],\n });\n preparedParameters.push(preparedParam);\n if (preparedParam.dynamic)\n dynamic = true;\n }\n return {\n dynamic,\n encoded: dynamic\n ? encode(preparedParameters)\n : Hex.concat(...preparedParameters.map(({ encoded }) => encoded)),\n };\n}\n/** @internal */\nexport function getArrayComponents(type) {\n const matches = type.match(/^(.*)\\[(\\d+)?\\]$/);\n return matches\n ? // Return `null` if the array is dynamic.\n [matches[2] ? Number(matches[2]) : null, matches[1]]\n : undefined;\n}\n/** @internal */\nexport function hasDynamicChild(param) {\n const { type } = param;\n if (type === 'string')\n return true;\n if (type === 'bytes')\n return true;\n if (type.endsWith('[]'))\n return true;\n if (type === 'tuple')\n return param.components?.some(hasDynamicChild);\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents &&\n hasDynamicChild({\n ...param,\n type: arrayComponents[1],\n }))\n return true;\n return false;\n}\n//# sourceMappingURL=abiParameters.js.map","import * as Errors from '../Errors.js';\nconst staticCursor = {\n bytes: new Uint8Array(),\n dataView: new DataView(new ArrayBuffer(0)),\n position: 0,\n positionReadCount: new Map(),\n recursiveReadCount: 0,\n recursiveReadLimit: Number.POSITIVE_INFINITY,\n assertReadLimit() {\n if (this.recursiveReadCount >= this.recursiveReadLimit)\n throw new RecursiveReadLimitExceededError({\n count: this.recursiveReadCount + 1,\n limit: this.recursiveReadLimit,\n });\n },\n assertPosition(position) {\n if (position < 0 || position > this.bytes.length - 1)\n throw new PositionOutOfBoundsError({\n length: this.bytes.length,\n position,\n });\n },\n decrementPosition(offset) {\n if (offset < 0)\n throw new NegativeOffsetError({ offset });\n const position = this.position - offset;\n this.assertPosition(position);\n this.position = position;\n },\n getReadCount(position) {\n return this.positionReadCount.get(position || this.position) || 0;\n },\n incrementPosition(offset) {\n if (offset < 0)\n throw new NegativeOffsetError({ offset });\n const position = this.position + offset;\n this.assertPosition(position);\n this.position = position;\n },\n inspectByte(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position);\n return this.bytes[position];\n },\n inspectBytes(length, position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + length - 1);\n return this.bytes.subarray(position, position + length);\n },\n inspectUint8(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position);\n return this.bytes[position];\n },\n inspectUint16(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + 1);\n return this.dataView.getUint16(position);\n },\n inspectUint24(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + 2);\n return ((this.dataView.getUint16(position) << 8) +\n this.dataView.getUint8(position + 2));\n },\n inspectUint32(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + 3);\n return this.dataView.getUint32(position);\n },\n pushByte(byte) {\n this.assertPosition(this.position);\n this.bytes[this.position] = byte;\n this.position++;\n },\n pushBytes(bytes) {\n this.assertPosition(this.position + bytes.length - 1);\n this.bytes.set(bytes, this.position);\n this.position += bytes.length;\n },\n pushUint8(value) {\n this.assertPosition(this.position);\n this.bytes[this.position] = value;\n this.position++;\n },\n pushUint16(value) {\n this.assertPosition(this.position + 1);\n this.dataView.setUint16(this.position, value);\n this.position += 2;\n },\n pushUint24(value) {\n this.assertPosition(this.position + 2);\n this.dataView.setUint16(this.position, value >> 8);\n this.dataView.setUint8(this.position + 2, value & ~4294967040);\n this.position += 3;\n },\n pushUint32(value) {\n this.assertPosition(this.position + 3);\n this.dataView.setUint32(this.position, value);\n this.position += 4;\n },\n readByte() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectByte();\n this.position++;\n return value;\n },\n readBytes(length, size) {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectBytes(length);\n this.position += size ?? length;\n return value;\n },\n readUint8() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint8();\n this.position += 1;\n return value;\n },\n readUint16() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint16();\n this.position += 2;\n return value;\n },\n readUint24() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint24();\n this.position += 3;\n return value;\n },\n readUint32() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint32();\n this.position += 4;\n return value;\n },\n get remaining() {\n return this.bytes.length - this.position;\n },\n setPosition(position) {\n const oldPosition = this.position;\n this.assertPosition(position);\n this.position = position;\n return () => (this.position = oldPosition);\n },\n _touch() {\n if (this.recursiveReadLimit === Number.POSITIVE_INFINITY)\n return;\n const count = this.getReadCount();\n this.positionReadCount.set(this.position, count + 1);\n if (count > 0)\n this.recursiveReadCount++;\n },\n};\n/** @internal */\nexport function create(bytes, { recursiveReadLimit = 8_192 } = {}) {\n const cursor = Object.create(staticCursor);\n cursor.bytes = bytes;\n cursor.dataView = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n cursor.positionReadCount = new Map();\n cursor.recursiveReadLimit = recursiveReadLimit;\n return cursor;\n}\n/** @internal */\nexport class NegativeOffsetError extends Errors.BaseError {\n constructor({ offset }) {\n super(`Offset \\`${offset}\\` cannot be negative.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Cursor.NegativeOffsetError'\n });\n }\n}\n/** @internal */\nexport class PositionOutOfBoundsError extends Errors.BaseError {\n constructor({ length, position }) {\n super(`Position \\`${position}\\` is out of bounds (\\`0 < position < ${length}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Cursor.PositionOutOfBoundsError'\n });\n }\n}\n/** @internal */\nexport class RecursiveReadLimitExceededError extends Errors.BaseError {\n constructor({ count, limit }) {\n super(`Recursive read limit of \\`${limit}\\` exceeded (recursive read count: \\`${count}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Cursor.RecursiveReadLimitExceededError'\n });\n }\n}\n//# sourceMappingURL=cursor.js.map","import * as abitype from 'abitype';\nimport * as Address from './Address.js';\nimport * as Bytes from './Bytes.js';\nimport * as Errors from './Errors.js';\nimport * as Hex from './Hex.js';\nimport * as internal from './internal/abiParameters.js';\nimport * as Cursor from './internal/cursor.js';\nimport * as Solidity from './Solidity.js';\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function decode(parameters, data, options = {}) {\n const { as = 'Array', checksumAddress = false } = options;\n const bytes = typeof data === 'string' ? Bytes.fromHex(data) : data;\n const cursor = Cursor.create(bytes);\n if (Bytes.size(bytes) === 0 && parameters.length > 0)\n throw new ZeroDataError();\n if (Bytes.size(bytes) && Bytes.size(bytes) < 32)\n throw new DataSizeTooSmallError({\n data: typeof data === 'string' ? data : Hex.fromBytes(data),\n parameters: parameters,\n size: Bytes.size(bytes),\n });\n let consumed = 0;\n const values = as === 'Array' ? [] : {};\n for (let i = 0; i < parameters.length; ++i) {\n const param = parameters[i];\n cursor.setPosition(consumed);\n const [data, consumed_] = internal.decodeParameter(cursor, param, {\n checksumAddress,\n staticPosition: 0,\n });\n consumed += consumed_;\n if (as === 'Array')\n values.push(data);\n else\n values[param.name ?? i] = data;\n }\n return values;\n}\n/**\n * Encodes primitive values into ABI encoded data as per the [Application Binary Interface (ABI) Specification](https://docs.soliditylang.org/en/latest/abi-spec).\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const data = AbiParameters.encode(\n * AbiParameters.from(['string', 'uint', 'bool']),\n * ['wagmi', 420n, true],\n * )\n * ```\n *\n * @example\n * ### JSON Parameters\n *\n * Specify **JSON ABI** Parameters as schema:\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const data = AbiParameters.encode(\n * [\n * { type: 'string', name: 'name' },\n * { type: 'uint', name: 'age' },\n * { type: 'bool', name: 'isOwner' },\n * ],\n * ['wagmi', 420n, true],\n * )\n * ```\n *\n * @param parameters - The set of ABI parameters to encode, in the shape of the `inputs` or `outputs` attribute of an ABI Item. These parameters must include valid [ABI types](https://docs.soliditylang.org/en/latest/types.html).\n * @param values - The set of primitive values that correspond to the ABI types defined in `parameters`.\n * @returns ABI encoded data.\n */\nexport function encode(parameters, values, options) {\n const { checksumAddress = false } = options ?? {};\n if (parameters.length !== values.length)\n throw new LengthMismatchError({\n expectedLength: parameters.length,\n givenLength: values.length,\n });\n // Prepare the parameters to determine dynamic types to encode.\n const preparedParameters = internal.prepareParameters({\n checksumAddress,\n parameters: parameters,\n values: values,\n });\n const data = internal.encode(preparedParameters);\n if (data.length === 0)\n return '0x';\n return data;\n}\n/**\n * Encodes an array of primitive values to a [packed ABI encoding](https://docs.soliditylang.org/en/latest/abi-spec.html#non-standard-packed-mode).\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const encoded = AbiParameters.encodePacked(\n * ['address', 'string'],\n * ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 'hello world'],\n * )\n * // @log: '0xd8da6bf26964af9d7eed9e03e53415d37aa9604568656c6c6f20776f726c64'\n * ```\n *\n * @param types - Set of ABI types to pack encode.\n * @param values - The set of primitive values that correspond to the ABI types defined in `types`.\n * @returns The encoded packed data.\n */\nexport function encodePacked(types, values) {\n if (types.length !== values.length)\n throw new LengthMismatchError({\n expectedLength: types.length,\n givenLength: values.length,\n });\n const data = [];\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n const value = values[i];\n data.push(encodePacked.encode(type, value));\n }\n return Hex.concat(...data);\n}\n(function (encodePacked) {\n // eslint-disable-next-line jsdoc/require-jsdoc\n function encode(type, value, isArray = false) {\n if (type === 'address') {\n const address = value;\n Address.assert(address);\n return Hex.padLeft(address.toLowerCase(), isArray ? 32 : 0);\n }\n if (type === 'string')\n return Hex.fromString(value);\n if (type === 'bytes')\n return value;\n if (type === 'bool')\n return Hex.padLeft(Hex.fromBoolean(value), isArray ? 32 : 1);\n const intMatch = type.match(Solidity.integerRegex);\n if (intMatch) {\n const [_type, baseType, bits = '256'] = intMatch;\n const size = Number.parseInt(bits, 10) / 8;\n return Hex.fromNumber(value, {\n size: isArray ? 32 : size,\n signed: baseType === 'int',\n });\n }\n const bytesMatch = type.match(Solidity.bytesRegex);\n if (bytesMatch) {\n const [_type, size] = bytesMatch;\n if (Number.parseInt(size, 10) !== (value.length - 2) / 2)\n throw new BytesSizeMismatchError({\n expectedSize: Number.parseInt(size, 10),\n value: value,\n });\n return Hex.padRight(value, isArray ? 32 : 0);\n }\n const arrayMatch = type.match(Solidity.arrayRegex);\n if (arrayMatch && Array.isArray(value)) {\n const [_type, childType] = arrayMatch;\n const data = [];\n for (let i = 0; i < value.length; i++) {\n data.push(encode(childType, value[i], true));\n }\n if (data.length === 0)\n return '0x';\n return Hex.concat(...data);\n }\n throw new InvalidTypeError(type);\n }\n encodePacked.encode = encode;\n})(encodePacked || (encodePacked = {}));\n/**\n * Formats {@link ox#AbiParameters.AbiParameters} into **Human Readable ABI Parameters**.\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const formatted = AbiParameters.format([\n * {\n * name: 'spender',\n * type: 'address',\n * },\n * {\n * name: 'amount',\n * type: 'uint256',\n * },\n * ])\n *\n * formatted\n * // ^?\n *\n *\n * ```\n *\n * @param parameters - The ABI Parameters to format.\n * @returns The formatted ABI Parameters .\n */\nexport function format(parameters) {\n return abitype.formatAbiParameters(parameters);\n}\n/**\n * Parses arbitrary **JSON ABI Parameters** or **Human Readable ABI Parameters** into typed {@link ox#AbiParameters.AbiParameters}.\n *\n * @example\n * ### JSON Parameters\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const parameters = AbiParameters.from([\n * {\n * name: 'spender',\n * type: 'address',\n * },\n * {\n * name: 'amount',\n * type: 'uint256',\n * },\n * ])\n *\n * parameters\n * //^?\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Human Readable Parameters\n *\n * Human Readable ABI Parameters can be parsed into a typed {@link ox#AbiParameters.AbiParameters}:\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const parameters = AbiParameters.from('address spender, uint256 amount')\n *\n * parameters\n * //^?\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * It is possible to specify `struct`s along with your definitions:\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const parameters = AbiParameters.from([\n * 'struct Foo { address spender; uint256 amount; }', // [!code hl]\n * 'Foo foo, address bar',\n * ])\n *\n * parameters\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n *\n *\n * @param parameters - The ABI Parameters to parse.\n * @returns The typed ABI Parameters.\n */\nexport function from(parameters) {\n if (Array.isArray(parameters) && typeof parameters[0] === 'string')\n return abitype.parseAbiParameters(parameters);\n if (typeof parameters === 'string')\n return abitype.parseAbiParameters(parameters);\n return parameters;\n}\n/**\n * Throws when the data size is too small for the given parameters.\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * AbiParameters.decode([{ type: 'uint256' }], '0x010f')\n * // ↑ ❌ 2 bytes\n * // @error: AbiParameters.DataSizeTooSmallError: Data size of 2 bytes is too small for given parameters.\n * // @error: Params: (uint256)\n * // @error: Data: 0x010f (2 bytes)\n * ```\n *\n * ### Solution\n *\n * Pass a valid data size.\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * AbiParameters.decode([{ type: 'uint256' }], '0x00000000000000000000000000000000000000000000000000000000000010f')\n * // ↑ ✅ 32 bytes\n * ```\n */\nexport class DataSizeTooSmallError extends Errors.BaseError {\n constructor({ data, parameters, size, }) {\n super(`Data size of ${size} bytes is too small for given parameters.`, {\n metaMessages: [\n `Params: (${abitype.formatAbiParameters(parameters)})`,\n `Data: ${data} (${size} bytes)`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiParameters.DataSizeTooSmallError'\n });\n }\n}\n/**\n * Throws when zero data is provided, but data is expected.\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * AbiParameters.decode([{ type: 'uint256' }], '0x')\n * // ↑ ❌ zero data\n * // @error: AbiParameters.DataSizeTooSmallError: Data size of 2 bytes is too small for given parameters.\n * // @error: Params: (uint256)\n * // @error: Data: 0x010f (2 bytes)\n * ```\n *\n * ### Solution\n *\n * Pass valid data.\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * AbiParameters.decode([{ type: 'uint256' }], '0x00000000000000000000000000000000000000000000000000000000000010f')\n * // ↑ ✅ 32 bytes\n * ```\n */\nexport class ZeroDataError extends Errors.BaseError {\n constructor() {\n super('Cannot decode zero data (\"0x\") with ABI parameters.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiParameters.ZeroDataError'\n });\n }\n}\n/**\n * The length of the array value does not match the length specified in the corresponding ABI parameter.\n *\n * ### Example\n *\n * ```ts twoslash\n * // @noErrors\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from('uint256[3]'), [[69n, 420n]])\n * // ↑ expected: 3 ↑ ❌ length: 2\n * // @error: AbiParameters.ArrayLengthMismatchError: ABI encoding array length mismatch\n * // @error: for type `uint256[3]`. Expected: `3`. Given: `2`.\n * ```\n *\n * ### Solution\n *\n * Pass an array of the correct length.\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from(['uint256[3]']), [[69n, 420n, 69n]])\n * // ↑ ✅ length: 3\n * ```\n */\nexport class ArrayLengthMismatchError extends Errors.BaseError {\n constructor({ expectedLength, givenLength, type, }) {\n super(`Array length mismatch for type \\`${type}\\`. Expected: \\`${expectedLength}\\`. Given: \\`${givenLength}\\`.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiParameters.ArrayLengthMismatchError'\n });\n }\n}\n/**\n * The size of the bytes value does not match the size specified in the corresponding ABI parameter.\n *\n * ### Example\n *\n * ```ts twoslash\n * // @noErrors\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from('bytes8'), [['0xdeadbeefdeadbeefdeadbeef']])\n * // ↑ expected: 8 bytes ↑ ❌ size: 12 bytes\n * // @error: BytesSizeMismatchError: Size of bytes \"0xdeadbeefdeadbeefdeadbeef\"\n * // @error: (bytes12) does not match expected size (bytes8).\n * ```\n *\n * ### Solution\n *\n * Pass a bytes value of the correct size.\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from(['bytes8']), ['0xdeadbeefdeadbeef'])\n * // ↑ ✅ size: 8 bytes\n * ```\n */\nexport class BytesSizeMismatchError extends Errors.BaseError {\n constructor({ expectedSize, value, }) {\n super(`Size of bytes \"${value}\" (bytes${Hex.size(value)}) does not match expected size (bytes${expectedSize}).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiParameters.BytesSizeMismatchError'\n });\n }\n}\n/**\n * The length of the values to encode does not match the length of the ABI parameters.\n *\n * ### Example\n *\n * ```ts twoslash\n * // @noErrors\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from(['string', 'uint256']), ['hello'])\n * // @error: LengthMismatchError: ABI encoding params/values length mismatch.\n * // @error: Expected length (params): 2\n * // @error: Given length (values): 1\n * ```\n *\n * ### Solution\n *\n * Pass the correct number of values to encode.\n *\n * ### Solution\n *\n * Pass a [valid ABI type](https://docs.soliditylang.org/en/develop/abi-spec.html#types).\n */\nexport class LengthMismatchError extends Errors.BaseError {\n constructor({ expectedLength, givenLength, }) {\n super([\n 'ABI encoding parameters/values length mismatch.',\n `Expected length (parameters): ${expectedLength}`,\n `Given length (values): ${givenLength}`,\n ].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiParameters.LengthMismatchError'\n });\n }\n}\n/**\n * The value provided is not a valid array as specified in the corresponding ABI parameter.\n *\n * ### Example\n *\n * ```ts twoslash\n * // @noErrors\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from(['uint256[3]']), [69])\n * ```\n *\n * ### Solution\n *\n * Pass an array value.\n */\nexport class InvalidArrayError extends Errors.BaseError {\n constructor(value) {\n super(`Value \\`${value}\\` is not a valid array.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiParameters.InvalidArrayError'\n });\n }\n}\n/**\n * Throws when the ABI parameter type is invalid.\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * AbiParameters.decode([{ type: 'lol' }], '0x00000000000000000000000000000000000000000000000000000000000010f')\n * // ↑ ❌ invalid type\n * // @error: AbiParameters.InvalidTypeError: Type `lol` is not a valid ABI Type.\n * ```\n */\nexport class InvalidTypeError extends Errors.BaseError {\n constructor(type) {\n super(`Type \\`${type}\\` is not a valid ABI Type.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiParameters.InvalidTypeError'\n });\n }\n}\n//# sourceMappingURL=AbiParameters.js.map","import { InvalidAbiParametersError } from './errors/abiParameter.js';\nimport { isStructSignature, modifiers } from './runtime/signatures.js';\nimport { parseStructs } from './runtime/structs.js';\nimport { splitParameters } from './runtime/utils.js';\nimport { parseAbiParameter as parseAbiParameter_ } from './runtime/utils.js';\n/**\n * Parses human-readable ABI parameters into {@link AbiParameter}s\n *\n * @param params - Human-readable ABI parameters\n * @returns Parsed {@link AbiParameter}s\n *\n * @example\n * const abiParameters = parseAbiParameters('address from, address to, uint256 amount')\n * // ^? const abiParameters: [{ type: \"address\"; name: \"from\"; }, { type: \"address\";...\n *\n * @example\n * const abiParameters = parseAbiParameters([\n * // ^? const abiParameters: [{ type: \"tuple\"; components: [{ type: \"string\"; name:...\n * 'Baz bar',\n * 'struct Baz { string name; }',\n * ])\n */\nexport function parseAbiParameters(params) {\n const abiParameters = [];\n if (typeof params === 'string') {\n const parameters = splitParameters(params);\n const length = parameters.length;\n for (let i = 0; i < length; i++) {\n abiParameters.push(parseAbiParameter_(parameters[i], { modifiers }));\n }\n }\n else {\n const structs = parseStructs(params);\n const length = params.length;\n for (let i = 0; i < length; i++) {\n const signature = params[i];\n if (isStructSignature(signature))\n continue;\n const parameters = splitParameters(signature);\n const length = parameters.length;\n for (let k = 0; k < length; k++) {\n abiParameters.push(parseAbiParameter_(parameters[k], { modifiers, structs }));\n }\n }\n }\n if (abiParameters.length === 0)\n throw new InvalidAbiParametersError({ params });\n return abiParameters;\n}\n//# sourceMappingURL=parseAbiParameters.js.map","import * as abitype from 'abitype';\nimport * as AbiItem from './AbiItem.js';\nimport * as AbiParameters from './AbiParameters.js';\nimport * as Hex from './Hex.js';\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function decode(...parameters) {\n const [abiConstructor, options] = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, options] = parameters;\n return [fromAbi(abi), options];\n }\n return parameters;\n })();\n const { bytecode } = options;\n if (abiConstructor.inputs?.length === 0)\n return undefined;\n const data = options.data.replace(bytecode, '0x');\n return AbiParameters.decode(abiConstructor.inputs, data);\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function encode(...parameters) {\n const [abiConstructor, options] = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, options] = parameters;\n return [fromAbi(abi), options];\n }\n return parameters;\n })();\n const { bytecode, args } = options;\n return Hex.concat(bytecode, abiConstructor.inputs?.length && args?.length\n ? AbiParameters.encode(abiConstructor.inputs, args)\n : '0x');\n}\n/** @internal */\nexport function format(abiConstructor) {\n return abitype.formatAbiItem(abiConstructor);\n}\n/** @internal */\nexport function from(abiConstructor) {\n return AbiItem.from(abiConstructor);\n}\n/** @internal */\nexport function fromAbi(abi) {\n const item = abi.find((item) => item.type === 'constructor');\n if (!item)\n throw new AbiItem.NotFoundError({ name: 'constructor' });\n return item;\n}\n//# sourceMappingURL=AbiConstructor.js.map","import * as abitype from 'abitype';\nimport * as AbiItem from './AbiItem.js';\nimport * as AbiParameters from './AbiParameters.js';\nimport * as Hex from './Hex.js';\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function decodeData(...parameters) {\n const [abiFunction, data] = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name, data] = parameters;\n return [fromAbi(abi, name), data];\n }\n return parameters;\n })();\n const { overloads } = abiFunction;\n if (Hex.size(data) < 4)\n throw new AbiItem.InvalidSelectorSizeError({ data });\n if (abiFunction.inputs?.length === 0)\n return undefined;\n const item = overloads\n ? fromAbi([abiFunction, ...overloads], data)\n : abiFunction;\n if (Hex.size(data) <= 4)\n return undefined;\n return AbiParameters.decode(item.inputs, Hex.slice(data, 4));\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function decodeResult(...parameters) {\n const [abiFunction, data, options = {}] = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name, data, options] = parameters;\n return [fromAbi(abi, name), data, options];\n }\n return parameters;\n })();\n const values = AbiParameters.decode(abiFunction.outputs, data, options);\n if (values && Object.keys(values).length === 0)\n return undefined;\n if (values && Object.keys(values).length === 1) {\n if (Array.isArray(values))\n return values[0];\n return Object.values(values)[0];\n }\n return values;\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function encodeData(...parameters) {\n const [abiFunction, args = []] = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name, args] = parameters;\n return [fromAbi(abi, name, { args }), args];\n }\n const [abiFunction, args] = parameters;\n return [abiFunction, args];\n })();\n const { overloads } = abiFunction;\n const item = overloads\n ? fromAbi([abiFunction, ...overloads], abiFunction.name, {\n args,\n })\n : abiFunction;\n const selector = getSelector(item);\n const data = args.length > 0 ? AbiParameters.encode(item.inputs, args) : undefined;\n return data ? Hex.concat(selector, data) : selector;\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function encodeResult(...parameters) {\n const [abiFunction, output, options = {}] = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name, output, options] = parameters;\n return [fromAbi(abi, name), output, options];\n }\n return parameters;\n })();\n const { as = 'Array' } = options;\n const values = (() => {\n if (abiFunction.outputs.length === 1)\n return [output];\n if (Array.isArray(output))\n return output;\n if (as === 'Object')\n return Object.values(output);\n return [output];\n })();\n return AbiParameters.encode(abiFunction.outputs, values);\n}\n/**\n * Formats an {@link ox#AbiFunction.AbiFunction} into a **Human Readable ABI Function**.\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const formatted = AbiFunction.format({\n * type: 'function',\n * name: 'approve',\n * stateMutability: 'nonpayable',\n * inputs: [\n * {\n * name: 'spender',\n * type: 'address',\n * },\n * {\n * name: 'amount',\n * type: 'uint256',\n * },\n * ],\n * outputs: [{ type: 'bool' }],\n * })\n *\n * formatted\n * // ^?\n *\n *\n * ```\n *\n * @param abiFunction - The ABI Function to format.\n * @returns The formatted ABI Function.\n */\nexport function format(abiFunction) {\n return abitype.formatAbiItem(abiFunction);\n}\n/**\n * Parses an arbitrary **JSON ABI Function** or **Human Readable ABI Function** into a typed {@link ox#AbiFunction.AbiFunction}.\n *\n * @example\n * ### JSON ABIs\n *\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const approve = AbiFunction.from({\n * type: 'function',\n * name: 'approve',\n * stateMutability: 'nonpayable',\n * inputs: [\n * {\n * name: 'spender',\n * type: 'address',\n * },\n * {\n * name: 'amount',\n * type: 'uint256',\n * },\n * ],\n * outputs: [{ type: 'bool' }],\n * })\n *\n * approve\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Human Readable ABIs\n *\n * A Human Readable ABI can be parsed into a typed ABI object:\n *\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const approve = AbiFunction.from(\n * 'function approve(address spender, uint256 amount) returns (bool)' // [!code hl]\n * )\n *\n * approve\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * It is possible to specify `struct`s along with your definitions:\n *\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const approve = AbiFunction.from([\n * 'struct Foo { address spender; uint256 amount; }', // [!code hl]\n * 'function approve(Foo foo) returns (bool)',\n * ])\n *\n * approve\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n *\n *\n * @param abiFunction - The ABI Function to parse.\n * @returns Typed ABI Function.\n */\nexport function from(abiFunction, options = {}) {\n return AbiItem.from(abiFunction, options);\n}\n/**\n * Extracts an {@link ox#AbiFunction.AbiFunction} from an {@link ox#Abi.Abi} given a name and optional arguments.\n *\n * @example\n * ### Extracting by Name\n *\n * ABI Functions can be extracted by their name using the `name` option:\n *\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const abi = Abi.from([\n * 'function foo()',\n * 'event Transfer(address owner, address to, uint256 tokenId)',\n * 'function bar(string a) returns (uint256 x)',\n * ])\n *\n * const item = AbiFunction.fromAbi(abi, 'foo') // [!code focus]\n * // ^?\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Extracting by Selector\n *\n * ABI Functions can be extract by their selector when {@link ox#Hex.Hex} is provided to `name`.\n *\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const abi = Abi.from([\n * 'function foo()',\n * 'event Transfer(address owner, address to, uint256 tokenId)',\n * 'function bar(string a) returns (uint256 x)',\n * ])\n * const item = AbiFunction.fromAbi(abi, '0x095ea7b3') // [!code focus]\n * // ^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * :::note\n *\n * Extracting via a hex selector is useful when extracting an ABI Function from an `eth_call` RPC response or\n * from a Transaction `input`.\n *\n * :::\n *\n * @param abi - The ABI to extract from.\n * @param name - The name (or selector) of the ABI item to extract.\n * @param options - Extraction options.\n * @returns The ABI item.\n */\nexport function fromAbi(abi, name, options) {\n const item = AbiItem.fromAbi(abi, name, options);\n if (item.type !== 'function')\n throw new AbiItem.NotFoundError({ name, type: 'function' });\n return item;\n}\n/**\n * Computes the [4-byte selector](https://solidity-by-example.org/function-selector/) for an {@link ox#AbiFunction.AbiFunction}.\n *\n * Useful for computing function selectors for calldata.\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const selector = AbiFunction.getSelector('function ownerOf(uint256 tokenId)')\n * // @log: '0x6352211e'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const selector = AbiFunction.getSelector({\n * inputs: [{ type: 'uint256' }],\n * name: 'ownerOf',\n * outputs: [],\n * stateMutability: 'view',\n * type: 'function'\n * })\n * // @log: '0x6352211e'\n * ```\n *\n * @param abiItem - The ABI item to compute the selector for.\n * @returns The first 4 bytes of the {@link ox#Hash.(keccak256:function)} hash of the function signature.\n */\nexport function getSelector(abiItem) {\n return AbiItem.getSelector(abiItem);\n}\n//# sourceMappingURL=AbiFunction.js.map","import * as AbiParameters from '../core/AbiParameters.js';\nimport * as Errors from '../core/Errors.js';\nimport * as Hex from '../core/Hex.js';\n/**\n * Magic bytes used to identify ERC-6492 wrapped signatures.\n */\nexport const magicBytes = '0x6492649264926492649264926492649264926492649264926492649264926492';\n/**\n * Deployless ERC-6492 signature verification bytecode.\n */\nexport const universalSignatureValidatorBytecode = '0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572';\n/**\n * ABI for the ERC-6492 universal deployless signature validator contract.\n *\n * Constructor return value is `0x1` (valid) or `0x0` (invalid).\n */\nexport const universalSignatureValidatorAbi = [\n {\n inputs: [\n {\n name: '_signer',\n type: 'address',\n },\n {\n name: '_hash',\n type: 'bytes32',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [\n {\n name: '_signer',\n type: 'address',\n },\n {\n name: '_hash',\n type: 'bytes32',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n name: 'isValidSig',\n },\n];\n/**\n * Asserts that the wrapped signature is valid.\n *\n * @example\n * ```ts twoslash\n * import { SignatureErc6492 } from 'ox/erc6492'\n *\n * SignatureErc6492.assert('0xdeadbeef')\n * // @error: InvalidWrappedSignatureError: Value `0xdeadbeef` is an invalid ERC-6492 wrapped signature.\n * ```\n *\n * @param wrapped - The wrapped signature to assert.\n */\nexport function assert(wrapped) {\n if (Hex.slice(wrapped, -32) !== magicBytes)\n throw new InvalidWrappedSignatureError(wrapped);\n}\n/**\n * Parses an [ERC-6492 wrapped signature](https://eips.ethereum.org/EIPS/eip-6492#specification) into its constituent parts.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Secp256k1 } from 'ox'\n * import { SignatureErc6492 } from 'ox/erc6492' // [!code focus]\n *\n * const signature = Secp256k1.sign({\n * payload: '0x...',\n * privateKey: '0x...',\n * })\n *\n * // Instantiate from serialized format. // [!code focus]\n * const wrapped = SignatureErc6492.from('0x...') // [!code focus]\n * // @log: { data: '0x...', signature: { ... }, to: '0x...', } // [!code focus]\n *\n * // Instantiate from constituent parts. // [!code focus]\n * const wrapped = SignatureErc6492.from({ // [!code focus]\n * data: '0x...', // [!code focus]\n * signature, // [!code focus]\n * to: '0x...', // [!code focus]\n * })\n * // @log: { data: '0x...', signature: { ... }, to: '0x...', }\n * ```\n *\n * @param wrapped - Wrapped signature to parse.\n * @returns Wrapped signature.\n */\nexport function from(wrapped) {\n if (typeof wrapped === 'string')\n return unwrap(wrapped);\n return wrapped;\n}\n/**\n * Parses an [ERC-6492 wrapped signature](https://eips.ethereum.org/EIPS/eip-6492#specification) into its constituent parts.\n *\n * @example\n * ```ts twoslash\n * import { SignatureErc6492 } from 'ox/erc6492'\n *\n * const { data, signature, to } = SignatureErc6492.unwrap('0x...')\n * ```\n *\n * @param wrapped - Wrapped signature to parse.\n * @returns Wrapped signature.\n */\nexport function unwrap(wrapped) {\n assert(wrapped);\n const [to, data, signature] = AbiParameters.decode(AbiParameters.from('address, bytes, bytes'), wrapped);\n return { data, signature, to };\n}\n/**\n * Serializes an [ERC-6492 wrapped signature](https://eips.ethereum.org/EIPS/eip-6492#specification).\n *\n * @example\n * ```ts twoslash\n * import { Secp256k1, Signature } from 'ox'\n * import { SignatureErc6492 } from 'ox/erc6492' // [!code focus]\n *\n * const signature = Secp256k1.sign({\n * payload: '0x...',\n * privateKey: '0x...',\n * })\n *\n * const wrapped = SignatureErc6492.wrap({ // [!code focus]\n * data: '0xdeadbeef', // [!code focus]\n * signature: Signature.toHex(signature), // [!code focus]\n * to: '0x00000000219ab540356cBB839Cbe05303d7705Fa', // [!code focus]\n * }) // [!code focus]\n * ```\n *\n * @param value - Wrapped signature to serialize.\n * @returns Serialized wrapped signature.\n */\nexport function wrap(value) {\n const { data, signature, to } = value;\n return Hex.concat(AbiParameters.encode(AbiParameters.from('address, bytes, bytes'), [\n to,\n data,\n signature,\n ]), magicBytes);\n}\n/**\n * Validates a wrapped signature. Returns `true` if the wrapped signature is valid, `false` otherwise.\n *\n * @example\n * ```ts twoslash\n * import { SignatureErc6492 } from 'ox/erc6492'\n *\n * const valid = SignatureErc6492.validate('0xdeadbeef')\n * // @log: false\n * ```\n *\n * @param wrapped - The wrapped signature to validate.\n * @returns `true` if the wrapped signature is valid, `false` otherwise.\n */\nexport function validate(wrapped) {\n try {\n assert(wrapped);\n return true;\n }\n catch {\n return false;\n }\n}\n/** Thrown when the ERC-6492 wrapped signature is invalid. */\nexport class InvalidWrappedSignatureError extends Errors.BaseError {\n constructor(wrapped) {\n super(`Value \\`${wrapped}\\` is an invalid ERC-6492 wrapped signature.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'SignatureErc6492.InvalidWrappedSignatureError'\n });\n }\n}\n//# sourceMappingURL=SignatureErc6492.js.map","import { secp256k1 } from '@noble/curves/secp256k1';\nimport * as Bytes from './Bytes.js';\nimport * as Errors from './Errors.js';\nimport * as Hex from './Hex.js';\nimport * as Json from './Json.js';\nimport * as Solidity from './Solidity.js';\n/**\n * Asserts that a Signature is valid.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * Signature.assert({\n * r: -49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1,\n * })\n * // @error: InvalidSignatureRError:\n * // @error: Value `-549...n` is an invalid r value.\n * // @error: r must be a positive integer less than 2^256.\n * ```\n *\n * @param signature - The signature object to assert.\n */\nexport function assert(signature, options = {}) {\n const { recovered } = options;\n if (typeof signature.r === 'undefined')\n throw new MissingPropertiesError({ signature });\n if (typeof signature.s === 'undefined')\n throw new MissingPropertiesError({ signature });\n if (recovered && typeof signature.yParity === 'undefined')\n throw new MissingPropertiesError({ signature });\n if (signature.r < 0n || signature.r > Solidity.maxUint256)\n throw new InvalidRError({ value: signature.r });\n if (signature.s < 0n || signature.s > Solidity.maxUint256)\n throw new InvalidSError({ value: signature.s });\n if (typeof signature.yParity === 'number' &&\n signature.yParity !== 0 &&\n signature.yParity !== 1)\n throw new InvalidYParityError({ value: signature.yParity });\n}\n/**\n * Deserializes a {@link ox#Bytes.Bytes} signature into a structured {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Signature } from 'ox'\n *\n * Signature.fromBytes(new Uint8Array([128, 3, 131, ...]))\n * // @log: { r: 5231...n, s: 3522...n, yParity: 0 }\n * ```\n *\n * @param signature - The serialized signature.\n * @returns The deserialized {@link ox#Signature.Signature}.\n */\nexport function fromBytes(signature) {\n return fromHex(Hex.fromBytes(signature));\n}\n/**\n * Deserializes a {@link ox#Hex.Hex} signature into a structured {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * Signature.fromHex('0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c')\n * // @log: { r: 5231...n, s: 3522...n, yParity: 0 }\n * ```\n *\n * @param serialized - The serialized signature.\n * @returns The deserialized {@link ox#Signature.Signature}.\n */\nexport function fromHex(signature) {\n if (signature.length !== 130 && signature.length !== 132)\n throw new InvalidSerializedSizeError({ signature });\n const r = BigInt(Hex.slice(signature, 0, 32));\n const s = BigInt(Hex.slice(signature, 32, 64));\n const yParity = (() => {\n const yParity = Number(`0x${signature.slice(130)}`);\n if (Number.isNaN(yParity))\n return undefined;\n try {\n return vToYParity(yParity);\n }\n catch {\n throw new InvalidYParityError({ value: yParity });\n }\n })();\n if (typeof yParity === 'undefined')\n return {\n r,\n s,\n };\n return {\n r,\n s,\n yParity,\n };\n}\n/**\n * Extracts a {@link ox#Signature.Signature} from an arbitrary object that may include signature properties.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Signature } from 'ox'\n *\n * Signature.extract({\n * baz: 'barry',\n * foo: 'bar',\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1,\n * zebra: 'stripes',\n * })\n * // @log: {\n * // @log: r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * // @log: s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * // @log: yParity: 1\n * // @log: }\n * ```\n *\n * @param value - The arbitrary object to extract the signature from.\n * @returns The extracted {@link ox#Signature.Signature}.\n */\nexport function extract(value) {\n if (typeof value.r === 'undefined')\n return undefined;\n if (typeof value.s === 'undefined')\n return undefined;\n return from(value);\n}\n/**\n * Instantiates a typed {@link ox#Signature.Signature} object from a {@link ox#Signature.Signature}, {@link ox#Signature.Legacy}, {@link ox#Bytes.Bytes}, or {@link ox#Hex.Hex}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * Signature.from({\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1,\n * })\n * // @log: {\n * // @log: r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * // @log: s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * // @log: yParity: 1\n * // @log: }\n * ```\n *\n * @example\n * ### From Serialized\n *\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * Signature.from('0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db801')\n * // @log: {\n * // @log: r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * // @log: s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * // @log: yParity: 1,\n * // @log: }\n * ```\n *\n * @example\n * ### From Legacy\n *\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * Signature.from({\n * r: 47323457007453657207889730243826965761922296599680473886588287015755652701072n,\n * s: 57228803202727131502949358313456071280488184270258293674242124340113824882788n,\n * v: 27,\n * })\n * // @log: {\n * // @log: r: 47323457007453657207889730243826965761922296599680473886588287015755652701072n,\n * // @log: s: 57228803202727131502949358313456071280488184270258293674242124340113824882788n,\n * // @log: yParity: 0\n * // @log: }\n * ```\n *\n * @param signature - The signature value to instantiate.\n * @returns The instantiated {@link ox#Signature.Signature}.\n */\nexport function from(signature) {\n const signature_ = (() => {\n if (typeof signature === 'string')\n return fromHex(signature);\n if (signature instanceof Uint8Array)\n return fromBytes(signature);\n if (typeof signature.r === 'string')\n return fromRpc(signature);\n if (signature.v)\n return fromLegacy(signature);\n return {\n r: signature.r,\n s: signature.s,\n ...(typeof signature.yParity !== 'undefined'\n ? { yParity: signature.yParity }\n : {}),\n };\n })();\n assert(signature_);\n return signature_;\n}\n/**\n * Converts a DER-encoded signature to a {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Signature } from 'ox'\n *\n * const signature = Signature.fromDerBytes(new Uint8Array([132, 51, 23, ...]))\n * // @log: {\n * // @log: r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * // @log: s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * // @log: }\n * ```\n *\n * @param signature - The DER-encoded signature to convert.\n * @returns The {@link ox#Signature.Signature}.\n */\nexport function fromDerBytes(signature) {\n return fromDerHex(Hex.fromBytes(signature));\n}\n/**\n * Converts a DER-encoded signature to a {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.fromDerHex('0x304402206e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf02204a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db8')\n * // @log: {\n * // @log: r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * // @log: s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * // @log: }\n * ```\n *\n * @param signature - The DER-encoded signature to convert.\n * @returns The {@link ox#Signature.Signature}.\n */\nexport function fromDerHex(signature) {\n const { r, s } = secp256k1.Signature.fromDER(Hex.from(signature).slice(2));\n return { r, s };\n}\n/**\n * Converts a {@link ox#Signature.Legacy} into a {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const legacy = Signature.fromLegacy({ r: 1n, s: 2n, v: 28 })\n * // @log: { r: 1n, s: 2n, yParity: 1 }\n * ```\n *\n * @param signature - The {@link ox#Signature.Legacy} to convert.\n * @returns The converted {@link ox#Signature.Signature}.\n */\nexport function fromLegacy(signature) {\n return {\n r: signature.r,\n s: signature.s,\n yParity: vToYParity(signature.v),\n };\n}\n/**\n * Converts a {@link ox#Signature.Rpc} into a {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.fromRpc({\n * r: '0x635dc2033e60185bb36709c29c75d64ea51dfbd91c32ef4be198e4ceb169fb4d',\n * s: '0x50c2667ac4c771072746acfdcf1f1483336dcca8bd2df47cd83175dbe60f0540',\n * yParity: '0x0',\n * })\n * ```\n *\n * @param signature - The {@link ox#Signature.Rpc} to convert.\n * @returns The converted {@link ox#Signature.Signature}.\n */\nexport function fromRpc(signature) {\n const yParity = (() => {\n const v = signature.v ? Number(signature.v) : undefined;\n let yParity = signature.yParity ? Number(signature.yParity) : undefined;\n if (typeof v === 'number' && typeof yParity !== 'number')\n yParity = vToYParity(v);\n if (typeof yParity !== 'number')\n throw new InvalidYParityError({ value: signature.yParity });\n return yParity;\n })();\n return {\n r: BigInt(signature.r),\n s: BigInt(signature.s),\n yParity,\n };\n}\n/**\n * Converts a {@link ox#Signature.Tuple} to a {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.fromTuple(['0x01', '0x7b', '0x1c8'])\n * // @log: {\n * // @log: r: 123n,\n * // @log: s: 456n,\n * // @log: yParity: 1,\n * // @log: }\n * ```\n *\n * @param tuple - The {@link ox#Signature.Tuple} to convert.\n * @returns The {@link ox#Signature.Signature}.\n */\nexport function fromTuple(tuple) {\n const [yParity, r, s] = tuple;\n return from({\n r: r === '0x' ? 0n : BigInt(r),\n s: s === '0x' ? 0n : BigInt(s),\n yParity: yParity === '0x' ? 0 : Number(yParity),\n });\n}\n/**\n * Serializes a {@link ox#Signature.Signature} to {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.toBytes({\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1\n * })\n * // @log: Uint8Array [102, 16, 10, ...]\n * ```\n *\n * @param signature - The signature to serialize.\n * @returns The serialized signature.\n */\nexport function toBytes(signature) {\n return Bytes.fromHex(toHex(signature));\n}\n/**\n * Serializes a {@link ox#Signature.Signature} to {@link ox#Hex.Hex}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.toHex({\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1\n * })\n * // @log: '0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c'\n * ```\n *\n * @param signature - The signature to serialize.\n * @returns The serialized signature.\n */\nexport function toHex(signature) {\n assert(signature);\n const r = signature.r;\n const s = signature.s;\n const signature_ = Hex.concat(Hex.fromNumber(r, { size: 32 }), Hex.fromNumber(s, { size: 32 }), \n // If the signature is recovered, add the recovery byte to the signature.\n typeof signature.yParity === 'number'\n ? Hex.fromNumber(yParityToV(signature.yParity), { size: 1 })\n : '0x');\n return signature_;\n}\n/**\n * Converts a {@link ox#Signature.Signature} to DER-encoded format.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.from({\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * })\n *\n * const signature_der = Signature.toDerBytes(signature)\n * // @log: Uint8Array [132, 51, 23, ...]\n * ```\n *\n * @param signature - The signature to convert.\n * @returns The DER-encoded signature.\n */\nexport function toDerBytes(signature) {\n const sig = new secp256k1.Signature(signature.r, signature.s);\n return sig.toDERRawBytes();\n}\n/**\n * Converts a {@link ox#Signature.Signature} to DER-encoded format.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.from({\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * })\n *\n * const signature_der = Signature.toDerHex(signature)\n * // @log: '0x304402206e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf02204a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db8'\n * ```\n *\n * @param signature - The signature to convert.\n * @returns The DER-encoded signature.\n */\nexport function toDerHex(signature) {\n const sig = new secp256k1.Signature(signature.r, signature.s);\n return `0x${sig.toDERHex()}`;\n}\n/**\n * Converts a {@link ox#Signature.Signature} into a {@link ox#Signature.Legacy}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const legacy = Signature.toLegacy({ r: 1n, s: 2n, yParity: 1 })\n * // @log: { r: 1n, s: 2n, v: 28 }\n * ```\n *\n * @param signature - The {@link ox#Signature.Signature} to convert.\n * @returns The converted {@link ox#Signature.Legacy}.\n */\nexport function toLegacy(signature) {\n return {\n r: signature.r,\n s: signature.s,\n v: yParityToV(signature.yParity),\n };\n}\n/**\n * Converts a {@link ox#Signature.Signature} into a {@link ox#Signature.Rpc}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.toRpc({\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1\n * })\n * ```\n *\n * @param signature - The {@link ox#Signature.Signature} to convert.\n * @returns The converted {@link ox#Signature.Rpc}.\n */\nexport function toRpc(signature) {\n const { r, s, yParity } = signature;\n return {\n r: Hex.fromNumber(r, { size: 32 }),\n s: Hex.fromNumber(s, { size: 32 }),\n yParity: yParity === 0 ? '0x0' : '0x1',\n };\n}\n/**\n * Converts a {@link ox#Signature.Signature} to a serialized {@link ox#Signature.Tuple} to be used for signatures in Transaction Envelopes, EIP-7702 Authorization Lists, etc.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signatureTuple = Signature.toTuple({\n * r: 123n,\n * s: 456n,\n * yParity: 1,\n * })\n * // @log: [yParity: '0x01', r: '0x7b', s: '0x1c8']\n * ```\n *\n * @param signature - The {@link ox#Signature.Signature} to convert.\n * @returns The {@link ox#Signature.Tuple}.\n */\nexport function toTuple(signature) {\n const { r, s, yParity } = signature;\n return [\n yParity ? '0x01' : '0x',\n r === 0n ? '0x' : Hex.trimLeft(Hex.fromNumber(r)),\n s === 0n ? '0x' : Hex.trimLeft(Hex.fromNumber(s)),\n ];\n}\n/**\n * Validates a Signature. Returns `true` if the signature is valid, `false` otherwise.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const valid = Signature.validate({\n * r: -49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1,\n * })\n * // @log: false\n * ```\n *\n * @param signature - The signature object to assert.\n */\nexport function validate(signature, options = {}) {\n try {\n assert(signature, options);\n return true;\n }\n catch {\n return false;\n }\n}\n/**\n * Converts a ECDSA `v` value to a `yParity` value.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const yParity = Signature.vToYParity(28)\n * // @log: 1\n * ```\n *\n * @param v - The ECDSA `v` value to convert.\n * @returns The `yParity` value.\n */\nexport function vToYParity(v) {\n if (v === 0 || v === 27)\n return 0;\n if (v === 1 || v === 28)\n return 1;\n if (v >= 35)\n return v % 2 === 0 ? 1 : 0;\n throw new InvalidVError({ value: v });\n}\n/**\n * Converts a ECDSA `v` value to a `yParity` value.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const v = Signature.yParityToV(1)\n * // @log: 28\n * ```\n *\n * @param yParity - The ECDSA `yParity` value to convert.\n * @returns The `v` value.\n */\nexport function yParityToV(yParity) {\n if (yParity === 0)\n return 27;\n if (yParity === 1)\n return 28;\n throw new InvalidYParityError({ value: yParity });\n}\n/** Thrown when the serialized signature is of an invalid size. */\nexport class InvalidSerializedSizeError extends Errors.BaseError {\n constructor({ signature }) {\n super(`Value \\`${signature}\\` is an invalid signature size.`, {\n metaMessages: [\n 'Expected: 64 bytes or 65 bytes.',\n `Received ${Hex.size(Hex.from(signature))} bytes.`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Signature.InvalidSerializedSizeError'\n });\n }\n}\n/** Thrown when the signature is missing either an `r`, `s`, or `yParity` property. */\nexport class MissingPropertiesError extends Errors.BaseError {\n constructor({ signature }) {\n super(`Signature \\`${Json.stringify(signature)}\\` is missing either an \\`r\\`, \\`s\\`, or \\`yParity\\` property.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Signature.MissingPropertiesError'\n });\n }\n}\n/** Thrown when the signature has an invalid `r` value. */\nexport class InvalidRError extends Errors.BaseError {\n constructor({ value }) {\n super(`Value \\`${value}\\` is an invalid r value. r must be a positive integer less than 2^256.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Signature.InvalidRError'\n });\n }\n}\n/** Thrown when the signature has an invalid `s` value. */\nexport class InvalidSError extends Errors.BaseError {\n constructor({ value }) {\n super(`Value \\`${value}\\` is an invalid s value. s must be a positive integer less than 2^256.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Signature.InvalidSError'\n });\n }\n}\n/** Thrown when the signature has an invalid `yParity` value. */\nexport class InvalidYParityError extends Errors.BaseError {\n constructor({ value }) {\n super(`Value \\`${value}\\` is an invalid y-parity value. Y-parity must be 0 or 1.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Signature.InvalidYParityError'\n });\n }\n}\n/** Thrown when the signature has an invalid `v` value. */\nexport class InvalidVError extends Errors.BaseError {\n constructor({ value }) {\n super(`Value \\`${value}\\` is an invalid v value. v must be 27, 28 or >=35.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Signature.InvalidVError'\n });\n }\n}\n//# sourceMappingURL=Signature.js.map","import * as Hash from './Hash.js';\nimport * as Hex from './Hex.js';\nimport * as Rlp from './Rlp.js';\nimport * as Signature from './Signature.js';\n/**\n * Converts an [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) Authorization object into a typed {@link ox#Authorization.Authorization}.\n *\n * @example\n * An Authorization can be instantiated from an [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) Authorization tuple in object format.\n *\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorization = Authorization.from({\n * address: '0x1234567890abcdef1234567890abcdef12345678',\n * chainId: 1,\n * nonce: 69n,\n * })\n * ```\n *\n * @example\n * ### Attaching Signatures\n *\n * A {@link ox#Signature.Signature} can be attached with the `signature` option. The example below demonstrates signing\n * an Authorization with {@link ox#Secp256k1.(sign:function)}.\n *\n * ```ts twoslash\n * import { Authorization, Secp256k1 } from 'ox'\n *\n * const authorization = Authorization.from({\n * address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',\n * chainId: 1,\n * nonce: 40n,\n * })\n *\n * const signature = Secp256k1.sign({\n * payload: Authorization.getSignPayload(authorization),\n * privateKey: '0x...',\n * })\n *\n * const authorization_signed = Authorization.from(authorization, { signature }) // [!code focus]\n * ```\n *\n * @param authorization - An [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) Authorization tuple in object format.\n * @param options - Authorization options.\n * @returns The {@link ox#Authorization.Authorization}.\n */\nexport function from(authorization, options = {}) {\n if (typeof authorization.chainId === 'string')\n return fromRpc(authorization);\n return { ...authorization, ...options.signature };\n}\n/**\n * Converts an {@link ox#Authorization.Rpc} to an {@link ox#Authorization.Authorization}.\n *\n * @example\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorization = Authorization.fromRpc({\n * address: '0x0000000000000000000000000000000000000000',\n * chainId: '0x1',\n * nonce: '0x1',\n * r: '0x635dc2033e60185bb36709c29c75d64ea51dfbd91c32ef4be198e4ceb169fb4d',\n * s: '0x50c2667ac4c771072746acfdcf1f1483336dcca8bd2df47cd83175dbe60f0540',\n * yParity: '0x0',\n * })\n * ```\n *\n * @param authorization - The RPC-formatted Authorization.\n * @returns A signed {@link ox#Authorization.Authorization}.\n */\nexport function fromRpc(authorization) {\n const { address, chainId, nonce } = authorization;\n const signature = Signature.extract(authorization);\n return {\n address,\n chainId: Number(chainId),\n nonce: BigInt(nonce),\n ...signature,\n };\n}\n/**\n * Converts an {@link ox#Authorization.ListRpc} to an {@link ox#Authorization.List}.\n *\n * @example\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorizationList = Authorization.fromRpcList([{\n * address: '0x0000000000000000000000000000000000000000',\n * chainId: '0x1',\n * nonce: '0x1',\n * r: '0x635dc2033e60185bb36709c29c75d64ea51dfbd91c32ef4be198e4ceb169fb4d',\n * s: '0x50c2667ac4c771072746acfdcf1f1483336dcca8bd2df47cd83175dbe60f0540',\n * yParity: '0x0',\n * }])\n * ```\n *\n * @param authorizationList - The RPC-formatted Authorization list.\n * @returns A signed {@link ox#Authorization.List}.\n */\nexport function fromRpcList(authorizationList) {\n return authorizationList.map(fromRpc);\n}\n/**\n * Converts an {@link ox#Authorization.Tuple} to an {@link ox#Authorization.Authorization}.\n *\n * @example\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorization = Authorization.fromTuple([\n * '0x1',\n * '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',\n * '0x3'\n * ])\n * // @log: {\n * // @log: address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',\n * // @log: chainId: 1,\n * // @log: nonce: 3n\n * // @log: }\n * ```\n *\n * @example\n * It is also possible to append a Signature tuple to the end of an Authorization tuple.\n *\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorization = Authorization.fromTuple([\n * '0x1',\n * '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',\n * '0x3',\n * '0x1',\n * '0x68a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b90',\n * '0x7e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064',\n * ])\n * // @log: {\n * // @log: address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',\n * // @log: chainId: 1,\n * // @log: nonce: 3n\n * // @log: r: BigInt('0x68a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b90'),\n * // @log: s: BigInt('0x7e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064'),\n * // @log: yParity: 0,\n * // @log: }\n * ```\n *\n * @param tuple - The [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) Authorization tuple.\n * @returns The {@link ox#Authorization.Authorization}.\n */\nexport function fromTuple(tuple) {\n const [chainId, address, nonce, yParity, r, s] = tuple;\n let args = {\n address,\n chainId: chainId === '0x' ? 0 : Number(chainId),\n nonce: nonce === '0x' ? 0n : BigInt(nonce),\n };\n if (yParity && r && s)\n args = { ...args, ...Signature.fromTuple([yParity, r, s]) };\n return from(args);\n}\n/**\n * Converts an {@link ox#Authorization.TupleList} to an {@link ox#Authorization.List}.\n *\n * @example\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorizationList = Authorization.fromTupleList([\n * ['0x1', '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c', '0x3'],\n * ['0x3', '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c', '0x14'],\n * ])\n * // @log: [\n * // @log: {\n * // @log: address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',\n * // @log: chainId: 1,\n * // @log: nonce: 3n,\n * // @log: },\n * // @log: {\n * // @log: address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',\n * // @log: chainId: 3,\n * // @log: nonce: 20n,\n * // @log: },\n * // @log: ]\n * ```\n *\n * @example\n * It is also possible to append a Signature tuple to the end of an Authorization tuple.\n *\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorizationList = Authorization.fromTupleList([\n * ['0x1', '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c', '0x3', '0x1', '0x68a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b90', '0x7e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064'],\n * ['0x3', '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c', '0x14', '0x1', '0x68a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b90', '0x7e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064'],\n * ])\n * // @log: [\n * // @log: {\n * // @log: address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',\n * // @log: chainId: 1,\n * // @log: nonce: 3n,\n * // @log: r: BigInt('0x68a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b90'),\n * // @log: s: BigInt('0x7e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064'),\n * // @log: yParity: 0,\n * // @log: },\n * // @log: {\n * // @log: address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',\n * // @log: chainId: 3,\n * // @log: nonce: 20n,\n * // @log: r: BigInt('0x68a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b90'),\n * // @log: s: BigInt('0x7e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064'),\n * // @log: yParity: 0,\n * // @log: },\n * // @log: ]\n * ```\n *\n * @param tupleList - The [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) Authorization tuple list.\n * @returns An {@link ox#Authorization.List}.\n */\nexport function fromTupleList(tupleList) {\n const list = [];\n for (const tuple of tupleList)\n list.push(fromTuple(tuple));\n return list;\n}\n/**\n * Computes the sign payload for an {@link ox#Authorization.Authorization} in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\n *\n * @example\n * The example below demonstrates computing the sign payload for an {@link ox#Authorization.Authorization}. This payload\n * can then be passed to signing functions like {@link ox#Secp256k1.(sign:function)}.\n *\n * ```ts twoslash\n * import { Authorization, Secp256k1 } from 'ox'\n *\n * const authorization = Authorization.from({\n * address: '0x1234567890abcdef1234567890abcdef12345678',\n * chainId: 1,\n * nonce: 69n,\n * })\n *\n * const payload = Authorization.getSignPayload(authorization) // [!code focus]\n *\n * const signature = Secp256k1.sign({\n * payload,\n * privateKey: '0x...',\n * })\n * ```\n *\n * @param authorization - The {@link ox#Authorization.Authorization}.\n * @returns The sign payload.\n */\nexport function getSignPayload(authorization) {\n return hash(authorization, { presign: true });\n}\n/**\n * Computes the hash for an {@link ox#Authorization.Authorization} in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\n *\n * @example\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorization = Authorization.from({\n * address: '0x1234567890abcdef1234567890abcdef12345678',\n * chainId: 1,\n * nonce: 69n,\n * })\n *\n * const hash = Authorization.hash(authorization) // [!code focus]\n * ```\n *\n * @param authorization - The {@link ox#Authorization.Authorization}.\n * @returns The hash.\n */\nexport function hash(authorization, options = {}) {\n const { presign } = options;\n return Hash.keccak256(Hex.concat('0x05', Rlp.fromHex(toTuple(presign\n ? {\n address: authorization.address,\n chainId: authorization.chainId,\n nonce: authorization.nonce,\n }\n : authorization))));\n}\n/**\n * Converts an {@link ox#Authorization.Authorization} to an {@link ox#Authorization.Rpc}.\n *\n * @example\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorization = Authorization.toRpc({\n * address: '0x0000000000000000000000000000000000000000',\n * chainId: 1,\n * nonce: 1n,\n * r: 44944627813007772897391531230081695102703289123332187696115181104739239197517n,\n * s: 36528503505192438307355164441104001310566505351980369085208178712678799181120n,\n * yParity: 0,\n * })\n * ```\n *\n * @param authorization - An Authorization.\n * @returns An RPC-formatted Authorization.\n */\nexport function toRpc(authorization) {\n const { address, chainId, nonce, ...signature } = authorization;\n return {\n address,\n chainId: Hex.fromNumber(chainId),\n nonce: Hex.fromNumber(nonce),\n ...Signature.toRpc(signature),\n };\n}\n/**\n * Converts an {@link ox#Authorization.List} to an {@link ox#Authorization.ListRpc}.\n *\n * @example\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorization = Authorization.toRpcList([{\n * address: '0x0000000000000000000000000000000000000000',\n * chainId: 1,\n * nonce: 1n,\n * r: 44944627813007772897391531230081695102703289123332187696115181104739239197517n,\n * s: 36528503505192438307355164441104001310566505351980369085208178712678799181120n,\n * yParity: 0,\n * }])\n * ```\n *\n * @param authorizationList - An Authorization List.\n * @returns An RPC-formatted Authorization List.\n */\nexport function toRpcList(authorizationList) {\n return authorizationList.map(toRpc);\n}\n/**\n * Converts an {@link ox#Authorization.Authorization} to an {@link ox#Authorization.Tuple}.\n *\n * @example\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorization = Authorization.from({\n * address: '0x1234567890abcdef1234567890abcdef12345678',\n * chainId: 1,\n * nonce: 69n,\n * })\n *\n * const tuple = Authorization.toTuple(authorization) // [!code focus]\n * // @log: [\n * // @log: address: '0x1234567890abcdef1234567890abcdef12345678',\n * // @log: chainId: 1,\n * // @log: nonce: 69n,\n * // @log: ]\n * ```\n *\n * @param authorization - The {@link ox#Authorization.Authorization}.\n * @returns An [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) Authorization tuple.\n */\nexport function toTuple(authorization) {\n const { address, chainId, nonce } = authorization;\n const signature = Signature.extract(authorization);\n return [\n chainId ? Hex.fromNumber(chainId) : '0x',\n address,\n nonce ? Hex.fromNumber(nonce) : '0x',\n ...(signature ? Signature.toTuple(signature) : []),\n ];\n}\n/**\n * Converts an {@link ox#Authorization.List} to an {@link ox#Authorization.TupleList}.\n *\n * @example\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorization_1 = Authorization.from({\n * address: '0x1234567890abcdef1234567890abcdef12345678',\n * chainId: 1,\n * nonce: 69n,\n * })\n * const authorization_2 = Authorization.from({\n * address: '0x1234567890abcdef1234567890abcdef12345678',\n * chainId: 3,\n * nonce: 20n,\n * })\n *\n * const tuple = Authorization.toTupleList([authorization_1, authorization_2]) // [!code focus]\n * // @log: [\n * // @log: [\n * // @log: address: '0x1234567890abcdef1234567890abcdef12345678',\n * // @log: chainId: 1,\n * // @log: nonce: 69n,\n * // @log: ],\n * // @log: [\n * // @log: address: '0x1234567890abcdef1234567890abcdef12345678',\n * // @log: chainId: 3,\n * // @log: nonce: 20n,\n * // @log: ],\n * // @log: ]\n * ```\n *\n * @param list - An {@link ox#Authorization.List}.\n * @returns An [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) Authorization tuple list.\n */\nexport function toTupleList(list) {\n if (!list || list.length === 0)\n return [];\n const tupleList = [];\n for (const authorization of list)\n tupleList.push(toTuple(authorization));\n return tupleList;\n}\n//# sourceMappingURL=Authorization.js.map","import * as AbiParameters from '../core/AbiParameters.js';\nimport * as Authorization from '../core/Authorization.js';\nimport * as Errors from '../core/Errors.js';\nimport * as Hex from '../core/Hex.js';\nimport * as Secp256k1 from '../core/Secp256k1.js';\nimport * as Signature from '../core/Signature.js';\n/**\n * Magic bytes used to identify ERC-8010 wrapped signatures.\n */\nexport const magicBytes = '0x8010801080108010801080108010801080108010801080108010801080108010';\n/** Suffix ABI parameters for the ERC-8010 wrapped signature. */\nexport const suffixParameters = AbiParameters.from('(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data');\n/**\n * Asserts that the wrapped signature is valid.\n *\n * @example\n * ```ts twoslash\n * import { SignatureErc8010 } from 'ox/erc8010'\n *\n * SignatureErc8010.assert('0xdeadbeef')\n * // @error: InvalidWrappedSignatureError: Value `0xdeadbeef` is an invalid ERC-8010 wrapped signature.\n * ```\n *\n * @param value - The value to assert.\n */\nexport function assert(value) {\n if (typeof value === 'string') {\n if (Hex.slice(value, -32) !== magicBytes)\n throw new InvalidWrappedSignatureError(value);\n }\n else\n Signature.assert(value.authorization);\n}\n/**\n * Parses an [ERC-8010 wrapped signature](https://github.com/jxom/ERCs/blob/16f7e3891fff2e1e9c25dea0485497739db8a816/ERCS/erc-8010.md) into its constituent parts.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Secp256k1 } from 'ox'\n * import { SignatureErc8010 } from 'ox/erc8010' // [!code focus]\n *\n * const signature = Secp256k1.sign({\n * payload: '0x...',\n * privateKey: '0x...',\n * })\n *\n * // Instantiate from serialized format. // [!code focus]\n * const wrapped = SignatureErc8010.from('0x...') // [!code focus]\n * // @log: { authorization: { ... }, data: '0x...', signature: { ... } } // [!code focus]\n *\n * // Instantiate from constituent parts. // [!code focus]\n * const wrapped = SignatureErc8010.from({ // [!code focus]\n * authorization: { ... }, // [!code focus]\n * data: '0x...', // [!code focus]\n * signature, // [!code focus]\n * })\n * // @log: { authorization: { ... }, data: '0x...', signature: { ... } }\n * ```\n *\n * @param value - Value to parse.\n * @returns Parsed value.\n */\nexport function from(value) {\n if (typeof value === 'string')\n return unwrap(value);\n return value;\n}\n/**\n * Unwraps an [ERC-8010 wrapped signature](https://github.com/jxom/ERCs/blob/16f7e3891fff2e1e9c25dea0485497739db8a816/ERCS/erc-8010.md) into its constituent parts.\n *\n * @example\n * ```ts twoslash\n * import { SignatureErc8010 } from 'ox/erc8010'\n *\n * const { authorization, data, signature } = SignatureErc8010.unwrap('0x...')\n * ```\n *\n * @param wrapped - Wrapped signature to unwrap.\n * @returns Unwrapped signature.\n */\nexport function unwrap(wrapped) {\n assert(wrapped);\n const suffixLength = Hex.toNumber(Hex.slice(wrapped, -64, -32));\n const suffix = Hex.slice(wrapped, -suffixLength - 64, -64);\n const signature = Hex.slice(wrapped, 0, -suffixLength - 64);\n const [auth, to, data] = AbiParameters.decode(suffixParameters, suffix);\n const authorization = Authorization.from({\n address: auth.delegation,\n chainId: Number(auth.chainId),\n nonce: auth.nonce,\n yParity: auth.yParity,\n r: auth.r,\n s: auth.s,\n });\n return {\n authorization,\n signature,\n ...(data && data !== '0x' ? { data, to } : {}),\n };\n}\n/**\n * Wraps a signature into [ERC-8010 format](https://github.com/jxom/ERCs/blob/16f7e3891fff2e1e9c25dea0485497739db8a816/ERCS/erc-8010.md).\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Secp256k1, Signature } from 'ox'\n * import { SignatureErc8010 } from 'ox/erc8010' // [!code focus]\n *\n * const signature = Secp256k1.sign({\n * payload: '0x...',\n * privateKey: '0x...',\n * })\n *\n * const wrapped = SignatureErc8010.wrap({ // [!code focus]\n * authorization: { ... }, // [!code focus]\n * data: '0xdeadbeef', // [!code focus]\n * signature: Signature.toHex(signature), // [!code focus]\n * }) // [!code focus]\n * ```\n *\n * @param value - Values to wrap.\n * @returns Wrapped signature.\n */\nexport function wrap(value) {\n const { data, signature } = value;\n assert(value);\n const self = Secp256k1.recoverAddress({\n payload: Authorization.getSignPayload(value.authorization),\n signature: Signature.from(value.authorization),\n });\n const suffix = AbiParameters.encode(suffixParameters, [\n {\n ...value.authorization,\n delegation: value.authorization.address,\n chainId: BigInt(value.authorization.chainId),\n },\n value.to ?? self,\n data ?? '0x',\n ]);\n const suffixLength = Hex.fromNumber(Hex.size(suffix), { size: 32 });\n return Hex.concat(signature, suffix, suffixLength, magicBytes);\n}\n/**\n * Validates a wrapped signature. Returns `true` if the wrapped signature is valid, `false` otherwise.\n *\n * @example\n * ```ts twoslash\n * import { SignatureErc8010 } from 'ox/erc8010'\n *\n * const valid = SignatureErc8010.validate('0xdeadbeef')\n * // @log: false\n * ```\n *\n * @param value - The value to validate.\n * @returns `true` if the value is valid, `false` otherwise.\n */\nexport function validate(value) {\n try {\n assert(value);\n return true;\n }\n catch {\n return false;\n }\n}\n/** Thrown when the ERC-8010 wrapped signature is invalid. */\nexport class InvalidWrappedSignatureError extends Errors.BaseError {\n constructor(wrapped) {\n super(`Value \\`${wrapped}\\` is an invalid ERC-8010 wrapped signature.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'SignatureErc8010.InvalidWrappedSignatureError'\n });\n }\n}\n//# sourceMappingURL=SignatureErc8010.js.map","import { SignatureErc6492 } from 'ox/erc6492';\nimport { SignatureErc8010 } from 'ox/erc8010';\nimport { erc1271Abi, erc6492SignatureValidatorAbi, multicall3Abi, } from '../../constants/abis.js';\nimport { erc6492SignatureValidatorByteCode, multicall3Bytecode, } from '../../constants/contracts.js';\nimport { CallExecutionError, ContractFunctionExecutionError, } from '../../errors/contract.js';\nimport { encodeDeployData, } from '../../utils/abi/encodeDeployData.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getAddress, } from '../../utils/address/getAddress.js';\nimport { isAddressEqual, } from '../../utils/address/isAddressEqual.js';\nimport { verifyAuthorization } from '../../utils/authorization/verifyAuthorization.js';\nimport { concatHex } from '../../utils/data/concat.js';\nimport { isHex } from '../../utils/data/isHex.js';\nimport { hexToBool } from '../../utils/encoding/fromHex.js';\nimport { bytesToHex, numberToHex, } from '../../utils/encoding/toHex.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { recoverAddress, } from '../../utils/signature/recoverAddress.js';\nimport { serializeSignature, } from '../../utils/signature/serializeSignature.js';\nimport { call } from './call.js';\nimport { getCode } from './getCode.js';\nimport { readContract } from './readContract.js';\n/**\n * Verifies a message hash onchain using ERC-6492.\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifyHashParameters}\n * @returns Whether or not the signature is valid. {@link VerifyHashReturnType}\n */\nexport async function verifyHash(client, parameters) {\n const { address, chain = client.chain, hash, erc6492VerifierAddress: verifierAddress = parameters.universalSignatureVerifierAddress ??\n chain?.contracts?.erc6492Verifier?.address, multicallAddress = parameters.multicallAddress ??\n chain?.contracts?.multicall3?.address, } = parameters;\n if (chain?.verifyHash)\n return await chain.verifyHash(client, parameters);\n const signature = (() => {\n const signature = parameters.signature;\n if (isHex(signature))\n return signature;\n if (typeof signature === 'object' && 'r' in signature && 's' in signature)\n return serializeSignature(signature);\n return bytesToHex(signature);\n })();\n try {\n if (SignatureErc8010.validate(signature))\n return await verifyErc8010(client, {\n ...parameters,\n multicallAddress,\n signature,\n });\n return await verifyErc6492(client, {\n ...parameters,\n verifierAddress,\n signature,\n });\n }\n catch (error) {\n // Fallback attempt to verify the signature via ECDSA recovery.\n try {\n const verified = isAddressEqual(getAddress(address), await recoverAddress({ hash, signature }));\n if (verified)\n return true;\n }\n catch { }\n if (error instanceof VerificationError) {\n // if the execution fails, the signature was not valid and an internal method inside of the validator reverted\n // this can happen for many reasons, for example if signer can not be recovered from the signature\n // or if the signature has no valid format\n return false;\n }\n throw error;\n }\n}\n/** @internal */\nexport async function verifyErc8010(client, parameters) {\n const { address, blockNumber, blockTag, hash, multicallAddress } = parameters;\n const { authorization: authorization_ox, data: initData, signature, to, } = SignatureErc8010.unwrap(parameters.signature);\n // Check if already delegated\n const code = await getCode(client, {\n address,\n blockNumber,\n blockTag,\n });\n // If already delegated, perform standard ERC-1271 verification.\n if (code === concatHex(['0xef0100', authorization_ox.address]))\n return await verifyErc1271(client, {\n address,\n blockNumber,\n blockTag,\n hash,\n signature,\n });\n const authorization = {\n address: authorization_ox.address,\n chainId: Number(authorization_ox.chainId),\n nonce: Number(authorization_ox.nonce),\n r: numberToHex(authorization_ox.r, { size: 32 }),\n s: numberToHex(authorization_ox.s, { size: 32 }),\n yParity: authorization_ox.yParity,\n };\n const valid = await verifyAuthorization({\n address,\n authorization,\n });\n if (!valid)\n throw new VerificationError();\n // Deployless verification.\n const results = await getAction(client, readContract, 'readContract')({\n ...(multicallAddress\n ? { address: multicallAddress }\n : { code: multicall3Bytecode }),\n authorizationList: [authorization],\n abi: multicall3Abi,\n blockNumber,\n blockTag: 'pending',\n functionName: 'aggregate3',\n args: [\n [\n ...(initData\n ? [\n {\n allowFailure: true,\n target: to ?? address,\n callData: initData,\n },\n ]\n : []),\n {\n allowFailure: true,\n target: address,\n callData: encodeFunctionData({\n abi: erc1271Abi,\n functionName: 'isValidSignature',\n args: [hash, signature],\n }),\n },\n ],\n ],\n });\n const data = results[results.length - 1]?.returnData;\n if (data?.startsWith('0x1626ba7e'))\n return true;\n throw new VerificationError();\n}\n/** @internal */\n// biome-ignore lint/correctness/noUnusedVariables: _\nasync function verifyErc6492(client, parameters) {\n const { address, factory, factoryData, hash, signature, verifierAddress, ...rest } = parameters;\n const wrappedSignature = await (async () => {\n // If no `factory` or `factoryData` is provided, it is assumed that the\n // address is not a Smart Account, or the Smart Account is already deployed.\n if (!factory && !factoryData)\n return signature;\n // If the signature is already wrapped, return the signature.\n if (SignatureErc6492.validate(signature))\n return signature;\n // If the Smart Account is not deployed, wrap the signature with a 6492 wrapper\n // to perform counterfactual validation.\n return SignatureErc6492.wrap({\n data: factoryData,\n signature,\n to: factory,\n });\n })();\n const args = verifierAddress\n ? {\n to: verifierAddress,\n data: encodeFunctionData({\n abi: erc6492SignatureValidatorAbi,\n functionName: 'isValidSig',\n args: [address, hash, wrappedSignature],\n }),\n ...rest,\n }\n : {\n data: encodeDeployData({\n abi: erc6492SignatureValidatorAbi,\n args: [address, hash, wrappedSignature],\n bytecode: erc6492SignatureValidatorByteCode,\n }),\n ...rest,\n };\n const { data } = await getAction(client, call, 'call')(args).catch((error) => {\n if (error instanceof CallExecutionError)\n throw new VerificationError();\n throw error;\n });\n if (hexToBool(data ?? '0x0'))\n return true;\n throw new VerificationError();\n}\n/** @internal */\nexport async function verifyErc1271(client, parameters) {\n const { address, blockNumber, blockTag, hash, signature } = parameters;\n const result = await getAction(client, readContract, 'readContract')({\n address,\n abi: erc1271Abi,\n args: [hash, signature],\n blockNumber,\n blockTag,\n functionName: 'isValidSignature',\n }).catch((error) => {\n if (error instanceof ContractFunctionExecutionError)\n throw new VerificationError();\n throw error;\n });\n if (result.startsWith('0x1626ba7e'))\n return true;\n throw new VerificationError();\n}\nclass VerificationError extends Error {\n}\n//# sourceMappingURL=verifyHash.js.map","import { getAddress } from '../address/getAddress.js';\nimport { isAddressEqual, } from '../address/isAddressEqual.js';\nimport { recoverAuthorizationAddress, } from './recoverAuthorizationAddress.js';\n/**\n * Verify that an Authorization object was signed by the provided address.\n *\n * - Docs {@link https://viem.sh/docs/utilities/verifyAuthorization}\n *\n * @param parameters - {@link VerifyAuthorizationParameters}\n * @returns Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\n */\nexport async function verifyAuthorization({ address, authorization, signature, }) {\n return isAddressEqual(getAddress(address), await recoverAuthorizationAddress({\n authorization,\n signature,\n }));\n}\n//# sourceMappingURL=verifyAuthorization.js.map","/**\n * @description Parses EIP-4361 formatted message into message fields object.\n *\n * @see https://eips.ethereum.org/EIPS/eip-4361\n *\n * @returns EIP-4361 fields object\n */\nexport function parseSiweMessage(message) {\n const { scheme, statement, ...prefix } = (message.match(prefixRegex)\n ?.groups ?? {});\n const { chainId, expirationTime, issuedAt, notBefore, requestId, ...suffix } = (message.match(suffixRegex)?.groups ?? {});\n const resources = message.split('Resources:')[1]?.split('\\n- ').slice(1);\n return {\n ...prefix,\n ...suffix,\n ...(chainId ? { chainId: Number(chainId) } : {}),\n ...(expirationTime ? { expirationTime: new Date(expirationTime) } : {}),\n ...(issuedAt ? { issuedAt: new Date(issuedAt) } : {}),\n ...(notBefore ? { notBefore: new Date(notBefore) } : {}),\n ...(requestId ? { requestId } : {}),\n ...(resources ? { resources } : {}),\n ...(scheme ? { scheme } : {}),\n ...(statement ? { statement } : {}),\n };\n}\n// https://regexr.com/80gdj\nconst prefixRegex = /^(?:(?[a-zA-Z][a-zA-Z0-9+-.]*):\\/\\/)?(?[a-zA-Z0-9+-.]*(?::[0-9]{1,5})?) (?:wants you to sign in with your Ethereum account:\\n)(?
0x[a-fA-F0-9]{40})\\n\\n(?:(?.*)\\n\\n)?/;\n// https://regexr.com/80gf9\nconst suffixRegex = /(?:URI: (?.+))\\n(?:Version: (?.+))\\n(?:Chain ID: (?\\d+))\\n(?:Nonce: (?[a-zA-Z0-9]+))\\n(?:Issued At: (?.+))(?:\\nExpiration Time: (?.+))?(?:\\nNot Before: (?.+))?(?:\\nRequest ID: (?.+))?/;\n//# sourceMappingURL=parseSiweMessage.js.map","import { getEnsAddress, } from '../../actions/ens/getEnsAddress.js';\nimport { getEnsAvatar, } from '../../actions/ens/getEnsAvatar.js';\nimport { getEnsName, } from '../../actions/ens/getEnsName.js';\nimport { getEnsResolver, } from '../../actions/ens/getEnsResolver.js';\nimport { getEnsText, } from '../../actions/ens/getEnsText.js';\nimport { call, } from '../../actions/public/call.js';\nimport { createAccessList, } from '../../actions/public/createAccessList.js';\nimport { createBlockFilter, } from '../../actions/public/createBlockFilter.js';\nimport { createContractEventFilter, } from '../../actions/public/createContractEventFilter.js';\nimport { createEventFilter, } from '../../actions/public/createEventFilter.js';\nimport { createPendingTransactionFilter, } from '../../actions/public/createPendingTransactionFilter.js';\nimport { estimateContractGas, } from '../../actions/public/estimateContractGas.js';\nimport { estimateFeesPerGas, } from '../../actions/public/estimateFeesPerGas.js';\nimport { estimateGas, } from '../../actions/public/estimateGas.js';\nimport { estimateMaxPriorityFeePerGas, } from '../../actions/public/estimateMaxPriorityFeePerGas.js';\nimport { fillTransaction, } from '../../actions/public/fillTransaction.js';\nimport { getBalance, } from '../../actions/public/getBalance.js';\nimport { getBlobBaseFee, } from '../../actions/public/getBlobBaseFee.js';\nimport { getBlock, } from '../../actions/public/getBlock.js';\nimport { getBlockNumber, } from '../../actions/public/getBlockNumber.js';\nimport { getBlockTransactionCount, } from '../../actions/public/getBlockTransactionCount.js';\nimport { getChainId, } from '../../actions/public/getChainId.js';\nimport { getCode, } from '../../actions/public/getCode.js';\nimport { getContractEvents, } from '../../actions/public/getContractEvents.js';\nimport { getEip712Domain, } from '../../actions/public/getEip712Domain.js';\nimport { getFeeHistory, } from '../../actions/public/getFeeHistory.js';\nimport { getFilterChanges, } from '../../actions/public/getFilterChanges.js';\nimport { getFilterLogs, } from '../../actions/public/getFilterLogs.js';\nimport { getGasPrice, } from '../../actions/public/getGasPrice.js';\nimport { getLogs, } from '../../actions/public/getLogs.js';\nimport { getProof, } from '../../actions/public/getProof.js';\nimport { getStorageAt, } from '../../actions/public/getStorageAt.js';\nimport { getTransaction, } from '../../actions/public/getTransaction.js';\nimport { getTransactionConfirmations, } from '../../actions/public/getTransactionConfirmations.js';\nimport { getTransactionCount, } from '../../actions/public/getTransactionCount.js';\nimport { getTransactionReceipt, } from '../../actions/public/getTransactionReceipt.js';\nimport { multicall, } from '../../actions/public/multicall.js';\nimport { readContract, } from '../../actions/public/readContract.js';\nimport { simulateBlocks, } from '../../actions/public/simulateBlocks.js';\nimport { simulateCalls, } from '../../actions/public/simulateCalls.js';\nimport { simulateContract, } from '../../actions/public/simulateContract.js';\nimport { uninstallFilter, } from '../../actions/public/uninstallFilter.js';\nimport { verifyHash, } from '../../actions/public/verifyHash.js';\nimport { verifyMessage, } from '../../actions/public/verifyMessage.js';\nimport { verifyTypedData, } from '../../actions/public/verifyTypedData.js';\nimport { waitForTransactionReceipt, } from '../../actions/public/waitForTransactionReceipt.js';\nimport { watchBlockNumber, } from '../../actions/public/watchBlockNumber.js';\nimport { watchBlocks, } from '../../actions/public/watchBlocks.js';\nimport { watchContractEvent, } from '../../actions/public/watchContractEvent.js';\nimport { watchEvent, } from '../../actions/public/watchEvent.js';\nimport { watchPendingTransactions, } from '../../actions/public/watchPendingTransactions.js';\nimport { verifySiweMessage, } from '../../actions/siwe/verifySiweMessage.js';\nimport { prepareTransactionRequest, } from '../../actions/wallet/prepareTransactionRequest.js';\nimport { sendRawTransaction, } from '../../actions/wallet/sendRawTransaction.js';\nimport { sendRawTransactionSync, } from '../../actions/wallet/sendRawTransactionSync.js';\nexport function publicActions(client) {\n return {\n call: (args) => call(client, args),\n createAccessList: (args) => createAccessList(client, args),\n createBlockFilter: () => createBlockFilter(client),\n createContractEventFilter: (args) => createContractEventFilter(client, args),\n createEventFilter: (args) => createEventFilter(client, args),\n createPendingTransactionFilter: () => createPendingTransactionFilter(client),\n estimateContractGas: (args) => estimateContractGas(client, args),\n estimateGas: (args) => estimateGas(client, args),\n getBalance: (args) => getBalance(client, args),\n getBlobBaseFee: () => getBlobBaseFee(client),\n getBlock: (args) => getBlock(client, args),\n getBlockNumber: (args) => getBlockNumber(client, args),\n getBlockTransactionCount: (args) => getBlockTransactionCount(client, args),\n getBytecode: (args) => getCode(client, args),\n getChainId: () => getChainId(client),\n getCode: (args) => getCode(client, args),\n getContractEvents: (args) => getContractEvents(client, args),\n getEip712Domain: (args) => getEip712Domain(client, args),\n getEnsAddress: (args) => getEnsAddress(client, args),\n getEnsAvatar: (args) => getEnsAvatar(client, args),\n getEnsName: (args) => getEnsName(client, args),\n getEnsResolver: (args) => getEnsResolver(client, args),\n getEnsText: (args) => getEnsText(client, args),\n getFeeHistory: (args) => getFeeHistory(client, args),\n estimateFeesPerGas: (args) => estimateFeesPerGas(client, args),\n getFilterChanges: (args) => getFilterChanges(client, args),\n getFilterLogs: (args) => getFilterLogs(client, args),\n getGasPrice: () => getGasPrice(client),\n getLogs: (args) => getLogs(client, args),\n getProof: (args) => getProof(client, args),\n estimateMaxPriorityFeePerGas: (args) => estimateMaxPriorityFeePerGas(client, args),\n fillTransaction: (args) => fillTransaction(client, args),\n getStorageAt: (args) => getStorageAt(client, args),\n getTransaction: (args) => getTransaction(client, args),\n getTransactionConfirmations: (args) => getTransactionConfirmations(client, args),\n getTransactionCount: (args) => getTransactionCount(client, args),\n getTransactionReceipt: (args) => getTransactionReceipt(client, args),\n multicall: (args) => multicall(client, args),\n prepareTransactionRequest: (args) => prepareTransactionRequest(client, args),\n readContract: (args) => readContract(client, args),\n sendRawTransaction: (args) => sendRawTransaction(client, args),\n sendRawTransactionSync: (args) => sendRawTransactionSync(client, args),\n simulate: (args) => simulateBlocks(client, args),\n simulateBlocks: (args) => simulateBlocks(client, args),\n simulateCalls: (args) => simulateCalls(client, args),\n simulateContract: (args) => simulateContract(client, args),\n verifyHash: (args) => verifyHash(client, args),\n verifyMessage: (args) => verifyMessage(client, args),\n verifySiweMessage: (args) => verifySiweMessage(client, args),\n verifyTypedData: (args) => verifyTypedData(client, args),\n uninstallFilter: (args) => uninstallFilter(client, args),\n waitForTransactionReceipt: (args) => waitForTransactionReceipt(client, args),\n watchBlocks: (args) => watchBlocks(client, args),\n watchBlockNumber: (args) => watchBlockNumber(client, args),\n watchContractEvent: (args) => watchContractEvent(client, args),\n watchEvent: (args) => watchEvent(client, args),\n watchPendingTransactions: (args) => watchPendingTransactions(client, args),\n };\n}\n//# sourceMappingURL=public.js.map","import { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js';\n/**\n * Creates a [`Filter`](https://viem.sh/docs/glossary/types#filter) to listen for new block hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).\n *\n * - Docs: https://viem.sh/docs/actions/public/createBlockFilter\n * - JSON-RPC Methods: [`eth_newBlockFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newBlockFilter)\n *\n * @param client - Client to use\n * @returns [`Filter`](https://viem.sh/docs/glossary/types#filter). {@link CreateBlockFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createBlockFilter } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createBlockFilter(client)\n * // { id: \"0x345a6572337856574a76364e457a4366\", type: 'block' }\n */\nexport async function createBlockFilter(client) {\n const getRequest = createFilterRequestScope(client, {\n method: 'eth_newBlockFilter',\n });\n const id = await client.request({\n method: 'eth_newBlockFilter',\n });\n return { id, request: getRequest(id), type: 'block' };\n}\n//# sourceMappingURL=createBlockFilter.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Returns the balance of an address in wei.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBalance\n * - JSON-RPC Methods: [`eth_getBalance`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getbalance)\n *\n * You can convert the balance to ether units with [`formatEther`](https://viem.sh/docs/utilities/formatEther).\n *\n * ```ts\n * const balance = await getBalance(client, {\n * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * blockTag: 'safe'\n * })\n * const balanceAsEther = formatEther(balance)\n * // \"6.942\"\n * ```\n *\n * @param client - Client to use\n * @param parameters - {@link GetBalanceParameters}\n * @returns The balance of the address in wei. {@link GetBalanceReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBalance } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const balance = await getBalance(client, {\n * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n * // 10000000000000000000000n (wei)\n */\nexport async function getBalance(client, { address, blockNumber, blockTag = client.experimental_blockTag ?? 'latest', }) {\n const blockNumberHex = typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined;\n const balance = await client.request({\n method: 'eth_getBalance',\n params: [address, blockNumberHex || blockTag],\n });\n return BigInt(balance);\n}\n//# sourceMappingURL=getBalance.js.map","/**\n * Returns the base fee per blob gas in wei.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlobBaseFee\n * - JSON-RPC Methods: [`eth_blobBaseFee`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blobBaseFee)\n *\n * @param client - Client to use\n * @returns The blob base fee (in wei). {@link GetBlobBaseFeeReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlobBaseFee } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const blobBaseFee = await getBlobBaseFee(client)\n */\nexport async function getBlobBaseFee(client) {\n const baseFee = await client.request({\n method: 'eth_blobBaseFee',\n });\n return BigInt(baseFee);\n}\n//# sourceMappingURL=getBlobBaseFee.js.map","import { hexToNumber, } from '../../utils/encoding/fromHex.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Returns the number of Transactions at a block number, hash, or tag.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlockTransactionCount\n * - JSON-RPC Methods:\n * - Calls [`eth_getBlockTransactionCountByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbynumber) for `blockNumber` & `blockTag`.\n * - Calls [`eth_getBlockTransactionCountByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbyhash) for `blockHash`.\n *\n * @param client - Client to use\n * @param parameters - {@link GetBlockTransactionCountParameters}\n * @returns The block transaction count. {@link GetBlockTransactionCountReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlockTransactionCount } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const count = await getBlockTransactionCount(client)\n */\nexport async function getBlockTransactionCount(client, { blockHash, blockNumber, blockTag = 'latest', } = {}) {\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n let count;\n if (blockHash) {\n count = await client.request({\n method: 'eth_getBlockTransactionCountByHash',\n params: [blockHash],\n }, { dedupe: true });\n }\n else {\n count = await client.request({\n method: 'eth_getBlockTransactionCountByNumber',\n params: [blockNumberHex || blockTag],\n }, { dedupe: Boolean(blockNumberHex) });\n }\n return hexToNumber(count);\n}\n//# sourceMappingURL=getBlockTransactionCount.js.map","import { addressResolverAbi, universalResolverResolveAbi, } from '../../constants/abis.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { trim } from '../../utils/data/trim.js';\nimport { toHex } from '../../utils/encoding/toHex.js';\nimport { isNullUniversalResolverError } from '../../utils/ens/errors.js';\nimport { localBatchGatewayUrl } from '../../utils/ens/localBatchGatewayRequest.js';\nimport { namehash } from '../../utils/ens/namehash.js';\nimport { packetToBytes, } from '../../utils/ens/packetToBytes.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from '../public/readContract.js';\n/**\n * Gets address for ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsAddress\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsAddressParameters}\n * @returns Address for ENS name or `null` if not found. {@link GetEnsAddressReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsAddress, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const ensAddress = await getEnsAddress(client, {\n * name: normalize('wevm.eth'),\n * })\n * // '0xd2135CfB216b74109775236E36d4b433F1DF507B'\n */\nexport async function getEnsAddress(client, parameters) {\n const { blockNumber, blockTag, coinType, name, gatewayUrls, strict } = parameters;\n const { chain } = client;\n const universalResolverAddress = (() => {\n if (parameters.universalResolverAddress)\n return parameters.universalResolverAddress;\n if (!chain)\n throw new Error('client chain not configured. universalResolverAddress is required.');\n return getChainContractAddress({\n blockNumber,\n chain,\n contract: 'ensUniversalResolver',\n });\n })();\n const tlds = chain?.ensTlds;\n if (tlds && !tlds.some((tld) => name.endsWith(tld)))\n return null;\n const args = (() => {\n if (coinType != null)\n return [namehash(name), BigInt(coinType)];\n return [namehash(name)];\n })();\n try {\n const functionData = encodeFunctionData({\n abi: addressResolverAbi,\n functionName: 'addr',\n args,\n });\n const readContractParameters = {\n address: universalResolverAddress,\n abi: universalResolverResolveAbi,\n functionName: 'resolveWithGateways',\n args: [\n toHex(packetToBytes(name)),\n functionData,\n gatewayUrls ?? [localBatchGatewayUrl],\n ],\n blockNumber,\n blockTag,\n };\n const readContractAction = getAction(client, readContract, 'readContract');\n const res = await readContractAction(readContractParameters);\n if (res[0] === '0x')\n return null;\n const address = decodeFunctionResult({\n abi: addressResolverAbi,\n args,\n functionName: 'addr',\n data: res[0],\n });\n if (address === '0x')\n return null;\n if (trim(address) === '0x00')\n return null;\n return address;\n }\n catch (err) {\n if (strict)\n throw err;\n if (isNullUniversalResolverError(err))\n return null;\n throw err;\n }\n}\n//# sourceMappingURL=getEnsAddress.js.map","import { parseAvatarRecord, } from '../../utils/ens/avatar/parseAvatarRecord.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { getEnsText, } from './getEnsText.js';\n/**\n * Gets the avatar of an ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsAvatar\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls [`getEnsText`](https://viem.sh/docs/ens/actions/getEnsText) with `key` set to `'avatar'`.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsAvatarParameters}\n * @returns Avatar URI or `null` if not found. {@link GetEnsAvatarReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsAvatar, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const ensAvatar = await getEnsAvatar(client, {\n * name: normalize('wevm.eth'),\n * })\n * // 'https://ipfs.io/ipfs/Qma8mnp6xV3J2cRNf3mTth5C8nV11CAnceVinc3y8jSbio'\n */\nexport async function getEnsAvatar(client, { blockNumber, blockTag, assetGatewayUrls, name, gatewayUrls, strict, universalResolverAddress, }) {\n const record = await getAction(client, getEnsText, 'getEnsText')({\n blockNumber,\n blockTag,\n key: 'avatar',\n name,\n universalResolverAddress,\n gatewayUrls,\n strict,\n });\n if (!record)\n return null;\n try {\n return await parseAvatarRecord(client, {\n record,\n gatewayUrls: assetGatewayUrls,\n });\n }\n catch {\n return null;\n }\n}\n//# sourceMappingURL=getEnsAvatar.js.map","import { getJsonImage, getMetadataAvatarUri, getNftTokenUri, parseAvatarUri, parseNftUri, resolveAvatarUri, } from './utils.js';\n/*\n * @description Parses an ENS avatar record.\n *\n * @example\n * parseAvatarRecord('eip155:1/erc1155:0xb32979486938aa9694bfc898f35dbed459f44424/10063')\n * 'https://ipfs.io/ipfs/QmSP4nq9fnN9dAiCj42ug9Wa79rqmQerZXZch82VqpiH7U/image.gif'\n *\n * @see https://docs.ens.domains/web/avatars\n *\n */\nexport async function parseAvatarRecord(client, { gatewayUrls, record, }) {\n if (/eip155:/i.test(record))\n return parseNftAvatarUri(client, { gatewayUrls, record });\n return parseAvatarUri({ uri: record, gatewayUrls });\n}\nasync function parseNftAvatarUri(client, { gatewayUrls, record, }) {\n // parse NFT URI into properties\n const nft = parseNftUri(record);\n // fetch tokenURI from the NFT contract\n const nftUri = await getNftTokenUri(client, { nft });\n // resolve the URI from the fetched tokenURI\n const { uri: resolvedNftUri, isOnChain, isEncoded, } = resolveAvatarUri({ uri: nftUri, gatewayUrls });\n // if the resolved URI is on chain, return the data\n if (isOnChain &&\n (resolvedNftUri.includes('data:application/json;base64,') ||\n resolvedNftUri.startsWith('{'))) {\n const encodedJson = isEncoded\n ? // if it is encoded, decode it\n atob(resolvedNftUri.replace('data:application/json;base64,', ''))\n : // if it isn't encoded assume it is a JSON string, but it could be anything (it will error if it is)\n resolvedNftUri;\n const decoded = JSON.parse(encodedJson);\n return parseAvatarUri({ uri: getJsonImage(decoded), gatewayUrls });\n }\n let uriTokenId = nft.tokenID;\n if (nft.namespace === 'erc1155')\n uriTokenId = uriTokenId.replace('0x', '').padStart(64, '0');\n return getMetadataAvatarUri({\n gatewayUrls,\n uri: resolvedNftUri.replace(/(?:0x)?{id}/, uriTokenId),\n });\n}\n//# sourceMappingURL=parseAvatarRecord.js.map","import { universalResolverReverseAbi } from '../../constants/abis.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { isNullUniversalResolverError } from '../../utils/ens/errors.js';\nimport { localBatchGatewayUrl } from '../../utils/ens/localBatchGatewayRequest.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from '../public/readContract.js';\n/**\n * Gets primary name for specified address.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsName\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `reverse(bytes)` on ENS Universal Resolver Contract to \"reverse resolve\" the address to the primary ENS name.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsNameParameters}\n * @returns Name or `null` if not found. {@link GetEnsNameReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsName } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const ensName = await getEnsName(client, {\n * address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\n * })\n * // 'wevm.eth'\n */\nexport async function getEnsName(client, parameters) {\n const { address, blockNumber, blockTag, coinType = 60n, gatewayUrls, strict, } = parameters;\n const { chain } = client;\n const universalResolverAddress = (() => {\n if (parameters.universalResolverAddress)\n return parameters.universalResolverAddress;\n if (!chain)\n throw new Error('client chain not configured. universalResolverAddress is required.');\n return getChainContractAddress({\n blockNumber,\n chain,\n contract: 'ensUniversalResolver',\n });\n })();\n try {\n const readContractParameters = {\n address: universalResolverAddress,\n abi: universalResolverReverseAbi,\n args: [address, coinType, gatewayUrls ?? [localBatchGatewayUrl]],\n functionName: 'reverseWithGateways',\n blockNumber,\n blockTag,\n };\n const readContractAction = getAction(client, readContract, 'readContract');\n const [name] = await readContractAction(readContractParameters);\n return name || null;\n }\n catch (err) {\n if (strict)\n throw err;\n if (isNullUniversalResolverError(err))\n return null;\n throw err;\n }\n}\n//# sourceMappingURL=getEnsName.js.map","import { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { toHex } from '../../utils/encoding/toHex.js';\nimport { packetToBytes, } from '../../utils/ens/packetToBytes.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from '../public/readContract.js';\n/**\n * Gets resolver for ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `findResolver(bytes)` on ENS Universal Resolver Contract to retrieve the resolver of an ENS name.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsResolverParameters}\n * @returns Address for ENS resolver. {@link GetEnsResolverReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsResolver, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const resolverAddress = await getEnsResolver(client, {\n * name: normalize('wevm.eth'),\n * })\n * // '0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41'\n */\nexport async function getEnsResolver(client, parameters) {\n const { blockNumber, blockTag, name } = parameters;\n const { chain } = client;\n const universalResolverAddress = (() => {\n if (parameters.universalResolverAddress)\n return parameters.universalResolverAddress;\n if (!chain)\n throw new Error('client chain not configured. universalResolverAddress is required.');\n return getChainContractAddress({\n blockNumber,\n chain,\n contract: 'ensUniversalResolver',\n });\n })();\n const tlds = chain?.ensTlds;\n if (tlds && !tlds.some((tld) => name.endsWith(tld)))\n throw new Error(`${name} is not a valid ENS TLD (${tlds?.join(', ')}) for chain \"${chain.name}\" (id: ${chain.id}).`);\n const [resolverAddress] = await getAction(client, readContract, 'readContract')({\n address: universalResolverAddress,\n abi: [\n {\n inputs: [{ type: 'bytes' }],\n name: 'findResolver',\n outputs: [\n { type: 'address' },\n { type: 'bytes32' },\n { type: 'uint256' },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n ],\n functionName: 'findResolver',\n args: [toHex(packetToBytes(name))],\n blockNumber,\n blockTag,\n });\n return resolverAddress;\n}\n//# sourceMappingURL=getEnsResolver.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatFeeHistory, } from '../../utils/formatters/feeHistory.js';\n/**\n * Returns a collection of historical gas information.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFeeHistory\n * - JSON-RPC Methods: [`eth_feeHistory`](https://docs.alchemy.com/reference/eth-feehistory)\n *\n * @param client - Client to use\n * @param parameters - {@link GetFeeHistoryParameters}\n * @returns The gas estimate (in wei). {@link GetFeeHistoryReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getFeeHistory } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const feeHistory = await getFeeHistory(client, {\n * blockCount: 4,\n * rewardPercentiles: [25, 75],\n * })\n */\nexport async function getFeeHistory(client, { blockCount, blockNumber, blockTag = 'latest', rewardPercentiles, }) {\n const blockNumberHex = typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined;\n const feeHistory = await client.request({\n method: 'eth_feeHistory',\n params: [\n numberToHex(blockCount),\n blockNumberHex || blockTag,\n rewardPercentiles,\n ],\n }, { dedupe: Boolean(blockNumberHex) });\n return formatFeeHistory(feeHistory);\n}\n//# sourceMappingURL=getFeeHistory.js.map","export function formatFeeHistory(feeHistory) {\n return {\n baseFeePerGas: feeHistory.baseFeePerGas.map((value) => BigInt(value)),\n gasUsedRatio: feeHistory.gasUsedRatio,\n oldestBlock: BigInt(feeHistory.oldestBlock),\n reward: feeHistory.reward?.map((reward) => reward.map((value) => BigInt(value))),\n };\n}\n//# sourceMappingURL=feeHistory.js.map","import { parseEventLogs } from '../../utils/abi/parseEventLogs.js';\nimport { formatLog, } from '../../utils/formatters/log.js';\n/**\n * Returns a list of event logs since the filter was created.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFilterLogs\n * - JSON-RPC Methods: [`eth_getFilterLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterlogs)\n *\n * `getFilterLogs` is only compatible with **event filters**.\n *\n * @param client - Client to use\n * @param parameters - {@link GetFilterLogsParameters}\n * @returns A list of event logs. {@link GetFilterLogsReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbiItem } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createEventFilter, getFilterLogs } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createEventFilter(client, {\n * address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n * event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),\n * })\n * const logs = await getFilterLogs(client, { filter })\n */\nexport async function getFilterLogs(_client, { filter, }) {\n const strict = filter.strict ?? false;\n const logs = await filter.request({\n method: 'eth_getFilterLogs',\n params: [filter.id],\n });\n const formattedLogs = logs.map((log) => formatLog(log));\n if (!filter.abi)\n return formattedLogs;\n return parseEventLogs({\n abi: filter.abi,\n logs: formattedLogs,\n strict,\n });\n}\n//# sourceMappingURL=getFilterLogs.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatProof, } from '../../utils/formatters/proof.js';\n/**\n * Returns the account and storage values of the specified account including the Merkle-proof.\n *\n * - Docs: https://viem.sh/docs/actions/public/getProof\n * - JSON-RPC Methods:\n * - Calls [`eth_getProof`](https://eips.ethereum.org/EIPS/eip-1186)\n *\n * @param client - Client to use\n * @param parameters - {@link GetProofParameters}\n * @returns Proof data. {@link GetProofReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getProof } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const block = await getProof(client, {\n * address: '0x...',\n * storageKeys: ['0x...'],\n * })\n */\nexport async function getProof(client, { address, blockNumber, blockTag: blockTag_, storageKeys, }) {\n const blockTag = blockTag_ ?? 'latest';\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n const proof = await client.request({\n method: 'eth_getProof',\n params: [address, storageKeys, blockNumberHex || blockTag],\n });\n return formatProof(proof);\n}\n//# sourceMappingURL=getProof.js.map","import { hexToNumber } from '../index.js';\nfunction formatStorageProof(storageProof) {\n return storageProof.map((proof) => ({\n ...proof,\n value: BigInt(proof.value),\n }));\n}\nexport function formatProof(proof) {\n return {\n ...proof,\n balance: proof.balance ? BigInt(proof.balance) : undefined,\n nonce: proof.nonce ? hexToNumber(proof.nonce) : undefined,\n storageProof: proof.storageProof\n ? formatStorageProof(proof.storageProof)\n : undefined,\n };\n}\n//# sourceMappingURL=proof.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Returns the value from a storage slot at a given address.\n *\n * - Docs: https://viem.sh/docs/contract/getStorageAt\n * - JSON-RPC Methods: [`eth_getStorageAt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getstorageat)\n *\n * @param client - Client to use\n * @param parameters - {@link GetStorageAtParameters}\n * @returns The value of the storage slot. {@link GetStorageAtReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getStorageAt } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const code = await getStorageAt(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * slot: toHex(0),\n * })\n */\nexport async function getStorageAt(client, { address, blockNumber, blockTag = 'latest', slot }) {\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n const data = await client.request({\n method: 'eth_getStorageAt',\n params: [address, slot, blockNumberHex || blockTag],\n });\n return data;\n}\n//# sourceMappingURL=getStorageAt.js.map","import { getAction } from '../../utils/getAction.js';\nimport { getBlockNumber, } from './getBlockNumber.js';\nimport { getTransaction, } from './getTransaction.js';\n/**\n * Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\n * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\n * - JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionConfirmationsParameters}\n * @returns The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransactionConfirmations } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const confirmations = await getTransactionConfirmations(client, {\n * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\nexport async function getTransactionConfirmations(client, { hash, transactionReceipt }) {\n const [blockNumber, transaction] = await Promise.all([\n getAction(client, getBlockNumber, 'getBlockNumber')({}),\n hash\n ? getAction(client, getTransaction, 'getTransaction')({ hash })\n : undefined,\n ]);\n const transactionBlockNumber = transactionReceipt?.blockNumber || transaction?.blockNumber;\n if (!transactionBlockNumber)\n return 0n;\n return blockNumber - transactionBlockNumber + 1n;\n}\n//# sourceMappingURL=getTransactionConfirmations.js.map","import { multicall3Abi } from '../../constants/abis.js';\nimport { multicall3Bytecode } from '../../constants/contracts.js';\nimport { AbiDecodingZeroDataError } from '../../errors/abi.js';\nimport { BaseError } from '../../errors/base.js';\nimport { RawContractError } from '../../errors/contract.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { getContractError, } from '../../utils/errors/getContractError.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract } from './readContract.js';\n/**\n * Similar to [`readContract`](https://viem.sh/docs/contract/readContract), but batches up multiple functions on a contract in a single RPC call via the [`multicall3` contract](https://github.com/mds1/multicall).\n *\n * - Docs: https://viem.sh/docs/contract/multicall\n *\n * @param client - Client to use\n * @param parameters - {@link MulticallParameters}\n * @returns An array of results with accompanying status. {@link MulticallReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { multicall } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const abi = parseAbi([\n * 'function balanceOf(address) view returns (uint256)',\n * 'function totalSupply() view returns (uint256)',\n * ])\n * const results = await multicall(client, {\n * contracts: [\n * {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi,\n * functionName: 'balanceOf',\n * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n * },\n * {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi,\n * functionName: 'totalSupply',\n * },\n * ],\n * })\n * // [{ result: 424122n, status: 'success' }, { result: 1000000n, status: 'success' }]\n */\nexport async function multicall(client, parameters) {\n const { account, authorizationList, allowFailure = true, blockNumber, blockOverrides, blockTag, stateOverride, } = parameters;\n const contracts = parameters.contracts;\n const { batchSize = parameters.batchSize ?? 1024, deployless = parameters.deployless ?? false, } = typeof client.batch?.multicall === 'object' ? client.batch.multicall : {};\n const multicallAddress = (() => {\n if (parameters.multicallAddress)\n return parameters.multicallAddress;\n if (deployless)\n return null;\n if (client.chain) {\n return getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'multicall3',\n });\n }\n throw new Error('client chain not configured. multicallAddress is required.');\n })();\n const chunkedCalls = [[]];\n let currentChunk = 0;\n let currentChunkSize = 0;\n for (let i = 0; i < contracts.length; i++) {\n const { abi, address, args, functionName } = contracts[i];\n try {\n const callData = encodeFunctionData({ abi, args, functionName });\n currentChunkSize += (callData.length - 2) / 2;\n // Check to see if we need to create a new chunk.\n if (\n // Check if batching is enabled.\n batchSize > 0 &&\n // Check if the current size of the batch exceeds the size limit.\n currentChunkSize > batchSize &&\n // Check if the current chunk is not already empty.\n chunkedCalls[currentChunk].length > 0) {\n currentChunk++;\n currentChunkSize = (callData.length - 2) / 2;\n chunkedCalls[currentChunk] = [];\n }\n chunkedCalls[currentChunk] = [\n ...chunkedCalls[currentChunk],\n {\n allowFailure: true,\n callData,\n target: address,\n },\n ];\n }\n catch (err) {\n const error = getContractError(err, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/multicall',\n functionName,\n sender: account,\n });\n if (!allowFailure)\n throw error;\n chunkedCalls[currentChunk] = [\n ...chunkedCalls[currentChunk],\n {\n allowFailure: true,\n callData: '0x',\n target: address,\n },\n ];\n }\n }\n const aggregate3Results = await Promise.allSettled(chunkedCalls.map((calls) => getAction(client, readContract, 'readContract')({\n ...(multicallAddress === null\n ? { code: multicall3Bytecode }\n : { address: multicallAddress }),\n abi: multicall3Abi,\n account,\n args: [calls],\n authorizationList,\n blockNumber,\n blockOverrides,\n blockTag,\n functionName: 'aggregate3',\n stateOverride,\n })));\n const results = [];\n for (let i = 0; i < aggregate3Results.length; i++) {\n const result = aggregate3Results[i];\n // If an error occurred in a `readContract` invocation (ie. network error),\n // then append the failure reason to each contract result.\n if (result.status === 'rejected') {\n if (!allowFailure)\n throw result.reason;\n for (let j = 0; j < chunkedCalls[i].length; j++) {\n results.push({\n status: 'failure',\n error: result.reason,\n result: undefined,\n });\n }\n continue;\n }\n // If the `readContract` call was successful, then decode the results.\n const aggregate3Result = result.value;\n for (let j = 0; j < aggregate3Result.length; j++) {\n // Extract the response from `readContract`\n const { returnData, success } = aggregate3Result[j];\n // Extract the request call data from the original call.\n const { callData } = chunkedCalls[i][j];\n // Extract the contract config for this call from the `contracts` argument\n // for decoding.\n const { abi, address, functionName, args } = contracts[results.length];\n try {\n if (callData === '0x')\n throw new AbiDecodingZeroDataError();\n if (!success)\n throw new RawContractError({ data: returnData });\n const result = decodeFunctionResult({\n abi,\n args,\n data: returnData,\n functionName,\n });\n results.push(allowFailure ? { result, status: 'success' } : result);\n }\n catch (err) {\n const error = getContractError(err, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/multicall',\n functionName,\n });\n if (!allowFailure)\n throw error;\n results.push({ error, result: undefined, status: 'failure' });\n }\n }\n }\n if (results.length !== contracts.length)\n throw new BaseError('multicall results mismatch');\n return results;\n}\n//# sourceMappingURL=multicall.js.map","import * as AbiConstructor from 'ox/AbiConstructor';\nimport * as AbiFunction from 'ox/AbiFunction';\nimport { parseAccount } from '../../accounts/utils/parseAccount.js';\nimport { ethAddress, zeroAddress } from '../../constants/address.js';\nimport { deploylessCallViaBytecodeBytecode } from '../../constants/contracts.js';\nimport { BaseError } from '../../errors/base.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { hexToBigInt } from '../../utils/index.js';\nimport { createAccessList, } from './createAccessList.js';\nimport { simulateBlocks, } from './simulateBlocks.js';\nconst getBalanceCode = '0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033';\n/**\n * Simulates execution of a batch of calls.\n *\n * @param client - Client to use\n * @param parameters - {@link SimulateCallsParameters}\n * @returns Results. {@link SimulateCallsReturnType}\n *\n * @example\n * ```ts\n * import { createPublicClient, http, parseEther } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { simulateCalls } from 'viem/actions'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n *\n * const result = await simulateCalls(client, {\n * account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n * calls: [{\n * {\n * data: '0xdeadbeef',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * },\n * {\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: parseEther('1'),\n * },\n * ]\n * })\n * ```\n */\nexport async function simulateCalls(client, parameters) {\n const { blockNumber, blockTag, calls, stateOverrides, traceAssetChanges, traceTransfers, validation, } = parameters;\n const account = parameters.account\n ? parseAccount(parameters.account)\n : undefined;\n if (traceAssetChanges && !account)\n throw new BaseError('`account` is required when `traceAssetChanges` is true');\n // Derive bytecode to extract ETH balance via a contract call.\n const getBalanceData = account\n ? AbiConstructor.encode(AbiConstructor.from('constructor(bytes, bytes)'), {\n bytecode: deploylessCallViaBytecodeBytecode,\n args: [\n getBalanceCode,\n AbiFunction.encodeData(AbiFunction.from('function getBalance(address)'), [account.address]),\n ],\n })\n : undefined;\n // Fetch ERC20/721 addresses that were \"touched\" from the calls.\n const assetAddresses = traceAssetChanges\n ? await Promise.all(parameters.calls.map(async (call) => {\n if (!call.data && !call.abi)\n return;\n const { accessList } = await createAccessList(client, {\n account: account.address,\n ...call,\n data: call.abi ? encodeFunctionData(call) : call.data,\n });\n return accessList.map(({ address, storageKeys }) => storageKeys.length > 0 ? address : null);\n })).then((x) => x.flat().filter(Boolean))\n : [];\n const blocks = await simulateBlocks(client, {\n blockNumber,\n blockTag: blockTag,\n blocks: [\n ...(traceAssetChanges\n ? [\n // ETH pre balances\n {\n calls: [{ data: getBalanceData }],\n stateOverrides,\n },\n // Asset pre balances\n {\n calls: assetAddresses.map((address, i) => ({\n abi: [\n AbiFunction.from('function balanceOf(address) returns (uint256)'),\n ],\n functionName: 'balanceOf',\n args: [account.address],\n to: address,\n from: zeroAddress,\n nonce: i,\n })),\n stateOverrides: [\n {\n address: zeroAddress,\n nonce: 0,\n },\n ],\n },\n ]\n : []),\n {\n calls: [...calls, {}].map((call) => ({\n ...call,\n from: account?.address,\n })),\n stateOverrides,\n },\n ...(traceAssetChanges\n ? [\n // ETH post balances\n {\n calls: [{ data: getBalanceData }],\n },\n // Asset post balances\n {\n calls: assetAddresses.map((address, i) => ({\n abi: [\n AbiFunction.from('function balanceOf(address) returns (uint256)'),\n ],\n functionName: 'balanceOf',\n args: [account.address],\n to: address,\n from: zeroAddress,\n nonce: i,\n })),\n stateOverrides: [\n {\n address: zeroAddress,\n nonce: 0,\n },\n ],\n },\n // Decimals\n {\n calls: assetAddresses.map((address, i) => ({\n to: address,\n abi: [\n AbiFunction.from('function decimals() returns (uint256)'),\n ],\n functionName: 'decimals',\n from: zeroAddress,\n nonce: i,\n })),\n stateOverrides: [\n {\n address: zeroAddress,\n nonce: 0,\n },\n ],\n },\n // Token URI\n {\n calls: assetAddresses.map((address, i) => ({\n to: address,\n abi: [\n AbiFunction.from('function tokenURI(uint256) returns (string)'),\n ],\n functionName: 'tokenURI',\n args: [0n],\n from: zeroAddress,\n nonce: i,\n })),\n stateOverrides: [\n {\n address: zeroAddress,\n nonce: 0,\n },\n ],\n },\n // Symbols\n {\n calls: assetAddresses.map((address, i) => ({\n to: address,\n abi: [AbiFunction.from('function symbol() returns (string)')],\n functionName: 'symbol',\n from: zeroAddress,\n nonce: i,\n })),\n stateOverrides: [\n {\n address: zeroAddress,\n nonce: 0,\n },\n ],\n },\n ]\n : []),\n ],\n traceTransfers,\n validation,\n });\n const block_results = traceAssetChanges ? blocks[2] : blocks[0];\n const [block_ethPre, block_assetsPre, , block_ethPost, block_assetsPost, block_decimals, block_tokenURI, block_symbols,] = traceAssetChanges ? blocks : [];\n // Extract call results from the simulation.\n const { calls: block_calls, ...block } = block_results;\n const results = block_calls.slice(0, -1) ?? [];\n // Extract pre-execution ETH and asset balances.\n const ethPre = block_ethPre?.calls ?? [];\n const assetsPre = block_assetsPre?.calls ?? [];\n const balancesPre = [...ethPre, ...assetsPre].map((call) => call.status === 'success' ? hexToBigInt(call.data) : null);\n // Extract post-execution ETH and asset balances.\n const ethPost = block_ethPost?.calls ?? [];\n const assetsPost = block_assetsPost?.calls ?? [];\n const balancesPost = [...ethPost, ...assetsPost].map((call) => call.status === 'success' ? hexToBigInt(call.data) : null);\n // Extract asset symbols & decimals.\n const decimals = (block_decimals?.calls ?? []).map((x) => x.status === 'success' ? x.result : null);\n const symbols = (block_symbols?.calls ?? []).map((x) => x.status === 'success' ? x.result : null);\n const tokenURI = (block_tokenURI?.calls ?? []).map((x) => x.status === 'success' ? x.result : null);\n const changes = [];\n for (const [i, balancePost] of balancesPost.entries()) {\n const balancePre = balancesPre[i];\n if (typeof balancePost !== 'bigint')\n continue;\n if (typeof balancePre !== 'bigint')\n continue;\n const decimals_ = decimals[i - 1];\n const symbol_ = symbols[i - 1];\n const tokenURI_ = tokenURI[i - 1];\n const token = (() => {\n if (i === 0)\n return {\n address: ethAddress,\n decimals: 18,\n symbol: 'ETH',\n };\n return {\n address: assetAddresses[i - 1],\n decimals: tokenURI_ || decimals_ ? Number(decimals_ ?? 1) : undefined,\n symbol: symbol_ ?? undefined,\n };\n })();\n if (changes.some((change) => change.token.address === token.address))\n continue;\n changes.push({\n token,\n value: {\n pre: balancePre,\n post: balancePost,\n diff: balancePost - balancePre,\n },\n });\n }\n return {\n assetChanges: changes,\n block,\n results,\n };\n}\n//# sourceMappingURL=simulateCalls.js.map","import { getAction } from '../../utils/getAction.js';\nimport { hashMessage } from '../../utils/signature/hashMessage.js';\nimport { verifyHash, } from './verifyHash.js';\n/**\n * Verify that a message was signed by the provided address.\n *\n * Compatible with Smart Contract Accounts & Externally Owned Accounts via [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492).\n *\n * - Docs {@link https://viem.sh/docs/actions/public/verifyMessage}\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifyMessageParameters}\n * @returns Whether or not the signature is valid. {@link VerifyMessageReturnType}\n */\nexport async function verifyMessage(client, { address, message, factory, factoryData, signature, ...callRequest }) {\n const hash = hashMessage(message);\n return getAction(client, verifyHash, 'verifyHash')({\n address,\n factory: factory,\n factoryData: factoryData,\n hash,\n signature,\n ...callRequest,\n });\n}\n//# sourceMappingURL=verifyMessage.js.map","import { hashMessage } from '../../utils/signature/hashMessage.js';\nimport { parseSiweMessage } from '../../utils/siwe/parseSiweMessage.js';\nimport { validateSiweMessage, } from '../../utils/siwe/validateSiweMessage.js';\nimport { verifyHash, } from '../public/verifyHash.js';\n/**\n * Verifies [EIP-4361](https://eips.ethereum.org/EIPS/eip-4361) formatted message was signed.\n *\n * Compatible with Smart Contract Accounts & Externally Owned Accounts via [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492).\n *\n * - Docs {@link https://viem.sh/docs/siwe/actions/verifySiweMessage}\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifySiweMessageParameters}\n * @returns Whether or not the signature is valid. {@link VerifySiweMessageReturnType}\n */\nexport async function verifySiweMessage(client, parameters) {\n const { address, domain, message, nonce, scheme, signature, time = new Date(), ...callRequest } = parameters;\n const parsed = parseSiweMessage(message);\n if (!parsed.address)\n return false;\n const isValid = validateSiweMessage({\n address,\n domain,\n message: parsed,\n nonce,\n scheme,\n time,\n });\n if (!isValid)\n return false;\n const hash = hashMessage(message);\n return verifyHash(client, {\n address: parsed.address,\n hash,\n signature,\n ...callRequest,\n });\n}\n//# sourceMappingURL=verifySiweMessage.js.map","import { isAddress } from '../address/isAddress.js';\nimport { isAddressEqual } from '../address/isAddressEqual.js';\n/**\n * @description Validates EIP-4361 message.\n *\n * @see https://eips.ethereum.org/EIPS/eip-4361\n */\nexport function validateSiweMessage(parameters) {\n const { address, domain, message, nonce, scheme, time = new Date(), } = parameters;\n if (domain && message.domain !== domain)\n return false;\n if (nonce && message.nonce !== nonce)\n return false;\n if (scheme && message.scheme !== scheme)\n return false;\n if (message.expirationTime && time >= message.expirationTime)\n return false;\n if (message.notBefore && time < message.notBefore)\n return false;\n try {\n if (!message.address)\n return false;\n if (!isAddress(message.address, { strict: false }))\n return false;\n if (address && !isAddressEqual(message.address, address))\n return false;\n }\n catch {\n return false;\n }\n return true;\n}\n//# sourceMappingURL=validateSiweMessage.js.map","import { getAction } from '../../utils/getAction.js';\nimport { hashTypedData, } from '../../utils/signature/hashTypedData.js';\nimport { verifyHash, } from './verifyHash.js';\n/**\n * Verify that typed data was signed by the provided address.\n *\n * - Docs {@link https://viem.sh/docs/actions/public/verifyTypedData}\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifyTypedDataParameters}\n * @returns Whether or not the signature is valid. {@link VerifyTypedDataReturnType}\n */\nexport async function verifyTypedData(client, parameters) {\n const { address, factory, factoryData, signature, message, primaryType, types, domain, ...callRequest } = parameters;\n const hash = hashTypedData({ message, primaryType, types, domain });\n return getAction(client, verifyHash, 'verifyHash')({\n address,\n factory: factory,\n factoryData: factoryData,\n hash,\n signature,\n ...callRequest,\n });\n}\n//# sourceMappingURL=verifyTypedData.js.map","import { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { getBlock } from './getBlock.js';\n/**\n * Watches and returns information for incoming blocks.\n *\n * - Docs: https://viem.sh/docs/actions/public/watchBlocks\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\n * - JSON-RPC Methods:\n * - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\n * - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\"newHeads\"` event.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchBlocksParameters}\n * @returns A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\n *\n * @example\n * import { createPublicClient, watchBlocks, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = watchBlocks(client, {\n * onBlock: (block) => console.log(block),\n * })\n */\nexport function watchBlocks(client, { blockTag = client.experimental_blockTag ?? 'latest', emitMissed = false, emitOnBegin = false, onBlock, onError, includeTransactions: includeTransactions_, poll: poll_, pollingInterval = client.pollingInterval, }) {\n const enablePolling = (() => {\n if (typeof poll_ !== 'undefined')\n return poll_;\n if (client.transport.type === 'webSocket' ||\n client.transport.type === 'ipc')\n return false;\n if (client.transport.type === 'fallback' &&\n (client.transport.transports[0].config.type === 'webSocket' ||\n client.transport.transports[0].config.type === 'ipc'))\n return false;\n return true;\n })();\n const includeTransactions = includeTransactions_ ?? false;\n let prevBlock;\n const pollBlocks = () => {\n const observerId = stringify([\n 'watchBlocks',\n client.uid,\n blockTag,\n emitMissed,\n emitOnBegin,\n includeTransactions,\n pollingInterval,\n ]);\n return observe(observerId, { onBlock, onError }, (emit) => poll(async () => {\n try {\n const block = await getAction(client, getBlock, 'getBlock')({\n blockTag,\n includeTransactions,\n });\n if (block.number !== null && prevBlock?.number != null) {\n // If the current block number is the same as the previous,\n // we can skip.\n if (block.number === prevBlock.number)\n return;\n // If we have missed out on some previous blocks, and the\n // `emitMissed` flag is truthy, let's emit those blocks.\n if (block.number - prevBlock.number > 1 && emitMissed) {\n for (let i = prevBlock?.number + 1n; i < block.number; i++) {\n const block = (await getAction(client, getBlock, 'getBlock')({\n blockNumber: i,\n includeTransactions,\n }));\n emit.onBlock(block, prevBlock);\n prevBlock = block;\n }\n }\n }\n if (\n // If no previous block exists, emit.\n prevBlock?.number == null ||\n // If the block tag is \"pending\" with no block number, emit.\n (blockTag === 'pending' && block?.number == null) ||\n // If the next block number is greater than the previous block number, emit.\n // We don't want to emit blocks in the past.\n (block.number !== null && block.number > prevBlock.number)) {\n emit.onBlock(block, prevBlock);\n prevBlock = block;\n }\n }\n catch (err) {\n emit.onError?.(err);\n }\n }, {\n emitOnBegin,\n interval: pollingInterval,\n }));\n };\n const subscribeBlocks = () => {\n let active = true;\n let emitFetched = true;\n let unsubscribe = () => (active = false);\n (async () => {\n try {\n if (emitOnBegin) {\n getAction(client, getBlock, 'getBlock')({\n blockTag,\n includeTransactions,\n })\n .then((block) => {\n if (!active)\n return;\n if (!emitFetched)\n return;\n onBlock(block, undefined);\n emitFetched = false;\n })\n .catch(onError);\n }\n const transport = (() => {\n if (client.transport.type === 'fallback') {\n const transport = client.transport.transports.find((transport) => transport.config.type === 'webSocket' ||\n transport.config.type === 'ipc');\n if (!transport)\n return client.transport;\n return transport.value;\n }\n return client.transport;\n })();\n const { unsubscribe: unsubscribe_ } = await transport.subscribe({\n params: ['newHeads'],\n async onData(data) {\n if (!active)\n return;\n const block = (await getAction(client, getBlock, 'getBlock')({\n blockNumber: data.result?.number,\n includeTransactions,\n }).catch(() => { }));\n if (!active)\n return;\n onBlock(block, prevBlock);\n emitFetched = false;\n prevBlock = block;\n },\n onError(error) {\n onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return () => unsubscribe();\n };\n return enablePolling ? pollBlocks() : subscribeBlocks();\n}\n//# sourceMappingURL=watchBlocks.js.map","import { DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';\nimport { InvalidInputRpcError } from '../../errors/rpc.js';\nimport { decodeEventLog } from '../../utils/abi/decodeEventLog.js';\nimport { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { formatLog } from '../../utils/formatters/log.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { createEventFilter, } from './createEventFilter.js';\nimport { getBlockNumber } from './getBlockNumber.js';\nimport { getFilterChanges } from './getFilterChanges.js';\nimport { getLogs } from './getLogs.js';\nimport { uninstallFilter } from './uninstallFilter.js';\n/**\n * Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\n *\n * - Docs: https://viem.sh/docs/actions/public/watchEvent\n * - JSON-RPC Methods:\n * - **RPC Provider supports `eth_newFilter`:**\n * - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\n * - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\n * - **RPC Provider does not support `eth_newFilter`:**\n * - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\n *\n * This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\n *\n * `watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchEventParameters}\n * @returns A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchEvent } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = watchEvent(client, {\n * onLogs: (logs) => console.log(logs),\n * })\n */\nexport function watchEvent(client, { address, args, batch = true, event, events, fromBlock, onError, onLogs, poll: poll_, pollingInterval = client.pollingInterval, strict: strict_, }) {\n const enablePolling = (() => {\n if (typeof poll_ !== 'undefined')\n return poll_;\n if (typeof fromBlock === 'bigint')\n return true;\n if (client.transport.type === 'webSocket' ||\n client.transport.type === 'ipc')\n return false;\n if (client.transport.type === 'fallback' &&\n (client.transport.transports[0].config.type === 'webSocket' ||\n client.transport.transports[0].config.type === 'ipc'))\n return false;\n return true;\n })();\n const strict = strict_ ?? false;\n const pollEvent = () => {\n const observerId = stringify([\n 'watchEvent',\n address,\n args,\n batch,\n client.uid,\n event,\n pollingInterval,\n fromBlock,\n ]);\n return observe(observerId, { onLogs, onError }, (emit) => {\n let previousBlockNumber;\n if (fromBlock !== undefined)\n previousBlockNumber = fromBlock - 1n;\n let filter;\n let initialized = false;\n const unwatch = poll(async () => {\n if (!initialized) {\n try {\n filter = (await getAction(client, createEventFilter, 'createEventFilter')({\n address,\n args,\n event: event,\n events,\n strict,\n fromBlock,\n }));\n }\n catch { }\n initialized = true;\n return;\n }\n try {\n let logs;\n if (filter) {\n logs = await getAction(client, getFilterChanges, 'getFilterChanges')({ filter });\n }\n else {\n // If the filter doesn't exist, we will fall back to use `getLogs`.\n // The fall back exists because some RPC Providers do not support filters.\n // Fetch the block number to use for `getLogs`.\n const blockNumber = await getAction(client, getBlockNumber, 'getBlockNumber')({});\n // If the block number has changed, we will need to fetch the logs.\n // If the block number doesn't exist, we are yet to reach the first poll interval,\n // so do not emit any logs.\n if (previousBlockNumber && previousBlockNumber !== blockNumber) {\n logs = await getAction(client, getLogs, 'getLogs')({\n address,\n args,\n event: event,\n events,\n fromBlock: previousBlockNumber + 1n,\n toBlock: blockNumber,\n });\n }\n else {\n logs = [];\n }\n previousBlockNumber = blockNumber;\n }\n if (logs.length === 0)\n return;\n if (batch)\n emit.onLogs(logs);\n else\n for (const log of logs)\n emit.onLogs([log]);\n }\n catch (err) {\n // If a filter has been set and gets uninstalled, providers will throw an InvalidInput error.\n // Reinitialize the filter when this occurs\n if (filter && err instanceof InvalidInputRpcError)\n initialized = false;\n emit.onError?.(err);\n }\n }, {\n emitOnBegin: true,\n interval: pollingInterval,\n });\n return async () => {\n if (filter)\n await getAction(client, uninstallFilter, 'uninstallFilter')({ filter });\n unwatch();\n };\n });\n };\n const subscribeEvent = () => {\n let active = true;\n let unsubscribe = () => (active = false);\n (async () => {\n try {\n const transport = (() => {\n if (client.transport.type === 'fallback') {\n const transport = client.transport.transports.find((transport) => transport.config.type === 'webSocket' ||\n transport.config.type === 'ipc');\n if (!transport)\n return client.transport;\n return transport.value;\n }\n return client.transport;\n })();\n const events_ = events ?? (event ? [event] : undefined);\n let topics = [];\n if (events_) {\n const encoded = events_.flatMap((event) => encodeEventTopics({\n abi: [event],\n eventName: event.name,\n args,\n }));\n // TODO: Clean up type casting\n topics = [encoded];\n if (event)\n topics = topics[0];\n }\n const { unsubscribe: unsubscribe_ } = await transport.subscribe({\n params: ['logs', { address, topics }],\n onData(data) {\n if (!active)\n return;\n const log = data.result;\n try {\n const { eventName, args } = decodeEventLog({\n abi: events_ ?? [],\n data: log.data,\n topics: log.topics,\n strict,\n });\n const formatted = formatLog(log, { args, eventName });\n onLogs([formatted]);\n }\n catch (err) {\n let eventName;\n let isUnnamed;\n if (err instanceof DecodeLogDataMismatch ||\n err instanceof DecodeLogTopicsMismatch) {\n // If strict mode is on, and log data/topics do not match event definition, skip.\n if (strict_)\n return;\n eventName = err.abiItem.name;\n isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));\n }\n // Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).\n const formatted = formatLog(log, {\n args: isUnnamed ? [] : {},\n eventName,\n });\n onLogs([formatted]);\n }\n },\n onError(error) {\n onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return () => unsubscribe();\n };\n return enablePolling ? pollEvent() : subscribeEvent();\n}\n//# sourceMappingURL=watchEvent.js.map","import { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { createPendingTransactionFilter } from './createPendingTransactionFilter.js';\nimport { getFilterChanges } from './getFilterChanges.js';\nimport { uninstallFilter } from './uninstallFilter.js';\n/**\n * Watches and returns pending transaction hashes.\n *\n * - Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\n * - JSON-RPC Methods:\n * - When `poll: true`\n * - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\n * - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\n * - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\"newPendingTransactions\"` event.\n *\n * This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\n *\n * @param client - Client to use\n * @param parameters - {@link WatchPendingTransactionsParameters}\n * @returns A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchPendingTransactions } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = await watchPendingTransactions(client, {\n * onTransactions: (hashes) => console.log(hashes),\n * })\n */\nexport function watchPendingTransactions(client, { batch = true, onError, onTransactions, poll: poll_, pollingInterval = client.pollingInterval, }) {\n const enablePolling = typeof poll_ !== 'undefined'\n ? poll_\n : client.transport.type !== 'webSocket' && client.transport.type !== 'ipc';\n const pollPendingTransactions = () => {\n const observerId = stringify([\n 'watchPendingTransactions',\n client.uid,\n batch,\n pollingInterval,\n ]);\n return observe(observerId, { onTransactions, onError }, (emit) => {\n let filter;\n const unwatch = poll(async () => {\n try {\n if (!filter) {\n try {\n filter = await getAction(client, createPendingTransactionFilter, 'createPendingTransactionFilter')({});\n return;\n }\n catch (err) {\n unwatch();\n throw err;\n }\n }\n const hashes = await getAction(client, getFilterChanges, 'getFilterChanges')({ filter });\n if (hashes.length === 0)\n return;\n if (batch)\n emit.onTransactions(hashes);\n else\n for (const hash of hashes)\n emit.onTransactions([hash]);\n }\n catch (err) {\n emit.onError?.(err);\n }\n }, {\n emitOnBegin: true,\n interval: pollingInterval,\n });\n return async () => {\n if (filter)\n await getAction(client, uninstallFilter, 'uninstallFilter')({ filter });\n unwatch();\n };\n });\n };\n const subscribePendingTransactions = () => {\n let active = true;\n let unsubscribe = () => (active = false);\n (async () => {\n try {\n const { unsubscribe: unsubscribe_ } = await client.transport.subscribe({\n params: ['newPendingTransactions'],\n onData(data) {\n if (!active)\n return;\n const transaction = data.result;\n onTransactions([transaction]);\n },\n onError(error) {\n onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return () => unsubscribe();\n };\n return enablePolling\n ? pollPendingTransactions()\n : subscribePendingTransactions();\n}\n//# sourceMappingURL=watchPendingTransactions.js.map","import { createClient, } from './createClient.js';\nimport { publicActions } from './decorators/public.js';\n/**\n * Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\n *\n * - Docs: https://viem.sh/docs/clients/public\n *\n * A Public Client is an interface to \"public\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\n *\n * @param config - {@link PublicClientConfig}\n * @returns A Public Client. {@link PublicClient}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n */\nexport function createPublicClient(parameters) {\n const { key = 'public', name = 'Public Client' } = parameters;\n const client = createClient({\n ...parameters,\n key,\n name,\n type: 'publicClient',\n });\n return client.extend(publicActions);\n}\n//# sourceMappingURL=createPublicClient.js.map","var asn1 = require('../asn1');\nvar inherits = require('inherits');\n\nvar api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n};\n\nEntity.prototype._createNamed = function createNamed(base) {\n var named;\n try {\n named = require('vm').runInThisContext(\n '(function ' + this.name + '(entity) {\\n' +\n ' this._initNamed(entity);\\n' +\n '})'\n );\n } catch (e) {\n named = function (entity) {\n this._initNamed(entity);\n };\n }\n inherits(named, base);\n named.prototype._initNamed = function initnamed(entity) {\n base.call(this, entity);\n };\n\n return new named(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(asn1.decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(asn1.encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","import { dual } from \"../Function.js\";\n/** @internal */\nconst BIT_MASK = 0xff;\n/** @internal */\nconst BIT_SHIFT = 0x08;\n/** @internal */\nexport const active = patch => patch & BIT_MASK;\n/** @internal */\nexport const enabled = patch => patch >> BIT_SHIFT & BIT_MASK;\n/** @internal */\nexport const make = (active, enabled) => (active & BIT_MASK) + ((enabled & active & BIT_MASK) << BIT_SHIFT);\n/** @internal */\nexport const empty = /*#__PURE__*/make(0, 0);\n/** @internal */\nexport const enable = flag => make(flag, flag);\n/** @internal */\nexport const disable = flag => make(flag, 0);\n/** @internal */\nexport const isEmpty = patch => patch === 0;\n/** @internal */\nexport const isActive = /*#__PURE__*/dual(2, (self, flag) => (active(self) & flag) !== 0);\n/** @internal */\nexport const isEnabled = /*#__PURE__*/dual(2, (self, flag) => (enabled(self) & flag) !== 0);\n/** @internal */\nexport const isDisabled = /*#__PURE__*/dual(2, (self, flag) => (active(self) & flag) !== 0 && (enabled(self) & flag) === 0);\n/** @internal */\nexport const exclude = /*#__PURE__*/dual(2, (self, flag) => make(active(self) & ~flag, enabled(self)));\n/** @internal */\nexport const both = /*#__PURE__*/dual(2, (self, that) => make(active(self) | active(that), enabled(self) & enabled(that)));\n/** @internal */\nexport const either = /*#__PURE__*/dual(2, (self, that) => make(active(self) | active(that), enabled(self) | enabled(that)));\n/** @internal */\nexport const andThen = /*#__PURE__*/dual(2, (self, that) => self | that);\n/** @internal */\nexport const inverse = patch => make(enabled(patch), invert(active(patch)));\n/** @internal */\nexport const invert = n => ~n >>> 0 & BIT_MASK;\n//# sourceMappingURL=runtimeFlagsPatch.js.map","/* [Multicall3](https://github.com/mds1/multicall) */\nexport const multicall3Abi = [\n {\n inputs: [\n {\n components: [\n {\n name: 'target',\n type: 'address',\n },\n {\n name: 'allowFailure',\n type: 'bool',\n },\n {\n name: 'callData',\n type: 'bytes',\n },\n ],\n name: 'calls',\n type: 'tuple[]',\n },\n ],\n name: 'aggregate3',\n outputs: [\n {\n components: [\n {\n name: 'success',\n type: 'bool',\n },\n {\n name: 'returnData',\n type: 'bytes',\n },\n ],\n name: 'returnData',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getCurrentBlockTimestamp',\n outputs: [\n {\n internalType: 'uint256',\n name: 'timestamp',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nexport const batchGatewayAbi = [\n {\n name: 'query',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n {\n type: 'tuple[]',\n name: 'queries',\n components: [\n {\n type: 'address',\n name: 'sender',\n },\n {\n type: 'string[]',\n name: 'urls',\n },\n {\n type: 'bytes',\n name: 'data',\n },\n ],\n },\n ],\n outputs: [\n {\n type: 'bool[]',\n name: 'failures',\n },\n {\n type: 'bytes[]',\n name: 'responses',\n },\n ],\n },\n {\n name: 'HttpError',\n type: 'error',\n inputs: [\n {\n type: 'uint16',\n name: 'status',\n },\n {\n type: 'string',\n name: 'message',\n },\n ],\n },\n];\nconst universalResolverErrors = [\n {\n inputs: [\n {\n name: 'dns',\n type: 'bytes',\n },\n ],\n name: 'DNSDecodingFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n name: 'ens',\n type: 'string',\n },\n ],\n name: 'DNSEncodingFailed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'EmptyAddress',\n type: 'error',\n },\n {\n inputs: [\n {\n name: 'status',\n type: 'uint16',\n },\n {\n name: 'message',\n type: 'string',\n },\n ],\n name: 'HttpError',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidBatchGatewayResponse',\n type: 'error',\n },\n {\n inputs: [\n {\n name: 'errorData',\n type: 'bytes',\n },\n ],\n name: 'ResolverError',\n type: 'error',\n },\n {\n inputs: [\n {\n name: 'name',\n type: 'bytes',\n },\n {\n name: 'resolver',\n type: 'address',\n },\n ],\n name: 'ResolverNotContract',\n type: 'error',\n },\n {\n inputs: [\n {\n name: 'name',\n type: 'bytes',\n },\n ],\n name: 'ResolverNotFound',\n type: 'error',\n },\n {\n inputs: [\n {\n name: 'primary',\n type: 'string',\n },\n {\n name: 'primaryAddress',\n type: 'bytes',\n },\n ],\n name: 'ReverseAddressMismatch',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'selector',\n type: 'bytes4',\n },\n ],\n name: 'UnsupportedResolverProfile',\n type: 'error',\n },\n];\nexport const universalResolverResolveAbi = [\n ...universalResolverErrors,\n {\n name: 'resolveWithGateways',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes' },\n { name: 'data', type: 'bytes' },\n { name: 'gateways', type: 'string[]' },\n ],\n outputs: [\n { name: '', type: 'bytes' },\n { name: 'address', type: 'address' },\n ],\n },\n];\nexport const universalResolverReverseAbi = [\n ...universalResolverErrors,\n {\n name: 'reverseWithGateways',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { type: 'bytes', name: 'reverseName' },\n { type: 'uint256', name: 'coinType' },\n { type: 'string[]', name: 'gateways' },\n ],\n outputs: [\n { type: 'string', name: 'resolvedName' },\n { type: 'address', name: 'resolver' },\n { type: 'address', name: 'reverseResolver' },\n ],\n },\n];\nexport const textResolverAbi = [\n {\n name: 'text',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes32' },\n { name: 'key', type: 'string' },\n ],\n outputs: [{ name: '', type: 'string' }],\n },\n];\nexport const addressResolverAbi = [\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: 'name', type: 'bytes32' }],\n outputs: [{ name: '', type: 'address' }],\n },\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes32' },\n { name: 'coinType', type: 'uint256' },\n ],\n outputs: [{ name: '', type: 'bytes' }],\n },\n];\n// ERC-1271\n// isValidSignature(bytes32 hash, bytes signature) → bytes4 magicValue\n/** @internal */\nexport const erc1271Abi = [\n {\n name: 'isValidSignature',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'hash', type: 'bytes32' },\n { name: 'signature', type: 'bytes' },\n ],\n outputs: [{ name: '', type: 'bytes4' }],\n },\n];\n// ERC-6492 - universal deployless signature validator contract\n// constructor(address _signer, bytes32 _hash, bytes _signature) → bytes4 returnValue\n// returnValue is either 0x1 (valid) or 0x0 (invalid)\nexport const erc6492SignatureValidatorAbi = [\n {\n inputs: [\n {\n name: '_signer',\n type: 'address',\n },\n {\n name: '_hash',\n type: 'bytes32',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [\n {\n name: '_signer',\n type: 'address',\n },\n {\n name: '_hash',\n type: 'bytes32',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n name: 'isValidSig',\n },\n];\n/** [ERC-20 Token Standard](https://ethereum.org/en/developers/docs/standards/tokens/erc-20) */\nexport const erc20Abi = [\n {\n type: 'event',\n name: 'Approval',\n inputs: [\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n name: 'spender',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'event',\n name: 'Transfer',\n inputs: [\n {\n indexed: true,\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n name: 'to',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'allowance',\n stateMutability: 'view',\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n {\n name: 'spender',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'approve',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'spender',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n {\n type: 'function',\n name: 'balanceOf',\n stateMutability: 'view',\n inputs: [\n {\n name: 'account',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'decimals',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'uint8',\n },\n ],\n },\n {\n type: 'function',\n name: 'name',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'string',\n },\n ],\n },\n {\n type: 'function',\n name: 'symbol',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'string',\n },\n ],\n },\n {\n type: 'function',\n name: 'totalSupply',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'transfer',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'recipient',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n {\n type: 'function',\n name: 'transferFrom',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'recipient',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n];\n/**\n * [bytes32-flavored ERC-20](https://docs.makerdao.com/smart-contract-modules/mkr-module#4.-gotchas-potential-source-of-user-error)\n * for tokens (ie. Maker) that use bytes32 instead of string.\n */\nexport const erc20Abi_bytes32 = [\n {\n type: 'event',\n name: 'Approval',\n inputs: [\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n name: 'spender',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'event',\n name: 'Transfer',\n inputs: [\n {\n indexed: true,\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n name: 'to',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'allowance',\n stateMutability: 'view',\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n {\n name: 'spender',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'approve',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'spender',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n {\n type: 'function',\n name: 'balanceOf',\n stateMutability: 'view',\n inputs: [\n {\n name: 'account',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'decimals',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'uint8',\n },\n ],\n },\n {\n type: 'function',\n name: 'name',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'bytes32',\n },\n ],\n },\n {\n type: 'function',\n name: 'symbol',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'bytes32',\n },\n ],\n },\n {\n type: 'function',\n name: 'totalSupply',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'transfer',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'recipient',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n {\n type: 'function',\n name: 'transferFrom',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'recipient',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n];\n/** [ERC-1155 Multi Token Standard](https://ethereum.org/en/developers/docs/standards/tokens/erc-1155) */\nexport const erc1155Abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'balance',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'needed',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n name: 'ERC1155InsufficientBalance',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'approver',\n type: 'address',\n },\n ],\n name: 'ERC1155InvalidApprover',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'idsLength',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'valuesLength',\n type: 'uint256',\n },\n ],\n name: 'ERC1155InvalidArrayLength',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n ],\n name: 'ERC1155InvalidOperator',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n ],\n name: 'ERC1155InvalidReceiver',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'ERC1155InvalidSender',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'ERC1155MissingApprovalForAll',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'approved',\n type: 'bool',\n },\n ],\n name: 'ApprovalForAll',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256[]',\n name: 'ids',\n type: 'uint256[]',\n },\n {\n indexed: false,\n internalType: 'uint256[]',\n name: 'values',\n type: 'uint256[]',\n },\n ],\n name: 'TransferBatch',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'id',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'value',\n type: 'uint256',\n },\n ],\n name: 'TransferSingle',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'string',\n name: 'value',\n type: 'string',\n },\n {\n indexed: true,\n internalType: 'uint256',\n name: 'id',\n type: 'uint256',\n },\n ],\n name: 'URI',\n type: 'event',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'id',\n type: 'uint256',\n },\n ],\n name: 'balanceOf',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'accounts',\n type: 'address[]',\n },\n {\n internalType: 'uint256[]',\n name: 'ids',\n type: 'uint256[]',\n },\n ],\n name: 'balanceOfBatch',\n outputs: [\n {\n internalType: 'uint256[]',\n name: '',\n type: 'uint256[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n ],\n name: 'isApprovedForAll',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'from',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n {\n internalType: 'uint256[]',\n name: 'ids',\n type: 'uint256[]',\n },\n {\n internalType: 'uint256[]',\n name: 'values',\n type: 'uint256[]',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n ],\n name: 'safeBatchTransferFrom',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'from',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'id',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'value',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n ],\n name: 'safeTransferFrom',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n internalType: 'bool',\n name: 'approved',\n type: 'bool',\n },\n ],\n name: 'setApprovalForAll',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'uri',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\n/** [ERC-721 Non-Fungible Token Standard](https://ethereum.org/en/developers/docs/standards/tokens/erc-721) */\nexport const erc721Abi = [\n {\n type: 'event',\n name: 'Approval',\n inputs: [\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n name: 'spender',\n type: 'address',\n },\n {\n indexed: true,\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'event',\n name: 'ApprovalForAll',\n inputs: [\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n name: 'operator',\n type: 'address',\n },\n {\n indexed: false,\n name: 'approved',\n type: 'bool',\n },\n ],\n },\n {\n type: 'event',\n name: 'Transfer',\n inputs: [\n {\n indexed: true,\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n name: 'to',\n type: 'address',\n },\n {\n indexed: true,\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'approve',\n stateMutability: 'payable',\n inputs: [\n {\n name: 'spender',\n type: 'address',\n },\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [],\n },\n {\n type: 'function',\n name: 'balanceOf',\n stateMutability: 'view',\n inputs: [\n {\n name: 'account',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'getApproved',\n stateMutability: 'view',\n inputs: [\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'address',\n },\n ],\n },\n {\n type: 'function',\n name: 'isApprovedForAll',\n stateMutability: 'view',\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n {\n name: 'operator',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n {\n type: 'function',\n name: 'name',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'string',\n },\n ],\n },\n {\n type: 'function',\n name: 'ownerOf',\n stateMutability: 'view',\n inputs: [\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'owner',\n type: 'address',\n },\n ],\n },\n {\n type: 'function',\n name: 'safeTransferFrom',\n stateMutability: 'payable',\n inputs: [\n {\n name: 'from',\n type: 'address',\n },\n {\n name: 'to',\n type: 'address',\n },\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [],\n },\n {\n type: 'function',\n name: 'safeTransferFrom',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'from',\n type: 'address',\n },\n {\n name: 'to',\n type: 'address',\n },\n {\n name: 'id',\n type: 'uint256',\n },\n {\n name: 'data',\n type: 'bytes',\n },\n ],\n outputs: [],\n },\n {\n type: 'function',\n name: 'setApprovalForAll',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'operator',\n type: 'address',\n },\n {\n name: 'approved',\n type: 'bool',\n },\n ],\n outputs: [],\n },\n {\n type: 'function',\n name: 'symbol',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'string',\n },\n ],\n },\n {\n type: 'function',\n name: 'tokenByIndex',\n stateMutability: 'view',\n inputs: [\n {\n name: 'index',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'tokenByIndex',\n stateMutability: 'view',\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n {\n name: 'index',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'tokenURI',\n stateMutability: 'view',\n inputs: [\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'string',\n },\n ],\n },\n {\n type: 'function',\n name: 'totalSupply',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'transferFrom',\n stateMutability: 'payable',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'recipient',\n type: 'address',\n },\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [],\n },\n];\n/** [ERC-4626 Tokenized Vaults Standard](https://ethereum.org/en/developers/docs/standards/tokens/erc-4626) */\nexport const erc4626Abi = [\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n name: 'spender',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n name: 'Approval',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: false,\n name: 'assets',\n type: 'uint256',\n },\n {\n indexed: false,\n name: 'shares',\n type: 'uint256',\n },\n ],\n name: 'Deposit',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n name: 'to',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n name: 'Transfer',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: false,\n name: 'assets',\n type: 'uint256',\n },\n {\n indexed: false,\n name: 'shares',\n type: 'uint256',\n },\n ],\n name: 'Withdraw',\n type: 'event',\n },\n {\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n {\n name: 'spender',\n type: 'address',\n },\n ],\n name: 'allowance',\n outputs: [\n {\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'spender',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'approve',\n outputs: [\n {\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'asset',\n outputs: [\n {\n name: 'assetTokenAddress',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'account',\n type: 'address',\n },\n ],\n name: 'balanceOf',\n outputs: [\n {\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n name: 'convertToAssets',\n outputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n name: 'convertToShares',\n outputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n {\n name: 'receiver',\n type: 'address',\n },\n ],\n name: 'deposit',\n outputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'caller',\n type: 'address',\n },\n ],\n name: 'maxDeposit',\n outputs: [\n {\n name: 'maxAssets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'caller',\n type: 'address',\n },\n ],\n name: 'maxMint',\n outputs: [\n {\n name: 'maxShares',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'maxRedeem',\n outputs: [\n {\n name: 'maxShares',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'maxWithdraw',\n outputs: [\n {\n name: 'maxAssets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n {\n name: 'receiver',\n type: 'address',\n },\n ],\n name: 'mint',\n outputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n name: 'previewDeposit',\n outputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n name: 'previewMint',\n outputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n name: 'previewRedeem',\n outputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n name: 'previewWithdraw',\n outputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n {\n name: 'receiver',\n type: 'address',\n },\n {\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'redeem',\n outputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'totalAssets',\n outputs: [\n {\n name: 'totalManagedAssets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'totalSupply',\n outputs: [\n {\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'to',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'transfer',\n outputs: [\n {\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'from',\n type: 'address',\n },\n {\n name: 'to',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'transferFrom',\n outputs: [\n {\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n {\n name: 'receiver',\n type: 'address',\n },\n {\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'withdraw',\n outputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\n//# sourceMappingURL=abis.js.map","/**\n * @since 2.0.0\n */\nimport * as Equal from \"../Equal.js\";\nimport { dual } from \"../Function.js\";\nimport * as Hash from \"../Hash.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"../Inspectable.js\";\nimport { hasProperty } from \"../Predicate.js\";\nimport { EffectPrototype } from \"./effectable.js\";\nimport * as option from \"./option.js\";\n/**\n * @internal\n */\nexport const TypeId = /*#__PURE__*/Symbol.for(\"effect/Either\");\nconst CommonProto = {\n ...EffectPrototype,\n [TypeId]: {\n _R: _ => _\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n toString() {\n return format(this.toJSON());\n }\n};\nconst RightProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(CommonProto), {\n _tag: \"Right\",\n _op: \"Right\",\n [Equal.symbol](that) {\n return isEither(that) && isRight(that) && Equal.equals(this.right, that.right);\n },\n [Hash.symbol]() {\n return Hash.combine(Hash.hash(this._tag))(Hash.hash(this.right));\n },\n toJSON() {\n return {\n _id: \"Either\",\n _tag: this._tag,\n right: toJSON(this.right)\n };\n }\n});\nconst LeftProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(CommonProto), {\n _tag: \"Left\",\n _op: \"Left\",\n [Equal.symbol](that) {\n return isEither(that) && isLeft(that) && Equal.equals(this.left, that.left);\n },\n [Hash.symbol]() {\n return Hash.combine(Hash.hash(this._tag))(Hash.hash(this.left));\n },\n toJSON() {\n return {\n _id: \"Either\",\n _tag: this._tag,\n left: toJSON(this.left)\n };\n }\n});\n/** @internal */\nexport const isEither = input => hasProperty(input, TypeId);\n/** @internal */\nexport const isLeft = ma => ma._tag === \"Left\";\n/** @internal */\nexport const isRight = ma => ma._tag === \"Right\";\n/** @internal */\nexport const left = left => {\n const a = Object.create(LeftProto);\n a.left = left;\n return a;\n};\n/** @internal */\nexport const right = right => {\n const a = Object.create(RightProto);\n a.right = right;\n return a;\n};\n/** @internal */\nexport const getLeft = self => isRight(self) ? option.none : option.some(self.left);\n/** @internal */\nexport const getRight = self => isLeft(self) ? option.none : option.some(self.right);\n/** @internal */\nexport const fromOption = /*#__PURE__*/dual(2, (self, onNone) => option.isNone(self) ? left(onNone()) : right(self.value));\n//# sourceMappingURL=either.js.map","/** @internal */\nexport const make = (label, startTime) => ({\n label,\n startTime\n});\n/**\n * Sanitize a given string by replacing spaces, equal signs, and double quotes with underscores.\n *\n * @internal\n */\nexport const formatLabel = key => key.replace(/[\\s=\"]/g, \"_\");\n/** @internal */\nexport const render = now => self => {\n const label = formatLabel(self.label);\n return `${label}=${now - self.startTime}ms`;\n};\n//# sourceMappingURL=logSpan.js.map","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","import { BaseError } from './base.js';\nexport class ChainDoesNotSupportContract extends BaseError {\n constructor({ blockNumber, chain, contract, }) {\n super(`Chain \"${chain.name}\" does not support contract \"${contract.name}\".`, {\n metaMessages: [\n 'This could be due to any of the following:',\n ...(blockNumber &&\n contract.blockCreated &&\n contract.blockCreated > blockNumber\n ? [\n `- The contract \"${contract.name}\" was not deployed until block ${contract.blockCreated} (current block ${blockNumber}).`,\n ]\n : [\n `- The chain does not have the contract \"${contract.name}\" configured.`,\n ]),\n ],\n name: 'ChainDoesNotSupportContract',\n });\n }\n}\nexport class ChainMismatchError extends BaseError {\n constructor({ chain, currentChainId, }) {\n super(`The current chain of the wallet (id: ${currentChainId}) does not match the target chain for the transaction (id: ${chain.id} – ${chain.name}).`, {\n metaMessages: [\n `Current Chain ID: ${currentChainId}`,\n `Expected Chain ID: ${chain.id} – ${chain.name}`,\n ],\n name: 'ChainMismatchError',\n });\n }\n}\nexport class ChainNotFoundError extends BaseError {\n constructor() {\n super([\n 'No chain was provided to the request.',\n 'Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient.',\n ].join('\\n'), {\n name: 'ChainNotFoundError',\n });\n }\n}\nexport class ClientChainNotConfiguredError extends BaseError {\n constructor() {\n super('No chain was provided to the Client.', {\n name: 'ClientChainNotConfiguredError',\n });\n }\n}\nexport class InvalidChainIdError extends BaseError {\n constructor({ chainId }) {\n super(typeof chainId === 'number'\n ? `Chain ID \"${chainId}\" is invalid.`\n : 'Chain ID is invalid.', { name: 'InvalidChainIdError' });\n }\n}\n//# sourceMappingURL=chain.js.map","import { InvalidHexBooleanError, SizeOverflowError, } from '../../errors/encoding.js';\nimport { size as size_ } from '../data/size.js';\nimport { trim } from '../data/trim.js';\nimport { hexToBytes } from './toBytes.js';\nexport function assertSize(hexOrBytes, { size }) {\n if (size_(hexOrBytes) > size)\n throw new SizeOverflowError({\n givenSize: size_(hexOrBytes),\n maxSize: size,\n });\n}\n/**\n * Decodes a hex string into a string, number, bigint, boolean, or byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex\n * - Example: https://viem.sh/docs/utilities/fromHex#usage\n *\n * @param hex Hex string to decode.\n * @param toOrOpts Type to convert to or options.\n * @returns Decoded value.\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x1a4', 'number')\n * // 420\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c6421', 'string')\n * // 'Hello world'\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * to: 'string'\n * })\n * // 'Hello world'\n */\nexport function fromHex(hex, toOrOpts) {\n const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts;\n const to = opts.to;\n if (to === 'number')\n return hexToNumber(hex, opts);\n if (to === 'bigint')\n return hexToBigInt(hex, opts);\n if (to === 'string')\n return hexToString(hex, opts);\n if (to === 'boolean')\n return hexToBool(hex, opts);\n return hexToBytes(hex, opts);\n}\n/**\n * Decodes a hex value into a bigint.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextobigint\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns BigInt value.\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x1a4', { signed: true })\n * // 420n\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420n\n */\nexport function hexToBigInt(hex, opts = {}) {\n const { signed } = opts;\n if (opts.size)\n assertSize(hex, { size: opts.size });\n const value = BigInt(hex);\n if (!signed)\n return value;\n const size = (hex.length - 2) / 2;\n const max = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n if (value <= max)\n return value;\n return value - BigInt(`0x${'f'.padStart(size * 2, 'f')}`) - 1n;\n}\n/**\n * Decodes a hex value into a boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextobool\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Boolean value.\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x01')\n * // true\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x0000000000000000000000000000000000000000000000000000000000000001', { size: 32 })\n * // true\n */\nexport function hexToBool(hex_, opts = {}) {\n let hex = hex_;\n if (opts.size) {\n assertSize(hex, { size: opts.size });\n hex = trim(hex);\n }\n if (trim(hex) === '0x00')\n return false;\n if (trim(hex) === '0x01')\n return true;\n throw new InvalidHexBooleanError(hex);\n}\n/**\n * Decodes a hex string into a number.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextonumber\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Number value.\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToNumber('0x1a4')\n * // 420\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420\n */\nexport function hexToNumber(hex, opts = {}) {\n return Number(hexToBigInt(hex, opts));\n}\n/**\n * Decodes a hex value into a UTF-8 string.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextostring\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns String value.\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c6421')\n * // 'Hello world!'\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * })\n * // 'Hello world'\n */\nexport function hexToString(hex, opts = {}) {\n let bytes = hexToBytes(hex);\n if (opts.size) {\n assertSize(bytes, { size: opts.size });\n bytes = trim(bytes, { dir: 'right' });\n }\n return new TextDecoder().decode(bytes);\n}\n//# sourceMappingURL=fromHex.js.map","import { BaseError } from './base.js';\nexport class BlockNotFoundError extends BaseError {\n constructor({ blockHash, blockNumber, }) {\n let identifier = 'Block';\n if (blockHash)\n identifier = `Block at hash \"${blockHash}\"`;\n if (blockNumber)\n identifier = `Block at number \"${blockNumber}\"`;\n super(`${identifier} could not be found.`, { name: 'BlockNotFoundError' });\n }\n}\n//# sourceMappingURL=block.js.map","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n assert(sig.length === eddsa.encodingLength * 2, 'Signature has invalid size');\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","import { BaseError } from './base.js';\nexport class UrlRequiredError extends BaseError {\n constructor() {\n super('No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.', {\n docsPath: '/docs/clients/intro',\n name: 'UrlRequiredError',\n });\n }\n}\n//# sourceMappingURL=transport.js.map","function createIdStore() {\n return {\n current: 0,\n take() {\n return this.current++;\n },\n reset() {\n this.current = 0;\n },\n };\n}\nexport const idCache = /*#__PURE__*/ createIdStore();\n//# sourceMappingURL=id.js.map","import { LruMap } from '../lru.js';\n/** @internal */\nexport const promiseCache = /*#__PURE__*/ new LruMap(8192);\n/** Deduplicates in-flight promises. */\nexport function withDedupe(fn, { enabled = true, id }) {\n if (!enabled || !id)\n return fn();\n if (promiseCache.get(id))\n return promiseCache.get(id);\n const promise = fn().finally(() => promiseCache.delete(id));\n promiseCache.set(id, promise);\n return promise;\n}\n//# sourceMappingURL=withDedupe.js.map","import { BaseError } from '../errors/base.js';\nimport { HttpRequestError, } from '../errors/request.js';\nimport { AtomicityNotSupportedError, AtomicReadyWalletRejectedUpgradeError, BundleTooLargeError, ChainDisconnectedError, DuplicateIdError, InternalRpcError, InvalidInputRpcError, InvalidParamsRpcError, InvalidRequestRpcError, JsonRpcVersionUnsupportedError, LimitExceededRpcError, MethodNotFoundRpcError, MethodNotSupportedRpcError, ParseRpcError, ProviderDisconnectedError, ResourceNotFoundRpcError, ResourceUnavailableRpcError, SwitchChainError, TransactionRejectedRpcError, UnauthorizedProviderError, UnknownBundleIdError, UnknownRpcError, UnsupportedChainIdError, UnsupportedNonOptionalCapabilityError, UnsupportedProviderMethodError, UserRejectedRequestError, } from '../errors/rpc.js';\nimport { stringToHex } from './encoding/toHex.js';\nimport { withDedupe } from './promise/withDedupe.js';\nimport { withRetry } from './promise/withRetry.js';\nimport { stringify } from './stringify.js';\nexport function buildRequest(request, options = {}) {\n return async (args, overrideOptions = {}) => {\n const { dedupe = false, methods, retryDelay = 150, retryCount = 3, uid, } = {\n ...options,\n ...overrideOptions,\n };\n const { method } = args;\n if (methods?.exclude?.includes(method))\n throw new MethodNotSupportedRpcError(new Error('method not supported'), {\n method,\n });\n if (methods?.include && !methods.include.includes(method))\n throw new MethodNotSupportedRpcError(new Error('method not supported'), {\n method,\n });\n const requestId = dedupe\n ? stringToHex(`${uid}.${stringify(args)}`)\n : undefined;\n return withDedupe(() => withRetry(async () => {\n try {\n return await request(args);\n }\n catch (err_) {\n const err = err_;\n switch (err.code) {\n // -32700\n case ParseRpcError.code:\n throw new ParseRpcError(err);\n // -32600\n case InvalidRequestRpcError.code:\n throw new InvalidRequestRpcError(err);\n // -32601\n case MethodNotFoundRpcError.code:\n throw new MethodNotFoundRpcError(err, { method: args.method });\n // -32602\n case InvalidParamsRpcError.code:\n throw new InvalidParamsRpcError(err);\n // -32603\n case InternalRpcError.code:\n throw new InternalRpcError(err);\n // -32000\n case InvalidInputRpcError.code:\n throw new InvalidInputRpcError(err);\n // -32001\n case ResourceNotFoundRpcError.code:\n throw new ResourceNotFoundRpcError(err);\n // -32002\n case ResourceUnavailableRpcError.code:\n throw new ResourceUnavailableRpcError(err);\n // -32003\n case TransactionRejectedRpcError.code:\n throw new TransactionRejectedRpcError(err);\n // -32004\n case MethodNotSupportedRpcError.code:\n throw new MethodNotSupportedRpcError(err, {\n method: args.method,\n });\n // -32005\n case LimitExceededRpcError.code:\n throw new LimitExceededRpcError(err);\n // -32006\n case JsonRpcVersionUnsupportedError.code:\n throw new JsonRpcVersionUnsupportedError(err);\n // 4001\n case UserRejectedRequestError.code:\n throw new UserRejectedRequestError(err);\n // 4100\n case UnauthorizedProviderError.code:\n throw new UnauthorizedProviderError(err);\n // 4200\n case UnsupportedProviderMethodError.code:\n throw new UnsupportedProviderMethodError(err);\n // 4900\n case ProviderDisconnectedError.code:\n throw new ProviderDisconnectedError(err);\n // 4901\n case ChainDisconnectedError.code:\n throw new ChainDisconnectedError(err);\n // 4902\n case SwitchChainError.code:\n throw new SwitchChainError(err);\n // 5700\n case UnsupportedNonOptionalCapabilityError.code:\n throw new UnsupportedNonOptionalCapabilityError(err);\n // 5710\n case UnsupportedChainIdError.code:\n throw new UnsupportedChainIdError(err);\n // 5720\n case DuplicateIdError.code:\n throw new DuplicateIdError(err);\n // 5730\n case UnknownBundleIdError.code:\n throw new UnknownBundleIdError(err);\n // 5740\n case BundleTooLargeError.code:\n throw new BundleTooLargeError(err);\n // 5750\n case AtomicReadyWalletRejectedUpgradeError.code:\n throw new AtomicReadyWalletRejectedUpgradeError(err);\n // 5760\n case AtomicityNotSupportedError.code:\n throw new AtomicityNotSupportedError(err);\n // CAIP-25: User Rejected Error\n // https://docs.walletconnect.com/2.0/specs/clients/sign/error-codes#rejected-caip-25\n case 5000:\n throw new UserRejectedRequestError(err);\n default:\n if (err_ instanceof BaseError)\n throw err_;\n throw new UnknownRpcError(err);\n }\n }\n }, {\n delay: ({ count, error }) => {\n // If we find a Retry-After header, let's retry after the given time.\n if (error && error instanceof HttpRequestError) {\n const retryAfter = error?.headers?.get('Retry-After');\n if (retryAfter?.match(/\\d/))\n return Number.parseInt(retryAfter, 10) * 1000;\n }\n // Otherwise, let's retry with an exponential backoff.\n return ~~(1 << count) * retryDelay;\n },\n retryCount,\n shouldRetry: ({ error }) => shouldRetry(error),\n }), { enabled: dedupe, id: requestId });\n };\n}\n/** @internal */\nexport function shouldRetry(error) {\n if ('code' in error && typeof error.code === 'number') {\n if (error.code === -1)\n return true; // Unknown error\n if (error.code === LimitExceededRpcError.code)\n return true;\n if (error.code === InternalRpcError.code)\n return true;\n return false;\n }\n if (error instanceof HttpRequestError && error.status) {\n // Forbidden\n if (error.status === 403)\n return true;\n // Request Timeout\n if (error.status === 408)\n return true;\n // Request Entity Too Large\n if (error.status === 413)\n return true;\n // Too Many Requests\n if (error.status === 429)\n return true;\n // Internal Server Error\n if (error.status === 500)\n return true;\n // Bad Gateway\n if (error.status === 502)\n return true;\n // Service Unavailable\n if (error.status === 503)\n return true;\n // Gateway Timeout\n if (error.status === 504)\n return true;\n return false;\n }\n return true;\n}\n//# sourceMappingURL=buildRequest.js.map","import { RpcRequestError } from '../../errors/request.js';\nimport { UrlRequiredError, } from '../../errors/transport.js';\nimport { createBatchScheduler } from '../../utils/promise/createBatchScheduler.js';\nimport { getHttpRpcClient, } from '../../utils/rpc/http.js';\nimport { createTransport, } from './createTransport.js';\n/**\n * @description Creates a HTTP transport that connects to a JSON-RPC API.\n */\nexport function http(\n/** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */\nurl, config = {}) {\n const { batch, fetchFn, fetchOptions, key = 'http', methods, name = 'HTTP JSON-RPC', onFetchRequest, onFetchResponse, retryDelay, raw, } = config;\n return ({ chain, retryCount: retryCount_, timeout: timeout_ }) => {\n const { batchSize = 1000, wait = 0 } = typeof batch === 'object' ? batch : {};\n const retryCount = config.retryCount ?? retryCount_;\n const timeout = timeout_ ?? config.timeout ?? 10_000;\n const url_ = url || chain?.rpcUrls.default.http[0];\n if (!url_)\n throw new UrlRequiredError();\n const rpcClient = getHttpRpcClient(url_, {\n fetchFn,\n fetchOptions,\n onRequest: onFetchRequest,\n onResponse: onFetchResponse,\n timeout,\n });\n return createTransport({\n key,\n methods,\n name,\n async request({ method, params }) {\n const body = { method, params };\n const { schedule } = createBatchScheduler({\n id: url_,\n wait,\n shouldSplitBatch(requests) {\n return requests.length > batchSize;\n },\n fn: (body) => rpcClient.request({\n body,\n }),\n sort: (a, b) => a.id - b.id,\n });\n const fn = async (body) => batch\n ? schedule(body)\n : [\n await rpcClient.request({\n body,\n }),\n ];\n const [{ error, result }] = await fn(body);\n if (raw)\n return { error, result };\n if (error)\n throw new RpcRequestError({\n body,\n error,\n url: url_,\n });\n return result;\n },\n retryCount,\n retryDelay,\n timeout,\n type: 'http',\n }, {\n fetchOptions,\n url: url_,\n });\n };\n}\n//# sourceMappingURL=http.js.map","import { HttpRequestError, TimeoutError, } from '../../errors/request.js';\nimport { withTimeout, } from '../promise/withTimeout.js';\nimport { stringify } from '../stringify.js';\nimport { idCache } from './id.js';\nexport function getHttpRpcClient(url, options = {}) {\n return {\n async request(params) {\n const { body, fetchFn = options.fetchFn ?? fetch, onRequest = options.onRequest, onResponse = options.onResponse, timeout = options.timeout ?? 10_000, } = params;\n const fetchOptions = {\n ...(options.fetchOptions ?? {}),\n ...(params.fetchOptions ?? {}),\n };\n const { headers, method, signal: signal_ } = fetchOptions;\n try {\n const response = await withTimeout(async ({ signal }) => {\n const init = {\n ...fetchOptions,\n body: Array.isArray(body)\n ? stringify(body.map((body) => ({\n jsonrpc: '2.0',\n id: body.id ?? idCache.take(),\n ...body,\n })))\n : stringify({\n jsonrpc: '2.0',\n id: body.id ?? idCache.take(),\n ...body,\n }),\n headers: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n method: method || 'POST',\n signal: signal_ || (timeout > 0 ? signal : null),\n };\n const request = new Request(url, init);\n const args = (await onRequest?.(request, init)) ?? { ...init, url };\n const response = await fetchFn(args.url ?? url, args);\n return response;\n }, {\n errorInstance: new TimeoutError({ body, url }),\n timeout,\n signal: true,\n });\n if (onResponse)\n await onResponse(response);\n let data;\n if (response.headers.get('Content-Type')?.startsWith('application/json'))\n data = await response.json();\n else {\n data = await response.text();\n try {\n data = JSON.parse(data || '{}');\n }\n catch (err) {\n if (response.ok)\n throw err;\n data = { error: data };\n }\n }\n if (!response.ok) {\n throw new HttpRequestError({\n body,\n details: stringify(data.error) || response.statusText,\n headers: response.headers,\n status: response.status,\n url,\n });\n }\n return data;\n }\n catch (err) {\n if (err instanceof HttpRequestError)\n throw err;\n if (err instanceof TimeoutError)\n throw err;\n throw new HttpRequestError({\n body,\n cause: err,\n url,\n });\n }\n },\n };\n}\n//# sourceMappingURL=http.js.map","export function withTimeout(fn, { errorInstance = new Error('timed out'), timeout, signal, }) {\n return new Promise((resolve, reject) => {\n ;\n (async () => {\n let timeoutId;\n try {\n const controller = new AbortController();\n if (timeout > 0) {\n timeoutId = setTimeout(() => {\n if (signal) {\n controller.abort();\n }\n else {\n reject(errorInstance);\n }\n }, timeout); // need to cast because bun globals.d.ts overrides @types/node\n }\n resolve(await fn({ signal: controller?.signal || null }));\n }\n catch (err) {\n if (err?.name === 'AbortError')\n reject(errorInstance);\n reject(err);\n }\n finally {\n clearTimeout(timeoutId);\n }\n })();\n });\n}\n//# sourceMappingURL=withTimeout.js.map","import { buildRequest } from '../../utils/buildRequest.js';\nimport { uid as uid_ } from '../../utils/uid.js';\n/**\n * @description Creates an transport intended to be used with a client.\n */\nexport function createTransport({ key, methods, name, request, retryCount = 3, retryDelay = 150, timeout, type, }, value) {\n const uid = uid_();\n return {\n config: {\n key,\n methods,\n name,\n request,\n retryCount,\n retryDelay,\n timeout,\n type,\n },\n request: buildRequest(request, { methods, retryCount, retryDelay, uid }),\n value,\n };\n}\n//# sourceMappingURL=createTransport.js.map","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","/**\n * Tests if a value is a `function`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { isFunction } from \"effect/Predicate\"\n *\n * assert.deepStrictEqual(isFunction(isFunction), true)\n * assert.deepStrictEqual(isFunction(\"function\"), false)\n * ```\n *\n * @category guards\n * @since 2.0.0\n */\nexport const isFunction = input => typeof input === \"function\";\n/**\n * Creates a function that can be used in a data-last (aka `pipe`able) or\n * data-first style.\n *\n * The first parameter to `dual` is either the arity of the uncurried function\n * or a predicate that determines if the function is being used in a data-first\n * or data-last style.\n *\n * Using the arity is the most common use case, but there are some cases where\n * you may want to use a predicate. For example, if you have a function that\n * takes an optional argument, you can use a predicate to determine if the\n * function is being used in a data-first or data-last style.\n *\n * You can pass either the arity of the uncurried function or a predicate\n * which determines if the function is being used in a data-first or\n * data-last style.\n *\n * **Example** (Using arity to determine data-first or data-last style)\n *\n * ```ts\n * import { dual, pipe } from \"effect/Function\"\n *\n * const sum = dual<\n * (that: number) => (self: number) => number,\n * (self: number, that: number) => number\n * >(2, (self, that) => self + that)\n *\n * console.log(sum(2, 3)) // 5\n * console.log(pipe(2, sum(3))) // 5\n * ```\n *\n * **Example** (Using call signatures to define the overloads)\n *\n * ```ts\n * import { dual, pipe } from \"effect/Function\"\n *\n * const sum: {\n * (that: number): (self: number) => number\n * (self: number, that: number): number\n * } = dual(2, (self: number, that: number): number => self + that)\n *\n * console.log(sum(2, 3)) // 5\n * console.log(pipe(2, sum(3))) // 5\n * ```\n *\n * **Example** (Using a predicate to determine data-first or data-last style)\n *\n * ```ts\n * import { dual, pipe } from \"effect/Function\"\n *\n * const sum = dual<\n * (that: number) => (self: number) => number,\n * (self: number, that: number) => number\n * >(\n * (args) => args.length === 2,\n * (self, that) => self + that\n * )\n *\n * console.log(sum(2, 3)) // 5\n * console.log(pipe(2, sum(3))) // 5\n * ```\n *\n * @since 2.0.0\n */\nexport const dual = function (arity, body) {\n if (typeof arity === \"function\") {\n return function () {\n if (arity(arguments)) {\n // @ts-expect-error\n return body.apply(this, arguments);\n }\n return self => body(self, ...arguments);\n };\n }\n switch (arity) {\n case 0:\n case 1:\n throw new RangeError(`Invalid arity ${arity}`);\n case 2:\n return function (a, b) {\n if (arguments.length >= 2) {\n return body(a, b);\n }\n return function (self) {\n return body(self, a);\n };\n };\n case 3:\n return function (a, b, c) {\n if (arguments.length >= 3) {\n return body(a, b, c);\n }\n return function (self) {\n return body(self, a, b);\n };\n };\n case 4:\n return function (a, b, c, d) {\n if (arguments.length >= 4) {\n return body(a, b, c, d);\n }\n return function (self) {\n return body(self, a, b, c);\n };\n };\n case 5:\n return function (a, b, c, d, e) {\n if (arguments.length >= 5) {\n return body(a, b, c, d, e);\n }\n return function (self) {\n return body(self, a, b, c, d);\n };\n };\n default:\n return function () {\n if (arguments.length >= arity) {\n // @ts-expect-error\n return body.apply(this, arguments);\n }\n const args = arguments;\n return function (self) {\n return body(self, ...args);\n };\n };\n }\n};\n/**\n * Apply a function to given values.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { pipe, apply } from \"effect/Function\"\n * import { length } from \"effect/String\"\n *\n * assert.deepStrictEqual(pipe(length, apply(\"hello\")), 5)\n * ```\n *\n * @since 2.0.0\n */\nexport const apply = (...a) => self => self(...a);\n/**\n * The identity function, i.e. A function that returns its input argument.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { identity } from \"effect/Function\"\n *\n * assert.deepStrictEqual(identity(5), 5)\n * ```\n *\n * @since 2.0.0\n */\nexport const identity = a => a;\n/**\n * A function that ensures that the type of an expression matches some type,\n * without changing the resulting type of that expression.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { satisfies } from \"effect/Function\"\n *\n * const test1 = satisfies()(5 as const)\n * //^? const test: 5\n * // @ts-expect-error\n * const test2 = satisfies()(5)\n * //^? Argument of type 'number' is not assignable to parameter of type 'string'\n *\n * assert.deepStrictEqual(satisfies()(5), 5)\n * ```\n *\n * @since 2.0.0\n */\nexport const satisfies = () => b => b;\n/**\n * Casts the result to the specified type.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { unsafeCoerce, identity } from \"effect/Function\"\n *\n * assert.deepStrictEqual(unsafeCoerce, identity)\n * ```\n *\n * @since 2.0.0\n */\nexport const unsafeCoerce = identity;\n/**\n * Creates a constant value that never changes.\n *\n * This is useful when you want to pass a value to a higher-order function (a function that takes another function as its argument)\n * and want that inner function to always use the same value, no matter how many times it is called.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { constant } from \"effect/Function\"\n *\n * const constNull = constant(null)\n *\n * assert.deepStrictEqual(constNull(), null)\n * assert.deepStrictEqual(constNull(), null)\n * ```\n *\n * @since 2.0.0\n */\nexport const constant = value => () => value;\n/**\n * A thunk that returns always `true`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { constTrue } from \"effect/Function\"\n *\n * assert.deepStrictEqual(constTrue(), true)\n * ```\n *\n * @since 2.0.0\n */\nexport const constTrue = /*#__PURE__*/constant(true);\n/**\n * A thunk that returns always `false`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { constFalse } from \"effect/Function\"\n *\n * assert.deepStrictEqual(constFalse(), false)\n * ```\n *\n * @since 2.0.0\n */\nexport const constFalse = /*#__PURE__*/constant(false);\n/**\n * A thunk that returns always `null`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { constNull } from \"effect/Function\"\n *\n * assert.deepStrictEqual(constNull(), null)\n * ```\n *\n * @since 2.0.0\n */\nexport const constNull = /*#__PURE__*/constant(null);\n/**\n * A thunk that returns always `undefined`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { constUndefined } from \"effect/Function\"\n *\n * assert.deepStrictEqual(constUndefined(), undefined)\n * ```\n *\n * @since 2.0.0\n */\nexport const constUndefined = /*#__PURE__*/constant(undefined);\n/**\n * A thunk that returns always `void`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { constVoid } from \"effect/Function\"\n *\n * assert.deepStrictEqual(constVoid(), undefined)\n * ```\n *\n * @since 2.0.0\n */\nexport const constVoid = constUndefined;\n/**\n * Reverses the order of arguments for a curried function.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { flip } from \"effect/Function\"\n *\n * const f = (a: number) => (b: string) => a - b.length\n *\n * assert.deepStrictEqual(flip(f)('aaa')(2), -1)\n * ```\n *\n * @since 2.0.0\n */\nexport const flip = f => (...b) => (...a) => f(...a)(...b);\n/**\n * Composes two functions, `ab` and `bc` into a single function that takes in an argument `a` of type `A` and returns a result of type `C`.\n * The result is obtained by first applying the `ab` function to `a` and then applying the `bc` function to the result of `ab`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { compose } from \"effect/Function\"\n *\n * const increment = (n: number) => n + 1;\n * const square = (n: number) => n * n;\n *\n * assert.strictEqual(compose(increment, square)(2), 9);\n * ```\n *\n * @since 2.0.0\n */\nexport const compose = /*#__PURE__*/dual(2, (ab, bc) => a => bc(ab(a)));\n/**\n * The `absurd` function is a stub for cases where a value of type `never` is encountered in your code,\n * meaning that it should be impossible for this code to be executed.\n *\n * This function is particularly useful when it's necessary to specify that certain cases are impossible.\n *\n * @since 2.0.0\n */\nexport const absurd = _ => {\n throw new Error(\"Called `absurd` function which should be uncallable\");\n};\n/**\n * Creates a version of this function: instead of `n` arguments, it accepts a single tuple argument.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { tupled } from \"effect/Function\"\n *\n * const sumTupled = tupled((x: number, y: number): number => x + y)\n *\n * assert.deepStrictEqual(sumTupled([1, 2]), 3)\n * ```\n *\n * @since 2.0.0\n */\nexport const tupled = f => a => f(...a);\n/**\n * Inverse function of `tupled`\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { untupled } from \"effect/Function\"\n *\n * const getFirst = untupled((tuple: [A, B]): A => tuple[0])\n *\n * assert.deepStrictEqual(getFirst(1, 2), 1)\n * ```\n *\n * @since 2.0.0\n */\nexport const untupled = f => (...a) => f(a);\nexport function pipe(a, ab, bc, cd, de, ef, fg, gh, hi) {\n switch (arguments.length) {\n case 1:\n return a;\n case 2:\n return ab(a);\n case 3:\n return bc(ab(a));\n case 4:\n return cd(bc(ab(a)));\n case 5:\n return de(cd(bc(ab(a))));\n case 6:\n return ef(de(cd(bc(ab(a)))));\n case 7:\n return fg(ef(de(cd(bc(ab(a))))));\n case 8:\n return gh(fg(ef(de(cd(bc(ab(a)))))));\n case 9:\n return hi(gh(fg(ef(de(cd(bc(ab(a))))))));\n default:\n {\n let ret = arguments[0];\n for (let i = 1; i < arguments.length; i++) {\n ret = arguments[i](ret);\n }\n return ret;\n }\n }\n}\nexport function flow(ab, bc, cd, de, ef, fg, gh, hi, ij) {\n switch (arguments.length) {\n case 1:\n return ab;\n case 2:\n return function () {\n return bc(ab.apply(this, arguments));\n };\n case 3:\n return function () {\n return cd(bc(ab.apply(this, arguments)));\n };\n case 4:\n return function () {\n return de(cd(bc(ab.apply(this, arguments))));\n };\n case 5:\n return function () {\n return ef(de(cd(bc(ab.apply(this, arguments)))));\n };\n case 6:\n return function () {\n return fg(ef(de(cd(bc(ab.apply(this, arguments))))));\n };\n case 7:\n return function () {\n return gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))));\n };\n case 8:\n return function () {\n return hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))));\n };\n case 9:\n return function () {\n return ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))))));\n };\n }\n return;\n}\n/**\n * Type hole simulation.\n *\n * @since 2.0.0\n */\nexport const hole = /*#__PURE__*/unsafeCoerce(absurd);\n/**\n * The SK combinator, also known as the \"S-K combinator\" or \"S-combinator\", is a fundamental combinator in the\n * lambda calculus and the SKI combinator calculus.\n *\n * This function is useful for discarding the first argument passed to it and returning the second argument.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { SK } from \"effect/Function\";\n *\n * assert.deepStrictEqual(SK(0, \"hello\"), \"hello\")\n * ```\n *\n * @since 2.0.0\n */\nexport const SK = (_, b) => b;\n//# sourceMappingURL=Function.js.map","import { AbiDecodingDataSizeTooSmallError, AbiEventSignatureEmptyTopicsError, AbiEventSignatureNotFoundError, DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';\nimport { PositionOutOfBoundsError } from '../../errors/cursor.js';\nimport { size } from '../data/size.js';\nimport { toEventSelector, } from '../hash/toEventSelector.js';\nimport { decodeAbiParameters, } from './decodeAbiParameters.js';\nimport { formatAbiItem } from './formatAbiItem.js';\nconst docsPath = '/docs/contract/decodeEventLog';\nexport function decodeEventLog(parameters) {\n const { abi, data, strict: strict_, topics, } = parameters;\n const strict = strict_ ?? true;\n const [signature, ...argTopics] = topics;\n if (!signature)\n throw new AbiEventSignatureEmptyTopicsError({ docsPath });\n const abiItem = abi.find((x) => x.type === 'event' &&\n signature === toEventSelector(formatAbiItem(x)));\n if (!(abiItem && 'name' in abiItem) || abiItem.type !== 'event')\n throw new AbiEventSignatureNotFoundError(signature, { docsPath });\n const { name, inputs } = abiItem;\n const isUnnamed = inputs?.some((x) => !('name' in x && x.name));\n const args = isUnnamed ? [] : {};\n // Decode topics (indexed args).\n const indexedInputs = inputs\n .map((x, i) => [x, i])\n .filter(([x]) => 'indexed' in x && x.indexed);\n for (let i = 0; i < indexedInputs.length; i++) {\n const [param, argIndex] = indexedInputs[i];\n const topic = argTopics[i];\n if (!topic)\n throw new DecodeLogTopicsMismatch({\n abiItem,\n param: param,\n });\n args[isUnnamed ? argIndex : param.name || argIndex] = decodeTopic({\n param,\n value: topic,\n });\n }\n // Decode data (non-indexed args).\n const nonIndexedInputs = inputs.filter((x) => !('indexed' in x && x.indexed));\n if (nonIndexedInputs.length > 0) {\n if (data && data !== '0x') {\n try {\n const decodedData = decodeAbiParameters(nonIndexedInputs, data);\n if (decodedData) {\n if (isUnnamed)\n for (let i = 0; i < inputs.length; i++)\n args[i] = args[i] ?? decodedData.shift();\n else\n for (let i = 0; i < nonIndexedInputs.length; i++)\n args[nonIndexedInputs[i].name] = decodedData[i];\n }\n }\n catch (err) {\n if (strict) {\n if (err instanceof AbiDecodingDataSizeTooSmallError ||\n err instanceof PositionOutOfBoundsError)\n throw new DecodeLogDataMismatch({\n abiItem,\n data: data,\n params: nonIndexedInputs,\n size: size(data),\n });\n throw err;\n }\n }\n }\n else if (strict) {\n throw new DecodeLogDataMismatch({\n abiItem,\n data: '0x',\n params: nonIndexedInputs,\n size: 0,\n });\n }\n }\n return {\n eventName: name,\n args: Object.values(args).length > 0 ? args : undefined,\n };\n}\nfunction decodeTopic({ param, value }) {\n if (param.type === 'string' ||\n param.type === 'bytes' ||\n param.type === 'tuple' ||\n param.type.match(/^(.*)\\[(\\d+)?\\]$/))\n return value;\n const decodedArg = decodeAbiParameters([param], value) || [];\n return decodedArg[0];\n}\n//# sourceMappingURL=decodeEventLog.js.map","/** @internal */\nexport const OP_DIE = \"Die\";\n/** @internal */\nexport const OP_EMPTY = \"Empty\";\n/** @internal */\nexport const OP_FAIL = \"Fail\";\n/** @internal */\nexport const OP_INTERRUPT = \"Interrupt\";\n/** @internal */\nexport const OP_PARALLEL = \"Parallel\";\n/** @internal */\nexport const OP_SEQUENTIAL = \"Sequential\";\n//# sourceMappingURL=cause.js.map","import * as Arr from \"../Array.js\";\nimport * as Chunk from \"../Chunk.js\";\nimport * as Either from \"../Either.js\";\nimport * as Equal from \"../Equal.js\";\nimport { constFalse, constTrue, dual, identity, pipe } from \"../Function.js\";\nimport { globalValue } from \"../GlobalValue.js\";\nimport * as Hash from \"../Hash.js\";\nimport * as HashSet from \"../HashSet.js\";\nimport { NodeInspectSymbol, stringifyCircular, toJSON } from \"../Inspectable.js\";\nimport * as Option from \"../Option.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport { hasProperty, isFunction } from \"../Predicate.js\";\nimport { getBugErrorMessage } from \"./errors.js\";\nimport * as OpCodes from \"./opCodes/cause.js\";\n// -----------------------------------------------------------------------------\n// Models\n// -----------------------------------------------------------------------------\n/** @internal */\nconst CauseSymbolKey = \"effect/Cause\";\n/** @internal */\nexport const CauseTypeId = /*#__PURE__*/Symbol.for(CauseSymbolKey);\nconst variance = {\n /* c8 ignore next */\n _E: _ => _\n};\n/** @internal */\nconst proto = {\n [CauseTypeId]: variance,\n [Hash.symbol]() {\n return pipe(Hash.hash(CauseSymbolKey), Hash.combine(Hash.hash(flattenCause(this))), Hash.cached(this));\n },\n [Equal.symbol](that) {\n return isCause(that) && causeEquals(this, that);\n },\n pipe() {\n return pipeArguments(this, arguments);\n },\n toJSON() {\n switch (this._tag) {\n case \"Empty\":\n return {\n _id: \"Cause\",\n _tag: this._tag\n };\n case \"Die\":\n return {\n _id: \"Cause\",\n _tag: this._tag,\n defect: toJSON(this.defect)\n };\n case \"Interrupt\":\n return {\n _id: \"Cause\",\n _tag: this._tag,\n fiberId: this.fiberId.toJSON()\n };\n case \"Fail\":\n return {\n _id: \"Cause\",\n _tag: this._tag,\n failure: toJSON(this.error)\n };\n case \"Sequential\":\n case \"Parallel\":\n return {\n _id: \"Cause\",\n _tag: this._tag,\n left: toJSON(this.left),\n right: toJSON(this.right)\n };\n }\n },\n toString() {\n return pretty(this);\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n }\n};\n// -----------------------------------------------------------------------------\n// Constructors\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const empty = /*#__PURE__*/(() => {\n const o = /*#__PURE__*/Object.create(proto);\n o._tag = OpCodes.OP_EMPTY;\n return o;\n})();\n/** @internal */\nexport const fail = error => {\n const o = Object.create(proto);\n o._tag = OpCodes.OP_FAIL;\n o.error = error;\n return o;\n};\n/** @internal */\nexport const die = defect => {\n const o = Object.create(proto);\n o._tag = OpCodes.OP_DIE;\n o.defect = defect;\n return o;\n};\n/** @internal */\nexport const interrupt = fiberId => {\n const o = Object.create(proto);\n o._tag = OpCodes.OP_INTERRUPT;\n o.fiberId = fiberId;\n return o;\n};\n/** @internal */\nexport const parallel = (left, right) => {\n const o = Object.create(proto);\n o._tag = OpCodes.OP_PARALLEL;\n o.left = left;\n o.right = right;\n return o;\n};\n/** @internal */\nexport const sequential = (left, right) => {\n const o = Object.create(proto);\n o._tag = OpCodes.OP_SEQUENTIAL;\n o.left = left;\n o.right = right;\n return o;\n};\n// -----------------------------------------------------------------------------\n// Refinements\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const isCause = u => hasProperty(u, CauseTypeId);\n/** @internal */\nexport const isEmptyType = self => self._tag === OpCodes.OP_EMPTY;\n/** @internal */\nexport const isFailType = self => self._tag === OpCodes.OP_FAIL;\n/** @internal */\nexport const isDieType = self => self._tag === OpCodes.OP_DIE;\n/** @internal */\nexport const isInterruptType = self => self._tag === OpCodes.OP_INTERRUPT;\n/** @internal */\nexport const isSequentialType = self => self._tag === OpCodes.OP_SEQUENTIAL;\n/** @internal */\nexport const isParallelType = self => self._tag === OpCodes.OP_PARALLEL;\n// -----------------------------------------------------------------------------\n// Getters\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const size = self => reduceWithContext(self, void 0, SizeCauseReducer);\n/** @internal */\nexport const isEmpty = self => {\n if (self._tag === OpCodes.OP_EMPTY) {\n return true;\n }\n return reduce(self, true, (acc, cause) => {\n switch (cause._tag) {\n case OpCodes.OP_EMPTY:\n {\n return Option.some(acc);\n }\n case OpCodes.OP_DIE:\n case OpCodes.OP_FAIL:\n case OpCodes.OP_INTERRUPT:\n {\n return Option.some(false);\n }\n default:\n {\n return Option.none();\n }\n }\n });\n};\n/** @internal */\nexport const isFailure = self => Option.isSome(failureOption(self));\n/** @internal */\nexport const isDie = self => Option.isSome(dieOption(self));\n/** @internal */\nexport const isInterrupted = self => Option.isSome(interruptOption(self));\n/** @internal */\nexport const isInterruptedOnly = self => reduceWithContext(undefined, IsInterruptedOnlyCauseReducer)(self);\n/** @internal */\nexport const failures = self => Chunk.reverse(reduce(self, Chunk.empty(), (list, cause) => cause._tag === OpCodes.OP_FAIL ? Option.some(pipe(list, Chunk.prepend(cause.error))) : Option.none()));\n/** @internal */\nexport const defects = self => Chunk.reverse(reduce(self, Chunk.empty(), (list, cause) => cause._tag === OpCodes.OP_DIE ? Option.some(pipe(list, Chunk.prepend(cause.defect))) : Option.none()));\n/** @internal */\nexport const interruptors = self => reduce(self, HashSet.empty(), (set, cause) => cause._tag === OpCodes.OP_INTERRUPT ? Option.some(pipe(set, HashSet.add(cause.fiberId))) : Option.none());\n/** @internal */\nexport const failureOption = self => find(self, cause => cause._tag === OpCodes.OP_FAIL ? Option.some(cause.error) : Option.none());\n/** @internal */\nexport const failureOrCause = self => {\n const option = failureOption(self);\n switch (option._tag) {\n case \"None\":\n {\n // no `E` inside this `Cause`, so it can be safely cast to `never`\n return Either.right(self);\n }\n case \"Some\":\n {\n return Either.left(option.value);\n }\n }\n};\n/** @internal */\nexport const dieOption = self => find(self, cause => cause._tag === OpCodes.OP_DIE ? Option.some(cause.defect) : Option.none());\n/** @internal */\nexport const flipCauseOption = self => match(self, {\n onEmpty: Option.some(empty),\n onFail: Option.map(fail),\n onDie: defect => Option.some(die(defect)),\n onInterrupt: fiberId => Option.some(interrupt(fiberId)),\n onSequential: Option.mergeWith(sequential),\n onParallel: Option.mergeWith(parallel)\n});\n/** @internal */\nexport const interruptOption = self => find(self, cause => cause._tag === OpCodes.OP_INTERRUPT ? Option.some(cause.fiberId) : Option.none());\n/** @internal */\nexport const keepDefects = self => match(self, {\n onEmpty: Option.none(),\n onFail: () => Option.none(),\n onDie: defect => Option.some(die(defect)),\n onInterrupt: () => Option.none(),\n onSequential: Option.mergeWith(sequential),\n onParallel: Option.mergeWith(parallel)\n});\n/** @internal */\nexport const keepDefectsAndElectFailures = self => match(self, {\n onEmpty: Option.none(),\n onFail: failure => Option.some(die(failure)),\n onDie: defect => Option.some(die(defect)),\n onInterrupt: () => Option.none(),\n onSequential: Option.mergeWith(sequential),\n onParallel: Option.mergeWith(parallel)\n});\n/** @internal */\nexport const linearize = self => match(self, {\n onEmpty: HashSet.empty(),\n onFail: error => HashSet.make(fail(error)),\n onDie: defect => HashSet.make(die(defect)),\n onInterrupt: fiberId => HashSet.make(interrupt(fiberId)),\n onSequential: (leftSet, rightSet) => HashSet.flatMap(leftSet, leftCause => HashSet.map(rightSet, rightCause => sequential(leftCause, rightCause))),\n onParallel: (leftSet, rightSet) => HashSet.flatMap(leftSet, leftCause => HashSet.map(rightSet, rightCause => parallel(leftCause, rightCause)))\n});\n/** @internal */\nexport const stripFailures = self => match(self, {\n onEmpty: empty,\n onFail: () => empty,\n onDie: die,\n onInterrupt: interrupt,\n onSequential: sequential,\n onParallel: parallel\n});\n/** @internal */\nexport const electFailures = self => match(self, {\n onEmpty: empty,\n onFail: die,\n onDie: die,\n onInterrupt: interrupt,\n onSequential: sequential,\n onParallel: parallel\n});\n/** @internal */\nexport const stripSomeDefects = /*#__PURE__*/dual(2, (self, pf) => match(self, {\n onEmpty: Option.some(empty),\n onFail: error => Option.some(fail(error)),\n onDie: defect => {\n const option = pf(defect);\n return Option.isSome(option) ? Option.none() : Option.some(die(defect));\n },\n onInterrupt: fiberId => Option.some(interrupt(fiberId)),\n onSequential: Option.mergeWith(sequential),\n onParallel: Option.mergeWith(parallel)\n}));\n// -----------------------------------------------------------------------------\n// Mapping\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const as = /*#__PURE__*/dual(2, (self, error) => map(self, () => error));\n/** @internal */\nexport const map = /*#__PURE__*/dual(2, (self, f) => flatMap(self, e => fail(f(e))));\n// -----------------------------------------------------------------------------\n// Sequencing\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const flatMap = /*#__PURE__*/dual(2, (self, f) => match(self, {\n onEmpty: empty,\n onFail: error => f(error),\n onDie: defect => die(defect),\n onInterrupt: fiberId => interrupt(fiberId),\n onSequential: (left, right) => sequential(left, right),\n onParallel: (left, right) => parallel(left, right)\n}));\n/** @internal */\nexport const flatten = self => flatMap(self, identity);\n/** @internal */\nexport const andThen = /*#__PURE__*/dual(2, (self, f) => isFunction(f) ? flatMap(self, f) : flatMap(self, () => f));\n// -----------------------------------------------------------------------------\n// Equality\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const contains = /*#__PURE__*/dual(2, (self, that) => {\n if (that._tag === OpCodes.OP_EMPTY || self === that) {\n return true;\n }\n return reduce(self, false, (accumulator, cause) => {\n return Option.some(accumulator || causeEquals(cause, that));\n });\n});\n/** @internal */\nconst causeEquals = (left, right) => {\n let leftStack = Chunk.of(left);\n let rightStack = Chunk.of(right);\n while (Chunk.isNonEmpty(leftStack) && Chunk.isNonEmpty(rightStack)) {\n const [leftParallel, leftSequential] = pipe(Chunk.headNonEmpty(leftStack), reduce([HashSet.empty(), Chunk.empty()], ([parallel, sequential], cause) => {\n const [par, seq] = evaluateCause(cause);\n return Option.some([pipe(parallel, HashSet.union(par)), pipe(sequential, Chunk.appendAll(seq))]);\n }));\n const [rightParallel, rightSequential] = pipe(Chunk.headNonEmpty(rightStack), reduce([HashSet.empty(), Chunk.empty()], ([parallel, sequential], cause) => {\n const [par, seq] = evaluateCause(cause);\n return Option.some([pipe(parallel, HashSet.union(par)), pipe(sequential, Chunk.appendAll(seq))]);\n }));\n if (!Equal.equals(leftParallel, rightParallel)) {\n return false;\n }\n leftStack = leftSequential;\n rightStack = rightSequential;\n }\n return true;\n};\n// -----------------------------------------------------------------------------\n// Flattening\n// -----------------------------------------------------------------------------\n/**\n * Flattens a cause to a sequence of sets of causes, where each set represents\n * causes that fail in parallel and sequential sets represent causes that fail\n * after each other.\n *\n * @internal\n */\nconst flattenCause = cause => {\n return flattenCauseLoop(Chunk.of(cause), Chunk.empty());\n};\n/** @internal */\nconst flattenCauseLoop = (causes, flattened) => {\n // eslint-disable-next-line no-constant-condition\n while (1) {\n const [parallel, sequential] = pipe(causes, Arr.reduce([HashSet.empty(), Chunk.empty()], ([parallel, sequential], cause) => {\n const [par, seq] = evaluateCause(cause);\n return [pipe(parallel, HashSet.union(par)), pipe(sequential, Chunk.appendAll(seq))];\n }));\n const updated = HashSet.size(parallel) > 0 ? pipe(flattened, Chunk.prepend(parallel)) : flattened;\n if (Chunk.isEmpty(sequential)) {\n return Chunk.reverse(updated);\n }\n causes = sequential;\n flattened = updated;\n }\n throw new Error(getBugErrorMessage(\"Cause.flattenCauseLoop\"));\n};\n// -----------------------------------------------------------------------------\n// Finding\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const find = /*#__PURE__*/dual(2, (self, pf) => {\n const stack = [self];\n while (stack.length > 0) {\n const item = stack.pop();\n const option = pf(item);\n switch (option._tag) {\n case \"None\":\n {\n switch (item._tag) {\n case OpCodes.OP_SEQUENTIAL:\n case OpCodes.OP_PARALLEL:\n {\n stack.push(item.right);\n stack.push(item.left);\n break;\n }\n }\n break;\n }\n case \"Some\":\n {\n return option;\n }\n }\n }\n return Option.none();\n});\n// -----------------------------------------------------------------------------\n// Filtering\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const filter = /*#__PURE__*/dual(2, (self, predicate) => reduceWithContext(self, void 0, FilterCauseReducer(predicate)));\n// -----------------------------------------------------------------------------\n// Evaluation\n// -----------------------------------------------------------------------------\n/**\n * Takes one step in evaluating a cause, returning a set of causes that fail\n * in parallel and a list of causes that fail sequentially after those causes.\n *\n * @internal\n */\nconst evaluateCause = self => {\n let cause = self;\n const stack = [];\n let _parallel = HashSet.empty();\n let _sequential = Chunk.empty();\n while (cause !== undefined) {\n switch (cause._tag) {\n case OpCodes.OP_EMPTY:\n {\n if (stack.length === 0) {\n return [_parallel, _sequential];\n }\n cause = stack.pop();\n break;\n }\n case OpCodes.OP_FAIL:\n {\n _parallel = HashSet.add(_parallel, Chunk.make(cause._tag, cause.error));\n if (stack.length === 0) {\n return [_parallel, _sequential];\n }\n cause = stack.pop();\n break;\n }\n case OpCodes.OP_DIE:\n {\n _parallel = HashSet.add(_parallel, Chunk.make(cause._tag, cause.defect));\n if (stack.length === 0) {\n return [_parallel, _sequential];\n }\n cause = stack.pop();\n break;\n }\n case OpCodes.OP_INTERRUPT:\n {\n _parallel = HashSet.add(_parallel, Chunk.make(cause._tag, cause.fiberId));\n if (stack.length === 0) {\n return [_parallel, _sequential];\n }\n cause = stack.pop();\n break;\n }\n case OpCodes.OP_SEQUENTIAL:\n {\n switch (cause.left._tag) {\n case OpCodes.OP_EMPTY:\n {\n cause = cause.right;\n break;\n }\n case OpCodes.OP_SEQUENTIAL:\n {\n cause = sequential(cause.left.left, sequential(cause.left.right, cause.right));\n break;\n }\n case OpCodes.OP_PARALLEL:\n {\n cause = parallel(sequential(cause.left.left, cause.right), sequential(cause.left.right, cause.right));\n break;\n }\n default:\n {\n _sequential = Chunk.prepend(_sequential, cause.right);\n cause = cause.left;\n break;\n }\n }\n break;\n }\n case OpCodes.OP_PARALLEL:\n {\n stack.push(cause.right);\n cause = cause.left;\n break;\n }\n }\n }\n throw new Error(getBugErrorMessage(\"Cause.evaluateCauseLoop\"));\n};\n// -----------------------------------------------------------------------------\n// Reducing\n// -----------------------------------------------------------------------------\n/** @internal */\nconst SizeCauseReducer = {\n emptyCase: () => 0,\n failCase: () => 1,\n dieCase: () => 1,\n interruptCase: () => 1,\n sequentialCase: (_, left, right) => left + right,\n parallelCase: (_, left, right) => left + right\n};\n/** @internal */\nconst IsInterruptedOnlyCauseReducer = {\n emptyCase: constTrue,\n failCase: constFalse,\n dieCase: constFalse,\n interruptCase: constTrue,\n sequentialCase: (_, left, right) => left && right,\n parallelCase: (_, left, right) => left && right\n};\n/** @internal */\nconst FilterCauseReducer = predicate => ({\n emptyCase: () => empty,\n failCase: (_, error) => fail(error),\n dieCase: (_, defect) => die(defect),\n interruptCase: (_, fiberId) => interrupt(fiberId),\n sequentialCase: (_, left, right) => {\n if (predicate(left)) {\n if (predicate(right)) {\n return sequential(left, right);\n }\n return left;\n }\n if (predicate(right)) {\n return right;\n }\n return empty;\n },\n parallelCase: (_, left, right) => {\n if (predicate(left)) {\n if (predicate(right)) {\n return parallel(left, right);\n }\n return left;\n }\n if (predicate(right)) {\n return right;\n }\n return empty;\n }\n});\nconst OP_SEQUENTIAL_CASE = \"SequentialCase\";\nconst OP_PARALLEL_CASE = \"ParallelCase\";\n/** @internal */\nexport const match = /*#__PURE__*/dual(2, (self, {\n onDie,\n onEmpty,\n onFail,\n onInterrupt,\n onParallel,\n onSequential\n}) => {\n return reduceWithContext(self, void 0, {\n emptyCase: () => onEmpty,\n failCase: (_, error) => onFail(error),\n dieCase: (_, defect) => onDie(defect),\n interruptCase: (_, fiberId) => onInterrupt(fiberId),\n sequentialCase: (_, left, right) => onSequential(left, right),\n parallelCase: (_, left, right) => onParallel(left, right)\n });\n});\n/** @internal */\nexport const reduce = /*#__PURE__*/dual(3, (self, zero, pf) => {\n let accumulator = zero;\n let cause = self;\n const causes = [];\n while (cause !== undefined) {\n const option = pf(accumulator, cause);\n accumulator = Option.isSome(option) ? option.value : accumulator;\n switch (cause._tag) {\n case OpCodes.OP_SEQUENTIAL:\n {\n causes.push(cause.right);\n cause = cause.left;\n break;\n }\n case OpCodes.OP_PARALLEL:\n {\n causes.push(cause.right);\n cause = cause.left;\n break;\n }\n default:\n {\n cause = undefined;\n break;\n }\n }\n if (cause === undefined && causes.length > 0) {\n cause = causes.pop();\n }\n }\n return accumulator;\n});\n/** @internal */\nexport const reduceWithContext = /*#__PURE__*/dual(3, (self, context, reducer) => {\n const input = [self];\n const output = [];\n while (input.length > 0) {\n const cause = input.pop();\n switch (cause._tag) {\n case OpCodes.OP_EMPTY:\n {\n output.push(Either.right(reducer.emptyCase(context)));\n break;\n }\n case OpCodes.OP_FAIL:\n {\n output.push(Either.right(reducer.failCase(context, cause.error)));\n break;\n }\n case OpCodes.OP_DIE:\n {\n output.push(Either.right(reducer.dieCase(context, cause.defect)));\n break;\n }\n case OpCodes.OP_INTERRUPT:\n {\n output.push(Either.right(reducer.interruptCase(context, cause.fiberId)));\n break;\n }\n case OpCodes.OP_SEQUENTIAL:\n {\n input.push(cause.right);\n input.push(cause.left);\n output.push(Either.left({\n _tag: OP_SEQUENTIAL_CASE\n }));\n break;\n }\n case OpCodes.OP_PARALLEL:\n {\n input.push(cause.right);\n input.push(cause.left);\n output.push(Either.left({\n _tag: OP_PARALLEL_CASE\n }));\n break;\n }\n }\n }\n const accumulator = [];\n while (output.length > 0) {\n const either = output.pop();\n switch (either._tag) {\n case \"Left\":\n {\n switch (either.left._tag) {\n case OP_SEQUENTIAL_CASE:\n {\n const left = accumulator.pop();\n const right = accumulator.pop();\n const value = reducer.sequentialCase(context, left, right);\n accumulator.push(value);\n break;\n }\n case OP_PARALLEL_CASE:\n {\n const left = accumulator.pop();\n const right = accumulator.pop();\n const value = reducer.parallelCase(context, left, right);\n accumulator.push(value);\n break;\n }\n }\n break;\n }\n case \"Right\":\n {\n accumulator.push(either.right);\n break;\n }\n }\n }\n if (accumulator.length === 0) {\n throw new Error(\"BUG: Cause.reduceWithContext - please report an issue at https://github.com/Effect-TS/effect/issues\");\n }\n return accumulator.pop();\n});\n// -----------------------------------------------------------------------------\n// Pretty Printing\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const pretty = (cause, options) => {\n if (isInterruptedOnly(cause)) {\n return \"All fibers interrupted without errors.\";\n }\n return prettyErrors(cause).map(function (e) {\n if (options?.renderErrorCause !== true || e.cause === undefined) {\n return e.stack;\n }\n return `${e.stack} {\\n${renderErrorCause(e.cause, \" \")}\\n}`;\n }).join(\"\\n\");\n};\nconst renderErrorCause = (cause, prefix) => {\n const lines = cause.stack.split(\"\\n\");\n let stack = `${prefix}[cause]: ${lines[0]}`;\n for (let i = 1, len = lines.length; i < len; i++) {\n stack += `\\n${prefix}${lines[i]}`;\n }\n if (cause.cause) {\n stack += ` {\\n${renderErrorCause(cause.cause, `${prefix} `)}\\n${prefix}}`;\n }\n return stack;\n};\n/** @internal */\nexport class PrettyError extends globalThis.Error {\n span = undefined;\n constructor(originalError) {\n const originalErrorIsObject = typeof originalError === \"object\" && originalError !== null;\n const prevLimit = Error.stackTraceLimit;\n Error.stackTraceLimit = 1;\n super(prettyErrorMessage(originalError), originalErrorIsObject && \"cause\" in originalError && typeof originalError.cause !== \"undefined\" ? {\n cause: new PrettyError(originalError.cause)\n } : undefined);\n if (this.message === \"\") {\n this.message = \"An error has occurred\";\n }\n Error.stackTraceLimit = prevLimit;\n this.name = originalError instanceof Error ? originalError.name : \"Error\";\n if (originalErrorIsObject) {\n if (spanSymbol in originalError) {\n this.span = originalError[spanSymbol];\n }\n Object.keys(originalError).forEach(key => {\n if (!(key in this)) {\n // @ts-expect-error\n this[key] = originalError[key];\n }\n });\n }\n this.stack = prettyErrorStack(`${this.name}: ${this.message}`, originalError instanceof Error && originalError.stack ? originalError.stack : \"\", this.span);\n }\n}\n/**\n * A utility function for generating human-readable error messages from a generic error of type `unknown`.\n *\n * Rules:\n *\n * 1) If the input `u` is already a string, it's considered a message.\n * 2) If `u` is an Error instance with a message defined, it uses the message.\n * 3) If `u` has a user-defined `toString()` method, it uses that method.\n * 4) Otherwise, it uses `Inspectable.stringifyCircular` to produce a string representation and uses it as the error message,\n * with \"Error\" added as a prefix.\n *\n * @internal\n */\nexport const prettyErrorMessage = u => {\n // 1)\n if (typeof u === \"string\") {\n return u;\n }\n // 2)\n if (typeof u === \"object\" && u !== null && u instanceof Error) {\n return u.message;\n }\n // 3)\n try {\n if (hasProperty(u, \"toString\") && isFunction(u[\"toString\"]) && u[\"toString\"] !== Object.prototype.toString && u[\"toString\"] !== globalThis.Array.prototype.toString) {\n return u[\"toString\"]();\n }\n } catch {\n // something's off, rollback to json\n }\n // 4)\n return stringifyCircular(u);\n};\nconst locationRegex = /\\((.*)\\)/g;\n/** @internal */\nexport const spanToTrace = /*#__PURE__*/globalValue(\"effect/Tracer/spanToTrace\", () => new WeakMap());\nconst prettyErrorStack = (message, stack, span) => {\n const out = [message];\n const lines = stack.startsWith(message) ? stack.slice(message.length).split(\"\\n\") : stack.split(\"\\n\");\n for (let i = 1; i < lines.length; i++) {\n if (lines[i].includes(\" at new BaseEffectError\") || lines[i].includes(\" at new YieldableError\")) {\n i++;\n continue;\n }\n if (lines[i].includes(\"Generator.next\")) {\n break;\n }\n if (lines[i].includes(\"effect_internal_function\")) {\n break;\n }\n out.push(lines[i].replace(/at .*effect_instruction_i.*\\((.*)\\)/, \"at $1\").replace(/EffectPrimitive\\.\\w+/, \"\"));\n }\n if (span) {\n let current = span;\n let i = 0;\n while (current && current._tag === \"Span\" && i < 10) {\n const stackFn = spanToTrace.get(current);\n if (typeof stackFn === \"function\") {\n const stack = stackFn();\n if (typeof stack === \"string\") {\n const locationMatchAll = stack.matchAll(locationRegex);\n let match = false;\n for (const [, location] of locationMatchAll) {\n match = true;\n out.push(` at ${current.name} (${location})`);\n }\n if (!match) {\n out.push(` at ${current.name} (${stack.replace(/^at /, \"\")})`);\n }\n } else {\n out.push(` at ${current.name}`);\n }\n } else {\n out.push(` at ${current.name}`);\n }\n current = Option.getOrUndefined(current.parent);\n i++;\n }\n }\n return out.join(\"\\n\");\n};\n/** @internal */\nexport const spanSymbol = /*#__PURE__*/Symbol.for(\"effect/SpanAnnotation\");\n/** @internal */\nexport const prettyErrors = cause => reduceWithContext(cause, void 0, {\n emptyCase: () => [],\n dieCase: (_, unknownError) => {\n return [new PrettyError(unknownError)];\n },\n failCase: (_, error) => {\n return [new PrettyError(error)];\n },\n interruptCase: () => [],\n parallelCase: (_, l, r) => [...l, ...r],\n sequentialCase: (_, l, r) => [...l, ...r]\n});\n//# sourceMappingURL=cause.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\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 }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, { hasUnpiped: false });\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","import { parseAccount } from '../../accounts/utils/parseAccount.js';\nimport { BaseError } from '../../errors/base.js';\nimport { AtomicityNotSupportedError, UnsupportedNonOptionalCapabilityError, } from '../../errors/rpc.js';\nimport { encodeFunctionData } from '../../utils/abi/encodeFunctionData.js';\nimport { concat } from '../../utils/data/concat.js';\nimport { hexToBigInt } from '../../utils/encoding/fromHex.js';\nimport { numberToHex } from '../../utils/encoding/toHex.js';\nimport { getTransactionError } from '../../utils/errors/getTransactionError.js';\nimport { sendTransaction } from './sendTransaction.js';\nexport const fallbackMagicIdentifier = '0x5792579257925792579257925792579257925792579257925792579257925792';\nexport const fallbackTransactionErrorMagicIdentifier = numberToHex(0, {\n size: 32,\n});\n/**\n * Requests the connected wallet to send a batch of calls.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendCalls\n * - JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\n *\n * @param client - Client to use\n * @returns Transaction identifier. {@link SendCallsReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendCalls } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const id = await sendCalls(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * calls: [\n * {\n * data: '0xdeadbeef',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * },\n * {\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 69420n,\n * },\n * ],\n * })\n */\nexport async function sendCalls(client, parameters) {\n const { account: account_ = client.account, capabilities, chain = client.chain, experimental_fallback, experimental_fallbackDelay = 32, forceAtomic = false, id, version = '2.0.0', } = parameters;\n const account = account_ ? parseAccount(account_) : null;\n const calls = parameters.calls.map((call_) => {\n const call = call_;\n const data = call.abi\n ? encodeFunctionData({\n abi: call.abi,\n functionName: call.functionName,\n args: call.args,\n })\n : call.data;\n return {\n data: call.dataSuffix && data ? concat([data, call.dataSuffix]) : data,\n to: call.to,\n value: call.value ? numberToHex(call.value) : undefined,\n };\n });\n try {\n const response = await client.request({\n method: 'wallet_sendCalls',\n params: [\n {\n atomicRequired: forceAtomic,\n calls,\n capabilities,\n chainId: numberToHex(chain.id),\n from: account?.address,\n id,\n version,\n },\n ],\n }, { retryCount: 0 });\n if (typeof response === 'string')\n return { id: response };\n return response;\n }\n catch (err) {\n const error = err;\n // If the transport does not support EIP-5792, fall back to\n // `eth_sendTransaction`.\n if (experimental_fallback &&\n (error.name === 'MethodNotFoundRpcError' ||\n error.name === 'MethodNotSupportedRpcError' ||\n error.name === 'UnknownRpcError' ||\n error.details\n .toLowerCase()\n .includes('does not exist / is not available') ||\n error.details.toLowerCase().includes('missing or invalid. request()') ||\n error.details\n .toLowerCase()\n .includes('did not match any variant of untagged enum') ||\n error.details\n .toLowerCase()\n .includes('account upgraded to unsupported contract') ||\n error.details.toLowerCase().includes('eip-7702 not supported') ||\n error.details.toLowerCase().includes('unsupported wc_ method') ||\n // magic.link\n error.details\n .toLowerCase()\n .includes('feature toggled misconfigured') ||\n // Trust Wallet\n error.details\n .toLowerCase()\n .includes('jsonrpcengine: response has no error or result for request'))) {\n if (capabilities) {\n const hasNonOptionalCapability = Object.values(capabilities).some((capability) => !capability.optional);\n if (hasNonOptionalCapability) {\n const message = 'non-optional `capabilities` are not supported on fallback to `eth_sendTransaction`.';\n throw new UnsupportedNonOptionalCapabilityError(new BaseError(message, {\n details: message,\n }));\n }\n }\n if (forceAtomic && calls.length > 1) {\n const message = '`forceAtomic` is not supported on fallback to `eth_sendTransaction`.';\n throw new AtomicityNotSupportedError(new BaseError(message, {\n details: message,\n }));\n }\n const promises = [];\n for (const call of calls) {\n const promise = sendTransaction(client, {\n account,\n chain,\n data: call.data,\n to: call.to,\n value: call.value ? hexToBigInt(call.value) : undefined,\n });\n promises.push(promise);\n // Note: some browser wallets require a small delay between transactions\n // to prevent duplicate JSON-RPC requests.\n if (experimental_fallbackDelay > 0)\n await new Promise((resolve) => setTimeout(resolve, experimental_fallbackDelay));\n }\n const results = await Promise.allSettled(promises);\n if (results.every((r) => r.status === 'rejected'))\n throw results[0].reason;\n const hashes = results.map((result) => {\n if (result.status === 'fulfilled')\n return result.value;\n return fallbackTransactionErrorMagicIdentifier;\n });\n return {\n id: concat([\n ...hashes,\n numberToHex(chain.id, { size: 32 }),\n fallbackMagicIdentifier,\n ]),\n };\n }\n throw getTransactionError(err, {\n ...parameters,\n account,\n chain: parameters.chain,\n });\n }\n}\n//# sourceMappingURL=sendCalls.js.map","import { sliceHex } from '../../utils/data/slice.js';\nimport { trim } from '../../utils/data/trim.js';\nimport { hexToBigInt, hexToNumber } from '../../utils/encoding/fromHex.js';\nimport { receiptStatuses } from '../../utils/formatters/transactionReceipt.js';\nimport { fallbackMagicIdentifier, fallbackTransactionErrorMagicIdentifier, } from './sendCalls.js';\n/**\n * Returns the status of a call batch that was sent via `sendCalls`.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getCallsStatus\n * - JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\n *\n * @param client - Client to use\n * @returns Status of the calls. {@link GetCallsStatusReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getCallsStatus } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const { receipts, status } = await getCallsStatus(client, { id: '0xdeadbeef' })\n */\nexport async function getCallsStatus(client, parameters) {\n async function getStatus(id) {\n const isTransactions = id.endsWith(fallbackMagicIdentifier.slice(2));\n if (isTransactions) {\n const chainId = trim(sliceHex(id, -64, -32));\n const hashes = sliceHex(id, 0, -64)\n .slice(2)\n .match(/.{1,64}/g);\n const receipts = await Promise.all(hashes.map((hash) => fallbackTransactionErrorMagicIdentifier.slice(2) !== hash\n ? client.request({\n method: 'eth_getTransactionReceipt',\n params: [`0x${hash}`],\n }, { dedupe: true })\n : undefined));\n const status = (() => {\n if (receipts.some((r) => r === null))\n return 100; // pending\n if (receipts.every((r) => r?.status === '0x1'))\n return 200; // success\n if (receipts.every((r) => r?.status === '0x0'))\n return 500; // complete failure\n return 600; // partial failure\n })();\n return {\n atomic: false,\n chainId: hexToNumber(chainId),\n receipts: receipts.filter(Boolean),\n status,\n version: '2.0.0',\n };\n }\n return client.request({\n method: 'wallet_getCallsStatus',\n params: [id],\n });\n }\n const { atomic = false, chainId, receipts, version = '2.0.0', ...response } = await getStatus(parameters.id);\n const [status, statusCode] = (() => {\n const statusCode = response.status;\n if (statusCode >= 100 && statusCode < 200)\n return ['pending', statusCode];\n if (statusCode >= 200 && statusCode < 300)\n return ['success', statusCode];\n if (statusCode >= 300 && statusCode < 700)\n return ['failure', statusCode];\n // @ts-expect-error: for backwards compatibility\n if (statusCode === 'CONFIRMED')\n return ['success', 200];\n // @ts-expect-error: for backwards compatibility\n if (statusCode === 'PENDING')\n return ['pending', 100];\n return [undefined, statusCode];\n })();\n return {\n ...response,\n atomic,\n // @ts-expect-error: for backwards compatibility\n chainId: chainId ? hexToNumber(chainId) : undefined,\n receipts: receipts?.map((receipt) => ({\n ...receipt,\n blockNumber: hexToBigInt(receipt.blockNumber),\n gasUsed: hexToBigInt(receipt.gasUsed),\n status: receiptStatuses[receipt.status],\n })) ?? [],\n statusCode,\n status,\n version,\n };\n}\n//# sourceMappingURL=getCallsStatus.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError, } from '../../errors/account.js';\nimport { isAddressEqual } from '../../utils/address/isAddressEqual.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { getChainId } from '../public/getChainId.js';\nimport { getTransactionCount } from '../public/getTransactionCount.js';\n/**\n * Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\n * This Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\n *\n * With the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\n *\n * @param client - Client to use\n * @param parameters - {@link PrepareAuthorizationParameters}\n * @returns The prepared Authorization object. {@link PrepareAuthorizationReturnType}\n *\n * @example\n * import { createClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { prepareAuthorization } from 'viem/experimental'\n *\n * const client = createClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const authorization = await prepareAuthorization(client, {\n * account: privateKeyToAccount('0x..'),\n * contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n *\n * @example\n * // Account Hoisting\n * import { createClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { prepareAuthorization } from 'viem/experimental'\n *\n * const client = createClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const authorization = await prepareAuthorization(client, {\n * contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function prepareAuthorization(client, parameters) {\n const { account: account_ = client.account, chainId, nonce } = parameters;\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/eip7702/prepareAuthorization',\n });\n const account = parseAccount(account_);\n const executor = (() => {\n if (!parameters.executor)\n return undefined;\n if (parameters.executor === 'self')\n return parameters.executor;\n return parseAccount(parameters.executor);\n })();\n const authorization = {\n address: parameters.contractAddress ?? parameters.address,\n chainId,\n nonce,\n };\n if (typeof authorization.chainId === 'undefined')\n authorization.chainId =\n client.chain?.id ??\n (await getAction(client, getChainId, 'getChainId')({}));\n if (typeof authorization.nonce === 'undefined') {\n authorization.nonce = await getAction(client, getTransactionCount, 'getTransactionCount')({\n address: account.address,\n blockTag: 'pending',\n });\n if (executor === 'self' ||\n (executor?.address && isAddressEqual(executor.address, account.address)))\n authorization.nonce += 1;\n }\n return authorization;\n}\n//# sourceMappingURL=prepareAuthorization.js.map","import { BaseError } from './base.js';\nexport class BundleFailedError extends BaseError {\n constructor(result) {\n super(`Call bundle failed with status: ${result.statusCode}`, {\n name: 'BundleFailedError',\n });\n Object.defineProperty(this, \"result\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.result = result;\n }\n}\n//# sourceMappingURL=calls.js.map","import { BaseError } from '../../errors/base.js';\nimport { BundleFailedError } from '../../errors/calls.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { withResolvers } from '../../utils/promise/withResolvers.js';\nimport { withRetry, } from '../../utils/promise/withRetry.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { getCallsStatus, } from './getCallsStatus.js';\n/**\n * Waits for the status & receipts of a call bundle that was sent via `sendCalls`.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/waitForCallsStatus\n * - JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\n *\n * @param client - Client to use\n * @param parameters - {@link WaitForCallsStatusParameters}\n * @returns Status & receipts of the call bundle. {@link WaitForCallsStatusReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { waitForCallsStatus } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n *\n * const { receipts, status } = await waitForCallsStatus(client, { id: '0xdeadbeef' })\n */\nexport async function waitForCallsStatus(client, parameters) {\n const { id, pollingInterval = client.pollingInterval, status = ({ statusCode }) => statusCode === 200 || statusCode >= 300, retryCount = 4, retryDelay = ({ count }) => ~~(1 << count) * 200, // exponential backoff\n timeout = 60_000, throwOnFailure = false, } = parameters;\n const observerId = stringify(['waitForCallsStatus', client.uid, id]);\n const { promise, resolve, reject } = withResolvers();\n let timer;\n const unobserve = observe(observerId, { resolve, reject }, (emit) => {\n const unpoll = poll(async () => {\n const done = (fn) => {\n clearTimeout(timer);\n unpoll();\n fn();\n unobserve();\n };\n try {\n const result = await withRetry(async () => {\n const result = await getAction(client, getCallsStatus, 'getCallsStatus')({ id });\n if (throwOnFailure && result.status === 'failure')\n throw new BundleFailedError(result);\n return result;\n }, {\n retryCount,\n delay: retryDelay,\n });\n if (!status(result))\n return;\n done(() => emit.resolve(result));\n }\n catch (error) {\n done(() => emit.reject(error));\n }\n }, {\n interval: pollingInterval,\n emitOnBegin: true,\n });\n return unpoll;\n });\n timer = timeout\n ? setTimeout(() => {\n unobserve();\n clearTimeout(timer);\n reject(new WaitForCallsStatusTimeoutError({ id }));\n }, timeout)\n : undefined;\n return await promise;\n}\nexport class WaitForCallsStatusTimeoutError extends BaseError {\n constructor({ id }) {\n super(`Timed out while waiting for call bundle with id \"${id}\" to be confirmed.`, { name: 'WaitForCallsStatusTimeoutError' });\n }\n}\n//# sourceMappingURL=waitForCallsStatus.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError, AccountTypeNotSupportedError, } from '../../errors/account.js';\nimport { BaseError } from '../../errors/base.js';\nimport { TransactionReceiptRevertedError, } from '../../errors/transaction.js';\nimport { recoverAuthorizationAddress, } from '../../utils/authorization/recoverAuthorizationAddress.js';\nimport { assertCurrentChain, } from '../../utils/chain/assertCurrentChain.js';\nimport { getTransactionError, } from '../../utils/errors/getTransactionError.js';\nimport { extract } from '../../utils/formatters/extract.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { LruMap } from '../../utils/lru.js';\nimport { assertRequest, } from '../../utils/transaction/assertRequest.js';\nimport { getChainId } from '../public/getChainId.js';\nimport { waitForTransactionReceipt, } from '../public/waitForTransactionReceipt.js';\nimport { defaultParameters, prepareTransactionRequest, } from './prepareTransactionRequest.js';\nimport { sendRawTransactionSync, } from './sendRawTransactionSync.js';\nconst supportsWalletNamespace = new LruMap(128);\n/**\n * Creates, signs, and sends a new transaction to the network synchronously.\n * Returns the transaction receipt.\n *\n * @param client - Client to use\n * @param parameters - {@link SendTransactionSyncParameters}\n * @returns The transaction receipt. {@link SendTransactionSyncReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendTransactionSync } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const receipt = await sendTransactionSync(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 1000000000000000000n,\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { sendTransactionSync } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const receipt = await sendTransactionSync(client, {\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 1000000000000000000n,\n * })\n */\nexport async function sendTransactionSync(client, parameters) {\n const { account: account_ = client.account, chain = client.chain, accessList, authorizationList, blobs, data, gas, gasPrice, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, nonce, pollingInterval, throwOnReceiptRevert, type, value, ...rest } = parameters;\n const timeout = parameters.timeout ?? Math.max((chain?.blockTime ?? 0) * 3, 5_000);\n if (typeof account_ === 'undefined')\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/sendTransactionSync',\n });\n const account = account_ ? parseAccount(account_) : null;\n try {\n assertRequest(parameters);\n const to = await (async () => {\n // If `to` exists on the parameters, use that.\n if (parameters.to)\n return parameters.to;\n // If `to` is null, we are sending a deployment transaction.\n if (parameters.to === null)\n return undefined;\n // If no `to` exists, and we are sending a EIP-7702 transaction, use the\n // address of the first authorization in the list.\n if (authorizationList && authorizationList.length > 0)\n return await recoverAuthorizationAddress({\n authorization: authorizationList[0],\n }).catch(() => {\n throw new BaseError('`to` is required. Could not infer from `authorizationList`.');\n });\n // Otherwise, we are sending a deployment transaction.\n return undefined;\n })();\n if (account?.type === 'json-rpc' || account === null) {\n let chainId;\n if (chain !== null) {\n chainId = await getAction(client, getChainId, 'getChainId')({});\n assertCurrentChain({\n currentChainId: chainId,\n chain,\n });\n }\n const chainFormat = client.chain?.formatters?.transactionRequest?.format;\n const format = chainFormat || formatTransactionRequest;\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n accessList,\n account,\n authorizationList,\n blobs,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n type,\n value,\n }, 'sendTransaction');\n const isWalletNamespaceSupported = supportsWalletNamespace.get(client.uid);\n const method = isWalletNamespaceSupported\n ? 'wallet_sendTransaction'\n : 'eth_sendTransaction';\n const hash = await (async () => {\n try {\n return await client.request({\n method,\n params: [request],\n }, { retryCount: 0 });\n }\n catch (e) {\n if (isWalletNamespaceSupported === false)\n throw e;\n const error = e;\n // If the transport does not support the method or input, attempt to use the\n // `wallet_sendTransaction` method.\n if (error.name === 'InvalidInputRpcError' ||\n error.name === 'InvalidParamsRpcError' ||\n error.name === 'MethodNotFoundRpcError' ||\n error.name === 'MethodNotSupportedRpcError') {\n return (await client\n .request({\n method: 'wallet_sendTransaction',\n params: [request],\n }, { retryCount: 0 })\n .then((hash) => {\n supportsWalletNamespace.set(client.uid, true);\n return hash;\n })\n .catch((e) => {\n const walletNamespaceError = e;\n if (walletNamespaceError.name === 'MethodNotFoundRpcError' ||\n walletNamespaceError.name === 'MethodNotSupportedRpcError') {\n supportsWalletNamespace.set(client.uid, false);\n throw error;\n }\n throw walletNamespaceError;\n }));\n }\n throw error;\n }\n })();\n const receipt = await getAction(client, waitForTransactionReceipt, 'waitForTransactionReceipt')({\n checkReplacement: false,\n hash,\n pollingInterval,\n timeout,\n });\n if (throwOnReceiptRevert && receipt.status === 'reverted')\n throw new TransactionReceiptRevertedError({ receipt });\n return receipt;\n }\n if (account?.type === 'local') {\n // Prepare the request for signing (assign appropriate fees, etc.)\n const request = await getAction(client, prepareTransactionRequest, 'prepareTransactionRequest')({\n account,\n accessList,\n authorizationList,\n blobs,\n chain,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n nonceManager: account.nonceManager,\n parameters: [...defaultParameters, 'sidecars'],\n type,\n value,\n ...rest,\n to,\n });\n const serializer = chain?.serializers?.transaction;\n const serializedTransaction = (await account.signTransaction(request, {\n serializer,\n }));\n return (await getAction(client, sendRawTransactionSync, 'sendRawTransactionSync')({\n serializedTransaction,\n throwOnReceiptRevert,\n }));\n }\n if (account?.type === 'smart')\n throw new AccountTypeNotSupportedError({\n metaMessages: [\n 'Consider using the `sendUserOperation` Action instead.',\n ],\n docsPath: '/docs/actions/bundler/sendUserOperation',\n type: 'smart',\n });\n throw new AccountTypeNotSupportedError({\n docsPath: '/docs/actions/wallet/sendTransactionSync',\n type: account?.type,\n });\n }\n catch (err) {\n if (err instanceof AccountTypeNotSupportedError)\n throw err;\n throw getTransactionError(err, {\n ...parameters,\n account,\n chain: parameters.chain || undefined,\n });\n }\n}\n//# sourceMappingURL=sendTransactionSync.js.map","import { fillTransaction, } from '../../actions/public/fillTransaction.js';\nimport { getChainId, } from '../../actions/public/getChainId.js';\nimport { addChain, } from '../../actions/wallet/addChain.js';\nimport { deployContract, } from '../../actions/wallet/deployContract.js';\nimport { getAddresses, } from '../../actions/wallet/getAddresses.js';\nimport { getCallsStatus, } from '../../actions/wallet/getCallsStatus.js';\nimport { getCapabilities, } from '../../actions/wallet/getCapabilities.js';\nimport { getPermissions, } from '../../actions/wallet/getPermissions.js';\nimport { prepareAuthorization, } from '../../actions/wallet/prepareAuthorization.js';\nimport { prepareTransactionRequest, } from '../../actions/wallet/prepareTransactionRequest.js';\nimport { requestAddresses, } from '../../actions/wallet/requestAddresses.js';\nimport { requestPermissions, } from '../../actions/wallet/requestPermissions.js';\nimport { sendCalls, } from '../../actions/wallet/sendCalls.js';\nimport { sendCallsSync, } from '../../actions/wallet/sendCallsSync.js';\nimport { sendRawTransaction, } from '../../actions/wallet/sendRawTransaction.js';\nimport { sendRawTransactionSync, } from '../../actions/wallet/sendRawTransactionSync.js';\nimport { sendTransaction, } from '../../actions/wallet/sendTransaction.js';\nimport { sendTransactionSync, } from '../../actions/wallet/sendTransactionSync.js';\nimport { showCallsStatus, } from '../../actions/wallet/showCallsStatus.js';\nimport { signAuthorization, } from '../../actions/wallet/signAuthorization.js';\nimport { signMessage, } from '../../actions/wallet/signMessage.js';\nimport { signTransaction, } from '../../actions/wallet/signTransaction.js';\nimport { signTypedData, } from '../../actions/wallet/signTypedData.js';\nimport { switchChain, } from '../../actions/wallet/switchChain.js';\nimport { waitForCallsStatus, } from '../../actions/wallet/waitForCallsStatus.js';\nimport { watchAsset, } from '../../actions/wallet/watchAsset.js';\nimport { writeContract, } from '../../actions/wallet/writeContract.js';\nimport { writeContractSync, } from '../../actions/wallet/writeContractSync.js';\nexport function walletActions(client) {\n return {\n addChain: (args) => addChain(client, args),\n deployContract: (args) => deployContract(client, args),\n fillTransaction: (args) => fillTransaction(client, args),\n getAddresses: () => getAddresses(client),\n getCallsStatus: (args) => getCallsStatus(client, args),\n getCapabilities: (args) => getCapabilities(client, args),\n getChainId: () => getChainId(client),\n getPermissions: () => getPermissions(client),\n prepareAuthorization: (args) => prepareAuthorization(client, args),\n prepareTransactionRequest: (args) => prepareTransactionRequest(client, args),\n requestAddresses: () => requestAddresses(client),\n requestPermissions: (args) => requestPermissions(client, args),\n sendCalls: (args) => sendCalls(client, args),\n sendCallsSync: (args) => sendCallsSync(client, args),\n sendRawTransaction: (args) => sendRawTransaction(client, args),\n sendRawTransactionSync: (args) => sendRawTransactionSync(client, args),\n sendTransaction: (args) => sendTransaction(client, args),\n sendTransactionSync: (args) => sendTransactionSync(client, args),\n showCallsStatus: (args) => showCallsStatus(client, args),\n signAuthorization: (args) => signAuthorization(client, args),\n signMessage: (args) => signMessage(client, args),\n signTransaction: (args) => signTransaction(client, args),\n signTypedData: (args) => signTypedData(client, args),\n switchChain: (args) => switchChain(client, args),\n waitForCallsStatus: (args) => waitForCallsStatus(client, args),\n watchAsset: (args) => watchAsset(client, args),\n writeContract: (args) => writeContract(client, args),\n writeContractSync: (args) => writeContractSync(client, args),\n };\n}\n//# sourceMappingURL=wallet.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Adds an EVM chain to the wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/addChain\n * - JSON-RPC Methods: [`eth_addEthereumChain`](https://eips.ethereum.org/EIPS/eip-3085)\n *\n * @param client - Client to use\n * @param parameters - {@link AddChainParameters}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { optimism } from 'viem/chains'\n * import { addChain } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * transport: custom(window.ethereum),\n * })\n * await addChain(client, { chain: optimism })\n */\nexport async function addChain(client, { chain }) {\n const { id, name, nativeCurrency, rpcUrls, blockExplorers } = chain;\n await client.request({\n method: 'wallet_addEthereumChain',\n params: [\n {\n chainId: numberToHex(id),\n chainName: name,\n nativeCurrency,\n rpcUrls: rpcUrls.default.http,\n blockExplorerUrls: blockExplorers\n ? Object.values(blockExplorers).map(({ url }) => url)\n : undefined,\n },\n ],\n }, { dedupe: true, retryCount: 0 });\n}\n//# sourceMappingURL=addChain.js.map","import { encodeDeployData } from '../../utils/abi/encodeDeployData.js';\nimport { sendTransaction, } from './sendTransaction.js';\n/**\n * Deploys a contract to the network, given bytecode and constructor arguments.\n *\n * - Docs: https://viem.sh/docs/contract/deployContract\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_deploying-contracts\n *\n * @param client - Client to use\n * @param parameters - {@link DeployContractParameters}\n * @returns The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link DeployContractReturnType}\n *\n * @example\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { deployContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const hash = await deployContract(client, {\n * abi: [],\n * account: '0x…,\n * bytecode: '0x608060405260405161083e38038061083e833981016040819052610...',\n * })\n */\nexport function deployContract(walletClient, parameters) {\n const { abi, args, bytecode, ...request } = parameters;\n const calldata = encodeDeployData({ abi, args, bytecode });\n return sendTransaction(walletClient, {\n ...request,\n ...(request.authorizationList ? { to: null } : {}),\n data: calldata,\n });\n}\n//# sourceMappingURL=deployContract.js.map","import { checksumAddress, } from '../../utils/address/getAddress.js';\n/**\n * Returns a list of account addresses owned by the wallet or client.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getAddresses\n * - JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\n *\n * @param client - Client to use\n * @returns List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getAddresses } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const accounts = await getAddresses(client)\n */\nexport async function getAddresses(client) {\n if (client.account?.type === 'local')\n return [client.account.address];\n const addresses = await client.request({ method: 'eth_accounts' }, { dedupe: true });\n return addresses.map((address) => checksumAddress(address));\n}\n//# sourceMappingURL=getAddresses.js.map","import { parseAccount } from '../../accounts/utils/parseAccount.js';\nimport { numberToHex } from '../../utils/encoding/toHex.js';\n/**\n * Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getCapabilities\n * - JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)\n *\n * @param client - Client to use\n * @returns The wallet's capabilities. {@link GetCapabilitiesReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getCapabilities } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const capabilities = await getCapabilities(client)\n */\nexport async function getCapabilities(client, parameters = {}) {\n const { account = client.account, chainId } = parameters;\n const account_ = account ? parseAccount(account) : undefined;\n const params = chainId\n ? [account_?.address, [numberToHex(chainId)]]\n : [account_?.address];\n const capabilities_raw = await client.request({\n method: 'wallet_getCapabilities',\n params,\n });\n const capabilities = {};\n for (const [chainId, capabilities_] of Object.entries(capabilities_raw)) {\n capabilities[Number(chainId)] = {};\n for (let [key, value] of Object.entries(capabilities_)) {\n if (key === 'addSubAccount')\n key = 'unstable_addSubAccount';\n capabilities[Number(chainId)][key] = value;\n }\n }\n return (typeof chainId === 'number' ? capabilities[chainId] : capabilities);\n}\n//# sourceMappingURL=getCapabilities.js.map","/**\n * Gets the wallets current permissions.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getPermissions\n * - JSON-RPC Methods: [`wallet_getPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\n *\n * @param client - Client to use\n * @returns The wallet permissions. {@link GetPermissionsReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getPermissions } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const permissions = await getPermissions(client)\n */\nexport async function getPermissions(client) {\n const permissions = await client.request({ method: 'wallet_getPermissions' }, { dedupe: true });\n return permissions;\n}\n//# sourceMappingURL=getPermissions.js.map","import { getAddress } from '../../utils/address/getAddress.js';\n/**\n * Requests a list of accounts managed by a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/requestAddresses\n * - JSON-RPC Methods: [`eth_requestAccounts`](https://eips.ethereum.org/EIPS/eip-1102)\n *\n * Sends a request to the wallet, asking for permission to access the user's accounts. After the user accepts the request, it will return a list of accounts (addresses).\n *\n * This API can be useful for dapps that need to access the user's accounts in order to execute transactions or interact with smart contracts.\n *\n * @param client - Client to use\n * @returns List of accounts managed by a wallet {@link RequestAddressesReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { requestAddresses } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const accounts = await requestAddresses(client)\n */\nexport async function requestAddresses(client) {\n const addresses = await client.request({ method: 'eth_requestAccounts' }, { dedupe: true, retryCount: 0 });\n return addresses.map((address) => getAddress(address));\n}\n//# sourceMappingURL=requestAddresses.js.map","/**\n * Requests permissions for a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/requestPermissions\n * - JSON-RPC Methods: [`wallet_requestPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\n *\n * @param client - Client to use\n * @param parameters - {@link RequestPermissionsParameters}\n * @returns The wallet permissions. {@link RequestPermissionsReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { requestPermissions } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const permissions = await requestPermissions(client, {\n * eth_accounts: {}\n * })\n */\nexport async function requestPermissions(client, permissions) {\n return client.request({\n method: 'wallet_requestPermissions',\n params: [permissions],\n }, { retryCount: 0 });\n}\n//# sourceMappingURL=requestPermissions.js.map","import { sendCalls, } from './sendCalls.js';\nimport { waitForCallsStatus, } from './waitForCallsStatus.js';\n/**\n * Requests the connected wallet to send a batch of calls, and waits for the calls to be included in a block.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendCallsSync\n * - JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\n *\n * @param client - Client to use\n * @returns Calls status. {@link SendCallsSyncReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendCalls } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const status = await sendCallsSync(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * calls: [\n * {\n * data: '0xdeadbeef',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * },\n * {\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 69420n,\n * },\n * ],\n * })\n */\nexport async function sendCallsSync(client, parameters) {\n const { chain = client.chain } = parameters;\n const timeout = parameters.timeout ?? Math.max((chain?.blockTime ?? 0) * 3, 5_000);\n const result = await sendCalls(client, parameters);\n const status = await waitForCallsStatus(client, {\n ...parameters,\n id: result.id,\n timeout,\n });\n return status;\n}\n//# sourceMappingURL=sendCallsSync.js.map","/**\n * Requests for the wallet to show information about a call batch\n * that was sent via `sendCalls`.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/showCallsStatus\n * - JSON-RPC Methods: [`wallet_showCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\n *\n * @param client - Client to use\n * @returns Status of the calls. {@link ShowCallsStatusReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { showCallsStatus } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * await showCallsStatus(client, { id: '0xdeadbeef' })\n */\nexport async function showCallsStatus(client, parameters) {\n const { id } = parameters;\n await client.request({\n method: 'wallet_showCallsStatus',\n params: [id],\n });\n return;\n}\n//# sourceMappingURL=showCallsStatus.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError, AccountTypeNotSupportedError, } from '../../errors/account.js';\nimport { prepareAuthorization, } from './prepareAuthorization.js';\n/**\n * Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\n *\n * With the calculated signature, you can:\n * - use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\n * - use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\n *\n * @param client - Client to use\n * @param parameters - {@link SignAuthorizationParameters}\n * @returns The signed Authorization object. {@link SignAuthorizationReturnType}\n *\n * @example\n * import { createClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signAuthorization } from 'viem/experimental'\n *\n * const client = createClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const signature = await signAuthorization(client, {\n * account: privateKeyToAccount('0x..'),\n * contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n *\n * @example\n * // Account Hoisting\n * import { createClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signAuthorization } from 'viem/experimental'\n *\n * const client = createClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const signature = await signAuthorization(client, {\n * contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function signAuthorization(client, parameters) {\n const { account: account_ = client.account } = parameters;\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/eip7702/signAuthorization',\n });\n const account = parseAccount(account_);\n if (!account.signAuthorization)\n throw new AccountTypeNotSupportedError({\n docsPath: '/docs/eip7702/signAuthorization',\n metaMessages: [\n 'The `signAuthorization` Action does not support JSON-RPC Accounts.',\n ],\n type: account.type,\n });\n const authorization = await prepareAuthorization(client, parameters);\n return account.signAuthorization(authorization);\n}\n//# sourceMappingURL=signAuthorization.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError } from '../../errors/account.js';\nimport { stringToHex, toHex, } from '../../utils/encoding/toHex.js';\n/**\n * Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\"\\x19Ethereum Signed Message:\\n\" + len(message) + message))`.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signMessage\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\n * - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * With the calculated signature, you can:\n * - use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\n * - use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\n *\n * @param client - Client to use\n * @param parameters - {@link SignMessageParameters}\n * @returns The signed message. {@link SignMessageReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signMessage } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signMessage(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * message: 'hello world',\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, custom } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signMessage } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signMessage(client, {\n * message: 'hello world',\n * })\n */\nexport async function signMessage(client, { account: account_ = client.account, message, }) {\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/signMessage',\n });\n const account = parseAccount(account_);\n if (account.signMessage)\n return account.signMessage({ message });\n const message_ = (() => {\n if (typeof message === 'string')\n return stringToHex(message);\n if (message.raw instanceof Uint8Array)\n return toHex(message.raw);\n return message.raw;\n })();\n return client.request({\n method: 'personal_sign',\n params: [message_, account.address],\n }, { retryCount: 0 });\n}\n//# sourceMappingURL=signMessage.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError } from '../../errors/account.js';\nimport { assertCurrentChain, } from '../../utils/chain/assertCurrentChain.js';\nimport { numberToHex } from '../../utils/encoding/toHex.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { assertRequest, } from '../../utils/transaction/assertRequest.js';\nimport { getChainId } from '../public/getChainId.js';\n/**\n * Signs a transaction.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signTransaction\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\n * - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * @param args - {@link SignTransactionParameters}\n * @returns The signed serialized transaction. {@link SignTransactionReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signTransaction } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signTransaction(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x0000000000000000000000000000000000000000',\n * value: 1n,\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signTransaction } from 'viem/actions'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signTransaction(client, {\n * to: '0x0000000000000000000000000000000000000000',\n * value: 1n,\n * })\n */\nexport async function signTransaction(client, parameters) {\n const { account: account_ = client.account, chain = client.chain, ...transaction } = parameters;\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/signTransaction',\n });\n const account = parseAccount(account_);\n assertRequest({\n account,\n ...parameters,\n });\n const chainId = await getAction(client, getChainId, 'getChainId')({});\n if (chain !== null)\n assertCurrentChain({\n currentChainId: chainId,\n chain,\n });\n const formatters = chain?.formatters || client.chain?.formatters;\n const format = formatters?.transactionRequest?.format || formatTransactionRequest;\n if (account.signTransaction)\n return account.signTransaction({\n ...transaction,\n chainId,\n }, { serializer: client.chain?.serializers?.transaction });\n return await client.request({\n method: 'eth_signTransaction',\n params: [\n {\n ...format({\n ...transaction,\n account,\n }, 'signTransaction'),\n chainId: numberToHex(chainId),\n from: account.address,\n },\n ],\n }, { retryCount: 0 });\n}\n//# sourceMappingURL=signTransaction.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError, } from '../../errors/account.js';\nimport { getTypesForEIP712Domain, serializeTypedData, validateTypedData, } from '../../utils/typedData.js';\n/**\n * Signs typed data and calculates an Ethereum-specific signature in [https://eips.ethereum.org/EIPS/eip-712](https://eips.ethereum.org/EIPS/eip-712): `sign(keccak256(\"\\x19\\x01\" ‖ domainSeparator ‖ hashStruct(message)))`\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signTypedData\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\n * - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * @param client - Client to use\n * @param parameters - {@link SignTypedDataParameters}\n * @returns The signed data. {@link SignTypedDataReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signTypedData } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signTypedData(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * domain: {\n * name: 'Ether Mail',\n * version: '1',\n * chainId: 1,\n * verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\n * },\n * types: {\n * Person: [\n * { name: 'name', type: 'string' },\n * { name: 'wallet', type: 'address' },\n * ],\n * Mail: [\n * { name: 'from', type: 'Person' },\n * { name: 'to', type: 'Person' },\n * { name: 'contents', type: 'string' },\n * ],\n * },\n * primaryType: 'Mail',\n * message: {\n * from: {\n * name: 'Cow',\n * wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\n * },\n * to: {\n * name: 'Bob',\n * wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\n * },\n * contents: 'Hello, Bob!',\n * },\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signTypedData } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const signature = await signTypedData(client, {\n * domain: {\n * name: 'Ether Mail',\n * version: '1',\n * chainId: 1,\n * verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\n * },\n * types: {\n * Person: [\n * { name: 'name', type: 'string' },\n * { name: 'wallet', type: 'address' },\n * ],\n * Mail: [\n * { name: 'from', type: 'Person' },\n * { name: 'to', type: 'Person' },\n * { name: 'contents', type: 'string' },\n * ],\n * },\n * primaryType: 'Mail',\n * message: {\n * from: {\n * name: 'Cow',\n * wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\n * },\n * to: {\n * name: 'Bob',\n * wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\n * },\n * contents: 'Hello, Bob!',\n * },\n * })\n */\nexport async function signTypedData(client, parameters) {\n const { account: account_ = client.account, domain, message, primaryType, } = parameters;\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/signTypedData',\n });\n const account = parseAccount(account_);\n const types = {\n EIP712Domain: getTypesForEIP712Domain({ domain }),\n ...parameters.types,\n };\n // Need to do a runtime validation check on addresses, byte ranges, integer ranges, etc\n // as we can't statically check this with TypeScript.\n validateTypedData({ domain, message, primaryType, types });\n if (account.signTypedData)\n return account.signTypedData({ domain, message, primaryType, types });\n const typedData = serializeTypedData({ domain, message, primaryType, types });\n return client.request({\n method: 'eth_signTypedData_v4',\n params: [account.address, typedData],\n }, { retryCount: 0 });\n}\n//# sourceMappingURL=signTypedData.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Switch the target chain in a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/switchChain\n * - JSON-RPC Methods: [`wallet_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326)\n *\n * @param client - Client to use\n * @param parameters - {@link SwitchChainParameters}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet, optimism } from 'viem/chains'\n * import { switchChain } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * await switchChain(client, { id: optimism.id })\n */\nexport async function switchChain(client, { id }) {\n await client.request({\n method: 'wallet_switchEthereumChain',\n params: [\n {\n chainId: numberToHex(id),\n },\n ],\n }, { retryCount: 0 });\n}\n//# sourceMappingURL=switchChain.js.map","/**\n * Adds an EVM chain to the wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/watchAsset\n * - JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\n *\n * @param client - Client to use\n * @param parameters - {@link WatchAssetParameters}\n * @returns Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchAsset } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const success = await watchAsset(client, {\n * type: 'ERC20',\n * options: {\n * address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n * decimals: 18,\n * symbol: 'WETH',\n * },\n * })\n */\nexport async function watchAsset(client, params) {\n const added = await client.request({\n method: 'wallet_watchAsset',\n params,\n }, { retryCount: 0 });\n return added;\n}\n//# sourceMappingURL=watchAsset.js.map","import { sendTransactionSync, } from './sendTransactionSync.js';\nimport { writeContract } from './writeContract.js';\n/**\n * Executes a write function on a contract synchronously.\n * Returns the transaction receipt.\n *\n * - Docs: https://viem.sh/docs/contract/writeContractSync\n *\n * A \"write\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\n *\n * Internally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n *\n * __Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\n *\n * @param client - Client to use\n * @param parameters - {@link WriteContractParameters}\n * @returns A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\n *\n * @example\n * import { createWalletClient, custom, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { writeContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const receipt = await writeContractSync(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\n * functionName: 'mint',\n * args: [69420],\n * })\n */\nexport async function writeContractSync(client, parameters) {\n return writeContract.internal(client, sendTransactionSync, 'sendTransactionSync', parameters);\n}\n//# sourceMappingURL=writeContractSync.js.map","import { createClient, } from './createClient.js';\nimport { walletActions } from './decorators/wallet.js';\nexport function createWalletClient(parameters) {\n const { key = 'wallet', name = 'Wallet Client', transport } = parameters;\n const client = createClient({\n ...parameters,\n key,\n name,\n transport,\n type: 'walletClient',\n });\n return client.extend(walletActions);\n}\n//# sourceMappingURL=createWalletClient.js.map","import { gweiUnits } from '../../constants/unit.js';\nimport { formatUnits } from './formatUnits.js';\n/**\n * Converts numerical wei to a string representation of gwei.\n *\n * - Docs: https://viem.sh/docs/utilities/formatGwei\n *\n * @example\n * import { formatGwei } from 'viem'\n *\n * formatGwei(1000000000n)\n * // '1'\n */\nexport function formatGwei(wei, unit = 'wei') {\n return formatUnits(wei, gweiUnits[unit]);\n}\n//# sourceMappingURL=formatGwei.js.map","let moduleVersion = \"3.19.14\";\nexport const getCurrentVersion = () => moduleVersion;\nexport const setCurrentVersion = version => {\n moduleVersion = version;\n};\n//# sourceMappingURL=version.js.map","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","import { BaseError } from './base.js';\nimport { RpcRequestError } from './request.js';\nconst unknownErrorCode = -1;\nexport class RpcError extends BaseError {\n constructor(cause, { code, docsPath, metaMessages, name, shortMessage, }) {\n super(shortMessage, {\n cause,\n docsPath,\n metaMessages: metaMessages || cause?.metaMessages,\n name: name || 'RpcError',\n });\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.name = name || cause.name;\n this.code = (cause instanceof RpcRequestError ? cause.code : (code ?? unknownErrorCode));\n }\n}\nexport class ProviderRpcError extends RpcError {\n constructor(cause, options) {\n super(cause, options);\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.data = options.data;\n }\n}\nexport class ParseRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: ParseRpcError.code,\n name: 'ParseRpcError',\n shortMessage: 'Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.',\n });\n }\n}\nObject.defineProperty(ParseRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32700\n});\nexport class InvalidRequestRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: InvalidRequestRpcError.code,\n name: 'InvalidRequestRpcError',\n shortMessage: 'JSON is not a valid request object.',\n });\n }\n}\nObject.defineProperty(InvalidRequestRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32600\n});\nexport class MethodNotFoundRpcError extends RpcError {\n constructor(cause, { method } = {}) {\n super(cause, {\n code: MethodNotFoundRpcError.code,\n name: 'MethodNotFoundRpcError',\n shortMessage: `The method${method ? ` \"${method}\"` : ''} does not exist / is not available.`,\n });\n }\n}\nObject.defineProperty(MethodNotFoundRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32601\n});\nexport class InvalidParamsRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: InvalidParamsRpcError.code,\n name: 'InvalidParamsRpcError',\n shortMessage: [\n 'Invalid parameters were provided to the RPC method.',\n 'Double check you have provided the correct parameters.',\n ].join('\\n'),\n });\n }\n}\nObject.defineProperty(InvalidParamsRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32602\n});\nexport class InternalRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: InternalRpcError.code,\n name: 'InternalRpcError',\n shortMessage: 'An internal error was received.',\n });\n }\n}\nObject.defineProperty(InternalRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32603\n});\nexport class InvalidInputRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: InvalidInputRpcError.code,\n name: 'InvalidInputRpcError',\n shortMessage: [\n 'Missing or invalid parameters.',\n 'Double check you have provided the correct parameters.',\n ].join('\\n'),\n });\n }\n}\nObject.defineProperty(InvalidInputRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32000\n});\nexport class ResourceNotFoundRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: ResourceNotFoundRpcError.code,\n name: 'ResourceNotFoundRpcError',\n shortMessage: 'Requested resource not found.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ResourceNotFoundRpcError'\n });\n }\n}\nObject.defineProperty(ResourceNotFoundRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32001\n});\nexport class ResourceUnavailableRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: ResourceUnavailableRpcError.code,\n name: 'ResourceUnavailableRpcError',\n shortMessage: 'Requested resource not available.',\n });\n }\n}\nObject.defineProperty(ResourceUnavailableRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32002\n});\nexport class TransactionRejectedRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: TransactionRejectedRpcError.code,\n name: 'TransactionRejectedRpcError',\n shortMessage: 'Transaction creation failed.',\n });\n }\n}\nObject.defineProperty(TransactionRejectedRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32003\n});\nexport class MethodNotSupportedRpcError extends RpcError {\n constructor(cause, { method } = {}) {\n super(cause, {\n code: MethodNotSupportedRpcError.code,\n name: 'MethodNotSupportedRpcError',\n shortMessage: `Method${method ? ` \"${method}\"` : ''} is not supported.`,\n });\n }\n}\nObject.defineProperty(MethodNotSupportedRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32004\n});\nexport class LimitExceededRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: LimitExceededRpcError.code,\n name: 'LimitExceededRpcError',\n shortMessage: 'Request exceeds defined limit.',\n });\n }\n}\nObject.defineProperty(LimitExceededRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32005\n});\nexport class JsonRpcVersionUnsupportedError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: JsonRpcVersionUnsupportedError.code,\n name: 'JsonRpcVersionUnsupportedError',\n shortMessage: 'Version of JSON-RPC protocol is not supported.',\n });\n }\n}\nObject.defineProperty(JsonRpcVersionUnsupportedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32006\n});\nexport class UserRejectedRequestError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: UserRejectedRequestError.code,\n name: 'UserRejectedRequestError',\n shortMessage: 'User rejected the request.',\n });\n }\n}\nObject.defineProperty(UserRejectedRequestError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4001\n});\nexport class UnauthorizedProviderError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: UnauthorizedProviderError.code,\n name: 'UnauthorizedProviderError',\n shortMessage: 'The requested method and/or account has not been authorized by the user.',\n });\n }\n}\nObject.defineProperty(UnauthorizedProviderError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4100\n});\nexport class UnsupportedProviderMethodError extends ProviderRpcError {\n constructor(cause, { method } = {}) {\n super(cause, {\n code: UnsupportedProviderMethodError.code,\n name: 'UnsupportedProviderMethodError',\n shortMessage: `The Provider does not support the requested method${method ? ` \" ${method}\"` : ''}.`,\n });\n }\n}\nObject.defineProperty(UnsupportedProviderMethodError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4200\n});\nexport class ProviderDisconnectedError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: ProviderDisconnectedError.code,\n name: 'ProviderDisconnectedError',\n shortMessage: 'The Provider is disconnected from all chains.',\n });\n }\n}\nObject.defineProperty(ProviderDisconnectedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4900\n});\nexport class ChainDisconnectedError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: ChainDisconnectedError.code,\n name: 'ChainDisconnectedError',\n shortMessage: 'The Provider is not connected to the requested chain.',\n });\n }\n}\nObject.defineProperty(ChainDisconnectedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4901\n});\nexport class SwitchChainError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: SwitchChainError.code,\n name: 'SwitchChainError',\n shortMessage: 'An error occurred when attempting to switch chain.',\n });\n }\n}\nObject.defineProperty(SwitchChainError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4902\n});\nexport class UnsupportedNonOptionalCapabilityError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: UnsupportedNonOptionalCapabilityError.code,\n name: 'UnsupportedNonOptionalCapabilityError',\n shortMessage: 'This Wallet does not support a capability that was not marked as optional.',\n });\n }\n}\nObject.defineProperty(UnsupportedNonOptionalCapabilityError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 5700\n});\nexport class UnsupportedChainIdError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: UnsupportedChainIdError.code,\n name: 'UnsupportedChainIdError',\n shortMessage: 'This Wallet does not support the requested chain ID.',\n });\n }\n}\nObject.defineProperty(UnsupportedChainIdError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 5710\n});\nexport class DuplicateIdError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: DuplicateIdError.code,\n name: 'DuplicateIdError',\n shortMessage: 'There is already a bundle submitted with this ID.',\n });\n }\n}\nObject.defineProperty(DuplicateIdError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 5720\n});\nexport class UnknownBundleIdError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: UnknownBundleIdError.code,\n name: 'UnknownBundleIdError',\n shortMessage: 'This bundle id is unknown / has not been submitted',\n });\n }\n}\nObject.defineProperty(UnknownBundleIdError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 5730\n});\nexport class BundleTooLargeError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: BundleTooLargeError.code,\n name: 'BundleTooLargeError',\n shortMessage: 'The call bundle is too large for the Wallet to process.',\n });\n }\n}\nObject.defineProperty(BundleTooLargeError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 5740\n});\nexport class AtomicReadyWalletRejectedUpgradeError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: AtomicReadyWalletRejectedUpgradeError.code,\n name: 'AtomicReadyWalletRejectedUpgradeError',\n shortMessage: 'The Wallet can support atomicity after an upgrade, but the user rejected the upgrade.',\n });\n }\n}\nObject.defineProperty(AtomicReadyWalletRejectedUpgradeError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 5750\n});\nexport class AtomicityNotSupportedError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: AtomicityNotSupportedError.code,\n name: 'AtomicityNotSupportedError',\n shortMessage: 'The wallet does not support atomic execution but the request requires it.',\n });\n }\n}\nObject.defineProperty(AtomicityNotSupportedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 5760\n});\nexport class UnknownRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n name: 'UnknownRpcError',\n shortMessage: 'An unknown RPC error occurred.',\n });\n }\n}\n//# sourceMappingURL=rpc.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\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 }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","import { InvalidAddressError, } from '../errors/address.js';\nimport { InvalidBytesLengthError, } from '../errors/data.js';\nimport { AccountStateConflictError, StateAssignmentConflictError, } from '../errors/stateOverride.js';\nimport { isAddress } from './address/isAddress.js';\nimport { numberToHex } from './encoding/toHex.js';\n/** @internal */\nexport function serializeStateMapping(stateMapping) {\n if (!stateMapping || stateMapping.length === 0)\n return undefined;\n return stateMapping.reduce((acc, { slot, value }) => {\n if (slot.length !== 66)\n throw new InvalidBytesLengthError({\n size: slot.length,\n targetSize: 66,\n type: 'hex',\n });\n if (value.length !== 66)\n throw new InvalidBytesLengthError({\n size: value.length,\n targetSize: 66,\n type: 'hex',\n });\n acc[slot] = value;\n return acc;\n }, {});\n}\n/** @internal */\nexport function serializeAccountStateOverride(parameters) {\n const { balance, nonce, state, stateDiff, code } = parameters;\n const rpcAccountStateOverride = {};\n if (code !== undefined)\n rpcAccountStateOverride.code = code;\n if (balance !== undefined)\n rpcAccountStateOverride.balance = numberToHex(balance);\n if (nonce !== undefined)\n rpcAccountStateOverride.nonce = numberToHex(nonce);\n if (state !== undefined)\n rpcAccountStateOverride.state = serializeStateMapping(state);\n if (stateDiff !== undefined) {\n if (rpcAccountStateOverride.state)\n throw new StateAssignmentConflictError();\n rpcAccountStateOverride.stateDiff = serializeStateMapping(stateDiff);\n }\n return rpcAccountStateOverride;\n}\n/** @internal */\nexport function serializeStateOverride(parameters) {\n if (!parameters)\n return undefined;\n const rpcStateOverride = {};\n for (const { address, ...accountState } of parameters) {\n if (!isAddress(address, { strict: false }))\n throw new InvalidAddressError({ address });\n if (rpcStateOverride[address])\n throw new AccountStateConflictError({ address: address });\n rpcStateOverride[address] = serializeAccountStateOverride(accountState);\n }\n return rpcStateOverride;\n}\n//# sourceMappingURL=stateOverride.js.map","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","/**\n * @since 2.0.0\n */\nimport * as Equal from \"./Equal.js\";\nimport * as Dual from \"./Function.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"./Inspectable.js\";\nimport { pipeArguments } from \"./Pipeable.js\";\nconst TypeId = /*#__PURE__*/Symbol.for(\"effect/MutableRef\");\nconst MutableRefProto = {\n [TypeId]: TypeId,\n toString() {\n return format(this.toJSON());\n },\n toJSON() {\n return {\n _id: \"MutableRef\",\n current: toJSON(this.current)\n };\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const make = value => {\n const ref = Object.create(MutableRefProto);\n ref.current = value;\n return ref;\n};\n/**\n * @since 2.0.0\n * @category general\n */\nexport const compareAndSet = /*#__PURE__*/Dual.dual(3, (self, oldValue, newValue) => {\n if (Equal.equals(oldValue, self.current)) {\n self.current = newValue;\n return true;\n }\n return false;\n});\n/**\n * @since 2.0.0\n * @category numeric\n */\nexport const decrement = self => update(self, n => n - 1);\n/**\n * @since 2.0.0\n * @category numeric\n */\nexport const decrementAndGet = self => updateAndGet(self, n => n - 1);\n/**\n * @since 2.0.0\n * @category general\n */\nexport const get = self => self.current;\n/**\n * @since 2.0.0\n * @category numeric\n */\nexport const getAndDecrement = self => getAndUpdate(self, n => n - 1);\n/**\n * @since 2.0.0\n * @category numeric\n */\nexport const getAndIncrement = self => getAndUpdate(self, n => n + 1);\n/**\n * @since 2.0.0\n * @category general\n */\nexport const getAndSet = /*#__PURE__*/Dual.dual(2, (self, value) => {\n const ret = self.current;\n self.current = value;\n return ret;\n});\n/**\n * @since 2.0.0\n * @category general\n */\nexport const getAndUpdate = /*#__PURE__*/Dual.dual(2, (self, f) => getAndSet(self, f(get(self))));\n/**\n * @since 2.0.0\n * @category numeric\n */\nexport const increment = self => update(self, n => n + 1);\n/**\n * @since 2.0.0\n * @category numeric\n */\nexport const incrementAndGet = self => updateAndGet(self, n => n + 1);\n/**\n * @since 2.0.0\n * @category general\n */\nexport const set = /*#__PURE__*/Dual.dual(2, (self, value) => {\n self.current = value;\n return self;\n});\n/**\n * @since 2.0.0\n * @category general\n */\nexport const setAndGet = /*#__PURE__*/Dual.dual(2, (self, value) => {\n self.current = value;\n return self.current;\n});\n/**\n * @since 2.0.0\n * @category general\n */\nexport const update = /*#__PURE__*/Dual.dual(2, (self, f) => set(self, f(get(self))));\n/**\n * @since 2.0.0\n * @category general\n */\nexport const updateAndGet = /*#__PURE__*/Dual.dual(2, (self, f) => setAndGet(self, f(get(self))));\n/**\n * @since 2.0.0\n * @category boolean\n */\nexport const toggle = self => update(self, _ => !_);\n//# sourceMappingURL=MutableRef.js.map","import { formatGwei } from '../utils/unit/formatGwei.js';\nimport { BaseError } from './base.js';\nexport class ExecutionRevertedError extends BaseError {\n constructor({ cause, message, } = {}) {\n const reason = message\n ?.replace('execution reverted: ', '')\n ?.replace('execution reverted', '');\n super(`Execution reverted ${reason ? `with reason: ${reason}` : 'for an unknown reason'}.`, {\n cause,\n name: 'ExecutionRevertedError',\n });\n }\n}\nObject.defineProperty(ExecutionRevertedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 3\n});\nObject.defineProperty(ExecutionRevertedError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /execution reverted|gas required exceeds allowance/\n});\nexport class FeeCapTooHighError extends BaseError {\n constructor({ cause, maxFeePerGas, } = {}) {\n super(`The fee cap (\\`maxFeePerGas\\`${maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)} gwei` : ''}) cannot be higher than the maximum allowed value (2^256-1).`, {\n cause,\n name: 'FeeCapTooHighError',\n });\n }\n}\nObject.defineProperty(FeeCapTooHighError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /max fee per gas higher than 2\\^256-1|fee cap higher than 2\\^256-1/\n});\nexport class FeeCapTooLowError extends BaseError {\n constructor({ cause, maxFeePerGas, } = {}) {\n super(`The fee cap (\\`maxFeePerGas\\`${maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)}` : ''} gwei) cannot be lower than the block base fee.`, {\n cause,\n name: 'FeeCapTooLowError',\n });\n }\n}\nObject.defineProperty(FeeCapTooLowError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/\n});\nexport class NonceTooHighError extends BaseError {\n constructor({ cause, nonce, } = {}) {\n super(`Nonce provided for the transaction ${nonce ? `(${nonce}) ` : ''}is higher than the next one expected.`, { cause, name: 'NonceTooHighError' });\n }\n}\nObject.defineProperty(NonceTooHighError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /nonce too high/\n});\nexport class NonceTooLowError extends BaseError {\n constructor({ cause, nonce, } = {}) {\n super([\n `Nonce provided for the transaction ${nonce ? `(${nonce}) ` : ''}is lower than the current nonce of the account.`,\n 'Try increasing the nonce or find the latest nonce with `getTransactionCount`.',\n ].join('\\n'), { cause, name: 'NonceTooLowError' });\n }\n}\nObject.defineProperty(NonceTooLowError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /nonce too low|transaction already imported|already known/\n});\nexport class NonceMaxValueError extends BaseError {\n constructor({ cause, nonce, } = {}) {\n super(`Nonce provided for the transaction ${nonce ? `(${nonce}) ` : ''}exceeds the maximum allowed nonce.`, { cause, name: 'NonceMaxValueError' });\n }\n}\nObject.defineProperty(NonceMaxValueError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /nonce has max value/\n});\nexport class InsufficientFundsError extends BaseError {\n constructor({ cause } = {}) {\n super([\n 'The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account.',\n ].join('\\n'), {\n cause,\n metaMessages: [\n 'This error could arise when the account does not have enough funds to:',\n ' - pay for the total gas fee,',\n ' - pay for the value to send.',\n ' ',\n 'The cost of the transaction is calculated as `gas * gas fee + value`, where:',\n ' - `gas` is the amount of gas needed for transaction to execute,',\n ' - `gas fee` is the gas fee,',\n ' - `value` is the amount of ether to send to the recipient.',\n ],\n name: 'InsufficientFundsError',\n });\n }\n}\nObject.defineProperty(InsufficientFundsError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /insufficient funds|exceeds transaction sender account balance/\n});\nexport class IntrinsicGasTooHighError extends BaseError {\n constructor({ cause, gas, } = {}) {\n super(`The amount of gas ${gas ? `(${gas}) ` : ''}provided for the transaction exceeds the limit allowed for the block.`, {\n cause,\n name: 'IntrinsicGasTooHighError',\n });\n }\n}\nObject.defineProperty(IntrinsicGasTooHighError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /intrinsic gas too high|gas limit reached/\n});\nexport class IntrinsicGasTooLowError extends BaseError {\n constructor({ cause, gas, } = {}) {\n super(`The amount of gas ${gas ? `(${gas}) ` : ''}provided for the transaction is too low.`, {\n cause,\n name: 'IntrinsicGasTooLowError',\n });\n }\n}\nObject.defineProperty(IntrinsicGasTooLowError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /intrinsic gas too low/\n});\nexport class TransactionTypeNotSupportedError extends BaseError {\n constructor({ cause }) {\n super('The transaction type is not supported for this chain.', {\n cause,\n name: 'TransactionTypeNotSupportedError',\n });\n }\n}\nObject.defineProperty(TransactionTypeNotSupportedError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /transaction type not valid/\n});\nexport class TipAboveFeeCapError extends BaseError {\n constructor({ cause, maxPriorityFeePerGas, maxFeePerGas, } = {}) {\n super([\n `The provided tip (\\`maxPriorityFeePerGas\\`${maxPriorityFeePerGas\n ? ` = ${formatGwei(maxPriorityFeePerGas)} gwei`\n : ''}) cannot be higher than the fee cap (\\`maxFeePerGas\\`${maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)} gwei` : ''}).`,\n ].join('\\n'), {\n cause,\n name: 'TipAboveFeeCapError',\n });\n }\n}\nObject.defineProperty(TipAboveFeeCapError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /max priority fee per gas higher than max fee per gas|tip higher than fee cap/\n});\nexport class UnknownNodeError extends BaseError {\n constructor({ cause }) {\n super(`An error occurred while executing: ${cause?.shortMessage}`, {\n cause,\n name: 'UnknownNodeError',\n });\n }\n}\n//# sourceMappingURL=node.js.map","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\n/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits');\nvar Sha256 = require('./sha256');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar W = new Array(64);\n\nfunction Sha224() {\n\tthis.init();\n\n\tthis._w = W; // new Array(64)\n\n\tHash.call(this, 64, 56);\n}\n\ninherits(Sha224, Sha256);\n\nSha224.prototype.init = function () {\n\tthis._a = 0xc1059ed8;\n\tthis._b = 0x367cd507;\n\tthis._c = 0x3070dd17;\n\tthis._d = 0xf70e5939;\n\tthis._e = 0xffc00b31;\n\tthis._f = 0x68581511;\n\tthis._g = 0x64f98fa7;\n\tthis._h = 0xbefa4fa4;\n\n\treturn this;\n};\n\nSha224.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(28);\n\n\tH.writeInt32BE(this._a, 0);\n\tH.writeInt32BE(this._b, 4);\n\tH.writeInt32BE(this._c, 8);\n\tH.writeInt32BE(this._d, 12);\n\tH.writeInt32BE(this._e, 16);\n\tH.writeInt32BE(this._f, 20);\n\tH.writeInt32BE(this._g, 24);\n\n\treturn H;\n};\n\nmodule.exports = Sha224;\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports[\"default\"]=void 0;var RHO_OFFSETS=[1,3,6,10,15,21,28,36,45,55,2,14,27,41,56,8,25,43,62,18,39,61,20,44];var _default=RHO_OFFSETS;exports[\"default\"]=_default;","import { dual, pipe } from \"./Function.js\";\nimport * as core from \"./internal/core.js\";\nimport * as number from \"./Number.js\";\nimport * as order from \"./Order.js\";\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const All = core.logLevelAll;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const Fatal = core.logLevelFatal;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const Error = core.logLevelError;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const Warning = core.logLevelWarning;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const Info = core.logLevelInfo;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const Debug = core.logLevelDebug;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const Trace = core.logLevelTrace;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const None = core.logLevelNone;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const allLevels = core.allLogLevels;\n/**\n * Temporarily sets a `LogLevel` for an `Effect` workflow.\n *\n * **Details**\n *\n * This function allows you to apply a specific `LogLevel` locally to an\n * `Effect` workflow. Once the workflow completes, the `LogLevel` reverts to its\n * previous state.\n *\n * **When to Use**\n *\n * This is particularly useful when you want to adjust the verbosity of logging\n * for specific parts of your program without affecting the global log level.\n *\n * @example\n * ```ts\n * import { Effect, LogLevel } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Effect.log(\"message1\")\n * yield* Effect.gen(function*() {\n * yield* Effect.log(\"message2\")\n * yield* Effect.log(\"message3\")\n * }).pipe(LogLevel.locally(LogLevel.Warning))\n * })\n *\n * Effect.runFork(program)\n * // timestamp=... level=INFO fiber=#0 message=message1\n * // timestamp=... level=WARN fiber=#0 message=message2\n * // timestamp=... level=WARN fiber=#0 message=message3\n * ```\n *\n * @since 2.0.0\n * @category utils\n */\nexport const locally = /*#__PURE__*/dual(2, (use, self) => core.fiberRefLocally(use, core.currentLogLevel, self));\n/**\n * @since 2.0.0\n * @category instances\n */\nexport const Order = /*#__PURE__*/pipe(number.Order, /*#__PURE__*/order.mapInput(level => level.ordinal));\n/**\n * @since 2.0.0\n * @category ordering\n */\nexport const lessThan = /*#__PURE__*/order.lessThan(Order);\n/**\n * @since 2.0.0\n * @category ordering\n */\nexport const lessThanEqual = /*#__PURE__*/order.lessThanOrEqualTo(Order);\n/**\n * @since 2.0.0\n * @category ordering\n */\nexport const greaterThan = /*#__PURE__*/order.greaterThan(Order);\n/**\n * @since 2.0.0\n * @category ordering\n */\nexport const greaterThanEqual = /*#__PURE__*/order.greaterThanOrEqualTo(Order);\n/**\n * @since 2.0.0\n * @category conversions\n */\nexport const fromLiteral = literal => {\n switch (literal) {\n case \"All\":\n return All;\n case \"Debug\":\n return Debug;\n case \"Error\":\n return Error;\n case \"Fatal\":\n return Fatal;\n case \"Info\":\n return Info;\n case \"Trace\":\n return Trace;\n case \"None\":\n return None;\n case \"Warning\":\n return Warning;\n }\n};\n//# sourceMappingURL=LogLevel.js.map","const EC = require('elliptic').ec\n\nconst ec = new EC('secp256k1')\nconst ecparams = ec.curve\n\n// Hack, we can not use bn.js@5, while elliptic uses bn.js@4\n// See https://github.com/indutny/elliptic/issues/191#issuecomment-569888758\nconst BN = ecparams.n.constructor\n\nfunction loadCompressedPublicKey (first, xbuf) {\n let x = new BN(xbuf)\n\n // overflow\n if (x.cmp(ecparams.p) >= 0) return null\n x = x.toRed(ecparams.red)\n\n // compute corresponding Y\n let y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()\n if ((first === 0x03) !== y.isOdd()) y = y.redNeg()\n\n // x*x*x + b = y*y\n const x3 = x.redSqr().redIMul(x)\n if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null\n\n return ec.keyPair({ pub: { x: x, y: y } })\n}\n\nfunction loadUncompressedPublicKey (first, xbuf, ybuf) {\n let x = new BN(xbuf)\n let y = new BN(ybuf)\n\n // overflow\n if (x.cmp(ecparams.p) >= 0 || y.cmp(ecparams.p) >= 0) return null\n\n x = x.toRed(ecparams.red)\n y = y.toRed(ecparams.red)\n\n // is odd flag\n if ((first === 0x06 || first === 0x07) && y.isOdd() !== (first === 0x07)) return null\n\n // x*x*x + b = y*y\n const x3 = x.redSqr().redIMul(x)\n if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null\n\n return ec.keyPair({ pub: { x: x, y: y } })\n}\n\nfunction loadPublicKey (pubkey) {\n // length should be validated in interface\n const first = pubkey[0]\n switch (first) {\n case 0x02:\n case 0x03:\n if (pubkey.length !== 33) return null\n return loadCompressedPublicKey(first, pubkey.subarray(1, 33))\n case 0x04:\n case 0x06:\n case 0x07:\n if (pubkey.length !== 65) return null\n return loadUncompressedPublicKey(first, pubkey.subarray(1, 33), pubkey.subarray(33, 65))\n default:\n return null\n }\n}\n\nfunction savePublicKey (output, point) {\n const pubkey = point.encode(null, output.length === 33)\n // Loop should be faster because we do not need create extra Uint8Array\n // output.set(new Uint8Array(pubkey))\n for (let i = 0; i < output.length; ++i) output[i] = pubkey[i]\n}\n\nmodule.exports = {\n contextRandomize () {\n return 0\n },\n\n privateKeyVerify (seckey) {\n const bn = new BN(seckey)\n return bn.cmp(ecparams.n) < 0 && !bn.isZero() ? 0 : 1\n },\n\n privateKeyNegate (seckey) {\n const bn = new BN(seckey)\n const negate = ecparams.n.sub(bn).umod(ecparams.n).toArrayLike(Uint8Array, 'be', 32)\n seckey.set(negate)\n return 0\n },\n\n privateKeyTweakAdd (seckey, tweak) {\n const bn = new BN(tweak)\n if (bn.cmp(ecparams.n) >= 0) return 1\n\n bn.iadd(new BN(seckey))\n if (bn.cmp(ecparams.n) >= 0) bn.isub(ecparams.n)\n if (bn.isZero()) return 1\n\n const tweaked = bn.toArrayLike(Uint8Array, 'be', 32)\n seckey.set(tweaked)\n\n return 0\n },\n\n privateKeyTweakMul (seckey, tweak) {\n let bn = new BN(tweak)\n if (bn.cmp(ecparams.n) >= 0 || bn.isZero()) return 1\n\n bn.imul(new BN(seckey))\n if (bn.cmp(ecparams.n) >= 0) bn = bn.umod(ecparams.n)\n\n const tweaked = bn.toArrayLike(Uint8Array, 'be', 32)\n seckey.set(tweaked)\n\n return 0\n },\n\n publicKeyVerify (pubkey) {\n const pair = loadPublicKey(pubkey)\n return pair === null ? 1 : 0\n },\n\n publicKeyCreate (output, seckey) {\n const bn = new BN(seckey)\n if (bn.cmp(ecparams.n) >= 0 || bn.isZero()) return 1\n\n const point = ec.keyFromPrivate(seckey).getPublic()\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyConvert (output, pubkey) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n const point = pair.getPublic()\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyNegate (output, pubkey) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n const point = pair.getPublic()\n point.y = point.y.redNeg()\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyCombine (output, pubkeys) {\n const pairs = new Array(pubkeys.length)\n for (let i = 0; i < pubkeys.length; ++i) {\n pairs[i] = loadPublicKey(pubkeys[i])\n if (pairs[i] === null) return 1\n }\n\n let point = pairs[0].getPublic()\n for (let i = 1; i < pairs.length; ++i) point = point.add(pairs[i].pub)\n if (point.isInfinity()) return 2\n\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyTweakAdd (output, pubkey, tweak) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n tweak = new BN(tweak)\n if (tweak.cmp(ecparams.n) >= 0) return 2\n\n const point = pair.getPublic().add(ecparams.g.mul(tweak))\n if (point.isInfinity()) return 2\n\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyTweakMul (output, pubkey, tweak) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n tweak = new BN(tweak)\n if (tweak.cmp(ecparams.n) >= 0 || tweak.isZero()) return 2\n\n const point = pair.getPublic().mul(tweak)\n savePublicKey(output, point)\n\n return 0\n },\n\n signatureNormalize (sig) {\n const r = new BN(sig.subarray(0, 32))\n const s = new BN(sig.subarray(32, 64))\n if (r.cmp(ecparams.n) >= 0 || s.cmp(ecparams.n) >= 0) return 1\n\n if (s.cmp(ec.nh) === 1) {\n sig.set(ecparams.n.sub(s).toArrayLike(Uint8Array, 'be', 32), 32)\n }\n\n return 0\n },\n\n // Copied 1-to-1 from https://github.com/bitcoinjs/bip66/blob/master/index.js\n // Adapted for Uint8Array instead Buffer\n signatureExport (obj, sig) {\n const sigR = sig.subarray(0, 32)\n const sigS = sig.subarray(32, 64)\n if (new BN(sigR).cmp(ecparams.n) >= 0) return 1\n if (new BN(sigS).cmp(ecparams.n) >= 0) return 1\n\n const { output } = obj\n\n // Prepare R\n let r = output.subarray(4, 4 + 33)\n r[0] = 0x00\n r.set(sigR, 1)\n\n let lenR = 33\n let posR = 0\n for (; lenR > 1 && r[posR] === 0x00 && !(r[posR + 1] & 0x80); --lenR, ++posR);\n\n r = r.subarray(posR)\n if (r[0] & 0x80) return 1\n if (lenR > 1 && (r[0] === 0x00) && !(r[1] & 0x80)) return 1\n\n // Prepare S\n let s = output.subarray(6 + 33, 6 + 33 + 33)\n s[0] = 0x00\n s.set(sigS, 1)\n\n let lenS = 33\n let posS = 0\n for (; lenS > 1 && s[posS] === 0x00 && !(s[posS + 1] & 0x80); --lenS, ++posS);\n\n s = s.subarray(posS)\n if (s[0] & 0x80) return 1\n if (lenS > 1 && (s[0] === 0x00) && !(s[1] & 0x80)) return 1\n\n // Set output length for return\n obj.outputlen = 6 + lenR + lenS\n\n // Output in specified format\n // 0x30 [total-length] 0x02 [R-length] [R] 0x02 [S-length] [S]\n output[0] = 0x30\n output[1] = obj.outputlen - 2\n output[2] = 0x02\n output[3] = r.length\n output.set(r, 4)\n output[4 + lenR] = 0x02\n output[5 + lenR] = s.length\n output.set(s, 6 + lenR)\n\n return 0\n },\n\n // Copied 1-to-1 from https://github.com/bitcoinjs/bip66/blob/master/index.js\n // Adapted for Uint8Array instead Buffer\n signatureImport (output, sig) {\n if (sig.length < 8) return 1\n if (sig.length > 72) return 1\n if (sig[0] !== 0x30) return 1\n if (sig[1] !== sig.length - 2) return 1\n if (sig[2] !== 0x02) return 1\n\n const lenR = sig[3]\n if (lenR === 0) return 1\n if (5 + lenR >= sig.length) return 1\n if (sig[4 + lenR] !== 0x02) return 1\n\n const lenS = sig[5 + lenR]\n if (lenS === 0) return 1\n if ((6 + lenR + lenS) !== sig.length) return 1\n\n if (sig[4] & 0x80) return 1\n if (lenR > 1 && (sig[4] === 0x00) && !(sig[5] & 0x80)) return 1\n\n if (sig[lenR + 6] & 0x80) return 1\n if (lenS > 1 && (sig[lenR + 6] === 0x00) && !(sig[lenR + 7] & 0x80)) return 1\n\n let sigR = sig.subarray(4, 4 + lenR)\n if (sigR.length === 33 && sigR[0] === 0x00) sigR = sigR.subarray(1)\n if (sigR.length > 32) return 1\n\n let sigS = sig.subarray(6 + lenR)\n if (sigS.length === 33 && sigS[0] === 0x00) sigS = sigS.slice(1)\n if (sigS.length > 32) throw new Error('S length is too long')\n\n let r = new BN(sigR)\n if (r.cmp(ecparams.n) >= 0) r = new BN(0)\n\n let s = new BN(sig.subarray(6 + lenR))\n if (s.cmp(ecparams.n) >= 0) s = new BN(0)\n\n output.set(r.toArrayLike(Uint8Array, 'be', 32), 0)\n output.set(s.toArrayLike(Uint8Array, 'be', 32), 32)\n\n return 0\n },\n\n ecdsaSign (obj, message, seckey, data, noncefn) {\n if (noncefn) {\n const _noncefn = noncefn\n noncefn = (counter) => {\n const nonce = _noncefn(message, seckey, null, data, counter)\n\n const isValid = nonce instanceof Uint8Array && nonce.length === 32\n if (!isValid) throw new Error('This is the way')\n\n return new BN(nonce)\n }\n }\n\n const d = new BN(seckey)\n if (d.cmp(ecparams.n) >= 0 || d.isZero()) return 1\n\n let sig\n try {\n sig = ec.sign(message, seckey, { canonical: true, k: noncefn, pers: data })\n } catch (err) {\n return 1\n }\n\n obj.signature.set(sig.r.toArrayLike(Uint8Array, 'be', 32), 0)\n obj.signature.set(sig.s.toArrayLike(Uint8Array, 'be', 32), 32)\n obj.recid = sig.recoveryParam\n\n return 0\n },\n\n ecdsaVerify (sig, msg32, pubkey) {\n const sigObj = { r: sig.subarray(0, 32), s: sig.subarray(32, 64) }\n\n const sigr = new BN(sigObj.r)\n const sigs = new BN(sigObj.s)\n if (sigr.cmp(ecparams.n) >= 0 || sigs.cmp(ecparams.n) >= 0) return 1\n if (sigs.cmp(ec.nh) === 1 || sigr.isZero() || sigs.isZero()) return 3\n\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 2\n\n const point = pair.getPublic()\n const isValid = ec.verify(msg32, sigObj, point)\n return isValid ? 0 : 3\n },\n\n ecdsaRecover (output, sig, recid, msg32) {\n const sigObj = { r: sig.slice(0, 32), s: sig.slice(32, 64) }\n\n const sigr = new BN(sigObj.r)\n const sigs = new BN(sigObj.s)\n if (sigr.cmp(ecparams.n) >= 0 || sigs.cmp(ecparams.n) >= 0) return 1\n\n if (sigr.isZero() || sigs.isZero()) return 2\n\n // Can throw `throw new Error('Unable to find sencond key candinate');`\n let point\n try {\n point = ec.recoverPubKey(msg32, sigObj, recid)\n } catch (err) {\n return 2\n }\n\n savePublicKey(output, point)\n\n return 0\n },\n\n ecdh (output, pubkey, seckey, data, hashfn, xbuf, ybuf) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n const scalar = new BN(seckey)\n if (scalar.cmp(ecparams.n) >= 0 || scalar.isZero()) return 2\n\n const point = pair.getPublic().mul(scalar)\n\n if (hashfn === undefined) {\n const data = point.encode(null, true)\n const sha256 = ec.hash().update(data).digest()\n for (let i = 0; i < 32; ++i) output[i] = sha256[i]\n } else {\n if (!xbuf) xbuf = new Uint8Array(32)\n const x = point.getX().toArray('be', 32)\n for (let i = 0; i < 32; ++i) xbuf[i] = x[i]\n\n if (!ybuf) ybuf = new Uint8Array(32)\n const y = point.getY().toArray('be', 32)\n for (let i = 0; i < 32; ++i) ybuf[i] = y[i]\n\n const hash = hashfn(xbuf, ybuf, data)\n\n const isValid = hash instanceof Uint8Array && hash.length === output.length\n if (!isValid) return 2\n\n output.set(hash)\n }\n\n return 0\n }\n}\n","export function formatLog(log, { args, eventName, } = {}) {\n return {\n ...log,\n blockHash: log.blockHash ? log.blockHash : null,\n blockNumber: log.blockNumber ? BigInt(log.blockNumber) : null,\n blockTimestamp: log.blockTimestamp\n ? BigInt(log.blockTimestamp)\n : log.blockTimestamp === null\n ? null\n : undefined,\n logIndex: log.logIndex ? Number(log.logIndex) : null,\n transactionHash: log.transactionHash ? log.transactionHash : null,\n transactionIndex: log.transactionIndex\n ? Number(log.transactionIndex)\n : null,\n ...(eventName ? { args, eventName } : {}),\n };\n}\n//# sourceMappingURL=log.js.map","import { checksumAddress, } from '../../utils/address/getAddress.js';\nimport { keccak256, } from '../../utils/hash/keccak256.js';\n/**\n * @description Converts an ECDSA public key to an address.\n *\n * @param publicKey The public key to convert.\n *\n * @returns The address.\n */\nexport function publicKeyToAddress(publicKey) {\n const address = keccak256(`0x${publicKey.substring(4)}`).substring(26);\n return checksumAddress(`0x${address}`);\n}\n//# sourceMappingURL=publicKeyToAddress.js.map","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","import { hexToNumber, } from '../../utils/encoding/fromHex.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Returns the number of [Transactions](https://viem.sh/docs/glossary/terms#transaction) an Account has sent.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionCount\n * - JSON-RPC Methods: [`eth_getTransactionCount`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactioncount)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionCountParameters}\n * @returns The number of transactions an account has sent. {@link GetTransactionCountReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransactionCount } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const transactionCount = await getTransactionCount(client, {\n * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function getTransactionCount(client, { address, blockTag = 'latest', blockNumber }) {\n const count = await client.request({\n method: 'eth_getTransactionCount',\n params: [\n address,\n typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : blockTag,\n ],\n }, {\n dedupe: Boolean(blockNumber),\n });\n return hexToNumber(count);\n}\n//# sourceMappingURL=getTransactionCount.js.map","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","import { Schema } from 'effect';\n// parse takes an effect Schema object and parses an unknown value into that schema, if parsing fails an error is thrown\n// only fields specified in the schema will be present in the parsed object.\nexport function parse(schema, obj, options) {\n return Schema.decodeUnknownSync(schema)(obj, options);\n}\n// parseJson takes an effect Schema object and parses a JSON string into that schema, if parsing fails an error is thrown\n// only fields specified in the schema will be present in the parsed object.\nexport function parseJson(schema, json, options) {\n if (typeof json !== 'string') {\n json = json.toString();\n }\n return Schema.decodeUnknownSync(Schema.parseJson(schema))(json, options);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBR2hDLHdIQUF3SDtBQUN4SCw0RUFBNEU7QUFDNUUsTUFBTSxVQUFVLEtBQUssQ0FDbkIsTUFBMkIsRUFDM0IsR0FBWSxFQUNaLE9BQXNCO0lBRXRCLE9BQU8sTUFBTSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQseUhBQXlIO0FBQ3pILDRFQUE0RTtBQUM1RSxNQUFNLFVBQVUsU0FBUyxDQUN2QixNQUEyQixFQUMzQixJQUF5QixFQUN6QixPQUFzQjtJQUV0QixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDM0UsQ0FBQyJ9","/**\n * @since 2.0.0\n */\nimport * as Equal from \"../Equal.js\";\nimport * as Hash from \"../Hash.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"../Inspectable.js\";\nimport { hasProperty } from \"../Predicate.js\";\nimport { EffectPrototype } from \"./effectable.js\";\nconst TypeId = /*#__PURE__*/Symbol.for(\"effect/Option\");\nconst CommonProto = {\n ...EffectPrototype,\n [TypeId]: {\n _A: _ => _\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n toString() {\n return format(this.toJSON());\n }\n};\nconst SomeProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(CommonProto), {\n _tag: \"Some\",\n _op: \"Some\",\n [Equal.symbol](that) {\n return isOption(that) && isSome(that) && Equal.equals(this.value, that.value);\n },\n [Hash.symbol]() {\n return Hash.cached(this, Hash.combine(Hash.hash(this._tag))(Hash.hash(this.value)));\n },\n toJSON() {\n return {\n _id: \"Option\",\n _tag: this._tag,\n value: toJSON(this.value)\n };\n }\n});\nconst NoneHash = /*#__PURE__*/Hash.hash(\"None\");\nconst NoneProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(CommonProto), {\n _tag: \"None\",\n _op: \"None\",\n [Equal.symbol](that) {\n return isOption(that) && isNone(that);\n },\n [Hash.symbol]() {\n return NoneHash;\n },\n toJSON() {\n return {\n _id: \"Option\",\n _tag: this._tag\n };\n }\n});\n/** @internal */\nexport const isOption = input => hasProperty(input, TypeId);\n/** @internal */\nexport const isNone = fa => fa._tag === \"None\";\n/** @internal */\nexport const isSome = fa => fa._tag === \"Some\";\n/** @internal */\nexport const none = /*#__PURE__*/Object.create(NoneProto);\n/** @internal */\nexport const some = value => {\n const a = Object.create(SomeProto);\n a.value = value;\n return a;\n};\n//# sourceMappingURL=option.js.map","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\nvar bind = require('function-bind');\nvar $apply = require('./functionApply');\nvar actualApply = require('./actualApply');\n\n/** @type {import('./applyBind')} */\nmodule.exports = function applyBind() {\n\treturn actualApply(bind, $apply, arguments);\n};\n","import { SliceOffsetOutOfBoundsError, } from '../../errors/data.js';\nimport { isHex } from './isHex.js';\nimport { size } from './size.js';\n/**\n * @description Returns a section of the hex or byte array given a start/end bytes offset.\n *\n * @param value The hex or byte array to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function slice(value, start, end, { strict } = {}) {\n if (isHex(value, { strict: false }))\n return sliceHex(value, start, end, {\n strict,\n });\n return sliceBytes(value, start, end, {\n strict,\n });\n}\nfunction assertStartOffset(value, start) {\n if (typeof start === 'number' && start > 0 && start > size(value) - 1)\n throw new SliceOffsetOutOfBoundsError({\n offset: start,\n position: 'start',\n size: size(value),\n });\n}\nfunction assertEndOffset(value, start, end) {\n if (typeof start === 'number' &&\n typeof end === 'number' &&\n size(value) !== end - start) {\n throw new SliceOffsetOutOfBoundsError({\n offset: end,\n position: 'end',\n size: size(value),\n });\n }\n}\n/**\n * @description Returns a section of the byte array given a start/end bytes offset.\n *\n * @param value The byte array to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function sliceBytes(value_, start, end, { strict } = {}) {\n assertStartOffset(value_, start);\n const value = value_.slice(start, end);\n if (strict)\n assertEndOffset(value, start, end);\n return value;\n}\n/**\n * @description Returns a section of the hex value given a start/end bytes offset.\n *\n * @param value The hex value to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function sliceHex(value_, start, end, { strict } = {}) {\n assertStartOffset(value_, start);\n const value = `0x${value_\n .replace('0x', '')\n .slice((start ?? 0) * 2, (end ?? value_.length) * 2)}`;\n if (strict)\n assertEndOffset(value, start, end);\n return value;\n}\n//# sourceMappingURL=slice.js.map","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\nvar inherits = require('inherits');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [\n\t0x428a2f98,\n\t0xd728ae22,\n\t0x71374491,\n\t0x23ef65cd,\n\t0xb5c0fbcf,\n\t0xec4d3b2f,\n\t0xe9b5dba5,\n\t0x8189dbbc,\n\t0x3956c25b,\n\t0xf348b538,\n\t0x59f111f1,\n\t0xb605d019,\n\t0x923f82a4,\n\t0xaf194f9b,\n\t0xab1c5ed5,\n\t0xda6d8118,\n\t0xd807aa98,\n\t0xa3030242,\n\t0x12835b01,\n\t0x45706fbe,\n\t0x243185be,\n\t0x4ee4b28c,\n\t0x550c7dc3,\n\t0xd5ffb4e2,\n\t0x72be5d74,\n\t0xf27b896f,\n\t0x80deb1fe,\n\t0x3b1696b1,\n\t0x9bdc06a7,\n\t0x25c71235,\n\t0xc19bf174,\n\t0xcf692694,\n\t0xe49b69c1,\n\t0x9ef14ad2,\n\t0xefbe4786,\n\t0x384f25e3,\n\t0x0fc19dc6,\n\t0x8b8cd5b5,\n\t0x240ca1cc,\n\t0x77ac9c65,\n\t0x2de92c6f,\n\t0x592b0275,\n\t0x4a7484aa,\n\t0x6ea6e483,\n\t0x5cb0a9dc,\n\t0xbd41fbd4,\n\t0x76f988da,\n\t0x831153b5,\n\t0x983e5152,\n\t0xee66dfab,\n\t0xa831c66d,\n\t0x2db43210,\n\t0xb00327c8,\n\t0x98fb213f,\n\t0xbf597fc7,\n\t0xbeef0ee4,\n\t0xc6e00bf3,\n\t0x3da88fc2,\n\t0xd5a79147,\n\t0x930aa725,\n\t0x06ca6351,\n\t0xe003826f,\n\t0x14292967,\n\t0x0a0e6e70,\n\t0x27b70a85,\n\t0x46d22ffc,\n\t0x2e1b2138,\n\t0x5c26c926,\n\t0x4d2c6dfc,\n\t0x5ac42aed,\n\t0x53380d13,\n\t0x9d95b3df,\n\t0x650a7354,\n\t0x8baf63de,\n\t0x766a0abb,\n\t0x3c77b2a8,\n\t0x81c2c92e,\n\t0x47edaee6,\n\t0x92722c85,\n\t0x1482353b,\n\t0xa2bfe8a1,\n\t0x4cf10364,\n\t0xa81a664b,\n\t0xbc423001,\n\t0xc24b8b70,\n\t0xd0f89791,\n\t0xc76c51a3,\n\t0x0654be30,\n\t0xd192e819,\n\t0xd6ef5218,\n\t0xd6990624,\n\t0x5565a910,\n\t0xf40e3585,\n\t0x5771202a,\n\t0x106aa070,\n\t0x32bbd1b8,\n\t0x19a4c116,\n\t0xb8d2d0c8,\n\t0x1e376c08,\n\t0x5141ab53,\n\t0x2748774c,\n\t0xdf8eeb99,\n\t0x34b0bcb5,\n\t0xe19b48a8,\n\t0x391c0cb3,\n\t0xc5c95a63,\n\t0x4ed8aa4a,\n\t0xe3418acb,\n\t0x5b9cca4f,\n\t0x7763e373,\n\t0x682e6ff3,\n\t0xd6b2b8a3,\n\t0x748f82ee,\n\t0x5defb2fc,\n\t0x78a5636f,\n\t0x43172f60,\n\t0x84c87814,\n\t0xa1f0ab72,\n\t0x8cc70208,\n\t0x1a6439ec,\n\t0x90befffa,\n\t0x23631e28,\n\t0xa4506ceb,\n\t0xde82bde9,\n\t0xbef9a3f7,\n\t0xb2c67915,\n\t0xc67178f2,\n\t0xe372532b,\n\t0xca273ece,\n\t0xea26619c,\n\t0xd186b8c7,\n\t0x21c0c207,\n\t0xeada7dd6,\n\t0xcde0eb1e,\n\t0xf57d4f7f,\n\t0xee6ed178,\n\t0x06f067aa,\n\t0x72176fba,\n\t0x0a637dc5,\n\t0xa2c898a6,\n\t0x113f9804,\n\t0xbef90dae,\n\t0x1b710b35,\n\t0x131c471b,\n\t0x28db77f5,\n\t0x23047d84,\n\t0x32caab7b,\n\t0x40c72493,\n\t0x3c9ebe0a,\n\t0x15c9bebc,\n\t0x431d67c4,\n\t0x9c100d4c,\n\t0x4cc5d4be,\n\t0xcb3e42b6,\n\t0x597f299c,\n\t0xfc657e2a,\n\t0x5fcb6fab,\n\t0x3ad6faec,\n\t0x6c44198c,\n\t0x4a475817\n];\n\nvar W = new Array(160);\n\nfunction Sha512() {\n\tthis.init();\n\tthis._w = W;\n\n\tHash.call(this, 128, 112);\n}\n\ninherits(Sha512, Hash);\n\nSha512.prototype.init = function () {\n\tthis._ah = 0x6a09e667;\n\tthis._bh = 0xbb67ae85;\n\tthis._ch = 0x3c6ef372;\n\tthis._dh = 0xa54ff53a;\n\tthis._eh = 0x510e527f;\n\tthis._fh = 0x9b05688c;\n\tthis._gh = 0x1f83d9ab;\n\tthis._hh = 0x5be0cd19;\n\n\tthis._al = 0xf3bcc908;\n\tthis._bl = 0x84caa73b;\n\tthis._cl = 0xfe94f82b;\n\tthis._dl = 0x5f1d36f1;\n\tthis._el = 0xade682d1;\n\tthis._fl = 0x2b3e6c1f;\n\tthis._gl = 0xfb41bd6b;\n\tthis._hl = 0x137e2179;\n\n\treturn this;\n};\n\nfunction Ch(x, y, z) {\n\treturn z ^ (x & (y ^ z));\n}\n\nfunction maj(x, y, z) {\n\treturn (x & y) | (z & (x | y));\n}\n\nfunction sigma0(x, xl) {\n\treturn ((x >>> 28) | (xl << 4)) ^ ((xl >>> 2) | (x << 30)) ^ ((xl >>> 7) | (x << 25));\n}\n\nfunction sigma1(x, xl) {\n\treturn ((x >>> 14) | (xl << 18)) ^ ((x >>> 18) | (xl << 14)) ^ ((xl >>> 9) | (x << 23));\n}\n\nfunction Gamma0(x, xl) {\n\treturn ((x >>> 1) | (xl << 31)) ^ ((x >>> 8) | (xl << 24)) ^ (x >>> 7);\n}\n\nfunction Gamma0l(x, xl) {\n\treturn ((x >>> 1) | (xl << 31)) ^ ((x >>> 8) | (xl << 24)) ^ ((x >>> 7) | (xl << 25));\n}\n\nfunction Gamma1(x, xl) {\n\treturn ((x >>> 19) | (xl << 13)) ^ ((xl >>> 29) | (x << 3)) ^ (x >>> 6);\n}\n\nfunction Gamma1l(x, xl) {\n\treturn ((x >>> 19) | (xl << 13)) ^ ((xl >>> 29) | (x << 3)) ^ ((x >>> 6) | (xl << 26));\n}\n\nfunction getCarry(a, b) {\n\treturn (a >>> 0) < (b >>> 0) ? 1 : 0;\n}\n\nSha512.prototype._update = function (M) {\n\tvar w = this._w;\n\n\tvar ah = this._ah | 0;\n\tvar bh = this._bh | 0;\n\tvar ch = this._ch | 0;\n\tvar dh = this._dh | 0;\n\tvar eh = this._eh | 0;\n\tvar fh = this._fh | 0;\n\tvar gh = this._gh | 0;\n\tvar hh = this._hh | 0;\n\n\tvar al = this._al | 0;\n\tvar bl = this._bl | 0;\n\tvar cl = this._cl | 0;\n\tvar dl = this._dl | 0;\n\tvar el = this._el | 0;\n\tvar fl = this._fl | 0;\n\tvar gl = this._gl | 0;\n\tvar hl = this._hl | 0;\n\n\tfor (var i = 0; i < 32; i += 2) {\n\t\tw[i] = M.readInt32BE(i * 4);\n\t\tw[i + 1] = M.readInt32BE((i * 4) + 4);\n\t}\n\tfor (; i < 160; i += 2) {\n\t\tvar xh = w[i - (15 * 2)];\n\t\tvar xl = w[i - (15 * 2) + 1];\n\t\tvar gamma0 = Gamma0(xh, xl);\n\t\tvar gamma0l = Gamma0l(xl, xh);\n\n\t\txh = w[i - (2 * 2)];\n\t\txl = w[i - (2 * 2) + 1];\n\t\tvar gamma1 = Gamma1(xh, xl);\n\t\tvar gamma1l = Gamma1l(xl, xh);\n\n\t\t// w[i] = gamma0 + w[i - 7] + gamma1 + w[i - 16]\n\t\tvar Wi7h = w[i - (7 * 2)];\n\t\tvar Wi7l = w[i - (7 * 2) + 1];\n\n\t\tvar Wi16h = w[i - (16 * 2)];\n\t\tvar Wi16l = w[i - (16 * 2) + 1];\n\n\t\tvar Wil = (gamma0l + Wi7l) | 0;\n\t\tvar Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0;\n\t\tWil = (Wil + gamma1l) | 0;\n\t\tWih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0;\n\t\tWil = (Wil + Wi16l) | 0;\n\t\tWih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0;\n\n\t\tw[i] = Wih;\n\t\tw[i + 1] = Wil;\n\t}\n\n\tfor (var j = 0; j < 160; j += 2) {\n\t\tWih = w[j];\n\t\tWil = w[j + 1];\n\n\t\tvar majh = maj(ah, bh, ch);\n\t\tvar majl = maj(al, bl, cl);\n\n\t\tvar sigma0h = sigma0(ah, al);\n\t\tvar sigma0l = sigma0(al, ah);\n\t\tvar sigma1h = sigma1(eh, el);\n\t\tvar sigma1l = sigma1(el, eh);\n\n\t\t// t1 = h + sigma1 + ch + K[j] + w[j]\n\t\tvar Kih = K[j];\n\t\tvar Kil = K[j + 1];\n\n\t\tvar chh = Ch(eh, fh, gh);\n\t\tvar chl = Ch(el, fl, gl);\n\n\t\tvar t1l = (hl + sigma1l) | 0;\n\t\tvar t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0;\n\t\tt1l = (t1l + chl) | 0;\n\t\tt1h = (t1h + chh + getCarry(t1l, chl)) | 0;\n\t\tt1l = (t1l + Kil) | 0;\n\t\tt1h = (t1h + Kih + getCarry(t1l, Kil)) | 0;\n\t\tt1l = (t1l + Wil) | 0;\n\t\tt1h = (t1h + Wih + getCarry(t1l, Wil)) | 0;\n\n\t\t// t2 = sigma0 + maj\n\t\tvar t2l = (sigma0l + majl) | 0;\n\t\tvar t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0;\n\n\t\thh = gh;\n\t\thl = gl;\n\t\tgh = fh;\n\t\tgl = fl;\n\t\tfh = eh;\n\t\tfl = el;\n\t\tel = (dl + t1l) | 0;\n\t\teh = (dh + t1h + getCarry(el, dl)) | 0;\n\t\tdh = ch;\n\t\tdl = cl;\n\t\tch = bh;\n\t\tcl = bl;\n\t\tbh = ah;\n\t\tbl = al;\n\t\tal = (t1l + t2l) | 0;\n\t\tah = (t1h + t2h + getCarry(al, t1l)) | 0;\n\t}\n\n\tthis._al = (this._al + al) | 0;\n\tthis._bl = (this._bl + bl) | 0;\n\tthis._cl = (this._cl + cl) | 0;\n\tthis._dl = (this._dl + dl) | 0;\n\tthis._el = (this._el + el) | 0;\n\tthis._fl = (this._fl + fl) | 0;\n\tthis._gl = (this._gl + gl) | 0;\n\tthis._hl = (this._hl + hl) | 0;\n\n\tthis._ah = (this._ah + ah + getCarry(this._al, al)) | 0;\n\tthis._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0;\n\tthis._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0;\n\tthis._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0;\n\tthis._eh = (this._eh + eh + getCarry(this._el, el)) | 0;\n\tthis._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0;\n\tthis._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0;\n\tthis._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0;\n};\n\nSha512.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(64);\n\n\tfunction writeInt64BE(h, l, offset) {\n\t\tH.writeInt32BE(h, offset);\n\t\tH.writeInt32BE(l, offset + 4);\n\t}\n\n\twriteInt64BE(this._ah, this._al, 0);\n\twriteInt64BE(this._bh, this._bl, 8);\n\twriteInt64BE(this._ch, this._cl, 16);\n\twriteInt64BE(this._dh, this._dl, 24);\n\twriteInt64BE(this._eh, this._el, 32);\n\twriteInt64BE(this._fh, this._fl, 40);\n\twriteInt64BE(this._gh, this._gl, 48);\n\twriteInt64BE(this._hh, this._hl, 56);\n\n\treturn H;\n};\n\nmodule.exports = Sha512;\n","import { getAbiItem, } from '../../utils/abi/getAbiItem.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { getLogs, } from './getLogs.js';\n/**\n * Returns a list of event logs emitted by a contract.\n *\n * - Docs: https://viem.sh/docs/contract/getContractEvents#getcontractevents\n * - JSON-RPC Methods: [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs)\n *\n * @param client - Client to use\n * @param parameters - {@link GetContractEventsParameters}\n * @returns A list of event logs. {@link GetContractEventsReturnType}\n *\n * @example\n * import { createClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getContractEvents } from 'viem/public'\n * import { wagmiAbi } from './abi'\n *\n * const client = createClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const logs = await getContractEvents(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: wagmiAbi,\n * eventName: 'Transfer'\n * })\n */\nexport async function getContractEvents(client, parameters) {\n const { abi, address, args, blockHash, eventName, fromBlock, toBlock, strict, } = parameters;\n const event = eventName\n ? getAbiItem({ abi, name: eventName })\n : undefined;\n const events = !event\n ? abi.filter((x) => x.type === 'event')\n : undefined;\n return getAction(client, getLogs, 'getLogs')({\n address,\n args,\n blockHash,\n event,\n events,\n fromBlock,\n toBlock,\n strict,\n });\n}\n//# sourceMappingURL=getContractEvents.js.map","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\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","/**\n * @since 2.0.0\n */\n/** @internal */\nexport const getBugErrorMessage = message => `BUG: ${message} - please report an issue at https://github.com/Effect-TS/effect/issues`;\n//# sourceMappingURL=errors.js.map","import { recoverAddress, } from '../signature/recoverAddress.js';\nimport { hashAuthorization, } from './hashAuthorization.js';\nexport async function recoverAuthorizationAddress(parameters) {\n const { authorization, signature } = parameters;\n return recoverAddress({\n hash: hashAuthorization(authorization),\n signature: (signature ?? authorization),\n });\n}\n//# sourceMappingURL=recoverAuthorizationAddress.js.map","import { parseEventLogs } from '../../utils/abi/parseEventLogs.js';\nimport { formatLog, } from '../../utils/formatters/log.js';\n/**\n * Returns a list of logs or hashes based on a [Filter](/docs/glossary/terms#filter) since the last time it was called.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFilterChanges\n * - JSON-RPC Methods: [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges)\n *\n * A Filter can be created from the following actions:\n *\n * - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter)\n * - [`createContractEventFilter`](https://viem.sh/docs/contract/createContractEventFilter)\n * - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter)\n * - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter)\n *\n * Depending on the type of filter, the return value will be different:\n *\n * - If the filter was created with `createContractEventFilter` or `createEventFilter`, it returns a list of logs.\n * - If the filter was created with `createPendingTransactionFilter`, it returns a list of transaction hashes.\n * - If the filter was created with `createBlockFilter`, it returns a list of block hashes.\n *\n * @param client - Client to use\n * @param parameters - {@link GetFilterChangesParameters}\n * @returns Logs or hashes. {@link GetFilterChangesReturnType}\n *\n * @example\n * // Blocks\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createBlockFilter, getFilterChanges } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createBlockFilter(client)\n * const hashes = await getFilterChanges(client, { filter })\n *\n * @example\n * // Contract Events\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createContractEventFilter, getFilterChanges } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createContractEventFilter(client, {\n * address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n * abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),\n * eventName: 'Transfer',\n * })\n * const logs = await getFilterChanges(client, { filter })\n *\n * @example\n * // Raw Events\n * import { createPublicClient, http, parseAbiItem } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createEventFilter, getFilterChanges } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createEventFilter(client, {\n * address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n * event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),\n * })\n * const logs = await getFilterChanges(client, { filter })\n *\n * @example\n * // Transactions\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createPendingTransactionFilter, getFilterChanges } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createPendingTransactionFilter(client)\n * const hashes = await getFilterChanges(client, { filter })\n */\nexport async function getFilterChanges(_client, { filter, }) {\n const strict = 'strict' in filter && filter.strict;\n const logs = await filter.request({\n method: 'eth_getFilterChanges',\n params: [filter.id],\n });\n if (typeof logs[0] === 'string')\n return logs;\n const formattedLogs = logs.map((log) => formatLog(log));\n if (!('abi' in filter) || !filter.abi)\n return formattedLogs;\n return parseEventLogs({\n abi: filter.abi,\n logs: formattedLogs,\n strict,\n });\n}\n//# sourceMappingURL=getFilterChanges.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","/**\n * @license React\n * react-dom.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\";\nvar React = require(\"react\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction noop() {}\nvar Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(formatProdErrorMessage(522));\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\nfunction createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nvar ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nfunction getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n}\nexports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\nexports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(formatProdErrorMessage(299));\n return createPortal$1(children, container, null, key);\n};\nexports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn)) return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f();\n }\n};\nexports.preconnect = function (href, options) {\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n};\nexports.prefetchDNS = function (href) {\n \"string\" === typeof href && Internals.d.D(href);\n};\nexports.preinit = function (href, options) {\n if (\"string\" === typeof href && options && \"string\" === typeof options.as) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence ? options.precedence : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n};\nexports.preinitModule = function (href, options) {\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as) {\n var crossOrigin = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n );\n Internals.d.M(href, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n } else null == options && Internals.d.M(href);\n};\nexports.preload = function (href, options) {\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n Internals.d.L(href, as, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes ? options.imageSizes : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n};\nexports.preloadModule = function (href, options) {\n if (\"string\" === typeof href)\n if (options) {\n var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0\n });\n } else Internals.d.m(href);\n};\nexports.requestFormReset = function (form) {\n Internals.d.r(form);\n};\nexports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n};\nexports.useFormState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useFormState(action, initialState, permalink);\n};\nexports.useFormStatus = function () {\n return ReactSharedInternals.H.useHostTransitionStatus();\n};\nexports.version = \"19.2.3\";\n","import { AbiDecodingZeroDataError } from '../../errors/abi.js';\nimport { BaseError } from '../../errors/base.js';\nimport { ContractFunctionExecutionError, ContractFunctionRevertedError, ContractFunctionZeroDataError, RawContractError, } from '../../errors/contract.js';\nimport { RpcRequestError } from '../../errors/request.js';\nimport { InternalRpcError, InvalidInputRpcError } from '../../errors/rpc.js';\nconst EXECUTION_REVERTED_ERROR_CODE = 3;\nexport function getContractError(err, { abi, address, args, docsPath, functionName, sender, }) {\n const error = (err instanceof RawContractError\n ? err\n : err instanceof BaseError\n ? err.walk((err) => 'data' in err) || err.walk()\n : {});\n const { code, data, details, message, shortMessage } = error;\n const cause = (() => {\n if (err instanceof AbiDecodingZeroDataError)\n return new ContractFunctionZeroDataError({ functionName });\n if (([EXECUTION_REVERTED_ERROR_CODE, InternalRpcError.code].includes(code) &&\n (data || details || message || shortMessage)) ||\n (code === InvalidInputRpcError.code &&\n details === 'execution reverted' &&\n data)) {\n return new ContractFunctionRevertedError({\n abi,\n data: typeof data === 'object' ? data.data : data,\n functionName,\n message: error instanceof RpcRequestError\n ? details\n : (shortMessage ?? message),\n });\n }\n return err;\n })();\n return new ContractFunctionExecutionError(cause, {\n abi,\n args,\n contractAddress: address,\n docsPath,\n functionName,\n sender,\n });\n}\n//# sourceMappingURL=getContractError.js.map","/**\n * @since 2.0.0\n */\n/**\n * @since 2.0.0\n */\nexport const pipeArguments = (self, args) => {\n switch (args.length) {\n case 0:\n return self;\n case 1:\n return args[0](self);\n case 2:\n return args[1](args[0](self));\n case 3:\n return args[2](args[1](args[0](self)));\n case 4:\n return args[3](args[2](args[1](args[0](self))));\n case 5:\n return args[4](args[3](args[2](args[1](args[0](self)))));\n case 6:\n return args[5](args[4](args[3](args[2](args[1](args[0](self))))));\n case 7:\n return args[6](args[5](args[4](args[3](args[2](args[1](args[0](self)))))));\n case 8:\n return args[7](args[6](args[5](args[4](args[3](args[2](args[1](args[0](self))))))));\n case 9:\n return args[8](args[7](args[6](args[5](args[4](args[3](args[2](args[1](args[0](self)))))))));\n default:\n {\n let ret = self;\n for (let i = 0, len = args.length; i < len; i++) {\n ret = args[i](ret);\n }\n return ret;\n }\n }\n};\n/**\n * @since 3.15.0\n * @category Prototypes\n */\nexport const Prototype = {\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\nconst Base = /*#__PURE__*/function () {\n function PipeableBase() {}\n PipeableBase.prototype = Prototype;\n return PipeableBase;\n}();\n/**\n * @since 3.15.0\n * @category Constructors\n */\nexport const Class = klass => klass ? class extends klass {\n pipe() {\n return pipeArguments(this, arguments);\n }\n} : Base;\n//# sourceMappingURL=Pipeable.js.map","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","const errors = {\n IMPOSSIBLE_CASE: 'Impossible case. Please create issue.',\n TWEAK_ADD:\n 'The tweak was out of range or the resulted private key is invalid',\n TWEAK_MUL: 'The tweak was out of range or equal to zero',\n CONTEXT_RANDOMIZE_UNKNOW: 'Unknow error on context randomization',\n SECKEY_INVALID: 'Private Key is invalid',\n PUBKEY_PARSE: 'Public Key could not be parsed',\n PUBKEY_SERIALIZE: 'Public Key serialization error',\n PUBKEY_COMBINE: 'The sum of the public keys is not valid',\n SIG_PARSE: 'Signature could not be parsed',\n SIGN: 'The nonce generation function failed, or the private key was invalid',\n RECOVER: 'Public key could not be recover',\n ECDH: 'Scalar was invalid (zero or overflow)'\n}\n\nfunction assert (cond, msg) {\n if (!cond) throw new Error(msg)\n}\n\nfunction isUint8Array (name, value, length) {\n assert(value instanceof Uint8Array, `Expected ${name} to be an Uint8Array`)\n\n if (length !== undefined) {\n if (Array.isArray(length)) {\n const numbers = length.join(', ')\n const msg = `Expected ${name} to be an Uint8Array with length [${numbers}]`\n assert(length.includes(value.length), msg)\n } else {\n const msg = `Expected ${name} to be an Uint8Array with length ${length}`\n assert(value.length === length, msg)\n }\n }\n}\n\nfunction isCompressed (value) {\n assert(toTypeString(value) === 'Boolean', 'Expected compressed to be a Boolean')\n}\n\nfunction getAssertedOutput (output = (len) => new Uint8Array(len), length) {\n if (typeof output === 'function') output = output(length)\n isUint8Array('output', output, length)\n return output\n}\n\nfunction toTypeString (value) {\n return Object.prototype.toString.call(value).slice(8, -1)\n}\n\nmodule.exports = (secp256k1) => {\n return {\n contextRandomize (seed) {\n assert(\n seed === null || seed instanceof Uint8Array,\n 'Expected seed to be an Uint8Array or null'\n )\n if (seed !== null) isUint8Array('seed', seed, 32)\n\n switch (secp256k1.contextRandomize(seed)) {\n case 1:\n throw new Error(errors.CONTEXT_RANDOMIZE_UNKNOW)\n }\n },\n\n privateKeyVerify (seckey) {\n isUint8Array('private key', seckey, 32)\n\n return secp256k1.privateKeyVerify(seckey) === 0\n },\n\n privateKeyNegate (seckey) {\n isUint8Array('private key', seckey, 32)\n\n switch (secp256k1.privateKeyNegate(seckey)) {\n case 0:\n return seckey\n case 1:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n privateKeyTweakAdd (seckey, tweak) {\n isUint8Array('private key', seckey, 32)\n isUint8Array('tweak', tweak, 32)\n\n switch (secp256k1.privateKeyTweakAdd(seckey, tweak)) {\n case 0:\n return seckey\n case 1:\n throw new Error(errors.TWEAK_ADD)\n }\n },\n\n privateKeyTweakMul (seckey, tweak) {\n isUint8Array('private key', seckey, 32)\n isUint8Array('tweak', tweak, 32)\n\n switch (secp256k1.privateKeyTweakMul(seckey, tweak)) {\n case 0:\n return seckey\n case 1:\n throw new Error(errors.TWEAK_MUL)\n }\n },\n\n publicKeyVerify (pubkey) {\n isUint8Array('public key', pubkey, [33, 65])\n\n return secp256k1.publicKeyVerify(pubkey) === 0\n },\n\n publicKeyCreate (seckey, compressed = true, output) {\n isUint8Array('private key', seckey, 32)\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyCreate(output, seckey)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.SECKEY_INVALID)\n case 2:\n throw new Error(errors.PUBKEY_SERIALIZE)\n }\n },\n\n publicKeyConvert (pubkey, compressed = true, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyConvert(output, pubkey)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.PUBKEY_SERIALIZE)\n }\n },\n\n publicKeyNegate (pubkey, compressed = true, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyNegate(output, pubkey)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.IMPOSSIBLE_CASE)\n case 3:\n throw new Error(errors.PUBKEY_SERIALIZE)\n }\n },\n\n publicKeyCombine (pubkeys, compressed = true, output) {\n assert(Array.isArray(pubkeys), 'Expected public keys to be an Array')\n assert(pubkeys.length > 0, 'Expected public keys array will have more than zero items')\n for (const pubkey of pubkeys) {\n isUint8Array('public key', pubkey, [33, 65])\n }\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyCombine(output, pubkeys)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.PUBKEY_COMBINE)\n case 3:\n throw new Error(errors.PUBKEY_SERIALIZE)\n }\n },\n\n publicKeyTweakAdd (pubkey, tweak, compressed = true, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isUint8Array('tweak', tweak, 32)\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyTweakAdd(output, pubkey, tweak)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.TWEAK_ADD)\n }\n },\n\n publicKeyTweakMul (pubkey, tweak, compressed = true, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isUint8Array('tweak', tweak, 32)\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyTweakMul(output, pubkey, tweak)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.TWEAK_MUL)\n }\n },\n\n signatureNormalize (sig) {\n isUint8Array('signature', sig, 64)\n\n switch (secp256k1.signatureNormalize(sig)) {\n case 0:\n return sig\n case 1:\n throw new Error(errors.SIG_PARSE)\n }\n },\n\n signatureExport (sig, output) {\n isUint8Array('signature', sig, 64)\n output = getAssertedOutput(output, 72)\n\n const obj = { output, outputlen: 72 }\n switch (secp256k1.signatureExport(obj, sig)) {\n case 0:\n return output.slice(0, obj.outputlen)\n case 1:\n throw new Error(errors.SIG_PARSE)\n case 2:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n signatureImport (sig, output) {\n isUint8Array('signature', sig)\n output = getAssertedOutput(output, 64)\n\n switch (secp256k1.signatureImport(output, sig)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.SIG_PARSE)\n case 2:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n ecdsaSign (msg32, seckey, options = {}, output) {\n isUint8Array('message', msg32, 32)\n isUint8Array('private key', seckey, 32)\n assert(toTypeString(options) === 'Object', 'Expected options to be an Object')\n if (options.data !== undefined) isUint8Array('options.data', options.data)\n if (options.noncefn !== undefined) assert(toTypeString(options.noncefn) === 'Function', 'Expected options.noncefn to be a Function')\n output = getAssertedOutput(output, 64)\n\n const obj = { signature: output, recid: null }\n switch (secp256k1.ecdsaSign(obj, msg32, seckey, options.data, options.noncefn)) {\n case 0:\n return obj\n case 1:\n throw new Error(errors.SIGN)\n case 2:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n ecdsaVerify (sig, msg32, pubkey) {\n isUint8Array('signature', sig, 64)\n isUint8Array('message', msg32, 32)\n isUint8Array('public key', pubkey, [33, 65])\n\n switch (secp256k1.ecdsaVerify(sig, msg32, pubkey)) {\n case 0:\n return true\n case 3:\n return false\n case 1:\n throw new Error(errors.SIG_PARSE)\n case 2:\n throw new Error(errors.PUBKEY_PARSE)\n }\n },\n\n ecdsaRecover (sig, recid, msg32, compressed = true, output) {\n isUint8Array('signature', sig, 64)\n assert(\n toTypeString(recid) === 'Number' &&\n recid >= 0 &&\n recid <= 3,\n 'Expected recovery id to be a Number within interval [0, 3]'\n )\n isUint8Array('message', msg32, 32)\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.ecdsaRecover(output, sig, recid, msg32)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.SIG_PARSE)\n case 2:\n throw new Error(errors.RECOVER)\n case 3:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n ecdh (pubkey, seckey, options = {}, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isUint8Array('private key', seckey, 32)\n assert(toTypeString(options) === 'Object', 'Expected options to be an Object')\n if (options.data !== undefined) isUint8Array('options.data', options.data)\n if (options.hashfn !== undefined) {\n assert(toTypeString(options.hashfn) === 'Function', 'Expected options.hashfn to be a Function')\n if (options.xbuf !== undefined) isUint8Array('options.xbuf', options.xbuf, 32)\n if (options.ybuf !== undefined) isUint8Array('options.ybuf', options.ybuf, 32)\n isUint8Array('output', output)\n } else {\n output = getAssertedOutput(output, 32)\n }\n\n switch (secp256k1.ecdh(output, pubkey, seckey, options.data, options.hashfn, options.xbuf, options.ybuf)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.ECDH)\n }\n }\n }\n}\n","'use strict';\n\nvar $isFinite = isFinite;\nvar MAX_ALLOC = Math.pow(2, 30) - 1; // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n\tif (typeof iterations !== 'number') {\n\t\tthrow new TypeError('Iterations not a number');\n\t}\n\n\tif (iterations < 0 || !$isFinite(iterations)) {\n\t\tthrow new TypeError('Bad iterations');\n\t}\n\n\tif (typeof keylen !== 'number') {\n\t\tthrow new TypeError('Key length not a number');\n\t}\n\n\tif (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n\t\tthrow new TypeError('Bad key length');\n\t}\n};\n","import { isHex } from '../data/isHex.js';\nimport { size } from '../data/size.js';\nimport { hexToBigInt, hexToNumber, } from '../encoding/fromHex.js';\nimport { toHex } from '../encoding/toHex.js';\nexport async function recoverPublicKey({ hash, signature, }) {\n const hashHex = isHex(hash) ? hash : toHex(hash);\n const { secp256k1 } = await import('@noble/curves/secp256k1');\n const signature_ = (() => {\n // typeof signature: `Signature`\n if (typeof signature === 'object' && 'r' in signature && 's' in signature) {\n const { r, s, v, yParity } = signature;\n const yParityOrV = Number(yParity ?? v);\n const recoveryBit = toRecoveryBit(yParityOrV);\n return new secp256k1.Signature(hexToBigInt(r), hexToBigInt(s)).addRecoveryBit(recoveryBit);\n }\n // typeof signature: `Hex | ByteArray`\n const signatureHex = isHex(signature) ? signature : toHex(signature);\n if (size(signatureHex) !== 65)\n throw new Error('invalid signature length');\n const yParityOrV = hexToNumber(`0x${signatureHex.slice(130)}`);\n const recoveryBit = toRecoveryBit(yParityOrV);\n return secp256k1.Signature.fromCompact(signatureHex.substring(2, 130)).addRecoveryBit(recoveryBit);\n })();\n const publicKey = signature_\n .recoverPublicKey(hashHex.substring(2))\n .toHex(false);\n return `0x${publicKey}`;\n}\nfunction toRecoveryBit(yParityOrV) {\n if (yParityOrV === 0 || yParityOrV === 1)\n return yParityOrV;\n if (yParityOrV === 27)\n return 0;\n if (yParityOrV === 28)\n return 1;\n throw new Error('Invalid yParityOrV value');\n}\n//# sourceMappingURL=recoverPublicKey.js.map","import { publicKeyToAddress } from '../../accounts/utils/publicKeyToAddress.js';\nimport { recoverPublicKey } from './recoverPublicKey.js';\nexport async function recoverAddress({ hash, signature, }) {\n return publicKeyToAddress(await recoverPublicKey({ hash, signature }));\n}\n//# sourceMappingURL=recoverAddress.js.map","/**\n * @since 2.0.0\n */\nimport * as Equal from \"./Equal.js\";\nimport { dual } from \"./Function.js\";\nimport * as Hash from \"./Hash.js\";\nimport { NodeInspectSymbol } from \"./Inspectable.js\";\nimport * as Option from \"./Option.js\";\nimport * as order from \"./Order.js\";\nimport { pipeArguments } from \"./Pipeable.js\";\nimport { hasProperty, isBigInt, isNumber, isString } from \"./Predicate.js\";\nconst TypeId = /*#__PURE__*/Symbol.for(\"effect/Duration\");\nconst bigint0 = /*#__PURE__*/BigInt(0);\nconst bigint24 = /*#__PURE__*/BigInt(24);\nconst bigint60 = /*#__PURE__*/BigInt(60);\nconst bigint1e3 = /*#__PURE__*/BigInt(1_000);\nconst bigint1e6 = /*#__PURE__*/BigInt(1_000_000);\nconst bigint1e9 = /*#__PURE__*/BigInt(1_000_000_000);\nconst DURATION_REGEX = /^(-?\\d+(?:\\.\\d+)?)\\s+(nanos?|micros?|millis?|seconds?|minutes?|hours?|days?|weeks?)$/;\n/**\n * @since 2.0.0\n */\nexport const decode = input => {\n if (isDuration(input)) {\n return input;\n } else if (isNumber(input)) {\n return millis(input);\n } else if (isBigInt(input)) {\n return nanos(input);\n } else if (Array.isArray(input) && input.length === 2 && input.every(isNumber)) {\n if (input[0] === -Infinity || input[1] === -Infinity || Number.isNaN(input[0]) || Number.isNaN(input[1])) {\n return zero;\n }\n if (input[0] === Infinity || input[1] === Infinity) {\n return infinity;\n }\n return nanos(BigInt(Math.round(input[0] * 1_000_000_000)) + BigInt(Math.round(input[1])));\n } else if (isString(input)) {\n const match = DURATION_REGEX.exec(input);\n if (match) {\n const [_, valueStr, unit] = match;\n const value = Number(valueStr);\n switch (unit) {\n case \"nano\":\n case \"nanos\":\n return nanos(BigInt(valueStr));\n case \"micro\":\n case \"micros\":\n return micros(BigInt(valueStr));\n case \"milli\":\n case \"millis\":\n return millis(value);\n case \"second\":\n case \"seconds\":\n return seconds(value);\n case \"minute\":\n case \"minutes\":\n return minutes(value);\n case \"hour\":\n case \"hours\":\n return hours(value);\n case \"day\":\n case \"days\":\n return days(value);\n case \"week\":\n case \"weeks\":\n return weeks(value);\n }\n }\n }\n throw new Error(\"Invalid DurationInput\");\n};\n/**\n * @since 2.5.0\n */\nexport const decodeUnknown = /*#__PURE__*/Option.liftThrowable(decode);\nconst zeroValue = {\n _tag: \"Millis\",\n millis: 0\n};\nconst infinityValue = {\n _tag: \"Infinity\"\n};\nconst DurationProto = {\n [TypeId]: TypeId,\n [Hash.symbol]() {\n return Hash.cached(this, Hash.structure(this.value));\n },\n [Equal.symbol](that) {\n return isDuration(that) && equals(this, that);\n },\n toString() {\n return `Duration(${format(this)})`;\n },\n toJSON() {\n switch (this.value._tag) {\n case \"Millis\":\n return {\n _id: \"Duration\",\n _tag: \"Millis\",\n millis: this.value.millis\n };\n case \"Nanos\":\n return {\n _id: \"Duration\",\n _tag: \"Nanos\",\n hrtime: toHrTime(this)\n };\n case \"Infinity\":\n return {\n _id: \"Duration\",\n _tag: \"Infinity\"\n };\n }\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\nconst make = input => {\n const duration = Object.create(DurationProto);\n if (isNumber(input)) {\n if (isNaN(input) || input <= 0) {\n duration.value = zeroValue;\n } else if (!Number.isFinite(input)) {\n duration.value = infinityValue;\n } else if (!Number.isInteger(input)) {\n duration.value = {\n _tag: \"Nanos\",\n nanos: BigInt(Math.round(input * 1_000_000))\n };\n } else {\n duration.value = {\n _tag: \"Millis\",\n millis: input\n };\n }\n } else if (input <= bigint0) {\n duration.value = zeroValue;\n } else {\n duration.value = {\n _tag: \"Nanos\",\n nanos: input\n };\n }\n return duration;\n};\n/**\n * @since 2.0.0\n * @category guards\n */\nexport const isDuration = u => hasProperty(u, TypeId);\n/**\n * @since 2.0.0\n * @category guards\n */\nexport const isFinite = self => self.value._tag !== \"Infinity\";\n/**\n * @since 3.5.0\n * @category guards\n */\nexport const isZero = self => {\n switch (self.value._tag) {\n case \"Millis\":\n {\n return self.value.millis === 0;\n }\n case \"Nanos\":\n {\n return self.value.nanos === bigint0;\n }\n case \"Infinity\":\n {\n return false;\n }\n }\n};\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const zero = /*#__PURE__*/make(0);\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const infinity = /*#__PURE__*/make(Infinity);\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const nanos = nanos => make(nanos);\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const micros = micros => make(micros * bigint1e3);\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const millis = millis => make(millis);\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const seconds = seconds => make(seconds * 1000);\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const minutes = minutes => make(minutes * 60_000);\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const hours = hours => make(hours * 3_600_000);\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const days = days => make(days * 86_400_000);\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const weeks = weeks => make(weeks * 604_800_000);\n/**\n * @since 2.0.0\n * @category getters\n */\nexport const toMillis = self => match(self, {\n onMillis: millis => millis,\n onNanos: nanos => Number(nanos) / 1_000_000\n});\n/**\n * @since 2.0.0\n * @category getters\n */\nexport const toSeconds = self => match(self, {\n onMillis: millis => millis / 1_000,\n onNanos: nanos => Number(nanos) / 1_000_000_000\n});\n/**\n * @since 3.8.0\n * @category getters\n */\nexport const toMinutes = self => match(self, {\n onMillis: millis => millis / 60_000,\n onNanos: nanos => Number(nanos) / 60_000_000_000\n});\n/**\n * @since 3.8.0\n * @category getters\n */\nexport const toHours = self => match(self, {\n onMillis: millis => millis / 3_600_000,\n onNanos: nanos => Number(nanos) / 3_600_000_000_000\n});\n/**\n * @since 3.8.0\n * @category getters\n */\nexport const toDays = self => match(self, {\n onMillis: millis => millis / 86_400_000,\n onNanos: nanos => Number(nanos) / 86_400_000_000_000\n});\n/**\n * @since 3.8.0\n * @category getters\n */\nexport const toWeeks = self => match(self, {\n onMillis: millis => millis / 604_800_000,\n onNanos: nanos => Number(nanos) / 604_800_000_000_000\n});\n/**\n * Get the duration in nanoseconds as a bigint.\n *\n * If the duration is infinite, returns `Option.none()`\n *\n * @since 2.0.0\n * @category getters\n */\nexport const toNanos = self => {\n const _self = decode(self);\n switch (_self.value._tag) {\n case \"Infinity\":\n return Option.none();\n case \"Nanos\":\n return Option.some(_self.value.nanos);\n case \"Millis\":\n return Option.some(BigInt(Math.round(_self.value.millis * 1_000_000)));\n }\n};\n/**\n * Get the duration in nanoseconds as a bigint.\n *\n * If the duration is infinite, it throws an error.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const unsafeToNanos = self => {\n const _self = decode(self);\n switch (_self.value._tag) {\n case \"Infinity\":\n throw new Error(\"Cannot convert infinite duration to nanos\");\n case \"Nanos\":\n return _self.value.nanos;\n case \"Millis\":\n return BigInt(Math.round(_self.value.millis * 1_000_000));\n }\n};\n/**\n * @since 2.0.0\n * @category getters\n */\nexport const toHrTime = self => {\n const _self = decode(self);\n switch (_self.value._tag) {\n case \"Infinity\":\n return [Infinity, 0];\n case \"Nanos\":\n return [Number(_self.value.nanos / bigint1e9), Number(_self.value.nanos % bigint1e9)];\n case \"Millis\":\n return [Math.floor(_self.value.millis / 1000), Math.round(_self.value.millis % 1000 * 1_000_000)];\n }\n};\n/**\n * @since 2.0.0\n * @category pattern matching\n */\nexport const match = /*#__PURE__*/dual(2, (self, options) => {\n const _self = decode(self);\n switch (_self.value._tag) {\n case \"Nanos\":\n return options.onNanos(_self.value.nanos);\n case \"Infinity\":\n return options.onMillis(Infinity);\n case \"Millis\":\n return options.onMillis(_self.value.millis);\n }\n});\n/**\n * @since 2.0.0\n * @category pattern matching\n */\nexport const matchWith = /*#__PURE__*/dual(3, (self, that, options) => {\n const _self = decode(self);\n const _that = decode(that);\n if (_self.value._tag === \"Infinity\" || _that.value._tag === \"Infinity\") {\n return options.onMillis(toMillis(_self), toMillis(_that));\n } else if (_self.value._tag === \"Nanos\" || _that.value._tag === \"Nanos\") {\n const selfNanos = _self.value._tag === \"Nanos\" ? _self.value.nanos : BigInt(Math.round(_self.value.millis * 1_000_000));\n const thatNanos = _that.value._tag === \"Nanos\" ? _that.value.nanos : BigInt(Math.round(_that.value.millis * 1_000_000));\n return options.onNanos(selfNanos, thatNanos);\n }\n return options.onMillis(_self.value.millis, _that.value.millis);\n});\n/**\n * @category instances\n * @since 2.0.0\n */\nexport const Order = /*#__PURE__*/order.make((self, that) => matchWith(self, that, {\n onMillis: (self, that) => self < that ? -1 : self > that ? 1 : 0,\n onNanos: (self, that) => self < that ? -1 : self > that ? 1 : 0\n}));\n/**\n * Checks if a `Duration` is between a `minimum` and `maximum` value.\n *\n * @category predicates\n * @since 2.0.0\n */\nexport const between = /*#__PURE__*/order.between(/*#__PURE__*/order.mapInput(Order, decode));\n/**\n * @category instances\n * @since 2.0.0\n */\nexport const Equivalence = (self, that) => matchWith(self, that, {\n onMillis: (self, that) => self === that,\n onNanos: (self, that) => self === that\n});\nconst _min = /*#__PURE__*/order.min(Order);\n/**\n * @since 2.0.0\n */\nexport const min = /*#__PURE__*/dual(2, (self, that) => _min(decode(self), decode(that)));\nconst _max = /*#__PURE__*/order.max(Order);\n/**\n * @since 2.0.0\n * @category order\n */\nexport const max = /*#__PURE__*/dual(2, (self, that) => _max(decode(self), decode(that)));\nconst _clamp = /*#__PURE__*/order.clamp(Order);\n/**\n * @since 2.0.0\n * @category order\n */\nexport const clamp = /*#__PURE__*/dual(2, (self, options) => _clamp(decode(self), {\n minimum: decode(options.minimum),\n maximum: decode(options.maximum)\n}));\n/**\n * @since 2.4.19\n * @category math\n */\nexport const divide = /*#__PURE__*/dual(2, (self, by) => match(self, {\n onMillis: millis => {\n if (by === 0 || isNaN(by) || !Number.isFinite(by)) {\n return Option.none();\n }\n return Option.some(make(millis / by));\n },\n onNanos: nanos => {\n if (isNaN(by) || by <= 0 || !Number.isFinite(by)) {\n return Option.none();\n }\n try {\n return Option.some(make(nanos / BigInt(by)));\n } catch {\n return Option.none();\n }\n }\n}));\n/**\n * @since 2.4.19\n * @category math\n */\nexport const unsafeDivide = /*#__PURE__*/dual(2, (self, by) => match(self, {\n onMillis: millis => make(millis / by),\n onNanos: nanos => {\n if (isNaN(by) || by < 0 || Object.is(by, -0)) {\n return zero;\n } else if (Object.is(by, 0) || !Number.isFinite(by)) {\n return infinity;\n }\n return make(nanos / BigInt(by));\n }\n}));\n/**\n * @since 2.0.0\n * @category math\n */\nexport const times = /*#__PURE__*/dual(2, (self, times) => match(self, {\n onMillis: millis => make(millis * times),\n onNanos: nanos => make(nanos * BigInt(times))\n}));\n/**\n * @since 2.0.0\n * @category math\n */\nexport const subtract = /*#__PURE__*/dual(2, (self, that) => matchWith(self, that, {\n onMillis: (self, that) => make(self - that),\n onNanos: (self, that) => make(self - that)\n}));\n/**\n * @since 2.0.0\n * @category math\n */\nexport const sum = /*#__PURE__*/dual(2, (self, that) => matchWith(self, that, {\n onMillis: (self, that) => make(self + that),\n onNanos: (self, that) => make(self + that)\n}));\n/**\n * @since 2.0.0\n * @category predicates\n */\nexport const lessThan = /*#__PURE__*/dual(2, (self, that) => matchWith(self, that, {\n onMillis: (self, that) => self < that,\n onNanos: (self, that) => self < that\n}));\n/**\n * @since 2.0.0\n * @category predicates\n */\nexport const lessThanOrEqualTo = /*#__PURE__*/dual(2, (self, that) => matchWith(self, that, {\n onMillis: (self, that) => self <= that,\n onNanos: (self, that) => self <= that\n}));\n/**\n * @since 2.0.0\n * @category predicates\n */\nexport const greaterThan = /*#__PURE__*/dual(2, (self, that) => matchWith(self, that, {\n onMillis: (self, that) => self > that,\n onNanos: (self, that) => self > that\n}));\n/**\n * @since 2.0.0\n * @category predicates\n */\nexport const greaterThanOrEqualTo = /*#__PURE__*/dual(2, (self, that) => matchWith(self, that, {\n onMillis: (self, that) => self >= that,\n onNanos: (self, that) => self >= that\n}));\n/**\n * @since 2.0.0\n * @category predicates\n */\nexport const equals = /*#__PURE__*/dual(2, (self, that) => Equivalence(decode(self), decode(that)));\n/**\n * Converts a `Duration` to its parts.\n *\n * @since 3.8.0\n * @category conversions\n */\nexport const parts = self => {\n const duration = decode(self);\n if (duration.value._tag === \"Infinity\") {\n return {\n days: Infinity,\n hours: Infinity,\n minutes: Infinity,\n seconds: Infinity,\n millis: Infinity,\n nanos: Infinity\n };\n }\n const nanos = unsafeToNanos(duration);\n const ms = nanos / bigint1e6;\n const sec = ms / bigint1e3;\n const min = sec / bigint60;\n const hr = min / bigint60;\n const days = hr / bigint24;\n return {\n days: Number(days),\n hours: Number(hr % bigint24),\n minutes: Number(min % bigint60),\n seconds: Number(sec % bigint60),\n millis: Number(ms % bigint1e3),\n nanos: Number(nanos % bigint1e6)\n };\n};\n/**\n * Converts a `Duration` to a human readable string.\n *\n * @since 2.0.0\n * @category conversions\n * @example\n * ```ts\n * import { Duration } from \"effect\"\n *\n * Duration.format(Duration.millis(1000)) // \"1s\"\n * Duration.format(Duration.millis(1001)) // \"1s 1ms\"\n * ```\n */\nexport const format = self => {\n const duration = decode(self);\n if (duration.value._tag === \"Infinity\") {\n return \"Infinity\";\n }\n if (isZero(duration)) {\n return \"0\";\n }\n const fragments = parts(duration);\n const pieces = [];\n if (fragments.days !== 0) {\n pieces.push(`${fragments.days}d`);\n }\n if (fragments.hours !== 0) {\n pieces.push(`${fragments.hours}h`);\n }\n if (fragments.minutes !== 0) {\n pieces.push(`${fragments.minutes}m`);\n }\n if (fragments.seconds !== 0) {\n pieces.push(`${fragments.seconds}s`);\n }\n if (fragments.millis !== 0) {\n pieces.push(`${fragments.millis}ms`);\n }\n if (fragments.nanos !== 0) {\n pieces.push(`${fragments.nanos}ns`);\n }\n return pieces.join(\" \");\n};\n/**\n * Formats a Duration into an ISO8601 duration string.\n *\n * Months are assumed to be 30 days and years are assumed to be 365 days.\n *\n * Milliseconds and nanoseconds are expressed as fractional seconds.\n *\n * @example\n * ```ts\n * import { Duration } from \"effect\"\n *\n * Duration.unsafeFormatIso(Duration.days(1)) // => \"P1D\"\n * Duration.unsafeFormatIso(Duration.minutes(90)) // => \"PT1H30M\"\n * Duration.unsafeFormatIso(Duration.millis(1500)) // => \"PT1.5S\"\n * ```\n *\n * @throws `RangeError` If the duration is not finite.\n *\n * @since 3.13.0\n * @category conversions\n */\nexport const unsafeFormatIso = self => {\n const duration = decode(self);\n if (!isFinite(duration)) {\n throw new RangeError(\"Cannot format infinite duration\");\n }\n const fragments = [];\n const {\n days,\n hours,\n millis,\n minutes,\n nanos,\n seconds\n } = parts(duration);\n let rest = days;\n if (rest >= 365) {\n const years = Math.floor(rest / 365);\n rest %= 365;\n fragments.push(`${years}Y`);\n }\n if (rest >= 30) {\n const months = Math.floor(rest / 30);\n rest %= 30;\n fragments.push(`${months}M`);\n }\n if (rest >= 7) {\n const weeks = Math.floor(rest / 7);\n rest %= 7;\n fragments.push(`${weeks}W`);\n }\n if (rest > 0) {\n fragments.push(`${rest}D`);\n }\n if (hours !== 0 || minutes !== 0 || seconds !== 0 || millis !== 0 || nanos !== 0) {\n fragments.push(\"T\");\n if (hours !== 0) {\n fragments.push(`${hours}H`);\n }\n if (minutes !== 0) {\n fragments.push(`${minutes}M`);\n }\n if (seconds !== 0 || millis !== 0 || nanos !== 0) {\n const total = BigInt(seconds) * bigint1e9 + BigInt(millis) * bigint1e6 + BigInt(nanos);\n const str = (Number(total) / 1e9).toFixed(9).replace(/\\.?0+$/, \"\");\n fragments.push(`${str}S`);\n }\n }\n return `P${fragments.join(\"\") || \"T0S\"}`;\n};\n/**\n * Formats a Duration into an ISO8601 duration string.\n *\n * Months are assumed to be 30 days and years are assumed to be 365 days.\n *\n * Returns `Option.none()` if the duration is infinite.\n *\n * @example\n * ```ts\n * import { Duration, Option } from \"effect\"\n *\n * Duration.formatIso(Duration.days(1)) // => Option.some(\"P1D\")\n * Duration.formatIso(Duration.minutes(90)) // => Option.some(\"PT1H30M\")\n * Duration.formatIso(Duration.millis(1500)) // => Option.some(\"PT1.5S\")\n * Duration.formatIso(Duration.infinity) // => Option.none()\n * ```\n *\n * @since 3.13.0\n * @category conversions\n */\nexport const formatIso = self => {\n const duration = decode(self);\n return isFinite(duration) ? Option.some(unsafeFormatIso(duration)) : Option.none();\n};\n/**\n * Parses an ISO8601 duration string into a `Duration`.\n *\n * Months are assumed to be 30 days and years are assumed to be 365 days.\n *\n * @example\n * ```ts\n * import { Duration, Option } from \"effect\"\n *\n * Duration.fromIso(\"P1D\") // => Option.some(Duration.days(1))\n * Duration.fromIso(\"PT1H\") // => Option.some(Duration.hours(1))\n * Duration.fromIso(\"PT1M\") // => Option.some(Duration.minutes(1))\n * Duration.fromIso(\"PT1.5S\") // => Option.some(Duration.seconds(1.5))\n * ```\n *\n * @since 3.13.0\n * @category conversions\n */\nexport const fromIso = iso => {\n const result = DURATION_ISO_REGEX.exec(iso);\n if (result == null) {\n return Option.none();\n }\n const [years, months, weeks, days, hours, mins, secs] = result.slice(1, 8).map(_ => _ ? Number(_) : 0);\n const value = years * 365 * 24 * 60 * 60 + months * 30 * 24 * 60 * 60 + weeks * 7 * 24 * 60 * 60 + days * 24 * 60 * 60 + hours * 60 * 60 + mins * 60 + secs;\n return Option.some(seconds(value));\n};\nconst DURATION_ISO_REGEX = /^P(?!$)(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)W)?(?:(\\d+)D)?(?:T(?!$)(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+(?:\\.\\d+)?)S)?)?$/;\n//# sourceMappingURL=Duration.js.map","import { InvalidAddressError } from '../../errors/address.js';\nimport { stringToBytes, } from '../encoding/toBytes.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { LruMap } from '../lru.js';\nimport { isAddress } from './isAddress.js';\nconst checksumAddressCache = /*#__PURE__*/ new LruMap(8192);\nexport function checksumAddress(address_, \n/**\n * Warning: EIP-1191 checksum addresses are generally not backwards compatible with the\n * wider Ethereum ecosystem, meaning it will break when validated against an application/tool\n * that relies on EIP-55 checksum encoding (checksum without chainId).\n *\n * It is highly recommended to not use this feature unless you\n * know what you are doing.\n *\n * See more: https://github.com/ethereum/EIPs/issues/1121\n */\nchainId) {\n if (checksumAddressCache.has(`${address_}.${chainId}`))\n return checksumAddressCache.get(`${address_}.${chainId}`);\n const hexAddress = chainId\n ? `${chainId}${address_.toLowerCase()}`\n : address_.substring(2).toLowerCase();\n const hash = keccak256(stringToBytes(hexAddress), 'bytes');\n const address = (chainId ? hexAddress.substring(`${chainId}0x`.length) : hexAddress).split('');\n for (let i = 0; i < 40; i += 2) {\n if (hash[i >> 1] >> 4 >= 8 && address[i]) {\n address[i] = address[i].toUpperCase();\n }\n if ((hash[i >> 1] & 0x0f) >= 8 && address[i + 1]) {\n address[i + 1] = address[i + 1].toUpperCase();\n }\n }\n const result = `0x${address.join('')}`;\n checksumAddressCache.set(`${address_}.${chainId}`, result);\n return result;\n}\nexport function getAddress(address, \n/**\n * Warning: EIP-1191 checksum addresses are generally not backwards compatible with the\n * wider Ethereum ecosystem, meaning it will break when validated against an application/tool\n * that relies on EIP-55 checksum encoding (checksum without chainId).\n *\n * It is highly recommended to not use this feature unless you\n * know what you are doing.\n *\n * See more: https://github.com/ethereum/EIPs/issues/1121\n */\nchainId) {\n if (!isAddress(address, { strict: false }))\n throw new InvalidAddressError({ address });\n return checksumAddress(address, chainId);\n}\n//# sourceMappingURL=getAddress.js.map","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","import * as Context from \"../Context.js\";\nimport * as Duration from \"../Duration.js\";\nimport { constFalse } from \"../Function.js\";\nimport * as core from \"./core.js\";\n/** @internal */\nconst ClockSymbolKey = \"effect/Clock\";\n/** @internal */\nexport const ClockTypeId = /*#__PURE__*/Symbol.for(ClockSymbolKey);\n/** @internal */\nexport const clockTag = /*#__PURE__*/Context.GenericTag(\"effect/Clock\");\n/** @internal */\nexport const MAX_TIMER_MILLIS = 2 ** 31 - 1;\n/** @internal */\nexport const globalClockScheduler = {\n unsafeSchedule(task, duration) {\n const millis = Duration.toMillis(duration);\n // If the duration is greater than the value allowable by the JS timer\n // functions, treat the value as an infinite duration\n if (millis > MAX_TIMER_MILLIS) {\n return constFalse;\n }\n let completed = false;\n const handle = setTimeout(() => {\n completed = true;\n task();\n }, millis);\n return () => {\n clearTimeout(handle);\n return !completed;\n };\n }\n};\nconst performanceNowNanos = /*#__PURE__*/function () {\n const bigint1e6 = /*#__PURE__*/BigInt(1_000_000);\n if (typeof performance === \"undefined\" || typeof performance.now !== \"function\") {\n return () => BigInt(Date.now()) * bigint1e6;\n }\n let origin;\n return () => {\n if (origin === undefined) {\n origin = BigInt(Date.now()) * bigint1e6 - BigInt(Math.round(performance.now() * 1_000_000));\n }\n return origin + BigInt(Math.round(performance.now() * 1000000));\n };\n}();\nconst processOrPerformanceNow = /*#__PURE__*/function () {\n const processHrtime = typeof process === \"object\" && \"hrtime\" in process && typeof process.hrtime.bigint === \"function\" ? process.hrtime : undefined;\n if (!processHrtime) {\n return performanceNowNanos;\n }\n const origin = /*#__PURE__*/performanceNowNanos() - /*#__PURE__*/processHrtime.bigint();\n return () => origin + processHrtime.bigint();\n}();\n/** @internal */\nclass ClockImpl {\n [ClockTypeId] = ClockTypeId;\n unsafeCurrentTimeMillis() {\n return Date.now();\n }\n unsafeCurrentTimeNanos() {\n return processOrPerformanceNow();\n }\n currentTimeMillis = /*#__PURE__*/core.sync(() => this.unsafeCurrentTimeMillis());\n currentTimeNanos = /*#__PURE__*/core.sync(() => this.unsafeCurrentTimeNanos());\n scheduler() {\n return core.succeed(globalClockScheduler);\n }\n sleep(duration) {\n return core.async(resume => {\n const canceler = globalClockScheduler.unsafeSchedule(() => resume(core.void), duration);\n return core.asVoid(core.sync(canceler));\n });\n }\n}\n/** @internal */\nexport const make = () => new ClockImpl();\n//# sourceMappingURL=clock.js.map","'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","import * as Equal from \"../Equal.js\";\nimport * as Dual from \"../Function.js\";\nimport { constant, identity } from \"../Function.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport * as ChunkPatch from \"./differ/chunkPatch.js\";\nimport * as ContextPatch from \"./differ/contextPatch.js\";\nimport * as HashMapPatch from \"./differ/hashMapPatch.js\";\nimport * as HashSetPatch from \"./differ/hashSetPatch.js\";\nimport * as OrPatch from \"./differ/orPatch.js\";\nimport * as ReadonlyArrayPatch from \"./differ/readonlyArrayPatch.js\";\n/** @internal */\nexport const DifferTypeId = /*#__PURE__*/Symbol.for(\"effect/Differ\");\n/** @internal */\nexport const DifferProto = {\n [DifferTypeId]: {\n _P: identity,\n _V: identity\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\n/** @internal */\nexport const make = params => {\n const differ = Object.create(DifferProto);\n differ.empty = params.empty;\n differ.diff = params.diff;\n differ.combine = params.combine;\n differ.patch = params.patch;\n return differ;\n};\n/** @internal */\nexport const environment = () => make({\n empty: ContextPatch.empty(),\n combine: (first, second) => ContextPatch.combine(second)(first),\n diff: (oldValue, newValue) => ContextPatch.diff(oldValue, newValue),\n patch: (patch, oldValue) => ContextPatch.patch(oldValue)(patch)\n});\n/** @internal */\nexport const chunk = differ => make({\n empty: ChunkPatch.empty(),\n combine: (first, second) => ChunkPatch.combine(second)(first),\n diff: (oldValue, newValue) => ChunkPatch.diff({\n oldValue,\n newValue,\n differ\n }),\n patch: (patch, oldValue) => ChunkPatch.patch(oldValue, differ)(patch)\n});\n/** @internal */\nexport const hashMap = differ => make({\n empty: HashMapPatch.empty(),\n combine: (first, second) => HashMapPatch.combine(second)(first),\n diff: (oldValue, newValue) => HashMapPatch.diff({\n oldValue,\n newValue,\n differ\n }),\n patch: (patch, oldValue) => HashMapPatch.patch(oldValue, differ)(patch)\n});\n/** @internal */\nexport const hashSet = () => make({\n empty: HashSetPatch.empty(),\n combine: (first, second) => HashSetPatch.combine(second)(first),\n diff: (oldValue, newValue) => HashSetPatch.diff(oldValue, newValue),\n patch: (patch, oldValue) => HashSetPatch.patch(oldValue)(patch)\n});\n/** @internal */\nexport const orElseEither = /*#__PURE__*/Dual.dual(2, (self, that) => make({\n empty: OrPatch.empty(),\n combine: (first, second) => OrPatch.combine(first, second),\n diff: (oldValue, newValue) => OrPatch.diff({\n oldValue,\n newValue,\n left: self,\n right: that\n }),\n patch: (patch, oldValue) => OrPatch.patch(patch, {\n oldValue,\n left: self,\n right: that\n })\n}));\n/** @internal */\nexport const readonlyArray = differ => make({\n empty: ReadonlyArrayPatch.empty(),\n combine: (first, second) => ReadonlyArrayPatch.combine(first, second),\n diff: (oldValue, newValue) => ReadonlyArrayPatch.diff({\n oldValue,\n newValue,\n differ\n }),\n patch: (patch, oldValue) => ReadonlyArrayPatch.patch(patch, oldValue, differ)\n});\n/** @internal */\nexport const transform = /*#__PURE__*/Dual.dual(2, (self, {\n toNew,\n toOld\n}) => make({\n empty: self.empty,\n combine: (first, second) => self.combine(first, second),\n diff: (oldValue, newValue) => self.diff(toOld(oldValue), toOld(newValue)),\n patch: (patch, oldValue) => toNew(self.patch(patch, toOld(oldValue)))\n}));\n/** @internal */\nexport const update = () => updateWith((_, a) => a);\n/** @internal */\nexport const updateWith = f => make({\n empty: identity,\n combine: (first, second) => {\n if (first === identity) {\n return second;\n }\n if (second === identity) {\n return first;\n }\n return a => second(first(a));\n },\n diff: (oldValue, newValue) => {\n if (Equal.equals(oldValue, newValue)) {\n return identity;\n }\n return constant(newValue);\n },\n patch: (patch, oldValue) => f(oldValue, patch(oldValue))\n});\n/** @internal */\nexport const zip = /*#__PURE__*/Dual.dual(2, (self, that) => make({\n empty: [self.empty, that.empty],\n combine: (first, second) => [self.combine(first[0], second[0]), that.combine(first[1], second[1])],\n diff: (oldValue, newValue) => [self.diff(oldValue[0], newValue[0]), that.diff(oldValue[1], newValue[1])],\n patch: (patch, oldValue) => [self.patch(patch[0], oldValue[0]), that.patch(patch[1], oldValue[1])]\n}));\n//# sourceMappingURL=differ.js.map","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","import { formatAbiItem, formatAbiParams } from '../utils/abi/formatAbiItem.js';\nimport { size } from '../utils/data/size.js';\nimport { BaseError } from './base.js';\nexport class AbiConstructorNotFoundError extends BaseError {\n constructor({ docsPath }) {\n super([\n 'A constructor was not found on the ABI.',\n 'Make sure you are using the correct ABI and that the constructor exists on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiConstructorNotFoundError',\n });\n }\n}\nexport class AbiConstructorParamsNotFoundError extends BaseError {\n constructor({ docsPath }) {\n super([\n 'Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.',\n 'Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiConstructorParamsNotFoundError',\n });\n }\n}\nexport class AbiDecodingDataSizeInvalidError extends BaseError {\n constructor({ data, size }) {\n super([\n `Data size of ${size} bytes is invalid.`,\n 'Size must be in increments of 32 bytes (size % 32 === 0).',\n ].join('\\n'), {\n metaMessages: [`Data: ${data} (${size} bytes)`],\n name: 'AbiDecodingDataSizeInvalidError',\n });\n }\n}\nexport class AbiDecodingDataSizeTooSmallError extends BaseError {\n constructor({ data, params, size, }) {\n super([`Data size of ${size} bytes is too small for given parameters.`].join('\\n'), {\n metaMessages: [\n `Params: (${formatAbiParams(params, { includeName: true })})`,\n `Data: ${data} (${size} bytes)`,\n ],\n name: 'AbiDecodingDataSizeTooSmallError',\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"params\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"size\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.data = data;\n this.params = params;\n this.size = size;\n }\n}\nexport class AbiDecodingZeroDataError extends BaseError {\n constructor() {\n super('Cannot decode zero data (\"0x\") with ABI parameters.', {\n name: 'AbiDecodingZeroDataError',\n });\n }\n}\nexport class AbiEncodingArrayLengthMismatchError extends BaseError {\n constructor({ expectedLength, givenLength, type, }) {\n super([\n `ABI encoding array length mismatch for type ${type}.`,\n `Expected length: ${expectedLength}`,\n `Given length: ${givenLength}`,\n ].join('\\n'), { name: 'AbiEncodingArrayLengthMismatchError' });\n }\n}\nexport class AbiEncodingBytesSizeMismatchError extends BaseError {\n constructor({ expectedSize, value }) {\n super(`Size of bytes \"${value}\" (bytes${size(value)}) does not match expected size (bytes${expectedSize}).`, { name: 'AbiEncodingBytesSizeMismatchError' });\n }\n}\nexport class AbiEncodingLengthMismatchError extends BaseError {\n constructor({ expectedLength, givenLength, }) {\n super([\n 'ABI encoding params/values length mismatch.',\n `Expected length (params): ${expectedLength}`,\n `Given length (values): ${givenLength}`,\n ].join('\\n'), { name: 'AbiEncodingLengthMismatchError' });\n }\n}\nexport class AbiErrorInputsNotFoundError extends BaseError {\n constructor(errorName, { docsPath }) {\n super([\n `Arguments (\\`args\\`) were provided to \"${errorName}\", but \"${errorName}\" on the ABI does not contain any parameters (\\`inputs\\`).`,\n 'Cannot encode error result without knowing what the parameter types are.',\n 'Make sure you are using the correct ABI and that the inputs exist on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiErrorInputsNotFoundError',\n });\n }\n}\nexport class AbiErrorNotFoundError extends BaseError {\n constructor(errorName, { docsPath } = {}) {\n super([\n `Error ${errorName ? `\"${errorName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the error exists on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiErrorNotFoundError',\n });\n }\n}\nexport class AbiErrorSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded error signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the error exists on it.',\n `You can look up the decoded signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n name: 'AbiErrorSignatureNotFoundError',\n });\n Object.defineProperty(this, \"signature\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.signature = signature;\n }\n}\nexport class AbiEventSignatureEmptyTopicsError extends BaseError {\n constructor({ docsPath }) {\n super('Cannot extract event signature from empty topics.', {\n docsPath,\n name: 'AbiEventSignatureEmptyTopicsError',\n });\n }\n}\nexport class AbiEventSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded event signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the event exists on it.',\n `You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n name: 'AbiEventSignatureNotFoundError',\n });\n }\n}\nexport class AbiEventNotFoundError extends BaseError {\n constructor(eventName, { docsPath } = {}) {\n super([\n `Event ${eventName ? `\"${eventName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the event exists on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiEventNotFoundError',\n });\n }\n}\nexport class AbiFunctionNotFoundError extends BaseError {\n constructor(functionName, { docsPath } = {}) {\n super([\n `Function ${functionName ? `\"${functionName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the function exists on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiFunctionNotFoundError',\n });\n }\n}\nexport class AbiFunctionOutputsNotFoundError extends BaseError {\n constructor(functionName, { docsPath }) {\n super([\n `Function \"${functionName}\" does not contain any \\`outputs\\` on ABI.`,\n 'Cannot decode function result without knowing what the parameter types are.',\n 'Make sure you are using the correct ABI and that the function exists on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiFunctionOutputsNotFoundError',\n });\n }\n}\nexport class AbiFunctionSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded function signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the function exists on it.',\n `You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n name: 'AbiFunctionSignatureNotFoundError',\n });\n }\n}\nexport class AbiItemAmbiguityError extends BaseError {\n constructor(x, y) {\n super('Found ambiguous types in overloaded ABI items.', {\n metaMessages: [\n `\\`${x.type}\\` in \\`${formatAbiItem(x.abiItem)}\\`, and`,\n `\\`${y.type}\\` in \\`${formatAbiItem(y.abiItem)}\\``,\n '',\n 'These types encode differently and cannot be distinguished at runtime.',\n 'Remove one of the ambiguous items in the ABI.',\n ],\n name: 'AbiItemAmbiguityError',\n });\n }\n}\nexport class BytesSizeMismatchError extends BaseError {\n constructor({ expectedSize, givenSize, }) {\n super(`Expected bytes${expectedSize}, got bytes${givenSize}.`, {\n name: 'BytesSizeMismatchError',\n });\n }\n}\nexport class DecodeLogDataMismatch extends BaseError {\n constructor({ abiItem, data, params, size, }) {\n super([\n `Data size of ${size} bytes is too small for non-indexed event parameters.`,\n ].join('\\n'), {\n metaMessages: [\n `Params: (${formatAbiParams(params, { includeName: true })})`,\n `Data: ${data} (${size} bytes)`,\n ],\n name: 'DecodeLogDataMismatch',\n });\n Object.defineProperty(this, \"abiItem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"params\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"size\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.abiItem = abiItem;\n this.data = data;\n this.params = params;\n this.size = size;\n }\n}\nexport class DecodeLogTopicsMismatch extends BaseError {\n constructor({ abiItem, param, }) {\n super([\n `Expected a topic for indexed event parameter${param.name ? ` \"${param.name}\"` : ''} on event \"${formatAbiItem(abiItem, { includeName: true })}\".`,\n ].join('\\n'), { name: 'DecodeLogTopicsMismatch' });\n Object.defineProperty(this, \"abiItem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.abiItem = abiItem;\n }\n}\nexport class InvalidAbiEncodingTypeError extends BaseError {\n constructor(type, { docsPath }) {\n super([\n `Type \"${type}\" is not a valid encoding type.`,\n 'Please provide a valid ABI type.',\n ].join('\\n'), { docsPath, name: 'InvalidAbiEncodingType' });\n }\n}\nexport class InvalidAbiDecodingTypeError extends BaseError {\n constructor(type, { docsPath }) {\n super([\n `Type \"${type}\" is not a valid decoding type.`,\n 'Please provide a valid ABI type.',\n ].join('\\n'), { docsPath, name: 'InvalidAbiDecodingType' });\n }\n}\nexport class InvalidArrayError extends BaseError {\n constructor(value) {\n super([`Value \"${value}\" is not a valid array.`].join('\\n'), {\n name: 'InvalidArrayError',\n });\n }\n}\nexport class InvalidDefinitionTypeError extends BaseError {\n constructor(type) {\n super([\n `\"${type}\" is not a valid definition type.`,\n 'Valid types: \"function\", \"event\", \"error\"',\n ].join('\\n'), { name: 'InvalidDefinitionTypeError' });\n }\n}\nexport class UnsupportedPackedAbiType extends BaseError {\n constructor(type) {\n super(`Type \"${type}\" is not supported for packed encoding.`, {\n name: 'UnsupportedPackedAbiType',\n });\n }\n}\n//# sourceMappingURL=abi.js.map","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar isArray = require('isarray');\nvar typedArrayBuffer = require('typed-array-buffer');\n\nvar isView = ArrayBuffer.isView || function isView(obj) {\n\ttry {\n\t\ttypedArrayBuffer(obj);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar useUint8Array = typeof Uint8Array !== 'undefined';\nvar useArrayBuffer = typeof ArrayBuffer !== 'undefined'\n\t&& typeof Uint8Array !== 'undefined';\nvar useFromArrayBuffer = useArrayBuffer && (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT);\n\nmodule.exports = function toBuffer(data, encoding) {\n\tif (Buffer.isBuffer(data)) {\n\t\tif (data.constructor && !('isBuffer' in data)) {\n\t\t\t// probably a SlowBuffer\n\t\t\treturn Buffer.from(data);\n\t\t}\n\t\treturn data;\n\t}\n\n\tif (typeof data === 'string') {\n\t\treturn Buffer.from(data, encoding);\n\t}\n\n\t/*\n\t * Wrap any TypedArray instances and DataViews\n\t * Makes sense only on engines with full TypedArray support -- let Buffer detect that\n\t */\n\tif (useArrayBuffer && isView(data)) {\n\t\t// Bug in Node.js <6.3.1, which treats this as out-of-bounds\n\t\tif (data.byteLength === 0) {\n\t\t\treturn Buffer.alloc(0);\n\t\t}\n\n\t\t// When Buffer is based on Uint8Array, we can just construct it from ArrayBuffer\n\t\tif (useFromArrayBuffer) {\n\t\t\tvar res = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n\t\t\t/*\n\t\t\t * Recheck result size, as offset/length doesn't work on Node.js <5.10\n\t\t\t * We just go to Uint8Array case if this fails\n\t\t\t */\n\t\t\tif (res.byteLength === data.byteLength) {\n\t\t\t\treturn res;\n\t\t\t}\n\t\t}\n\n\t\t// Convert to Uint8Array bytes and then to Buffer\n\t\tvar uint8 = data instanceof Uint8Array ? data : new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n\t\tvar result = Buffer.from(uint8);\n\n\t\t/*\n\t\t * Let's recheck that conversion succeeded\n\t\t * We have .length but not .byteLength when useFromArrayBuffer is false\n\t\t */\n\t\tif (result.length === data.byteLength) {\n\t\t\treturn result;\n\t\t}\n\t}\n\n\t/*\n\t * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over\n\t * Doesn't make sense with other TypedArray instances\n\t */\n\tif (useUint8Array && data instanceof Uint8Array) {\n\t\treturn Buffer.from(data);\n\t}\n\n\tvar isArr = isArray(data);\n\tif (isArr) {\n\t\tfor (var i = 0; i < data.length; i += 1) {\n\t\t\tvar x = data[i];\n\t\t\tif (\n\t\t\t\ttypeof x !== 'number'\n\t\t\t\t|| x < 0\n\t\t\t\t|| x > 255\n\t\t\t\t|| ~~x !== x // NaN and integer check\n\t\t\t) {\n\t\t\t\tthrow new RangeError('Array items must be numbers in the range 0-255.');\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Old Buffer polyfill on an engine that doesn't have TypedArray support\n\t * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed\n\t * Convert to our current Buffer implementation\n\t */\n\tif (\n\t\tisArr || (\n\t\t\tBuffer.isBuffer(data)\n\t\t\t&& data.constructor\n\t\t\t&& typeof data.constructor.isBuffer === 'function'\n\t\t\t&& data.constructor.isBuffer(data)\n\t\t)\n\t) {\n\t\treturn Buffer.from(data);\n\t}\n\n\tthrow new TypeError('The \"data\" argument must be a string, an Array, a Buffer, a Uint8Array, or a DataView.');\n};\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * Sends a **signed** transaction to the network\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\n * - JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\n *\n * @param client - Client to use\n * @param parameters - {@link SendRawTransactionParameters}\n * @returns The transaction hash. {@link SendRawTransactionReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendRawTransaction } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n *\n * const hash = await sendRawTransaction(client, {\n * serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\n * })\n */\nexport async function sendRawTransaction(client, { serializedTransaction }) {\n return client.request({\n method: 'eth_sendRawTransaction',\n params: [serializedTransaction],\n }, { retryCount: 0 });\n}\n//# sourceMappingURL=sendRawTransaction.js.map","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","/**\n * Map with a LRU (Least recently used) policy.\n *\n * @link https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU\n */\nexport class LruMap extends Map {\n constructor(size) {\n super();\n Object.defineProperty(this, \"maxSize\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.maxSize = size;\n }\n get(key) {\n const value = super.get(key);\n if (super.has(key) && value !== undefined) {\n this.delete(key);\n super.set(key, value);\n }\n return value;\n }\n set(key, value) {\n super.set(key, value);\n if (this.maxSize && this.size > this.maxSize) {\n const firstKey = this.keys().next().value;\n if (firstKey)\n this.delete(firstKey);\n }\n return this;\n }\n}\n//# sourceMappingURL=lru.js.map","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n\n'use strict';\n\nvar asn1 = require('asn1.js');\n\nexports.certificate = require('./certificate');\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int'](),\n\t\tthis.key('privateExponent')['int'](),\n\t\tthis.key('prime1')['int'](),\n\t\tthis.key('prime2')['int'](),\n\t\tthis.key('exponent1')['int'](),\n\t\tthis.key('exponent2')['int'](),\n\t\tthis.key('coefficient')['int']()\n\t);\n});\nexports.RSAPrivateKey = RSAPrivateKey;\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int']()\n\t);\n});\nexports.RSAPublicKey = RSAPublicKey;\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('none').null_().optional(),\n\t\tthis.key('curve').objid().optional(),\n\t\tthis.key('params').seq().obj(\n\t\t\tthis.key('p')['int'](),\n\t\t\tthis.key('q')['int'](),\n\t\t\tthis.key('g')['int']()\n\t\t).optional()\n\t);\n});\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\nexports.PublicKey = PublicKey;\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\nexports.PrivateKey = PrivateKeyInfo;\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').seq().obj(\n\t\t\tthis.key('id').objid(),\n\t\t\tthis.key('decrypt').seq().obj(\n\t\t\t\tthis.key('kde').seq().obj(\n\t\t\t\t\tthis.key('id').objid(),\n\t\t\t\t\tthis.key('kdeparams').seq().obj(\n\t\t\t\t\t\tthis.key('salt').octstr(),\n\t\t\t\t\t\tthis.key('iters')['int']()\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\tthis.key('cipher').seq().obj(\n\t\t\t\t\tthis.key('algo').objid(),\n\t\t\t\t\tthis.key('iv').octstr()\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo;\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('p')['int'](),\n\t\tthis.key('q')['int'](),\n\t\tthis.key('g')['int'](),\n\t\tthis.key('pub_key')['int'](),\n\t\tthis.key('priv_key')['int']()\n\t);\n});\nexports.DSAPrivateKey = DSAPrivateKey;\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n\tthis['int']();\n});\n\nvar ECParameters = asn1.define('ECParameters', function () {\n\tthis.choice({\n\t\tnamedCurve: this.objid()\n\t});\n});\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('privateKey').octstr(),\n\t\tthis.key('parameters').optional().explicit(0).use(ECParameters),\n\t\tthis.key('publicKey').optional().explicit(1).bitstr()\n\t);\n});\nexports.ECPrivateKey = ECPrivateKey;\n\nexports.signature = asn1.define('signature', function () {\n\tthis.seq().obj(\n\t\tthis.key('r')['int'](),\n\t\tthis.key('s')['int']()\n\t);\n});\n","import { execTyped } from '../../regex.js';\n// https://regexr.com/7gmok\nconst errorSignatureRegex = /^error (?[a-zA-Z$_][a-zA-Z0-9$_]*)\\((?.*?)\\)$/;\nexport function isErrorSignature(signature) {\n return errorSignatureRegex.test(signature);\n}\nexport function execErrorSignature(signature) {\n return execTyped(errorSignatureRegex, signature);\n}\n// https://regexr.com/7gmoq\nconst eventSignatureRegex = /^event (?[a-zA-Z$_][a-zA-Z0-9$_]*)\\((?.*?)\\)$/;\nexport function isEventSignature(signature) {\n return eventSignatureRegex.test(signature);\n}\nexport function execEventSignature(signature) {\n return execTyped(eventSignatureRegex, signature);\n}\n// https://regexr.com/7gmot\nconst functionSignatureRegex = /^function (?[a-zA-Z$_][a-zA-Z0-9$_]*)\\((?.*?)\\)(?: (?external|public{1}))?(?: (?pure|view|nonpayable|payable{1}))?(?: returns\\s?\\((?.*?)\\))?$/;\nexport function isFunctionSignature(signature) {\n return functionSignatureRegex.test(signature);\n}\nexport function execFunctionSignature(signature) {\n return execTyped(functionSignatureRegex, signature);\n}\n// https://regexr.com/7gmp3\nconst structSignatureRegex = /^struct (?[a-zA-Z$_][a-zA-Z0-9$_]*) \\{(?.*?)\\}$/;\nexport function isStructSignature(signature) {\n return structSignatureRegex.test(signature);\n}\nexport function execStructSignature(signature) {\n return execTyped(structSignatureRegex, signature);\n}\n// https://regexr.com/78u01\nconst constructorSignatureRegex = /^constructor\\((?.*?)\\)(?:\\s(?payable{1}))?$/;\nexport function isConstructorSignature(signature) {\n return constructorSignatureRegex.test(signature);\n}\nexport function execConstructorSignature(signature) {\n return execTyped(constructorSignatureRegex, signature);\n}\n// https://regexr.com/7srtn\nconst fallbackSignatureRegex = /^fallback\\(\\) external(?:\\s(?payable{1}))?$/;\nexport function isFallbackSignature(signature) {\n return fallbackSignatureRegex.test(signature);\n}\nexport function execFallbackSignature(signature) {\n return execTyped(fallbackSignatureRegex, signature);\n}\n// https://regexr.com/78u1k\nconst receiveSignatureRegex = /^receive\\(\\) external payable$/;\nexport function isReceiveSignature(signature) {\n return receiveSignatureRegex.test(signature);\n}\nexport const modifiers = new Set([\n 'memory',\n 'indexed',\n 'storage',\n 'calldata',\n]);\nexport const eventModifiers = new Set(['indexed']);\nexport const functionModifiers = new Set([\n 'calldata',\n 'memory',\n 'storage',\n]);\n//# sourceMappingURL=signatures.js.map","import * as Chunk from \"../../Chunk.js\";\nimport * as Dual from \"../../Function.js\";\nimport * as HashSet from \"../../HashSet.js\";\nimport { Structural } from \"../data.js\";\n/** @internal */\nexport const HashSetPatchTypeId = /*#__PURE__*/Symbol.for(\"effect/DifferHashSetPatch\");\nfunction variance(a) {\n return a;\n}\n/** @internal */\nconst PatchProto = {\n ...Structural.prototype,\n [HashSetPatchTypeId]: {\n _Value: variance,\n _Key: variance,\n _Patch: variance\n }\n};\nconst EmptyProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Empty\"\n});\nconst _empty = /*#__PURE__*/Object.create(EmptyProto);\n/** @internal */\nexport const empty = () => _empty;\nconst AndThenProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"AndThen\"\n});\n/** @internal */\nexport const makeAndThen = (first, second) => {\n const o = Object.create(AndThenProto);\n o.first = first;\n o.second = second;\n return o;\n};\nconst AddProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Add\"\n});\n/** @internal */\nexport const makeAdd = value => {\n const o = Object.create(AddProto);\n o.value = value;\n return o;\n};\nconst RemoveProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Remove\"\n});\n/** @internal */\nexport const makeRemove = value => {\n const o = Object.create(RemoveProto);\n o.value = value;\n return o;\n};\n/** @internal */\nexport const diff = (oldValue, newValue) => {\n const [removed, patch] = HashSet.reduce([oldValue, empty()], ([set, patch], value) => {\n if (HashSet.has(value)(set)) {\n return [HashSet.remove(value)(set), patch];\n }\n return [set, combine(makeAdd(value))(patch)];\n })(newValue);\n return HashSet.reduce(patch, (patch, value) => combine(makeRemove(value))(patch))(removed);\n};\n/** @internal */\nexport const combine = /*#__PURE__*/Dual.dual(2, (self, that) => makeAndThen(self, that));\n/** @internal */\nexport const patch = /*#__PURE__*/Dual.dual(2, (self, oldValue) => {\n if (self._tag === \"Empty\") {\n return oldValue;\n }\n let set = oldValue;\n let patches = Chunk.of(self);\n while (Chunk.isNonEmpty(patches)) {\n const head = Chunk.headNonEmpty(patches);\n const tail = Chunk.tailNonEmpty(patches);\n switch (head._tag) {\n case \"Empty\":\n {\n patches = tail;\n break;\n }\n case \"AndThen\":\n {\n patches = Chunk.prepend(head.first)(Chunk.prepend(head.second)(tail));\n break;\n }\n case \"Add\":\n {\n set = HashSet.add(head.value)(set);\n patches = tail;\n break;\n }\n case \"Remove\":\n {\n set = HashSet.remove(head.value)(set);\n patches = tail;\n }\n }\n }\n return set;\n});\n//# sourceMappingURL=hashSetPatch.js.map","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n if(buf[p.place] === 0x00) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","import * as Hash from \"./Hash.js\";\nimport { hasProperty } from \"./Predicate.js\";\nimport { structuralRegionState } from \"./Utils.js\";\n/**\n * @since 2.0.0\n * @category symbols\n */\nexport const symbol = /*#__PURE__*/Symbol.for(\"effect/Equal\");\nexport function equals() {\n if (arguments.length === 1) {\n return self => compareBoth(self, arguments[0]);\n }\n return compareBoth(arguments[0], arguments[1]);\n}\nfunction compareBoth(self, that) {\n if (self === that) {\n return true;\n }\n const selfType = typeof self;\n if (selfType !== typeof that) {\n return false;\n }\n if (selfType === \"object\" || selfType === \"function\") {\n if (self !== null && that !== null) {\n if (isEqual(self) && isEqual(that)) {\n if (Hash.hash(self) === Hash.hash(that) && self[symbol](that)) {\n return true;\n } else {\n return structuralRegionState.enabled && structuralRegionState.tester ? structuralRegionState.tester(self, that) : false;\n }\n } else if (self instanceof Date && that instanceof Date) {\n const t1 = self.getTime();\n const t2 = that.getTime();\n return t1 === t2 || Number.isNaN(t1) && Number.isNaN(t2);\n } else if (self instanceof URL && that instanceof URL) {\n return self.href === that.href;\n }\n }\n if (structuralRegionState.enabled) {\n if (Array.isArray(self) && Array.isArray(that)) {\n return self.length === that.length && self.every((v, i) => compareBoth(v, that[i]));\n }\n if (Object.getPrototypeOf(self) === Object.prototype && Object.getPrototypeOf(self) === Object.prototype) {\n const keysSelf = Object.keys(self);\n const keysThat = Object.keys(that);\n if (keysSelf.length === keysThat.length) {\n for (const key of keysSelf) {\n // @ts-expect-error\n if (!(key in that && compareBoth(self[key], that[key]))) {\n return structuralRegionState.tester ? structuralRegionState.tester(self, that) : false;\n }\n }\n return true;\n }\n }\n return structuralRegionState.tester ? structuralRegionState.tester(self, that) : false;\n }\n }\n return structuralRegionState.enabled && structuralRegionState.tester ? structuralRegionState.tester(self, that) : false;\n}\n/**\n * @since 2.0.0\n * @category guards\n */\nexport const isEqual = u => hasProperty(u, symbol);\n/**\n * @since 2.0.0\n * @category instances\n */\nexport const equivalence = () => equals;\n//# sourceMappingURL=Equal.js.map","import { stringify } from '../utils/stringify.js';\nimport { BaseError } from './base.js';\nimport { getUrl } from './utils.js';\nexport class HttpRequestError extends BaseError {\n constructor({ body, cause, details, headers, status, url, }) {\n super('HTTP request failed.', {\n cause,\n details,\n metaMessages: [\n status && `Status: ${status}`,\n `URL: ${getUrl(url)}`,\n body && `Request body: ${stringify(body)}`,\n ].filter(Boolean),\n name: 'HttpRequestError',\n });\n Object.defineProperty(this, \"body\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"headers\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"status\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"url\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.body = body;\n this.headers = headers;\n this.status = status;\n this.url = url;\n }\n}\nexport class WebSocketRequestError extends BaseError {\n constructor({ body, cause, details, url, }) {\n super('WebSocket request failed.', {\n cause,\n details,\n metaMessages: [\n `URL: ${getUrl(url)}`,\n body && `Request body: ${stringify(body)}`,\n ].filter(Boolean),\n name: 'WebSocketRequestError',\n });\n Object.defineProperty(this, \"url\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.url = url;\n }\n}\nexport class RpcRequestError extends BaseError {\n constructor({ body, error, url, }) {\n super('RPC Request failed.', {\n cause: error,\n details: error.message,\n metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`],\n name: 'RpcRequestError',\n });\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"url\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.code = error.code;\n this.data = error.data;\n this.url = url;\n }\n}\nexport class SocketClosedError extends BaseError {\n constructor({ url, } = {}) {\n super('The socket has been closed.', {\n metaMessages: [url && `URL: ${getUrl(url)}`].filter(Boolean),\n name: 'SocketClosedError',\n });\n Object.defineProperty(this, \"url\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.url = url;\n }\n}\nexport class TimeoutError extends BaseError {\n constructor({ body, url, }) {\n super('The request took too long to respond.', {\n details: 'The request timed out.',\n metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`],\n name: 'TimeoutError',\n });\n Object.defineProperty(this, \"url\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.url = url;\n }\n}\n//# sourceMappingURL=request.js.map","import { solidityError, solidityPanic } from '../../constants/solidity.js';\nimport { AbiDecodingZeroDataError, AbiErrorSignatureNotFoundError, } from '../../errors/abi.js';\nimport { slice } from '../data/slice.js';\nimport { toFunctionSelector, } from '../hash/toFunctionSelector.js';\nimport { decodeAbiParameters, } from './decodeAbiParameters.js';\nimport { formatAbiItem } from './formatAbiItem.js';\nexport function decodeErrorResult(parameters) {\n const { abi, data } = parameters;\n const signature = slice(data, 0, 4);\n if (signature === '0x')\n throw new AbiDecodingZeroDataError();\n const abi_ = [...(abi || []), solidityError, solidityPanic];\n const abiItem = abi_.find((x) => x.type === 'error' && signature === toFunctionSelector(formatAbiItem(x)));\n if (!abiItem)\n throw new AbiErrorSignatureNotFoundError(signature, {\n docsPath: '/docs/contract/decodeErrorResult',\n });\n return {\n abiItem,\n args: 'inputs' in abiItem && abiItem.inputs && abiItem.inputs.length > 0\n ? decodeAbiParameters(abiItem.inputs, slice(data, 4))\n : undefined,\n errorName: abiItem.name,\n };\n}\n//# sourceMappingURL=decodeErrorResult.js.map","var Reporter = require('../base').Reporter;\nvar EncoderBuffer = require('../base').EncoderBuffer;\nvar DecoderBuffer = require('../base').DecoderBuffer;\nvar assert = require('minimalistic-assert');\n\n// Supported tags\nvar tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nvar methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nvar overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent) {\n var state = {};\n this._baseState = state;\n\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nvar stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n var state = this._baseState;\n var cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n var res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n var state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n var clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n var state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n var state = this._baseState;\n\n // Filter children and args\n var children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n var res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n var value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n var state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n var state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n var state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n var state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n var state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n var state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n var state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n var state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n var result = state['default'];\n var present = true;\n\n var prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n var tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n var save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n var prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n var explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n var start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n if (state.any)\n var save = input.save();\n var body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any)\n result = result;\n else if (state.choice === null)\n result = this._decodeGeneric(state.tag, input, options);\n else\n result = this._decodeChoice(input, options);\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n var data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n var state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n var state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n var state = this._baseState;\n var result = null;\n var match = false;\n\n Object.keys(state.choice).some(function(key) {\n var save = input.save();\n var node = state.choice[key];\n try {\n var value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n var state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n var result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n var result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default']\n else\n return;\n }\n\n // Encode children first\n var content = null;\n var primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n var prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n var res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n var child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n var state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n var result;\n if (!state.any && state.choice === null) {\n var tag = state.implicit !== null ? state.implicit : state.tag;\n var cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n var state = this._baseState;\n\n var node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n var state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(str);\n};\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","/** @internal */\nexport const OP_STATE_PENDING = \"Pending\";\n/** @internal */\nexport const OP_STATE_DONE = \"Done\";\n//# sourceMappingURL=deferred.js.map","import * as internal from \"./internal/ref.js\";\n/**\n * @since 2.0.0\n * @category symbols\n */\nexport const RefTypeId = internal.RefTypeId;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const make = internal.make;\n/**\n * @since 2.0.0\n * @category getters\n */\nexport const get = internal.get;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const getAndSet = internal.getAndSet;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const getAndUpdate = internal.getAndUpdate;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const getAndUpdateSome = internal.getAndUpdateSome;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const modify = internal.modify;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const modifySome = internal.modifySome;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const set = internal.set;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const setAndGet = internal.setAndGet;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const update = internal.update;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const updateAndGet = internal.updateAndGet;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const updateSome = internal.updateSome;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const updateSomeAndGet = internal.updateSomeAndGet;\n/**\n * @since 2.0.0\n * @category unsafe\n */\nexport const unsafeMake = internal.unsafeMake;\n//# sourceMappingURL=Ref.js.map","import { DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';\nimport { InvalidInputRpcError } from '../../errors/rpc.js';\nimport { decodeEventLog } from '../../utils/abi/decodeEventLog.js';\nimport { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { formatLog } from '../../utils/formatters/log.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { createContractEventFilter } from './createContractEventFilter.js';\nimport { getBlockNumber } from './getBlockNumber.js';\nimport { getContractEvents, } from './getContractEvents.js';\nimport { getFilterChanges } from './getFilterChanges.js';\nimport { uninstallFilter } from './uninstallFilter.js';\n/**\n * Watches and returns emitted contract event logs.\n *\n * - Docs: https://viem.sh/docs/contract/watchContractEvent\n *\n * This Action will batch up all the event logs found within the [`pollingInterval`](https://viem.sh/docs/contract/watchContractEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/contract/watchContractEvent#onLogs).\n *\n * `watchContractEvent` will attempt to create an [Event Filter](https://viem.sh/docs/contract/createContractEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchContractEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchContractEventParameters}\n * @returns A function that can be invoked to stop watching for new event logs. {@link WatchContractEventReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchContractEvent } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = watchContractEvent(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['event Transfer(address indexed from, address indexed to, uint256 value)']),\n * eventName: 'Transfer',\n * args: { from: '0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b' },\n * onLogs: (logs) => console.log(logs),\n * })\n */\nexport function watchContractEvent(client, parameters) {\n const { abi, address, args, batch = true, eventName, fromBlock, onError, onLogs, poll: poll_, pollingInterval = client.pollingInterval, strict: strict_, } = parameters;\n const enablePolling = (() => {\n if (typeof poll_ !== 'undefined')\n return poll_;\n if (typeof fromBlock === 'bigint')\n return true;\n if (client.transport.type === 'webSocket' ||\n client.transport.type === 'ipc')\n return false;\n if (client.transport.type === 'fallback' &&\n (client.transport.transports[0].config.type === 'webSocket' ||\n client.transport.transports[0].config.type === 'ipc'))\n return false;\n return true;\n })();\n const pollContractEvent = () => {\n const strict = strict_ ?? false;\n const observerId = stringify([\n 'watchContractEvent',\n address,\n args,\n batch,\n client.uid,\n eventName,\n pollingInterval,\n strict,\n fromBlock,\n ]);\n return observe(observerId, { onLogs, onError }, (emit) => {\n let previousBlockNumber;\n if (fromBlock !== undefined)\n previousBlockNumber = fromBlock - 1n;\n let filter;\n let initialized = false;\n const unwatch = poll(async () => {\n if (!initialized) {\n try {\n filter = (await getAction(client, createContractEventFilter, 'createContractEventFilter')({\n abi,\n address,\n args: args,\n eventName: eventName,\n strict: strict,\n fromBlock,\n }));\n }\n catch { }\n initialized = true;\n return;\n }\n try {\n let logs;\n if (filter) {\n logs = await getAction(client, getFilterChanges, 'getFilterChanges')({ filter });\n }\n else {\n // If the filter doesn't exist, we will fall back to use `getLogs`.\n // The fall back exists because some RPC Providers do not support filters.\n // Fetch the block number to use for `getLogs`.\n const blockNumber = await getAction(client, getBlockNumber, 'getBlockNumber')({});\n // If the block number has changed, we will need to fetch the logs.\n // If the block number doesn't exist, we are yet to reach the first poll interval,\n // so do not emit any logs.\n if (previousBlockNumber && previousBlockNumber < blockNumber) {\n logs = await getAction(client, getContractEvents, 'getContractEvents')({\n abi,\n address,\n args,\n eventName,\n fromBlock: previousBlockNumber + 1n,\n toBlock: blockNumber,\n strict,\n });\n }\n else {\n logs = [];\n }\n previousBlockNumber = blockNumber;\n }\n if (logs.length === 0)\n return;\n if (batch)\n emit.onLogs(logs);\n else\n for (const log of logs)\n emit.onLogs([log]);\n }\n catch (err) {\n // If a filter has been set and gets uninstalled, providers will throw an InvalidInput error.\n // Reinitialize the filter when this occurs\n if (filter && err instanceof InvalidInputRpcError)\n initialized = false;\n emit.onError?.(err);\n }\n }, {\n emitOnBegin: true,\n interval: pollingInterval,\n });\n return async () => {\n if (filter)\n await getAction(client, uninstallFilter, 'uninstallFilter')({ filter });\n unwatch();\n };\n });\n };\n const subscribeContractEvent = () => {\n const strict = strict_ ?? false;\n const observerId = stringify([\n 'watchContractEvent',\n address,\n args,\n batch,\n client.uid,\n eventName,\n pollingInterval,\n strict,\n ]);\n let active = true;\n let unsubscribe = () => (active = false);\n return observe(observerId, { onLogs, onError }, (emit) => {\n ;\n (async () => {\n try {\n const transport = (() => {\n if (client.transport.type === 'fallback') {\n const transport = client.transport.transports.find((transport) => transport.config.type === 'webSocket' ||\n transport.config.type === 'ipc');\n if (!transport)\n return client.transport;\n return transport.value;\n }\n return client.transport;\n })();\n const topics = eventName\n ? encodeEventTopics({\n abi: abi,\n eventName: eventName,\n args,\n })\n : [];\n const { unsubscribe: unsubscribe_ } = await transport.subscribe({\n params: ['logs', { address, topics }],\n onData(data) {\n if (!active)\n return;\n const log = data.result;\n try {\n const { eventName, args } = decodeEventLog({\n abi: abi,\n data: log.data,\n topics: log.topics,\n strict: strict_,\n });\n const formatted = formatLog(log, {\n args,\n eventName: eventName,\n });\n emit.onLogs([formatted]);\n }\n catch (err) {\n let eventName;\n let isUnnamed;\n if (err instanceof DecodeLogDataMismatch ||\n err instanceof DecodeLogTopicsMismatch) {\n // If strict mode is on, and log data/topics do not match event definition, skip.\n if (strict_)\n return;\n eventName = err.abiItem.name;\n isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));\n }\n // Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).\n const formatted = formatLog(log, {\n args: isUnnamed ? [] : {},\n eventName,\n });\n emit.onLogs([formatted]);\n }\n },\n onError(error) {\n emit.onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return () => unsubscribe();\n });\n };\n return enablePolling ? pollContractEvent() : subscribeContractEvent();\n}\n//# sourceMappingURL=watchContractEvent.js.map","/*!\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\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","import { hashSignature } from './hashSignature.js';\nimport { toSignature } from './toSignature.js';\n/**\n * Returns the hash (of the function/event signature) for a given event or function definition.\n */\nexport function toSignatureHash(fn) {\n return hashSignature(toSignature(fn));\n}\n//# sourceMappingURL=toSignatureHash.js.map","import { toBytes } from '../encoding/toBytes.js';\nimport { keccak256 } from './keccak256.js';\nconst hash = (value) => keccak256(toBytes(value));\nexport function hashSignature(sig) {\n return hash(sig);\n}\n//# sourceMappingURL=hashSignature.js.map","import { BaseError } from '../../errors/base.js';\nexport function normalizeSignature(signature) {\n let active = true;\n let current = '';\n let level = 0;\n let result = '';\n let valid = false;\n for (let i = 0; i < signature.length; i++) {\n const char = signature[i];\n // If the character is a separator, we want to reactivate.\n if (['(', ')', ','].includes(char))\n active = true;\n // If the character is a \"level\" token, we want to increment/decrement.\n if (char === '(')\n level++;\n if (char === ')')\n level--;\n // If we aren't active, we don't want to mutate the result.\n if (!active)\n continue;\n // If level === 0, we are at the definition level.\n if (level === 0) {\n if (char === ' ' && ['event', 'function', ''].includes(result))\n result = '';\n else {\n result += char;\n // If we are at the end of the definition, we must be finished.\n if (char === ')') {\n valid = true;\n break;\n }\n }\n continue;\n }\n // Ignore spaces\n if (char === ' ') {\n // If the previous character is a separator, and the current section isn't empty, we want to deactivate.\n if (signature[i - 1] !== ',' && current !== ',' && current !== ',(') {\n current = '';\n active = false;\n }\n continue;\n }\n result += char;\n current += char;\n }\n if (!valid)\n throw new BaseError('Unable to normalize signature.');\n return result;\n}\n//# sourceMappingURL=normalizeSignature.js.map","import { formatAbiItem } from 'abitype';\nimport { normalizeSignature, } from './normalizeSignature.js';\n/**\n * Returns the signature for a given function or event definition.\n *\n * @example\n * const signature = toSignature('function ownerOf(uint256 tokenId)')\n * // 'ownerOf(uint256)'\n *\n * @example\n * const signature_3 = toSignature({\n * name: 'ownerOf',\n * type: 'function',\n * inputs: [{ name: 'tokenId', type: 'uint256' }],\n * outputs: [],\n * stateMutability: 'view',\n * })\n * // 'ownerOf(uint256)'\n */\nexport const toSignature = (def) => {\n const def_ = (() => {\n if (typeof def === 'string')\n return def;\n return formatAbiItem(def);\n })();\n return normalizeSignature(def_);\n};\n//# sourceMappingURL=toSignature.js.map","import { hexToNumber, } from '../../utils/encoding/fromHex.js';\n/**\n * Returns the chain ID associated with the current network.\n *\n * - Docs: https://viem.sh/docs/actions/public/getChainId\n * - JSON-RPC Methods: [`eth_chainId`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_chainid)\n *\n * @param client - Client to use\n * @returns The current chain ID. {@link GetChainIdReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getChainId } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const chainId = await getChainId(client)\n * // 1\n */\nexport async function getChainId(client) {\n const chainIdHex = await client.request({\n method: 'eth_chainId',\n }, { dedupe: true });\n return hexToNumber(chainIdHex);\n}\n//# sourceMappingURL=getChainId.js.map","export function parseAccount(account) {\n if (typeof account === 'string')\n return { address: account, type: 'json-rpc' };\n return account;\n}\n//# sourceMappingURL=parseAccount.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\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 this.length = num === 0 ? 1 : this.length;\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","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","/**\n * # HashSet\n *\n * An immutable `HashSet` provides a collection of unique values with efficient\n * lookup, insertion and removal. Once created, a `HashSet` cannot be modified;\n * any operation that would alter the set instead returns a new `HashSet` with\n * the changes. This immutability offers benefits like predictable state\n * management and easier reasoning about your code.\n *\n * ## What Problem Does It Solve?\n *\n * `HashSet` solves the problem of maintaining an unsorted collection where each\n * value appears exactly once, with fast operations for checking membership and\n * adding/removing values.\n *\n * ## When to Use\n *\n * Use `HashSet` when you need:\n *\n * - A collection with no duplicate values\n * - Efficient membership testing (**`O(1)`** average complexity)\n * - Set operations like union, intersection, and difference\n * - An immutable data structure that preserves functional programming patterns\n *\n * ## Advanced Features\n *\n * HashSet provides operations for:\n *\n * - Transforming sets with map and flatMap\n * - Filtering elements with filter\n * - Combining sets with union, intersection and difference\n * - Performance optimizations via mutable operations in controlled contexts\n *\n * ## Performance Characteristics\n *\n * - **Lookup** operations ({@link module:HashSet.has}): **`O(1)`** average time\n * complexity\n * - **Insertion** operations ({@link module:HashSet.add}): **`O(1)`** average time\n * complexity\n * - **Removal** operations ({@link module:HashSet.remove}): **`O(1)`** average\n * time complexity\n * - **Set** operations ({@link module:HashSet.union},\n * {@link module:HashSet.intersection}): **`O(n)`** where n is the size of the\n * smaller set\n * - **Iteration**: **`O(n)`** where n is the size of the set\n *\n * The HashSet data structure implements the following traits:\n *\n * - {@link Iterable}: allows iterating over the values in the set\n * - {@link Equal}: allows comparing two sets for value-based equality\n * - {@link Pipeable}: allows chaining operations with the pipe operator\n * - {@link Inspectable}: allows inspecting the contents of the set\n *\n * ## Operations Reference\n *\n * | Category | Operation | Description | Complexity |\n * | ------------ | ----------------------------------- | ------------------------------------------- | ---------- |\n * | constructors | {@link module:HashSet.empty} | Creates an empty HashSet | O(1) |\n * | constructors | {@link module:HashSet.fromIterable} | Creates a HashSet from an iterable | O(n) |\n * | constructors | {@link module:HashSet.make} | Creates a HashSet from multiple values | O(n) |\n * | | | | |\n * | elements | {@link module:HashSet.has} | Checks if a value exists in the set | O(1) avg |\n * | elements | {@link module:HashSet.some} | Checks if any element satisfies a predicate | O(n) |\n * | elements | {@link module:HashSet.every} | Checks if all elements satisfy a predicate | O(n) |\n * | elements | {@link module:HashSet.isSubset} | Checks if a set is a subset of another | O(n) |\n * | | | | |\n * | getters | {@link module:HashSet.values} | Gets an iterator of all values | O(1) |\n * | getters | {@link module:HashSet.toValues} | Gets an array of all values | O(n) |\n * | getters | {@link module:HashSet.size} | Gets the number of elements | O(1) |\n * | | | | |\n * | mutations | {@link module:HashSet.add} | Adds a value to the set | O(1) avg |\n * | mutations | {@link module:HashSet.remove} | Removes a value from the set | O(1) avg |\n * | mutations | {@link module:HashSet.toggle} | Toggles a value's presence | O(1) avg |\n * | | | | |\n * | operations | {@link module:HashSet.difference} | Computes set difference (A - B) | O(n) |\n * | operations | {@link module:HashSet.intersection} | Computes set intersection (A ∩ B) | O(n) |\n * | operations | {@link module:HashSet.union} | Computes set union (A ∪ B) | O(n) |\n * | | | | |\n * | mapping | {@link module:HashSet.map} | Transforms each element | O(n) |\n * | | | | |\n * | sequencing | {@link module:HashSet.flatMap} | Transforms and flattens elements | O(n) |\n * | | | | |\n * | traversing | {@link module:HashSet.forEach} | Applies a function to each element | O(n) |\n * | | | | |\n * | folding | {@link module:HashSet.reduce} | Reduces the set to a single value | O(n) |\n * | | | | |\n * | filtering | {@link module:HashSet.filter} | Keeps elements that satisfy a predicate | O(n) |\n * | | | | |\n * | partitioning | {@link module:HashSet.partition} | Splits into two sets by a predicate | O(n) |\n *\n * ## Notes\n *\n * ### Composability with the Effect Ecosystem:\n *\n * This `HashSet` is designed to work seamlessly within the Effect ecosystem. It\n * implements the {@link Iterable}, {@link Equal}, {@link Pipeable}, and\n * {@link Inspectable} traits from Effect. This ensures compatibility with other\n * Effect data structures and functionalities. For example, you can easily use\n * Effect's `pipe` method to chain operations on the `HashSet`.\n *\n * **Equality of Elements with Effect's {@link Equal `Equal`} Trait:**\n *\n * This `HashSet` relies on Effect's {@link Equal} trait to determine the\n * uniqueness of elements within the set. The way equality is checked depends on\n * the type of the elements:\n *\n * - **Primitive Values:** For primitive JavaScript values like strings, numbers,\n * booleans, `null`, and `undefined`, equality is determined by their value\n * (similar to the `===` operator).\n * - **Objects and Custom Types:** For objects and other custom types, equality is\n * determined by whether those types implement the {@link Equal} interface\n * themselves. If an element type implements `Equal`, the `HashSet` will\n * delegate to that implementation to perform the equality check. This allows\n * you to define custom logic for determining when two instances of your\n * objects should be considered equal based on their properties, rather than\n * just their object identity.\n *\n * ```ts\n * import { Equal, Hash, HashSet } from \"effect\"\n *\n * class Person implements Equal.Equal {\n * constructor(\n * readonly id: number, // Unique identifier\n * readonly name: string,\n * readonly age: number\n * ) {}\n *\n * // Define equality based on id, name, and age\n * [Equal.symbol](that: Equal.Equal): boolean {\n * if (that instanceof Person) {\n * return (\n * Equal.equals(this.id, that.id) &&\n * Equal.equals(this.name, that.name) &&\n * Equal.equals(this.age, that.age)\n * )\n * }\n * return false\n * }\n *\n * // Generate a hash code based on the unique id\n * [Hash.symbol](): number {\n * return Hash.hash(this.id)\n * }\n * }\n *\n * // Creating a HashSet with objects that implement the Equal interface\n * const set = HashSet.empty().pipe(\n * HashSet.add(new Person(1, \"Alice\", 30)),\n * HashSet.add(new Person(1, \"Alice\", 30))\n * )\n *\n * // HashSet recognizes them as equal, so only one element is stored\n * console.log(HashSet.size(set))\n * // Output: 1\n * ```\n *\n * **Simplifying Equality and Hashing with `Data` and `Schema`:**\n *\n * Effect's {@link Data} and {@link Schema `Schema.Data`} modules offer powerful\n * ways to automatically handle the implementation of both the {@link Equal} and\n * {@link Hash} traits for your custom data structures.\n *\n * - **`Data` Module:** By using constructors like `Data.struct`, `Data.tuple`,\n * `Data.array`, or `Data.case` to define your data types, Effect\n * automatically generates the necessary implementations for value-based\n * equality and consistent hashing. This significantly reduces boilerplate and\n * ensures correctness.\n *\n * ```ts\n * import { HashSet, Data, Equal } from \"effect\"\n * import assert from \"node:assert/strict\"\n *\n * // Data.* implements the `Equal` traits for us\n * const person1 = Data.struct({ id: 1, name: \"Alice\", age: 30 })\n * const person2 = Data.struct({ id: 1, name: \"Alice\", age: 30 })\n *\n * assert(Equal.equals(person1, person2))\n *\n * const set = HashSet.empty().pipe(\n * HashSet.add(person1),\n * HashSet.add(person2)\n * )\n *\n * // HashSet recognizes them as equal, so only one element is stored\n * console.log(HashSet.size(set)) // Output: 1\n * ```\n *\n * - **`Schema` Module:** When defining data schemas using the {@link Schema}\n * module, you can use `Schema.Data` to automatically include the `Equal` and\n * `Hash` traits in the decoded objects. This is particularly important when\n * working with `HashSet`. **For decoded objects to be correctly recognized as\n * equal within a `HashSet`, ensure that the schema for those objects is\n * defined using `Schema.Data`.**\n *\n * ```ts\n * import { Equal, HashSet, Schema } from \"effect\"\n * import assert from \"node:assert/strict\"\n *\n * // Schema.Data implements the `Equal` traits for us\n * const PersonSchema = Schema.Data(\n * Schema.Struct({\n * id: Schema.Number,\n * name: Schema.String,\n * age: Schema.Number\n * })\n * )\n *\n * const Person = Schema.decode(PersonSchema)\n *\n * const person1 = Person({ id: 1, name: \"Alice\", age: 30 })\n * const person2 = Person({ id: 1, name: \"Alice\", age: 30 })\n *\n * assert(Equal.equals(person1, person2)) // Output: true\n *\n * const set = HashSet.empty().pipe(\n * HashSet.add(person1),\n * HashSet.add(person2)\n * )\n *\n * // HashSet thanks to Schema.Data implementation of the `Equal` trait, recognizes the two Person as equal, so only one element is stored\n * console.log(HashSet.size(set)) // Output: 1\n * ```\n *\n * ### Interoperability with the JavaScript Runtime:\n *\n * To interoperate with the regular JavaScript runtime, Effect's `HashSet`\n * provides methods to access its elements in formats readily usable by\n * JavaScript APIs: {@link values `HashSet.values`},\n * {@link toValues `HashSet.toValues`}\n *\n * ```ts\n * import { HashSet } from \"effect\"\n *\n * const hashSet: HashSet.HashSet = HashSet.make(1, 2, 3)\n *\n * // Using HashSet.values to convert HashSet.HashSet to IterableIterator\n * const iterable: IterableIterator = HashSet.values(hashSet)\n *\n * console.log(...iterable) // Logs: 1 2 3\n *\n * // Using HashSet.toValues to convert HashSet.HashSet to Array\n * const array: Array = HashSet.toValues(hashSet)\n *\n * console.log(array) // Logs: [ 1, 2, 3 ]\n * ```\n *\n * Be mindful of performance implications (both time and space complexity) when\n * frequently converting between Effect's immutable HashSet and mutable\n * JavaScript data structures, especially for large collections.\n *\n * @module HashSet\n * @since 2.0.0\n */\nimport * as HS from \"./internal/hashSet.js\";\nconst TypeId = HS.HashSetTypeId;\n/**\n * @memberof HashSet\n * @since 2.0.0\n * @category refinements\n */\nexport const isHashSet = HS.isHashSet;\n/**\n * Creates an empty `HashSet`.\n *\n * Time complexity: **`O(1)`**\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category constructors\n * @example\n *\n * ```ts\n * import { HashSet, pipe } from \"effect\"\n *\n * console.log(\n * pipe(\n * // Provide a type argument to create a HashSet of a specific type\n * HashSet.empty(),\n * HashSet.add(1),\n * HashSet.add(1), // Notice the duplicate\n * HashSet.add(2),\n * HashSet.toValues\n * )\n * ) // Output: [1, 2]\n * ```\n *\n * @see Other `HashSet` constructors are {@link module:HashSet.make} {@link module:HashSet.fromIterable}\n */\nexport const empty = HS.empty;\n/**\n * Creates a new `HashSet` from an iterable collection of values.\n *\n * Time complexity: **`O(n)`** where n is the number of elements in the iterable\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category constructors\n * @example\n *\n * ```ts\n * // Creating a HashSet from an Array\n * import { HashSet, pipe } from \"effect\"\n *\n * console.log(\n * pipe(\n * [1, 2, 3, 4, 5, 1, 2, 3], // Array is an Iterable; Note the duplicates.\n * HashSet.fromIterable,\n * HashSet.toValues\n * )\n * ) // Output: [1, 2, 3, 4, 5]\n * ```\n *\n * @example\n *\n * ```ts\n * // Creating a HashSet from a Set\n * import { HashSet, pipe } from \"effect\"\n *\n * console.log(\n * pipe(\n * new Set([\"apple\", \"banana\", \"orange\", \"apple\"]), // Set is an Iterable\n * HashSet.fromIterable,\n * HashSet.toValues\n * )\n * ) // Output: [\"apple\", \"banana\", \"orange\"]\n * ```\n *\n * @example\n *\n * ```ts\n * // Creating a HashSet from a Generator\n * import { HashSet } from \"effect\"\n *\n * // Generator functions return iterables\n * function* fibonacci(n: number): Generator {\n * let [a, b] = [0, 1]\n * for (let i = 0; i < n; i++) {\n * yield a\n * ;[a, b] = [b, a + b]\n * }\n * }\n *\n * // Create a HashSet from the first 10 Fibonacci numbers\n * const fibonacciSet = HashSet.fromIterable(fibonacci(10))\n *\n * console.log(HashSet.toValues(fibonacciSet))\n * // Outputs: [0, 1, 2, 3, 5, 8, 13, 21, 34] but in unsorted order\n * ```\n *\n * @example\n *\n * ```ts\n * // Creating a HashSet from another HashSet\n * import { HashSet, pipe } from \"effect\"\n *\n * console.log(\n * pipe(\n * // since HashSet implements the Iterable interface, we can use it to create a new HashSet\n * HashSet.make(1, 2, 3, 4),\n * HashSet.fromIterable,\n * HashSet.toValues // turns the HashSet back into an array\n * )\n * ) // Output: [1, 2, 3, 4]\n * ```\n *\n * @example\n *\n * ```ts\n * // Creating a HashSet from other Effect's data structures like Chunk\n * import { Chunk, HashSet, pipe } from \"effect\"\n *\n * console.log(\n * pipe(\n * Chunk.make(1, 2, 3, 4), // Iterable\n * HashSet.fromIterable,\n * HashSet.toValues // turns the HashSet back into an array\n * )\n * ) // Outputs: [1, 2, 3, 4]\n * ```\n *\n * @see Other `HashSet` constructors are {@link module:HashSet.empty} {@link module:HashSet.make}\n */\nexport const fromIterable = HS.fromIterable;\n/**\n * Construct a new `HashSet` from a variable number of values.\n *\n * Time complexity: **`O(n)`** where n is the number of elements\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category constructors\n * @example\n *\n * ```ts\n * import { Equal, Hash, HashSet, pipe } from \"effect\"\n * import assert from \"node:assert/strict\"\n *\n * class Character implements Equal.Equal {\n * readonly name: string\n * readonly trait: string\n *\n * constructor(name: string, trait: string) {\n * this.name = name\n * this.trait = trait\n * }\n *\n * // Define equality based on name, and trait\n * [Equal.symbol](that: Equal.Equal): boolean {\n * if (that instanceof Character) {\n * return (\n * Equal.equals(this.name, that.name) &&\n * Equal.equals(this.trait, that.trait)\n * )\n * }\n * return false\n * }\n *\n * // Generate a hash code based on the sum of the character's name and trait\n * [Hash.symbol](): number {\n * return Hash.hash(this.name + this.trait)\n * }\n *\n * static readonly of = (name: string, trait: string): Character => {\n * return new Character(name, trait)\n * }\n * }\n *\n * assert.strictEqual(\n * Equal.equals(\n * HashSet.make(\n * Character.of(\"Alice\", \"Curious\"),\n * Character.of(\"Alice\", \"Curious\"),\n * Character.of(\"White Rabbit\", \"Always late\"),\n * Character.of(\"Mad Hatter\", \"Tea enthusiast\")\n * ),\n * // Is the same as adding each character to an empty set\n * pipe(\n * HashSet.empty(),\n * HashSet.add(Character.of(\"Alice\", \"Curious\")),\n * HashSet.add(Character.of(\"Alice\", \"Curious\")), // Alice tried to attend twice!\n * HashSet.add(Character.of(\"White Rabbit\", \"Always late\")),\n * HashSet.add(Character.of(\"Mad Hatter\", \"Tea enthusiast\"))\n * )\n * ),\n * true,\n * \"`HashSet.make` and `HashSet.empty() + HashSet.add()` should be equal\"\n * )\n *\n * assert.strictEqual(\n * Equal.equals(\n * HashSet.make(\n * Character.of(\"Alice\", \"Curious\"),\n * Character.of(\"Alice\", \"Curious\"),\n * Character.of(\"White Rabbit\", \"Always late\"),\n * Character.of(\"Mad Hatter\", \"Tea enthusiast\")\n * ),\n * HashSet.fromIterable([\n * Character.of(\"Alice\", \"Curious\"),\n * Character.of(\"Alice\", \"Curious\"),\n * Character.of(\"White Rabbit\", \"Always late\"),\n * Character.of(\"Mad Hatter\", \"Tea enthusiast\")\n * ])\n * ),\n * true,\n * \"`HashSet.make` and `HashSet.fromIterable` should be equal\"\n * )\n * ```\n *\n * @see Other `HashSet` constructors are {@link module:HashSet.fromIterable} {@link module:HashSet.empty}\n */\nexport const make = HS.make;\n/**\n * Checks if the specified value exists in the `HashSet`.\n *\n * Time complexity: **`O(1)`** average\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category elements\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(HashSet.make(0, 1, 2), HashSet.has(3)) // false\n *\n * // or piped with the pipe function\n * HashSet.make(0, 1, 2).pipe(HashSet.has(3)) // false\n *\n * // or with `data-first` API\n * HashSet.has(HashSet.make(0, 1, 2), 3) // false\n * ```\n *\n * @returns A `boolean` signaling the presence of the value in the HashSet\n * @see Other `HashSet` elements are {@link module:HashSet.some} {@link module:HashSet.every} {@link module:HashSet.isSubset}\n */\nexport const has = HS.has;\n/**\n * Check if a predicate holds true for some `HashSet` element.\n *\n * Time complexity: **`O(n)`** where n is the number of elements in the set\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category elements\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * const set: HashSet.HashSet = HashSet.make(0, 1, 2)\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(\n * set,\n * HashSet.some((n) => n > 0)\n * ) // true\n *\n * // or piped with the pipe function\n * set.pipe(HashSet.some((n) => n > 0)) // true\n *\n * // or with `data-first` API\n * HashSet.some(set, (n) => n > 0) // true\n * ```\n *\n * @see Other `HashSet` elements are {@link module:HashSet.has} {@link module:HashSet.every} {@link module:HashSet.isSubset}\n */\nexport const some = HS.some;\n/**\n * Check if a predicate holds true for every `HashSet` element.\n *\n * Time complexity is **`O(n)`** as it needs to traverse the whole HashSet\n * collection\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category elements\n * @example\n *\n * ```ts\n * // Syntax with Refinement\n * import { HashSet, pipe, Predicate } from \"effect\"\n *\n * const numberOrString = HashSet.make(1, \"1\", \"one\", \"uno\")\n *\n * // with `data-last`, a.k.a. `pipeable` API and `Refinement`\n * pipe(\n * numberOrString, // HashSet.HashSet\n * HashSet.every(Predicate.isString)\n * ) // HashSet.HashSet\n *\n * // or piped with the pipe function and `Refinement`\n * numberOrString // HashSet.HashSet\n * .pipe(HashSet.every(Predicate.isString)) // HashSet.HashSet\n *\n * // or with `data-first` API and `Refinement`\n * HashSet.every(\n * numberOrString, // HashSet.HashSet\n * Predicate.isString\n * ) // HashSet.HashSet\n * ```\n *\n * @example\n *\n * ```ts\n * // Syntax with Predicate\n * import { HashSet, pipe } from \"effect\"\n *\n * const set = HashSet.make(1, 2, 3)\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(\n * set,\n * HashSet.every((n) => n >= 0)\n * ) // true\n *\n * // or piped with the pipe function\n * set.pipe(HashSet.every((n) => n >= 0)) // true\n *\n * // or with `data-first` API\n * HashSet.every(set, (n) => n >= 0) // true\n * ```\n *\n * @returns A boolean once it has evaluated that whole collection fulfill the\n * Predicate function\n * @see Other `HashSet` elements are {@link module:HashSet.has} {@link module:HashSet.some} {@link module:HashSet.isSubset}\n */\nexport const every = HS.every;\n/**\n * Returns `true` if and only if every element in the this `HashSet` is an\n * element of the second set,\n *\n * **NOTE**: the hash and equal of both sets must be the same.\n *\n * Time complexity analysis is of **`O(n)`**\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category elements\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * const set1 = HashSet.make(0, 1)\n * const set2 = HashSet.make(1, 2)\n * const set3 = HashSet.make(0, 1, 2)\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(set1, HashSet.isSubset(set2)) // false\n * pipe(set1, HashSet.isSubset(set3)) // true\n *\n * // or piped with the pipe function\n * set1.pipe(HashSet.isSubset(set2)) // false\n * set1.pipe(HashSet.isSubset(set3)) // true\n *\n * // or with `data-first` API\n * HashSet.isSubset(set1, set2) // false\n * HashSet.isSubset(set1, set3) // true)\n * ```\n *\n * @see Other `HashSet` elements are {@link module:HashSet.has} {@link module:HashSet.some} {@link module:HashSet.every}\n */\nexport const isSubset = HS.isSubset;\n/**\n * Returns an `IterableIterator` of the values in the `HashSet`.\n *\n * Time complexity: **`O(1)`**\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category getters\n * @example\n *\n * ```ts\n * import { HashSet, pipe } from \"effect\"\n *\n * const numberIterable = pipe(\n * HashSet.make(0, 1, 1, 2), // HashSet.HashSet\n * HashSet.values // takes an HashSet and returns an IterableIterator\n * )\n *\n * for (const number of numberIterable) {\n * console.log(number) // it will logs: 0, 1, 2\n * }\n * ```\n *\n * @see Other `HashSet` getters are {@link module:HashSet.toValues} {@link module:HashSet.size}\n */\nexport const values = HS.values;\n/**\n * Returns an `Array` of the values within the `HashSet`.\n *\n * Time complexity: **`O(n)`** where n is the number of elements in the set\n *\n * @memberof HashSet\n * @since 3.13.0\n * @category getters\n * @example\n *\n * ```ts\n * import { HashSet, pipe } from \"effect\"\n * import { deepStrictEqual } from \"node:assert/strict\"\n *\n * deepStrictEqual(\n * pipe(\n * HashSet.make(0, 1, 1, 2), // HashSet\n * HashSet.toValues // takes an HashSet and returns an Array\n * ),\n * Array.of(0, 1, 2)\n * )\n * ```\n *\n * @see Other `HashSet` getters are {@link module:HashSet.values} {@link module:HashSet.size}\n */\nexport const toValues = self => Array.from(values(self));\n/**\n * Calculates the number of values in the `HashSet`.\n *\n * Time complexity: **`O(1)`**\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category getters\n * @example\n *\n * ```ts\n * import { HashSet, pipe } from \"effect\"\n * import assert from \"node:assert/strict\"\n *\n * assert.deepStrictEqual(pipe(HashSet.empty(), HashSet.size), 0)\n *\n * assert.deepStrictEqual(\n * pipe(HashSet.make(1, 2, 2, 3, 4, 3), HashSet.size),\n * 4\n * )\n * ```\n *\n * @see Other `HashSet` getters are {@link module:HashSet.values} {@link module:HashSet.toValues}\n */\nexport const size = HS.size;\n/**\n * Creates a new mutable version of the `HashSet`\n *\n * When a `HashSet` is mutable, operations like {@link add} and {@link remove}\n * modify the data structure in place instead of creating a new one, which is\n * more efficient when performing multiple operations.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @example\n *\n * ```ts\n * import { HashSet } from \"effect\"\n * import assert from \"node:assert/strict\"\n *\n * const UPPER_BOUND = 10_000\n *\n * const immutableSet = HashSet.empty().pipe(HashSet.add(0))\n *\n * // Create a mutable version of the immutableSet\n * const mutableSet = HashSet.beginMutation(immutableSet)\n *\n * for (let i = 1; i < UPPER_BOUND; i++) {\n * // Operations now modify the set in place instead of creating new instances\n * // This is more efficient when making multiple changes\n * const pointerToMutableSet = HashSet.add(mutableSet, i)\n *\n * // the two sets have the same identity, hence `add` is mutating mutableSet and not returning a new HashSet instance\n * assert(Object.is(mutableSet, pointerToMutableSet))\n * assert.equal(HashSet.has(mutableSet, i), true) // `i` is in the mutableSet\n * assert.equal(HashSet.has(immutableSet, i), false) // `i` is not in the immutableSet\n * }\n *\n * const next = UPPER_BOUND + 1\n * // When done, mark the set as immutable again\n * HashSet.endMutation(mutableSet).pipe(\n * HashSet.add(next) // since this returns a new HashSet, it will not be logged as part of the mutableSet\n * )\n * assert.equal(HashSet.has(mutableSet, next), false)\n *\n * console.log(HashSet.toValues(immutableSet)) // [0]\n * console.log(HashSet.toValues(mutableSet).sort((a, b) => a - b)) // [0, 1, 2, 3, ...rest]\n * ```\n *\n * @see Other `HashSet` mutations are {@link module:HashSet.add} {@link module:HashSet.remove} {@link module:HashSet.toggle} {@link module:HashSet.endMutation} {@link module:HashSet.mutate}\n */\nexport const beginMutation = HS.beginMutation;\n/**\n * Makes the `HashSet` immutable again.\n *\n * After calling `endMutation`, operations like {@link add} and {@link remove}\n * will create new instances of the `HashSet` instead of modifying the existing\n * one.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @example\n *\n * ```ts\n * import { HashSet } from \"effect\"\n * import assert from \"node:assert/strict\"\n *\n * // Create a mutable set\n * const mutableSet = HashSet.beginMutation(HashSet.empty())\n *\n * // Add some elements to the mutable set\n * HashSet.add(mutableSet, 1)\n * HashSet.add(mutableSet, 2)\n *\n * // Before endMutation, operations modify the set in place\n * const sameSet = HashSet.add(mutableSet, 3)\n * assert(Object.is(mutableSet, sameSet)) // true - same object reference\n * assert.deepStrictEqual(HashSet.toValues(mutableSet).sort(), [1, 2, 3])\n *\n * // Make the set immutable again\n * const immutableSet = HashSet.endMutation(mutableSet)\n *\n * // endMutation returns the same set instance, now made immutable\n * assert(Object.is(mutableSet, immutableSet)) // true - same object reference\n *\n * // After endMutation, operations create new instances\n * const newSet = HashSet.add(immutableSet, 4)\n * assert(!Object.is(immutableSet, newSet)) // false - different object references\n *\n * // The original set remains unchanged\n * assert.deepStrictEqual(HashSet.toValues(immutableSet).sort(), [1, 2, 3])\n *\n * // The new set contains the added element\n * assert.deepStrictEqual(HashSet.toValues(newSet).sort(), [1, 2, 3, 4])\n * ```\n *\n * @see Other `HashSet` mutations are {@link module:HashSet.add} {@link module:HashSet.remove} {@link module:HashSet.toggle} {@link module:HashSet.beginMutation} {@link module:HashSet.mutate}\n */\nexport const endMutation = HS.endMutation;\n/**\n * Mutates the `HashSet` within the context of the provided function.\n *\n * You can consider it a functional abstraction on top of the lower-level\n * mutation primitives of {@link module:HashSet.beginMutation} `->` `mutable\n * context` `->` {@link HashSet.endMutation}.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with data-last, a.k.a. pipeable API\n * pipe(\n * HashSet.make(1, 2, 3),\n * HashSet.mutate((set) => {\n * HashSet.add(set, 4)\n * HashSet.remove(set, 1)\n * })\n * )\n *\n * // or piped with the pipe function\n * HashSet.make(1, 2, 3).pipe(\n * HashSet.mutate((set) => {\n * HashSet.add(set, 4)\n * HashSet.remove(set, 1)\n * })\n * )\n *\n * // or with data-first API\n * HashSet.mutate(HashSet.make(1, 2, 3), (set) => {\n * HashSet.add(set, 4)\n * HashSet.remove(set, 1)\n * })\n * ```\n *\n * @see Other `HashSet` mutations are {@link module:HashSet.add} {@link module:HashSet.remove} {@link module:HashSet.toggle} {@link module:HashSet.beginMutation} {@link module:HashSet.endMutation}\n */\nexport const mutate = HS.mutate;\n/**\n * Adds a value to the `HashSet`.\n *\n * Time complexity: **`O(1)`** average\n *\n * @remarks\n * Remember that a `HashSet` is a collection of unique values, so adding a value\n * that already exists in the `HashSet` will not add a duplicate.\n *\n * Remember that HashSet is an immutable data structure, so the `add` function,\n * like all other functions that modify the HashSet, will return a new HashSet\n * with the added value.\n * @memberof HashSet\n * @since 2.0.0\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with data-last, a.k.a. pipeable API\n * pipe(HashSet.empty(), HashSet.add(0), HashSet.add(0))\n *\n * // or piped with the pipe function\n * HashSet.empty().pipe(HashSet.add(0))\n *\n * // or with data-first API\n * HashSet.add(HashSet.empty(), 0)\n * ```\n *\n * @see Other `HashSet` mutations are {@link module:HashSet.remove} {@link module:HashSet.toggle} {@link module:HashSet.beginMutation} {@link module:HashSet.endMutation} {@link module:HashSet.mutate}\n */\nexport const add = HS.add;\n/**\n * Removes a value from the `HashSet`.\n *\n * Time complexity: **`O(1)`** average\n *\n * @memberof HashSet\n * @since 2.0.0\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(HashSet.make(0, 1, 2), HashSet.remove(0))\n *\n * // or piped with the pipe function\n * HashSet.make(0, 1, 2).pipe(HashSet.remove(0))\n *\n * // or with `data-first` API\n * HashSet.remove(HashSet.make(0, 1, 2), 0)\n * ```\n *\n * @see Other `HashSet` mutations are {@link module:HashSet.add} {@link module:HashSet.toggle} {@link module:HashSet.beginMutation} {@link module:HashSet.endMutation} {@link module:HashSet.mutate}\n */\nexport const remove = HS.remove;\n/**\n * Computes the set difference `(A - B)` between this `HashSet` and the\n * specified `Iterable`.\n *\n * Time complexity: **`O(n)`** where n is the number of elements in the set\n *\n * **NOTE**: the hash and equal of the values in both the set and the iterable\n * must be the same; meaning we cannot compute a difference between a `HashSet\n * of bananas` and a `HashSet of elephants` as they are not the same type and\n * won't implement the Equal trait in the same way.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with data-last, a.k.a. pipeable API\n * pipe(HashSet.make(1, 2, 3), HashSet.difference(HashSet.make(3, 4, 5)))\n *\n * // or piped with the pipe function\n * HashSet.make(1, 2, 3).pipe(HashSet.difference(HashSet.make(3, 4, 5)))\n *\n * // or with data-first API\n * HashSet.difference(HashSet.make(1, 2, 3), HashSet.make(3, 4, 5))\n * ```\n *\n * @see Other `HashSet` operations are {@link module:HashSet.intersection} {@link module:HashSet.union}\n */\nexport const difference = HS.difference;\n/**\n * Returns a `HashSet` of values which are present in both this set and that\n * `Iterable`. Computes set intersection (A ∩ B)\n *\n * Time complexity: **`O(n)`** where n is the number of elements in the smaller\n * set\n *\n * **NOTE**: the hash and equal of the values in both the set and the iterable\n * must be the same.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with data-last, a.k.a. pipeable API\n * pipe(HashSet.make(1, 2, 3), HashSet.intersection(HashSet.make(2, 3, 4)))\n *\n * // or piped with the pipe function\n * HashSet.make(1, 2, 3).pipe(HashSet.intersection(HashSet.make(2, 3, 4)))\n *\n * // or with data-first API\n * HashSet.intersection(HashSet.make(1, 2, 3), HashSet.make(2, 3, 4))\n * ```\n *\n * @see Other `HashSet` operations are {@link module:HashSet.difference} {@link module:HashSet.union}\n */\nexport const intersection = HS.intersection;\n/**\n * Computes the set union `( self ∪ that )` between this `HashSet` and the\n * specified `Iterable`.\n *\n * Time complexity: **`O(n)`** where n is the number of elements in the set\n *\n * **NOTE**: the hash and equal of the values in both the set and the iterable\n * must be the same.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with data-last, a.k.a. pipeable API\n * pipe(HashSet.make(1, 2, 3), HashSet.union(HashSet.make(3, 4, 5)))\n *\n * // or piped with the pipe function\n * HashSet.make(1, 2, 3).pipe(HashSet.union(HashSet.make(3, 4, 5)))\n *\n * // or with data-first API\n * HashSet.union(HashSet.make(1, 2, 3), HashSet.make(3, 4, 5))\n * ```\n *\n * @see Other `HashSet` operations are {@link module:HashSet.difference} {@link module:HashSet.intersection}\n */\nexport const union = HS.union;\n/**\n * Checks if a value is present in the `HashSet`. If it is present, the value\n * will be removed from the `HashSet`, otherwise the value will be added to the\n * `HashSet`.\n *\n * Time complexity: **`O(1)`** average\n *\n * @memberof HashSet\n * @since 2.0.0\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(HashSet.make(0, 1, 2), HashSet.toggle(0))\n *\n * // or piped with the pipe function\n * HashSet.make(0, 1, 2).pipe(HashSet.toggle(0))\n *\n * // or with `data-first` API\n * HashSet.toggle(HashSet.make(0, 1, 2), 0)\n * ```\n *\n * @returns A new `HashSet` where the toggled value is being either added or\n * removed based on the initial `HashSet` state.\n * @see Other `HashSet` mutations are {@link module:HashSet.add} {@link module:HashSet.remove} {@link module:HashSet.beginMutation} {@link module:HashSet.endMutation} {@link module:HashSet.mutate}\n */\nexport const toggle = HS.toggle;\n/**\n * Maps over the values of the `HashSet` using the specified function.\n *\n * The time complexity is of **`O(n)`**.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category mapping\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(\n * HashSet.make(0, 1, 2), // HashSet.HashSet\n * HashSet.map(String) // HashSet.HashSet\n * )\n *\n * // or piped with the pipe method\n * HashSet.make(0, 1, 2).pipe(HashSet.map(String))\n *\n * // or with `data-first` API\n * HashSet.map(HashSet.make(0, 1, 2), String)\n * ```\n */\nexport const map = HS.map;\n/**\n * Chains over the values of the `HashSet` using the specified function.\n *\n * The time complexity is of **`O(n)`**.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category sequencing\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(\n * HashSet.make(0, 1, 2), // HashSet.HashSet\n * HashSet.flatMap((n) => Array.of(String(n))) // HashSet.HashSet\n * )\n *\n * // or piped with the pipe method\n * HashSet.make(0, 1, 2) // HashSet.HashSet\n * .pipe(\n * HashSet.flatMap((n) => Array.of(String(n))) // HashSet.HashSet\n * )\n *\n * // or with `data-first` API\n * HashSet.flatMap(HashSet.make(0, 1, 2), (n) => Array.of(String(n)))\n * ```\n */\nexport const flatMap = HS.flatMap;\n/**\n * Applies the specified function to the values of the `HashSet`.\n *\n * The time complexity is of **`O(n)`**.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category traversing\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(HashSet.make(0, 1, 2), HashSet.forEach(console.log)) // logs: 0 1 2\n *\n * // or piped with the pipe method\n * HashSet.make(0, 1, 2).pipe(HashSet.forEach(console.log)) // logs: 0 1 2\n *\n * // or with `data-first` API\n * HashSet.forEach(HashSet.make(0, 1, 2), console.log) // logs: 0 1 2\n * ```\n */\nexport const forEach = HS.forEach;\n/**\n * Reduces the specified state over the values of the `HashSet`.\n *\n * The time complexity is of **`O(n)`**.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category folding\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * const sum = (a: number, b: number): number => a + b\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(HashSet.make(0, 1, 2), HashSet.reduce(0, sum))\n *\n * // or with the pipe method\n * HashSet.make(0, 1, 2).pipe(HashSet.reduce(0, sum))\n *\n * // or with `data-first` API\n * HashSet.reduce(HashSet.make(0, 1, 2), 0, sum)\n * ```\n */\nexport const reduce = HS.reduce;\n/**\n * Filters values out of a `HashSet` using the specified predicate.\n *\n * The time complexity is of **`O(n)`**.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category filtering\n * @example\n *\n * ```ts\n * // Syntax with Predicate\n * import { HashSet, type Predicate, pipe } from \"effect\"\n *\n * const filterPositiveNumbers: Predicate.Predicate = (n) => n > 0\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(\n * HashSet.make(-2, -1, 0, 1, 2),\n * HashSet.filter(filterPositiveNumbers)\n * )\n *\n * // or with the pipe method\n * HashSet.make(-2, -1, 0, 1, 2).pipe(HashSet.filter(filterPositiveNumbers))\n *\n * // or with `data-first` API\n * HashSet.filter(HashSet.make(-2, -1, 0, 1, 2), filterPositiveNumbers)\n * ```\n *\n * @example\n *\n * ```ts\n * /// Syntax with Refinement\n * import { HashSet, pipe } from \"effect\"\n *\n * const stringRefinement = (value: unknown): value is string =>\n * typeof value === \"string\"\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(\n * HashSet.make(1, \"unos\", 2, \"two\", 3, \"trois\", 4, \"vier\"), // // HashSet.HashSet\n * HashSet.filter(stringRefinement)\n * ) // HashSet.HashSet\n *\n * // or with the pipe method\n * HashSet.make(1, \"unos\", 2, \"two\", 3, \"trois\", 4, \"vier\") // HashSet.HashSet\n * .pipe(HashSet.filter(stringRefinement)) // HashSet.HashSet\n *\n * // or with `data-first` API\n * HashSet.filter(\n * HashSet.make(1, \"unos\", 2, \"two\", 3, \"trois\", 4, \"vier\"), // HashSet.HashSet\n * stringRefinement\n * ) // HashSet.HashSet\n * ```\n */\nexport const filter = HS.filter;\n/**\n * Partition the values of a `HashSet` using the specified predicate.\n *\n * If a value matches the predicate, it will be placed into the `HashSet` on the\n * right side of the resulting `Tuple`, otherwise the value will be placed into\n * the left side.\n *\n * Time complexity is of **`O(n)`**.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category partitioning\n * @example\n *\n * ```ts\n * // Syntax with Predicate\n * import { HashSet, pipe, Predicate } from \"effect\"\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(\n * HashSet.make(0, 1, 2, 3, 4, 5),\n * HashSet.partition((n) => n % 2 === 0)\n * )\n *\n * // or with the pipe method\n * HashSet.make(0, 1, 2, 3, 4, 5).pipe(\n * HashSet.partition((n) => n % 2 === 0)\n * )\n *\n * // or with `data-first` API\n * HashSet.partition(HashSet.make(0, 1, 2, 3, 4, 5), (n) => n % 2 === 0)\n * ```\n *\n * @example\n *\n * ```ts\n * // Syntax with Refinement\n * import { HashSet, pipe, Predicate } from \"effect\"\n *\n * const stringRefinement: Predicate.Refinement = (\n * value\n * ) => typeof value === \"string\"\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(\n * HashSet.make(1, \"unos\", 2, \"two\", 3, \"trois\", 4, \"vier\"),\n * HashSet.partition(stringRefinement)\n * )\n *\n * // or with the pipe method\n * HashSet.make(1, \"unos\", 2, \"two\", 3, \"trois\", 4, \"vier\").pipe(\n * HashSet.partition(stringRefinement)\n * )\n *\n * // or with `data-first` API\n * HashSet.partition(\n * HashSet.make(1, \"unos\", 2, \"two\", 3, \"trois\", 4, \"vier\"),\n * stringRefinement\n * )\n * ```\n */\nexport const partition = HS.partition;\n//# sourceMappingURL=HashSet.js.map","import { IntegerOutOfRangeError, } from '../../errors/encoding.js';\nimport { pad } from '../data/pad.js';\nimport { assertSize } from './fromHex.js';\nconst hexes = /*#__PURE__*/ Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));\n/**\n * Encodes a string, number, bigint, or ByteArray into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex\n * - Example: https://viem.sh/docs/utilities/toHex#usage\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world')\n * // '0x48656c6c6f20776f726c6421'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex(420)\n * // '0x1a4'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world', { size: 32 })\n * // '0x48656c6c6f20776f726c64210000000000000000000000000000000000000000'\n */\nexport function toHex(value, opts = {}) {\n if (typeof value === 'number' || typeof value === 'bigint')\n return numberToHex(value, opts);\n if (typeof value === 'string') {\n return stringToHex(value, opts);\n }\n if (typeof value === 'boolean')\n return boolToHex(value, opts);\n return bytesToHex(value, opts);\n}\n/**\n * Encodes a boolean into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#booltohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true)\n * // '0x1'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(false)\n * // '0x0'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true, { size: 32 })\n * // '0x0000000000000000000000000000000000000000000000000000000000000001'\n */\nexport function boolToHex(value, opts = {}) {\n const hex = `0x${Number(value)}`;\n if (typeof opts.size === 'number') {\n assertSize(hex, { size: opts.size });\n return pad(hex, { size: opts.size });\n }\n return hex;\n}\n/**\n * Encodes a bytes array into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#bytestohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]), { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function bytesToHex(value, opts = {}) {\n let string = '';\n for (let i = 0; i < value.length; i++) {\n string += hexes[value[i]];\n }\n const hex = `0x${string}`;\n if (typeof opts.size === 'number') {\n assertSize(hex, { size: opts.size });\n return pad(hex, { dir: 'right', size: opts.size });\n }\n return hex;\n}\n/**\n * Encodes a number or bigint into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#numbertohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420)\n * // '0x1a4'\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420, { size: 32 })\n * // '0x00000000000000000000000000000000000000000000000000000000000001a4'\n */\nexport function numberToHex(value_, opts = {}) {\n const { signed, size } = opts;\n const value = BigInt(value_);\n let maxValue;\n if (size) {\n if (signed)\n maxValue = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n else\n maxValue = 2n ** (BigInt(size) * 8n) - 1n;\n }\n else if (typeof value_ === 'number') {\n maxValue = BigInt(Number.MAX_SAFE_INTEGER);\n }\n const minValue = typeof maxValue === 'bigint' && signed ? -maxValue - 1n : 0;\n if ((maxValue && value > maxValue) || value < minValue) {\n const suffix = typeof value_ === 'bigint' ? 'n' : '';\n throw new IntegerOutOfRangeError({\n max: maxValue ? `${maxValue}${suffix}` : undefined,\n min: `${minValue}${suffix}`,\n signed,\n size,\n value: `${value_}${suffix}`,\n });\n }\n const hex = `0x${(signed && value < 0 ? (1n << BigInt(size * 8)) + BigInt(value) : value).toString(16)}`;\n if (size)\n return pad(hex, { size });\n return hex;\n}\nconst encoder = /*#__PURE__*/ new TextEncoder();\n/**\n * Encodes a UTF-8 string into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#stringtohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!')\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!', { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function stringToHex(value_, opts = {}) {\n const value = encoder.encode(value_);\n return bytesToHex(value, opts);\n}\n//# sourceMappingURL=toHex.js.map","var inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n var state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n var state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n var state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n var state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n var state = this._reporterState;\n\n var prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n var state = this._reporterState;\n\n var now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n var err;\n var state = this._reporterState;\n\n var inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n var state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n};\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","import * as internal from \"./internal/cause.js\";\nimport * as core from \"./internal/core.js\";\n/**\n * A unique symbol identifying the `Cause` type.\n *\n * **Details**\n *\n * This provides a symbol that helps identify instances of the `Cause` data\n * type. This can be used for advanced operations such as refining types or\n * building internal utilities that check whether an unknown value is a `Cause`.\n *\n * @see {@link isCause} Check if a value is a `Cause`\n *\n * @since 2.0.0\n * @category Symbols\n */\nexport const CauseTypeId = internal.CauseTypeId;\n/**\n * A unique symbol identifying the `RuntimeException` type.\n *\n * **Details**\n *\n * This provides a symbol that identifies a `RuntimeException`. This is\n * typically used internally by the library to recognize checked exceptions that\n * occur during runtime.\n *\n * @see {@link RuntimeException} Create or work with a `RuntimeException`\n *\n * @since 2.0.0\n * @category Symbols\n */\nexport const RuntimeExceptionTypeId = core.RuntimeExceptionTypeId;\n/**\n * A unique symbol identifying the `InterruptedException` type.\n *\n * **Details**\n *\n * This provides a symbol that identifies an `InterruptedException`. This is\n * typically used internally to recognize when a fiber has been interrupted,\n * helping the framework handle interruption logic correctly.\n *\n * @see {@link InterruptedException} Create or work with an `InterruptedException`\n *\n * @since 2.0.0\n * @category Symbols\n */\nexport const InterruptedExceptionTypeId = core.InterruptedExceptionTypeId;\n/**\n * A unique symbol identifying the `IllegalArgumentException` type.\n *\n * **Details**\n *\n * This provides a symbol that identifies an `IllegalArgumentException`. This is\n * often used in scenarios where invalid arguments are supplied to methods that\n * expect specific input.\n *\n * @see {@link IllegalArgumentException} Create or work with an `IllegalArgumentException`\n *\n * @since 2.0.0\n * @category Symbols\n */\nexport const IllegalArgumentExceptionTypeId = core.IllegalArgumentExceptionTypeId;\n/**\n * A unique symbol identifying the `NoSuchElementException` type.\n *\n * **Details**\n *\n * This provides a symbol that identifies a `NoSuchElementException`. It helps\n * differentiate cases where a required element is missing within a data\n * structure.\n *\n * @see {@link NoSuchElementException} Create or work with a `NoSuchElementException`\n *\n * @since 2.0.0\n * @category Symbols\n */\nexport const NoSuchElementExceptionTypeId = core.NoSuchElementExceptionTypeId;\n/**\n * A unique symbol identifying the `InvalidPubSubCapacityException` type.\n *\n * **Details**\n *\n * This provides a symbol that identifies an `InvalidPubSubCapacityException`.\n * It indicates an error related to an invalid capacity passed to a `PubSub`\n * structure.\n *\n * @see {@link InvalidPubSubCapacityException} Create or work with an `InvalidPubSubCapacityException`\n *\n * @since 2.0.0\n * @category Symbols\n */\nexport const InvalidPubSubCapacityExceptionTypeId = core.InvalidPubSubCapacityExceptionTypeId;\n/**\n * A unique symbol identifying the `ExceededCapacityException` type.\n *\n * **Details**\n *\n * This provides a symbol that identifies an `ExceededCapacityException`. It\n * denotes situations where a resource has exceeded its configured capacity\n * limit.\n *\n * @see {@link ExceededCapacityException} Create or work with an `ExceededCapacityException`\n *\n * @since 3.5.0\n * @category Symbols\n */\nexport const ExceededCapacityExceptionTypeId = core.ExceededCapacityExceptionTypeId;\n/**\n * A unique symbol identifying the `TimeoutException` type.\n *\n * **Details**\n *\n * This provides a symbol that identifies a `TimeoutException`. It helps the\n * framework recognize errors related to operations that fail to complete within\n * a given timeframe.\n *\n * @see {@link TimeoutException} Create or work with a `TimeoutException`\n *\n * @since 2.0.0\n * @category Symbols\n */\nexport const TimeoutExceptionTypeId = core.TimeoutExceptionTypeId;\n/**\n * A unique symbol identifying the `UnknownException` type.\n *\n * **Details**\n *\n * This provides a symbol that identifies an `UnknownException`. It is typically\n * used for generic or unexpected errors that do not fit other specific\n * exception categories.\n *\n * @see {@link UnknownException} Create or work with an `UnknownException`\n *\n * @since 2.0.0\n * @category Symbols\n */\nexport const UnknownExceptionTypeId = core.UnknownExceptionTypeId;\n/**\n * Creates an error that occurs at runtime, extendable for other exception\n * types.\n *\n * @since 2.0.0\n * @category Errors\n */\nexport const YieldableError = core.YieldableError;\n/**\n * Creates an `Empty` cause.\n *\n * **Details**\n *\n * This function returns a cause that signifies \"no error.\" It's commonly used\n * to represent an absence of failure conditions.\n *\n * @see {@link isEmpty} Check if a `Cause` is empty\n *\n * @since 2.0.0\n * @category Constructors\n */\nexport const empty = internal.empty;\n/**\n * Creates a `Fail` cause from an expected error.\n *\n * **Details**\n *\n * This function constructs a `Cause` carrying an error of type `E`. It's used\n * when you want to represent a known or anticipated failure in your effectful\n * computations.\n *\n * @see {@link isFailure} Check if a `Cause` contains a failure\n *\n * @since 2.0.0\n * @category Constructors\n */\nexport const fail = internal.fail;\n/**\n * Creates a `Die` cause from an unexpected error.\n *\n * **Details**\n *\n * This function wraps an unhandled or unknown defect (like a runtime crash)\n * into a `Cause`. It's useful for capturing unforeseen issues in a structured\n * way.\n *\n * @see {@link isDie} Check if a `Cause` contains a defect\n *\n * @since 2.0.0\n * @category Constructors\n */\nexport const die = internal.die;\n/**\n * Creates an `Interrupt` cause from a `FiberId`.\n *\n * **Details**\n *\n * This function represents a fiber that has been interrupted. It stores the\n * identifier of the interrupted fiber, enabling precise tracking of concurrent\n * cancellations.\n *\n * @see {@link isInterrupted} Check if a `Cause` contains an interruption\n *\n * @since 2.0.0\n * @category Constructors\n */\nexport const interrupt = internal.interrupt;\n/**\n * Combines two `Cause`s in parallel.\n *\n * **Details**\n *\n * This function merges two errors that occurred simultaneously. Instead of\n * discarding one error, both are retained, allowing for richer error reporting\n * and debugging.\n *\n * @see {@link isParallelType} Check if a `Cause` is a `Parallel`\n *\n * @since 2.0.0\n * @category Constructors\n */\nexport const parallel = internal.parallel;\n/**\n * Combines two `Cause`s sequentially.\n *\n * **Details**\n *\n * This function merges two errors that occurred in sequence, such as a main\n * error followed by a finalization error. It preserves both errors for complete\n * failure information.\n *\n * @see {@link isSequentialType} Check if a `Cause` is a `Sequential`\n *\n * @since 2.0.0\n * @category Constructors\n */\nexport const sequential = internal.sequential;\n/**\n * Checks if a value is a `Cause`.\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isCause = internal.isCause;\n/**\n * Checks if a `Cause` is an `Empty` type.\n *\n * @see {@link empty} Create a new `Empty` cause\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isEmptyType = internal.isEmptyType;\n/**\n * Checks if a `Cause` is a `Fail` type.\n *\n * @see {@link fail} Create a new `Fail` cause\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isFailType = internal.isFailType;\n/**\n * Checks if a `Cause` is a `Die` type.\n *\n * @see {@link die} Create a new `Die` cause\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isDieType = internal.isDieType;\n/**\n * Checks if a `Cause` is an `Interrupt` type.\n *\n * @see {@link interrupt} Create an `Interrupt` cause\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isInterruptType = internal.isInterruptType;\n/**\n * Checks if a `Cause` is a `Sequential` type.\n *\n * @see {@link sequential} Combine two `Cause`s sequentially\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isSequentialType = internal.isSequentialType;\n/**\n * Checks if a `Cause` is a `Parallel` type.\n *\n * @see {@link parallel} Combine two `Cause`s in parallel\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isParallelType = internal.isParallelType;\n/**\n * Calculates the size of a `Cause`.\n *\n * **Details**\n *\n * This function returns the total number of `Cause` nodes in the semiring\n * structure, reflecting how many individual error elements are recorded.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const size = internal.size;\n/**\n * Checks if a `Cause` is entirely empty.\n *\n * **Details**\n *\n * This function returns `true` if the `Cause` contains no errors, defects, or\n * interruptions. It's helpful for verifying if a computation truly had no\n * failures.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const isEmpty = internal.isEmpty;\n/**\n * Checks if a `Cause` contains a failure.\n *\n * **Details**\n *\n * This function returns `true` if the `Cause` includes any `Fail` error. It's\n * commonly used to confirm whether a workflow encountered an anticipated error\n * versus just defects or interruptions.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const isFailure = internal.isFailure;\n/**\n * Checks if a `Cause` contains a defect.\n *\n * **Details**\n *\n * This function returns `true` if the `Cause` includes any unexpected or\n * unhandled errors (`Die`). It's useful for differentiating known failures from\n * unexpected ones.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const isDie = internal.isDie;\n/**\n * Checks if a `Cause` contains an interruption.\n *\n * **Details**\n *\n * This function returns `true` if the `Cause` includes any fiber interruptions.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const isInterrupted = internal.isInterrupted;\n/**\n * Checks if a `Cause` contains only interruptions.\n *\n * **Details**\n *\n * This function returns `true` if the `Cause` has been interrupted but does not\n * contain any other failures, such as `Fail` or `Die`. It's helpful for\n * verifying purely \"cancellation\" scenarios.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const isInterruptedOnly = internal.isInterruptedOnly;\n/**\n * Extracts all recoverable errors of type `E` from a `Cause`.\n *\n * **Details**\n *\n * This function returns a chunk of errors, providing a list of all `Fail`\n * values found in the cause. It's useful for collecting all known failures for\n * logging or combined error handling.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const failures = internal.failures;\n/**\n * Extracts all unrecoverable defects from a `Cause`.\n *\n * **Details**\n *\n * This function returns a chunk of values representing unexpected errors\n * (`Die`). It's handy for capturing or logging unanticipated failures that\n * might need special handling, such as bug reports.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const defects = internal.defects;\n/**\n * Collects all `FiberId`s responsible for interrupting a fiber.\n *\n * **Details**\n *\n * This function returns a set of IDs indicating which fibers caused\n * interruptions within this `Cause`. It's useful for debugging concurrency\n * issues or tracing cancellations.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const interruptors = internal.interruptors;\n/**\n * Retrieves the first `Fail` error in a `Cause`, if present.\n *\n * **Details**\n *\n * This function returns an `Option` containing the first recoverable error\n * (`E`) from the cause. It's often used to quickly check if there's a primary\n * error to handle or display.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const failureOption = internal.failureOption;\n/**\n * Splits a `Cause` into either its first `Fail` error or the rest of the cause\n * (which might only contain `Die` or `Interrupt`).\n *\n * **Details**\n *\n * This function either returns the checked error (`E`) or the remaining\n * `Cause` with defects/interruptions. It helps you decide if there's a\n * recoverable path or if only unhandled issues remain.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const failureOrCause = internal.failureOrCause;\n/**\n * Strips out failures with an error of `None` from a `Cause>`.\n *\n * **Details**\n *\n * This function turns a `Cause>` into an `Option>`. If the\n * cause only contains failures of `None`, it becomes `None`; otherwise, it\n * returns a `Cause` of the remaining errors. It's helpful when working with\n * optional errors and filtering out certain error paths.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const flipCauseOption = internal.flipCauseOption;\n/**\n * Retrieves the first `Die` defect in a `Cause`, if present.\n *\n * **Details**\n *\n * This function returns an `Option` containing the first unexpected failure\n * (`Die`) discovered. It's helpful for diagnosing the primary defect in a chain\n * of errors.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const dieOption = internal.dieOption;\n/**\n * Retrieves the first `Interrupt` in a `Cause`, if present.\n *\n * **Details**\n *\n * This function returns an `Option` with the first fiber interruption\n * discovered. This is particularly useful for concurrency analysis or debugging\n * cancellations.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const interruptOption = internal.interruptOption;\n/**\n * Removes all `Fail` and `Interrupt` nodes, keeping only defects (`Die`) in a\n * `Cause`.\n *\n * **Details**\n *\n * This function strips a cause of recoverable errors and interruptions, leaving\n * only unexpected failures. If no defects remain, it returns `None`. It's\n * valuable for focusing only on unanticipated problems when both known errors\n * and defects could occur.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const keepDefects = internal.keepDefects;\n// TODO(4.0): remove? what's the point of this API?\n/**\n * Linearizes a `Cause` into a set of parallel causes, each containing a\n * sequential chain of failures.\n *\n * **Details**\n *\n * This function reorganizes the cause structure so that you can analyze each\n * parallel branch separately, even if they have multiple sequential errors.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const linearize = internal.linearize;\n/**\n * Removes `Fail` and `Interrupt` nodes from a `Cause`, keeping only defects\n * (`Die`).\n *\n * **Details**\n *\n * This function is similar to `keepDefects` but returns a `Cause`\n * directly, which can still store `Die` or finalizer-related defects. It's\n * helpful for analyzing only the irrecoverable portion of the error.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const stripFailures = internal.stripFailures;\n/**\n * Removes matching defects from a `Cause` using a partial function, returning\n * the remainder.\n *\n * **Details**\n *\n * This function applies a user-defined extraction function to each defect\n * (`Die`). If the function matches the defect, that defect is removed. If all\n * defects match, the result is `None`. Otherwise, you get a `Cause` with the\n * unmatched defects.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const stripSomeDefects = internal.stripSomeDefects;\n/**\n * Replaces any errors in a `Cause` with a provided constant error.\n *\n * **Details**\n *\n * This function transforms all `Fail` errors into the specified error value,\n * preserving the structure of the `Cause`. It's useful when you no longer need\n * the original error details but still want to keep the cause shape.\n *\n * @see {@link map} Apply a custom transformation to `Fail` errors\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const as = internal.as;\n/**\n * Transforms the errors in a `Cause` using a user-provided function.\n *\n * **Details**\n *\n * This function applies `f` to each `Fail` error while leaving defects (`Die`)\n * and interruptions untouched. It's useful for changing or simplifying error\n * types in your effectful workflows.\n *\n * @see {@link as} Replace errors with a single constant\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const map = internal.map;\n/**\n * Transforms errors in a `Cause` into new causes.\n *\n * **Details**\n *\n * This function applies a function `f` to each `Fail` error, converting it into\n * a new `Cause`. This is especially powerful for merging or restructuring error\n * types while preserving or combining cause information.\n *\n * @see {@link map} Apply a simpler transformation to errors\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const flatMap = internal.flatMap;\n/**\n * Sequences two `Cause`s. The second `Cause` can be dependent on the result of\n * the first `Cause`.\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const andThen = internal.andThen;\n/**\n * Flattens a nested `Cause` structure.\n *\n * **Details**\n *\n * This function takes a `Cause>` and merges the layers into a single\n * `Cause`. It's useful for eliminating additional nesting created by\n * repeated transformations or compositions.\n *\n * @see {@link flatMap} Compose nested causes\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const flatten = internal.flatten;\n/**\n * Checks if the current `Cause` contains or is equal to another `Cause`.\n *\n * **Details**\n *\n * This function returns `true` if `that` cause is part of or the same as\n * the current `Cause`. It's useful when you need to check for specific\n * error patterns or deduplicate repeated failures.\n *\n * @since 2.0.0\n * @category Elements\n */\nexport const contains = internal.contains;\n/**\n * Extracts the most \"important\" defect from a `Cause`.\n *\n * **Details**\n *\n * This function reduces a `Cause` to a single, prioritized defect. It evaluates\n * the `Cause` in the following order of priority:\n *\n * 1. If the `Cause` contains a failure (e.g., from `Effect.fail`), it returns\n * the raw error value.\n * 2. If there is no failure, it looks for the first defect (e.g., from\n * `Effect.die`).\n * 3. If neither of the above is present, and the `Cause` stems from an\n * interruption, it creates and returns an `InterruptedException`.\n *\n * This function ensures you can always extract a meaningful representation of\n * the primary issue from a potentially complex `Cause` structure.\n *\n * **When to Use**\n *\n * Use this function when you need to extract the most relevant error or defect\n * from a `Cause`, especially in scenarios where multiple errors or defects may\n * be present. It's particularly useful for simplifying error reporting or\n * logging.\n *\n * @see {@link squashWith} Allows transforming failures into defects when squashing.\n *\n * @since 2.0.0\n * @category Destructors\n */\nexport const squash = core.causeSquash;\n/**\n * Extracts the most \"important\" defect from a `Cause`, transforming failures\n * into defects using a provided function.\n *\n * **Details**\n *\n * This function reduces a `Cause` to a single, prioritized defect, while\n * allowing you to transform recoverable failures into defects through a custom\n * function. It processes the `Cause` in the following order:\n *\n * 1. If the `Cause` contains a failure (e.g., from `Effect.fail`), it applies\n * the provided function `f` to the error to transform it into a defect.\n * 2. If there is no failure, it looks for the first defect (e.g., from\n * `Effect.die`) and returns it.\n * 3. If neither is present and the `Cause` stems from an interruption, it\n * returns an `InterruptedException`.\n *\n * This function is particularly useful when you need custom handling or\n * transformation of errors while processing a `Cause`.\n *\n * @see {@link squash} Extracts the most \"important\" defect without transforming failures.\n *\n * @since 2.0.0\n * @category Destructors\n */\nexport const squashWith = core.causeSquashWith;\n/**\n * Searches a `Cause` using a partial function to extract information.\n *\n * **Details**\n *\n * This function allows you to search through a `Cause` using a custom partial\n * function. The partial function is applied to the `Cause`, and if it matches,\n * the result is returned wrapped in a `Some`. If no match is found, the result\n * is `None`.\n *\n * This is particularly useful when you are only interested in specific types of\n * errors, defects, or interruption causes within a potentially complex `Cause`\n * structure. By leveraging a partial function, you can focus on extracting only\n * the relevant information you care about.\n *\n * The partial function should return an `Option` indicating whether it matched\n * and the value it extracted.\n *\n * @since 2.0.0\n * @category Elements\n */\nexport const find = internal.find;\n/**\n * Preserves parts of a `Cause` that match a given predicate.\n *\n * **Details**\n *\n * This function allows you to retain only the parts of a `Cause` structure that\n * match a specified predicate or refinement. Any parts of the `Cause` that do\n * not match the provided condition are excluded from the result.\n *\n * You can use this function in two ways:\n * - With a `Predicate`: A function that evaluates whether a `Cause` should be\n * retained based on its value.\n * - With a `Refinement`: A more specific predicate that can refine the type of\n * the `Cause`.\n *\n * This is useful when you need to extract specific types of errors, defects, or\n * interruptions from a `Cause` while discarding unrelated parts.\n *\n * @since 2.0.0\n * @category Filtering\n */\nexport const filter = internal.filter;\n/**\n * Transforms a `Cause` into a single value using custom handlers for each\n * possible case.\n *\n * **Details**\n *\n * This function processes a `Cause` by applying a set of custom handlers to\n * each possible type of cause: `Empty`, `Fail`, `Die`, `Interrupt`,\n * `Sequential`, and `Parallel`. The result of this function is a single value\n * of type `Z`. This function allows you to define exactly how to handle each\n * part of a `Cause`, whether it's a failure, defect, interruption, or a\n * combination of these.\n *\n * The options parameter provides handlers for:\n * - `onEmpty`: Handles the case where the cause is `Empty`, meaning no errors\n * occurred.\n * - `onFail`: Processes a failure with an error of type `E`.\n * - `onDie`: Processes a defect (unexpected error).\n * - `onInterrupt`: Handles a fiber interruption, providing the `FiberId` of the\n * interruption.\n * - `onSequential`: Combines two sequential causes into a single value of type\n * `Z`.\n * - `onParallel`: Combines two parallel causes into a single value of type `Z`.\n *\n * @since 2.0.0\n * @category Matching\n */\nexport const match = internal.match;\n/**\n * Combines all parts of a `Cause` into a single value by starting with an\n * initial value.\n *\n * **Details**\n *\n * This function processes a `Cause` by starting with an initial value (`zero`)\n * and applying a custom function (`pf`) to combine all elements of the `Cause`\n * into a single result of type `Z`. The custom function determines how each\n * part of the `Cause` contributes to the final result. The function can return\n * an `Option` to either continue combining values or skip specific parts of the\n * `Cause`.\n *\n * This function is useful for tasks such as:\n * - Aggregating error messages from a `Cause` into a single string.\n * - Summarizing the structure of a `Cause` into a simplified result.\n * - Filtering or processing only specific parts of a `Cause`.\n *\n * The reduction proceeds in a top-down manner, visiting all nodes in the\n * `Cause` structure. This gives you complete control over how each part of the\n * `Cause` contributes to the final result.\n *\n * @since 2.0.0\n * @category Reducing\n */\nexport const reduce = internal.reduce;\n/**\n * Combines all parts of a `Cause` into a single value using a custom reducer\n * and a context.\n *\n * **Details**\n *\n * This function allows you to reduce a `Cause` into a single value of type `Z`\n * using a custom `CauseReducer`. A `CauseReducer` provides methods to handle\n * specific parts of the `Cause`, such as failures, defects, or interruptions.\n * Additionally, this function provides access to a `context` value, which can\n * be used to carry information or maintain state during the reduction process.\n *\n * This is particularly useful when the reduction process needs additional\n * context or configuration, such as:\n * - Aggregating error details with dynamic formatting.\n * - Collecting logs or statistics about the `Cause`.\n * - Performing stateful transformations based on the `context`.\n *\n * @see {@link reduce} To reduce a `Cause` without additional context.\n *\n * @since 2.0.0\n * @category Reducing\n */\nexport const reduceWithContext = internal.reduceWithContext;\n/**\n * Creates an error that indicates a `Fiber` was interrupted.\n *\n * **Details**\n *\n * This function constructs an `InterruptedException` recognized by the Effect\n * runtime. It is usually thrown or returned when a fiber's execution is\n * interrupted by external events or by another fiber. This is particularly\n * helpful in concurrent programs where fibers may halt each other before\n * completion.\n *\n * @since 2.0.0\n * @category Errors\n */\nexport const InterruptedException = core.InterruptedException;\n/**\n * Checks if a given unknown value is an `InterruptedException`.\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isInterruptedException = core.isInterruptedException;\n/**\n * Creates an error indicating an invalid method argument.\n *\n * **Details**\n *\n * This function constructs an `IllegalArgumentException`. It is typically\n * thrown or returned when an operation receives improper inputs, such as\n * out-of-range values or invalid object states.\n *\n * @since 2.0.0\n * @category Errors\n */\nexport const IllegalArgumentException = core.IllegalArgumentException;\n/**\n * Checks if a given unknown value is an `IllegalArgumentException`.\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isIllegalArgumentException = core.isIllegalArgumentException;\n/**\n * Creates an error indicating a missing element.\n *\n * **Details**\n *\n * This function constructs a `NoSuchElementException`. It helps you clearly\n * communicate that a required element is unavailable.\n *\n * @since 2.0.0\n * @category Errors\n */\nexport const NoSuchElementException = core.NoSuchElementException;\n/**\n * Checks if a given unknown value is a `NoSuchElementException`.\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isNoSuchElementException = core.isNoSuchElementException;\n/**\n * Creates an error for general runtime errors.\n *\n * **Details**\n *\n * This function constructs a `RuntimeException`, for errors that occur at\n * runtime but are not specifically typed or categorized as interruptions,\n * missing elements, or invalid arguments. It helps unify a wide range of\n * unexpected conditions under a single, recognizable error type.\n *\n * @since 2.0.0\n * @category Errors\n */\nexport const RuntimeException = core.RuntimeException;\n/**\n * Checks if a given unknown value is a `RuntimeException`.\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isRuntimeException = core.isRuntimeException;\n/**\n * Creates an error for operations that exceed their expected time.\n *\n * **Details**\n *\n * This function constructs a `TimeoutException`. It is typically used to signal\n * that an operation or fiber did not complete within a designated time limit,\n * allowing you to handle slow or hanging processes.\n *\n * @since 2.0.0\n * @category Errors\n */\nexport const TimeoutException = core.TimeoutException;\n/**\n * Checks if a given unknown value is a `TimeoutException`.\n *\n * @since 3.15.0\n * @category Guards\n */\nexport const isTimeoutException = core.isTimeoutException;\n/**\n * Creates an instance of `UnknownException`, an error object used to handle\n * unknown errors such as those from rejected promises.\n *\n * **Details**\n *\n * This function constructs an `UnknownException` with flexible behavior for\n * managing the error message and cause.\n *\n * The required `error` argument is passed as the `cause` to the global `Error`\n * constructor, ensuring that the original cause is preserved in the error chain\n * for debugging purposes. This ensures that the origin stack trace is\n * preserved.\n *\n * The `error` argument is always stored in the `error` property of the\n * `UnknownException` instance for reference, regardless of its type.\n *\n * Additionally, if you provide a `message` argument, it is used as the error\n * message. If no `message` is provided, the error message defaults to `\"An\n * unknown error occurred\"`.\n *\n * **When to Use**\n *\n * Use this function when you need to handle unexpected or unknown errors in\n * your application, particularly when the source of the error might not provide\n * a clear message. This is useful for wrapping generic errors thrown from\n * promises or external APIs.\n *\n * @since 2.0.0\n * @category Errors\n */\nexport const UnknownException = core.UnknownException;\n/**\n * Checks if a given unknown value is an `UnknownException`.\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isUnknownException = core.isUnknownException;\n/**\n * Creates an error indicating resource capacity has been exceeded.\n *\n * **Details**\n *\n * This function constructs an `ExceededCapacityException`, signifying that an\n * operation or resource usage surpassed established limits. This can be\n * essential for concurrency or resource management situations, ensuring your\n * application doesn't go beyond acceptable thresholds.\n *\n * @since 3.5.0\n * @category Errors\n */\nexport const ExceededCapacityException = core.ExceededCapacityException;\n/**\n * Checks if a given unknown value is an `ExceededCapacityException`.\n *\n * @since 3.5.0\n * @category Guards\n */\nexport const isExceededCapacityException = core.isExceededCapacityException;\n/**\n * Converts a `Cause` into a human-readable string.\n *\n * **Details**\n *\n * This function pretty-prints the entire `Cause`, including any failures,\n * defects, and interruptions. It can be especially helpful for logging,\n * debugging, or displaying structured errors to users.\n *\n * You can optionally pass `options` to configure how the error cause is\n * rendered. By default, it includes essential details of all errors in the\n * `Cause`.\n *\n * @see {@link prettyErrors} Get a list of `PrettyError` objects instead of a single string.\n *\n * @since 2.0.0\n * @category Formatting\n */\nexport const pretty = internal.pretty;\n/**\n * Returns a list of prettified errors (`PrettyError`) from a `Cause`.\n *\n * **Details**\n *\n * This function inspects the entire `Cause` and produces an array of\n * `PrettyError` objects. Each object may include additional metadata, such as a\n * `Span`, to provide deeper insights into where and how the error occurred.\n *\n * @since 3.2.0\n * @category Formatting\n */\nexport const prettyErrors = internal.prettyErrors;\n/**\n * Retrieves the original, unproxied error instance from an error object.\n *\n * **Details**\n *\n * This function returns the underlying error object without any\n * library-specific wrapping or proxying that might occur during error handling.\n * This can be essential if you need direct access to the error's native\n * properties, such as stack traces or custom data fields, for detailed\n * debugging or integration with external systems.\n *\n * @since 2.0.0\n * @category Errors\n */\nexport const originalError = core.originalInstance;\n//# sourceMappingURL=Cause.js.map","import { InvalidDefinitionTypeError, } from '../../errors/abi.js';\nexport function formatAbiItem(abiItem, { includeName = false } = {}) {\n if (abiItem.type !== 'function' &&\n abiItem.type !== 'event' &&\n abiItem.type !== 'error')\n throw new InvalidDefinitionTypeError(abiItem.type);\n return `${abiItem.name}(${formatAbiParams(abiItem.inputs, { includeName })})`;\n}\nexport function formatAbiParams(params, { includeName = false } = {}) {\n if (!params)\n return '';\n return params\n .map((param) => formatAbiParam(param, { includeName }))\n .join(includeName ? ', ' : ',');\n}\nfunction formatAbiParam(param, { includeName }) {\n if (param.type.startsWith('tuple')) {\n return `(${formatAbiParams(param.components, { includeName })})${param.type.slice('tuple'.length)}`;\n }\n return param.type + (includeName && param.name ? ` ${param.name}` : '');\n}\n//# sourceMappingURL=formatAbiItem.js.map","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","import { AbiItemAmbiguityError, } from '../../errors/abi.js';\nimport { isHex } from '../../utils/data/isHex.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { toEventSelector } from '../hash/toEventSelector.js';\nimport { toFunctionSelector, } from '../hash/toFunctionSelector.js';\nexport function getAbiItem(parameters) {\n const { abi, args = [], name } = parameters;\n const isSelector = isHex(name, { strict: false });\n const abiItems = abi.filter((abiItem) => {\n if (isSelector) {\n if (abiItem.type === 'function')\n return toFunctionSelector(abiItem) === name;\n if (abiItem.type === 'event')\n return toEventSelector(abiItem) === name;\n return false;\n }\n return 'name' in abiItem && abiItem.name === name;\n });\n if (abiItems.length === 0)\n return undefined;\n if (abiItems.length === 1)\n return abiItems[0];\n let matchedAbiItem;\n for (const abiItem of abiItems) {\n if (!('inputs' in abiItem))\n continue;\n if (!args || args.length === 0) {\n if (!abiItem.inputs || abiItem.inputs.length === 0)\n return abiItem;\n continue;\n }\n if (!abiItem.inputs)\n continue;\n if (abiItem.inputs.length === 0)\n continue;\n if (abiItem.inputs.length !== args.length)\n continue;\n const matched = args.every((arg, index) => {\n const abiParameter = 'inputs' in abiItem && abiItem.inputs[index];\n if (!abiParameter)\n return false;\n return isArgOfType(arg, abiParameter);\n });\n if (matched) {\n // Check for ambiguity against already matched parameters (e.g. `address` vs `bytes20`).\n if (matchedAbiItem &&\n 'inputs' in matchedAbiItem &&\n matchedAbiItem.inputs) {\n const ambiguousTypes = getAmbiguousTypes(abiItem.inputs, matchedAbiItem.inputs, args);\n if (ambiguousTypes)\n throw new AbiItemAmbiguityError({\n abiItem,\n type: ambiguousTypes[0],\n }, {\n abiItem: matchedAbiItem,\n type: ambiguousTypes[1],\n });\n }\n matchedAbiItem = abiItem;\n }\n }\n if (matchedAbiItem)\n return matchedAbiItem;\n return abiItems[0];\n}\n/** @internal */\nexport function isArgOfType(arg, abiParameter) {\n const argType = typeof arg;\n const abiParameterType = abiParameter.type;\n switch (abiParameterType) {\n case 'address':\n return isAddress(arg, { strict: false });\n case 'bool':\n return argType === 'boolean';\n case 'function':\n return argType === 'string';\n case 'string':\n return argType === 'string';\n default: {\n if (abiParameterType === 'tuple' && 'components' in abiParameter)\n return Object.values(abiParameter.components).every((component, index) => {\n return (argType === 'object' &&\n isArgOfType(Object.values(arg)[index], component));\n });\n // `(u)int`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n // https://regexr.com/6v8hp\n if (/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(abiParameterType))\n return argType === 'number' || argType === 'bigint';\n // `bytes`: binary type of `M` bytes, `0 < M <= 32`\n // https://regexr.com/6va55\n if (/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(abiParameterType))\n return argType === 'string' || arg instanceof Uint8Array;\n // fixed-length (`[M]`) and dynamic (`[]`) arrays\n // https://regexr.com/6va6i\n if (/[a-z]+[1-9]{0,3}(\\[[0-9]{0,}\\])+$/.test(abiParameterType)) {\n return (Array.isArray(arg) &&\n arg.every((x) => isArgOfType(x, {\n ...abiParameter,\n // Pop off `[]` or `[M]` from end of type\n type: abiParameterType.replace(/(\\[[0-9]{0,}\\])$/, ''),\n })));\n }\n return false;\n }\n }\n}\n/** @internal */\nexport function getAmbiguousTypes(sourceParameters, targetParameters, args) {\n for (const parameterIndex in sourceParameters) {\n const sourceParameter = sourceParameters[parameterIndex];\n const targetParameter = targetParameters[parameterIndex];\n if (sourceParameter.type === 'tuple' &&\n targetParameter.type === 'tuple' &&\n 'components' in sourceParameter &&\n 'components' in targetParameter)\n return getAmbiguousTypes(sourceParameter.components, targetParameter.components, args[parameterIndex]);\n const types = [sourceParameter.type, targetParameter.type];\n const ambiguous = (() => {\n if (types.includes('address') && types.includes('bytes20'))\n return true;\n if (types.includes('address') && types.includes('string'))\n return isAddress(args[parameterIndex], { strict: false });\n if (types.includes('address') && types.includes('bytes'))\n return isAddress(args[parameterIndex], { strict: false });\n return false;\n })();\n if (ambiguous)\n return types;\n }\n return;\n}\n//# sourceMappingURL=getAbiItem.js.map","'use strict';\n\nvar md5 = require('create-hash/md5');\nvar RIPEMD160 = require('ripemd160');\nvar sha = require('sha.js');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar checkParameters = require('./precondition');\nvar defaultEncoding = require('./default-encoding');\nvar toBuffer = require('./to-buffer');\n\nvar ZEROS = Buffer.alloc(128);\nvar sizes = {\n\t__proto__: null,\n\tmd5: 16,\n\tsha1: 20,\n\tsha224: 28,\n\tsha256: 32,\n\tsha384: 48,\n\tsha512: 64,\n\t'sha512-256': 32,\n\tripemd160: 20,\n\trmd160: 20\n};\n\nvar mapping = {\n\t__proto__: null,\n\t'sha-1': 'sha1',\n\t'sha-224': 'sha224',\n\t'sha-256': 'sha256',\n\t'sha-384': 'sha384',\n\t'sha-512': 'sha512',\n\t'ripemd-160': 'ripemd160'\n};\n\nfunction rmd160Func(data) {\n\treturn new RIPEMD160().update(data).digest();\n}\n\nfunction getDigest(alg) {\n\tfunction shaFunc(data) {\n\t\treturn sha(alg).update(data).digest();\n\t}\n\n\tif (alg === 'rmd160' || alg === 'ripemd160') {\n\t\treturn rmd160Func;\n\t}\n\tif (alg === 'md5') {\n\t\treturn md5;\n\t}\n\treturn shaFunc;\n}\n\nfunction Hmac(alg, key, saltLen) {\n\tvar hash = getDigest(alg);\n\tvar blocksize = alg === 'sha512' || alg === 'sha384' ? 128 : 64;\n\n\tif (key.length > blocksize) {\n\t\tkey = hash(key);\n\t} else if (key.length < blocksize) {\n\t\tkey = Buffer.concat([key, ZEROS], blocksize);\n\t}\n\n\tvar ipad = Buffer.allocUnsafe(blocksize + sizes[alg]);\n\tvar opad = Buffer.allocUnsafe(blocksize + sizes[alg]);\n\tfor (var i = 0; i < blocksize; i++) {\n\t\tipad[i] = key[i] ^ 0x36;\n\t\topad[i] = key[i] ^ 0x5C;\n\t}\n\n\tvar ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4);\n\tipad.copy(ipad1, 0, 0, blocksize);\n\tthis.ipad1 = ipad1;\n\tthis.ipad2 = ipad;\n\tthis.opad = opad;\n\tthis.alg = alg;\n\tthis.blocksize = blocksize;\n\tthis.hash = hash;\n\tthis.size = sizes[alg];\n}\n\nHmac.prototype.run = function (data, ipad) {\n\tdata.copy(ipad, this.blocksize);\n\tvar h = this.hash(ipad);\n\th.copy(this.opad, this.blocksize);\n\treturn this.hash(this.opad);\n};\n\nfunction pbkdf2(password, salt, iterations, keylen, digest) {\n\tcheckParameters(iterations, keylen);\n\tpassword = toBuffer(password, defaultEncoding, 'Password');\n\tsalt = toBuffer(salt, defaultEncoding, 'Salt');\n\n\tvar lowerDigest = (digest || 'sha1').toLowerCase();\n\tvar mappedDigest = mapping[lowerDigest] || lowerDigest;\n\tvar size = sizes[mappedDigest];\n\tif (typeof size !== 'number' || !size) {\n\t\tthrow new TypeError('Digest algorithm not supported: ' + digest);\n\t}\n\n\tvar hmac = new Hmac(mappedDigest, password, salt.length);\n\n\tvar DK = Buffer.allocUnsafe(keylen);\n\tvar block1 = Buffer.allocUnsafe(salt.length + 4);\n\tsalt.copy(block1, 0, 0, salt.length);\n\n\tvar destPos = 0;\n\tvar hLen = size;\n\tvar l = Math.ceil(keylen / hLen);\n\n\tfor (var i = 1; i <= l; i++) {\n\t\tblock1.writeUInt32BE(i, salt.length);\n\n\t\tvar T = hmac.run(block1, hmac.ipad1);\n\t\tvar U = T;\n\n\t\tfor (var j = 1; j < iterations; j++) {\n\t\t\tU = hmac.run(U, hmac.ipad2);\n\t\t\tfor (var k = 0; k < hLen; k++) {\n\t\t\t\tT[k] ^= U[k];\n\t\t\t}\n\t\t}\n\n\t\tT.copy(DK, destPos);\n\t\tdestPos += hLen;\n\t}\n\n\treturn DK;\n}\n\nmodule.exports = pbkdf2;\n","import { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getContractError, } from '../../utils/errors/getContractError.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { call } from './call.js';\n/**\n * Calls a read-only function on a contract, and returns the response.\n *\n * - Docs: https://viem.sh/docs/contract/readContract\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_reading-contracts\n *\n * A \"read-only\" function (constant function) on a Solidity contract is denoted by a `view` or `pure` keyword. They can only read the state of the contract, and cannot make any changes to it. Since read-only methods do not change the state of the contract, they do not require any gas to be executed, and can be called by any user without the need to pay for gas.\n *\n * Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n *\n * @param client - Client to use\n * @param parameters - {@link ReadContractParameters}\n * @returns The response from the contract. Type is inferred. {@link ReadContractReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { readContract } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const result = await readContract(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function balanceOf(address) view returns (uint256)']),\n * functionName: 'balanceOf',\n * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n * })\n * // 424122n\n */\nexport async function readContract(client, parameters) {\n const { abi, address, args, functionName, ...rest } = parameters;\n const calldata = encodeFunctionData({\n abi,\n args,\n functionName,\n });\n try {\n const { data } = await getAction(client, call, 'call')({\n ...rest,\n data: calldata,\n to: address,\n });\n return decodeFunctionResult({\n abi,\n args,\n functionName,\n data: data || '0x',\n });\n }\n catch (error) {\n throw getContractError(error, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/readContract',\n functionName,\n });\n }\n}\n//# sourceMappingURL=readContract.js.map","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","import { hexToNumber } from '../encoding/fromHex.js';\nimport { defineFormatter } from './formatter.js';\nimport { formatLog } from './log.js';\nimport { transactionType } from './transaction.js';\nexport const receiptStatuses = {\n '0x0': 'reverted',\n '0x1': 'success',\n};\nexport function formatTransactionReceipt(transactionReceipt, _) {\n const receipt = {\n ...transactionReceipt,\n blockNumber: transactionReceipt.blockNumber\n ? BigInt(transactionReceipt.blockNumber)\n : null,\n contractAddress: transactionReceipt.contractAddress\n ? transactionReceipt.contractAddress\n : null,\n cumulativeGasUsed: transactionReceipt.cumulativeGasUsed\n ? BigInt(transactionReceipt.cumulativeGasUsed)\n : null,\n effectiveGasPrice: transactionReceipt.effectiveGasPrice\n ? BigInt(transactionReceipt.effectiveGasPrice)\n : null,\n gasUsed: transactionReceipt.gasUsed\n ? BigInt(transactionReceipt.gasUsed)\n : null,\n logs: transactionReceipt.logs\n ? transactionReceipt.logs.map((log) => formatLog(log))\n : null,\n to: transactionReceipt.to ? transactionReceipt.to : null,\n transactionIndex: transactionReceipt.transactionIndex\n ? hexToNumber(transactionReceipt.transactionIndex)\n : null,\n status: transactionReceipt.status\n ? receiptStatuses[transactionReceipt.status]\n : null,\n type: transactionReceipt.type\n ? transactionType[transactionReceipt.type] || transactionReceipt.type\n : null,\n };\n if (transactionReceipt.blobGasPrice)\n receipt.blobGasPrice = BigInt(transactionReceipt.blobGasPrice);\n if (transactionReceipt.blobGasUsed)\n receipt.blobGasUsed = BigInt(transactionReceipt.blobGasUsed);\n return receipt;\n}\nexport const defineTransactionReceipt = /*#__PURE__*/ defineFormatter('transactionReceipt', formatTransactionReceipt);\n//# sourceMappingURL=transactionReceipt.js.map","/**\n * This module provides utility functions for working with RegExp in TypeScript.\n *\n * @since 2.0.0\n */\nimport * as predicate from \"./Predicate.js\";\n/**\n * Tests if a value is a `RegExp`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { RegExp } from \"effect\"\n *\n * assert.deepStrictEqual(RegExp.isRegExp(/a/), true)\n * assert.deepStrictEqual(RegExp.isRegExp(\"a\"), false)\n * ```\n *\n * @category guards\n * @since 3.9.0\n */\nexport const isRegExp = predicate.isRegExp;\n/**\n * Escapes special characters in a regular expression pattern.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { RegExp } from \"effect\"\n *\n * assert.deepStrictEqual(RegExp.escape(\"a*b\"), \"a\\\\*b\")\n * ```\n *\n * @since 2.0.0\n */\nexport const escape = string => string.replace(/[/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n//# sourceMappingURL=RegExp.js.map","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"scheduler\"),\n React = require(\"react\"),\n ReactDOM = require(\"react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction getActivityInstanceFromFiber(fiber) {\n if (31 === fiber.tag) {\n var activityState = fiber.memoizedState;\n null === activityState &&\n ((fiber = fiber.alternate),\n null !== fiber && (activityState = fiber.memoizedState));\n if (null !== activityState) return activityState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nvar assign = Object.assign,\n REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nvar REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\");\nSymbol.for(\"react.view_transition\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n switch (nextRootInstance.nodeType) {\n case 9:\n case 11:\n fiber = (fiber = nextRootInstance.documentElement)\n ? (fiber = fiber.namespaceURI)\n ? getOwnHostContext(fiber)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = nextRootInstance.tagName),\n (nextRootInstance = nextRootInstance.namespaceURI))\n )\n (nextRootInstance = getOwnHostContext(nextRootInstance)),\n (fiber = getChildHostContextProd(nextRootInstance, fiber));\n else\n switch (fiber) {\n case \"svg\":\n fiber = 1;\n break;\n case \"math\":\n fiber = 2;\n break;\n default:\n fiber = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, fiber);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n var context = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar prefix, suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" ()\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$1) {\n control = x$1;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$2) {\n control = x$2;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"\") &&\n (frame = frame.replace(\"\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber, childFiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return fiber.child !== childFiber && null !== childFiber\n ? describeBuiltInComponentFrame(\"Suspense Fallback\")\n : describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return describeNativeComponentFrame(fiber.type, !1);\n case 11:\n return describeNativeComponentFrame(fiber.type.render, !1);\n case 1:\n return describeNativeComponentFrame(fiber.type, !0);\n case 31:\n return describeBuiltInComponentFrame(\"Activity\");\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\",\n previous = null;\n do\n (info += describeFiber(workInProgress, previous)),\n (previous = workInProgress),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionUpdateLane = 256,\n nextTransitionDeferredLane = 262144,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n return 128;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n return lanes & 261888;\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 3932160;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes, rootHasPendingCommit) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n root = root.warmLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = nonIdlePendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = pendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (rootHasPendingCommit = wipLanes & -wipLanes),\n suspendedLanes >= rootHasPendingCommit ||\n (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n case 64:\n return currentTime + 250;\n case 16:\n case 32:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$7 = 31 - clz32(remainingLanes),\n lane = 1 << index$7;\n entanglements[index$7] = 0;\n expirationTimes[index$7] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$7];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$7] = null, index$7 = 0;\n index$7 < hiddenUpdatesForLane.length;\n index$7++\n ) {\n var update = hiddenUpdatesForLane[index$7];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 261930);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction getBumpedLaneForHydration(root, renderLanes) {\n var renderLane = renderLanes & -renderLanes;\n renderLane =\n 0 !== (renderLane & 42) ? 1 : getBumpedLaneForHydrationByLane(renderLane);\n return 0 !== (renderLane & (root.suspendedLanes | renderLanes))\n ? 0\n : renderLane;\n}\nfunction getBumpedLaneForHydrationByLane(lane) {\n switch (lane) {\n case 2:\n lane = 1;\n break;\n case 8:\n lane = 4;\n break;\n case 32:\n lane = 16;\n break;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n lane = 128;\n break;\n case 268435456:\n lane = 134217728;\n break;\n default:\n lane = 0;\n }\n return lane;\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentHydrationBoundary(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentHydrationBoundary(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 31 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$10 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node, valueField, currentValue) {\n var descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n );\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n if (!node._valueTracker) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\";\n node._valueTracker = trackValueOnNode(\n node,\n valueField,\n \"\" + node[valueField]\n );\n }\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n ) {\n track(element);\n return;\n }\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n track(element);\n}\nfunction setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n track(element);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n setValueForStyle(node, styleName$16, styleName);\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nfunction noop$1() {}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$286;\n if (canUseDOM) {\n var isSupported$jscomp$inline_427 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_427) {\n var element$jscomp$inline_428 = document.createElement(\"div\");\n element$jscomp$inline_428.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_427 =\n \"function\" === typeof element$jscomp$inline_428.oninput;\n }\n JSCompiler_inline_result$jscomp$286 = isSupported$jscomp$inline_427;\n } else JSCompiler_inline_result$jscomp$286 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$286 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\n \" \"\n );\nsimpleEventPluginEvents.push(\"scrollEnd\");\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n return 3 === sourceFiber.tag\n ? ((parent = sourceFiber.stateNode),\n isHidden &&\n null !== update &&\n ((isHidden = 31 - clz32(lane)),\n (sourceFiber = parent.hiddenUpdates),\n (alternate = sourceFiber[isHidden]),\n null === alternate\n ? (sourceFiber[isHidden] = [update])\n : alternate.push(update),\n (update.lane = lane | 536870912)),\n parent)\n : null;\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {};\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 65011712;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 65011714;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (type) {\n case REACT_ACTIVITY_TYPE:\n return (\n (type = createFiberImplClass(31, pendingProps, key, mode)),\n (type.elementType = REACT_ACTIVITY_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromDehydratedFragment(dehydratedNode) {\n var fiber = createFiberImplClass(18, null, null, 0);\n fiber.stateNode = dehydratedNode;\n return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nvar CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nfunction restoreSuspendedTreeContext(workInProgress, suspendedContext) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextId = suspendedContext.id;\n treeContextOverflow = suspendedContext.overflow;\n treeContextProvider = workInProgress;\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(\n formatProdErrorMessage(\n 418,\n 1 < arguments.length && void 0 !== arguments[1] && arguments[1]\n ? \"text\"\n : \"HTML\",\n \"\"\n )\n );\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber, !0);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 5:\n case 31:\n case 13:\n rootOrSingletonContext = !1;\n return;\n case 27:\n case 3:\n rootOrSingletonContext = !0;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var tag = fiber.tag,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {\n if ((JSCompiler_temp = 5 === tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else if (31 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else\n 27 === tag\n ? ((tag = nextHydratableInstance),\n isSingletonScope(fiber.type)\n ? ((fiber = previousHydratableOnEnteringScopedSingleton),\n (previousHydratableOnEnteringScopedSingleton = null),\n (nextHydratableInstance = fiber))\n : (nextHydratableInstance = tag))\n : (nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null);\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction upgradeHydrationErrorsToRecoverable() {\n var queuedErrors = hydrationErrors;\n null !== queuedErrors &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = queuedErrors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n queuedErrors\n ),\n (hydrationErrors = null));\n return queuedErrors;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber$1 = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber$1 = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber$1, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n globalMostRecentTransitionTime = now();\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n SuspenseActionException = Error(formatProdErrorMessage(542)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$1, noop$1), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$1, noop$1);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nfunction resolveLazy(lazyType) {\n try {\n var init = lazyType._init;\n return init(lazyType._payload);\n } catch (x) {\n if (null !== x && \"object\" === typeof x && \"function\" === typeof x.then)\n throw ((suspendedThenable = x), SuspenseException);\n throw x;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nfunction checkIfUseWrappedInAsyncCatch(rejectedReason) {\n if (\n rejectedReason === SuspenseException ||\n rejectedReason === SuspenseActionException\n )\n throw Error(formatProdErrorMessage(483));\n}\nvar thenableState$1 = null,\n thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectTypeImpl(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 67108866), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 67108866;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 67108866);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n createChild(returnFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException || x === SuspenseActionException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nvar currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushDehydratedActivitySuspenseHandler(fiber) {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, fiber);\n null === shellBoundary && (shellBoundary = fiber);\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n 22 === fiber.tag\n ? (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary && (shellBoundary = fiber))\n : reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state ||\n isSuspenseInstancePending(state) ||\n isSuspenseInstanceFallback(state))\n )\n return node;\n } else if (\n 19 === node.tag &&\n (\"forwards\" === node.memoizedProps.revealOrder ||\n \"backwards\" === node.memoizedProps.revealOrder ||\n \"unstable_legacy-backwards\" === node.memoizedProps.revealOrder ||\n \"together\" === node.memoizedProps.revealOrder)\n ) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar renderLanes = 0,\n currentlyRenderingFiber = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction createFunctionComponentUpdateQueue() {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n}\nfunction useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$60 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n gesture: update.gesture,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$60 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$66) {\n onActionError(actionQueue, node, error$66);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n if (\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n )\n try {\n var state = useThenable(currentStateHook);\n } catch (x) {\n if (x === SuspenseException) throw SuspenseActionException;\n throw x;\n }\n else state = currentStateHook;\n currentStateHook = updateWorkInProgressHook();\n var actionQueue = currentStateHook.queue,\n dispatch = actionQueue.dispatch;\n action !== currentStateHook.memoizedState &&\n ((currentlyRenderingFiber.flags |= 2048),\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n actionStateActionEffect.bind(null, actionQueue, action),\n null\n ));\n return [state, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushSimpleEffect(tag, inst, create, deps) {\n tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };\n inst = currentlyRenderingFiber.updateQueue;\n null === inst &&\n ((inst = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = inst));\n create = inst.lastEffect;\n null === create\n ? (inst.lastEffect = tag.next = tag)\n : ((deps = create.next),\n (create.next = tag),\n (tag.next = deps),\n (inst.lastEffect = tag));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber.flags |= fiberFlags;\n hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n { destroy: void 0 },\n create,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))\n : ((currentlyRenderingFiber.flags |= fiberFlags),\n (hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n inst,\n create,\n deps\n )));\n}\nfunction mountEffect(create, deps) {\n mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n updateEffectImpl(2048, 8, create, deps);\n}\nfunction useEffectEventImpl(payload) {\n currentlyRenderingFiber.flags |= 4;\n var componentUpdateQueue = currentlyRenderingFiber.updateQueue;\n if (null === componentUpdateQueue)\n (componentUpdateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = componentUpdateQueue),\n (componentUpdateQueue.events = [payload]);\n else {\n var events = componentUpdateQueue.events;\n null === events\n ? (componentUpdateQueue.events = [payload])\n : events.push(payload);\n }\n}\nfunction updateEvent(callback) {\n var ref = updateWorkInProgressHook().memoizedState;\n useEffectEventImpl({ ref: ref, nextImpl: callback });\n return function () {\n if (0 !== (executionContext & 2)) throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (\n void 0 === initialValue ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (\n 0 === (renderLanes & 42) ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var stateHook = ensureFormComponentIsStateful(formFiber);\n null === stateHook.next && (stateHook = formFiber.alternate.memoizedState);\n dispatchSetStateInternal(\n formFiber,\n stateHook.next.queue,\n {},\n requestUpdateLane()\n );\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$69 = enqueueUpdate(provider, fiber, lane);\n null !== root$69 &&\n (scheduleUpdateOnFiber(root$69, provider, lane),\n entangleTransitions(root$69, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber ||\n (null !== alternate && alternate === currentlyRenderingFiber)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194048)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n useHostTransitionStatus: throwInvalidHookError,\n useFormState: throwInvalidHookError,\n useActionState: throwInvalidHookError,\n useOptimistic: throwInvalidHookError,\n useMemoCache: throwInvalidHookError,\n useCacheRefresh: throwInvalidHookError\n};\nContextOnlyDispatcher.useEffectEvent = throwInvalidHookError;\nvar HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \"_\" + identifierPrefix + \"R_\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \"_\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \"_\" +\n identifierPrefix +\n \"r_\" +\n JSCompiler_inline_result.toString(32) +\n \"_\");\n return (hook.memoizedState = identifierPrefix);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: mountActionState,\n useActionState: mountActionState,\n useOptimistic: function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber\n ));\n },\n useEffectEvent: function (callback) {\n var hook = mountWorkInProgressHook(),\n ref = { impl: callback };\n hook.memoizedState = ref;\n return function () {\n if (0 !== (executionContext & 2))\n throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n }\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: updateActionState,\n useActionState: updateActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n };\nHooksDispatcherOnUpdate.useEffectEvent = updateEvent;\nvar HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: rerenderActionState,\n useActionState: rerenderActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n};\nHooksDispatcherOnRerender.useEffectEvent = updateEvent;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$73 in Component)\n void 0 === newProps[propName$73] &&\n (newProps[propName$73] = Component[propName$73]);\n }\n return newProps;\n}\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$74) {\n setTimeout(function () {\n throw e$74;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$75) {\n setTimeout(function () {\n throw e$75;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 31:\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (wrapperError = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n nextProps\n) {\n var nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n null === current &&\n null === workInProgress.stateNode &&\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n if (\"hidden\" === nextProps.mode) {\n if (0 !== (workInProgress.flags & 128)) {\n prevState =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextProps = workInProgress.child = current.child;\n for (nextChildren = 0; null !== nextProps; )\n (nextChildren =\n nextChildren | nextProps.lanes | nextProps.childLanes),\n (nextProps = nextProps.sibling);\n nextProps = nextChildren & ~prevState;\n } else (nextProps = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n prevState,\n renderLanes,\n nextProps\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (nextProps = workInProgress.lanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes,\n nextProps\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction bailoutOffscreenComponent(current, workInProgress) {\n (null !== current && 22 === current.tag) ||\n null !== workInProgress.stateNode ||\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n return workInProgress.sibling;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes,\n remainingChildLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n workInProgress.childLanes = remainingChildLanes;\n return null;\n}\nfunction mountActivityChildren(workInProgress, nextProps) {\n nextProps = mountWorkInProgressOffscreenFiber(\n { mode: nextProps.mode, children: nextProps.children },\n workInProgress.mode\n );\n nextProps.ref = workInProgress.ref;\n workInProgress.child = nextProps;\n nextProps.return = workInProgress;\n return nextProps;\n}\nfunction retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountActivityChildren(workInProgress, workInProgress.pendingProps);\n current.flags |= 2;\n popSuspenseHandler(workInProgress);\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateActivityComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n didSuspend = 0 !== (workInProgress.flags & 128);\n workInProgress.flags &= -129;\n if (null === current) {\n if (isHydrating) {\n if (\"hidden\" === nextProps.mode)\n return (\n (current = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.lanes = 536870912),\n bailoutOffscreenComponent(null, current)\n );\n pushDehydratedActivitySuspenseHandler(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" === current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n workInProgress.lanes = 536870912;\n return null;\n }\n return mountActivityChildren(workInProgress, nextProps);\n }\n var prevState = current.memoizedState;\n if (null !== prevState) {\n var dehydrated = prevState.dehydrated;\n pushDehydratedActivitySuspenseHandler(workInProgress);\n if (didSuspend)\n if (workInProgress.flags & 256)\n (workInProgress.flags &= -257),\n (workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n ));\n else if (null !== workInProgress.memoizedState)\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null);\n else throw Error(formatProdErrorMessage(558));\n else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (didSuspend = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || didSuspend)\n ) {\n nextProps = workInProgressRoot;\n if (\n null !== nextProps &&\n ((dehydrated = getBumpedLaneForHydration(nextProps, renderLanes)),\n 0 !== dehydrated && dehydrated !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = dehydrated),\n enqueueConcurrentRenderForLane(current, dehydrated),\n scheduleUpdateOnFiber(nextProps, current, dehydrated),\n SelectiveHydrationException)\n );\n renderDidSuspendDelayIfPossible();\n workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n (current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(dehydrated.nextSibling)),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.flags |= 4096);\n return workInProgress;\n }\n current = createWorkInProgress(current.child, {\n mode: nextProps.mode,\n children: nextProps.children\n });\n current.ref = workInProgress.ref;\n workInProgress.child = current;\n current.return = workInProgress;\n return current;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 4194816);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 4194816;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0,\n hydrationErrors: null\n};\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" !== current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n isSuspenseInstanceFallback(current)\n ? (workInProgress.lanes = 32)\n : (workInProgress.lanes = 536870912);\n return null;\n }\n var nextPrimaryChildren = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = workInProgress.mode),\n (nextPrimaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextPrimaryChildren },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.sibling = nextProps),\n (workInProgress.child = nextPrimaryChildren),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(null, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren);\n }\n var prevState = current.memoizedState;\n if (\n null !== prevState &&\n ((nextPrimaryChildren = prevState.dehydrated), null !== nextPrimaryChildren)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n showFallback\n )),\n (nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = bailoutOffscreenComponent(null, nextProps)));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n isSuspenseInstanceFallback(nextPrimaryChildren))\n ) {\n JSCompiler_temp =\n nextPrimaryChildren.nextSibling &&\n nextPrimaryChildren.nextSibling.dataset;\n if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n JSCompiler_temp = digest;\n nextProps = Error(formatProdErrorMessage(419));\n nextProps.stack = \"\";\n nextProps.digest = JSCompiler_temp;\n queueHydrationError({ value: nextProps, source: null, stack: null });\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_temp)\n ) {\n JSCompiler_temp = workInProgressRoot;\n if (\n null !== JSCompiler_temp &&\n ((nextProps = getBumpedLaneForHydration(JSCompiler_temp, renderLanes)),\n 0 !== nextProps && nextProps !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n SelectiveHydrationException)\n );\n isSuspenseInstancePending(nextPrimaryChildren) ||\n renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n isSuspenseInstancePending(nextPrimaryChildren)\n ? ((workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n (workInProgress = null))\n : ((current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(\n nextPrimaryChildren.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (prevState = current.child),\n (digest = prevState.sibling),\n (nextProps = createWorkInProgress(prevState, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags = prevState.subtreeFlags & 65011712),\n null !== digest\n ? (nextPrimaryChildren = createWorkInProgress(\n digest,\n nextPrimaryChildren\n ))\n : ((nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2)),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n bailoutOffscreenComponent(null, nextProps),\n (nextProps = workInProgress.child),\n (nextPrimaryChildren = current.child.memoizedState),\n null === nextPrimaryChildren\n ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes))\n : ((showFallback = nextPrimaryChildren.cachePool),\n null !== showFallback\n ? ((prevState = CacheContext._currentValue),\n (showFallback =\n showFallback.parent !== prevState\n ? { parent: prevState, pool: prevState }\n : showFallback))\n : (showFallback = getSuspendedCache()),\n (nextPrimaryChildren = {\n baseLanes: nextPrimaryChildren.baseLanes | renderLanes,\n cachePool: showFallback\n })),\n (nextProps.memoizedState = nextPrimaryChildren),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(current.child, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n offscreenProps = createFiberImplClass(22, offscreenProps, null, mode);\n offscreenProps.lanes = 0;\n return offscreenProps;\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode,\n treeForkCount\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode,\n treeForkCount: treeForkCount\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode),\n (renderState.treeForkCount = treeForkCount));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n nextProps = nextProps.children;\n var suspenseContext = suspenseStackCursor.current,\n shouldForceFallback = 0 !== (suspenseContext & 2);\n shouldForceFallback\n ? ((suspenseContext = (suspenseContext & 1) | 2),\n (workInProgress.flags |= 128))\n : (suspenseContext &= 1);\n push(suspenseStackCursor, suspenseContext);\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n nextProps = isHydrating ? treeForkCount : 0;\n if (!shouldForceFallback && null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode,\n nextProps\n );\n break;\n case \"backwards\":\n case \"unstable_legacy-backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode,\n nextProps\n );\n break;\n case \"together\":\n initSuspenseListRenderState(\n workInProgress,\n !1,\n null,\n null,\n void 0,\n nextProps\n );\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 31:\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.flags |= 128),\n pushDehydratedActivitySuspenseHandler(workInProgress),\n null\n );\n break;\n case 13:\n var state$102 = workInProgress.memoizedState;\n if (null !== state$102) {\n if (null !== state$102.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n state$102 = 0 !== (renderLanes & workInProgress.childLanes);\n state$102 ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state$102 = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (state$102)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (state$102) break;\n else return null;\n case 22:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n )\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n var props = workInProgress.pendingProps;\n current = resolveLazy(workInProgress.elementType);\n workInProgress.type = current;\n if (\"function\" === typeof current)\n shouldConstruct(current)\n ? ((props = resolveClassComponentProps(current, props)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )));\n else {\n if (void 0 !== current && null !== current) {\n var $$typeof = current.$$typeof;\n if ($$typeof === REACT_FORWARD_REF_TYPE) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n } else if ($$typeof === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n }\n }\n workInProgress = getComponentNameFromType(current) || current;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (props = workInProgress.type),\n ($$typeof = resolveClassComponentProps(\n props,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n props,\n $$typeof,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n props = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n $$typeof = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, props, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n props = nextState.cache;\n pushProvider(workInProgress, CacheContext, props);\n props !== prevState.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n props = nextState.element;\n if (prevState.isDehydrated)\n if (\n ((prevState = {\n element: props,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = prevState),\n (workInProgress.memoizedState = prevState),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else if (props !== $$typeof) {\n $$typeof = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError($$typeof);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else {\n current = workInProgress.stateNode.containerInfo;\n switch (current.nodeType) {\n case 9:\n current = current.body;\n break;\n default:\n current =\n \"HTML\" === current.nodeName\n ? current.ownerDocument.body\n : current;\n }\n nextHydratableInstance = getNextHydratable(current.firstChild);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !0;\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n );\n for (workInProgress.child = renderLanes; renderLanes; )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n }\n else {\n resetHydrationState();\n if (props === $$typeof) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(current, workInProgress, props, renderLanes);\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (props = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n ).createElement(renderLanes)),\n (props[internalInstanceKey] = workInProgress),\n (props[internalPropsKey] = current),\n setInitialProperties(props, renderLanes, current),\n markNodeAsHoistable(props),\n (workInProgress.stateNode = props))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((props = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n ($$typeof = nextHydratableInstance),\n isSingletonScope(workInProgress.type)\n ? ((previousHydratableOnEnteringScopedSingleton = $$typeof),\n (nextHydratableInstance = getNextHydratable(props.firstChild)))\n : (nextHydratableInstance = $$typeof)),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n markRef(current, workInProgress),\n null === current && (workInProgress.flags |= 4194304),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if (($$typeof = props = nextHydratableInstance))\n (props = canHydrateInstance(\n props,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== props\n ? ((workInProgress.stateNode = props),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(props.firstChild)),\n (rootOrSingletonContext = !1),\n ($$typeof = !0))\n : ($$typeof = !1);\n $$typeof || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n $$typeof = workInProgress.type;\n prevState = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n props = prevState.children;\n shouldSetTextContent($$typeof, prevState)\n ? (props = null)\n : null !== nextState &&\n shouldSetTextContent($$typeof, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n (($$typeof = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = $$typeof));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, props, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (props = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (props = workInProgress.pendingProps),\n pushProvider(workInProgress, workInProgress.type, props.value),\n reconcileChildren(current, workInProgress, props.children, renderLanes),\n workInProgress.child\n );\n case 9:\n return (\n ($$typeof = workInProgress.type._context),\n (props = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n ($$typeof = readContext($$typeof)),\n (props = props($$typeof)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 31:\n return updateActivityComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n );\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (props = readContext(CacheContext)),\n null === current\n ? (($$typeof = peekCacheFromPool()),\n null === $$typeof &&\n (($$typeof = workInProgressRoot),\n (prevState = createCache()),\n ($$typeof.pooledCache = prevState),\n prevState.refCount++,\n null !== prevState && ($$typeof.pooledCacheLanes |= renderLanes),\n ($$typeof = prevState)),\n (workInProgress.memoizedState = { parent: props, cache: $$typeof }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, $$typeof))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n ($$typeof = current.memoizedState),\n (prevState = workInProgress.memoizedState),\n $$typeof.parent !== props\n ? (($$typeof = { parent: props, cache: props }),\n (workInProgress.memoizedState = $$typeof),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n $$typeof),\n pushProvider(workInProgress, CacheContext, props))\n : ((props = prevState.cache),\n pushProvider(workInProgress, CacheContext, props),\n props !== $$typeof.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n oldProps,\n newProps,\n renderLanes\n) {\n if ((type = 0 !== (workInProgress.mode & 32))) type = !1;\n if (type) {\n if (\n ((workInProgress.flags |= 16777216),\n (renderLanes & 335544128) === renderLanes)\n )\n if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;\n else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n } else workInProgress.flags &= -16777217;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))\n if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$106 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$106 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$106\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$106.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags & 65011712),\n (subtreeFlags |= child$107.flags & 65011712),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n else\n for (child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags),\n (subtreeFlags |= child$107.flags),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n upgradeHydrationErrorsToRecoverable());\n bubbleProperties(workInProgress);\n return null;\n case 26:\n var type = workInProgress.type,\n nextResource = workInProgress.memoizedState;\n null === current\n ? (markUpdate(workInProgress),\n null !== nextResource\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n null,\n newProps,\n renderLanes\n )))\n : nextResource\n ? nextResource !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : ((current = current.memoizedProps),\n current !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n current,\n newProps,\n renderLanes\n ));\n return null;\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n nextResource = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, nextResource);\n else {\n var ownerDocument = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (nextResource) {\n case 1:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case 2:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n default:\n switch (type) {\n case \"svg\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case \"math\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n case \"script\":\n nextResource = ownerDocument.createElement(\"div\");\n nextResource.innerHTML = \"
\ No newline at end of file diff --git a/backend/src/test/react-example/build/static/js/137.b145ceef.chunk.js b/backend/src/test/react-example/build/static/js/137.b145ceef.chunk.js deleted file mode 100644 index 92fbd42..0000000 --- a/backend/src/test/react-example/build/static/js/137.b145ceef.chunk.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkreact_example=self.webpackChunkreact_example||[]).push([[137],{95137(){}}]); \ No newline at end of file diff --git a/backend/src/test/react-example/build/static/js/main.4eaaaef9.js b/backend/src/test/react-example/build/static/js/main.4eaaaef9.js deleted file mode 100644 index ae39781..0000000 --- a/backend/src/test/react-example/build/static/js/main.4eaaaef9.js +++ /dev/null @@ -1,2 +0,0 @@ -(()=>{var e,t,r,n,a,o={6497(){},21113(){},28929(){},30903(){},33033(){},38475(){},38984(e,t,r){"use strict";var n=r(48431),a=r(9827),o=r(86020),i=r(98490),s=r(99867),l=r(33781),c=r(38963),d=r(23179),u=r(59968),p=r(58359),y=r(56050),h=r(19109),f=r(17617),m=r(4297);const g=[{type:"function",inputs:[{name:"a",internalType:"euint256",type:"bytes32"}],name:"addTwo",outputs:[{name:"",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"uint256EInput",internalType:"bytes",type:"bytes"}],name:"addTwoEOA",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"payable"},{type:"function",inputs:[{name:"a",internalType:"euint256",type:"bytes32"}],name:"addTwoScalar",outputs:[{name:"",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"getFee",outputs:[{name:"",internalType:"uint256",type:"uint256"}],stateMutability:"pure"},{type:"error",inputs:[],name:"FeeNotPaid"}];var b=r(23619),v=r(42295);function w({chain:e,pepper:t,privateKey:r,hostChainRpcUrl:a,value:w,addTwoAddress:x}){const[j,E]=(0,n.useState)(null),[T,S]=(0,n.useState)(null),[O,P]=(0,n.useState)(null),[k,C]=(0,n.useState)(!1),[$,F]=(0,n.useState)(null),[A,_]=(0,n.useState)(null),N=(0,n.useCallback)(async t=>{const n=(0,f.R)(r),o=(0,c.x)({...e,fees:{maxPriorityFeePerGas:(0,d._)("10")}}),i=(0,u.F)({chain:o,transport:(0,p.L)(a),account:n}),s=(0,y.l)({chain:o,transport:(0,p.L)(a)}),l=(0,h.PF)({abi:g,address:x,client:i});let m;try{const{result:e}=await l.simulate.addTwoEOA([t],{value:(0,b.g)("0.01")});if(!e)throw new Error("Failed to get result from simulation");m=e,console.log(`Result handle: ${m}`),F(m)}catch(e){throw console.error(`Error simulating the call to add 2 to ${t}: ${e}`),e}try{const e=await l.write.addTwoEOA([t],{value:(0,b.g)("0.01")});console.log(`Transaction hash: ${e}`);const r=await s.waitForTransactionReceipt({hash:e});console.log(`Transaction included in block ${r.blockNumber}`),F(m)}catch(e){throw console.error(`Error writing the call to add 2 to ${t}: ${e}`),e}},[r,e,a,x]),M=(0,n.useCallback)(async()=>{if(!T||!$)return console.error("Cannot decrypt: incoLite or resultHandle is missing"),void P("Cannot decrypt: missing incoLite or resultHandle");console.log(`Starting decryption for handle: ${$}`);try{const t=await(async(e,t,r,n,a)=>{const o=(0,f.R)(t),i=(0,c.x)({...r,fees:{maxPriorityFeePerGas:(0,d._)("10")}}),s=(0,u.F)({chain:i,transport:(0,p.L)(n),account:o});await new Promise(e=>setTimeout(e,2e3));for(let t=1;t<=10;t++)try{const r=await e.attestedDecrypt(s,[a]);return t>1&&console.log(`Decrypt succeeded on attempt ${t}`),r[0]?.plaintext?.value}catch(e){const r=e instanceof Error?e.message:String(e),n=String(e),a=e?.status||e?.statusCode||e?.code,o=500===a||503===a||"500"===a||"503"===a||r.includes("500")||r.includes("503")||r.includes("Internal Server Error")||r.includes("Service Unavailable")||r.includes("AttestedDecrypt")||n.includes("500")||n.includes("503")||n.includes("Internal Server Error")||n.includes("Service Unavailable");if(10===t||!o)throw console.error(`Error decrypting result handle after ${t} attempts:`,e),console.error(`Error details - message: ${r}, string: ${n}, statusCode: ${a}`),e;const i=1e3*Math.pow(1.5,t-1);console.log(`Decrypt attempt ${t} failed, retrying in ${Math.round(i)}ms... (Error: ${r.substring(0,100)})`),await new Promise(e=>setTimeout(e,i))}throw new Error("Failed to decrypt after all retries")})(T,r,e,a,$);console.log(`Decryption successful: ${t}`),_(t?.toString()??null),P(null)}catch(e){console.error("Decryption error:",e),_(null),P(e instanceof Error?e.message:String(e))}},[T,r,e,a,$]);return(0,n.useEffect)(()=>{j&&N(j).catch(e=>{console.error("Error in handleCiphertextSubmit:",e),P(e instanceof Error?e.message:String(e))})},[j,N]),(0,v.jsxs)("div",{children:[(0,v.jsx)("h1",{children:"Inco Test"}),(0,v.jsxs)("p",{children:[(0,v.jsx)("strong",{children:"Value:"})," ",w.toString()]}),(0,v.jsx)("button",{onClick:async()=>{C(!0);try{const n=await(async(e,t)=>e===m.N?await s.l.localNode(t):await s.l.latest(t,e.id))(e,t);S(n);const g=await(async(e,t,r,n,a,g)=>{let b;b=r===m.N?(await s.l.localNode("testnet")).deployment.senderPrivateKey:t;const v=(0,f.R)(b),w=(0,c.x)({...r,fees:{maxPriorityFeePerGas:(0,d._)("10")}}),x=(0,u.F)({chain:w,transport:(0,p.L)(n),account:v}),j=(0,y.l)({chain:w,transport:(0,p.L)(n)}),E=(0,h.PF)({abi:o.G,address:e.executorAddress,client:j}),T=await E.read.incoVerifier();return(0,h.PF)({abi:i.K,address:T,client:j}),await e.encrypt(a,{accountAddress:x.account.address,dappAddress:g,handleType:l.uU.euint256})})(n,r,e,a,w,x);E(g),P(null)}catch(e){E(null),P(e instanceof Error?e.message:String(e))}finally{C(!1)}},disabled:k,children:k?"Encrypting…":"Encrypt value"}),j&&(0,v.jsxs)("p",{"data-testid":"ciphertext",children:[(0,v.jsx)("strong",{children:"Ciphertext:"})," ",j]}),$&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)("p",{"data-testid":"result-handle",children:[(0,v.jsx)("strong",{children:"Result handle:"})," ",$]}),(0,v.jsx)("button",{onClick:M,disabled:!$,children:$?"Decrypt result":"Result handle not found"}),A&&(0,v.jsxs)("p",{"data-testid":"decrypted-result",children:[(0,v.jsx)("strong",{children:"Decrypted result:"})," ",A]})]}),O&&(0,v.jsxs)("p",{role:"alert",children:[(0,v.jsx)("strong",{children:"Error:"})," ",O]})]})}(0,a.createRoot)(document.getElementById("root")).render((0,v.jsx)(n.StrictMode,{children:(0,v.jsx)(w,{chain:m.N,pepper:"testnet",privateKey:"0x0",hostChainRpcUrl:"http://localhost:8545",value:100n,addTwoAddress:"0x0"})}))},42187(){},46377(){},91153(){},92110(){}},i={};function s(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={id:e,loaded:!1,exports:{}};return o[e].call(r.exports,r,r.exports,s),r.loaded=!0,r.exports}s.m=o,e=[],s.O=(t,r,n,a)=>{if(!r){var o=1/0;for(d=0;d=a)&&Object.keys(s.O).every(e=>s.O[e](r[l]))?r.splice(l--,1):(i=!1,a0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[r,n,a]},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,s.t=function(e,n){if(1&n&&(e=this(e)),8&n)return e;if("object"==typeof e&&e){if(4&n&&e.__esModule)return e;if(16&n&&"function"==typeof e.then)return e}var a=Object.create(null);s.r(a);var o={};t=t||[null,r({}),r([]),r(r)];for(var i=2&n&&e;("object"==typeof i||"function"==typeof i)&&!~t.indexOf(i);i=r(i))Object.getOwnPropertyNames(i).forEach(t=>o[t]=()=>e[t]);return o.default=()=>e,s.d(a,o),a},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,r)=>(s.f[r](e,t),t),[])),s.u=e=>"static/js/"+e+".b145ceef.chunk.js",s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n={},a="react-example:",s.l=(e,t,r,o)=>{if(n[e])n[e].push(t);else{var i,l;if(void 0!==r)for(var c=document.getElementsByTagName("script"),d=0;d{i.onerror=i.onload=null,clearTimeout(y);var a=n[e];if(delete n[e],i.parentNode&&i.parentNode.removeChild(i),a&&a.forEach(e=>e(r)),t)return t(r)},y=setTimeout(p.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=p.bind(null,i.onerror),i.onload=p.bind(null,i.onload),l&&document.head.appendChild(i)}},s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),s.p="/",(()=>{var e={792:0};s.f.j=(t,r)=>{var n=s.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var a=new Promise((r,a)=>n=e[t]=[r,a]);r.push(n[2]=a);var o=s.p+s.u(t),i=new Error;s.l(o,r=>{if(s.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;i.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",i.name="ChunkLoadError",i.type=a,i.request=o,n[1](i)}},"chunk-"+t,t)}},s.O.j=t=>0===e[t];var t=(t,r)=>{var n,a,[o,i,l]=r,c=0;if(o.some(t=>0!==e[t])){for(n in i)s.o(i,n)&&(s.m[n]=i[n]);if(l)var d=l(s)}for(t&&t(r);cs(38984));l=s.O(l)})(); -//# sourceMappingURL=main.4eaaaef9.js.map \ No newline at end of file diff --git a/backend/src/test/react-example/build/static/js/main.4eaaaef9.js.map b/backend/src/test/react-example/build/static/js/main.4eaaaef9.js.map deleted file mode 100644 index 00d65a8..0000000 --- a/backend/src/test/react-example/build/static/js/main.4eaaaef9.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/main.4eaaaef9.js","mappings":"UAAIA,ECCAC,EADAC,ECAAC,EACAC,E,oPCMG,MCNMC,EAAY,CACvB,CACEC,KAAM,WACNC,OAAQ,CAAC,CAAEC,KAAM,IAAKC,aAAc,WAAYH,KAAM,YACtDE,KAAM,SACNE,QAAS,CAAC,CAAEF,KAAM,GAAIC,aAAc,WAAYH,KAAM,YACtDK,gBAAiB,cAEnB,CACEL,KAAM,WACNC,OAAQ,CAAC,CAAEC,KAAM,gBAAiBC,aAAc,QAASH,KAAM,UAC/DE,KAAM,YACNE,QAAS,CAAC,CAAEF,KAAM,SAAUC,aAAc,WAAYH,KAAM,YAC5DK,gBAAiB,WAEnB,CACEL,KAAM,WACNC,OAAQ,CAAC,CAAEC,KAAM,IAAKC,aAAc,WAAYH,KAAM,YACtDE,KAAM,eACNE,QAAS,CAAC,CAAEF,KAAM,GAAIC,aAAc,WAAYH,KAAM,YACtDK,gBAAiB,cAEnB,CACEL,KAAM,WACNC,OAAQ,GACRC,KAAM,SACNE,QAAS,CAAC,CAAEF,KAAM,GAAIC,aAAc,UAAWH,KAAM,YACrDK,gBAAiB,QAEnB,CAAEL,KAAM,QAASC,OAAQ,GAAIC,KAAM,e,0BCVtB,SAASI,GAAS,MAC/BC,EAAK,OACLC,EAAM,WACNC,EAAU,gBACVC,EAAe,MACfC,EAAK,cACLC,IAEA,MAAOC,EAAYC,IAAiBC,EAAAA,EAAAA,UAAwB,OACrDC,EAAUC,IAAeF,EAAAA,EAAAA,UAA2B,OACpDG,EAAOC,IAAYJ,EAAAA,EAAAA,UAAwB,OAC3CK,EAAcC,IAAmBN,EAAAA,EAAAA,WAAS,IAC1CO,EAAcC,IAAmBR,EAAAA,EAAAA,UAAqB,OACtDS,EAAiBC,IAAsBV,EAAAA,EAAAA,UAAwB,MAyBhEW,GAAyBC,EAAAA,EAAAA,aAAYC,UACzC,MAAMC,GAAUC,EAAAA,EAAAA,GAAoBrB,GAC9BsB,GAAYC,EAAAA,EAAAA,GAAY,IACzBzB,EACH0B,KAAM,CAAEC,sBAAsBC,EAAAA,EAAAA,GAAU,SAEpCC,GAAeC,EAAAA,EAAAA,GAAmB,CACtC9B,MAAOwB,EACPO,WAAWC,EAAAA,EAAAA,GAAK7B,GAChBmB,YAEIW,GAAeC,EAAAA,EAAAA,GAAmB,CACtClC,MAAOwB,EACPO,WAAWC,EAAAA,EAAAA,GAAK7B,KAEZgC,GAAOC,EAAAA,EAAAA,IAAY,CACvBC,IAAK7C,EACL8C,QAASjC,EACTkC,OAAQV,IAEV,IAAIW,EACJ,IACE,MAAQC,OAAQ1B,SAAuBoB,EAAKO,SAASC,UAAU,CAACrC,GAAa,CAAEF,OAAOwC,EAAAA,EAAAA,GAAW,UACjG,IAAK7B,EACH,MAAM,IAAI8B,MAAM,wCAElBL,EAAkBzB,EAClB+B,QAAQC,IAAI,kBAAkBP,KAC9BxB,EAAgBwB,EAClB,CAAE,MAAOQ,GAEP,MADAF,QAAQnC,MAAM,yCAAyCL,MAAe0C,KAChEA,CACR,CAEA,IACE,MAAMC,QAAed,EAAKe,MAAMP,UAAU,CAACrC,GAAa,CAAEF,OAAOwC,EAAAA,EAAAA,GAAW,UAC5EE,QAAQC,IAAI,qBAAqBE,KACjC,MAAME,QAAgBlB,EAAamB,0BAA0B,CAAEC,KAAMJ,IACrEH,QAAQC,IAAI,iCAAiCI,EAAQG,eAErDtC,EAAgBwB,EAClB,CAAE,MAAOQ,GAEP,MADAF,QAAQnC,MAAM,sCAAsCL,MAAe0C,KAC7DA,CACR,GACC,CAAC9C,EAAYF,EAAOG,EAAiBE,IAElCkD,GAAgBnC,EAAAA,EAAAA,aAAYC,UAChC,IAAKZ,IAAaM,EAGhB,OAFA+B,QAAQnC,MAAM,4DACdC,EAAS,oDAGXkC,QAAQC,IAAI,mCAAmChC,KAC/C,IACE,MAAMyC,OFjDWnC,OACrBoC,EACAvD,EACAF,EACAG,EACAuD,KAEA,MAAMpC,GAAUC,EAAAA,EAAAA,GAAoBrB,GAC9BsB,GAAYC,EAAAA,EAAAA,GAAY,IACzBzB,EACH0B,KAAM,CAAEC,sBAAsBC,EAAAA,EAAAA,GAAU,SAEpCC,GAAeC,EAAAA,EAAAA,GAAmB,CACtC9B,MAAOwB,EACPO,WAAWC,EAAAA,EAAAA,GAAK7B,GAChBmB,kBAII,IAAIqC,QAASC,GAAYC,WAAWD,EAAS,MAOnD,IAAK,IAAIE,EAAU,EAAGA,GAJH,GAI0BA,IAC3C,IACE,MAAMN,QAAkBC,EAAUM,gBAAgBlC,EAAc,CAAC6B,IAIjE,OAHII,EAAU,GACZhB,QAAQC,IAAI,gCAAgCe,KAEvCN,EAAU,IAAIQ,WAAW5D,KAClC,CAAE,MAAO4C,GACP,MAAMiB,EAAejB,aAAeH,MAAQG,EAAIkB,QAAUC,OAAOnB,GAC3DoB,EAAcD,OAAOnB,GAErBqB,EAAcrB,GAAasB,QAAWtB,GAAaqB,YAAerB,GAAauB,KAE/EC,EACW,MAAfH,GACe,MAAfA,GACe,QAAfA,GACe,QAAfA,GACAJ,EAAaQ,SAAS,QACtBR,EAAaQ,SAAS,QACtBR,EAAaQ,SAAS,0BACtBR,EAAaQ,SAAS,wBACtBR,EAAaQ,SAAS,oBACtBL,EAAYK,SAAS,QACrBL,EAAYK,SAAS,QACrBL,EAAYK,SAAS,0BACrBL,EAAYK,SAAS,uBAEvB,GAhCe,KAgCXX,IAA2BU,EAG7B,MAFA1B,QAAQnC,MAAM,wCAAwCmD,cAAqBd,GAC3EF,QAAQnC,MAAM,4BAA4BsD,cAAyBG,kBAA4BC,KACzFrB,EAGR,MAAM0B,EArCY,IAqCYC,KAAKC,IApCjB,IAoCoCd,EAAU,GAChEhB,QAAQC,IACN,mBAAmBe,yBAA+Ba,KAAKE,MAAMH,mBAAuBT,EAAaa,UAAU,EAAG,eAE1G,IAAInB,QAASC,GAAYC,WAAWD,EAASc,GACrD,CAGF,MAAM,IAAI7B,MAAM,wCEnBYkC,CAAQtE,EAAUP,EAAYF,EAAOG,EAAiBY,GAC9E+B,QAAQC,IAAI,0BAA0BS,KACtCtC,EAAmBsC,GAAWwB,YAAc,MAC5CpE,EAAS,KACX,CAAE,MAAOoC,GACPF,QAAQnC,MAAM,oBAAqBqC,GACnC9B,EAAmB,MACnBN,EAASoC,aAAeH,MAAQG,EAAIkB,QAAUC,OAAOnB,GACvD,GACC,CAACvC,EAAUP,EAAYF,EAAOG,EAAiBY,IAUlD,OARAkE,EAAAA,EAAAA,WAAU,KACJ3E,GACFa,EAAuBb,GAAmB4E,MAAOlC,IAC/CF,QAAQnC,MAAM,mCAAoCqC,GAClDpC,EAASoC,aAAeH,MAAQG,EAAIkB,QAAUC,OAAOnB,OAGxD,CAAC1C,EAAYa,KAEdgE,EAAAA,EAAAA,MAAA,OAAAC,SAAA,EACEC,EAAAA,EAAAA,KAAA,MAAAD,SAAI,eACJD,EAAAA,EAAAA,MAAA,KAAAC,SAAA,EACEC,EAAAA,EAAAA,KAAA,UAAAD,SAAQ,WAAe,IAAEhF,EAAM4E,eAEjCK,EAAAA,EAAAA,KAAA,UAAQC,QAxGmBjE,UAC7BP,GAAgB,GAChB,IAEE,MAAML,OF/BkBY,OAAOrB,EAAcC,IAC7CD,IAAUuF,EAAAA,QACCC,EAAAA,EAAUC,UAAUxF,SAEtBuF,EAAAA,EAAUE,OAAOzF,EAAQD,EAAM2F,IE2BjBC,CAAe5F,EAAOC,GAC7CS,EAAYD,GACZ,MAAMoF,OF3BWxE,OACrBoC,EACAvD,EACAF,EACAG,EACAC,EACAC,KAEA,IAAIyF,EAGFA,EAFE9F,IAAUuF,EAAAA,SACMC,EAAAA,EAAUC,UAAU,YAClBM,WAAWC,iBAEf9F,EAElB,MAAMoB,GAAUC,EAAAA,EAAAA,GAAoBuE,GAC9BtE,GAAYC,EAAAA,EAAAA,GAAY,IACzBzB,EACH0B,KAAM,CAAEC,sBAAsBC,EAAAA,EAAAA,GAAU,SAEpCC,GAAeC,EAAAA,EAAAA,GAAmB,CACtC9B,MAAOwB,EACPO,WAAWC,EAAAA,EAAAA,GAAK7B,GAChBmB,YAEIW,GAAeC,EAAAA,EAAAA,GAAmB,CACtClC,MAAOwB,EACPO,WAAWC,EAAAA,EAAAA,GAAK7B,KAEZM,GAAW2B,EAAAA,EAAAA,IAAY,CAC3BC,IAAK4D,EAAAA,EACL3D,QAASmB,EAAUyC,gBACnB3D,OAAQN,IAEJkE,QAA4B1F,EAAS2F,KAAKC,eAchD,OAbqBjE,EAAAA,EAAAA,IAAY,CAC/BC,IAAKiE,EAAAA,EACLhE,QAAS6D,EACT5D,OAAQN,UAEewB,EAAU8C,QACjCnG,EACA,CACEoG,eAAgB3E,EAAaP,QAAQgB,QACrCmE,YAAapG,EACbqG,WAAYC,EAAAA,GAAYC,YElBKL,CAC3B9F,EACAP,EACAF,EACAG,EACAC,EACAC,GAEFE,EAAcsF,GACdjF,EAAS,KACX,CAAE,MAAOoC,GACPzC,EAAc,MACdK,EAASoC,aAAeH,MAAQG,EAAIkB,QAAUC,OAAOnB,GACvD,CAAE,QACAlC,GAAgB,EAClB,GAmF2C+F,SAAUhG,EAAauE,SAC7DvE,EAAe,cAAgB,kBAEjCP,IACC6E,EAAAA,EAAAA,MAAA,KAAG,cAAY,aAAYC,SAAA,EACzBC,EAAAA,EAAAA,KAAA,UAAAD,SAAQ,gBAAoB,IAAE9E,KAGjCS,IACCoE,EAAAA,EAAAA,MAAA2B,EAAAA,SAAA,CAAA1B,SAAA,EACAD,EAAAA,EAAAA,MAAA,KAAG,cAAY,gBAAeC,SAAA,EAC5BC,EAAAA,EAAAA,KAAA,UAAAD,SAAQ,mBAAuB,IAAErE,MAEnCsE,EAAAA,EAAAA,KAAA,UAAQC,QAAS/B,EAAesD,UAAW9F,EAAaqE,SACpDrE,EAA2C,iBAA5B,4BAElBE,IACCkE,EAAAA,EAAAA,MAAA,KAAG,cAAY,mBAAkBC,SAAA,EAC/BC,EAAAA,EAAAA,KAAA,UAAAD,SAAQ,sBAA0B,IAAEnE,QAKzCN,IACCwE,EAAAA,EAAAA,MAAA,KAAG4B,KAAK,QAAO3B,SAAA,EACbC,EAAAA,EAAAA,KAAA,UAAAD,SAAQ,WAAe,IAAEzE,OAKnC,ECnKaqG,EAAAA,EAAAA,YAAWC,SAASC,eAAe,SAC3CC,QACH9B,EAAAA,EAAAA,KAAC+B,EAAAA,WAAU,CAAAhC,UACTC,EAAAA,EAAAA,KAACtF,EAAQ,CACPC,MAAOuF,EAAAA,EACPtF,OAAO,UACPC,WAAW,MACXC,gBAAgB,wBAChBC,MAAO,KACPC,cAAc,U,2CCbhBgH,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaE,QAGrB,IAAIC,EAASN,EAAyBE,GAAY,CACjD5B,GAAI4B,EACJK,QAAQ,EACRF,QAAS,CAAC,GAUX,OANAG,EAAoBN,GAAUO,KAAKH,EAAOD,QAASC,EAAQA,EAAOD,QAASJ,GAG3EK,EAAOC,QAAS,EAGTD,EAAOD,OACf,CAGAJ,EAAoBS,EAAIF,EP5BpB1I,EAAW,GACfmI,EAAoBU,EAAI,CAACvF,EAAQwF,EAAUC,EAAIC,KAC9C,IAAGF,EAAH,CAMA,IAAIG,EAAeC,IACnB,IAASC,EAAI,EAAGA,EAAInJ,EAASoJ,OAAQD,IAAK,CAGzC,IAFA,IAAKL,EAAUC,EAAIC,GAAYhJ,EAASmJ,GACpCE,GAAY,EACPC,EAAI,EAAGA,EAAIR,EAASM,OAAQE,MACpB,EAAXN,GAAsBC,GAAgBD,IAAaO,OAAOC,KAAKrB,EAAoBU,GAAGY,MAAOC,GAASvB,EAAoBU,EAAEa,GAAKZ,EAASQ,KAC9IR,EAASa,OAAOL,IAAK,IAErBD,GAAY,EACTL,EAAWC,IAAcA,EAAeD,IAG7C,GAAGK,EAAW,CACbrJ,EAAS2J,OAAOR,IAAK,GACrB,IAAIS,EAAIb,SACET,IAANsB,IAAiBtG,EAASsG,EAC/B,CACD,CACA,OAAOtG,CAnBP,CAJC0F,EAAWA,GAAY,EACvB,IAAI,IAAIG,EAAInJ,EAASoJ,OAAQD,EAAI,GAAKnJ,EAASmJ,EAAI,GAAG,GAAKH,EAAUG,IAAKnJ,EAASmJ,GAAKnJ,EAASmJ,EAAI,GACrGnJ,EAASmJ,GAAK,CAACL,EAAUC,EAAIC,ICL3B9I,EAAWqJ,OAAOM,eAAkBC,GAASP,OAAOM,eAAeC,GAASA,GAASA,EAAa,UAQtG3B,EAAoB4B,EAAI,SAAS9I,EAAO+I,GAEvC,GADU,EAAPA,IAAU/I,EAAQgJ,KAAKhJ,IAChB,EAAP+I,EAAU,OAAO/I,EACpB,GAAoB,iBAAVA,GAAsBA,EAAO,CACtC,GAAW,EAAP+I,GAAa/I,EAAMiJ,WAAY,OAAOjJ,EAC1C,GAAW,GAAP+I,GAAoC,mBAAf/I,EAAMkJ,KAAqB,OAAOlJ,CAC5D,CACA,IAAImJ,EAAKb,OAAOc,OAAO,MACvBlC,EAAoByB,EAAEQ,GACtB,IAAIE,EAAM,CAAC,EACXrK,EAAiBA,GAAkB,CAAC,KAAMC,EAAS,CAAC,GAAIA,EAAS,IAAKA,EAASA,IAC/E,IAAI,IAAIqK,EAAiB,EAAPP,GAAY/I,GAA0B,iBAAXsJ,GAAyC,mBAAXA,MAA4BtK,EAAeuK,QAAQD,GAAUA,EAAUrK,EAASqK,GAC1JhB,OAAOkB,oBAAoBF,GAASG,QAAShB,GAASY,EAAIZ,GAAO,IAAOzI,EAAMyI,IAI/E,OAFAY,EAAa,QAAI,IAAM,EACvBnC,EAAoBwC,EAAEP,EAAIE,GACnBF,CACR,EOxBAjC,EAAoBwC,EAAI,CAACpC,EAASqC,KACjC,IAAI,IAAIlB,KAAOkB,EACXzC,EAAoB0C,EAAED,EAAYlB,KAASvB,EAAoB0C,EAAEtC,EAASmB,IAC5EH,OAAOuB,eAAevC,EAASmB,EAAK,CAAEqB,YAAY,EAAMC,IAAKJ,EAAWlB,MCJ3EvB,EAAoB8C,EAAI,CAAC,EAGzB9C,EAAoB+C,EAAKC,GACjB3G,QAAQ4G,IAAI7B,OAAOC,KAAKrB,EAAoB8C,GAAGI,OAAO,CAACC,EAAU5B,KACvEvB,EAAoB8C,EAAEvB,GAAKyB,EAASG,GAC7BA,GACL,KCNJnD,EAAoBoD,EAAKJ,GAEjB,aAAeA,EAAf,qBCHRhD,EAAoBqD,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOxB,MAAQ,IAAIyB,SAAS,cAAb,EAChB,CAAE,MAAOR,GACR,GAAsB,iBAAXS,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBxD,EAAoB0C,EAAI,CAACf,EAAK8B,IAAUrC,OAAOsC,UAAUC,eAAenD,KAAKmB,EAAK8B,GVA9EzL,EAAa,CAAC,EACdC,EAAoB,iBAExB+H,EAAoB4D,EAAI,CAACC,EAAKC,EAAMvC,EAAKyB,KACxC,GAAGhL,EAAW6L,GAAQ7L,EAAW6L,GAAKE,KAAKD,OAA3C,CACA,IAAIE,EAAQC,EACZ,QAAW9D,IAARoB,EAEF,IADA,IAAI2C,EAAUvE,SAASwE,qBAAqB,UACpCnD,EAAI,EAAGA,EAAIkD,EAAQjD,OAAQD,IAAK,CACvC,IAAIoD,EAAIF,EAAQlD,GAChB,GAAGoD,EAAEC,aAAa,QAAUR,GAAOO,EAAEC,aAAa,iBAAmBpM,EAAoBsJ,EAAK,CAAEyC,EAASI,EAAG,KAAO,CACpH,CAEGJ,IACHC,GAAa,GACbD,EAASrE,SAAS2E,cAAc,WAEzBC,QAAU,QACbvE,EAAoBwE,IACvBR,EAAOS,aAAa,QAASzE,EAAoBwE,IAElDR,EAAOS,aAAa,eAAgBxM,EAAoBsJ,GAExDyC,EAAOU,IAAMb,GAEd7L,EAAW6L,GAAO,CAACC,GACnB,IAAIa,EAAmB,CAACC,EAAMC,KAE7Bb,EAAOc,QAAUd,EAAOe,OAAS,KACjCC,aAAaC,GACb,IAAIC,EAAUlN,EAAW6L,GAIzB,UAHO7L,EAAW6L,GAClBG,EAAOmB,YAAcnB,EAAOmB,WAAWC,YAAYpB,GACnDkB,GAAWA,EAAQ3C,QAAS3B,GAAQA,EAAGiE,IACpCD,EAAM,OAAOA,EAAKC,IAElBI,EAAU1I,WAAWoI,EAAiBU,KAAK,UAAMlF,EAAW,CAAEhI,KAAM,UAAWmN,OAAQtB,IAAW,MACtGA,EAAOc,QAAUH,EAAiBU,KAAK,KAAMrB,EAAOc,SACpDd,EAAOe,OAASJ,EAAiBU,KAAK,KAAMrB,EAAOe,QACnDd,GAActE,SAAS4F,KAAKC,YAAYxB,EAnCkB,GWH3DhE,EAAoByB,EAAKrB,IACH,oBAAXqF,QAA0BA,OAAOC,aAC1CtE,OAAOuB,eAAevC,EAASqF,OAAOC,YAAa,CAAE5M,MAAO,WAE7DsI,OAAOuB,eAAevC,EAAS,aAAc,CAAEtH,OAAO,KCLvDkH,EAAoB2F,IAAOtF,IAC1BA,EAAOuF,MAAQ,GACVvF,EAAOvC,WAAUuC,EAAOvC,SAAW,IACjCuC,GCHRL,EAAoB6F,EAAI,I,MCKxB,IAAIC,EAAkB,CACrB,IAAK,GAGN9F,EAAoB8C,EAAE3B,EAAI,CAAC6B,EAASG,KAElC,IAAI4C,EAAqB/F,EAAoB0C,EAAEoD,EAAiB9C,GAAW8C,EAAgB9C,QAAW7C,EACtG,GAA0B,IAAvB4F,EAGF,GAAGA,EACF5C,EAASY,KAAKgC,EAAmB,QAC3B,CAGL,IAAIC,EAAU,IAAI3J,QAAQ,CAACC,EAAS2J,IAAYF,EAAqBD,EAAgB9C,GAAW,CAAC1G,EAAS2J,IAC1G9C,EAASY,KAAKgC,EAAmB,GAAKC,GAGtC,IAAInC,EAAM7D,EAAoB6F,EAAI7F,EAAoBoD,EAAEJ,GAEpD3J,EAAQ,IAAIkC,MAgBhByE,EAAoB4D,EAAEC,EAfFgB,IACnB,GAAG7E,EAAoB0C,EAAEoD,EAAiB9C,KAEf,KAD1B+C,EAAqBD,EAAgB9C,MACR8C,EAAgB9C,QAAW7C,GACrD4F,GAAoB,CACtB,IAAIG,EAAYrB,IAAyB,SAAfA,EAAM1M,KAAkB,UAAY0M,EAAM1M,MAChEgO,EAAUtB,GAASA,EAAMS,QAAUT,EAAMS,OAAOZ,IACpDrL,EAAMuD,QAAU,iBAAmBoG,EAAU,cAAgBkD,EAAY,KAAOC,EAAU,IAC1F9M,EAAMhB,KAAO,iBACbgB,EAAMlB,KAAO+N,EACb7M,EAAM+M,QAAUD,EAChBJ,EAAmB,GAAG1M,EACvB,GAGuC,SAAW2J,EAASA,EAE/D,GAYHhD,EAAoBU,EAAES,EAAK6B,GAA0C,IAA7B8C,EAAgB9C,GAGxD,IAAIqD,EAAuB,CAACC,EAA4BC,KACvD,IAGItG,EAAU+C,GAHTrC,EAAU6F,EAAaC,GAAWF,EAGhBvF,EAAI,EAC3B,GAAGL,EAAS+F,KAAMrI,GAAgC,IAAxByH,EAAgBzH,IAAa,CACtD,IAAI4B,KAAYuG,EACZxG,EAAoB0C,EAAE8D,EAAavG,KACrCD,EAAoBS,EAAER,GAAYuG,EAAYvG,IAGhD,GAAGwG,EAAS,IAAItL,EAASsL,EAAQzG,EAClC,CAEA,IADGsG,GAA4BA,EAA2BC,GACrDvF,EAAIL,EAASM,OAAQD,IACzBgC,EAAUrC,EAASK,GAChBhB,EAAoB0C,EAAEoD,EAAiB9C,IAAY8C,EAAgB9C,IACrE8C,EAAgB9C,GAAS,KAE1B8C,EAAgB9C,GAAW,EAE5B,OAAOhD,EAAoBU,EAAEvF,IAG1BwL,EAAqBC,KAAgC,0BAAIA,KAAgC,2BAAK,GAClGD,EAAmBpE,QAAQ8D,EAAqBhB,KAAK,KAAM,IAC3DsB,EAAmB5C,KAAOsC,EAAqBhB,KAAK,KAAMsB,EAAmB5C,KAAKsB,KAAKsB,G,KClFvF,IAAIE,EAAsB7G,EAAoBU,OAAEP,EAAW,CAAC,IAAK,IAAOH,EAAoB,QAC5F6G,EAAsB7G,EAAoBU,EAAEmG,E","sources":["webpack://react-example/webpack/runtime/chunk loaded","webpack://react-example/webpack/runtime/create fake namespace object","webpack://react-example/webpack/runtime/load script","webpack://react-example/./src/lib/inco.ts","webpack://react-example/./src/abis.ts","webpack://react-example/./src/Inco.tsx","webpack://react-example/./src/index.tsx","webpack://react-example/webpack/bootstrap","webpack://react-example/webpack/runtime/define property getters","webpack://react-example/webpack/runtime/ensure chunk","webpack://react-example/webpack/runtime/get javascript chunk filename","webpack://react-example/webpack/runtime/global","webpack://react-example/webpack/runtime/hasOwnProperty shorthand","webpack://react-example/webpack/runtime/make namespace object","webpack://react-example/webpack/runtime/node module decorator","webpack://react-example/webpack/runtime/publicPath","webpack://react-example/webpack/runtime/jsonp chunk loading","webpack://react-example/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; (typeof current == 'object' || typeof current == 'function') && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"react-example:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","import { incoLightningAbi } from '@inco/js/abis/lightning';\nimport { incoVerifierAbi } from '@inco/js/abis/verifier';\nimport { Lightning } from '@inco/js/lite';\nimport { handleTypes } from '@inco/js';\nimport { Chain, createPublicClient, createWalletClient, defineChain, getContract, Hex, http, parseGwei } from 'viem';\nimport { Address, privateKeyToAccount } from 'viem/accounts';\nimport { anvil } from 'viem/chains';\nexport const createIncoLite = async (chain: Chain, pepper: any) => {\n if (chain === anvil) {\n return await Lightning.localNode(pepper);\n }\n return await Lightning.latest(pepper, chain.id as any);\n};\nexport const encrypt = async (\n lightning: Lightning,\n privateKey: Hex,\n chain: Chain,\n hostChainRpcUrl: string,\n value: bigint | boolean,\n addTwoAddress: Address,\n) => {\n let privateKeyHex: Hex;\n if (chain === anvil) {\n const zap = await Lightning.localNode('testnet');\n privateKeyHex = zap.deployment.senderPrivateKey as Hex;\n } else {\n privateKeyHex = privateKey;\n }\n const account = privateKeyToAccount(privateKeyHex);\n const viemChain = defineChain({\n ...chain,\n fees: { maxPriorityFeePerGas: parseGwei('10') },\n });\n const walletClient = createWalletClient({\n chain: viemChain,\n transport: http(hostChainRpcUrl),\n account,\n });\n const publicClient = createPublicClient({\n chain: viemChain,\n transport: http(hostChainRpcUrl),\n });\n const incoLite = getContract({\n abi: incoLightningAbi,\n address: lightning.executorAddress,\n client: publicClient,\n });\n const incoVerifierAddress = await incoLite.read.incoVerifier();\n const incoVerifier = getContract({\n abi: incoVerifierAbi,\n address: incoVerifierAddress,\n client: publicClient,\n });\n const ciphertext = await lightning.encrypt(\n value,\n {\n accountAddress: walletClient.account.address,\n dappAddress: addTwoAddress,\n handleType: handleTypes.euint256,\n },\n );\n return ciphertext;\n};\n\nexport const decrypt = async (\n lightning: Lightning,\n privateKey: Hex,\n chain: Chain,\n hostChainRpcUrl: string,\n handle: Hex,\n) => {\n const account = privateKeyToAccount(privateKey);\n const viemChain = defineChain({\n ...chain,\n fees: { maxPriorityFeePerGas: parseGwei('10') },\n });\n const walletClient = createWalletClient({\n chain: viemChain,\n transport: http(hostChainRpcUrl),\n account,\n });\n\n // Initial delay to allow covalidator to process the transaction\n await new Promise((resolve) => setTimeout(resolve, 2000));\n\n // Retry logic with exponential backoff for KMS service\n const maxRetries = 10;\n const baseDelayInMs = 1000;\n const backoffFactor = 1.5;\n\n for (let attempt = 1; attempt <= maxRetries; attempt++) {\n try {\n const decrypted = await lightning.attestedDecrypt(walletClient, [handle]);\n if (attempt > 1) {\n console.log(`Decrypt succeeded on attempt ${attempt}`);\n }\n return decrypted[0]?.plaintext?.value;\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : String(err);\n const errorString = String(err);\n // Check for HTTP status codes or error messages indicating server errors\n const statusCode = (err as any)?.status || (err as any)?.statusCode || (err as any)?.code;\n // More comprehensive error detection - check error message, string representation, and status codes\n const isRetryableError =\n statusCode === 500 ||\n statusCode === 503 ||\n statusCode === '500' ||\n statusCode === '503' ||\n errorMessage.includes('500') ||\n errorMessage.includes('503') ||\n errorMessage.includes('Internal Server Error') ||\n errorMessage.includes('Service Unavailable') ||\n errorMessage.includes('AttestedDecrypt') ||\n errorString.includes('500') ||\n errorString.includes('503') ||\n errorString.includes('Internal Server Error') ||\n errorString.includes('Service Unavailable');\n\n if (attempt === maxRetries || !isRetryableError) {\n console.error(`Error decrypting result handle after ${attempt} attempts:`, err);\n console.error(`Error details - message: ${errorMessage}, string: ${errorString}, statusCode: ${statusCode}`);\n throw err;\n }\n\n const delay = baseDelayInMs * Math.pow(backoffFactor, attempt - 1);\n console.log(\n `Decrypt attempt ${attempt} failed, retrying in ${Math.round(delay)}ms... (Error: ${errorMessage.substring(0, 100)})`,\n );\n await new Promise((resolve) => setTimeout(resolve, delay));\n }\n }\n\n throw new Error('Failed to decrypt after all retries');\n};\n","// AddTwo ABI\nexport const addTwoAbi = [\n {\n type: 'function',\n inputs: [{ name: 'a', internalType: 'euint256', type: 'bytes32' }],\n name: 'addTwo',\n outputs: [{ name: '', internalType: 'euint256', type: 'bytes32' }],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n inputs: [{ name: 'uint256EInput', internalType: 'bytes', type: 'bytes' }],\n name: 'addTwoEOA',\n outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],\n stateMutability: 'payable',\n },\n {\n type: 'function',\n inputs: [{ name: 'a', internalType: 'euint256', type: 'bytes32' }],\n name: 'addTwoScalar',\n outputs: [{ name: '', internalType: 'euint256', type: 'bytes32' }],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n inputs: [],\n name: 'getFee',\n outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],\n stateMutability: 'pure',\n },\n { type: 'error', inputs: [], name: 'FeeNotPaid' },\n] as const;\n\n","import { useCallback, useEffect, useState } from 'react'\nimport type { Address, Chain, Hex } from 'viem'\nimport { createIncoLite, encrypt, decrypt } from './lib/inco.ts'\nimport { privateKeyToAccount } from 'viem/accounts'\nimport { addTwoAbi } from './abis.ts'\nimport { createPublicClient, defineChain, getContract, parseEther } from 'viem'\nimport { parseGwei } from 'viem'\nimport { createWalletClient, http } from 'viem'\nimport { Lightning } from '@inco/js/lite'\n\n\ntype IncoTestProps = {\n chain: Chain\n pepper: unknown\n privateKey: Hex\n hostChainRpcUrl: string\n value: bigint | boolean\n addTwoAddress: Address\n}\n\nexport default function IncoTest({\n chain,\n pepper,\n privateKey,\n hostChainRpcUrl,\n value,\n addTwoAddress,\n}: IncoTestProps) {\n const [ciphertext, setCiphertext] = useState(null)\n const [incoLite, setIncoLite] = useState(null)\n const [error, setError] = useState(null)\n const [isEncrypting, setIsEncrypting] = useState(false)\n const [resultHandle, setResultHandle] = useState(null)\n const [decryptedResult, setDecryptedResult] = useState(null)\n const handleCiphertextCreate = async () => {\n setIsEncrypting(true)\n try {\n // const zap = await Lightning.localNode('alphanet');\n const incoLite = await createIncoLite(chain, pepper)\n setIncoLite(incoLite)\n const encryptedValue = await encrypt(\n incoLite,\n privateKey,\n chain,\n hostChainRpcUrl,\n value,\n addTwoAddress,\n )\n setCiphertext(encryptedValue)\n setError(null)\n } catch (err) {\n setCiphertext(null)\n setError(err instanceof Error ? err.message : String(err))\n } finally {\n setIsEncrypting(false)\n }\n }\n \n const handleCiphertextSubmit = useCallback(async (ciphertext: Hex) => {\n const account = privateKeyToAccount(privateKey);\n const viemChain = defineChain({\n ...chain,\n fees: { maxPriorityFeePerGas: parseGwei('10') },\n });\n const walletClient = createWalletClient({\n chain: viemChain,\n transport: http(hostChainRpcUrl),\n account,\n });\n const publicClient = createPublicClient({\n chain: viemChain,\n transport: http(hostChainRpcUrl),\n });\n const dapp = getContract({\n abi: addTwoAbi,\n address: addTwoAddress,\n client: walletClient,\n });\n let simResultHandle: Hex;\n try {\n const { result: resultHandle } = await dapp.simulate.addTwoEOA([ciphertext], { value: parseEther('0.01') });\n if (!resultHandle) {\n throw new Error('Failed to get result from simulation');\n }\n simResultHandle = resultHandle as Hex;\n console.log(`Result handle: ${simResultHandle}`);\n setResultHandle(simResultHandle);\n } catch (err) {\n console.error(`Error simulating the call to add 2 to ${ciphertext}: ${err}`);\n throw err;\n }\n\n try {\n const txHash = await dapp.write.addTwoEOA([ciphertext], { value: parseEther('0.01') });\n console.log(`Transaction hash: ${txHash}`);\n const receipt = await publicClient.waitForTransactionReceipt({ hash: txHash });\n console.log(`Transaction included in block ${receipt.blockNumber}`);\n // Ensure result handle is set after transaction confirmation\n setResultHandle(simResultHandle);\n } catch (err) {\n console.error(`Error writing the call to add 2 to ${ciphertext}: ${err}`);\n throw err;\n }\n }, [privateKey, chain, hostChainRpcUrl, addTwoAddress]);\n\n const decryptResult = useCallback(async () => {\n if (!incoLite || !resultHandle) {\n console.error('Cannot decrypt: incoLite or resultHandle is missing');\n setError('Cannot decrypt: missing incoLite or resultHandle');\n return;\n }\n console.log(`Starting decryption for handle: ${resultHandle}`);\n try {\n const decrypted = await decrypt(incoLite, privateKey, chain, hostChainRpcUrl, resultHandle)\n console.log(`Decryption successful: ${decrypted}`);\n setDecryptedResult(decrypted?.toString() ?? null)\n setError(null)\n } catch (err) {\n console.error('Decryption error:', err);\n setDecryptedResult(null)\n setError(err instanceof Error ? err.message : String(err))\n }\n }, [incoLite, privateKey, chain, hostChainRpcUrl, resultHandle]);\n \n useEffect(() => {\n if (ciphertext) {\n handleCiphertextSubmit(ciphertext as Hex).catch((err) => {\n console.error('Error in handleCiphertextSubmit:', err);\n setError(err instanceof Error ? err.message : String(err));\n });\n }\n }, [ciphertext, handleCiphertextSubmit]);\n return (\n
\n

Inco Test

\n

\n Value: {value.toString()}\n

\n \n {ciphertext && (\n

\n Ciphertext: {ciphertext}\n

\n )}\n {resultHandle && (\n <>\n

\n Result handle: {resultHandle}\n

\n \n {decryptedResult && (\n

\n Decrypted result: {decryptedResult}\n

\n )}\n \n )}\n {error && (\n

\n Error: {error}\n

\n )}\n
\n )\n}","import { StrictMode } from 'react'\nimport { createRoot } from 'react-dom/client'\nimport IncoTest from './Inco.tsx'\nimport { anvil } from 'viem/chains'\n\nconst root = createRoot(document.getElementById('root')!)\nroot.render(\n \n \n ,\n)\n\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"b145ceef\" + \".chunk.js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkreact_example\"] = self[\"webpackChunkreact_example\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [96], () => (__webpack_require__(38984)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","addTwoAbi","type","inputs","name","internalType","outputs","stateMutability","IncoTest","chain","pepper","privateKey","hostChainRpcUrl","value","addTwoAddress","ciphertext","setCiphertext","useState","incoLite","setIncoLite","error","setError","isEncrypting","setIsEncrypting","resultHandle","setResultHandle","decryptedResult","setDecryptedResult","handleCiphertextSubmit","useCallback","async","account","privateKeyToAccount","viemChain","defineChain","fees","maxPriorityFeePerGas","parseGwei","walletClient","createWalletClient","transport","http","publicClient","createPublicClient","dapp","getContract","abi","address","client","simResultHandle","result","simulate","addTwoEOA","parseEther","Error","console","log","err","txHash","write","receipt","waitForTransactionReceipt","hash","blockNumber","decryptResult","decrypted","lightning","handle","Promise","resolve","setTimeout","attempt","attestedDecrypt","plaintext","errorMessage","message","String","errorString","statusCode","status","code","isRetryableError","includes","delay","Math","pow","round","substring","decrypt","toString","useEffect","catch","_jsxs","children","_jsx","onClick","anvil","Lightning","localNode","latest","id","createIncoLite","encryptedValue","privateKeyHex","deployment","senderPrivateKey","incoLightningAbi","executorAddress","incoVerifierAddress","read","incoVerifier","incoVerifierAbi","encrypt","accountAddress","dappAddress","handleType","handleTypes","euint256","disabled","_Fragment","role","createRoot","document","getElementById","render","StrictMode","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","loaded","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","getPrototypeOf","obj","t","mode","this","__esModule","then","ns","create","def","current","indexOf","getOwnPropertyNames","forEach","d","definition","o","defineProperty","enumerable","get","f","e","chunkId","all","reduce","promises","u","g","globalThis","Function","window","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","timeout","doneFns","parentNode","removeChild","bind","target","head","appendChild","Symbol","toStringTag","nmd","paths","p","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/backend/src/test/react-example/build/static/js/vendors.358533ae.js b/backend/src/test/react-example/build/static/js/vendors.358533ae.js deleted file mode 100644 index b0d0c4b..0000000 --- a/backend/src/test/react-example/build/static/js/vendors.358533ae.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see vendors.358533ae.js.LICENSE.txt */ -(self.webpackChunkreact_example=self.webpackChunkreact_example||[]).push([[96],{39(e,t,n){"use strict";var r=n(33213),i=n(99942),a=n(81475),s=n(72258).Buffer,o=n(24763),u=n(8776),c=n(35951),l=s.alloc(128);function f(e,t){a.call(this,"digest"),"string"==typeof t&&(t=s.from(t));var n="sha512"===e||"sha384"===e?128:64;this._alg=e,this._key=t,t.length>n?t=("rmd160"===e?new u:c(e)).update(t).digest():t.lengthb});var r=n(70121),i=n(68616),a=n(7411),s=n(85501),o=n(65144),u=n(8736),c=n(20518),l=n(58038),f=n(75209);function d(e,t={}){void 0!==t.size&&(0,l.Sl)(e,{size:t.size});const n=(0,f.My)(e,t);return(0,l.uU)(n,t)}function h(e,t={}){let n=e;if(void 0!==t.size&&((0,l.Sl)(n,{size:t.size}),n=(0,u.B)(n)),n.length>1||n[0]>1)throw new c.xO(n);return Boolean(n[0])}function p(e,t={}){void 0!==t.size&&(0,l.Sl)(e,{size:t.size});const n=(0,f.My)(e,t);return(0,l.ME)(n,t)}var m=n(81127),y=n(28780);function b(e,t){const n="string"==typeof t?(0,m.aT)(t):t,i=(0,a.l)(n);if(0===(0,s.E)(n)&&e.length>0)throw new r.O;if((0,s.E)(t)&&(0,s.E)(t)<32)throw new r.Iy({data:"string"==typeof t?t:(0,f.My)(t),params:e,size:(0,s.E)(t)});let o=0;const u=[];for(let t=0;t!e),i=r?[]:{};let a=0;if(w(t)){const s=n+p(e.readBytes(v));for(let n=0;n48?d(i,{signed:n}):p(i,{signed:n}),32]}(e,t);if("string"===t.type)return function(e,{staticPosition:t}){const n=t+p(e.readBytes(32));e.setPosition(n);const r=p(e.readBytes(32));if(0===r)return e.setPosition(t+32),["",32];const i=e.readBytes(r,32),a=function(e,t={}){let n=e;return void 0!==t.size&&((0,l.Sl)(n,{size:t.size}),n=(0,u.B)(n,{dir:"right"})),(new TextDecoder).decode(n)}((0,u.B)(i));return e.setPosition(t+32),[a,32]}(e,{staticPosition:n});throw new r.j(t.type,{docsPath:"/docs/contract/decodeAbiParameters"})}const v=32;function w(e){const{type:t}=e;if("string"===t)return!0;if("bytes"===t)return!0;if(t.endsWith("[]"))return!0;if("tuple"===t)return e.components?.some(w);const n=(0,y.k)(e.type);return!(!n||!w({...e,type:n[1]}))}},462(e,t,n){"use strict";n.d(t,{P:()=>o});var r=n(71768),i=n(68616);const a=/^0x[a-fA-F0-9]{40}$/,s=new r.A(8192);function o(e,t){const{strict:n=!0}=t??{},r=`${e}.${n}`;if(s.has(r))return s.get(r);const o=!(!a.test(e)||e.toLowerCase()!==e&&n&&(0,i.o)(e)!==e);return s.set(r,o),o}},850(e,t,n){e.exports=n(3640).EventEmitter},953(e,t,n){var r=n(45775),i=n(8495),a=n(47104),s=n(23145),o=n(11525),u=n(55303),c=n(58476),l=n(72258).Buffer;e.exports=function(e,t,n){var f;f=e.padding?e.padding:n?1:4;var d,h=r(e),p=h.modulus.byteLength();if(t.length>p||new s(t).cmp(h.modulus)>=0)throw new Error("decryption error");d=n?c(new s(t),h):o(t,h);var m=l.alloc(p-d.length);if(d=l.concat([m,d],p),4===f)return function(e,t){var n=e.modulus.byteLength(),r=u("sha1").update(l.alloc(0)).digest(),s=r.length;if(0!==t[0])throw new Error("decryption error");var o=t.slice(1,s+1),c=t.slice(s+1),f=a(o,i(c,s)),d=a(c,i(f,n-s-1));if(function(e,t){e=l.from(e),t=l.from(t);var n=0,r=e.length;e.length!==t.length&&(n++,r=Math.min(e.length,t.length));for(var i=-1;++i=t.length){a++;break}var s=t.slice(2,i-1);if(("0002"!==r.toString("hex")&&!n||"0001"!==r.toString("hex")&&n)&&a++,s.length<8&&a++,a)throw new Error("decryption error");return t.slice(i)}(0,d,n);if(3===f)return d;throw new Error("unknown padding")}},1060(e,t,n){"use strict";n.d(t,{A:()=>r});const r=(e,t,n)=>JSON.stringify(e,(e,n)=>{const r="bigint"==typeof n?n.toString():n;return"function"==typeof t?t(e,r):r},n)},1833(e,t,n){function r(e){return Object.prototype.toString.call(e)}t.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===r(e)},t.isBoolean=function(e){return"boolean"==typeof e},t.isNull=function(e){return null===e},t.isNullOrUndefined=function(e){return null==e},t.isNumber=function(e){return"number"==typeof e},t.isString=function(e){return"string"==typeof e},t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=function(e){return void 0===e},t.isRegExp=function(e){return"[object RegExp]"===r(e)},t.isObject=function(e){return"object"==typeof e&&null!==e},t.isDate=function(e){return"[object Date]"===r(e)},t.isError=function(e){return"[object Error]"===r(e)||e instanceof Error},t.isFunction=function(e){return"function"==typeof e},t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(73730).Buffer.isBuffer},1890(e,t,n){"use strict";var r=n(72258).Buffer,i=n(3420),a=n(22516).Transform;function s(e){a.call(this),this._block=r.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}n(33213)(s,a),s.prototype._transform=function(e,t,n){var r=null;try{this.update(e,t)}catch(e){r=e}n(r)},s.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},s.prototype.update=function(e,t){if(this._finalized)throw new Error("Digest already called");for(var n=i(e,t),r=this._block,a=0;this._blockOffset+n.length-a>=this._blockSize;){for(var s=this._blockOffset;s0;++o)this._length[o]+=u,(u=this._length[o]/4294967296|0)>0&&(this._length[o]-=4294967296*u);return this},s.prototype._update=function(){throw new Error("_update is not implemented")},s.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var n=0;n<4;++n)this._length[n]=0;return t},s.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=s},1917(e,t,n){"use strict";var r=n(42649),i=n(11644);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t){var n=e.entry;for(e.entry=null;n;){var r=n.callback;t.pendingcb--,r(undefined),n=n.next}t.corkedRequestsFree.next=e}(t,e)}}e.exports=b;var s,o=!r.browser&&["v0.10","v0.9."].indexOf(r.version.slice(0,5))>-1?setImmediate:i.nextTick;b.WritableState=y;var u=Object.create(n(1833));u.inherits=n(33213);var c,l={deprecate:n(12082)},f=n(850),d=n(40371).Buffer,h=(void 0!==n.g?n.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){},p=n(63345);function m(){}function y(e,t){s=s||n(60991),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var u=e.highWaterMark,c=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=u||0===u?u:r&&(c||0===c)?c:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,a=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,a){--t.pendingcb,n?(i.nextTick(a,r),i.nextTick(E,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(a(r),e._writableState.errorEmitted=!0,e.emit("error",r),E(e,t))}(e,n,r,t,a);else{var s=_(n);s||n.corked||n.bufferProcessing||!n.bufferedRequest||w(e,n),r?o(v,e,n,s,a):v(e,n,s,a)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(60991),!(c.call(b,this)||this instanceof s))return new b(e);this._writableState=new y(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function g(e,t,n,r,i,a,s){t.writelen=r,t.writecb=s,t.writing=!0,t.sync=!0,n?e._writev(i,t.onwrite):e._write(i,a,t.onwrite),t.sync=!1}function v(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),E(e,t)}function w(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,i=new Array(r),s=t.corkedRequestsFree;s.entry=n;for(var o=0,u=!0;n;)i[o]=n,n.isBuf||(u=!1),n=n.next,o+=1;i.allBuffers=u,g(e,t,!0,t.length,i,"",s.finish),t.pendingcb++,t.lastBufferedRequest=null,s.next?(t.corkedRequestsFree=s.next,s.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var c=n.chunk,l=n.encoding,f=n.callback;if(g(e,t,!1,t.objectMode?1:c.length,c,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function _(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function S(e,t){e._final(function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),E(e,t)})}function E(e,t){var n=_(t);return n&&(function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(S,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),y.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(y.prototype,"buffer",{get:l.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(c=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!c.call(this,e)||this===b&&e&&e._writableState instanceof y}})):c=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,a=this._writableState,s=!1,o=!a.objectMode&&(r=e,d.isBuffer(r)||r instanceof h);return o&&!d.isBuffer(e)&&(e=function(e){return d.from(e)}(e)),"function"==typeof t&&(n=t,t=null),o?t="buffer":t||(t=a.defaultEncoding),"function"!=typeof n&&(n=m),a.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(o||function(e,t,n,r){var a=!0,s=!1;return null===n?s=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(s=new TypeError("Invalid non-string/buffer chunk")),s&&(e.emit("error",s),i.nextTick(r,s),a=!1),a}(this,a,e,n))&&(a.pendingcb++,s=function(e,t,n,r,i,a){if(!n){var s=function(e,t,n){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=d.from(t,n)),t}(t,r,i);r!==s&&(n=!0,i="buffer",r=s)}var o=t.objectMode?1:r.length;t.length+=o;var u=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||function(e,t,n){t.ending=!0,E(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n)),t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=p.destroy,b.prototype._undestroy=p.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}},2073(e,t,n){"use strict";var r=n(4002),i=n(79553)("TypedArray.prototype.buffer",!0),a=n(75749);e.exports=i||function(e){if(!a(e))throw new r("Not a Typed Array");return e.buffer}},2204(e,t,n){"use strict";var r=Function.prototype.call,i=Object.prototype.hasOwnProperty,a=n(62460);e.exports=a.call(r,i)},2273(e,t,n){"use strict";n.d(t,{C:()=>s});const r="2.43.5";let i=({docsBaseUrl:e,docsPath:t="",docsSlug:n})=>t?`${e??"https://viem.sh"}${t}${n?`#${n}`:""}`:void 0,a=`viem@${r}`;class s extends Error{constructor(e,t={}){const n=t.cause instanceof s?t.cause.details:t.cause?.message?t.cause.message:t.details,o=t.cause instanceof s&&t.cause.docsPath||t.docsPath,u=i?.({...t,docsPath:o});super([e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...u?[`Docs: ${u}`]:[],...n?[`Details: ${n}`]:[],...a?[`Version: ${a}`]:[]].join("\n"),t.cause?{cause:t.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=n,this.docsPath=o,this.metaMessages=t.metaMessages,this.name=t.name??this.name,this.shortMessage=e,this.version=r}walk(e){return o(this,e)}}function o(e,t){return t?.(e)?e:e&&"object"==typeof e&&"cause"in e&&void 0!==e.cause?o(e.cause,t):t?null:e}},3320(e,t,n){"use strict";function r(){let e=()=>{},t=()=>{};return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}n.d(t,{Y:()=>r})},3420(e,t,n){"use strict";var r=n(72258).Buffer,i=n(70950),a="undefined"!=typeof Uint8Array,s=a&&"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView;e.exports=function(e,t){if("string"==typeof e||r.isBuffer(e)||a&&e instanceof Uint8Array||s&&s(e))return i(e,t);throw new TypeError('The "data" argument must be a string, a Buffer, a Uint8Array, or a DataView')}},3640(e){"use strict";var t,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var i=Number.isNaN||function(e){return e!=e};function a(){a.init.call(this)}e.exports=a,e.exports.once=function(e,t){return new Promise(function(n,r){function i(n){e.removeListener(t,a),r(n)}function a(){"function"==typeof e.removeListener&&e.removeListener("error",i),n([].slice.call(arguments))}m(e,t,a,{once:!0}),"error"!==t&&function(e,t){"function"==typeof e.on&&m(e,"error",t,{once:!0})}(e,i)})},a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var s=10;function o(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function u(e){return void 0===e._maxListeners?a.defaultMaxListeners:e._maxListeners}function c(e,t,n,r){var i,a,s,c;if(o(n),void 0===(a=e._events)?(a=e._events=Object.create(null),e._eventsCount=0):(void 0!==a.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),s=a[t]),void 0===s)s=a[t]=n,++e._eventsCount;else if("function"==typeof s?s=a[t]=r?[n,s]:[s,n]:r?s.unshift(n):s.push(n),(i=u(e))>0&&s.length>i&&!s.warned){s.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=s.length,c=l,console&&console.warn&&console.warn(c)}return e}function l(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=l.bind(r);return i.listener=n,r.wrapFn=i,i}function d(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(s=t[0]),s instanceof Error)throw s;var o=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw o.context=s,o}var u=a[e];if(void 0===u)return!1;if("function"==typeof u)r(u,this,t);else{var c=u.length,l=p(u,c);for(n=0;n=0;a--)if(n[a]===t||n[a].listener===t){s=n[a].listener,i=a;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},a.prototype.listeners=function(e){return d(this,e,!0)},a.prototype.rawListeners=function(e){return d(this,e,!1)},a.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):h.call(e,t)},a.prototype.listenerCount=h,a.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},3652(e,t,n){var r=n(45775),i=n(41498),a=n(55303),s=n(8495),o=n(47104),u=n(23145),c=n(58476),l=n(11525),f=n(72258).Buffer;e.exports=function(e,t,n){var d;d=e.padding?e.padding:n?1:4;var h,p=r(e);if(4===d)h=function(e,t){var n=e.modulus.byteLength(),r=t.length,c=a("sha1").update(f.alloc(0)).digest(),l=c.length,d=2*l;if(r>n-d-2)throw new Error("message too long");var h=f.alloc(n-r-d-2),p=n-l-1,m=i(l),y=o(f.concat([c,h,f.alloc(1,1),t],p),s(m,p)),b=o(m,s(y,l));return new u(f.concat([f.alloc(1),b,y],n))}(p,t);else if(1===d)h=function(e,t,n){var r,a=t.length,s=e.modulus.byteLength();if(a>s-11)throw new Error("message too long");return r=n?f.alloc(s-a-3,255):function(e){for(var t,n=f.allocUnsafe(e),r=0,a=i(2*e),s=0;r=0)throw new Error("data too long for modulus")}return n?l(h,p):c(h,p)}},3674(e){"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),n=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(var r in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var i=Object.getOwnPropertySymbols(e);if(1!==i.length||i[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var a=Object.getOwnPropertyDescriptor(e,t);if(42!==a.value||!0!==a.enumerable)return!1}return!0}},3808(e,t,n){"use strict";var r=n(33213),i=n(96811),a=n(72258).Buffer,s=[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],o=new Array(64);function u(){this.init(),this._w=o,i.call(this,64,56)}function c(e,t,n){return n^e&(t^n)}function l(e,t,n){return e&t|n&(e|t)}function f(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function d(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function h(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}function p(e){return(e>>>17|e<<15)^(e>>>19|e<<13)^e>>>10}r(u,i),u.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},u.prototype._update=function(e){for(var t=this._w,n=0|this._a,r=0|this._b,i=0|this._c,a=0|this._d,o=0|this._e,u=0|this._f,m=0|this._g,y=0|this._h,b=0;b<16;++b)t[b]=e.readInt32BE(4*b);for(;b<64;++b)t[b]=p(t[b-2])+t[b-7]+h(t[b-15])+t[b-16]|0;for(var g=0;g<64;++g){var v=y+d(o)+c(o,u,m)+s[g]+t[g]|0,w=f(n)+l(n,r,i)|0;y=m,m=u,u=o,o=a+v|0,a=i,i=r,r=n,n=v+w|0}this._a=n+this._a|0,this._b=r+this._b|0,this._c=i+this._c|0,this._d=a+this._d|0,this._e=o+this._e|0,this._f=u+this._f|0,this._g=m+this._g|0,this._h=y+this._h|0},u.prototype._hash=function(){var e=a.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=u},3838(e,t,n){"use strict";var r=n(45366),i=n(33213),a=n(50007),s=n(83506);function o(e,t){r.equal(t.length,24,"Invalid key length");var n=t.slice(0,8),i=t.slice(8,16),a=t.slice(16,24);this.ciphers="encrypt"===e?[s.create({type:"encrypt",key:n}),s.create({type:"decrypt",key:i}),s.create({type:"encrypt",key:a})]:[s.create({type:"decrypt",key:a}),s.create({type:"encrypt",key:i}),s.create({type:"decrypt",key:n})]}function u(e){a.call(this,e);var t=new o(this.type,this.options.key);this._edeState=t}i(u,a),e.exports=u,u.create=function(e){return new u(e)},u.prototype._update=function(e,t,n,r){var i=this._edeState;i.ciphers[0]._update(e,t,n,r),i.ciphers[1]._update(n,r,n,r),i.ciphers[2]._update(n,r,n,r)},u.prototype._pad=s.prototype._pad,u.prototype._unpad=s.prototype._unpad},3951(e,t,n){"use strict";n.d(t,{v:()=>g});var r=n(74014),i=n(15100),a=n(2273),s=n(65696),o=n(83835),u=n(23427),c=n(98156),l=n(77576),f=n(26015),d=n(71768),h=n(42169),p=n(73989),m=n(92359),y=n(71357);const b=new d.A(128);async function g(e,t){const{account:n=e.account,chain:d=e.chain,accessList:g,authorizationList:v,blobs:w,data:_,gas:S,gasPrice:E,maxFeePerBlobGas:k,maxFeePerGas:x,maxPriorityFeePerGas:T,nonce:M,type:I,value:A,...N}=t;if(void 0===n)throw new i.T({docsPath:"/docs/actions/wallet/sendTransaction"});const P=n?(0,r.J)(n):null;try{(0,h.c)(t);const n=await(async()=>t.to?t.to:null!==t.to&&v&&v.length>0?await(0,s.g)({authorization:v[0]}).catch(()=>{throw new a.C("`to` is required. Could not infer from `authorizationList`.")}):void 0)();if("json-rpc"===P?.type||null===P){let t;null!==d&&(t=await(0,f.T)(e,p.T,"getChainId")({}),(0,o.v)({currentChainId:t,chain:d}));const r=e.chain?.formatters?.transactionRequest?.format,i=(r||l.Bv)({...(0,c.o)(N,{format:r}),accessList:g,account:P,authorizationList:v,blobs:w,chainId:t,data:_,gas:S,gasPrice:E,maxFeePerBlobGas:k,maxFeePerGas:x,maxPriorityFeePerGas:T,nonce:M,to:n,type:I,value:A},"sendTransaction"),a=b.get(e.uid),s=a?"wallet_sendTransaction":"eth_sendTransaction";try{return await e.request({method:s,params:[i]},{retryCount:0})}catch(t){if(!1===a)throw t;const n=t;if("InvalidInputRpcError"===n.name||"InvalidParamsRpcError"===n.name||"MethodNotFoundRpcError"===n.name||"MethodNotSupportedRpcError"===n.name)return await e.request({method:"wallet_sendTransaction",params:[i]},{retryCount:0}).then(t=>(b.set(e.uid,!0),t)).catch(t=>{const r=t;if("MethodNotFoundRpcError"===r.name||"MethodNotSupportedRpcError"===r.name)throw b.set(e.uid,!1),n;throw r});throw n}}if("local"===P?.type){const t=await(0,f.T)(e,m.ft,"prepareTransactionRequest")({account:P,accessList:g,authorizationList:v,blobs:w,chain:d,data:_,gas:S,gasPrice:E,maxFeePerBlobGas:k,maxFeePerGas:x,maxPriorityFeePerGas:T,nonce:M,nonceManager:P.nonceManager,parameters:[...m.MM,"sidecars"],type:I,value:A,...N,to:n}),r=d?.serializers?.transaction,i=await P.signTransaction(t,{serializer:r});return await(0,f.T)(e,y.L,"sendRawTransaction")({serializedTransaction:i})}if("smart"===P?.type)throw new i.Z({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"});throw new i.Z({docsPath:"/docs/actions/wallet/sendTransaction",type:P?.type})}catch(e){if(e instanceof i.Z)throw e;throw(0,u.p)(e,{...t,account:P,chain:t.chain||void 0})}}},4002(e){"use strict";e.exports=TypeError},4014(e,t,n){"use strict";n.d(t,{$N:()=>g,C2:()=>y,JP:()=>w,Jt:()=>p,L8:()=>h,Ru:()=>b,VH:()=>x,VO:()=>l,_c:()=>v,gH:()=>k,hZ:()=>m,lF:()=>E,ll:()=>c,ni:()=>_,s$:()=>d,yo:()=>S});var r=n(93976),i=n(59329),a=n(61346),s=n(36708),o=n(17353),u=n(89921);const c=Symbol.for("effect/Ref"),l={_A:e=>e};class f extends r.Xs{ref;commit(){return this.get}[c]=l;[o.ii]=o.ii;constructor(e){super(),this.ref=e,this.get=u.OH5(()=>a.Jt(this.ref))}get;modify(e){return u.OH5(()=>{const t=a.Jt(this.ref),[n,r]=e(t);return t!==r&&a.hZ(r)(this.ref),n})}}const d=e=>new f(a.L8(e)),h=e=>u.OH5(()=>d(e)),p=e=>e.get,m=(0,i.XY)(2,(e,t)=>e.modify(()=>[void 0,t])),y=(0,i.XY)(2,(e,t)=>e.modify(e=>[e,t])),b=(0,i.XY)(2,(e,t)=>e.modify(e=>[e,t(e)])),g=(0,i.XY)(2,(e,t)=>e.modify(e=>{const n=t(e);switch(n._tag){case"None":return[e,e];case"Some":return[e,n.value]}})),v=(0,i.XY)(2,(e,t)=>e.modify(()=>[t,t])),w=(0,i.XY)(2,(e,t)=>e.modify(t)),_=(0,i.XY)(3,(e,t,n)=>e.modify(e=>{const r=n(e);switch(r._tag){case"None":return[t,e];case"Some":return r.value}})),S=(0,i.XY)(2,(e,t)=>e.modify(e=>[void 0,t(e)])),E=(0,i.XY)(2,(e,t)=>e.modify(e=>{const n=t(e);return[n,n]})),k=(0,i.XY)(2,(e,t)=>e.modify(e=>[void 0,s.YW(t(e),{onNone:()=>e,onSome:e=>e})])),x=(0,i.XY)(2,(e,t)=>e.modify(e=>{const n=t(e);switch(n._tag){case"None":return[e,e];case"Some":return[n.value,n.value]}}))},4020(e,t,n){"use strict";var r=n(71778),i=n(37526),a=n(85889),s=n(64802);e.exports=function(e){var t=a(arguments),n=e.length-(arguments.length-1);return r(t,1+(n>0?n:0),!0)},i?i(e.exports,"apply",{value:s}):e.exports.apply=s},4290(e,t,n){"use strict";n.d(t,{C:()=>u});var r=n(33640),i=n(81127),a=n(75209),s=n(82150),o=n(35593);function u(e){const{chainId:t,nonce:n,to:u}=e,c=e.contractAddress??e.address,l=(0,o.S)((0,r.aP)(["0x05",(0,s.EQ)([t?(0,a.cK)(t):"0x",c,n?(0,a.cK)(n):"0x"])]));return"bytes"===u?(0,i.aT)(l):l}},4297(e,t,n){"use strict";n.d(t,{N:()=>r});const r=(0,n(38963).x)({id:31337,name:"Anvil",nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["http://127.0.0.1:8545"],webSocket:["ws://127.0.0.1:8545"]}}})},4667(e,t,n){"use strict";n.d(t,{t:()=>a});var r=n(81127),i=n(75209);function a(e){const{kzg:t}=e,n=e.to??("string"==typeof e.blobs[0]?"hex":"bytes"),a="string"==typeof e.blobs[0]?e.blobs.map(e=>(0,r.aT)(e)):e.blobs,s="string"==typeof e.commitments[0]?e.commitments.map(e=>(0,r.aT)(e)):e.commitments,o=[];for(let e=0;e(0,i.My)(e))}},4685(e,t,n){var r=n(73730).Buffer,i=n(23145),a=new(n(9007)),s=new i(24),o=new i(11),u=new i(10),c=new i(3),l=new i(7),f=n(22323),d=n(41498);function h(e,t){return t=t||"utf8",r.isBuffer(e)||(e=new r(e,t)),this._pub=new i(e),this}function p(e,t){return t=t||"utf8",r.isBuffer(e)||(e=new r(e,t)),this._priv=new i(e),this}e.exports=y;var m={};function y(e,t,n){this.setGenerator(t),this.__prime=new i(e),this._prime=i.mont(this.__prime),this._primeLen=e.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,n?(this.setPublicKey=h,this.setPrivateKey=p):this._primeCode=8}function b(e,t){var n=new r(e.toArray());return t?n.toString(t):n}Object.defineProperty(y.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(e,t){var n=t.toString("hex"),r=[n,e.toString(16)].join("_");if(r in m)return m[r];var i,d=0;if(e.isEven()||!f.simpleSieve||!f.fermatTest(e)||!a.test(e))return d+=1,d+="02"===n||"05"===n?8:4,m[r]=d,d;switch(a.test(e.shrn(1))||(d+=2),n){case"02":e.mod(s).cmp(o)&&(d+=8);break;case"05":(i=e.mod(u)).cmp(c)&&i.cmp(l)&&(d+=8);break;default:d+=4}return m[r]=d,d}(this.__prime,this.__gen)),this._primeCode}}),y.prototype.generateKeys=function(){return this._priv||(this._priv=new i(d(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},y.prototype.computeSecret=function(e){var t=(e=(e=new i(e)).toRed(this._prime)).redPow(this._priv).fromRed(),n=new r(t.toArray()),a=this.getPrime();if(n.lengthy,Bj:()=>m,L8:()=>i,MM:()=>p,PV:()=>l,T9:()=>g,Tq:()=>w,Xe:()=>h,YO:()=>f,Yj:()=>a,ai:()=>s,jk:()=>b,o:()=>u,qE:()=>v,w3:()=>d,zM:()=>o,zQ:()=>c});var r=n(59329);const i=e=>(t,n)=>t===n?0:e(t,n),a=i((e,t)=>eeeei((n,r)=>e(t(n),t(r)))),l=(...e)=>{return t=e,i((e,n)=>{const r=Math.min(e.length,n.length);let i=0;for(const a of t){if(i>=r)break;const t=a(e[i],n[i]);if(0!==t)return t;i++}return 0});var t},f=e=>i((t,n)=>{const r=t.length,i=n.length,a=Math.min(r,i);for(let r=0;r{const t=Object.keys(e);return i((n,r)=>{for(const i of t){const t=e[i](n[i],r[i]);if(0!==t)return t}return 0})},h=e=>(0,r.XY)(2,(t,n)=>-1===e(t,n)),p=e=>(0,r.XY)(2,(t,n)=>1===e(t,n)),m=e=>(0,r.XY)(2,(t,n)=>1!==e(t,n)),y=e=>(0,r.XY)(2,(t,n)=>-1!==e(t,n)),b=e=>(0,r.XY)(2,(t,n)=>t===n||e(t,n)<1?t:n),g=e=>(0,r.XY)(2,(t,n)=>t===n||e(t,n)>-1?t:n),v=e=>(0,r.XY)(2,(t,n)=>b(e)(n.maximum,g(e)(n.minimum,t))),w=e=>(0,r.XY)(2,(t,n)=>!h(e)(t,n.minimum)&&!p(e)(t,n.maximum))},5324(e,t,n){"use strict";var r=n(42649);try{e.exports=n(10138)}catch(t){if(void 0!==r&&r.env.ECCRYPTO_NO_FALLBACK)throw t;e.exports=n(33931)}},5673(e,t,n){"use strict";n.d(t,{F6:()=>_,Ie:()=>h,Ui:()=>v,dh:()=>u,kg:()=>w});var r=n(17388),i=n(84468),a=n(72529),s=n(59329),o=n(53487);const u=Symbol.for("effect/DifferOrPatch");function c(e){return e}const l={...o.wC.prototype,[u]:{_Value:c,_Key:c,_Patch:c}},f=Object.assign(Object.create(l),{_tag:"Empty"}),d=Object.create(f),h=()=>d,p=Object.assign(Object.create(l),{_tag:"AndThen"}),m=Object.assign(Object.create(l),{_tag:"SetLeft"}),y=Object.assign(Object.create(l),{_tag:"SetRight"}),b=Object.assign(Object.create(l),{_tag:"UpdateLeft"}),g=Object.assign(Object.create(l),{_tag:"UpdateRight"}),v=e=>{switch(e.oldValue._tag){case"Left":switch(e.newValue._tag){case"Left":{const t=e.left.diff(e.oldValue.left,e.newValue.left);return a.aI(t,e.left.empty)?h():(e=>{const t=Object.create(b);return t.patch=e,t})(t)}case"Right":return(e=>{const t=Object.create(y);return t.value=e,t})(e.newValue.right)}case"Right":switch(e.newValue._tag){case"Left":return(e=>{const t=Object.create(m);return t.value=e,t})(e.newValue.left);case"Right":{const t=e.right.diff(e.oldValue.right,e.newValue.right);return a.aI(t,e.right.empty)?h():(e=>{const t=Object.create(g);return t.patch=e,t})(t)}}}},w=s.XY(2,(e,t)=>((e,t)=>{const n=Object.create(p);return n.first=e,n.second=t,n})(e,t)),_=s.XY(2,(e,{left:t,oldValue:n,right:a})=>{if("Empty"===e._tag)return n;let s=r.of(e),o=n;for(;r.J_(s);){const e=r.v4(s),n=r.Rx(s);switch(e._tag){case"Empty":s=n;break;case"AndThen":s=r.Hs(e.first)(r.Hs(e.second)(n));break;case"UpdateLeft":"Left"===o._tag&&(o=i.kb(t.patch(e.patch,o.left))),s=n;break;case"UpdateRight":"Right"===o._tag&&(o=i.pG(a.patch(e.patch,o.right))),s=n;break;case"SetLeft":o=i.kb(e.value),s=n;break;case"SetRight":o=i.pG(e.value),s=n}}return o})},6179(e,t,n){"use strict";var r=n(42649),i=n(11644);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t){var n=e.entry;for(e.entry=null;n;){var r=n.callback;t.pendingcb--,r(undefined),n=n.next}t.corkedRequestsFree.next=e}(t,e)}}e.exports=b;var s,o=!r.browser&&["v0.10","v0.9."].indexOf(r.version.slice(0,5))>-1?setImmediate:i.nextTick;b.WritableState=y;var u=Object.create(n(1833));u.inherits=n(33213);var c,l={deprecate:n(12082)},f=n(4880),d=n(18277).Buffer,h=(void 0!==n.g?n.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){},p=n(48743);function m(){}function y(e,t){s=s||n(77561),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var u=e.highWaterMark,c=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=u||0===u?u:r&&(c||0===c)?c:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,a=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,a){--t.pendingcb,n?(i.nextTick(a,r),i.nextTick(E,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(a(r),e._writableState.errorEmitted=!0,e.emit("error",r),E(e,t))}(e,n,r,t,a);else{var s=_(n);s||n.corked||n.bufferProcessing||!n.bufferedRequest||w(e,n),r?o(v,e,n,s,a):v(e,n,s,a)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(77561),!(c.call(b,this)||this instanceof s))return new b(e);this._writableState=new y(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function g(e,t,n,r,i,a,s){t.writelen=r,t.writecb=s,t.writing=!0,t.sync=!0,n?e._writev(i,t.onwrite):e._write(i,a,t.onwrite),t.sync=!1}function v(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),E(e,t)}function w(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,i=new Array(r),s=t.corkedRequestsFree;s.entry=n;for(var o=0,u=!0;n;)i[o]=n,n.isBuf||(u=!1),n=n.next,o+=1;i.allBuffers=u,g(e,t,!0,t.length,i,"",s.finish),t.pendingcb++,t.lastBufferedRequest=null,s.next?(t.corkedRequestsFree=s.next,s.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var c=n.chunk,l=n.encoding,f=n.callback;if(g(e,t,!1,t.objectMode?1:c.length,c,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function _(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function S(e,t){e._final(function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),E(e,t)})}function E(e,t){var n=_(t);return n&&(function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(S,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),y.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(y.prototype,"buffer",{get:l.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(c=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!c.call(this,e)||this===b&&e&&e._writableState instanceof y}})):c=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,a=this._writableState,s=!1,o=!a.objectMode&&(r=e,d.isBuffer(r)||r instanceof h);return o&&!d.isBuffer(e)&&(e=function(e){return d.from(e)}(e)),"function"==typeof t&&(n=t,t=null),o?t="buffer":t||(t=a.defaultEncoding),"function"!=typeof n&&(n=m),a.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(o||function(e,t,n,r){var a=!0,s=!1;return null===n?s=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(s=new TypeError("Invalid non-string/buffer chunk")),s&&(e.emit("error",s),i.nextTick(r,s),a=!1),a}(this,a,e,n))&&(a.pendingcb++,s=function(e,t,n,r,i,a){if(!n){var s=function(e,t,n){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=d.from(t,n)),t}(t,r,i);r!==s&&(n=!0,i="buffer",r=s)}var o=t.objectMode?1:r.length;t.length+=o;var u=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||function(e,t,n){t.ending=!0,E(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n)),t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=p.destroy,b.prototype._undestroy=p.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}},6255(e,t,n){"use strict";var r=n(62460),i=n(68633),a=n(17821),s=n(81826);e.exports=s||r.call(a,i)},7403(e,t,n){"use strict";n.d(t,{F6:()=>w,Ie:()=>d,PL:()=>o,Ui:()=>g,kg:()=>v});var r=n(17388),i=n(72529),a=n(59329),s=n(53487);const o=Symbol.for("effect/DifferChunkPatch");function u(e){return e}const c={...s.wC.prototype,[o]:{_Value:u,_Patch:u}},l=Object.assign(Object.create(c),{_tag:"Empty"}),f=Object.create(l),d=()=>f,h=Object.assign(Object.create(c),{_tag:"AndThen"}),p=Object.assign(Object.create(c),{_tag:"Append"}),m=Object.assign(Object.create(c),{_tag:"Slice"}),y=Object.assign(Object.create(c),{_tag:"Update"}),b=(e,t)=>{const n=Object.create(y);return n.index=e,n.patch=t,n},g=e=>{let t=0,n=d();for(;t{const n=Object.create(m);return n.from=0,n.until=t,n})(0,t)))),t{const t=Object.create(p);return t.values=e,t})(r.gv(t)(e.newValue))))),n},v=a.XY(2,(e,t)=>((e,t)=>{const n=Object.create(h);return n.first=e,n.second=t,n})(e,t)),w=a.XY(3,(e,t,n)=>{if("Empty"===e._tag)return t;let i=t,a=r.of(e);for(;r.J_(a);){const e=r.v4(a),t=r.Rx(a);switch(e._tag){case"Empty":a=t;break;case"AndThen":a=r.Hs(e.first)(r.Hs(e.second)(t));break;case"Append":i=r.u2(e.values)(i),a=t;break;case"Slice":{const n=r.h3(i);i=r.Iv(n.slice(e.from,e.until)),a=t;break}case"Update":{const s=r.h3(i);s[e.index]=n.patch(e.patch,s[e.index]),i=r.Iv(s),a=t;break}}}return i})},7411(e,t,n){"use strict";n.d(t,{l:()=>a});var r=n(41213);const i={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new r.hX({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new r.SK({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new r.B4({offset:e});const t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new r.B4({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const n=t??this.position;return this.assertPosition(n+e-1),this.bytes.subarray(n,n+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,255&e),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const n=this.inspectBytes(e);return this.position+=t??e,n},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function a(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(i);return n.bytes=e,n.dataView=new DataView(e.buffer??e,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}},8495(e,t,n){var r=n(55303),i=n(72258).Buffer;function a(e){var t=i.allocUnsafe(4);return t.writeUInt32BE(e,0),t}e.exports=function(e,t){for(var n,s=i.alloc(0),o=0;s.lengthi,Ge:()=>a,Yv:()=>r,wj:()=>s});const i=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,a=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,s=/^\(.+?\).*?$/},8736(e,t,n){"use strict";function r(e,{dir:t="left"}={}){let n="string"==typeof e?e.replace("0x",""):e,r=0;for(let e=0;er})},8776(e,t,n){"use strict";var r=n(73730).Buffer,i=n(33213),a=n(1890),s=new Array(16),o=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],u=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],c=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],l=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],f=[0,1518500249,1859775393,2400959708,2840853838],d=[1352829926,1548603684,1836072691,2053994217,0];function h(e,t){return e<>>32-t}function p(e,t,n,r,i,a,s,o){return h(e+(t^n^r)+a+s|0,o)+i|0}function m(e,t,n,r,i,a,s,o){return h(e+(t&n|~t&r)+a+s|0,o)+i|0}function y(e,t,n,r,i,a,s,o){return h(e+((t|~n)^r)+a+s|0,o)+i|0}function b(e,t,n,r,i,a,s,o){return h(e+(t&r|n&~r)+a+s|0,o)+i|0}function g(e,t,n,r,i,a,s,o){return h(e+(t^(n|~r))+a+s|0,o)+i|0}function v(){a.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}i(v,a),v.prototype._update=function(){for(var e=s,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var n=0|this._a,r=0|this._b,i=0|this._c,a=0|this._d,v=0|this._e,w=0|this._a,_=0|this._b,S=0|this._c,E=0|this._d,k=0|this._e,x=0;x<80;x+=1){var T,M;x<16?(T=p(n,r,i,a,v,e[o[x]],f[0],c[x]),M=g(w,_,S,E,k,e[u[x]],d[0],l[x])):x<32?(T=m(n,r,i,a,v,e[o[x]],f[1],c[x]),M=b(w,_,S,E,k,e[u[x]],d[1],l[x])):x<48?(T=y(n,r,i,a,v,e[o[x]],f[2],c[x]),M=y(w,_,S,E,k,e[u[x]],d[2],l[x])):x<64?(T=b(n,r,i,a,v,e[o[x]],f[3],c[x]),M=m(w,_,S,E,k,e[u[x]],d[3],l[x])):(T=g(n,r,i,a,v,e[o[x]],f[4],c[x]),M=p(w,_,S,E,k,e[u[x]],d[4],l[x])),n=v,v=a,a=h(i,10),i=r,r=T,w=k,k=E,E=h(S,10),S=_,_=M}var I=this._b+i+E|0;this._b=this._c+a+k|0,this._c=this._d+v+w|0,this._d=this._e+n+_|0,this._e=this._a+r+S|0,this._a=I},v.prototype._digest=function(){this._block[this._blockOffset]=128,this._blockOffset+=1,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=r.alloc?r.alloc(20):new r(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},e.exports=v},8983(e,t,n){"use strict";var r=n(92772),i=n(23145),a=n(33213),s=n(14248),o=r.assert;function u(e){s.call(this,"short",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function c(e,t,n,r){s.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(t,16),this.y=new i(n,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function l(e,t,n,r){s.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(t,16),this.y=new i(n,16),this.z=new i(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}a(u,s),e.exports=u,u.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new i(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=(t=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(e.lambda)n=new i(e.lambda,16);else{var a=this._getEndoRoots(this.n);0===this.g.mul(a[0]).x.cmp(this.g.x.redMul(t))?n=a[0]:(n=a[1],o(0===this.g.mul(n).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:n,basis:e.basis?e.basis.map(function(e){return{a:new i(e.a,16),b:new i(e.b,16)}}):this._getEndoBasis(n)}}},u.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:i.mont(e),n=new i(2).toRed(t).redInvm(),r=n.redNeg(),a=new i(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(a).fromRed(),r.redSub(a).fromRed()]},u.prototype._getEndoBasis=function(e){for(var t,n,r,a,s,o,u,c,l,f=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,h=this.n.clone(),p=new i(1),m=new i(0),y=new i(0),b=new i(1),g=0;0!==d.cmpn(0);){var v=h.div(d);c=h.sub(v.mul(d)),l=y.sub(v.mul(p));var w=b.sub(v.mul(m));if(!r&&c.cmp(f)<0)t=u.neg(),n=p,r=c.neg(),a=l;else if(r&&2===++g)break;u=c,h=d,d=c,y=p,p=l,b=m,m=w}s=c.neg(),o=l;var _=r.sqr().add(a.sqr());return s.sqr().add(o.sqr()).cmp(_)>=0&&(s=t,o=n),r.negative&&(r=r.neg(),a=a.neg()),s.negative&&(s=s.neg(),o=o.neg()),[{a:r,b:a},{a:s,b:o}]},u.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],r=t[1],i=r.b.mul(e).divRound(this.n),a=n.b.neg().mul(e).divRound(this.n),s=i.mul(n.a),o=a.mul(r.a),u=i.mul(n.b),c=a.mul(r.b);return{k1:e.sub(s).sub(o),k2:u.add(c).neg()}},u.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var a=r.fromRed().isOdd();return(t&&!a||!t&&a)&&(r=r.redNeg()),this.point(e,r)},u.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,r=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(i).cmpn(0)},u.prototype._endoWnafMulAdd=function(e,t,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,a=0;a":""},c.prototype.isInfinity=function(){return this.inf},c.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var n=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},c.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,n=this.x.redSqr(),r=e.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(r),a=i.redSqr().redISub(this.x.redAdd(this.x)),s=i.redMul(this.x.redSub(a)).redISub(this.y);return this.curve.point(a,s)},c.prototype.getX=function(){return this.x.fromRed()},c.prototype.getY=function(){return this.y.fromRed()},c.prototype.mul=function(e){return e=new i(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},c.prototype.mulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},c.prototype.jmulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},c.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},c.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return t},c.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},a(l,s.BasePoint),u.prototype.jpoint=function(e,t,n){return new l(this,e,t,n)},l.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(n,r)},l.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},l.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(t),i=e.x.redMul(n),a=this.y.redMul(t.redMul(e.z)),s=e.y.redMul(n.redMul(this.z)),o=r.redSub(i),u=a.redSub(s);if(0===o.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=o.redSqr(),l=c.redMul(o),f=r.redMul(c),d=u.redSqr().redIAdd(l).redISub(f).redISub(f),h=u.redMul(f.redISub(d)).redISub(a.redMul(l)),p=this.z.redMul(e.z).redMul(o);return this.curve.jpoint(d,h,p)},l.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,r=e.x.redMul(t),i=this.y,a=e.y.redMul(t).redMul(this.z),s=n.redSub(r),o=i.redSub(a);if(0===s.cmpn(0))return 0!==o.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),c=u.redMul(s),l=n.redMul(u),f=o.redSqr().redIAdd(c).redISub(l).redISub(l),d=o.redMul(l.redISub(f)).redISub(i.redMul(c)),h=this.z.redMul(s);return this.curve.jpoint(f,d,h)},l.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var n=this;for(t=0;t=0)return!1;if(n.redIAdd(i),0===this.x.cmp(n))return!0}},l.prototype.inspect=function(){return this.isInfinity()?"":""},l.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},9007(e,t,n){var r=n(23145),i=n(15314);function a(e){this.rand=e||new i.Rand}e.exports=a,a.create=function(e){return new a(e)},a.prototype._randbelow=function(e){var t=e.bitLength(),n=Math.ceil(t/8);do{var i=new r(this.rand.generate(n))}while(i.cmp(e)>=0);return i},a.prototype._randrange=function(e,t){var n=t.sub(e);return e.add(this._randbelow(n))},a.prototype.test=function(e,t,n){var i=e.bitLength(),a=r.mont(e),s=new r(1).toRed(a);t||(t=Math.max(1,i/48|0));for(var o=e.subn(1),u=0;!o.testn(u);u++);for(var c=e.shrn(u),l=o.toRed(a);t>0;t--){var f=this._randrange(new r(2),o);n&&n(f);var d=f.toRed(a).redPow(c);if(0!==d.cmp(s)&&0!==d.cmp(l)){for(var h=1;h0;t--){var l=this._randrange(new r(2),s),f=e.gcd(l);if(0!==f.cmpn(1))return f;var d=l.toRed(i).redPow(u);if(0!==d.cmp(a)&&0!==d.cmp(c)){for(var h=1;hs,s7:()=>i,x8:()=>a});var r=n(20094);class i extends r.C{constructor({signature:e,type:t}){super(`Invalid ${t} signature.`,{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}}class a extends r.C{constructor({signature:e}){super("Unknown signature.",{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}}class s extends r.C{constructor({signature:e}){super("Invalid struct signature.",{details:e,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}}},9100(e,t,n){"use strict";n.d(t,{eC:()=>Ma,gm:()=>ka,ZU:()=>Na,w2:()=>xa,lN:()=>Wa,sv:()=>Ga,dF:()=>Xa,fJ:()=>Fa,sV:()=>ja,Tj:()=>za,Uc:()=>Va,Py:()=>Ba,Sv:()=>La,eq:()=>Ja});var r=n(28062),i=n(75602),a=n(89921),s=n(53487);s.w3,s.wC,s.wC;const o=function(){const e=Symbol.for("effect/Data/Error/plainArgs"),t=class extends a.Wc6{constructor(t){super(t?.message,t?.cause?{cause:t.cause}:void 0),t&&(Object.assign(this,t),Object.defineProperty(this,e,{value:t,enumerable:!1}))}toJSON(){return{...this[e],...this}}};return t}(),u=e=>{const t={BaseEffectError:class extends o{_tag=e}};return t.BaseEffectError.prototype.name=e,t.BaseEffectError};var c=n(59329),l=n(47726),f=n(55606),d=n(36388),h=(n(99053),n(17388)),p=n(93976);const m="Sequential",y="Parallel",b={_tag:m},g=b,v={_tag:y},w=e=>({_tag:"ParallelN",parallelism:e});var _=n(77962),S=n(86937),E=n(46082);E.Ie;const k=E.Ui,x=(E.kg,E.F6);var T=n(72529),M=n(46385),I=n(82884);const A="effect/FiberStatus",N=Symbol.for(A),P="Done",O="Running",R="Suspended",C=M.Yj(`${A}-${P}`);class B{[N]=N;_tag=P;[M.HR](){return C}[T.HR](e){return j(e)&&e._tag===P}}class F{runtimeFlags;[N]=N;_tag=O;constructor(e){this.runtimeFlags=e}[M.HR](){return(0,c.Fs)(M.tW(A),M.kg(M.tW(this._tag)),M.kg(M.tW(this.runtimeFlags)),M.PO(this))}[T.HR](e){return j(e)&&e._tag===O&&this.runtimeFlags===e.runtimeFlags}}class L{runtimeFlags;blockingOn;[N]=N;_tag=R;constructor(e,t){this.runtimeFlags=e,this.blockingOn=t}[M.HR](){return(0,c.Fs)(M.tW(A),M.kg(M.tW(this._tag)),M.kg(M.tW(this.runtimeFlags)),M.kg(M.tW(this.blockingOn)),M.PO(this))}[T.HR](e){return j(e)&&e._tag===R&&this.runtimeFlags===e.runtimeFlags&&T.aI(this.blockingOn,e.blockingOn)}}const j=e=>(0,I.i5)(e,N),D=new B,U=e=>new F(e);var z=n(55661),$=n(91269),V=n(75169),K=n(12717),Y=n(63129),q=n(11264),H=n(66949),G=n(95644);const W=Symbol.for("effect/Micro"),X=Symbol.for("effect/Micro/MicroExit"),J=Symbol.for("effect/Micro/MicroCause"),Z={_E:c.D_};class Q extends globalThis.Error{_tag;traces;[J];constructor(e,t,n){const r=`MicroCause.${e}`;let i,a,s;if(t instanceof globalThis.Error){i=`(${r}) ${t.name}`,a=t.message;const e=a.split("\n").length;s=t.stack?`(${r}) ${t.stack.split("\n").slice(0,e+3).join("\n")}`:`${i}: ${a}`}else i=r,a=(0,K.ZK)(t,0),s=`${i}: ${a}`;n.length>0&&(s+=`\n ${n.join("\n ")}`),super(a),this._tag=e,this.traces=n,this[J]=Z,this.name=i,this.stack=s}pipe(){return(0,H.tT)(this,arguments)}toString(){return this.stack}[K.FX](){return this.stack}}class ee extends Q{defect;constructor(e,t=[]){super("Die",e,t),this.defect=e}}class te extends Q{constructor(e=[]){super("Interrupt","interrupted",e)}}const ne=(e=[])=>new te(e),re=e=>"Interrupt"===e._tag,ie=Symbol.for("effect/Micro/MicroFiber"),ae={_A:c.D_,_E:c.D_};class se{context;interruptible;[ie];_stack=[];_observers=[];_exit;_children;currentOpCount=0;constructor(e,t=!0){this.context=e,this.interruptible=t,this[ie]=ae}getRef(e){return q.gw(this.context,e)}addObserver(e){return this._exit?(e(this._exit),c.Yi):(this._observers.push(e),()=>{const t=this._observers.indexOf(e);t>=0&&this._observers.splice(t,1)})}_interrupted=!1;unsafeInterrupt(){this._exit||(this._interrupted=!0,this.interruptible&&this.evaluate(Pe))}unsafePoll(){return this._exit}evaluate(e){if(this._exit)return;if(void 0!==this._yielded){const e=this._yielded;this._yielded=void 0,e()}const t=this.runLoop(e);if(t===pe)return;const n=oe.interruptChildren&&oe.interruptChildren(this);if(void 0!==n)return this.evaluate(Te(n,()=>t));this._exit=t;for(let e=0;ee)}if(n=n[le](this),n===pe){const e=this._yielded;return X in e?(this._yielded=void 0,e):pe}}}catch(e){return(0,I.i5)(n,le)?Oe(e):Oe(`MicroFiber.runLoop: Not a valid effect: ${String(n)}`)}}getCont(e){for(;;){const t=this._stack.pop();if(!t)return;const n=t[he]&&t[he](this);if(n)return{[e]:n};if(t[e])return t}}_yielded=void 0;yieldWith(e){return this._yielded=e,pe}children(){return this._children??=new Set}}const oe=(0,z.V)("effect/Micro/fiberMiddleware",()=>({interruptChildren:void 0})),ue=Symbol.for("effect/Micro/identifier"),ce=Symbol.for("effect/Micro/args"),le=Symbol.for("effect/Micro/evaluate"),fe=Symbol.for("effect/Micro/successCont"),de=Symbol.for("effect/Micro/failureCont"),he=Symbol.for("effect/Micro/ensureCont"),pe=Symbol.for("effect/Micro/Yield"),me={_A:c.D_,_E:c.D_,_R:c.D_},ye={...p.MS,_op:"Micro",[W]:me,pipe(){return(0,H.tT)(this,arguments)},[Symbol.iterator](){return new G.BW(new G.WT(this))},toJSON(){return{_id:"Micro",op:this[ue],...ce in this?{args:this[ce]}:void 0}},toString(){return(0,K.GP)(this)},[K.FX](){return(0,K.GP)(this)}};function be(e){return Oe("Micro.evaluate: Not implemented")}const ge=e=>({...ye,[ue]:e.op,[le]:e.eval??be,[fe]:e.contA,[de]:e.contE,[he]:e.ensure}),ve=e=>{const t=ge(e);return function(){const n=Object.create(t);return n[ce]=!1===e.single?arguments:arguments[0],n}},we=e=>{const t={...ge(e),[X]:X,_tag:e.op,get[e.prop](){return this[ce]},toJSON(){return{_id:"MicroExit",_tag:e.op,[e.prop]:this[ce]}},[T.HR](t){return Ie(t)&&t._tag===e.op&&T.aI(this[ce],t[ce])},[M.HR](){return M.PO(this,M.kg(M.Yj(e.op))(M.tW(this[ce])))}};return function(e){const n=Object.create(t);return n[ce]=e,n[fe]=void 0,n[de]=void 0,n[he]=void 0,n}},_e=we({op:"Success",prop:"value",eval(e){const t=e.getCont(fe);return t?t[fe](this[ce],e):e.yieldWith(this)}}),Se=we({op:"Failure",prop:"cause",eval(e){let t=e.getCont(de);for(;re(this[ce])&&t&&e.interruptible;)t=e.getCont(de);return t?t[de](this[ce],e):e.yieldWith(this)}}),Ee=ve({op:"Yield",eval(e){let t=!1;return e.getRef(De).scheduleTask(()=>{t||e.evaluate(Re)},this[ce]??0),e.yieldWith(()=>{t=!0})}})(0),ke=_e(void 0),xe=ve({op:"WithMicroFiber",eval(e){return this[ce](e)}}),Te=(0,c.XY)(2,(e,t)=>{const n=Object.create(Me);return n[ce]=e,n[fe]=t,n}),Me=ge({op:"OnSuccess",eval(e){return e._stack.push(this),this[ce]}}),Ie=e=>(0,I.i5)(e,X),Ae=_e,Ne=Se,Pe=Ne(ne()),Oe=e=>Ne(((e,t=[])=>new ee(e,t))(e)),Re=Ae(void 0),Ce="setImmediate"in globalThis?globalThis.setImmediate:e=>setTimeout(e,0);class Be{tasks=[];running=!1;scheduleTask(e,t){this.tasks.push(e),this.running||(this.running=!0,Ce(this.afterScheduled))}afterScheduled=()=>{this.running=!1,this.runTasks()};runTasks(){const e=this.tasks;this.tasks=[];for(let t=0,n=e.length;t=e.getRef(je)}flush(){for(;this.tasks.length>0;)this.runTasks()}}const Fe=(0,c.XY)(2,(e,t)=>xe(n=>{const r=n.context;return n.context=t(r),$e(e,()=>(n.context=r,ke))})),Le=(0,c.XY)(2,(e,t)=>Fe(e,l.h1(t)));class je extends(l.Or()("effect/Micro/currentMaxOpsBeforeYield",{defaultValue:()=>2048})){}class De extends(l.Or()("effect/Micro/currentScheduler",{defaultValue:()=>new Be})){}const Ue=(0,c.XY)(2,(e,t)=>{const n=Object.create(ze);return n[ce]=e,n[fe]=t.onSuccess,n[de]=t.onFailure,n}),ze=ge({op:"OnSuccessAndFailure",eval(e){return e._stack.push(this),this[ce]}}),$e=(0,c.XY)(2,(e,t)=>Ye(n=>Ue(n(e),{onFailure:e=>Te(t(Ne(e)),()=>Se(e)),onSuccess:e=>Te(t(Ae(e)),()=>_e(e))}))),Ve=ve({op:"SetInterruptible",ensure(e){if(e.interruptible=this[ce],e._interrupted&&e.interruptible)return()=>Pe}}),Ke=e=>xe(t=>t.interruptible?e:(t.interruptible=!0,t._stack.push(Ve(!1)),t._interrupted?Pe:e)),Ye=e=>xe(t=>t.interruptible?(t.interruptible=!1,t._stack.push(Ve(!0)),e(Ke)):e(c.D_));n(61346);var qe=n(36708),He=(n(73400),n(84722));class Ge{buckets=[];scheduleTask(e,t){const n=this.buckets.length;let r,i=0;for(;i=this.maxNextTickBeforeTimer?setTimeout(()=>this.starveInternal(0),0):Promise.resolve(void 0).then(()=>this.starveInternal(e+1))}shouldYield(e){return e.currentOpCount>e.getFiberRef(a.KAb)&&e.getFiberRef(a.QPU)}scheduleTask(e,t){this.tasks.scheduleTask(e,t),this.running||(this.running=!0,this.starve())}}const Xe=(0,z.V)(Symbol.for("effect/Scheduler/defaultScheduler"),()=>new We(2048));class Je{tasks=new Ge;deferred=!1;scheduleTask(e,t){this.deferred?Xe.scheduleTask(e,t):this.tasks.scheduleTask(e,t)}shouldYield(e){return e.currentOpCount>e.getFiberRef(a.KAb)&&e.getFiberRef(a.QPU)}flush(){for(;this.tasks.buckets.length>0;){const e=this.tasks.buckets;this.tasks.buckets=[];for(const[t,n]of e)for(let e=0;ea.QID(Xe));var Qe=n(84025);const et=(e,t)=>({_tag:"Par",left:e,right:t}),tt=(e,t)=>({_tag:"Seq",left:e,right:t}),nt=e=>{let t=e,n=ot(),r=Qe.Ie(),i=Qe.Ie();for(;;)switch(t._tag){case"Empty":if(Qe.gD(r))return[n,i];t=r.head,r=r.tail;break;case"Par":r=Qe.qu(t.right,r),t=t.left;break;case"Seq":{const e=t.left,n=t.right;switch(e._tag){case"Empty":t=n;break;case"Par":{const r=e.left,i=e.right;t=et(tt(r,n),tt(i,n));break}case"Seq":{const r=e.left,i=e.right;t=tt(r,tt(i,n));break}case"Single":t=e,i=Qe.qu(n,i)}break}case"Single":if(n=ut(n,t),Qe.gD(r))return[n,i];t=r.head,r=r.tail}throw new Error("BUG: BlockedRequests.step - please report an issue at https://github.com/Effect-TS/effect/issues")},rt=(e,t)=>{if(Qe.gD(e))return Qe.of(dt(t));if(lt(t))return e;const n=gt(e.head),r=ft(t);return 1===n.length&&1===r.length&&T.aI(n[0],r[0])?Qe.qu(bt(e.head,dt(t)),e.tail):Qe.qu(dt(t),e)},it=Symbol.for("effect/RequestBlock/RequestBlockParallel"),at={_R:e=>e};class st{map;[it]=at;constructor(e){this.map=e}}const ot=()=>new st($.Ie()),ut=(e,t)=>new st($.qt(e.map,t.dataSource,e=>qe.ZK(qe.Tj(e,h.BC(t.blockedRequest)),()=>h.of(t.blockedRequest)))),ct=(e,t)=>new st($.TS(e.map,t.map,(e,t,n)=>$.hZ(e,n,qe.YW($.Jt(e,n),{onNone:()=>t,onSome:e=>h.u2(t,e)})))),lt=e=>$.Im(e.map),ft=e=>Array.from($.HP(e.map)),dt=e=>yt($.Tj(e.map,e=>h.of(e))),ht=Symbol.for("effect/RequestBlock/RequestBlockSequential"),pt={_R:e=>e};class mt{map;[ht]=pt;constructor(e){this.map=e}}const yt=e=>new mt(e),bt=(e,t)=>new mt($.TS(t.map,e.map,(e,t,n)=>$.hZ(e,n,qe.YW($.Jt(e,n),{onNone:()=>h.Ie(),onSome:e=>h.u2(e,t)})))),gt=e=>Array.from($.HP(e.map));var vt=n(59688),wt=n(68929);const _t=(0,z.V)(Symbol.for("effect/FiberRef/currentRequestMap"),()=>(0,a.QID)(new Map)),St=(e,t,n,r)=>{switch(e){case void 0:return t();case"unbounded":return n();case"inherit":return a.uPR(a.D$Q,e=>"unbounded"===e?n():e>1?r(e):t());default:return e>1?r(e):t()}};n(79383);var Et=n(53901),kt=(n(16491),n(84468));a.h0c,a.VE1;const xt=a.CoE;a.dWJ,a.VuY,a.Hox,a.n9O,a.Q9S,a.V2G,a.JUF,a.Rkt,a.cbD,a.ygP,a.NG,a.T12,a.m_i,a.eec,a.Cau,a.t9n,a._sz,a.v9O,a.EkE,a.zPu,a.o7R,a.Wtn,a.dDX,a.xtk,a.x5l,a.cpb,a.TBR,a.il9,a.pLZ,a.CrW,a.$sd,a.wnO;var Tt=n(28876),Mt=(n(4909),n(20490));const It="InterruptSignal",At="Stateful",Nt="Resume",Pt="YieldNow",Ot=e=>({_tag:It,cause:e}),Rt=e=>({_tag:At,onFiber:e}),Ct=e=>({_tag:Nt,effect:e}),Bt=()=>({_tag:Pt}),Ft=Symbol.for("effect/FiberScope");class Lt{[Ft]=Ft;fiberId=_.dv;roots=new Set;add(e,t){this.roots.add(t),t.addObserver(()=>{this.roots.delete(t)})}}class jt{fiberId;parent;[Ft]=Ft;constructor(e,t){this.fiberId=e,this.parent=t}add(e,t){this.parent.tell(Rt(e=>{e.addChild(t),t.addObserver(()=>{e.removeChild(t)})}))}}const Dt=(0,z.V)(Symbol.for("effect/FiberScope/Global"),()=>new Lt);var Ut=n(91484);const zt=Symbol.for("effect/Fiber"),$t={_E:e=>e,_A:e=>e},Vt=Symbol.for("effect/Fiber"),Kt=(Tt.pH,Tt.pH,e=>a.piH(a.Bqz(e.await),e.inheritAll)),Yt=(Mt.Em,a.ZmZ,a.ZmZ,"effect/FiberCurrent");var qt=n(35191),Ht=n(35156),Gt=n(57109),Wt=n(42649);const Xt=Symbol.for("effect/Logger"),Jt={_Message:e=>e,_Output:e=>e},Zt=e=>({[Xt]:Jt,log:e,pipe(){return(0,H.tT)(this,arguments)}}),Qt=(c.Yi,/^[^\s"=]*$/),en=(e,t)=>({annotations:n,cause:i,date:a,fiberId:s,logLevel:o,message:u,spans:c})=>{const l=(t,n)=>`${Gt.wR(t)}=${(t=>t.match(Qt)?t:e(t))(n)}`,f=(e,t)=>" "+l(e,t);let d=l("timestamp",a.toISOString());d+=f("level",o.label),d+=f("fiber",Ht.CB(s));const h=r.D8(u);for(let e=0;e`"${e.replace(/\\([\s\S])|(")/g,"\\$1$2")}"`)),nn=(JSON.stringify,e=>{switch(typeof e){case"bigint":case"function":case"symbol":return String(e);default:return K.U2(e)}}),rn=(K.hL,"object"==typeof Wt&&null!==Wt&&"object"==typeof Wt.stdout&&null!==Wt.stdout),an=(rn&&Wt.stdout.isTTY,rn||globalThis,Symbol.for("effect/MetricKeyType")),sn="effect/MetricKeyType/Counter",on=Symbol.for(sn),un=Symbol.for("effect/MetricKeyType/Frequency"),cn=Symbol.for("effect/MetricKeyType/Gauge"),ln="effect/MetricKeyType/Histogram",fn=Symbol.for(ln),dn=Symbol.for("effect/MetricKeyType/Summary"),hn={_In:e=>e,_Out:e=>e};class pn{incremental;bigint;[an]=hn;[on]=on;constructor(e,t){this.incremental=e,this.bigint=t,this._hash=M.Yj(sn)}_hash;[M.HR](){return this._hash}[T.HR](e){return yn(e)}pipe(){return(0,H.tT)(this,arguments)}}M.HR,T.HR,M.HR,T.HR;class mn{boundaries;[an]=hn;[fn]=fn;constructor(e){this.boundaries=e,this._hash=(0,c.Fs)(M.Yj(ln),M.kg(M.tW(this.boundaries)))}_hash;[M.HR](){return this._hash}[T.HR](e){return bn(e)&&T.aI(this.boundaries,e.boundaries)}pipe(){return(0,H.tT)(this,arguments)}}M.HR,T.HR;const yn=e=>(0,I.i5)(e,on),bn=e=>(0,I.i5)(e,fn),gn=Symbol.for("effect/MetricKey"),vn={_Type:e=>e},wn=r.bt(T.aI);class _n{name;keyType;description;tags;[gn]=vn;constructor(e,t,n,r=[]){this.name=e,this.keyType=t,this.description=n,this.tags=r,this._hash=(0,c.Fs)(M.Yj(this.name+this.description),M.kg(M.tW(this.keyType)),M.kg(M.YO(this.tags)))}_hash;[M.HR](){return this._hash}[T.HR](e){return Sn(e)&&this.name===e.name&&T.aI(this.keyType,e.keyType)&&T.aI(this.description,e.description)&&wn(this.tags,e.tags)}pipe(){return(0,H.tT)(this,arguments)}}const Sn=e=>(0,I.i5)(e,gn),En=(0,c.XY)(2,(e,t)=>0===t.length?e:new _n(e.name,e.keyType,e.description,r.KC(e.tags,t)));var kn=n(91170);const xn=Symbol.for("effect/MutableHashMap"),Tn={[xn]:xn,[Symbol.iterator](){return new Mn(this)},toString(){return(0,K.GP)(this.toJSON())},toJSON(){return{_id:"MutableHashMap",values:Array.from(this).map(K.U2)}},[K.FX](){return this.toJSON()},pipe(){return(0,H.tT)(this,arguments)}};class Mn{self;referentialIterator;bucketIterator;constructor(e){this.self=e,this.referentialIterator=e.referential[Symbol.iterator]()}next(){if(void 0!==this.bucketIterator)return this.bucketIterator.next();const e=this.referentialIterator.next();return e.done?(this.bucketIterator=new In(this.self.buckets.values()),this.next()):e}[Symbol.iterator](){return new Mn(this.self)}}class In{backing;constructor(e){this.backing=e}currentBucket;next(){if(void 0===this.currentBucket){const e=this.backing.next();if(e.done)return e;this.currentBucket=e.value[Symbol.iterator]()}const e=this.currentBucket.next();return e.done?(this.currentBucket=void 0,this.next()):e}}const An=()=>{const e=Object.create(Tn);return e.referential=new Map,e.buckets=new Map,e.bucketsSize=0,e},Nn=(0,c.XY)(2,(e,t)=>{if(!1===T.n4(t))return e.referential.has(t)?qe.zN(e.referential.get(t)):qe.dv();const n=t[M.HR](),r=e.buckets.get(n);return void 0===r?qe.dv():Pn(e,r,t)}),Pn=(e,t,n,r=!1)=>{for(let i=0,a=t.length;iqe.Ru(Nn(e,t))),Rn=(0,c.XY)(3,(e,t,n)=>{if(!1===T.n4(t))return e.referential.set(t,n),e;const r=t[M.HR](),i=e.buckets.get(r);return void 0===i?(e.buckets.set(r,[[t,n]]),e.bucketsSize++,e):(Cn(e,i,t),i.push([t,n]),e.bucketsSize++,e)}),Cn=(e,t,n)=>{for(let r=0,i=t.length;re};class Gn{count;[Fn]=Hn;[jn]=jn;constructor(e){this.count=e}[M.HR](){return(0,c.Fs)(M.tW(Ln),M.kg(M.tW(this.count)),M.PO(this))}[T.HR](e){return er(e)&&this.count===e.count}pipe(){return(0,H.tT)(this,arguments)}}const Wn=r.bt(T.aI);class Xn{occurrences;[Fn]=Hn;[Un]=Un;constructor(e){this.occurrences=e}_hash;[M.HR](){return(0,c.Fs)(M.Yj(Dn),M.kg(M.YO(r.Ts(this.occurrences.entries()))),M.PO(this))}[T.HR](e){return tr(e)&&Wn(r.Ts(this.occurrences.entries()),r.Ts(e.occurrences.entries()))}pipe(){return(0,H.tT)(this,arguments)}}class Jn{value;[Fn]=Hn;[$n]=$n;constructor(e){this.value=e}[M.HR](){return(0,c.Fs)(M.tW(zn),M.kg(M.tW(this.value)),M.PO(this))}[T.HR](e){return nr(e)&&this.value===e.value}pipe(){return(0,H.tT)(this,arguments)}}class Zn{buckets;count;min;max;sum;[Fn]=Hn;[Kn]=Kn;constructor(e,t,n,r,i){this.buckets=e,this.count=t,this.min=n,this.max=r,this.sum=i}[M.HR](){return(0,c.Fs)(M.tW(Vn),M.kg(M.tW(this.buckets)),M.kg(M.tW(this.count)),M.kg(M.tW(this.min)),M.kg(M.tW(this.max)),M.kg(M.tW(this.sum)),M.PO(this))}[T.HR](e){return rr(e)&&T.aI(this.buckets,e.buckets)&&this.count===e.count&&this.min===e.min&&this.max===e.max&&this.sum===e.sum}pipe(){return(0,H.tT)(this,arguments)}}class Qn{error;quantiles;count;min;max;sum;[Fn]=Hn;[qn]=qn;constructor(e,t,n,r,i,a){this.error=e,this.quantiles=t,this.count=n,this.min=r,this.max=i,this.sum=a}[M.HR](){return(0,c.Fs)(M.tW(Yn),M.kg(M.tW(this.error)),M.kg(M.tW(this.quantiles)),M.kg(M.tW(this.count)),M.kg(M.tW(this.min)),M.kg(M.tW(this.max)),M.kg(M.tW(this.sum)),M.PO(this))}[T.HR](e){return ir(e)&&this.error===e.error&&T.aI(this.quantiles,e.quantiles)&&this.count===e.count&&this.min===e.min&&this.max===e.max&&this.sum===e.sum}pipe(){return(0,H.tT)(this,arguments)}}const er=e=>(0,I.i5)(e,jn),tr=e=>(0,I.i5)(e,Un),nr=e=>(0,I.i5)(e,$n),rr=e=>(0,I.i5)(e,Kn),ir=e=>(0,I.i5)(e,qn),ar=Symbol.for("effect/MetricHook"),sr={_In:e=>e,_Out:e=>e},or=e=>({[ar]:sr,pipe(){return(0,H.tT)(this,arguments)},...e}),ur=BigInt(0),cr=(e,t,n)=>{const i=n.length;if(!r.iI(t))return r.Ie();const a=t[0],s=t.slice(1),o=lr(e,i,qe.dv(),0,a,n),u=r.of(o);return s.forEach(t=>{u.push(lr(e,i,o.value,o.consumed,t,o.rest))}),r.Tj(u,e=>[e.quantile,e.value])},lr=(e,t,n,i,a,s)=>{let o=e,u=t,c=n,l=i,f=a,d=s,h=e,p=t,m=n,y=i,b=a,g=s;for(;;){if(!r.iI(d))return{quantile:f,value:qe.dv(),consumed:l,rest:[]};if(1===f)return{quantile:f,value:qe.zN(r.Rm(d)),consumed:l+d.length,rest:[]};const e=r.v4(d),t=r.Ln(d,t=>t===e),n=f*u,i=o/2*n,a=l+t[0].length,s=Math.abs(a-n);if(an+i)return{quantile:f,value:qe.$I(c)?qe.zN(e):c,consumed:l,rest:d};switch(c._tag){case"None":h=o,p=u,m=r.d5(d),y=a,b=f,g=t[1],o=h,u=p,c=m,l=y,f=b,d=g;continue;case"Some":if(se},hr=(e,t)=>({[fr]:dr,metricKey:e,metricState:t,pipe(){return(0,H.tT)(this,arguments)}}),pr=Symbol.for("effect/MetricRegistry");class mr{[pr]=pr;map=An();snapshot(){const e=[];for(const[t,n]of this.map)e.push(hr(t,n.get()));return e}get(e){const t=(0,c.Fs)(this.map,Nn(e),qe.Y6);if(null==t){if(yn(e.keyType))return this.getCounter(e);if(n=e.keyType,(0,I.i5)(n,cn))return this.getGauge(e);if((e=>(0,I.i5)(e,un))(e.keyType))return this.getFrequency(e);if(bn(e.keyType))return this.getHistogram(e);if((e=>(0,I.i5)(e,dn))(e.keyType))return this.getSummary(e);throw new Error("BUG: MetricRegistry.get - unknown MetricKeyType - please report an issue at https://github.com/Effect-TS/effect/issues")}var n;return t}getCounter(e){let t=(0,c.Fs)(this.map,Nn(e),qe.Y6);if(null==t){const n=(e=>{let t=e.keyType.bigint?ur:0;const n=e.keyType.incremental?e.keyType.bigint?e=>e>=ur:e=>e>=0:e=>!0,r=e=>{n(e)&&(t+=e)};return or({get:()=>new Gn(t),update:r,modify:r})})(e);(0,c.Fs)(this.map,On(e))||(0,c.Fs)(this.map,Rn(e,n)),t=n}return t}getFrequency(e){let t=(0,c.Fs)(this.map,Nn(e),qe.Y6);if(null==t){const n=(e=>{const t=new Map;for(const n of e.keyType.preregisteredWords)t.set(n,0);const n=e=>{const n=t.get(e)??0;t.set(e,n+1)};return or({get:()=>new Xn(t),update:n,modify:n})})(e);(0,c.Fs)(this.map,On(e))||(0,c.Fs)(this.map,Rn(e,n)),t=n}return t}getGauge(e){let t=(0,c.Fs)(this.map,Nn(e),qe.Y6);if(null==t){const n=((e,t)=>{let n=t;return or({get:()=>new Jn(n),update:e=>{n=e},modify:e=>{n+=e}})})(0,e.keyType.bigint?BigInt(0):0);(0,c.Fs)(this.map,On(e))||(0,c.Fs)(this.map,Rn(e,n)),t=n}return t}getHistogram(e){let t=(0,c.Fs)(this.map,Nn(e),qe.Y6);if(null==t){const n=(e=>{const t=e.keyType.boundaries.values,n=t.length,i=new Uint32Array(n+1),a=new Float64Array(n);let s=0,o=0,u=Number.MAX_VALUE,l=Number.MIN_VALUE;(0,c.Fs)(t,r.di(Tt.pH),r.Tj((e,t)=>{a[t]=e}));const f=e=>{let t=0,r=n;for(;t!==r;){const n=Math.floor(t+(r-t)/2);e<=a[n]?r=n:t=n,r===t+1&&(e<=a[t]?r=t:t=r)}i[t]=i[t]+1,s+=1,o+=e,el&&(l=e)},d=()=>{const e=r.CN(n);let t=0;for(let r=0;r{return e={buckets:d(),count:s,min:u,max:l,sum:o},new Zn(e.buckets,e.count,e.min,e.max,e.sum);var e},update:f,modify:f})})(e);(0,c.Fs)(this.map,On(e))||(0,c.Fs)(this.map,Rn(e,n)),t=n}return t}getSummary(e){let t=(0,c.Fs)(this.map,Nn(e),qe.Y6);if(null==t){const n=(e=>{const{error:t,maxAge:n,maxSize:i,quantiles:a}=e.keyType,s=(0,c.Fs)(a,r.di(Tt.pH)),o=r.CN(i);let u=0,l=0,f=0,d=0,h=0;const p=e=>{const a=[];let u=0;for(;u!==i-1;){const t=o[u];if(null!=t){const[r,i]=t,s=Bn.ne(e-r);Bn.An(s,Bn.v_)&&Bn.Bj(s,n)&&a.push(i)}u+=1}return cr(t,s,r.di(a,Tt.pH))},m=(e,t)=>{i>0&&(u+=1,o[u%i]=[t,e]),d=0===l?e:Math.min(d,e),h=0===l?e:Math.max(h,e),l+=1,f+=e};return or({get:()=>{return e={error:t,quantiles:p(Date.now()),count:l,min:d,max:h,sum:f},new Qn(e.error,e.quantiles,e.count,e.min,e.max,e.sum);var e},update:([e,t])=>m(e,t),modify:([e,t])=>m(e,t)})})(e);(0,c.Fs)(this.map,On(e))||(0,c.Fs)(this.map,Rn(e,n)),t=n}return t}}const yr=Symbol.for("effect/Metric"),br={_Type:e=>e,_In:e=>e,_Out:e=>e},gr=(0,z.V)(Symbol.for("effect/Metric/globalMetricRegistry"),()=>new mr),vr=function(e,t,n,r){const i=Object.assign(e=>a.Mim(e,e=>xr(i,e)),{[yr]:br,keyType:e,unsafeUpdate:t,unsafeValue:n,unsafeModify:r,register(){return this.unsafeValue([]),this},pipe(){return(0,H.tT)(this,arguments)}});return i},wr=(e,t)=>_r(((e,t)=>new _n(e,(e=>new pn(e?.incremental??!1,e?.bigint??!1))(t),qe.k$(t?.description)))(e,t)),_r=e=>{let t;const n=new WeakMap,r=r=>{if(0===r.length)return void 0!==t||(t=gr.get(e)),t;let i=n.get(r);return void 0!==i||(i=gr.get(En(e,r)),n.set(r,i)),i};return vr(e.keyType,(e,t)=>r(t).update(e),e=>r(e).get(),(e,t)=>r(t).modify(e))},Sr=(e,t,n)=>_r(((e,t,n)=>new _n(e,(e=>new mn(e))(t),qe.k$(n)))(e,t,n)),Er=(0,c.XY)(3,(e,t,n)=>kr(e,[kn.L8(t,n)])),kr=(0,c.XY)(2,(e,t)=>vr(e.keyType,(n,i)=>e.unsafeUpdate(n,r.KC(t,i)),n=>e.unsafeValue(r.KC(t,n)),(n,i)=>e.unsafeModify(n,r.KC(t,i)))),xr=(0,c.XY)(2,(e,t)=>a.uPR(a.b1P,n=>a.OH5(()=>e.unsafeUpdate(t,n)))),Tr="effect/MetricBoundaries",Mr=Symbol.for(Tr);class Ir{values;[Mr]=Mr;constructor(e){this.values=e,this._hash=(0,c.Fs)(M.Yj(Tr),M.kg(M.YO(this.values)))}_hash;[M.HR](){return this._hash}[T.HR](e){return Ar(e)&&T.aI(this.values,e.values)}pipe(){return(0,H.tT)(this,arguments)}}const Ar=e=>(0,I.i5)(e,Mr),Nr=e=>{const t=(0,c.Fs)(e,r.u2(h.of(Number.POSITIVE_INFINITY)),r.Qq);return new Ir(t)},Pr=e=>(0,c.Fs)(r.Y6(e.count-1,t=>e.start*Math.pow(e.factor,t)),h.Iv,Nr);var Or=n(17442);n(95516);const Rr=(Mt.KE,(0,c.XY)(2,(e,t)=>a.uPR(_t,n=>a.OH5(()=>{if(n.has(e)){const r=n.get(e);r.state.completed||(r.state.completed=!0,a.q_p(r.result,t))}})))),Cr=Symbol.for("effect/Supervisor"),Br={_T:e=>e};class Fr{underlying;value0;[Cr]=Br;constructor(e,t){this.underlying=e,this.value0=t}get value(){return this.value0}onStart(e,t,n,r){this.underlying.onStart(e,t,n,r)}onEnd(e,t){this.underlying.onEnd(e,t)}onEffect(e,t){this.underlying.onEffect(e,t)}onSuspend(e){this.underlying.onSuspend(e)}onResume(e){this.underlying.onResume(e)}map(e){return new Fr(this,(0,c.Fs)(this.value,a.TjK(e)))}zip(e){return new Lr(this,e)}}class Lr{left;right;_tag="Zip";[Cr]=Br;constructor(e,t){this.left=e,this.right=t}get value(){return a.yU6(this.left.value,this.right.value)}onStart(e,t,n,r){this.left.onStart(e,t,n,r),this.right.onStart(e,t,n,r)}onEnd(e,t){this.left.onEnd(e,t),this.right.onEnd(e,t)}onEffect(e,t){this.left.onEffect(e,t),this.right.onEffect(e,t)}onSuspend(e){this.left.onSuspend(e),this.right.onSuspend(e)}onResume(e){this.left.onResume(e),this.right.onResume(e)}map(e){return new Fr(this,(0,c.Fs)(this.value,a.TjK(e)))}zip(e){return new Lr(this,e)}}const jr=e=>(0,I.i5)(e,Cr)&&(0,I.$J)(e,"Zip");class Dr{effect;[Cr]=Br;constructor(e){this.effect=e}get value(){return this.effect}onStart(e,t,n,r){}onEnd(e,t){}onEffect(e,t){}onSuspend(e){}onResume(e){}map(e){return new Fr(this,(0,c.Fs)(this.value,a.TjK(e)))}zip(e){return new Lr(this,e)}onRun(e,t){return e()}}const Ur=(0,z.V)("effect/Supervisor/none",()=>{return e=a.rIH,new Dr(e);var e});var zr=n(69995),$r=n(7403),Vr=n(18193),Kr=n(49342),Yr=n(72084),qr=n(5673),Hr=n(48905);zr.cL,$r.PL,Vr.r_,Kr.ys,Yr.os,qr.dh,Hr.zo;const Gr=zr.L8,Wr=(zr.cA,zr.iv,zr.J2,zr.zI,zr.Gg,zr.QZ,zr.pd,zr.yo,zr.Q$,zr.yU,"Empty"),Xr="AddSupervisor",Jr="RemoveSupervisor",Zr="AndThen",Qr={_tag:Wr},ei=(e,t)=>({_tag:Zr,first:e,second:t}),ti=(e,t)=>T.aI(e,t)?Ur:jr(e)?ti(e.left,t).zip(ti(e.right,t)):e,ni=e=>T.aI(e,Ur)?V.Ie():jr(e)?(0,c.Fs)(ni(e.left),V.KC(ni(e.right))):V.L8(e),ri=Gr({empty:Qr,patch:(e,t)=>((e,t)=>{let n=e,r=t;for(;h.J_(r);){const e=h.v4(r);switch(e._tag){case Wr:r=h.Rx(r);break;case Xr:n=n.zip(e.supervisor),r=h.Rx(r);break;case Jr:n=ti(n,e.supervisor),r=h.Rx(r);break;case Zr:r=h.Hs(e.first)(h.Hs(e.second)(h.Rx(r)))}}return n})(t,h.of(e)),combine:ei,diff:(e,t)=>{if(T.aI(e,t))return Qr;const n=ni(e),r=ni(t),i=(0,c.Fs)(r,V.iv(n),V.TS(Qr,(e,t)=>ei(e,{_tag:Xr,supervisor:t}))),a=(0,c.Fs)(n,V.iv(r),V.TS(Qr,(e,t)=>ei(e,{_tag:Jr,supervisor:t})));return ei(i,a)}});var ii=n(30114),ai=n(60131);const si=wr("effect_fiber_started",{incremental:!0}),oi=wr("effect_fiber_active"),ui=wr("effect_fiber_successes",{incremental:!0}),ci=wr("effect_fiber_failures",{incremental:!0}),li=Er(Sr("effect_fiber_lifetimes",Pr({start:.5,factor:2,count:35})),"time_unit","milliseconds"),fi="Continue",di="Yield",hi={_E:e=>e,_A:e=>e},pi=e=>{throw new Error(`BUG: FiberRuntime - ${K.ZK(e)} - please report an issue at https://github.com/Effect-TS/effect/issues`)},mi=Symbol.for("effect/internal/fiberRuntime/YieldedOp"),yi=(0,z.V)("effect/internal/fiberRuntime/yieldedOpChannel",()=>({currentOp:null})),bi={[Or.Gj]:(e,t,n)=>(0,G.sn)(()=>t.effect_instruction_i1(n)),OnStep:(e,t,n)=>a.xtk(a.xtk(n)),[Or.du]:(e,t,n)=>(0,G.sn)(()=>t.effect_instruction_i2(n)),[Or.Ni]:(e,t,n)=>(e.patchRuntimeFlags(e.currentRuntimeFlags,t.patch),Ut.In(e.currentRuntimeFlags)&&e.isInterrupted()?a.cbD(e.getInterruptedCause()):a.xtk(n)),[Or.mM]:(e,t,n)=>((0,G.sn)(()=>t.effect_instruction_i2(n)),(0,G.sn)(()=>t.effect_instruction_i0())?(e.pushStack(t),(0,G.sn)(()=>t.effect_instruction_i1())):a.rIH),[Or.xS]:(e,t,n)=>{for(;;){const r=(0,G.sn)(()=>t.effect_instruction_i0.next(n));if(r.done)return a.xtk(r.value);const i=(0,G.ku)(r.value);if(!a.h0c(i))return e.pushStack(t),i;if("Failure"===i._tag)return i;n=i.value}}},gi={[It]:(e,t,n,r)=>(e.processNewInterruptSignal(r.cause),Ut.In(t)?a.cbD(r.cause):n),[Nt]:(e,t,n,r)=>{throw new Error("It is illegal to have multiple concurrent run loops in a single fiber")},[At]:(e,t,n,r)=>(r.onFiber(e,U(t)),n),[Pt]:(e,t,n,r)=>a.qIB(a.m9E(),()=>n)},vi=ai.M();class wi extends p.Xs{[zt]=$t;[Vt]=hi;_fiberRefs;_fiberId;_queue=new Array;_children=null;_observers=new Array;_running=!1;_stack=[];_asyncInterruptor=null;_asyncBlockingOn=null;_exitValue=null;_steps=[];_isYielding=!1;currentRuntimeFlags;currentOpCount=0;currentSupervisor;currentScheduler;currentTracer;currentSpan;currentContext;currentDefaultServices;constructor(e,t,n){if(super(),this.currentRuntimeFlags=n,this._fiberId=e,this._fiberRefs=t,Ut.qg(n)){const e=this.getFiberRef(a.b1P);si.unsafeUpdate(1,e),oi.unsafeUpdate(1,e)}this.refreshRefCache()}commit(){return Kt(this)}id(){return this._fiberId}resume(e){this.tell(Ct(e))}get status(){return this.ask((e,t)=>t)}get runtimeFlags(){return this.ask((e,t)=>(e=>e._tag===P)(t)?e.currentRuntimeFlags:t.runtimeFlags)}scope(){return new jt((e=this).id(),e);var e}get children(){return this.ask(e=>Array.from(e.getChildren()))}getChildren(){return null===this._children&&(this._children=new Set),this._children}getInterruptedCause(){return this.getFiberRef(a.LGt)}fiberRefs(){return this.ask(e=>e.getFiberRefs())}ask(e){return a.DYE(()=>{const t=a.MIt(this._fiberId);return this.tell(Rt((n,r)=>{a.q_p(t,a.OH5(()=>e(n,r)))})),a.gn0(t)})}tell(e){this._queue.push(e),this._running||(this._running=!0,this.drainQueueLaterOnExecutor())}get await(){return a.bIC(e=>{const t=t=>e(a.PyW(t));return this.tell(Rt((e,n)=>{null!==e._exitValue?t(this._exitValue):e.addObserver(t)})),a.OH5(()=>this.tell(Rt((e,n)=>{e.removeObserver(t)})))},this.id())}get inheritAll(){return a.$we((e,t)=>{const n=e.id(),r=e.getFiberRefs(),i=t.runtimeFlags,s=this.getFiberRefs(),o=qt.rl(r,n,s);e.setFiberRefs(o);const u=e.getFiberRef($i),l=(0,c.Fs)(Ut.Ui(i,u),He.HN(Ut._n),He.HN(Ut.rS));return a.$QS(l)})}get poll(){return a.OH5(()=>qe.k$(this._exitValue))}unsafePoll(){return this._exitValue}interruptAsFork(e){return a.OH5(()=>this.tell(Ot(vt.G(e))))}unsafeInterruptAsFork(e){this.tell(Ot(vt.G(e)))}addObserver(e){null!==this._exitValue?e(this._exitValue):this._observers.push(e)}removeObserver(e){this._observers=this._observers.filter(t=>t!==e)}getFiberRefs(){return this.setFiberRef($i,this.currentRuntimeFlags),this._fiberRefs}unsafeDeleteFiberRef(e){this._fiberRefs=qt.Rt(this._fiberRefs,e)}getFiberRef(e){return this._fiberRefs.locals.has(e)?this._fiberRefs.locals.get(e)[0][1]:e.initial}setFiberRef(e,t){this._fiberRefs=qt.aI(this._fiberRefs,{fiberId:this._fiberId,fiberRef:e,value:t}),this.refreshRefCache()}refreshRefCache(){this.currentDefaultServices=this.getFiberRef(f.qJ),this.currentTracer=this.currentDefaultServices.unsafeMap.get(ii.Ez.key),this.currentSupervisor=this.getFiberRef(Vi),this.currentScheduler=this.getFiberRef(Ze),this.currentContext=this.getFiberRef(a.Fi1),this.currentSpan=this.currentContext.unsafeMap.get(ii.Te.key)}setFiberRefs(e){this._fiberRefs=e,this.refreshRefCache()}addChild(e){this.getChildren().add(e)}removeChild(e){this.getChildren().delete(e)}transferChildren(e){const t=this._children;if(this._children=null,null!==t&&t.size>0)for(const n of t)null===n._exitValue&&e.add(this.currentRuntimeFlags,n)}drainQueueOnCurrentThread(){let e=!0;for(;e;){let t=fi;const n=globalThis[Yt];globalThis[Yt]=this;try{for(;t===fi;)t=0===this._queue.length?"Done":this.evaluateMessageWhileSuspended(this._queue.splice(0,1)[0])}finally{this._running=!1,globalThis[Yt]=n}this._queue.length>0&&!this._running?(this._running=!0,t===di?(this.drainQueueLaterOnExecutor(),e=!1):e=!0):e=!1}}drainQueueLaterOnExecutor(){this.currentScheduler.scheduleTask(this.run,this.getFiberRef(a.QPU))}drainQueueWhileRunning(e,t){let n=t;for(;this._queue.length>0;){const t=this._queue.splice(0,1)[0];n=gi[t._tag](this,e,n,t)}return n}isInterrupted(){return!vt.Im(this.getFiberRef(a.LGt))}addInterruptedCause(e){const t=this.getFiberRef(a.LGt);this.setFiberRef(a.LGt,vt.il(t,e))}processNewInterruptSignal(e){this.addInterruptedCause(e),this.sendInterruptSignalToAllChildren()}sendInterruptSignalToAllChildren(){if(null===this._children||0===this._children.size)return!1;let e=!1;for(const t of this._children)t.tell(Ot(vt.G(this.id()))),e=!0;return e}interruptAllChildren(){if(this.sendInterruptSignalToAllChildren()){const e=this._children.values();this._children=null;let t=!1;const n=()=>{const n=e.next();return n.done?a.OH5(()=>{t=!0}):a.NLW(n.value.await)};return a.iMI({while:()=>!t,body:n,step:()=>{}})}return null}reportExitValue(e){if(Ut.qg(this.currentRuntimeFlags)){const t=this.getFiberRef(a.b1P),n=this.id().startTimeMillis,r=Date.now();switch(li.unsafeUpdate(r-n,t),oi.unsafeUpdate(-1,t),e._tag){case Or._l:ui.unsafeUpdate(1,t);break;case Or.N9:ci.unsafeUpdate(1,t)}}if("Failure"===e._tag){const t=this.getFiberRef(a.bRS);vt.t9(e.cause)||"Some"!==t._tag||this.log("Fiber terminated with an unhandled error",e.cause,t)}}setExitValue(e){this._exitValue=e,this.reportExitValue(e);for(let t=this._observers.length-1;t>=0;t--)this._observers[t](e);this._observers=[]}getLoggers(){return this.getFiberRef(ki)}log(e,t,n){const r=qe.Ru(n)?n.value:this.getFiberRef(a.w6U),i=this.getFiberRef(_i);if(Y.MM(i,r))return;const s=this.getFiberRef(a.krO),o=this.getFiberRef(a.Umi),u=this.getLoggers(),c=this.getFiberRefs();if(V.Ej(u)>0){const n=l.Jt(this.getFiberRef(f.qJ),wt.hV),i=new Date(n.unsafeCurrentTimeMillis());K.RJ(c,()=>{for(const n of u)n.log({fiberId:this.id(),logLevel:r,message:e,cause:t,context:c,spans:s,annotations:o,date:i})})}}evaluateMessageWhileSuspended(e){switch(e._tag){case Pt:return di;case It:return this.processNewInterruptSignal(e.cause),null!==this._asyncInterruptor&&(this._asyncInterruptor(a.cbD(e.cause)),this._asyncInterruptor=null),fi;case Nt:return this._asyncInterruptor=null,this._asyncBlockingOn=null,this.evaluateEffect(e.effect),fi;case At:return e.onFiber(this,null!==this._exitValue?D:(t=this.currentRuntimeFlags,n=this._asyncBlockingOn,new L(t,n))),fi;default:return pi(e)}var t,n}evaluateEffect(e){this.currentSupervisor.onResume(this);try{let t=Ut.In(this.currentRuntimeFlags)&&this.isInterrupted()?a.cbD(this.getInterruptedCause()):e;for(;null!==t;){const e=t,n=this.runLoop(e);if(n===mi){const e=yi.currentOp;yi.currentOp=null,e._op===Or.u4?Ut.Ps(this.currentRuntimeFlags)?(this.tell(Bt()),this.tell(Ct(a.x5l)),t=null):t=a.x5l:e._op===Or.ZO&&(t=null)}else{this.currentRuntimeFlags=(0,c.Fs)(this.currentRuntimeFlags,Ut.sS(Ut.rS));const e=this.interruptAllChildren();null!==e?t=a.qIB(e,()=>n):(0===this._queue.length?this.setExitValue(n):this.tell(Ct(n)),t=null)}}}finally{this.currentSupervisor.onSuspend(this)}}start(e){if(this._running)this.tell(Ct(e));else{this._running=!0;const t=globalThis[Yt];globalThis[Yt]=this;try{this.evaluateEffect(e)}finally{this._running=!1,globalThis[Yt]=t,this._queue.length>0&&this.drainQueueLaterOnExecutor()}}}startFork(e){this.tell(Ct(e))}patchRuntimeFlags(e,t){const n=Ut.F6(e,t);return globalThis[Yt]=this,this.currentRuntimeFlags=n,n}initiateAsync(e,t){let n=!1;const r=e=>{n||(n=!0,this.tell(Ct(e)))};Ut.In(e)&&(this._asyncInterruptor=r);try{t(r)}catch(e){r(a.ATB(vt.F_(e)))}}pushStack(e){this._stack.push(e),"OnStep"===e._op&&this._steps.push({refs:this.getFiberRefs(),flags:this.currentRuntimeFlags})}popStack(){const e=this._stack.pop();if(e)return"OnStep"===e._op&&this._steps.pop(),e}getNextSuccessCont(){let e=this.popStack();for(;e;){if(e._op!==Or.JJ)return e;e=this.popStack()}}getNextFailCont(){let e=this.popStack();for(;e;){if(e._op!==Or.Gj&&e._op!==Or.mM&&e._op!==Or.xS)return e;e=this.popStack()}}[Or.tA](e){return a.OH5(()=>l.$v(this.currentContext,e))}Left(e){return a.fJG(e.left)}None(e){return a.fJG(new a.kJg)}Right(e){return a.xtk(e.right)}Some(e){return a.xtk(e.value)}Micro(e){return a.t04(t=>{let n=t;const r=((e,t)=>{const n=new se(De.context(t?.scheduler??new Be));if(n.evaluate(e),t?.signal)if(t.signal.aborted)n.unsafeInterrupt();else{const e=()=>n.unsafeInterrupt();t.signal.addEventListener("abort",e,{once:!0}),n.addObserver(()=>t.signal.removeEventListener("abort",e))}return n})(Le(e,this.currentContext));return r.addObserver(e=>{if("Success"===e._tag)return n(a.xtk(e.value));switch(e.cause._tag){case"Interrupt":return n(a.cbD(vt.G(_.dv)));case"Fail":return n(a.fJG(e.cause.error));case"Die":return n(a.F_Q(e.cause.defect))}}),a.t04(e=>{n=t=>{e(a.rIH)},r.unsafeInterrupt()})})}[Or.EF](e){const t=(0,G.sn)(()=>e.effect_instruction_i0()),n=this.getNextSuccessCont();return void 0!==n?(n._op in bi||pi(n),bi[n._op](this,n,t)):(yi.currentOp=a.xtk(t),mi)}[Or._l](e){const t=e,n=this.getNextSuccessCont();return void 0!==n?(n._op in bi||pi(n),bi[n._op](this,n,t.effect_instruction_i0)):(yi.currentOp=t,mi)}[Or.N9](e){const t=e.effect_instruction_i0,n=this.getNextFailCont();if(void 0===n)return yi.currentOp=a.cbD(t),mi;switch(n._op){case Or.JJ:case Or.du:return Ut.In(this.currentRuntimeFlags)&&this.isInterrupted()?a.cbD(vt.el(t)):(0,G.sn)(()=>n.effect_instruction_i1(t));case"OnStep":return Ut.In(this.currentRuntimeFlags)&&this.isInterrupted()?a.cbD(vt.el(t)):a.xtk(a.cbD(t));case Or.Ni:return this.patchRuntimeFlags(this.currentRuntimeFlags,n.patch),Ut.In(this.currentRuntimeFlags)&&this.isInterrupted()?a.cbD(vt.il(t,this.getInterruptedCause())):a.cbD(t);default:pi(n)}}[Or.mm](e){return(0,G.sn)(()=>e.effect_instruction_i0(this,U(this.currentRuntimeFlags)))}Blocked(e){const t=this.getFiberRefs(),n=this.currentRuntimeFlags;if(this._steps.length>0){const r=[],i=this._steps[this._steps.length-1];let s=this.popStack();for(;s&&"OnStep"!==s._op;)r.push(s),s=this.popStack();this.setFiberRefs(i.refs),this.currentRuntimeFlags=i.flags;const o=k(i.refs,t),u=Ut.Ui(i.flags,n);return a.xtk(a.Z5i(e.effect_instruction_i0,a.$we(t=>{for(;r.length>0;)t.pushStack(r.pop());return t.setFiberRefs(x(t.id(),t.getFiberRefs())(o)),t.currentRuntimeFlags=Ut.F6(u)(t.currentRuntimeFlags),e.effect_instruction_i1})))}return a.FcF(t=>a.qIB(Ai(a.UFt(e.effect_instruction_i0)),()=>t(e.effect_instruction_i1)))}RunBlocked(e){return(e=>a.QZV((e=>{let t=Qe.of(e),n=Qe.Ie();for(;;){const[e,r]=Qe.TS(t,[ot(),Qe.Ie()],([e,t],n)=>{const[r,i]=nt(n);return[ct(e,r),Qe.u2(t,i)]});if(n=rt(n,e),Qe.gD(r))return Qe.BE(n);t=r}throw new Error("BUG: BlockedRequests.flatten - please report an issue at https://github.com/Effect-TS/effect/issues")})(e),e=>Mi((e=>Array.from(e.map))(e),([e,t])=>{const n=new Map,r=[];for(const e of t){r.push(h.h3(e));for(const t of e)n.set(t.request,t)}const i=r.flat();return a.woH(Ki(e.runAll(r),i,()=>i.forEach(e=>{e.listeners.interrupted=!0})),_t,n)},!1,!1)))(e.effect_instruction_i0)}[Or.NM](e){const t=e.effect_instruction_i0,n=this.currentRuntimeFlags,r=Ut.F6(n,t);if(Ut.In(r)&&this.isInterrupted())return a.cbD(this.getInterruptedCause());if(this.patchRuntimeFlags(this.currentRuntimeFlags,t),e.effect_instruction_i1){const t=Ut.Ui(r,n);return this.pushStack(new a.yPL(t,e)),(0,G.sn)(()=>e.effect_instruction_i1(n))}return a.x5l}[Or.Gj](e){return this.pushStack(e),e.effect_instruction_i0}OnStep(e){return this.pushStack(e),e.effect_instruction_i0}[Or.JJ](e){return this.pushStack(e),e.effect_instruction_i0}[Or.du](e){return this.pushStack(e),e.effect_instruction_i0}[Or.ZO](e){return this._asyncBlockingOn=e.effect_instruction_i1,this.initiateAsync(this.currentRuntimeFlags,e.effect_instruction_i0),yi.currentOp=e,mi}[Or.u4](e){return this._isYielding=!1,yi.currentOp=e,mi}[Or.mM](e){const t=e.effect_instruction_i0,n=e.effect_instruction_i1;return t()?(this.pushStack(e),n()):a.x5l}[Or.xS](e){return bi[Or.xS](this,e,void 0)}[Or.kK](e){return(0,G.sn)(()=>e.commit())}runLoop(e){let t=e;for(this.currentOpCount=0;;){if(0!==(this.currentRuntimeFlags&Ut.zb)&&this.currentSupervisor.onEffect(this,t),this._queue.length>0&&(t=this.drainQueueWhileRunning(this.currentRuntimeFlags,t)),!this._isYielding){this.currentOpCount+=1;const e=this.currentScheduler.shouldYield(this);if(!1!==e){this._isYielding=!0,this.currentOpCount=0;const n=t;t=a.qIB(a.m9E({priority:e}),()=>n)}}try{if(t=this.currentTracer.context(()=>{if(vi!==t[a.$n1]._V){const e=this.getFiberRef(a.G2Y);if("Some"===e._tag){const n=t[a.$n1]._V;this.log(`Executing an Effect versioned ${n} with a Runtime of version ${ai.M()}, you may want to dedupe the effect dependencies, you can use the language service plugin to detect this at compile time: https://github.com/Effect-TS/language-service`,vt.Ie,e)}}return this[t._op](t)},this),t===mi){const e=yi.currentOp;return e._op===Or.u4||e._op===Or.ZO?mi:(yi.currentOp=null,e._op===Or._l||e._op===Or.N9?e:a.cbD(vt.F_(e)))}}catch(e){t=t!==mi&&!I.i5(t,"_op")||!(t._op in this)?a.GSS(`Not a valid effect: ${K.ZK(t)}`):a.OTT(e)?a.cbD(vt.il(vt.F_(e),vt.G(_.dv))):a.F_Q(e)}}}run=()=>{this.drainQueueOnCurrentThread()}}const _i=(0,z.V)("effect/FiberRef/currentMinimumLogLevel",()=>a.QID(Y.Al("Info"))),Si=(0,z.V)(Symbol.for("effect/Logger/defaultLogger"),()=>(e=>Zt(t=>{const n=S.Fh(t.context,f.qJ);l.Jt(n,d.MG).unsafe.log(e.log(t))}))(tn)),Ei=(0,z.V)(Symbol.for("effect/Logger/tracerLogger"),()=>Zt(({annotations:e,cause:t,context:n,fiberId:r,logLevel:i,message:s})=>{const o=l.om(qt.Fh(n,a.Fi1),ii.Te);if("None"===o._tag||"ExternalSpan"===o.value._tag)return;const u=l.$v(qt.Fh(n,f.qJ),wt.hV),c={};for(const[t,n]of e)c[t]=n;c["effect.fiberId"]=_.CB(r),c["effect.logLevel"]=i.label,null!==t&&"Empty"!==t._tag&&(c["effect.cause"]=vt.j9(t,{renderErrorCause:!0})),o.value.event(K.ZK(Array.isArray(s)&&1===s.length?s[0]:s),u.unsafeCurrentTimeNanos(),c)})),ki=(0,z.V)(Symbol.for("effect/FiberRef/currentLoggers"),()=>a._Pd(V.L8(Si,Ei))),xi=(0,c.XY)(e=>I.xZ(e[0]),(e,t,n)=>a.$we(r=>{const i=!0===n?.batching||"inherit"===n?.batching&&r.getFiberRef(a.pX6);return n?.discard?St(n.concurrency,()=>Bi(g,n?.concurrentFinalizers)(n=>i?Mi(e,(e,r)=>n(t(e,r)),!0,!1,1):a.QZV(e,(e,r)=>n(t(e,r)))),()=>Bi(v,n?.concurrentFinalizers)(n=>Mi(e,(e,r)=>n(t(e,r)),i,!1)),r=>Bi(w(r),n?.concurrentFinalizers)(n=>Mi(e,(e,r)=>n(t(e,r)),i,!1,r))):St(n?.concurrency,()=>Bi(g,n?.concurrentFinalizers)(n=>i?Ii(e,1,(e,r)=>n(t(e,r)),!0):a.CFK(e,(e,r)=>n(t(e,r)))),()=>Bi(v,n?.concurrentFinalizers)(n=>Ti(e,(e,r)=>n(t(e,r)),i)),r=>Bi(w(r),n?.concurrentFinalizers)(n=>Ii(e,r,(e,r)=>n(t(e,r)),i)))})),Ti=(e,t,n)=>a.DYE(()=>{const i=r.Ts(e),s=new Array(i.length);return a.aNH(Mi(i,(e,n)=>a.qIB(t(e,n),e=>a.OH5(()=>s[n]=e)),n,!1),a.PyW(s))}),Mi=(e,t,n,r,i)=>a.FcF(s=>a.sK9(o=>a.$we(u=>{let c=Array.from(e).reverse(),l=c.length;if(0===l)return a.rIH;let f=0,d=!1;const h=i?Math.min(c.length,i):c.length,p=new Set,m=new Array,y=new Array,b=new Array,g=new Array,v=()=>{const e=m.filter(({exit:e})=>"Failure"===e._tag).sort((e,t)=>e.indexe);return 0===e.length&&e.push(a.x5l),e},w=(e,t=!1)=>{const n=a.rfi(o(e)),r=Ni(n,u,u.currentRuntimeFlags,Dt);return u.currentScheduler.scheduleTask(()=>{t&&r.unsafeInterruptAsFork(u.id()),r.resume(n)},0),r},_=()=>{r||(l-=c.length,c=[]),d=!0,p.forEach(e=>{e.currentScheduler.scheduleTask(()=>{e.unsafeInterruptAsFork(u.id())},0)})},S=n?a.PMw:a.NS5,E=w(a.bIC(e=>{const r=(e,t)=>{"Blocked"===e._op?g.push(e):(m.push({index:t,exit:e}),"Failure"!==e._op||d||_())},o=()=>{if(c.length>0){const h=c.pop();let _=f++;const E=()=>{const e=c.pop();return _=f++,a.qIB(a.m9E(),()=>a.qIB(S(s(t(e,_))),k))},k=e=>c.length>0&&(r(e,_),c.length>0)?E():a.PyW(e),x=a.qIB(S(s(t(h,_))),k),T=w(x);y.push(T),p.add(T),d&&T.currentScheduler.scheduleTask(()=>{T.unsafeInterruptAsFork(u.id())},0),T.addObserver(t=>{let s;if(s="Failure"===t._op?t:t.effect_instruction_i0,b.push(T),p.delete(T),r(s,_),m.length===l)e(a.PyW(qe.WL(a.Q9S(v(),{parallel:!0}),()=>a.x5l)));else if(g.length+m.length===l){const t=v(),r=g.map(e=>e.effect_instruction_i0).reduce(et);e(a.PyW(a.Z5i(r,Mi([qe.WL(a.Q9S(t,{parallel:!0}),()=>a.x5l),...g.map(e=>e.effect_instruction_i1)],e=>e,n,!0,i))))}else o()})}};for(let e=0;e{_();const t=g.length+1,n=Math.min("number"==typeof i?i:g.length,g.length),r=Array.from(g);return a.bIC(i=>{const s=[];let o=0,u=0;const c=(n,u)=>c=>{s[n]=c,o++,o===t&&i(a.xtk(a.cbD(e))),r.length>0&&u&&l()},l=()=>{w(r.pop(),!0).addObserver(c(u,!0)),u++};E.addObserver(c(u,!1)),u++;for(let e=0;ea.CFK(b,e=>e.inheritAll)})))}))),Ii=(e,t,n,i)=>a.DYE(()=>{const s=r.Ts(e),o=new Array(s.length);return a.aNH(Mi(s,(e,t)=>a.TjK(n(e,t),e=>o[t]=e),i,!1,t),a.PyW(o))}),Ai=e=>Oi(e,Dt),Ni=(e,t,n,r=null)=>Pi(e,t,n,r),Pi=(e,t,n,r=null)=>{const i=_.$N(),s=t.getFiberRefs(),o=qt.BG(s,i),u=new wi(i,o,n),l=qt.Fh(o,a.Fi1),f=u.currentSupervisor;return f.onStart(l,e,qe.zN(t),u),u.addObserver(e=>f.onEnd(e,u)),(null!==r?r:(0,c.Fs)(t.getFiberRef(a.CdZ),qe.WL(()=>t.scope()))).add(n,u),u},Oi=(e,t)=>a.$we((n,r)=>a.PyW(((e,t,n,r=null)=>{const i=Pi(e,t,n,r);return i.resume(e),i})(e,n,r.runtimeFlags,t))),Ri=e=>a.d_m(t=>qe.YW(l.om(t,Li),{onNone:()=>e,onSome:t=>{switch(t.strategy._tag){case"Parallel":return e;case"Sequential":case"ParallelN":return a.qIB(a.Z$R(t,v),t=>Ui(e,t))}}})),Ci=e=>t=>a.d_m(n=>qe.YW(l.om(n,Li),{onNone:()=>t,onSome:n=>"ParallelN"===n.strategy._tag&&n.strategy.parallelism===e?t:a.qIB(a.Z$R(n,w(e)),e=>Ui(t,e))})),Bi=(e,t)=>n=>a.d_m(r=>qe.YW(l.om(r,Li),{onNone:()=>n(c.D_),onSome:r=>{if(!0!==t)return n(c.D_);{const t="Parallel"===e._tag?Ri:"Sequential"===e._tag?Fi:Ci(e.parallelism);switch(r.strategy._tag){case"Parallel":return t(n(Ri));case"Sequential":return t(n(Fi));case"ParallelN":return t(n(Ci(r.strategy.parallelism)))}}}})),Fi=e=>a.d_m(t=>qe.YW(l.om(t,Li),{onNone:()=>e,onSome:t=>{switch(t.strategy._tag){case"Sequential":return e;case"Parallel":case"ParallelN":return a.qIB(a.Z$R(t,g),t=>Ui(e,t))}}})),Li=l.Io("effect/Scope"),ji={[a.kWD]:a.kWD,[a.APi]:a.APi,pipe(){return(0,H.tT)(this,arguments)},fork(e){return a.OH5(()=>{const t=Di(e);if("Closed"===this.state._tag)return t.state=this.state,t;const n={};return this.state.finalizers.set(n,e=>t.close(e)),i=e=>a.OH5(()=>{"Open"===this.state._tag&&this.state.finalizers.delete(n)}),"Open"===(r=t).state._tag&&r.state.finalizers.set({},i),t;var r,i})},close(e){return a.DYE(()=>{if("Closed"===this.state._tag)return a.rIH;const t=Array.from(this.state.finalizers.values()).reverse();return this.state={_tag:"Closed",exit:e},0===t.length?a.rIH:(e=>e._tag===m)(this.strategy)?(0,c.Fs)(a.CFK(t,t=>a.NS5(t(e))),a.qIB(e=>(0,c.Fs)(a.Q9S(e),qe.Tj(a.Hox),qe.WL(()=>a.x5l)))):(e=>e._tag===y)(this.strategy)?(0,c.Fs)(Ti(t,t=>a.NS5(t(e)),!1),a.qIB(e=>(0,c.Fs)(a.Q9S(e,{parallel:!0}),qe.Tj(a.Hox),qe.WL(()=>a.x5l)))):(0,c.Fs)(Ii(t,this.strategy.parallelism,t=>a.NS5(t(e)),!1),a.qIB(e=>(0,c.Fs)(a.Q9S(e,{parallel:!0}),qe.Tj(a.Hox),qe.WL(()=>a.x5l))))})},addFinalizer(e){return a.DYE(()=>"Closed"===this.state._tag?e(this.state.exit):(this.state.finalizers.set({},e),a.rIH))}},Di=(e=b)=>{const t=Object.create(ji);return t.strategy=e,t.state={_tag:"Open",finalizers:new Map},t},Ui=(0,c.XY)(2,(e,t)=>a.kyh(e,l.h1(l.L8(Li,t)))),zi=e=>a.sH6(e,{differ:ri,fork:Qr}),$i=a.nlF(Ut.dv),Vi=zi(Ur),Ki=(e,t,n)=>a.g1G(r=>a.qIB(a.qIB(Ai(a.Inz(e)),e=>a.bIC(r=>{const i=t.map(e=>e.listeners.count),s=()=>{i.every(e=>0===e)&&t.every(e=>"Pending"===e.result.state.current._tag||!("Done"!==e.result.state.current._tag||!a.h0c(e.result.state.current.effect)||"Failure"!==e.result.state.current.effect._tag||!vt.fT(e.result.state.current.effect.cause)))&&(o.forEach(e=>e()),n?.(),r(a.OLv(e)))};e.addObserver(e=>{o.forEach(e=>e()),r(e)});const o=t.map((e,t)=>{const n=e=>{i[t]=e,s()};return e.listeners.addObserver(n),()=>e.listeners.removeObserver(n)});return s(),a.OH5(()=>{o.forEach(e=>e())})})),()=>a.DYE(()=>{const e=t.flatMap(e=>e.state.completed?[]:[e]);return a.QZV(e,e=>Rr(e.request,a._sz(r)))})));f.qJ,d.MG;var Yi=n(17353),qi=n(4014);p.Xs;T.HR,M.HR;p.Xs,qi.ll,Yi.ii,a.OLv,a._tB,a.kWD,a.APi,a.iLB,a.Uio;const Hi=a.vDJ,Gi=a.Z$R,Wi=e=>function(){if(1===arguments.length){const t=arguments[0];return(n,...r)=>e(t,n,...r)}return e.apply(this,arguments)},Xi=Wi((e,t,n)=>{const r=_.$N(),i=[[a.Fi1,[[r,e.context]]]];n?.scheduler&&i.push([Ze,[[r,n.scheduler]]]);let s=S.vG(e.fiberRefs,{entries:i,forkAs:r});n?.updateRefs&&(s=n.updateRefs(s,r));const o=new wi(r,s,e.runtimeFlags);let u=t;n?.scope&&(u=a.qIB(Gi(n.scope,b),e=>a.aNH(a.iLB(e,a.g1G(e=>(0,T.aI)(e,o.id())?a.rIH:a._tB(o,e))),a.cfM(t,t=>Hi(e,t)))));const c=o.currentSupervisor;return c!==Ur&&(c.onStart(e.context,u,qe.dv(),o),o.addObserver(e=>c.onEnd(e,o))),Dt.add(e.runtimeFlags,o),!1===n?.immediate?o.resume(u):o.start(u),o}),Ji=Wi((e,t)=>{const n=ra(e)(t);if("Failure"===n._tag)throw na(n.effect_instruction_i0);return n.effect_instruction_i0});class Zi extends Error{fiber;_tag="AsyncFiberException";constructor(e){super(`Fiber #${e.id().id} cannot be resolved synchronously. This is caused by using runSync on an effect that performs async work`),this.fiber=e,this.name=this._tag,this.stack=this.message}}const Qi=Symbol.for("effect/Runtime/FiberFailure"),ea=Symbol.for("effect/Runtime/FiberFailure/Cause");class ta extends Error{[Qi];[ea];constructor(e){const t=vt.Yu(e)[0];super(t?.message||"An error has occurred"),this[Qi]=Qi,this[ea]=e,this.name=t?`(FiberFailure) ${t.name}`:"FiberFailure",t?.stack&&(this.stack=t.stack)}toJSON(){return{_id:"FiberFailure",cause:this[ea].toJSON()}}toString(){return"(FiberFailure) "+vt.j9(this[ea],{renderErrorCause:!0})}[K.FX](){return this.toString()}}const na=e=>{const t=Error.stackTraceLimit;Error.stackTraceLimit=0;const n=new ta(e);return Error.stackTraceLimit=t,n},ra=Wi((e,t)=>{const n=(e=>{const t=e;switch(t._op){case"Failure":case"Success":return t;case"Left":return a.Rkt(t.left);case"Right":return a.xtk(t.right);case"Some":return a.xtk(t.value);case"None":return a.Rkt(new a.kJg)}})(t);if(n)return n;const r=new Je,i=Xi(e)(t,{scheduler:r});r.flush();return i.unsafePoll()||a.V2G(a.FgE((e=>{const t=Error.stackTraceLimit;Error.stackTraceLimit=0;const n=new Zi(e);return Error.stackTraceLimit=t,n})(i),a.S_H(i)))});class ia{context;runtimeFlags;fiberRefs;constructor(e,t,n){this.context=e,this.runtimeFlags=t,this.fiberRefs=n}pipe(){return(0,H.tT)(this,arguments)}}const aa=e=>new ia(e.context,e.runtimeFlags,e.fiberRefs),sa=Ut.L8(Ut._n,Ut.Zd,Ut.sd),oa=aa({context:l.Ie(),runtimeFlags:sa,fiberRefs:S.Ie()}),ua=Xi(oa),ca=Ji(oa);n(65668),Bn.v_,Bn.v_,n(34520).FX,a.WW4,a.sDf,a.gn0,a.$1O,a.ZI2,a.AsN,a.Ao,a.jxG,a.FIO,a.un1,a.AR8,a.lN4,a.ZM1,a.bdM,a._fI,a.vwO,a.syF,a.BCV,a.MIt,a.q_p;Symbol.iterator,K.FX,Symbol.iterator,K.FX;M.HR,T.HR,a.$n1;const la=a.yw5,fa=(Et.Bj,Et.Oo,Et.Cm,Et.Hd,Et.QK,Et.v6,Et.Si,Et.x1,Et.i8,xi),da=(Et.d5,Et.TS,Et.KE,Et.XK,a.bIC,a.IeY,a.$we,a.fJG,a.gOk,a.ATB,a.pVV,a.F_Q,a.GSS,a.Kbz,a.JkU,a.ZmZ,Et.dv,Et.iv,a.PyW,Et.lw,Et.nG,a.DYE),ha=(a.OH5,a.rIH),pa=(a.m9E,Et.nb,a.h9N),ma=(a.uPo,Et.IK,a.XWm,a._Oy,Et.RJ,Et.Nu,Et.Ku,Et.lo,Et.c1,Et.u4,Et.Xe,Et.XP,Et.Zk,Et._S,Et.bS,Et.gZ,Et.xA,Et.$m,Et.Pb,Et.vV,a._5X,a.GaK,a.IPo,a.Inz,a.eMl,a.nAr,a.rfi,a.FcF,Et.VW,a.as,Et.Xx,Et.t2,a.NLW,a.UUz,Et.AA,a.TjK),ya=(Et.OM,a.UcN),ba=a.xm_,ga=(Et.aW,Et.h1,Et.ze,a.jGc,a.S5A,a.cfM,Et.yu,Et.U$,Et.Ek,a.ABT,a.g1G,a.sK9,a.KyM,a.FRe,a.jDN,Et.pm,Et.RK,f.V6,Et.cb,Et.yy,Et.ay,Et.yW,f.aP,f.gm,a._OA,Et.sx,a.d_m,a.kyh,Et.Pf,Et.c7,Et.A3,Et.p4,Et.KO,Et.XN,Et.ZF,Et.N,Et.gB,Et.bU,Et.Do,Et.oI,Et.Jr,Et.zM,Et.uK,a.gPK),va=(a.NS5,a._ig,a.tDT,Et.kr,Et.Nf,Et.Pm,Et.W$,a._z2,a.HyR,Et.NJ,Et.ix,Et.z7,a.iK2,Et.iz,Et.mf,a.qIB),wa=(a.hgn,a.Bqz,Et.Uy,a.Mim,Et.Bi,Et.nA,Et.sF,Et.TN,Et.Ly,Et.i4,Et.nl,Et.HW,Et.wn,a.iMI,Et.rQ,Et.EN,a.woH,a.q1t,Et.Bz,Et.Z,Et.En,Et.N6,Et.oJ,Et.YW,a.D$$,a.khu,a.tvg,Et.Rm,Et.om,Et.MD,Et.fH,Et.FF,Et.Og,Et.Zc,Et.f1,Et.sw,Et.rr,a.EYO,a.QgK,a.kS9,a.NWQ,Et.xS,Et.DM,Et.Dd,Et.yT,f.Gx,f.Ii,a.m$m,a.$QS,a.cay,Et.G6,Et.Mw,a.SLb,Et.Xz,ua),_a=ca;a.Z5i,a.UFt,a.PMw,a.mHP,Et.kJ,f.wT,f._o,a.nDN,a.MaT,Et.Mu,Et.ww,Et._3,Et.Wj,Et.Fu,Et.Wb,Et.A_,Et._B,Et.Z9,Et.gv,Et.fR,Et.RO,Et.hq,Et.k$,Et.SM,a.D9k;var Sa=n(23343),Ea=n(50168);class ka{path;actual;issue;_tag="Pointer";constructor(e,t,n){this.path=e,this.actual=t,this.issue=n}}class xa{actual;message;_tag="Unexpected";constructor(e,t){this.actual=e,this.message=t}}class Ta{ast;message;_tag="Missing";actual=void 0;constructor(e,t){this.ast=e,this.message=t}}class Ma{ast;actual;issues;output;_tag="Composite";constructor(e,t,n,r){this.ast=e,this.actual=t,this.issues=n,this.output=r}}class Ia{ast;actual;kind;issue;_tag="Refinement";constructor(e,t,n,r){this.ast=e,this.actual=t,this.kind=n,this.issue=r}}class Aa{ast;actual;kind;issue;_tag="Transformation";constructor(e,t,n,r){this.ast=e,this.actual=t,this.kind=n,this.issue=r}}class Na{ast;actual;message;_tag="Type";constructor(e,t,n){this.ast=e,this.actual=t,this.message=n}}class Pa{ast;actual;message;_tag="Forbidden";constructor(e,t,n){this.ast=e,this.actual=t,this.message=n}}const Oa=Symbol.for("effect/Schema/ParseErrorTypeId");class Ra extends(u("ParseError")){[Oa]=Oa;get message(){return this.toString()}toString(){return hs.formatIssueSync(this.issue)}toJSON(){return{_id:"ParseError",message:this.toString()}}[K.FX](){return this.toJSON()}}const Ca=e=>new Ra({issue:e}),Ba=kt.pG,Fa=kt.kb,La=kt.Sv,ja=kt.sV,Da=kt.Wc,Ua=(0,c.XY)(2,(e,t)=>Da(e)?kt.YW(e,{onLeft:kt.kb,onRight:t}):va(e,t)),za=(0,c.XY)(2,(e,t)=>Da(e)?kt.Tj(e,t):ma(e,t)),$a=(0,c.XY)(2,(e,t)=>Da(e)?kt.qE(e,t):ba(e,t)),Va=(0,c.XY)(2,(e,t)=>Da(e)?kt.Uc(e,{onLeft:t.onFailure,onRight:t.onSuccess}):ya(e,t)),Ka=(0,c.XY)(2,(e,t)=>Da(e)?kt.YW(e,{onLeft:t,onRight:kt.pG}):pa(e,t)),Ya=(e,t)=>void 0===t||I.Et(t)?e:void 0===e?t:{...e,...t},qa=(e,t,n)=>{const r=((e,t,n)=>{const r=es(e,t);return(e,t)=>r(e,Ya(n,t))})(e,t,n);return(e,t)=>kt.Gu(r(e,t),Ca)},Ha=(e,t,n)=>{const r=es(e,t);return(e,t)=>r(e,{...Ya(n,t),isEffectAllowed:!0})},Ga=(e,t)=>qa(e.ast,!0,t),Wa=(e,t)=>Ha(e.ast,!0,t),Xa=(e,t)=>Ha(e.ast,!1,t),Ja=(e,t)=>qa(Ea.p$(e.ast),!0,t),Za=(0,z.V)(Symbol.for("effect/ParseResult/decodeMemoMap"),()=>new WeakMap),Qa=(0,z.V)(Symbol.for("effect/ParseResult/encodeMemoMap"),()=>new WeakMap),es=(e,t)=>{const n=t?Za:Qa,r=n.get(e);if(r)return r;const i=rs(e,t),a=Ea.Re(e),s=qe.Ru(a)?(e,t)=>i(e,Ya(t,a.value)):i,o=Ea.zj(e),u=t&&qe.Ru(o)?(t,n)=>us(Ka(s(t,n),o.value),e,t,n):s;return n.set(e,u),u},ts=e=>qe.Y6(Ea.fq(e)),ns=e=>qe.Y6(Ea.iJ(e)),rs=(e,t)=>{switch(e._tag){case"Refinement":if(t){const t=es(e.from,!0);return(n,r)=>{r=r??Ea.Wy;const i="all"===r?.errors,a=Ua(Ka(t(n,r),t=>{const a=new Ia(e,n,"From",t);return i&&Ea.wA(e)&&_s(t)?qe.YW(e.filter(n,r,e),{onNone:()=>kt.kb(a),onSome:t=>kt.kb(new Ma(e,n,[a,new Ia(e,n,"Predicate",t)]))}):kt.kb(a)}),t=>qe.YW(e.filter(t,r,e),{onNone:()=>kt.pG(t),onSome:t=>kt.kb(new Ia(e,n,"Predicate",t))}));return us(a,e,n,r)}}{const t=es(Ea.p$(e),!0),n=es(os(e.from),!1);return(r,i)=>us(Ua(t(r,i),e=>n(e,i)),e,r,i)}case"Transformation":{const n=fs(e.transformation,t),r=t?es(e.from,!0):es(e.to,!1),i=t?es(e.to,!0):es(e.from,!1);return(a,s)=>us(Ua($a(r(a,s),n=>new Aa(e,a,t?"Encoded":"Type",n)),r=>Ua($a(n(r,s??Ea.Wy,e,a),t=>new Aa(e,a,"Transformation",t)),n=>$a(i(n,s),n=>new Aa(e,a,t?"Type":"Encoded",n)))),e,a,s)}case"Declaration":{const n=t?e.decodeUnknown(...e.typeParameters):e.encodeUnknown(...e.typeParameters);return(t,r)=>us(n(t,r??Ea.Wy,e),e,t,r)}case"Literal":return is(e,t=>t===e.literal);case"UniqueSymbol":return is(e,t=>t===e.symbol);case"UndefinedKeyword":return is(e,I.b0);case"NeverKeyword":return is(e,I.Pd);case"UnknownKeyword":case"AnyKeyword":case"VoidKeyword":return kt.pG;case"StringKeyword":return is(e,I.Kg);case"NumberKeyword":return is(e,I.Et);case"BooleanKeyword":return is(e,I.Lm);case"BigIntKeyword":return is(e,I.sI);case"SymbolKeyword":return is(e,I.Bm);case"ObjectKeyword":return is(e,I.Gv);case"Enums":return is(e,t=>e.enums.some(([e,n])=>n===t));case"TemplateLiteral":{const t=Ea.$j(e);return is(e,e=>I.Kg(e)&&t.test(e))}case"TupleType":{const n=e.elements.map(e=>es(e.type,t)),i=e.rest.map(e=>es(e.type,t));let a=e.elements.filter(e=>!e.isOptional);e.rest.length>0&&(a=a.concat(e.rest.slice(1)));const s=a.length,o=e.elements.length>0?e.elements.map((e,t)=>t).join(" | "):"never",u=ts(e),c=ns(e);return(t,l)=>{if(!r.cy(t))return kt.kb(new Na(e,t));const f="all"===l?.errors,d=[];let h=0;const p=[],m=t.length;for(let n=m;n<=s-1;n++){const r=new ka(n,t,new Ta(a[n-m]));if(!f)return kt.kb(new Ma(e,t,r,p));d.push([h++,r])}if(0===e.rest.length)for(let n=e.elements.length;n<=m-1;n++){const r=new ka(n,t,new xa(t[n],`is unexpected, expected: ${o}`));if(!f)return kt.kb(new Ma(e,t,r,p));d.push([h++,r])}let y,b=0;for(;bva(ga(r),r=>{if(kt.OC(r)){const o=new ka(i,t,r.left);return f?(a.push([n,o]),ha):kt.kb(new Ma(e,t,o,ls(s)))}return s.push([n,r.right]),ha}))}}if(r.iI(i)){const[n,...r]=i;for(;bva(ga(r),r=>{if(kt.OC(r)){const o=new ka(i,t,r.left);return f?(a.push([n,o]),ha):kt.kb(new Ma(e,t,o,ls(s)))}return s.push([n,r.right]),ha}))}}for(let n=0;nva(ga(i),i=>{if(kt.OC(i)){const o=new ka(r,t,i.left);return f?(a.push([n,o]),ha):kt.kb(new Ma(e,t,o,ls(s)))}return s.push([n,i.right]),ha}))}}}const g=({es:n,output:i})=>r.EI(n)?kt.kb(new Ma(e,t,ls(n),ls(i))):kt.pG(ls(i));if(y&&y.length>0){const e=y;return da(()=>{const t={es:r.C(d),output:r.C(p)};return va(fa(e,e=>e(t),{concurrency:u,batching:c,discard:!0}),()=>g(t))})}return g({output:p,es:d})}}case"TypeLiteral":{if(0===e.propertySignatures.length&&0===e.indexSignatures.length)return is(e,I.$y);const n=[],i={},a=[];for(const r of e.propertySignatures)n.push([es(r.type,t),r]),i[r.name]=null,a.push(r.name);const s=e.indexSignatures.map(e=>[es(e.parameter,t),es(e.type,t),e.parameter]),o=Ea.gP.make(e.indexSignatures.map(e=>e.parameter).concat(a.map(e=>I.Bm(e)?new Ea.w_(e):new Ea.uS(e)))),u=es(o,t),c=ts(e),l=ns(e);return(t,f)=>{if(!I.u4(t))return kt.kb(new Na(e,t));const d="all"===f?.errors,h=[];let p=0;const m="error"===f?.onExcessProperty,y={};let b,g;if(m||"preserve"===f?.onExcessProperty){b=Reflect.ownKeys(t);for(const n of b){const r=u(n,f);if(Da(r)&&kt.OC(r)){if(m){const r=new ka(n,t,new xa(t[n],`is unexpected, expected: ${String(o)}`));if(d){h.push([p++,r]);continue}return kt.kb(new Ma(e,t,r,y))}y[n]=t[n]}}}const v=!0===f?.exact;for(let r=0;rva(ga(o),o=>{if(kt.OC(o)){const c=new ka(r,t,s?o.left:new Ta(i));return d?(a.push([n,c]),ha):kt.kb(new Ma(e,t,c,u))}return u[r]=o.right,ha}))}}for(let n=0;nva(ga(r),r=>{if(kt.OC(r)){const n=new ka(s,t,r.left);return d?(o.push([a,n]),ha):kt.kb(new Ma(e,t,n,u))}return Object.prototype.hasOwnProperty.call(i,n)||(u[n]=r.right),ha}))}}}}const w=({es:n,output:i})=>{if(r.EI(n))return kt.kb(new Ma(e,t,ls(n),i));if("original"===f?.propertyOrder){const e=b||Reflect.ownKeys(t);for(const t of a)-1===e.indexOf(t)&&e.push(t);const n={};for(const t of e)Object.prototype.hasOwnProperty.call(i,t)&&(n[t]=i[t]);return kt.pG(n)}return kt.pG(i)};if(g&&g.length>0){const e=g;return da(()=>{const t={es:r.C(h),output:Object.assign({},y)};return va(fa(e,e=>e(t),{concurrency:c,batching:l,discard:!0}),()=>w(t))})}return w({es:h,output:y})}}case"Union":{const n=ss(e.types,t),i=Reflect.ownKeys(n.keys),a=i.length,s=e.types.length,o=new Map;for(let n=0;n{const f=[];let d,h=0,p=[];if(a>0)if(I._3(t))for(let e=0;e0&&(p=p.concat(n.otherwise));for(let e=0;eda(()=>"finalResult"in t?ha:va(ga(r),n=>(kt.FG(n)?t.finalResult=n:t.es.push([e,n.left]),ha))))}else{if(kt.FG(r))return r;f.push([h++,r.left])}}const m=n=>r.EI(n)?1===n.length&&"Type"===n[0][1]._tag?kt.kb(n[0][1]):kt.kb(new Ma(e,t,ls(n))):kt.kb(new Na(e,t));if(d&&d.length>0){const e=d;return da(()=>{const t={es:r.C(f)};return va(fa(e,e=>e(t),{concurrency:u,batching:c,discard:!0}),()=>"finalResult"in t?t.finalResult:m(t.es))})}return m(f)}}case"Suspend":{const n=Sa.Z4(()=>es(e.f(),t));return(e,t)=>n()(e,t)}}},is=(e,t)=>n=>t(n)?kt.pG(n):kt.kb(new Na(e,n)),as=(e,t)=>{switch(e._tag){case"Declaration":{const n=Ea.YI(e);if(qe.Ru(n))return as(n.value,t);break}case"TypeLiteral":{const n=[];for(let r=0;r{const n={},r=[],i=[];for(let a=0;a0){i.push(s);for(let e=0;eEa.C8(e)?os(e.from):e,us=(e,t,n,r)=>{if(!0===r?.isEffectAllowed)return e;if(Da(e))return e;const a=new Je,s=wa(e,{scheduler:a});a.flush();const o=s.unsafePoll();if(o){if(xt(o))return kt.pG(o.value);const e=o.cause;return i.rv(e)?kt.kb(e.error):kt.kb(new Pa(t,n,i.j9(e)))}return kt.kb(new Pa(t,n,"cannot be be resolved synchronously, this is caused by using runSync on an effect that performs async work"))},cs=([e],[t])=>e>t?1:ee[1])}const fs=(e,t)=>{switch(e._tag){case"FinalTransformation":return t?e.decode:e.encode;case"ComposeTransformation":return kt.pG;case"TypeLiteralTransformation":return n=>{let r=kt.pG(n);for(const n of e.propertySignatureTransformations){const[e,i]=t?[n.from,n.to]:[n.to,n.from],a=t?n.decode:n.encode,s=t=>{const n=a(Object.prototype.hasOwnProperty.call(t,e)?qe.zN(t[e]):qe.dv());return delete t[e],qe.Ru(n)&&(t[i]=n.value),t};r=za(r,s)}return r}}},ds=(e,t=[])=>({value:e,forest:t}),hs={formatIssue:e=>za(As(e),ps),formatIssueSync:e=>{const t=hs.formatIssue(e);return Da(t)?kt.n4(t):_a(t)},formatError:e=>hs.formatIssue(e.issue),formatErrorSync:e=>hs.formatIssueSync(e.issue)},ps=e=>e.value+ms("\n",e.forest),ms=(e,t)=>{let n="";const r=t.length;let i;for(let a=0;a1&&!s?"│ ":" "),i.forest)}return n},ys=e=>{switch(e){case"Encoded":return"Encoded side transformation failure";case"Transformation":return"Transformation process failure";case"Type":return"Type side transformation failure"}},bs=e=>{switch(e){case"From":return"From side refinement failure";case"Predicate":return"Predicate refinement failure"}},gs=e=>"ast"in e?qe.zN(e.ast):qe.dv(),vs=kt.pG(void 0),ws=e=>t=>t._tag===e,_s=ws("Composite"),Ss=ws("Refinement"),Es=ws("Transformation"),ks=e=>Ua((e=>gs(e).pipe(qe.qI(Ea.$O),qe.YW({onNone:()=>vs,onSome:t=>{const n=t(e);return I.Kg(n)?kt.pG({message:n,override:!1}):la(n)?ma(n,e=>({message:e,override:!1})):I.Kg(n.message)?kt.pG({message:n.message,override:n.override}):ma(n.message,e=>({message:e,override:n.override}))}})))(e),t=>void 0!==t?!t.override&&(_s(e)||Ss(e)&&"From"===e.kind||Es(e)&&"Transformation"!==e.kind)?Es(e)||Ss(e)?ks(e.issue):vs:kt.pG(t.message):vs),xs=e=>gs(e).pipe(qe.qI(Ea.M7),qe.v9(t=>t(e)),qe.Y6);const Ts=e=>za(ks(e),t=>t??xs(e)??function(e){return void 0!==e.message?e.message:`Expected ${Ea.C8(e.ast)?(t=e.ast,Ea.u$(t).pipe(qe.NW(()=>Ea.ad(t)),qe.NW(()=>Ea.Zv(t)),qe.NW(()=>Ea.xE(t)),qe.WL(()=>`{ ${t.from} | filter }`))):String(e.ast)}, actual ${K.eA(e.actual)}`;var t}(e)),Ms=e=>xs(e)??String(e.ast),Is=e=>e.message??"is forbidden",As=e=>{switch(e._tag){case"Type":return za(Ts(e),ds);case"Forbidden":return kt.pG(ds(Ms(e),[ds(Is(e))]));case"Unexpected":return kt.pG(ds((e=>e.message??"is unexpected")(e)));case"Missing":return za((e=>{const t=Ea.rt(e.ast);if(qe.Ru(t)){const e=t.value();return I.Kg(e)?kt.pG(e):e}return kt.pG(e.message??"is missing")})(e),ds);case"Transformation":return Ua(ks(e),t=>void 0!==t?kt.pG(ds(t)):za(As(e.issue),t=>ds(Ms(e),[ds(ys(e.kind),[t])])));case"Refinement":return Ua(ks(e),t=>void 0!==t?kt.pG(ds(t)):za(As(e.issue),t=>ds(Ms(e),[ds(bs(e.kind),[t])])));case"Pointer":return za(As(e.issue),t=>ds(Sa.jV(e.path),[t]));case"Composite":return Ua(ks(e),t=>{if(void 0!==t)return kt.pG(ds(t));const n=Ms(e);return Sa.J_(e.issues)?za(fa(e.issues,As),e=>ds(n,e)):za(As(e.issues),e=>ds(n,[e]))})}}},9465(e){"use strict";e.exports=Math.min},9481(e,t,n){"use strict";n.d(t,{h:()=>a});var r=n(85327),i=n(76329);async function a(e,{hash:t}){const n=await e.request({method:"eth_getTransactionReceipt",params:[t]},{dedupe:!0});if(!n)throw new r.Kc({hash:t});return(e.chain?.formatters?.transactionReceipt?.format||i.uL)(n,"getTransactionReceipt")}},9827(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(76824)},9848(e,t,n){"use strict";var r=n(77045),i=n(70004),a=n(45366);function s(e){if(!(this instanceof s))return new s(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=i.toArray(e.entropy,e.entropyEnc||"hex"),n=i.toArray(e.nonce,e.nonceEnc||"hex"),r=i.toArray(e.pers,e.persEnc||"hex");a(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}e.exports=s,s.prototype._init=function(e,t,n){var r=e.concat(t).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},s.prototype.generate=function(e,t,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=n,n=t,t=null),n&&(n=i.toArray(n,r||"hex"),this._update(n));for(var a=[];a.length0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]>24,i>>16,i>>8,i]),u=h(r.concat([o,e]));s=r.concat([s,u]),a+=32,i+=1}n(s)})},t.getPublic=function(e){return new Promise(function(t,n){return 32!==e.length?n(new Error("Private key should be 32 bytes long")):t(r.from(f.default.publicKeyConvert(f.default.publicKeyCreate(e),!1)))})},t.sign=function(e,t){return new Promise(function(n,i){if(32!==e.length)i(new Error("Private key should be 32 bytes long"));else if(t.length<=0)i(new Error("Message should not be empty"));else if(t.length>32)i(new Error("Message is too long (max 32 bytes)"));else{var a=m(t),s=f.default.ecdsaSign(a,e).signature;n(r.from(f.default.signatureExport(s)))}})},t.verify=function(e,t,n){return new Promise(function(r,i){if(65!==e.length)i(new Error("Public key should 65 bytes long"));else if(t.length<=0)i(new Error("Message should not be empty"));else if(t.length>32)i(new Error("Message is too long (max 32 bytes)"));else{var a=m(t);try{var s=f.default.signatureImport(n);f.default.ecdsaVerify(s,a,e)?r(!0):i(new Error("Bad signature"))}catch(e){i(new Error("Invalid signature"))}}})},t.derive=function(e,t){return new Promise(function(n,i){if(32!==e.length)i(new Error("Bad private key, it should be 32 bytes but it's actually ".concat(e.length," bytes long")));else if(65!==t.length)i(new Error("Bad public key, it should be 65 bytes but it's actually ".concat(t.length," bytes long")));else if(4!==t[0])i(new Error("Bad public key, a valid public key would begin with 4"));else{var a=d.keyFromPrivate(e),s=d.keyFromPublic(t),o=a.derive(s.getPublic());n(m(r.from(o.toArray())))}})},t.encrypt=function(e,n,i){return s(void 0,void 0,void 0,function(){var a;return o(this,function(u){return a=(i=i||{}).ephemPrivateKey||(0,c.randomBytes)(32),[2,(0,t.derive)(a,e).then(function(e){return(0,t.kdf)(e,32)}).then(function(e){return s(void 0,void 0,void 0,function(){var s,u,l,f,d;return o(this,function(o){return s=e.slice(0,16),u=i.iv||(0,c.randomBytes)(16),l=h(e.slice(16)),f=function(e,t,n){var i=(0,c.createCipheriv)("aes-128-ctr",t,e),a=i.update(n),s=i.final();return r.concat([e,a,s])}(u,s,n),d=p(l,f),[2,(0,t.getPublic)(a).then(function(e){return r.concat([e,f,d])})]})})})]})})},t.decrypt=function(e,n){return new Promise(function(i,a){if(n.length<113)a(new Error("Invalid Ciphertext. Data is too small. It should ba at least ".concat(113)));else if(4!==n[0])a(new Error("Not a valid ciphertext. It should begin with 4 but actually begin with ".concat(n[0])));else{var s=n.slice(0,65),o=n.length-113,u=n.slice(65,81),l=n.slice(65,81+o),f=l.slice(16),d=n.slice(81+o);i((0,t.derive)(e,s).then(function(e){return(0,t.kdf)(e,32)}).then(function(e){var t=e.slice(0,16),n=h(e.slice(16));if(!function(e,t){if(e.length!==t.length)return!1;for(var n=0,r=0;r>>32-t}function c(e,t,n,r,i,a,s){return u(e+(t&n|~t&r)+i+a|0,s)+t|0}function l(e,t,n,r,i,a,s){return u(e+(t&r|n&~r)+i+a|0,s)+t|0}function f(e,t,n,r,i,a,s){return u(e+(t^n^r)+i+a|0,s)+t|0}function d(e,t,n,r,i,a,s){return u(e+(n^(t|~r))+i+a|0,s)+t|0}r(o,i),o.prototype._update=function(){for(var e=s,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var n=this._a,r=this._b,i=this._c,a=this._d;n=c(n,r,i,a,e[0],3614090360,7),a=c(a,n,r,i,e[1],3905402710,12),i=c(i,a,n,r,e[2],606105819,17),r=c(r,i,a,n,e[3],3250441966,22),n=c(n,r,i,a,e[4],4118548399,7),a=c(a,n,r,i,e[5],1200080426,12),i=c(i,a,n,r,e[6],2821735955,17),r=c(r,i,a,n,e[7],4249261313,22),n=c(n,r,i,a,e[8],1770035416,7),a=c(a,n,r,i,e[9],2336552879,12),i=c(i,a,n,r,e[10],4294925233,17),r=c(r,i,a,n,e[11],2304563134,22),n=c(n,r,i,a,e[12],1804603682,7),a=c(a,n,r,i,e[13],4254626195,12),i=c(i,a,n,r,e[14],2792965006,17),n=l(n,r=c(r,i,a,n,e[15],1236535329,22),i,a,e[1],4129170786,5),a=l(a,n,r,i,e[6],3225465664,9),i=l(i,a,n,r,e[11],643717713,14),r=l(r,i,a,n,e[0],3921069994,20),n=l(n,r,i,a,e[5],3593408605,5),a=l(a,n,r,i,e[10],38016083,9),i=l(i,a,n,r,e[15],3634488961,14),r=l(r,i,a,n,e[4],3889429448,20),n=l(n,r,i,a,e[9],568446438,5),a=l(a,n,r,i,e[14],3275163606,9),i=l(i,a,n,r,e[3],4107603335,14),r=l(r,i,a,n,e[8],1163531501,20),n=l(n,r,i,a,e[13],2850285829,5),a=l(a,n,r,i,e[2],4243563512,9),i=l(i,a,n,r,e[7],1735328473,14),n=f(n,r=l(r,i,a,n,e[12],2368359562,20),i,a,e[5],4294588738,4),a=f(a,n,r,i,e[8],2272392833,11),i=f(i,a,n,r,e[11],1839030562,16),r=f(r,i,a,n,e[14],4259657740,23),n=f(n,r,i,a,e[1],2763975236,4),a=f(a,n,r,i,e[4],1272893353,11),i=f(i,a,n,r,e[7],4139469664,16),r=f(r,i,a,n,e[10],3200236656,23),n=f(n,r,i,a,e[13],681279174,4),a=f(a,n,r,i,e[0],3936430074,11),i=f(i,a,n,r,e[3],3572445317,16),r=f(r,i,a,n,e[6],76029189,23),n=f(n,r,i,a,e[9],3654602809,4),a=f(a,n,r,i,e[12],3873151461,11),i=f(i,a,n,r,e[15],530742520,16),n=d(n,r=f(r,i,a,n,e[2],3299628645,23),i,a,e[0],4096336452,6),a=d(a,n,r,i,e[7],1126891415,10),i=d(i,a,n,r,e[14],2878612391,15),r=d(r,i,a,n,e[5],4237533241,21),n=d(n,r,i,a,e[12],1700485571,6),a=d(a,n,r,i,e[3],2399980690,10),i=d(i,a,n,r,e[10],4293915773,15),r=d(r,i,a,n,e[1],2240044497,21),n=d(n,r,i,a,e[8],1873313359,6),a=d(a,n,r,i,e[15],4264355552,10),i=d(i,a,n,r,e[6],2734768916,15),r=d(r,i,a,n,e[13],1309151649,21),n=d(n,r,i,a,e[4],4149444226,6),a=d(a,n,r,i,e[11],3174756917,10),i=d(i,a,n,r,e[2],718787259,15),r=d(r,i,a,n,e[9],3951481745,21),this._a=this._a+n|0,this._b=this._b+r|0,this._c=this._c+i|0,this._d=this._d+a|0},o.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=a.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},e.exports=o},10473(e,t,n){"use strict";var r=n(77045),i=n(52565),a=n(92772),s=a.assert,o=a.parseBytes,u=n(35546),c=n(58159);function l(e){if(s("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof l))return new l(e);e=i[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=r.sha512}e.exports=l,l.prototype.sign=function(e,t){e=o(e);var n=this.keyFromSecret(t),r=this.hashInt(n.messagePrefix(),e),i=this.g.mul(r),a=this.encodePoint(i),s=this.hashInt(a,n.pubBytes(),e).mul(n.priv()),u=r.add(s).umod(this.curve.n);return this.makeSignature({R:i,S:u,Rencoded:a})},l.prototype.verify=function(e,t,n){if(e=o(e),(t=this.makeSignature(t)).S().gte(t.eddsa.curve.n)||t.S().isNeg())return!1;var r=this.keyFromPublic(n),i=this.hashInt(t.Rencoded(),r.pubBytes(),e),a=this.g.mul(t.S());return t.R().add(r.pub().mul(i)).eq(a)},l.prototype.hashInt=function(){for(var e=this.hash(),t=0;tsetTimeout(t,e))}n.d(t,{u:()=>r})},10720(e,t,n){"use strict";var r=n(39197),i=r.define("Time",function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})}),a=r.define("AttributeTypeValue",function(){this.seq().obj(this.key("type").objid(),this.key("value").any())}),s=r.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())}),o=r.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(s),this.key("subjectPublicKey").bitstr())}),u=r.define("RelativeDistinguishedName",function(){this.setof(a)}),c=r.define("RDNSequence",function(){this.seqof(u)}),l=r.define("Name",function(){this.choice({rdnSequence:this.use(c)})}),f=r.define("Validity",function(){this.seq().obj(this.key("notBefore").use(i),this.key("notAfter").use(i))}),d=r.define("Extension",function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())}),h=r.define("TBSCertificate",function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(s),this.key("issuer").use(l),this.key("validity").use(f),this.key("subject").use(l),this.key("subjectPublicKeyInfo").use(o),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(d).optional())}),p=r.define("X509Certificate",function(){this.seq().obj(this.key("tbsCertificate").use(h),this.key("signatureAlgorithm").use(s),this.key("signatureValue").bitstr())});e.exports=p},10791(e,t,n){"use strict";var r=n(3674);e.exports=function(){return r()&&!!Symbol.toStringTag}},11264(e,t,n){"use strict";n.d(t,{$v:()=>R,A_:()=>x,Do:()=>B,Ie:()=>M,Jt:()=>C,KA:()=>b,L8:()=>I,Or:()=>v,Sr:()=>d,Um:()=>j,Up:()=>D,WQ:()=>A,aE:()=>E,cJ:()=>U,dz:()=>k,gw:()=>O,h1:()=>L,ii:()=>w,lN:()=>h,og:()=>S,om:()=>F,vw:()=>g});var r=n(72529),i=n(59329),a=n(55661),s=n(46385),o=n(12717),u=n(66949),c=n(82884),l=n(20490),f=n(64458);const d=Symbol.for("effect/Context/Tag"),h=Symbol.for("effect/Context/Reference"),p=Symbol.for("effect/STM"),m={...l.MS,_op:"Tag",[p]:l.Hs,[d]:{_Service:e=>e,_Identifier:e=>e},toString(){return(0,o.GP)(this.toJSON())},toJSON(){return{_id:"Tag",key:this.key,stack:this.stack}},[o.FX](){return this.toJSON()},of:e=>e,context(e){return I(this,e)}},y={...m,[h]:h},b=e=>{const t=Error.stackTraceLimit;Error.stackTraceLimit=2;const n=new Error;Error.stackTraceLimit=t;const r=Object.create(m);return Object.defineProperty(r,"stack",{get:()=>n.stack}),r.key=e,r},g=e=>()=>{const t=Error.stackTraceLimit;Error.stackTraceLimit=2;const n=new Error;function r(){}return Error.stackTraceLimit=t,Object.setPrototypeOf(r,m),r.key=e,Object.defineProperty(r,"stack",{get:()=>n.stack}),r},v=()=>(e,t)=>{const n=Error.stackTraceLimit;Error.stackTraceLimit=2;const r=new Error;function i(){}return Error.stackTraceLimit=n,Object.setPrototypeOf(i,y),i.key=e,i.defaultValue=t.defaultValue,Object.defineProperty(i,"stack",{get:()=>r.stack}),i},w=Symbol.for("effect/Context"),_={[w]:{_Services:e=>e},[r.HR](e){if(E(e)&&this.unsafeMap.size===e.unsafeMap.size){for(const t of this.unsafeMap.keys())if(!e.unsafeMap.has(t)||!r.aI(this.unsafeMap.get(t),e.unsafeMap.get(t)))return!1;return!0}return!1},[s.HR](){return s.PO(this,s.ai(this.unsafeMap.size))},pipe(){return(0,u.tT)(this,arguments)},toString(){return(0,o.GP)(this.toJSON())},toJSON(){return{_id:"Context",services:Array.from(this.unsafeMap).map(o.U2)}},[o.FX](){return this.toJSON()}},S=e=>{const t=Object.create(_);return t.unsafeMap=e,t},E=e=>(0,c.i5)(e,w),k=e=>(0,c.i5)(e,d),x=e=>(0,c.i5)(e,h),T=S(new Map),M=()=>T,I=(e,t)=>S(new Map([[e.key,t]])),A=(0,i.XY)(3,(e,t,n)=>{const r=new Map(e.unsafeMap);return r.set(t.key,n),S(r)}),N=(0,a.V)("effect/Context/defaultValueCache",()=>new Map),P=e=>{if(N.has(e.key))return N.get(e.key);const t=e.defaultValue();return N.set(e.key,t),t},O=(e,t)=>e.unsafeMap.has(t.key)?e.unsafeMap.get(t.key):P(t),R=(0,i.XY)(2,(e,t)=>{if(!e.unsafeMap.has(t.key)){if(h in t)return P(t);throw(e=>{const t=new Error("Service not found"+(e.key?`: ${String(e.key)}`:""));if(e.stack){const n=e.stack.split("\n");if(n.length>2){const e=n[2].match(/at (.*)/);e&&(t.message=t.message+` (defined at ${e[1]})`)}}if(t.stack){const e=t.stack.split("\n");e.splice(1,3),t.stack=e.join("\n")}return t})(t)}return e.unsafeMap.get(t.key)}),C=R,B=(0,i.XY)(3,(e,t,n)=>e.unsafeMap.has(t.key)?e.unsafeMap.get(t.key):x(t)?P(t):n()),F=(0,i.XY)(2,(e,t)=>e.unsafeMap.has(t.key)?f.zN(e.unsafeMap.get(t.key)):x(t)?f.zN(P(t)):f.dv),L=(0,i.XY)(2,(e,t)=>{const n=new Map(e.unsafeMap);for(const[e,r]of t.unsafeMap)n.set(e,r);return S(n)}),j=(...e)=>{const t=new Map;for(let n=0;n{t.set(n,e)});return S(t)},D=(...e)=>t=>{const n=new Set(e.map(e=>e.key)),r=new Map;for(const[e,i]of t.unsafeMap.entries())n.has(e)&&r.set(e,i);return S(r)},U=(...e)=>t=>{const n=new Map(t.unsafeMap);for(const t of e)n.delete(t.key);return S(n)}},11525(e,t,n){"use strict";var r=n(55628),i=n(41498),a=n(72258).Buffer;function s(e){var t,n=e.modulus.byteLength();do{t=new r(i(n))}while(t.cmp(e.modulus)>=0||!t.umod(e.prime1)||!t.umod(e.prime2));return t}function o(e,t){var n=function(e){var t=s(e);return{blinder:t.toRed(r.mont(e.modulus)).redPow(new r(e.publicExponent)).fromRed(),unblinder:t.invm(e.modulus)}}(t),i=t.modulus.byteLength(),o=new r(e).mul(n.blinder).umod(t.modulus),u=o.toRed(r.mont(t.prime1)),c=o.toRed(r.mont(t.prime2)),l=t.coefficient,f=t.prime1,d=t.prime2,h=u.redPow(t.exponent1).fromRed(),p=c.redPow(t.exponent2).fromRed(),m=h.isub(p).imul(l).umod(f).imul(d);return p.iadd(m).imul(n.unblinder).umod(t.modulus).toArrayLike(a,"be",i)}o.getr=s,e.exports=o},11644(e,t,n){"use strict";var r=n(42649);void 0===r||!r.version||0===r.version.indexOf("v0.")||0===r.version.indexOf("v1.")&&0!==r.version.indexOf("v1.8.")?e.exports={nextTick:function(e,t,n,i){if("function"!=typeof e)throw new TypeError('"callback" argument must be a function');var a,s,o=arguments.length;switch(o){case 0:case 1:return r.nextTick(e);case 2:return r.nextTick(function(){e.call(null,t)});case 3:return r.nextTick(function(){e.call(null,t,n)});case 4:return r.nextTick(function(){e.call(null,t,n,i)});default:for(a=new Array(o-1),s=0;sa,R:()=>s});var r=n(31963),i=n(47457);function a(e,t){const n=(e.transactions??[]).map(e=>"string"==typeof e?e:(0,i.uP)(e));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:n,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}const s=(0,r.q)("block",a)},12082(e,t,n){function r(e){try{if(!n.g.localStorage)return!1}catch(e){return!1}var t=n.g.localStorage[e];return null!=t&&"true"===String(t).toLowerCase()}e.exports=function(e,t){if(r("noDeprecation"))return e;var n=!1;return function(){if(!n){if(r("throwDeprecation"))throw new Error(t);r("traceDeprecation")?console.trace(t):console.warn(t),n=!0}return e.apply(this,arguments)}}},12129(e,t,n){"use strict";n.d(t,{x:()=>s});var r=n(85327),i=n(75209),a=n(47457);async function s(e,{blockHash:t,blockNumber:n,blockTag:s,hash:o,index:u,sender:c,nonce:l}){const f=s||"latest",d=void 0!==n?(0,i.cK)(n):void 0;let h=null;if(o?h=await e.request({method:"eth_getTransactionByHash",params:[o]},{dedupe:!0}):t?h=await e.request({method:"eth_getTransactionByBlockHashAndIndex",params:[t,(0,i.cK)(u)]},{dedupe:!0}):(d||f)&&"number"==typeof u?h=await e.request({method:"eth_getTransactionByBlockNumberAndIndex",params:[d||f,(0,i.cK)(u)]},{dedupe:Boolean(d)}):c&&"number"==typeof l&&(h=await e.request({method:"eth_getTransactionBySenderAndNonce",params:[c,(0,i.cK)(l)]},{dedupe:!0})),!h)throw new r.Kz({blockHash:t,blockNumber:n,blockTag:f,hash:o,index:u});return(e.chain?.formatters?.transaction?.format||a.uP)(h,"getTransaction")}},12717(e,t,n){"use strict";n.d(t,{FX:()=>a,GP:()=>f,RJ:()=>b,U2:()=>s,Yq:()=>u,ZK:()=>d,_r:()=>c,eA:()=>l,hL:()=>h});var r=n(55661),i=n(82884);const a=Symbol.for("nodejs.util.inspect.custom"),s=e=>{try{if(i.i5(e,"toJSON")&&i.Tn(e.toJSON)&&0===e.toJSON.length)return e.toJSON();if(Array.isArray(e))return e.map(s)}catch{return{}}return g(e)},o="[Circular]";function u(e){try{return e.toISOString()}catch{return"Invalid Date"}}function c(e){return i.Kg(e)?JSON.stringify(e):String(e)}function l(e,t){const n=t?.space??0,r=new WeakSet,a=n?i.Et(n)?" ".repeat(n):n:"",s=e=>a.repeat(e),l=(e,t)=>{const n=e?.constructor;return n&&n!==Object.prototype.constructor&&n.name?`${n.name}(${t})`:t};return function e(n,f=0){if(Array.isArray(n)){if(r.has(n))return o;if(r.add(n),!a||n.length<=1)return`[${n.map(t=>e(t,f)).join(",")}]`;const t=n.map(t=>e(t,f+1)).join(",\n"+s(f+1));return`[\n${s(f+1)}${t}\n${s(f)}]`}if(i.$P(n))return u(n);if(!t?.ignoreToString&&i.i5(n,"toString")&&i.Tn(n.toString)&&n.toString!==Object.prototype.toString&&n.toString!==Array.prototype.toString){const t=function(e){try{const t=e.toString();return"string"==typeof t?t:String(t)}catch{return"[toString threw]"}}(n);return n instanceof Error&&n.cause?`${t} (cause: ${e(n.cause,f)})`:t}if(i.Kg(n))return JSON.stringify(n);if(i.Et(n)||null==n||i.Lm(n)||i.Bm(n))return String(n);if(i.sI(n))return String(n)+"n";if(n instanceof Set||n instanceof Map)return r.has(n)?o:(r.add(n),`${n.constructor.name}(${e(Array.from(n),f)})`);if(i.Gv(n)){if(r.has(n))return o;r.add(n);const t=(e=>{try{return Reflect.ownKeys(e)}catch{return["[ownKeys threw]"]}})(n);if(!a||t.length<=1){const r=`{${t.map(t=>`${c(t)}:${e(n[t],f)}`).join(",")}}`;return l(n,r)}const i=`{\n${t.map(t=>`${s(f+1)}${c(t)}: ${e(n[t],f+1)}`).join(",\n")}\n${s(f)}}`;return l(n,i)}return String(n)}(e,0)}const f=e=>JSON.stringify(e,null,2),d=(e,t=2)=>{if("string"==typeof e)return e;try{return"object"==typeof e?h(e,t):String(e)}catch{return String(e)}},h=(e,t)=>{let n=[];const r=JSON.stringify(e,(e,t)=>"object"==typeof t&&null!==t?n.includes(t)?void 0:n.push(t)&&(void 0!==y.fiberRefs&&m(t)?t[p](y.fiberRefs):t):t,t);return n=void 0,r},p=Symbol.for("effect/Inspectable/Redactable"),m=e=>"object"==typeof e&&null!==e&&p in e,y=(0,r.V)("effect/Inspectable/redactableState",()=>({fiberRefs:void 0})),b=(e,t)=>{const n=y.fiberRefs;y.fiberRefs=e;try{return t()}finally{y.fiberRefs=n}},g=e=>m(e)&&void 0!==y.fiberRefs?e[p](y.fiberRefs):e},12769(e,t,n){"use strict";n.d(t,{v:()=>c});var r=n(74014),i=n(50309),a=n(88924),s=n(66893),o=n(26015),u=n(45011);async function c(e,t){const{abi:n,address:c,args:l,dataSuffix:f,functionName:d,...h}=t,p=h.account?(0,r.J)(h.account):e.account,m=(0,a.p)({abi:n,args:l,functionName:d});try{const{data:r}=await(0,o.T)(e,u.T,"call")({batch:!1,data:`${m}${f?f.replace("0x",""):""}`,to:c,...h,account:p});return{result:(0,i.e)({abi:n,args:l,functionName:d,data:r||"0x"}),request:{abi:n.filter(e=>"name"in e&&e.name===t.functionName),address:c,args:l,dataSuffix:f,functionName:d,...h,account:p}}}catch(e){throw(0,s.j)(e,{abi:n,address:c,args:l,docsPath:"/docs/contract/simulateContract",functionName:d,sender:p?.address})}}},13059(e,t,n){"use strict";n.d(t,{B:()=>i});var r=n(32061);function i(e){return"function"===e.type?`function ${e.name}(${(0,r.Q)(e.inputs)})${e.stateMutability&&"nonpayable"!==e.stateMutability?` ${e.stateMutability}`:""}${e.outputs?.length?` returns (${(0,r.Q)(e.outputs)})`:""}`:"event"===e.type?`event ${e.name}(${(0,r.Q)(e.inputs)})`:"error"===e.type?`error ${e.name}(${(0,r.Q)(e.inputs)})`:"constructor"===e.type?`constructor(${(0,r.Q)(e.inputs)})${"payable"===e.stateMutability?" payable":""}`:"fallback"===e.type?"fallback() external"+("payable"===e.stateMutability?" payable":""):"receive() external payable"}},13284(e,t,n){"use strict";var r=n(33213),i=n(65269),a=n(96811),s=n(72258).Buffer,o=new Array(160);function u(){this.init(),this._w=o,a.call(this,128,112)}r(u,i),u.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},u.prototype._hash=function(){var e=s.allocUnsafe(48);function t(t,n,r){e.writeInt32BE(t,r),e.writeInt32BE(n,r+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},e.exports=u},13409(e){"use strict";e.exports=function(e,t){return function(n,r){var i=2*r,a=2*t;n[i]=e[a],n[i+1]=e[a+1]}}},13439(e,t,n){"use strict";t.vm=void 0;var r,i=n(73730),a=(r=n(16778))&&r.__esModule?r:{default:r},s=function(e){var t=e.allowedSizes,n=e.defaultSize,r=e.padding;return function e(){var s=this,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n;if(!this||this.constructor!==e)return new e(o);if(t&&!t.includes(o))throw new Error("Unsupported hash length");var u=new a.default({capacity:o});return this.update=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"utf8";if(i.Buffer.isBuffer(e))return u.absorb(e),s;if("string"==typeof e)return s.update(i.Buffer.from(e,t));throw new TypeError("Not a string or buffer")},this.digest=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"binary",t="string"==typeof e?{format:e}:e,n=u.squeeze({buffer:t.buffer,padding:t.padding||r});return t.format&&"binary"!==t.format?n.toString(t.format):n},this.reset=function(){return u.reset(),s},this}},o=s({allowedSizes:[224,256,384,512],defaultSize:512,padding:1});t.vm=o;var u=s({allowedSizes:[224,256,384,512],defaultSize:512,padding:6});s({allowedSizes:[128,256],defaultSize:256,padding:31});var c=o;u.SHA3Hash=c},13940(e,t,n){"use strict";n.d(t,{g:()=>s});var r=n(58074),i=n(75209),a=n(11956);async function s(e,{blockHash:t,blockNumber:n,blockTag:s=e.experimental_blockTag??"latest",includeTransactions:o}={}){const u=o??!1,c=void 0!==n?(0,i.cK)(n):void 0;let l=null;if(l=t?await e.request({method:"eth_getBlockByHash",params:[t,u]},{dedupe:!0}):await e.request({method:"eth_getBlockByNumber",params:[c||s,u]},{dedupe:Boolean(c)}),!l)throw new r.l({blockHash:t,blockNumber:n});return(e.chain?.formatters?.block?.format||a.$)(l,"getBlock")}},13961(e,t,n){"use strict";n.d(t,{N:()=>c,b:()=>u});var r=n(44535),i=n(58038),a=n(26015),s=n(13940),o=n(34435);async function u(e,t){return c(e,t)}async function c(e,t){const{block:n,chain:u=e.chain,request:c}=t||{};try{const t=u?.fees?.maxPriorityFeePerGas??u?.fees?.defaultPriorityFee;if("function"==typeof t){const r=n||await(0,a.T)(e,s.g,"getBlock")({}),i=await t({block:r,client:e,request:c});if(null===i)throw new Error;return i}if(void 0!==t)return t;const r=await e.request({method:"eth_maxPriorityFeePerGas"});return(0,i.uU)(r)}catch{const[t,i]=await Promise.all([n?Promise.resolve(n):(0,a.T)(e,s.g,"getBlock")({}),(0,a.T)(e,o.L,"getGasPrice")({})]);if("bigint"!=typeof t.baseFeePerGas)throw new r.pw;const u=i-t.baseFeePerGas;return u<0n?0n:u}}},14248(e,t,n){"use strict";var r=n(23145),i=n(92772),a=i.getNAF,s=i.getJSF,o=i.assert;function u(e,t){this.type=e,this.p=new r(t.p,16),this.red=t.prime?r.red(t.prime):r.mont(this.p),this.zero=new r(0).toRed(this.red),this.one=new r(1).toRed(this.red),this.two=new r(2).toRed(this.red),this.n=t.n&&new r(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function c(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=u,u.prototype.point=function(){throw new Error("Not implemented")},u.prototype.validate=function(){throw new Error("Not implemented")},u.prototype._fixedNafMul=function(e,t){o(e.precomputed);var n=e._getDoubles(),r=a(t,1,this._bitLength),i=(1<=s;l--)u=(u<<1)+r[l];c.push(u)}for(var f=this.jpoint(null,null,null),d=this.jpoint(null,null,null),h=i;h>0;h--){for(s=0;s=0;c--){for(var l=0;c>=0&&0===s[c];c--)l++;if(c>=0&&l++,u=u.dblp(l),c<0)break;var f=s[c];o(0!==f),u="affine"===e.type?f>0?u.mixedAdd(i[f-1>>1]):u.mixedAdd(i[-f-1>>1].neg()):f>0?u.add(i[f-1>>1]):u.add(i[-f-1>>1].neg())}return"affine"===e.type?u.toP():u},u.prototype._wnafMulAdd=function(e,t,n,r,i){var o,u,c,l=this._wnafT1,f=this._wnafT2,d=this._wnafT3,h=0;for(o=0;o=1;o-=2){var m=o-1,y=o;if(1===l[m]&&1===l[y]){var b=[t[m],null,null,t[y]];0===t[m].y.cmp(t[y].y)?(b[1]=t[m].add(t[y]),b[2]=t[m].toJ().mixedAdd(t[y].neg())):0===t[m].y.cmp(t[y].y.redNeg())?(b[1]=t[m].toJ().mixedAdd(t[y]),b[2]=t[m].add(t[y].neg())):(b[1]=t[m].toJ().mixedAdd(t[y]),b[2]=t[m].toJ().mixedAdd(t[y].neg()));var g=[-3,-1,-5,-7,0,7,5,1,3],v=s(n[m],n[y]);for(h=Math.max(v[0].length,h),d[m]=new Array(h),d[y]=new Array(h),u=0;u=0;o--){for(var k=0;o>=0;){var x=!0;for(u=0;u=0&&k++,S=S.dblp(k),o<0)break;for(u=0;u0?c=f[u][T-1>>1]:T<0&&(c=f[u][-T-1>>1].neg()),S="affine"===c.type?S.mixedAdd(c):S.add(c))}}for(o=0;o=Math.ceil((e.bitLength()+1)/t.step)},c.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new a("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new a("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new a("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new a("`loose`, if provided, must be a boolean");var o=arguments.length>3?arguments[3]:null,u=arguments.length>4?arguments[4]:null,c=arguments.length>5?arguments[5]:null,l=arguments.length>6&&arguments[6],f=!!s&&s(e,t);if(r)r(e,t,{configurable:null===c&&f?f.configurable:!c,enumerable:null===o&&f?f.enumerable:!o,value:n,writable:null===u&&f?f.writable:!u});else{if(!l&&(o||u||c))throw new i("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");e[t]=n}}},14583(e,t,n){"use strict";n.d(t,{eL:()=>r,sz:()=>i});const r={gwei:9,wei:18},i={ether:-9,wei:9}},14917(e,t){t.encrypt=function(e,t){return e._cipher.encryptBlock(t)},t.decrypt=function(e,t){return e._cipher.decryptBlock(t)}},15030(e,t,n){"use strict";t.randomBytes=t.rng=t.pseudoRandomBytes=t.prng=n(41498),t.createHash=t.Hash=n(55303),t.createHmac=t.Hmac=n(39);var r=n(92092),i=Object.keys(r),a=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(i);t.getHashes=function(){return a};var s=n(51305);t.pbkdf2=s.pbkdf2,t.pbkdf2Sync=s.pbkdf2Sync;var o=n(79050);t.Cipher=o.Cipher,t.createCipher=o.createCipher,t.Cipheriv=o.Cipheriv,t.createCipheriv=o.createCipheriv,t.Decipher=o.Decipher,t.createDecipher=o.createDecipher,t.Decipheriv=o.Decipheriv,t.createDecipheriv=o.createDecipheriv,t.getCiphers=o.getCiphers,t.listCiphers=o.listCiphers;var u=n(39437);t.DiffieHellmanGroup=u.DiffieHellmanGroup,t.createDiffieHellmanGroup=u.createDiffieHellmanGroup,t.getDiffieHellman=u.getDiffieHellman,t.createDiffieHellman=u.createDiffieHellman,t.DiffieHellman=u.DiffieHellman;var c=n(29883);t.createSign=c.createSign,t.Sign=c.Sign,t.createVerify=c.createVerify,t.Verify=c.Verify,t.createECDH=n(81699);var l=n(90873);t.publicEncrypt=l.publicEncrypt,t.privateEncrypt=l.privateEncrypt,t.publicDecrypt=l.publicDecrypt,t.privateDecrypt=l.privateDecrypt;var f=n(28430);t.randomFill=f.randomFill,t.randomFillSync=f.randomFillSync,t.createCredentials=function(){throw new Error("sorry, createCredentials is not implemented yet\nwe accept pull requests\nhttps://github.com/browserify/crypto-browserify")},t.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},15100(e,t,n){"use strict";n.d(t,{T:()=>i,Z:()=>a});var r=n(2273);class i extends r.C{constructor({docsPath:e}={}){super(["Could not find an Account to execute with this Action.","Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the Client."].join("\n"),{docsPath:e,docsSlug:"account",name:"AccountNotFoundError"})}}class a extends r.C{constructor({docsPath:e,metaMessages:t,type:n}){super(`Account type "${n}" is not supported.`,{docsPath:e,metaMessages:t,name:"AccountTypeNotSupportedError"})}}},15190(e,t,n){"use strict";n.d(t,{I:()=>i,R:()=>r});const r=e=>e,i=e=>e},15314(e,t,n){var r;function i(e){this.rand=e}if(e.exports=function(e){return r||(r=new i(null)),r.generate(e)},e.exports.Rand=i,i.prototype.generate=function(e){return this._rand(e)},i.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),n=0;ni,X:()=>s,eV:()=>o,kK:()=>a});var r=n(21506);function i(e,t){if(r.Ej(e)>t)throw new r.u({givenSize:r.Ej(e),maxSize:t})}function a(e,t){if("number"==typeof t&&t>0&&t>r.Ej(e)-1)throw new r.ii({offset:t,position:"start",size:r.Ej(e)})}function s(e,t,n){if("number"==typeof t&&"number"==typeof n&&r.Ej(e)!==n-t)throw new r.ii({offset:n,position:"end",size:r.Ej(e)})}function o(e,t={}){const{dir:n,size:i=32}=t;if(0===i)return e;const a=e.replace("0x","");if(a.length>2*i)throw new r.Fl({size:Math.ceil(a.length/2),targetSize:i,type:"Hex"});return`0x${a["right"===n?"padEnd":"padStart"](2*i,"0")}`}},16483(e,t,n){"use strict";e.exports=a;var r=n(74017),i=Object.create(n(1833));function a(e){if(!(this instanceof a))return new a(e);r.call(this,e)}i.inherits=n(33213),i.inherits(a,r),a.prototype._transform=function(e,t,n){n(null,e)}},16491(e,t,n){"use strict";n.d(t,{RK:()=>u,Ru:()=>s,s0:()=>o,yy:()=>a,zD:()=>c});var r=n(68929),i=n(55606);r.iu,r.L8;const a=i.yy,s=i.Ru,o=i.s0,u=i.RK,c=r.hV},16503(e,t,n){"use strict";var r=n(97103),i=n(79601),a=n(45366),s=r.rotr64_hi,o=r.rotr64_lo,u=r.shr64_hi,c=r.shr64_lo,l=r.sum64,f=r.sum64_hi,d=r.sum64_lo,h=r.sum64_4_hi,p=r.sum64_4_lo,m=r.sum64_5_hi,y=r.sum64_5_lo,b=i.BlockHash,g=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function v(){if(!(this instanceof v))return new v;b.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=g,this.W=new Array(160)}function w(e,t,n,r,i){var a=e&n^~e&i;return a<0&&(a+=4294967296),a}function _(e,t,n,r,i,a){var s=t&r^~t&a;return s<0&&(s+=4294967296),s}function S(e,t,n,r,i){var a=e&n^e&i^n&i;return a<0&&(a+=4294967296),a}function E(e,t,n,r,i,a){var s=t&r^t&a^r&a;return s<0&&(s+=4294967296),s}function k(e,t){var n=s(e,t,28)^s(t,e,2)^s(t,e,7);return n<0&&(n+=4294967296),n}function x(e,t){var n=o(e,t,28)^o(t,e,2)^o(t,e,7);return n<0&&(n+=4294967296),n}function T(e,t){var n=s(e,t,14)^s(e,t,18)^s(t,e,9);return n<0&&(n+=4294967296),n}function M(e,t){var n=o(e,t,14)^o(e,t,18)^o(t,e,9);return n<0&&(n+=4294967296),n}function I(e,t){var n=s(e,t,1)^s(e,t,8)^u(e,t,7);return n<0&&(n+=4294967296),n}function A(e,t){var n=o(e,t,1)^o(e,t,8)^c(e,t,7);return n<0&&(n+=4294967296),n}function N(e,t){var n=s(e,t,19)^s(t,e,29)^u(e,t,6);return n<0&&(n+=4294967296),n}function P(e,t){var n=o(e,t,19)^o(t,e,29)^c(e,t,6);return n<0&&(n+=4294967296),n}r.inherits(v,b),e.exports=v,v.blockSize=1024,v.outSize=512,v.hmacStrength=192,v.padLength=128,v.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;ra});var r=n(65144),i=n(73934);const a=e=>(0,r.di)((0,i.k)(e),0,4)},16778(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=n(73730),a=(r=n(35815))&&r.__esModule?r:{default:r},s=function(e,t){for(var n=0;n>>8,t[n+2]=e[r+1]>>>16,t[n+3]=e[r+1]>>>24,t[n+4]=e[r],t[n+5]=e[r]>>>8,t[n+6]=e[r]>>>16,t[n+7]=e[r]>>>24}return t};t.default=function(e){var t=this,n=e.capacity,r=e.padding,u=(0,a.default)(),c=n/8,l=200-n/4,f=0,d=new Uint32Array(50),h=i.Buffer.allocUnsafe(l);return this.absorb=function(e){for(var n=0;n=l&&(s(h,d),u(d),f=0);return t},this.squeeze=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={buffer:e.buffer||i.Buffer.allocUnsafe(c),padding:e.padding||r,queue:i.Buffer.allocUnsafe(h.length),state:new Uint32Array(d.length)};h.copy(t.queue);for(var n=0;ni,NO:()=>o,Pj:()=>u,dV:()=>a,nx:()=>c,zd:()=>s});var r=n(20094);r.C;class i extends r.C{constructor({params:e}){super("Failed to parse ABI parameters.",{details:`parseAbiParameters(${JSON.stringify(e,null,2)})`,docsPath:"/api/human#parseabiparameters-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiParametersError"})}}class a extends r.C{constructor({param:e}){super("Invalid ABI parameter.",{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}}class s extends r.C{constructor({param:e,name:t}){super("Invalid ABI parameter.",{details:e,metaMessages:[`"${t}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}}class o extends r.C{constructor({param:e,type:t,modifier:n}){super("Invalid ABI parameter.",{details:e,metaMessages:[`Modifier "${n}" not allowed${t?` in "${t}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}}class u extends r.C{constructor({param:e,type:t,modifier:n}){super("Invalid ABI parameter.",{details:e,metaMessages:[`Modifier "${n}" not allowed${t?` in "${t}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${n}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}}class c extends r.C{constructor({abiParameter:e}){super("Invalid ABI parameter.",{details:JSON.stringify(e,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}}},17353(e,t,n){"use strict";n.d(t,{ii:()=>r}),n(66949);const r=Symbol.for("effect/Readable")},17388(e,t,n){"use strict";n.d(t,{$v:()=>A,BC:()=>N,BE:()=>x,Hs:()=>P,Ie:()=>v,Im:()=>C,Iv:()=>M,J_:()=>B,L8:()=>w,Rx:()=>D,Ts:()=>S,d5:()=>F,gv:()=>O,h3:()=>k,of:()=>_,u2:()=>R,v4:()=>j,z1:()=>L});var r=n(28062),i=n(72529),a=n(91893),s=n(59329),o=n(46385),u=n(12717),c=n(36708),l=n(66949),f=n(82884);const d=Symbol.for("effect/Chunk"),h=[],p=(e=>a.L8((t,n)=>t.length===n.length&&k(t).every((t,r)=>e(t,A(n,r)))))(i.aI),m={[d]:{_A:e=>e},toString(){return(0,u.GP)(this.toJSON())},toJSON(){return{_id:"Chunk",values:k(this).map(u.U2)}},[u.FX](){return this.toJSON()},[i.HR](e){return b(e)&&p(this,e)},[o.HR](){return o.PO(this,o.YO(k(this)))},[Symbol.iterator](){switch(this.backing._tag){case"IArray":return this.backing.array[Symbol.iterator]();case"IEmpty":return h[Symbol.iterator]();default:return k(this)[Symbol.iterator]()}},pipe(){return(0,l.tT)(this,arguments)}},y=e=>{const t=Object.create(m);switch(t.backing=e,e._tag){case"IEmpty":t.length=0,t.depth=0,t.left=t,t.right=t;break;case"IConcat":t.length=e.left.length+e.right.length,t.depth=1+Math.max(e.left.depth,e.right.depth),t.left=e.left,t.right=e.right;break;case"IArray":t.length=e.array.length,t.depth=0,t.left=g,t.right=g;break;case"ISingleton":t.length=1,t.depth=0,t.left=g,t.right=g;break;case"ISlice":t.length=e.length,t.depth=e.chunk.depth+1,t.left=g,t.right=g}return t},b=e=>(0,f.i5)(e,d),g=y({_tag:"IEmpty"}),v=()=>g,w=(...e)=>I(e),_=e=>y({_tag:"ISingleton",a:e}),S=e=>b(e)?e:M(r.Ts(e)),E=(e,t,n)=>{switch(e.backing._tag){case"IArray":!function(e,t,n,r,i){for(let t=0;t{switch(e.backing._tag){case"IEmpty":return h;case"IArray":return e.backing.array;default:{const t=new Array(e.length);return E(e,t,0),e.backing={_tag:"IArray",array:t},e.left=g,e.right=g,e.depth=0,t}}},x=e=>{switch(e.backing._tag){case"IEmpty":case"ISingleton":return e;case"IArray":return y({_tag:"IArray",array:r.BE(e.backing.array)});case"IConcat":return y({_tag:"IConcat",left:x(e.backing.right),right:x(e.backing.left)});case"ISlice":return M(r.BE(k(e)))}},T=(0,s.XY)(2,(e,t)=>t<0||t>=e.length?c.dv():c.zN(A(e,t))),M=e=>0===e.length?v():1===e.length?_(e[0]):y({_tag:"IArray",array:e}),I=e=>M(e),A=(0,s.XY)(2,(e,t)=>{switch(e.backing._tag){case"IEmpty":throw new Error("Index out of bounds");case"ISingleton":if(0!==t)throw new Error("Index out of bounds");return e.backing.a;case"IArray":if(t>=e.length||t<0)throw new Error("Index out of bounds");return e.backing.array[t];case"IConcat":return tR(e,_(t))),P=(0,s.XY)(2,(e,t)=>R(_(t),e)),O=(0,s.XY)(2,(e,t)=>{if(t<=0)return e;if(t>=e.length)return g;switch(e.backing._tag){case"ISlice":return y({_tag:"ISlice",chunk:e.backing.chunk,offset:e.backing.offset+t,length:e.backing.length-t});case"IConcat":return t>e.left.length?O(e.right,t-e.left.length):y({_tag:"IConcat",left:O(e.left,t),right:e.right});default:return y({_tag:"ISlice",chunk:e,offset:t,length:e.length-t})}}),R=(0,s.XY)(2,(e,t)=>{if("IEmpty"===e.backing._tag)return t;if("IEmpty"===t.backing._tag)return e;const n=t.depth-e.depth;if(Math.abs(n)<=1)return y({_tag:"IConcat",left:e,right:t});if(n<-1){if(e.left.depth>=e.right.depth){const n=R(e.right,t);return y({_tag:"IConcat",left:e.left,right:n})}{const n=R(e.right.right,t);if(n.depth===e.depth-3){const t=y({_tag:"IConcat",left:e.right.left,right:n});return y({_tag:"IConcat",left:e.left,right:t})}{const t=y({_tag:"IConcat",left:e.left,right:e.right.left});return y({_tag:"IConcat",left:t,right:n})}}}if(t.right.depth>=t.left.depth){const n=R(e,t.left);return y({_tag:"IConcat",left:n,right:t.right})}{const n=R(e,t.left.left);if(n.depth===t.depth-3){const e=y({_tag:"IConcat",left:n,right:t.left.right});return y({_tag:"IConcat",left:e,right:t.right})}{const e=y({_tag:"IConcat",left:t.left.right,right:t.right});return y({_tag:"IConcat",left:n,right:e})}}}),C=e=>0===e.length,B=e=>e.length>0,F=T(0),L=e=>A(e,0),j=L,D=e=>O(e,1);r.gR,r.Ou,r.i8,r.g9,r.Uk,r.Kl,r.fj,r.TS,r.XK},17442(e,t,n){"use strict";n.d(t,{EF:()=>l,Gj:()=>o,JJ:()=>s,N9:()=>a,NM:()=>d,Ni:()=>b,ZO:()=>r,_l:()=>c,du:()=>u,kK:()=>i,mM:()=>h,mm:()=>m,tA:()=>f,u4:()=>y,xS:()=>p});const r="Async",i="Commit",a="Failure",s="OnFailure",o="OnSuccess",u="OnSuccessAndFailure",c="Success",l="Sync",f="Tag",d="UpdateRuntimeFlags",h="While",p="Iterator",m="WithRuntime",y="Yield",b="RevertFlags"},17617(e,t,n){"use strict";n.d(t,{R:()=>g});var r=n(45264),i=n(75209),a=n(83815),s=n(462);var o=n(63287),u=n(84015),c=n(81127),l=n(24774);let f=!1;async function d({hash:e,privateKey:t,to:n="object"}){const{r:a,s,recovery:o}=r.secp256k1.sign(e.slice(2),t.slice(2),{lowS:!0,extraEntropy:(0,u.q)(f,{strict:!1})?(0,c.aT)(f):f}),d={r:(0,i.cK)(a,{size:32}),s:(0,i.cK)(s,{size:32}),v:o?28n:27n,yParity:o};return"bytes"===n||"hex"===n?(0,l.h)({...d,to:n}):d}var h=n(4290),p=n(47226),m=n(35593),y=n(33026),b=n(18320);function g(e,t={}){const{nonceManager:n}=t,u=(0,i.nj)(r.secp256k1.getPublicKey(e.slice(2),!1)),c=function(e){if("string"==typeof e){if(!(0,s.P)(e,{strict:!1}))throw new a.M({address:e});return{address:e,type:"json-rpc"}}if(!(0,s.P)(e.address,{strict:!1}))throw new a.M({address:e.address});return{address:e.address,nonceManager:e.nonceManager,sign:e.sign,signAuthorization:e.signAuthorization,signMessage:e.signMessage,signTransaction:e.signTransaction,signTypedData:e.signTypedData,source:"custom",type:"local"}}({address:(0,o.M)(u),nonceManager:n,sign:async({hash:t})=>d({hash:t,privateKey:e,to:"hex"}),signAuthorization:async t=>async function(e){const{chainId:t,nonce:n,privateKey:r,to:i="object"}=e,a=e.contractAddress??e.address,s=await d({hash:(0,h.C)({address:a,chainId:t,nonce:n}),privateKey:r,to:i});return"object"===i?{address:a,chainId:t,nonce:n,...s}:s}({...t,privateKey:e}),signMessage:async({message:t})=>async function({message:e,privateKey:t}){return await d({hash:(0,p.A)(e),privateKey:t,to:"hex"})}({message:t,privateKey:e}),signTransaction:async(t,{serializer:n}={})=>async function(e){const{privateKey:t,transaction:n,serializer:r=y.b}=e,i="eip4844"===n.type?{...n,sidecars:!1}:n,a=await d({hash:(0,m.S)(await r(i)),privateKey:t});return await r(n,a)}({privateKey:e,transaction:t,serializer:n}),signTypedData:async t=>async function(e){const{privateKey:t,...n}=e;return await d({hash:(0,b.Zh)(n),privateKey:t,to:"hex"})}({...t,privateKey:e})});return{...c,publicKey:u,source:"privateKey"}}},17777(e){var t={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==t.call(e)}},17821(e){"use strict";e.exports=Function.prototype.call},17993(e,t,n){"use strict";n.d(t,{A:()=>r});function r(e,t,n){return JSON.stringify(e,(e,n)=>"function"==typeof t?t(e,n):"bigint"==typeof n?n.toString()+"#__bigint":n,n)}},18052(e){"use strict";e.exports=Error},18056(e,t,n){"use strict";n.d(t,{h:()=>r});const r=n(73934).k},18193(e,t,n){"use strict";n.d(t,{F6:()=>E,Ie:()=>h,Ui:()=>_,kg:()=>S,r_:()=>u});var r=n(17388),i=n(72529),a=n(59329),s=n(11264),o=n(53487);const u=Symbol.for("effect/DifferContextPatch");function c(e){return e}const l={...o.wC.prototype,[u]:{_Value:c,_Patch:c}},f=Object.assign(Object.create(l),{_tag:"Empty"}),d=Object.create(f),h=()=>d,p=Object.assign(Object.create(l),{_tag:"AndThen"}),m=Object.assign(Object.create(l),{_tag:"AddService"}),y=(e,t)=>{const n=Object.create(m);return n.key=e,n.service=t,n},b=Object.assign(Object.create(l),{_tag:"RemoveService"}),g=e=>{const t=Object.create(b);return t.key=e,t},v=Object.assign(Object.create(l),{_tag:"UpdateService"}),w=(e,t)=>{const n=Object.create(v);return n.key=e,n.update=t,n},_=(e,t)=>{const n=new Map(e.unsafeMap);let r=h();for(const[e,a]of t.unsafeMap.entries())if(n.has(e)){const t=n.get(e);n.delete(e),i.aI(t,a)||(r=S(w(e,()=>a))(r))}else n.delete(e),r=S(y(e,a))(r);for(const[e]of n.entries())r=S(g(e))(r);return r},S=a.XY(2,(e,t)=>((e,t)=>{const n=Object.create(p);return n.first=e,n.second=t,n})(e,t)),E=a.XY(2,(e,t)=>{if("Empty"===e._tag)return t;let n=!1,i=r.of(e);const a=new Map(t.unsafeMap);for(;r.J_(i);){const e=r.v4(i),t=r.Rx(i);switch(e._tag){case"Empty":i=t;break;case"AddService":a.set(e.key,e.service),i=t;break;case"AndThen":i=r.Hs(r.Hs(t,e.second),e.first);break;case"RemoveService":a.delete(e.key),i=t;break;case"UpdateService":a.set(e.key,e.update(a.get(e.key))),n=!0,i=t}}if(!n)return(0,s.og)(a);const o=new Map;for(const[e]of t.unsafeMap)a.has(e)&&(o.set(e,a.get(e)),a.delete(e));for(const[e,t]of a)o.set(e,t);return(0,s.og)(o)})},18277(e,t,n){var r=n(73730),i=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function s(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=s),a(i,s),s.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,n)},s.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},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 r.SlowBuffer(e)}},18318(e,t,n){"use strict";n.d(t,{_o:()=>b,Pj:()=>m,uT:()=>f,NV:()=>y});var r=n(8609),i=n(92666),a=n(17230),s=n(9033),o=n(20094);class u extends o.C{constructor({current:e,depth:t}){super("Unbalanced parentheses.",{metaMessages:[`"${e.trim()}" has too many ${t>0?"opening":"closing"} parentheses.`],details:`Depth "${t}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}}const c=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]]);var l=n(72021);function f(e,t={}){if((0,l.Ji)(e))return function(e,t={}){const n=(0,l.ej)(e);if(!n)throw new s.s7({signature:e,type:"function"});const r=y(n.parameters),i=[],a=r.length;for(let e=0;e[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,h=/^\((?.+?)\)(?(?:\[\d*?\])+?)?(?:\s(?calldata|indexed|memory|storage{1}))?(?:\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,p=/^u?int$/;function m(e,t){const n=function(e,t,n){let r="";if(n)for(const e of Object.entries(n)){if(!e)continue;let t="";for(const n of e[1])t+=`[${n.type}${n.name?`:${n.name}`:""}]`;r+=`(${e[0]}{${t}})`}return t?`${t}:${e}${r}`:`${e}${r}`}(e,t?.type,t?.structs);if(c.has(n))return c.get(n);const s=r.wj.test(e),o=(0,r.Yv)(s?h:d,e);if(!o)throw new a.dV({param:e});if(o.name&&function(e){return"address"===e||"bool"===e||"function"===e||"string"===e||"tuple"===e||r.BD.test(e)||r.Ge.test(e)||g.test(e)}(o.name))throw new a.zd({param:e,name:o.name});const u=o.name?{name:o.name}:{},f="indexed"===o.modifier?{indexed:!0}:{},v=t?.structs??{};let w,_={};if(s){w="tuple";const e=y(o.type),t=[],n=e.length;for(let r=0;ru});var r=n(28780),i=n(33640),a=n(75209),s=n(35593),o=n(83037);function u(e){const{domain:t={},message:n,primaryType:r}=e,a={EIP712Domain:(0,o.H4)({domain:t}),...e.types};(0,o.$$)({domain:t,message:n,primaryType:r,types:a});const u=["0x1901"];return t&&u.push(function({domain:e,types:t}){return c({data:e,primaryType:"EIP712Domain",types:t})}({domain:t,types:a})),"EIP712Domain"!==r&&u.push(c({data:n,primaryType:r,types:a})),(0,s.S)((0,i.xW)(u))}function c({data:e,primaryType:t,types:n}){const r=l({data:e,primaryType:t,types:n});return(0,s.S)(r)}function l({data:e,primaryType:t,types:n}){const i=[{type:"bytes32"}],a=[f({primaryType:t,types:n})];for(const r of n[t]){const[t,s]=h({types:n,name:r.name,type:r.type,value:e[r.name]});i.push(t),a.push(s)}return(0,r.h)(i,a)}function f({primaryType:e,types:t}){const n=(0,a.nj)(function({primaryType:e,types:t}){let n="";const r=d({primaryType:e,types:t});r.delete(e);const i=[e,...Array.from(r).sort()];for(const e of i)n+=`${e}(${t[e].map(({name:e,type:t})=>`${t} ${e}`).join(",")})`;return n}({primaryType:e,types:t}));return(0,s.S)(n)}function d({primaryType:e,types:t},n=new Set){const r=e.match(/^\w*/u),i=r?.[0];if(n.has(i)||void 0===t[i])return n;n.add(i);for(const e of t[i])d({primaryType:e.type,types:t},n);return n}function h({types:e,name:t,type:n,value:i}){if(void 0!==e[n])return[{type:"bytes32"},(0,s.S)(l({data:i,primaryType:n,types:e}))];if("bytes"===n)return[{type:"bytes32"},(0,s.S)(i)];if("string"===n)return[{type:"bytes32"},(0,s.S)((0,a.nj)(i))];if(n.lastIndexOf("]")===n.length-1){const a=n.slice(0,n.lastIndexOf("[")),o=i.map(n=>h({name:t,type:a,types:e,value:n}));return[{type:"bytes32"},(0,s.S)((0,r.h)(o.map(([e])=>e),o.map(([,e])=>e)))]}return[{type:n},i]}},18561(e,t,n){e.exports=i;var r=n(3640).EventEmitter;function i(){r.call(this)}n(33213)(i,r),i.Readable=n(61037),i.Writable=n(66573),i.Duplex=n(92783),i.Transform=n(27825),i.PassThrough=n(43475),i.finished=n(60911),i.pipeline=n(61213),i.Stream=i,i.prototype.pipe=function(e,t){var n=this;function i(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function a(){n.readable&&n.resume&&n.resume()}n.on("data",i),e.on("drain",a),e._isStdio||t&&!1===t.end||(n.on("end",o),n.on("close",u));var s=!1;function o(){s||(s=!0,e.end())}function u(){s||(s=!0,"function"==typeof e.destroy&&e.destroy())}function c(e){if(l(),0===r.listenerCount(this,"error"))throw e}function l(){n.removeListener("data",i),e.removeListener("drain",a),n.removeListener("end",o),n.removeListener("close",u),n.removeListener("error",c),e.removeListener("error",c),n.removeListener("end",l),n.removeListener("close",l),e.removeListener("close",l)}return n.on("error",c),e.on("error",c),n.on("end",l),n.on("close",l),e.on("close",l),e.emit("pipe",n),e}},19109(e,t,n){"use strict";n.d(t,{PF:()=>f});var r=n(26015),i=n(96349),a=n(85144),s=n(65306),o=n(76171),u=n(12769),c=n(73418),l=n(41584);function f({abi:e,address:t,client:n}){const f=n,[p,m]=f?"public"in f&&"wallet"in f?[f.public,f.wallet]:"public"in f?[f.public,void 0]:"wallet"in f?[void 0,f.wallet]:[f,f]:[void 0,void 0],y=null!=p,b=null!=m,g={};let v=!1,w=!1,_=!1;for(const t of e)if("function"===t.type?"view"===t.stateMutability||"pure"===t.stateMutability?v=!0:w=!0:"event"===t.type&&(_=!0),v&&w&&_)break;return y&&(v&&(g.read=new Proxy({},{get:(n,i)=>(...n)=>{const{args:a,options:s}=d(n);return(0,r.T)(p,o.J,"readContract")({abi:e,address:t,functionName:i,args:a,...s})}})),w&&(g.simulate=new Proxy({},{get:(n,i)=>(...n)=>{const{args:a,options:s}=d(n);return(0,r.T)(p,u.v,"simulateContract")({abi:e,address:t,functionName:i,args:a,...s})}})),_&&(g.createEventFilter=new Proxy({},{get:(n,a)=>(...n)=>{const s=e.find(e=>"event"===e.type&&e.name===a),{args:o,options:u}=h(n,s);return(0,r.T)(p,i.X,"createContractEventFilter")({abi:e,address:t,eventName:a,args:o,...u})}}),g.getEvents=new Proxy({},{get:(n,i)=>(...n)=>{const a=e.find(e=>"event"===e.type&&e.name===i),{args:o,options:u}=h(n,a);return(0,r.T)(p,s.u,"getContractEvents")({abi:e,address:t,eventName:i,args:o,...u})}}),g.watchEvent=new Proxy({},{get:(n,i)=>(...n)=>{const a=e.find(e=>"event"===e.type&&e.name===i),{args:s,options:o}=h(n,a);return(0,r.T)(p,c.q,"watchContractEvent")({abi:e,address:t,eventName:i,args:s,...o})}}))),b&&w&&(g.write=new Proxy({},{get:(n,i)=>(...n)=>{const{args:a,options:s}=d(n);return(0,r.T)(m,l.E,"writeContract")({abi:e,address:t,functionName:i,args:a,...s})}})),(y||b)&&w&&(g.estimateGas=new Proxy({},{get:(n,i)=>(...n)=>{const{args:s,options:o}=d(n),u=p??m;return(0,r.T)(u,a.W,"estimateContractGas")({abi:e,address:t,functionName:i,args:s,...o,account:o.account??m.account})}})),g.address=t,g.abi=e,g}function d(e){const t=e.length&&Array.isArray(e[0]);return{args:t?e[0]:[],options:(t?e[1]:e[0])??{}}}function h(e,t){let n=!1;return Array.isArray(e[0])?n=!0:1===e.length?n=t.inputs.some(e=>e.indexed):2===e.length&&(n=!0),{args:n?e[0]:void 0,options:(n?e[1]:e[0])??{}}}},19127(e,t,n){var r=n(240);t.tagClass={0:"universal",1:"application",2:"context",3:"private"},t.tagClassByName=r._reverse(t.tagClass),t.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},t.tagByName=r._reverse(t.tag)},19512(e,t,n){"use strict";n.d(t,{Ao:()=>r});const r=2n**256n-1n},20094(e,t,n){"use strict";n.d(t,{C:()=>r});class r extends Error{constructor(e,t={}){const n=t.cause instanceof r?t.cause.details:t.cause?.message?t.cause.message:t.details,i=t.cause instanceof r&&t.cause.docsPath||t.docsPath;super([e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...i?[`Docs: https://abitype.dev${i}`]:[],...n?[`Details: ${n}`]:[],"Version: abitype@1.2.3"].join("\n")),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),t.cause&&(this.cause=t.cause),this.details=n,this.docsPath=i,this.metaMessages=t.metaMessages,this.shortMessage=e}}},20490(e,t,n){"use strict";n.d(t,{$n:()=>c,C6:()=>g,Em:()=>y,Hs:()=>h,KE:()=>m,MS:()=>p,O4:()=>l,Pe:()=>b,TW:()=>f,bw:()=>v,le:()=>d});var r=n(72529),i=n(46385),a=n(66949),s=n(95644),o=n(17442),u=n(60131);const c=Symbol.for("effect/Effect"),l=Symbol.for("effect/Stream"),f=Symbol.for("effect/Sink"),d=Symbol.for("effect/Channel"),h={_R:e=>e,_E:e=>e,_A:e=>e,_V:u.M()},p={[c]:h,[l]:h,[f]:{_A:e=>e,_In:e=>e,_L:e=>e,_E:e=>e,_R:e=>e},[d]:{_Env:e=>e,_InErr:e=>e,_InElem:e=>e,_InDone:e=>e,_OutErr:e=>e,_OutElem:e=>e,_OutDone:e=>e},[r.HR](e){return this===e},[i.HR](){return i.PO(this,i.yT(this))},[Symbol.iterator](){return new s.BW(new s.WT(this))},pipe(){return(0,a.tT)(this,arguments)}},m={[i.HR](){return i.PO(this,i.QK(this))},[r.HR](e){const t=Object.keys(this),n=Object.keys(e);if(t.length!==n.length)return!1;for(const n of t)if(!(n in e)||!r.aI(this[n],e[n]))return!1;return!0}},y={...p,_op:o.kK},b={...y,...m},g=function(){function e(){}return e.prototype=y,e}(),v=function(){function e(){}return e.prototype=b,e}()},20518(e,t,n){"use strict";n.d(t,{H2:()=>s,Ty:()=>i,u:()=>o,xO:()=>a});var r=n(2273);class i extends r.C{constructor({max:e,min:t,signed:n,size:r,value:i}){super(`Number "${i}" is not in safe ${r?`${8*r}-bit ${n?"signed":"unsigned"} `:""}integer range ${e?`(${t} to ${e})`:`(above ${t})`}`,{name:"IntegerOutOfRangeError"})}}class a extends r.C{constructor(e){super(`Bytes value "${e}" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,{name:"InvalidBytesBooleanError"})}}class s extends r.C{constructor(e){super(`Hex value "${e}" is not a valid boolean. The hex value must be "0x0" (false) or "0x1" (true).`,{name:"InvalidHexBooleanError"})}}r.C;class o extends r.C{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:"SizeOverflowError"})}}},20582(e,t,n){"use strict";n.d(t,{O:()=>c,_:()=>u});var r=n(44535),i=n(26015),a=n(13961),s=n(13940),o=n(34435);async function u(e,t){return c(e,t)}async function c(e,t){const{block:n,chain:u=e.chain,request:c,type:l="eip1559"}=t||{},f=await(async()=>"function"==typeof u?.fees?.baseFeeMultiplier?u.fees.baseFeeMultiplier({block:n,client:e,request:c}):u?.fees?.baseFeeMultiplier??1.2)();if(f<1)throw new r.sM;const d=10**(f.toString().split(".")[1]?.length??0),h=e=>e*BigInt(Math.ceil(f*d))/BigInt(d),p=n||await(0,i.T)(e,s.g,"getBlock")({});if("function"==typeof u?.fees?.estimateFeesPerGas){const t=await u.fees.estimateFeesPerGas({block:n,client:e,multiply:h,request:c,type:l});if(null!==t)return t}if("eip1559"===l){if("bigint"!=typeof p.baseFeePerGas)throw new r.pw;const t="bigint"==typeof c?.maxPriorityFeePerGas?c.maxPriorityFeePerGas:await(0,a.N)(e,{block:p,chain:u,request:c}),n=h(p.baseFeePerGas);return{maxFeePerGas:c?.maxFeePerGas??n+t,maxPriorityFeePerGas:t}}return{gasPrice:c?.gasPrice??h(await(0,i.T)(e,o.L,"getGasPrice")({}))}}},21379(e,t,n){var r=n(81475),i=n(90913),a=n(33213),s=n(72258).Buffer,o={"des-ede3-cbc":i.CBC.instantiate(i.EDE),"des-ede3":i.EDE,"des-ede-cbc":i.CBC.instantiate(i.EDE),"des-ede":i.EDE,"des-cbc":i.CBC.instantiate(i.DES),"des-ecb":i.DES};function u(e){r.call(this);var t,n=e.mode.toLowerCase(),i=o[n];t=e.decrypt?"decrypt":"encrypt";var a=e.key;s.isBuffer(a)||(a=s.from(a)),"des-ede"!==n&&"des-ede-cbc"!==n||(a=s.concat([a,a.slice(0,8)]));var u=e.iv;s.isBuffer(u)||(u=s.from(u)),this._des=i.create({key:a,iv:u,type:t})}o.des=o["des-cbc"],o.des3=o["des-ede3-cbc"],e.exports=u,a(u,r),u.prototype._update=function(e){return s.from(this._des.update(e))},u.prototype._final=function(){return s.from(this._des.final())}},21506(e,t,n){"use strict";n.d(t,{Dg:()=>g,Ej:()=>b,Fl:()=>T,HT:()=>c,Ho:()=>p,M7:()=>m,Ro:()=>v,Ty:()=>_,di:()=>y,ii:()=>x,oB:()=>d,sH:()=>h,tf:()=>w,u:()=>k,uK:()=>f,xW:()=>u,xb:()=>l});var r=n(52948),i=n(16476),a=n(17993);const s=new TextEncoder,o=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function u(...e){return`0x${e.reduce((e,t)=>e+t.replace("0x",""),"")}`}function c(e){return e instanceof Uint8Array?f(e):Array.isArray(e)?f(new Uint8Array(e)):e}function l(e,t={}){const n=`0x${Number(e)}`;return"number"==typeof t.size?(i.Sl(n,t.size),p(n,t.size)):n}function f(e,t={}){let n="";for(let t=0;ta||i>1n?r:r-s-1n}function v(e,t={}){const{signed:n,size:r}=t;return Number(n||r?g(e,t):e)}function w(e,t={}){const{strict:n=!1}=t;try{return function(e,t={}){const{strict:n=!1}=t;if(!e)throw new S(e);if("string"!=typeof e)throw new S(e);if(n&&!/^0x[0-9a-fA-F]*$/.test(e))throw new E(e);if(!e.startsWith("0x"))throw new E(e)}(e,{strict:n}),!0}catch{return!1}}class _ extends r.C{constructor({max:e,min:t,signed:n,size:r,value:i}){super(`Number \`${i}\` is not in safe${r?` ${8*r}-bit`:""}${n?" signed":" unsigned"} integer range ${e?`(\`${t}\` to \`${e}\`)`:`(above \`${t}\`)`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"})}}r.C;class S extends r.C{constructor(e){super(`Value \`${"object"==typeof e?a.A(e):e}\` of type \`${typeof e}\` is an invalid hex type.`,{metaMessages:['Hex types must be represented as `"0x${string}"`.']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexTypeError"})}}class E extends r.C{constructor(e){super(`Value \`${e}\` is an invalid hex value.`,{metaMessages:['Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexValueError"})}}r.C;class k extends r.C{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeOverflowError"})}}class x extends r.C{constructor({offset:e,position:t,size:n}){super(`Slice ${"start"===t?"starting":"ending"} at offset \`${e}\` is out-of-bounds (size: \`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SliceOffsetOutOfBoundsError"})}}class T extends r.C{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"})}}},21977(e){"use strict";e.exports=ReferenceError},22296(e,t,n){"use strict";function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function i(e){for(var t=1;t0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n}},{key:"concat",value:function(e){if(0===this.length)return u.alloc(0);for(var t=u.allocUnsafe(e>>>0),n=this.head,r=0;n;)f(n.data,t,r),r+=n.data.length,n=n.next;return t}},{key:"consume",value:function(e,t){var n;return ei.length?i.length:e;if(a===i.length?r+=i:r+=i.slice(0,e),0===(e-=a)){a===i.length?(++n,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(a));break}++n}return this.length-=n,r}},{key:"_getBuffer",value:function(e){var t=u.allocUnsafe(e),n=this.head,r=1;for(n.data.copy(t),e-=n.data.length;n=n.next;){var i=n.data,a=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,a),0===(e-=a)){a===i.length?(++r,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=i.slice(a));break}++r}return this.length-=r,t}},{key:l,value:function(e,t){return c(this,i(i({},t),{},{depth:0,customInspect:!1}))}}])&&s(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}()},22323(e,t,n){var r=n(41498);e.exports=g,g.simpleSieve=y,g.fermatTest=b;var i=n(23145),a=new i(24),s=new(n(9007)),o=new i(1),u=new i(2),c=new i(5),l=(new i(16),new i(8),new i(10)),f=new i(3),d=(new i(7),new i(11)),h=new i(4),p=(new i(12),null);function m(){if(null!==p)return p;var e=[];e[0]=2;for(var t=1,n=3;n<1048576;n+=2){for(var r=Math.ceil(Math.sqrt(n)),i=0;ie;)n.ishrn(1);if(n.isEven()&&n.iadd(o),n.testn(1)||n.iadd(u),t.cmp(u)){if(!t.cmp(c))for(;n.mod(l).cmp(f);)n.iadd(h)}else for(;n.mod(a).cmp(d);)n.iadd(h);if(y(p=n.shrn(1))&&y(n)&&b(p)&&b(n)&&s.test(p)&&s.test(n))return n}}},22420(e,t,n){"use strict";n.d(t,{S:()=>a});var r=n(81127),i=n(75209);function a(e){const{kzg:t}=e,n=e.to??("string"==typeof e.blobs[0]?"hex":"bytes"),a="string"==typeof e.blobs[0]?e.blobs.map(e=>(0,r.aT)(e)):e.blobs,s=[];for(const e of a)s.push(Uint8Array.from(t.blobToKzgCommitment(e)));return"bytes"===n?s:s.map(e=>(0,i.My)(e))}},22478(e,t,n){"use strict";n.d(t,{M:()=>i});var r=n(57834);function i({blockNumber:e,chain:t,contract:n}){const i=t?.contracts?.[n];if(!i)throw new r.rj({chain:t,contract:{name:n}});if(e&&i.blockCreated&&i.blockCreated>e)throw new r.rj({blockNumber:e,chain:t,contract:{name:n,blockCreated:i.blockCreated}});return i.address}},22516(e,t,n){(t=e.exports=n(90639)).Stream=t,t.Readable=t,t.Writable=n(6179),t.Duplex=n(77561),t.Transform=n(99791),t.PassThrough=n(27949)},22758(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=(r=n(13409))&&r.__esModule?r:{default:r};t.default=function(e){for(var t=e.A,n=e.C,r=0;r<25;r+=5){for(var a=0;a<5;a++)(0,i.default)(t,r+a)(n,a);for(var s=0;s<5;s++){var o=2*(r+s),u=(s+1)%5*2,c=(s+2)%5*2;t[o]^=~n[u]&n[c],t[o+1]^=~n[u+1]&n[c+1]}}}},22839(e,t,n){"use strict";n.d(t,{e:()=>f});var r=n(8609),i=n(92666),a=n(17230),s=n(9033),o=n(20094);class u extends o.C{constructor({type:e}){super("Circular reference detected.",{metaMessages:[`Struct "${e}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}}var c=n(72021),l=n(18318);function f(e){const t={},n=e.length;for(let r=0;r[a-zA-Z$_][a-zA-Z0-9$_]*)(?(?:\[\d*?\])+?)?$/;function h(e=[],t={},n=new Set){const s=[],o=e.length;for(let c=0;c=65&&n<=70?n-55:n>=97&&n<=102?n-87:n-48&15}function u(e,t,n){var r=o(e,n);return n-1>=t&&(r|=o(e,n-1)<<4),r}function c(e,t,n,r){for(var i=0,a=Math.min(e.length,n),s=t;s=49?o-49+10:o>=17?o-17+10:o}return i}a.isBN=function(e){return e instanceof a||null!==e&&"object"==typeof e&&e.constructor.wordSize===a.wordSize&&Array.isArray(e.words)},a.max=function(e,t){return e.cmp(t)>0?e:t},a.min=function(e,t){return e.cmp(t)<0?e:t},a.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(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[a]|=s<>>26-o&67108863,(o+=24)>=26&&(o-=26,a++);else if("le"===n)for(i=0,a=0;i>>26-o&67108863,(o+=24)>=26&&(o-=26,a++);return this.strip()},a.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=2)i=u(e,t,r)<=18?(a-=18,s+=1,this.words[s]|=i>>>26):a+=8;else for(r=(e.length-t)%2==0?t+1:t;r=18?(a-=18,s+=1,this.words[s]|=i>>>26):a+=8;this.strip()},a.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var a=e.length-n,s=a%r,o=Math.min(a,a-s)+n,u=0,l=n;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?""};var l=["","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"],f=[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],d=[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 h(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],a=0|t.words[0],s=i*a,o=67108863&s,u=s/67108864|0;n.words[0]=o;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])*(a=0|t.words[h])+f)/67108864|0,f=67108863&s}n.words[c]=0|f,u=0|l}return 0!==u?n.words[c]=0|u:n.length--,n.strip()}a.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,a=0,s=0;s>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),n=0!==a||s!==this.length-1?l[6-u.length]+u+n:u+n}for(0!==a&&(n=a.toString(16)+n);n.length%t!==0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var c=f[e],h=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(h).toString(e);n=(p=p.idivn(h)).isZero()?m+n:l[c-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!==0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},a.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&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(e,t){return r(void 0!==s),this.toArrayLike(s,e,t)},a.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},a.prototype.toArrayLike=function(e,t,n){var i=this.byteLength(),a=n||Math.max(1,i);r(i<=a,"byte array longer than desired length"),r(a>0,"Requested array length <= 0"),this.strip();var s,o,u="le"===t,c=new e(a),l=this.clone();if(u){for(o=0;!l.isZero();o++)s=l.andln(255),l.iushrn(8),c[o]=s;for(;o=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},a.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 8191&t||(n+=13,t>>>=13),127&t||(n+=7,t>>>=7),15&t||(n+=4,t>>>=4),3&t||(n+=2,t>>>=2),1&t||n++,n},a.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},a.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},a.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},a.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},a.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;re.length?this.clone().ixor(e):e.clone().ixor(this)},a.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},a.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-n),this.strip()},a.prototype.notn=function(e){return this.clone().inotn(e)},a.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(n=this,r=e):(n=e,r=this);for(var i=0,a=0;a>>26;for(;0!==i&&a>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;ae.length?this.clone().iadd(e):e.clone().iadd(this)},a.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 n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var a=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==a&&s>26,this.words[s]=67108863&t;if(0===a&&s>>13,h=0|s[1],p=8191&h,m=h>>>13,y=0|s[2],b=8191&y,g=y>>>13,v=0|s[3],w=8191&v,_=v>>>13,S=0|s[4],E=8191&S,k=S>>>13,x=0|s[5],T=8191&x,M=x>>>13,I=0|s[6],A=8191&I,N=I>>>13,P=0|s[7],O=8191&P,R=P>>>13,C=0|s[8],B=8191&C,F=C>>>13,L=0|s[9],j=8191&L,D=L>>>13,U=0|o[0],z=8191&U,$=U>>>13,V=0|o[1],K=8191&V,Y=V>>>13,q=0|o[2],H=8191&q,G=q>>>13,W=0|o[3],X=8191&W,J=W>>>13,Z=0|o[4],Q=8191&Z,ee=Z>>>13,te=0|o[5],ne=8191&te,re=te>>>13,ie=0|o[6],ae=8191&ie,se=ie>>>13,oe=0|o[7],ue=8191&oe,ce=oe>>>13,le=0|o[8],fe=8191&le,de=le>>>13,he=0|o[9],pe=8191&he,me=he>>>13;n.negative=e.negative^t.negative,n.length=19;var ye=(c+(r=Math.imul(f,z))|0)+((8191&(i=(i=Math.imul(f,$))+Math.imul(d,z)|0))<<13)|0;c=((a=Math.imul(d,$))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(p,z),i=(i=Math.imul(p,$))+Math.imul(m,z)|0,a=Math.imul(m,$);var be=(c+(r=r+Math.imul(f,K)|0)|0)+((8191&(i=(i=i+Math.imul(f,Y)|0)+Math.imul(d,K)|0))<<13)|0;c=((a=a+Math.imul(d,Y)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(b,z),i=(i=Math.imul(b,$))+Math.imul(g,z)|0,a=Math.imul(g,$),r=r+Math.imul(p,K)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(m,K)|0,a=a+Math.imul(m,Y)|0;var ge=(c+(r=r+Math.imul(f,H)|0)|0)+((8191&(i=(i=i+Math.imul(f,G)|0)+Math.imul(d,H)|0))<<13)|0;c=((a=a+Math.imul(d,G)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(w,z),i=(i=Math.imul(w,$))+Math.imul(_,z)|0,a=Math.imul(_,$),r=r+Math.imul(b,K)|0,i=(i=i+Math.imul(b,Y)|0)+Math.imul(g,K)|0,a=a+Math.imul(g,Y)|0,r=r+Math.imul(p,H)|0,i=(i=i+Math.imul(p,G)|0)+Math.imul(m,H)|0,a=a+Math.imul(m,G)|0;var ve=(c+(r=r+Math.imul(f,X)|0)|0)+((8191&(i=(i=i+Math.imul(f,J)|0)+Math.imul(d,X)|0))<<13)|0;c=((a=a+Math.imul(d,J)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(E,z),i=(i=Math.imul(E,$))+Math.imul(k,z)|0,a=Math.imul(k,$),r=r+Math.imul(w,K)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(_,K)|0,a=a+Math.imul(_,Y)|0,r=r+Math.imul(b,H)|0,i=(i=i+Math.imul(b,G)|0)+Math.imul(g,H)|0,a=a+Math.imul(g,G)|0,r=r+Math.imul(p,X)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(m,X)|0,a=a+Math.imul(m,J)|0;var we=(c+(r=r+Math.imul(f,Q)|0)|0)+((8191&(i=(i=i+Math.imul(f,ee)|0)+Math.imul(d,Q)|0))<<13)|0;c=((a=a+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(T,z),i=(i=Math.imul(T,$))+Math.imul(M,z)|0,a=Math.imul(M,$),r=r+Math.imul(E,K)|0,i=(i=i+Math.imul(E,Y)|0)+Math.imul(k,K)|0,a=a+Math.imul(k,Y)|0,r=r+Math.imul(w,H)|0,i=(i=i+Math.imul(w,G)|0)+Math.imul(_,H)|0,a=a+Math.imul(_,G)|0,r=r+Math.imul(b,X)|0,i=(i=i+Math.imul(b,J)|0)+Math.imul(g,X)|0,a=a+Math.imul(g,J)|0,r=r+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(m,Q)|0,a=a+Math.imul(m,ee)|0;var _e=(c+(r=r+Math.imul(f,ne)|0)|0)+((8191&(i=(i=i+Math.imul(f,re)|0)+Math.imul(d,ne)|0))<<13)|0;c=((a=a+Math.imul(d,re)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(A,z),i=(i=Math.imul(A,$))+Math.imul(N,z)|0,a=Math.imul(N,$),r=r+Math.imul(T,K)|0,i=(i=i+Math.imul(T,Y)|0)+Math.imul(M,K)|0,a=a+Math.imul(M,Y)|0,r=r+Math.imul(E,H)|0,i=(i=i+Math.imul(E,G)|0)+Math.imul(k,H)|0,a=a+Math.imul(k,G)|0,r=r+Math.imul(w,X)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,X)|0,a=a+Math.imul(_,J)|0,r=r+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,ee)|0)+Math.imul(g,Q)|0,a=a+Math.imul(g,ee)|0,r=r+Math.imul(p,ne)|0,i=(i=i+Math.imul(p,re)|0)+Math.imul(m,ne)|0,a=a+Math.imul(m,re)|0;var Se=(c+(r=r+Math.imul(f,ae)|0)|0)+((8191&(i=(i=i+Math.imul(f,se)|0)+Math.imul(d,ae)|0))<<13)|0;c=((a=a+Math.imul(d,se)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(O,z),i=(i=Math.imul(O,$))+Math.imul(R,z)|0,a=Math.imul(R,$),r=r+Math.imul(A,K)|0,i=(i=i+Math.imul(A,Y)|0)+Math.imul(N,K)|0,a=a+Math.imul(N,Y)|0,r=r+Math.imul(T,H)|0,i=(i=i+Math.imul(T,G)|0)+Math.imul(M,H)|0,a=a+Math.imul(M,G)|0,r=r+Math.imul(E,X)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(k,X)|0,a=a+Math.imul(k,J)|0,r=r+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,a=a+Math.imul(_,ee)|0,r=r+Math.imul(b,ne)|0,i=(i=i+Math.imul(b,re)|0)+Math.imul(g,ne)|0,a=a+Math.imul(g,re)|0,r=r+Math.imul(p,ae)|0,i=(i=i+Math.imul(p,se)|0)+Math.imul(m,ae)|0,a=a+Math.imul(m,se)|0;var Ee=(c+(r=r+Math.imul(f,ue)|0)|0)+((8191&(i=(i=i+Math.imul(f,ce)|0)+Math.imul(d,ue)|0))<<13)|0;c=((a=a+Math.imul(d,ce)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(B,z),i=(i=Math.imul(B,$))+Math.imul(F,z)|0,a=Math.imul(F,$),r=r+Math.imul(O,K)|0,i=(i=i+Math.imul(O,Y)|0)+Math.imul(R,K)|0,a=a+Math.imul(R,Y)|0,r=r+Math.imul(A,H)|0,i=(i=i+Math.imul(A,G)|0)+Math.imul(N,H)|0,a=a+Math.imul(N,G)|0,r=r+Math.imul(T,X)|0,i=(i=i+Math.imul(T,J)|0)+Math.imul(M,X)|0,a=a+Math.imul(M,J)|0,r=r+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(k,Q)|0,a=a+Math.imul(k,ee)|0,r=r+Math.imul(w,ne)|0,i=(i=i+Math.imul(w,re)|0)+Math.imul(_,ne)|0,a=a+Math.imul(_,re)|0,r=r+Math.imul(b,ae)|0,i=(i=i+Math.imul(b,se)|0)+Math.imul(g,ae)|0,a=a+Math.imul(g,se)|0,r=r+Math.imul(p,ue)|0,i=(i=i+Math.imul(p,ce)|0)+Math.imul(m,ue)|0,a=a+Math.imul(m,ce)|0;var ke=(c+(r=r+Math.imul(f,fe)|0)|0)+((8191&(i=(i=i+Math.imul(f,de)|0)+Math.imul(d,fe)|0))<<13)|0;c=((a=a+Math.imul(d,de)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(j,z),i=(i=Math.imul(j,$))+Math.imul(D,z)|0,a=Math.imul(D,$),r=r+Math.imul(B,K)|0,i=(i=i+Math.imul(B,Y)|0)+Math.imul(F,K)|0,a=a+Math.imul(F,Y)|0,r=r+Math.imul(O,H)|0,i=(i=i+Math.imul(O,G)|0)+Math.imul(R,H)|0,a=a+Math.imul(R,G)|0,r=r+Math.imul(A,X)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(N,X)|0,a=a+Math.imul(N,J)|0,r=r+Math.imul(T,Q)|0,i=(i=i+Math.imul(T,ee)|0)+Math.imul(M,Q)|0,a=a+Math.imul(M,ee)|0,r=r+Math.imul(E,ne)|0,i=(i=i+Math.imul(E,re)|0)+Math.imul(k,ne)|0,a=a+Math.imul(k,re)|0,r=r+Math.imul(w,ae)|0,i=(i=i+Math.imul(w,se)|0)+Math.imul(_,ae)|0,a=a+Math.imul(_,se)|0,r=r+Math.imul(b,ue)|0,i=(i=i+Math.imul(b,ce)|0)+Math.imul(g,ue)|0,a=a+Math.imul(g,ce)|0,r=r+Math.imul(p,fe)|0,i=(i=i+Math.imul(p,de)|0)+Math.imul(m,fe)|0,a=a+Math.imul(m,de)|0;var xe=(c+(r=r+Math.imul(f,pe)|0)|0)+((8191&(i=(i=i+Math.imul(f,me)|0)+Math.imul(d,pe)|0))<<13)|0;c=((a=a+Math.imul(d,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(j,K),i=(i=Math.imul(j,Y))+Math.imul(D,K)|0,a=Math.imul(D,Y),r=r+Math.imul(B,H)|0,i=(i=i+Math.imul(B,G)|0)+Math.imul(F,H)|0,a=a+Math.imul(F,G)|0,r=r+Math.imul(O,X)|0,i=(i=i+Math.imul(O,J)|0)+Math.imul(R,X)|0,a=a+Math.imul(R,J)|0,r=r+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(N,Q)|0,a=a+Math.imul(N,ee)|0,r=r+Math.imul(T,ne)|0,i=(i=i+Math.imul(T,re)|0)+Math.imul(M,ne)|0,a=a+Math.imul(M,re)|0,r=r+Math.imul(E,ae)|0,i=(i=i+Math.imul(E,se)|0)+Math.imul(k,ae)|0,a=a+Math.imul(k,se)|0,r=r+Math.imul(w,ue)|0,i=(i=i+Math.imul(w,ce)|0)+Math.imul(_,ue)|0,a=a+Math.imul(_,ce)|0,r=r+Math.imul(b,fe)|0,i=(i=i+Math.imul(b,de)|0)+Math.imul(g,fe)|0,a=a+Math.imul(g,de)|0;var Te=(c+(r=r+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;c=((a=a+Math.imul(m,me)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(j,H),i=(i=Math.imul(j,G))+Math.imul(D,H)|0,a=Math.imul(D,G),r=r+Math.imul(B,X)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(F,X)|0,a=a+Math.imul(F,J)|0,r=r+Math.imul(O,Q)|0,i=(i=i+Math.imul(O,ee)|0)+Math.imul(R,Q)|0,a=a+Math.imul(R,ee)|0,r=r+Math.imul(A,ne)|0,i=(i=i+Math.imul(A,re)|0)+Math.imul(N,ne)|0,a=a+Math.imul(N,re)|0,r=r+Math.imul(T,ae)|0,i=(i=i+Math.imul(T,se)|0)+Math.imul(M,ae)|0,a=a+Math.imul(M,se)|0,r=r+Math.imul(E,ue)|0,i=(i=i+Math.imul(E,ce)|0)+Math.imul(k,ue)|0,a=a+Math.imul(k,ce)|0,r=r+Math.imul(w,fe)|0,i=(i=i+Math.imul(w,de)|0)+Math.imul(_,fe)|0,a=a+Math.imul(_,de)|0;var Me=(c+(r=r+Math.imul(b,pe)|0)|0)+((8191&(i=(i=i+Math.imul(b,me)|0)+Math.imul(g,pe)|0))<<13)|0;c=((a=a+Math.imul(g,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(j,X),i=(i=Math.imul(j,J))+Math.imul(D,X)|0,a=Math.imul(D,J),r=r+Math.imul(B,Q)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(F,Q)|0,a=a+Math.imul(F,ee)|0,r=r+Math.imul(O,ne)|0,i=(i=i+Math.imul(O,re)|0)+Math.imul(R,ne)|0,a=a+Math.imul(R,re)|0,r=r+Math.imul(A,ae)|0,i=(i=i+Math.imul(A,se)|0)+Math.imul(N,ae)|0,a=a+Math.imul(N,se)|0,r=r+Math.imul(T,ue)|0,i=(i=i+Math.imul(T,ce)|0)+Math.imul(M,ue)|0,a=a+Math.imul(M,ce)|0,r=r+Math.imul(E,fe)|0,i=(i=i+Math.imul(E,de)|0)+Math.imul(k,fe)|0,a=a+Math.imul(k,de)|0;var Ie=(c+(r=r+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,me)|0)+Math.imul(_,pe)|0))<<13)|0;c=((a=a+Math.imul(_,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(j,Q),i=(i=Math.imul(j,ee))+Math.imul(D,Q)|0,a=Math.imul(D,ee),r=r+Math.imul(B,ne)|0,i=(i=i+Math.imul(B,re)|0)+Math.imul(F,ne)|0,a=a+Math.imul(F,re)|0,r=r+Math.imul(O,ae)|0,i=(i=i+Math.imul(O,se)|0)+Math.imul(R,ae)|0,a=a+Math.imul(R,se)|0,r=r+Math.imul(A,ue)|0,i=(i=i+Math.imul(A,ce)|0)+Math.imul(N,ue)|0,a=a+Math.imul(N,ce)|0,r=r+Math.imul(T,fe)|0,i=(i=i+Math.imul(T,de)|0)+Math.imul(M,fe)|0,a=a+Math.imul(M,de)|0;var Ae=(c+(r=r+Math.imul(E,pe)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(k,pe)|0))<<13)|0;c=((a=a+Math.imul(k,me)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(j,ne),i=(i=Math.imul(j,re))+Math.imul(D,ne)|0,a=Math.imul(D,re),r=r+Math.imul(B,ae)|0,i=(i=i+Math.imul(B,se)|0)+Math.imul(F,ae)|0,a=a+Math.imul(F,se)|0,r=r+Math.imul(O,ue)|0,i=(i=i+Math.imul(O,ce)|0)+Math.imul(R,ue)|0,a=a+Math.imul(R,ce)|0,r=r+Math.imul(A,fe)|0,i=(i=i+Math.imul(A,de)|0)+Math.imul(N,fe)|0,a=a+Math.imul(N,de)|0;var Ne=(c+(r=r+Math.imul(T,pe)|0)|0)+((8191&(i=(i=i+Math.imul(T,me)|0)+Math.imul(M,pe)|0))<<13)|0;c=((a=a+Math.imul(M,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(j,ae),i=(i=Math.imul(j,se))+Math.imul(D,ae)|0,a=Math.imul(D,se),r=r+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,ce)|0)+Math.imul(F,ue)|0,a=a+Math.imul(F,ce)|0,r=r+Math.imul(O,fe)|0,i=(i=i+Math.imul(O,de)|0)+Math.imul(R,fe)|0,a=a+Math.imul(R,de)|0;var Pe=(c+(r=r+Math.imul(A,pe)|0)|0)+((8191&(i=(i=i+Math.imul(A,me)|0)+Math.imul(N,pe)|0))<<13)|0;c=((a=a+Math.imul(N,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,r=Math.imul(j,ue),i=(i=Math.imul(j,ce))+Math.imul(D,ue)|0,a=Math.imul(D,ce),r=r+Math.imul(B,fe)|0,i=(i=i+Math.imul(B,de)|0)+Math.imul(F,fe)|0,a=a+Math.imul(F,de)|0;var Oe=(c+(r=r+Math.imul(O,pe)|0)|0)+((8191&(i=(i=i+Math.imul(O,me)|0)+Math.imul(R,pe)|0))<<13)|0;c=((a=a+Math.imul(R,me)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(j,fe),i=(i=Math.imul(j,de))+Math.imul(D,fe)|0,a=Math.imul(D,de);var Re=(c+(r=r+Math.imul(B,pe)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(F,pe)|0))<<13)|0;c=((a=a+Math.imul(F,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863;var Ce=(c+(r=Math.imul(j,pe))|0)+((8191&(i=(i=Math.imul(j,me))+Math.imul(D,pe)|0))<<13)|0;return c=((a=Math.imul(D,me))+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,u[0]=ye,u[1]=be,u[2]=ge,u[3]=ve,u[4]=we,u[5]=_e,u[6]=Se,u[7]=Ee,u[8]=ke,u[9]=xe,u[10]=Te,u[11]=Me,u[12]=Ie,u[13]=Ae,u[14]=Ne,u[15]=Pe,u[16]=Oe,u[17]=Re,u[18]=Ce,0!==c&&(u[19]=c,n.length++),n};function m(e,t,n){return(new y).mulp(e,t,n)}function y(e,t){this.x=e,this.y=t}Math.imul||(p=h),a.prototype.mulTo=function(e,t){var n,r=this.length+e.length;return n=10===this.length&&10===e.length?p(this,e,t):r<63?h(this,e,t):r<1024?function(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,a=0;a>>26)|0)>>>26,s&=67108863}n.words[a]=o,r=s,s=i}return 0!==r?n.words[a]=r:n.length--,n.strip()}(this,e,t):m(this,e,t),n},y.prototype.makeRBT=function(e){for(var t=new Array(e),n=a.prototype._countBits(e)-1,r=0;r>=1;return r},y.prototype.permute=function(e,t,n,r,i,a){for(var s=0;s>>=1)i++;return 1<>>=13,n[2*s+1]=8191&a,a>>>=13;for(s=2*t;s>=26,t+=i/67108864|0,t+=a>>>26,this.words[n]=67108863&a}return 0!==t&&(this.words[n]=t,this.length++),this.length=0===e?1:this.length,this},a.prototype.muln=function(e){return this.clone().imuln(e)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n>>i}return t}(e);if(0===t.length)return new a(1);for(var n=this,r=0;r=0);var t,n=e%26,i=(e-n)/26,a=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t>>26-n}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 a=e%26,s=Math.min((e-a)/26,this.length),o=67108863^67108863>>>a<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-a|f>>>a,l=f&o}return u&&0!==l&&(u.words[u.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},a.prototype.shln=function(e){return this.clone().ishln(e)},a.prototype.ushln=function(e){return this.clone().iushln(e)},a.prototype.shrn=function(e){return this.clone().ishrn(e)},a.prototype.ushrn=function(e){return this.clone().iushrn(e)},a.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,i=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,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},a.prototype.isubn=function(e){if(r("number"==typeof e),r(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+n]=67108863&a}for(;i>26,this.words[i+n]=67108863&a;if(0===o)return this.strip();for(r(-1===o),o=0,i=0;i>26,this.words[i]=67108863&a;return this.negative=1,this.strip()},a.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),i=e,s=0|i.words[i.length-1];0!=(n=26-this._countBits(s))&&(i=i.ushln(n),r.iushln(n),s=0|i.words[i.length-1]);var o,u=r.length-i.length;if("mod"!==t){(o=new a(null)).length=u+1,o.words=new Array(o.length);for(var c=0;c=0;f--){var d=67108864*(0|r.words[i.length+f])+(0|r.words[i.length+f-1]);for(d=Math.min(d/s|0,67108863),r._ishlnsubmul(i,d,f);0!==r.negative;)d--,r.negative=0,r._ishlnsubmul(i,1,f),r.isZero()||(r.negative^=1);o&&(o.words[f]=d)}return o&&o.strip(),r.strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:o||null,mod:r}},a.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===e.negative?(o=this.neg().divmod(e,t),"mod"!==t&&(i=o.div.neg()),"div"!==t&&(s=o.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:i,mod:s}):0===this.negative&&0!==e.negative?(o=this.divmod(e.neg(),t),"mod"!==t&&(i=o.div.neg()),{div:i,mod:o.mod}):0!==(this.negative&e.negative)?(o=this.neg().divmod(e.neg(),t),"div"!==t&&(s=o.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:o.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new a(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new a(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new a(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,s,o},a.prototype.div=function(e){return this.divmod(e,"div",!1).div},a.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},a.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},a.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),a=n.cmp(r);return a<0||1===i&&0===a?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},a.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,i=this.length-1;i>=0;i--)n=(t*n+(0|this.words[i]))%e;return n},a.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var i=(0|this.words[n])+67108864*t;this.words[n]=i/e|0,t=i%e}return this.strip()},a.prototype.divn=function(e){return this.clone().idivn(e)},a.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new a(1),s=new a(0),o=new a(0),u=new a(1),c=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++c;for(var l=n.clone(),f=t.clone();!t.isZero();){for(var d=0,h=1;0===(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,m=1;0===(n.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(o.isOdd()||u.isOdd())&&(o.iadd(l),u.isub(f)),o.iushrn(1),u.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(o),s.isub(u)):(n.isub(t),o.isub(i),u.isub(s))}return{a:o,b:u,gcd:n.iushln(c)}},a.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,s=new a(1),o=new a(0),u=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var c=0,l=1;0===(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;0===(n.words[0]&d)&&f<26;++f,d<<=1);if(f>0)for(n.iushrn(f);f-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(o)):(n.isub(t),o.isub(s))}return(i=0===t.cmpn(1)?s:o).cmpn(0)<0&&i.iadd(e),i},a.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var a=t;t=n,n=a}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},a.prototype.invm=function(e){return this.egcd(e).a.umod(e)},a.prototype.isEven=function(){return!(1&this.words[0])},a.prototype.isOdd=function(){return!(1&~this.words[0])},a.prototype.andln=function(e){return this.words[0]&e},a.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<>>26,o&=67108863,this.words[s]=o}return 0!==a&&(this.words[s]=a,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:ie.length)return 1;if(this.length=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){ri&&(t=1);break}}return t},a.prototype.gtn=function(e){return 1===this.cmpn(e)},a.prototype.gt=function(e){return 1===this.cmp(e)},a.prototype.gten=function(e){return this.cmpn(e)>=0},a.prototype.gte=function(e){return this.cmp(e)>=0},a.prototype.ltn=function(e){return-1===this.cmpn(e)},a.prototype.lt=function(e){return-1===this.cmp(e)},a.prototype.lten=function(e){return this.cmpn(e)<=0},a.prototype.lte=function(e){return this.cmp(e)<=0},a.prototype.eqn=function(e){return 0===this.cmpn(e)},a.prototype.eq=function(e){return 0===this.cmp(e)},a.red=function(e){return new E(e)},a.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},a.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(e){return this.red=e,this},a.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},a.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},a.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},a.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},a.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},a.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},a.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},a.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},a.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(e){return r(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 g(e,t){this.name=e,this.p=new a(t,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function E(e){if("string"==typeof e){var t=a._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function k(e){E.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(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)}g.prototype._tmp=function(){var e=new a(null);return e.words=new Array(Math.ceil(this.n/13)),e},g.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},g.prototype.split=function(e,t){e.iushrn(this.n,0,t)},g.prototype.imulK=function(e){return e.imul(this.k)},i(v,g),v.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i>>22,a=s}a>>>=22,e.words[i-10]=a,0===a&&e.length>10?e.length-=10:e.length-=9},v.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},a._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new v;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new S}return b[e]=t,t},E.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},E.prototype._verify2=function(e,t){r(0===(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},E.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},E.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},E.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},E.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},E.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},E.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},E.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},E.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},E.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},E.prototype.isqr=function(e){return this.imul(e,e.clone())},E.prototype.sqr=function(e){return this.mul(e,e)},E.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new a(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var o=new a(1).toRed(this),u=o.redNeg(),c=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new a(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(o);){for(var m=h,y=0;0!==m.cmp(o);y++)m=m.redSqr();r(y=0;r--){for(var c=t.words[r],l=u-1;l>=0;l--){var f=c>>l&1;i!==n[0]&&(i=this.sqr(i)),0!==f||0!==s?(s<<=1,s|=f,(4===++o||0===r&&0===l)&&(i=this.mul(i,n[s]),o=0,s=0)):o=0}u=26}return i},E.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},E.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new k(e)},i(k,E),k.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},k.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},k.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},k.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new a(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).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)},k.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=n.nmd(e),this)},23179(e,t,n){"use strict";n.d(t,{_:()=>a});var r=n(14583),i=n(25408);function a(e,t="wei"){return(0,i.X)(e,r.sz[t])}},23189(e){"use strict";e.exports={rE:"6.6.1"}},23215(e,t,n){"use strict";var r=n(97103),i=n(79601),a=r.rotl32,s=r.sum32,o=r.sum32_3,u=r.sum32_4,c=i.BlockHash;function l(){if(!(this instanceof l))return new l;c.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function f(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function d(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function h(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}r.inherits(l,c),t.ripemd160=l,l.blockSize=512,l.outSize=160,l.hmacStrength=192,l.padLength=64,l.prototype._update=function(e,t){for(var n=this.h[0],r=this.h[1],i=this.h[2],c=this.h[3],l=this.h[4],g=n,v=r,w=i,_=c,S=l,E=0;E<80;E++){var k=s(a(u(n,f(E,r,i,c),e[p[E]+t],d(E)),y[E]),l);n=l,l=c,c=a(i,10),i=r,r=k,k=s(a(u(g,f(79-E,v,w,_),e[m[E]+t],h(E)),b[E]),S),g=S,S=_,_=a(w,10),w=v,v=k}k=o(this.h[1],i,_),this.h[1]=o(this.h[2],c,S),this.h[2]=o(this.h[3],l,g),this.h[3]=o(this.h[4],n,v),this.h[4]=o(this.h[0],r,w),this.h[0]=k},l.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"little"):r.split32(this.h,"little")};var p=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],m=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],y=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],b=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},23343(e,t,n){"use strict";n.d(t,{J_:()=>s,SC:()=>i,Z4:()=>a,jV:()=>c,vX:()=>o});var r=n(12717);const i=(e,t)=>{switch(t._tag){case"StringKeyword":case"TemplateLiteral":return Object.keys(e);case"SymbolKeyword":return Object.getOwnPropertySymbols(e);case"Refinement":return i(e,t.from)}},a=e=>{let t,n=!1;return()=>(n||(t=e(),n=!0),t)},s=e=>Array.isArray(e),o=e=>!Array.isArray(e),u=e=>`[${r._r(e)}]`,c=e=>s(e)?e.map(u).join(""):u(e)},23427(e,t,n){"use strict";n.d(t,{p:()=>s});var r=n(61355),i=n(85327),a=n(77411);function s(e,{docsPath:t,...n}){const s=(()=>{const t=(0,a.l)(e,n);return t instanceof r.RM?e:t})();return new i.$s(s,{docsPath:t,...n})}},23619(e,t,n){"use strict";n.d(t,{g:()=>a});var r=n(14583),i=n(25408);function a(e,t="wei"){return(0,i.X)(e,r.eL[t])}},23777(e,t,n){"use strict";n.d(t,{sc:()=>f});var r=n(40906);function i(e,t,n){return e&t^~e&n}function a(e,t,n){return e&t^e&n^t&n}class s extends r.Vw{constructor(e,t,n,i){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=i,this.buffer=new Uint8Array(e),this.view=(0,r.O8)(this.buffer)}update(e){(0,r.CC)(this),e=(0,r.ZJ)(e),(0,r.DO)(e);const{view:t,buffer:n,blockLen:i}=this,a=e.length;for(let s=0;si-s&&(this.process(n,0),s=0);for(let e=s;e>i&a),o=Number(n&a),u=r?4:0,c=r?0:4;e.setUint32(t+u,s,r),e.setUint32(t+c,o,r)}(n,i-8,BigInt(8*this.length),a),this.process(n,0);const o=(0,r.O8)(e),u=this.outputLen;if(u%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const c=u/4,l=this.get();if(c>l.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e>>3,a=(0,r.Ow)(n,17)^(0,r.Ow)(n,19)^n>>>10;c[e]=a+c[e-7]+i+c[e-16]|0}let{A:n,B:s,C:o,D:l,E:f,F:d,G:h,H:p}=this;for(let e=0;e<64;e++){const t=p+((0,r.Ow)(f,6)^(0,r.Ow)(f,11)^(0,r.Ow)(f,25))+i(f,d,h)+u[e]+c[e]|0,m=((0,r.Ow)(n,2)^(0,r.Ow)(n,13)^(0,r.Ow)(n,22))+a(n,s,o)|0;p=h,h=d,d=f,f=l+t|0,l=o,o=s,s=n,n=t+m|0}n=n+this.A|0,s=s+this.B|0,o=o+this.C|0,l=l+this.D|0,f=f+this.E|0,d=d+this.F|0,h=h+this.G|0,p=p+this.H|0,this.set(n,s,o,l,f,d,h,p)}roundClean(){(0,r.uH)(c)}destroy(){this.set(0,0,0,0,0,0,0,0),(0,r.uH)(this.buffer)}}const f=(0,r.qj)(()=>new l)},24002(e){"use strict";e.exports=URIError},24414(e,t,n){"use strict";var r=n(72258).Buffer,i=n(74393),a=n(24554).ec,s=n(45775),o=n(59824);function u(e,t){if(e.cmpn(0)<=0)throw new Error("invalid sig");if(e.cmp(t)>=0)throw new Error("invalid sig")}e.exports=function(e,t,n,c,l){var f=s(n);if("ec"===f.type){if("ecdsa"!==c&&"ecdsa/rsa"!==c)throw new Error("wrong public key type");return function(e,t,n){var r=o[n.data.algorithm.curve.join(".")];if(!r)throw new Error("unknown curve "+n.data.algorithm.curve.join("."));var i=new a(r),s=n.data.subjectPrivateKey.data;return i.verify(t,e,s)}(e,t,f)}if("dsa"===f.type){if("dsa"!==c)throw new Error("wrong public key type");return function(e,t,n){var r=n.data.p,a=n.data.q,o=n.data.g,c=n.data.pub_key,l=s.signature.decode(e,"der"),f=l.s,d=l.r;u(f,a),u(d,a);var h=i.mont(r),p=f.invm(a);return 0===o.toRed(h).redPow(new i(t).mul(p).mod(a)).fromRed().mul(c.toRed(h).redPow(d.mul(p).mod(a)).fromRed()).mod(r).mod(a).cmp(d)}(e,t,f)}if("rsa"!==c&&"ecdsa/rsa"!==c)throw new Error("wrong public key type");t=r.concat([l,t]);for(var d=f.modulus.byteLength(),h=[1],p=0;t.length+h.length+2s});var r=n(45264),i=n(58038),a=n(81127);function s({r:e,s:t,to:n="hex",v:s,yParity:o}){const u=(()=>{if(0===o||1===o)return o;if(s&&(27n===s||28n===s||s>=35n))return s%2n==0n?1:0;throw new Error("Invalid `v` or `yParity` value")})(),c=`0x${new r.secp256k1.Signature((0,i.uU)(e),(0,i.uU)(t)).toCompactHex()}${0===u?"1b":"1c"}`;return"hex"===n?c:(0,a.aT)(c)}},24852(e,t,n){"use strict";var r,i=n(42649);function a(e,t,n){return(t=function(e){var t=function(e){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s=n(60911),o=Symbol("lastResolve"),u=Symbol("lastReject"),c=Symbol("error"),l=Symbol("ended"),f=Symbol("lastPromise"),d=Symbol("handlePromise"),h=Symbol("stream");function p(e,t){return{value:e,done:t}}function m(e){var t=e[o];if(null!==t){var n=e[h].read();null!==n&&(e[f]=null,e[o]=null,e[u]=null,t(p(n,!1)))}}function y(e){i.nextTick(m,e)}var b=Object.getPrototypeOf(function(){}),g=Object.setPrototypeOf((a(r={get stream(){return this[h]},next:function(){var e=this,t=this[c];if(null!==t)return Promise.reject(t);if(this[l])return Promise.resolve(p(void 0,!0));if(this[h].destroyed)return new Promise(function(t,n){i.nextTick(function(){e[c]?n(e[c]):t(p(void 0,!0))})});var n,r=this[f];if(r)n=new Promise(function(e,t){return function(n,r){e.then(function(){t[l]?n(p(void 0,!0)):t[d](n,r)},r)}}(r,this));else{var a=this[h].read();if(null!==a)return Promise.resolve(p(a,!1));n=new Promise(this[d])}return this[f]=n,n}},Symbol.asyncIterator,function(){return this}),a(r,"return",function(){var e=this;return new Promise(function(t,n){e[h].destroy(null,function(e){e?n(e):t(p(void 0,!0))})})}),r),b);e.exports=function(e){var t,n=Object.create(g,(a(t={},h,{value:e,writable:!0}),a(t,o,{value:null,writable:!0}),a(t,u,{value:null,writable:!0}),a(t,c,{value:null,writable:!0}),a(t,l,{value:e._readableState.endEmitted,writable:!0}),a(t,d,{value:function(e,t){var r=n[h].read();r?(n[f]=null,n[o]=null,n[u]=null,e(p(r,!1))):(n[o]=e,n[u]=t)},writable:!0}),t));return n[f]=null,s(e,function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=n[u];return null!==t&&(n[f]=null,n[o]=null,n[u]=null,t(e)),void(n[c]=e)}var r=n[o];null!==r&&(n[f]=null,n[o]=null,n[u]=null,r(p(void 0,!0))),n[l]=!0}),e.on("readable",y.bind(null,n)),n}},25408(e,t,n){"use strict";n.d(t,{X:()=>a});var r=n(2273);class i extends r.C{constructor({value:e}){super(`Number \`${e}\` is not a valid decimal number.`,{name:"InvalidDecimalNumberError"})}}function a(e,t){if(!/^(-?)([0-9]*)\.?([0-9]*)$/.test(e))throw new i({value:e});let[n,r="0"]=e.split(".");const a=n.startsWith("-");if(a&&(n=n.slice(1)),r=r.replace(/(0+)$/,""),0===t)1===Math.round(Number(`.${r}`))&&(n=`${BigInt(n)+1n}`),r="";else if(r.length>t){const[e,i,a]=[r.slice(0,t-1),r.slice(t-1,t),r.slice(t)],s=Math.round(Number(`${i}.${a}`));r=s>9?`${BigInt(e)+BigInt(1)}0`.padStart(e.length+1,"0"):`${e}${s}`,r.length>t&&(r=r.slice(1),n=`${BigInt(n)+1n}`),r=r.slice(0,t)}else r=r.padEnd(t,"0");return BigInt(`${a?"-":""}${n}${r}`)}},25899(e,t,n){"use strict";n.d(t,{d:()=>s});var r=n(91042),i=n(61355),a=n(77411);function s(e,{docsPath:t,...n}){const s=(()=>{const t=(0,a.l)(e,n);return t instanceof i.RM?e:t})();return new r.zX(s,{docsPath:t,...n})}},26015(e,t,n){"use strict";function r(e,t,n){const r=e[t.name];if("function"==typeof r)return r;const i=e[n];return"function"==typeof i?i:n=>t(e,n)}n.d(t,{T:()=>r})},26423(e,t,n){"use strict";var r=n(97103),i=n(38710);function a(){if(!(this instanceof a))return new a;i.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}r.inherits(a,i),e.exports=a,a.blockSize=512,a.outSize=224,a.hmacStrength=192,a.padLength=64,a.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,7),"big"):r.split32(this.h.slice(0,7),"big")}},26480(e,t,n){"use strict";n.d(t,{T:()=>f});var r=n(22420),i=n(4667);const a=761855;var s=n(80144),o=n(7411),u=n(85501),c=n(81127),l=n(75209);function f(e){const{data:t,kzg:n,to:f}=e,d=e.blobs??function(e){const t=e.to??("string"==typeof e.data?"hex":"bytes"),n="string"==typeof e.data?(0,c.aT)(e.data):e.data,r=(0,u.E)(n);if(!r)throw new s.zF;if(r>a)throw new s.iq({maxSize:a,size:r});const i=[];let f=!0,d=0;for(;f;){const e=(0,o.l)(new Uint8Array(131072));let t=0;for(;t<4096;){const r=n.slice(d,d+31);if(e.pushByte(0),e.pushBytes(r),r.length<31){e.pushByte(128),f=!1;break}t++,d+=31}i.push(e)}return"bytes"===t?i.map(e=>e.bytes):i.map(e=>(0,l.My)(e.bytes))}({data:t,to:f}),h=e.commitments??(0,r.S)({blobs:d,kzg:n,to:f}),p=e.proofs??(0,i.t)({blobs:d,commitments:h,kzg:n,to:f}),m=[];for(let e=0;ew});var r=n(47586),i=n(40906);const a=BigInt(0),s=BigInt(1),o=BigInt(2),u=BigInt(7),c=BigInt(256),l=BigInt(113),f=[],d=[],h=[];for(let e=0,t=s,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],f.push(2*(5*r+n)),d.push((e+1)*(e+2)/2%64);let i=a;for(let e=0;e<7;e++)t=(t<>u)*l)%c,t&o&&(i^=s<<(s<n>32?(0,r.WM)(e,t,n):(0,r.P5)(e,t,n),g=(e,t,n)=>n>32?(0,r.im)(e,t,n):(0,r.B4)(e,t,n);class v extends i.Vw{constructor(e,t,n,r=!1,a=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=r,this.rounds=a,(0,i.Fe)(n),!(0=n&&this.keccak();const a=Math.min(n-this.posOut,i-r);e.set(t.subarray(this.posOut,this.posOut+a),r),this.posOut+=a,r+=a}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return(0,i.Fe)(e),this.xofInto(new Uint8Array(e))}digestInto(e){if((0,i.Ht)(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,(0,i.uH)(this.state)}_cloneInto(e){const{blockLen:t,suffix:n,outputLen:r,rounds:i,enableXOF:a}=this;return e||(e=new v(t,n,r,a,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=n,e.outputLen=r,e.enableXOF=a,e.destroyed=this.destroyed,e}}const w=(()=>{return e=1,t=136,n=32,(0,i.qj)(()=>new v(t,e,n));var e,t,n})()},27286(e,t,n){var r=t;r.der=n(99701),r.pem=n(52004)},27825(e,t,n){"use strict";e.exports=l;var r=n(61085).F,i=r.ERR_METHOD_NOT_IMPLEMENTED,a=r.ERR_MULTIPLE_CALLBACK,s=r.ERR_TRANSFORM_ALREADY_TRANSFORMING,o=r.ERR_TRANSFORM_WITH_LENGTH_0,u=n(92783);function c(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(null===r)return this.emit("error",new a);n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.lengthh,BC:()=>v,u2:()=>w,gR:()=>K,Ou:()=>$,C:()=>H,Qq:()=>ce,gv:()=>R,Ie:()=>X,D8:()=>y,x1:()=>te,i8:()=>F,g9:()=>C,Uk:()=>L,Kl:()=>B,qI:()=>Q,Bq:()=>ee,Ts:()=>m,bt:()=>oe,Yz:()=>re,d5:()=>M,v4:()=>I,cy:()=>_,EI:()=>S,iI:()=>E,fj:()=>le,HV:()=>A,Rm:()=>N,Y6:()=>p,Tj:()=>Z,nc:()=>b,of:()=>J,rT:()=>ne,Hs:()=>g,TS:()=>ie,XK:()=>ae,BE:()=>j,di:()=>D,Ln:()=>O,Rx:()=>P,t8:()=>se,KC:()=>W,$v:()=>T,yU:()=>U});var r=n(84468),i=n(72529),a=n(91893),s=n(59329);const o=e=>e.length>0;var u=n(36708),c=n(82884);const l=(0,s.XY)(2,(e,t)=>{let n=0;for(const r of e){const e=t(r,n);if((0,c.Lm)(e)){if(e)return u.zN(r)}else if(u.Ru(e))return e;n++}return u.dv()});Symbol.iterator;var f=n(4909);Object.fromEntries;const d=(...e)=>e,h=(a.PV,f.PV,e=>new Array(e)),p=(0,s.XY)(2,(e,t)=>{const n=Math.max(1,Math.floor(e)),r=new Array(n);for(let e=0;eArray.isArray(e)?e:Array.from(e),y=e=>Array.isArray(e)?e:[e],b=(u.$r,(0,s.XY)(2,(e,{onEmpty:t,onNonEmpty:n})=>E(e)?n(I(e),P(e)):t())),g=(0,s.XY)(2,(e,t)=>[t,...e]),v=(0,s.XY)(2,(e,t)=>[...e,t]),w=(0,s.XY)(2,(e,t)=>m(e).concat(m(t))),_=Array.isArray,S=o,E=o,k=(e,t)=>e<0||e>=t.length,x=(0,s.XY)(2,(e,t)=>{const n=Math.floor(t);return k(n,e)?u.dv():u.zN(e[n])}),T=(0,s.XY)(2,(e,t)=>{const n=Math.floor(t);if(k(n,e))throw new Error(`Index ${n} out of bounds`);return e[n]}),M=x(0),I=T(0),A=e=>E(e)?u.zN(N(e)):u.dv(),N=e=>e[e.length-1],P=e=>e.slice(1),O=(0,s.XY)(2,(e,t)=>Y(e,((e,t)=>{let n=0;for(const r of e){if(!t(r,n))break;n++}return n})(e,t))),R=(0,s.XY)(2,(e,t)=>{const n=m(e);return n.slice((r=t,i=n,Math.floor(Math.min(Math.max(0,r),i.length))),n.length);var r,i}),C=(0,s.XY)(2,(e,t)=>{let n=0;for(const r of e){if(t(r,n))return u.zN(n);n++}return u.dv()}),B=(0,s.XY)(2,(e,t)=>{const n=m(e);for(let e=n.length-1;e>=0;e--)if(t(n[e],e))return u.zN(e);return u.dv()}),F=l,L=(0,s.XY)(2,(e,t)=>{const n=m(e);for(let e=n.length-1;e>=0;e--){const r=n[e],i=t(r,e);if(c.Lm(i)){if(i)return u.zN(r)}else if(u.Ru(i))return i}return u.dv()}),j=e=>Array.from(e).reverse(),D=(0,s.XY)(2,(e,t)=>{const n=Array.from(e);return n.sort(t),n}),U=(0,s.XY)(2,(e,t)=>z(e,t,d)),z=(0,s.XY)(3,(e,t,n)=>{const r=m(e),i=m(t);if(E(r)&&E(i)){const e=[n(I(r),I(i))],t=Math.min(r.length,i.length);for(let a=1;a(0,s.XY)(2,(t,n)=>{for(const r of t)if(e(n,r))return!0;return!1}),V=i.XY(),K=$(V),Y=(0,s.XY)(2,(e,t)=>{const n=Array.from(e),r=Math.floor(t);return E(n)?r>=1?q(n,r):[[],n]:[n,[]]}),q=(0,s.XY)(2,(e,t)=>{const n=Math.max(1,Math.floor(t));return n>=e.length?[H(e),[]]:[g(e.slice(1,n),I(e)),e.slice(n)]}),H=e=>e.slice(),G=(0,s.XY)(3,(e,t,n)=>{const r=m(e),i=m(t);return E(r)?E(i)?ue(n)(w(r,i)):r:i}),W=(0,s.XY)(2,(e,t)=>G(e,t,V)),X=()=>[],J=e=>[e],Z=(0,s.XY)(2,(e,t)=>e.map(t)),Q=(0,s.XY)(2,(e,t)=>{if((e=>0===e.length)(e))return[];const n=[];for(let r=0;r{const n=m(e),r=[];for(let e=0;e{const n=[],i=[],a=m(e);for(let e=0;em(e).reduce((e,t,r)=>n(e,t,r),t)),ae=(0,s.XY)(3,(e,t,n)=>m(e).reduceRight((e,t,r)=>n(e,t,r),t)),se=(e,t)=>{const n=[];let r,i=e;for(;u.Ru(r=t(i));){const[e,t]=r.value;n.push(e),i=t}return n},oe=(f.YO,a.YO),ue=(0,s.XY)(2,(e,t)=>{const n=m(e);if(E(n)){const e=[I(n)],r=P(n);for(const n of r)e.every(e=>!t(n,e))&&e.push(n);return e}return[]}),ce=e=>ue(e,i.XY()),le=(0,s.XY)(2,(e,t)=>m(e).join(t))},28299(e){"use strict";e.exports=Math.floor},28430(e,t,n){"use strict";var r=n(42649);function i(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var a=n(72258),s=n(41498),o=a.Buffer,u=a.kMaxLength,c=n.g.crypto||n.g.msCrypto,l=Math.pow(2,32)-1;function f(e,t){if("number"!=typeof e||e!=e)throw new TypeError("offset must be a number");if(e>l||e<0)throw new TypeError("offset must be a uint32");if(e>u||e>t)throw new RangeError("offset out of range")}function d(e,t,n){if("number"!=typeof e||e!=e)throw new TypeError("size must be a number");if(e>l||e<0)throw new TypeError("size must be a uint32");if(e+t>n||e>u)throw new RangeError("buffer too small")}function h(e,t,n,i){if(r.browser){var a=e.buffer,o=new Uint8Array(a,t,n);return c.getRandomValues(o),i?void r.nextTick(function(){i(null,e)}):e}if(!i)return s(n).copy(e,t),e;s(n,function(n,r){if(n)return i(n);r.copy(e,t),i(null,e)})}c&&c.getRandomValues||!r.browser?(t.randomFill=function(e,t,r,i){if(!(o.isBuffer(e)||e instanceof n.g.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof t)i=t,t=0,r=e.length;else if("function"==typeof r)i=r,r=e.length-t;else if("function"!=typeof i)throw new TypeError('"cb" argument must be a function');return f(t,e.length),d(r,t,e.length),h(e,t,r,i)},t.randomFillSync=function(e,t,r){if(void 0===t&&(t=0),!(o.isBuffer(e)||e instanceof n.g.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return f(t,e.length),void 0===r&&(r=e.length-t),d(r,t,e.length),h(e,t,r)}):(t.randomFill=i,t.randomFillSync=i)},28780(e,t,n){"use strict";n.d(t,{h:()=>p,k:()=>b});var r=n(70121),i=n(83815),a=n(2273),s=n(20518),o=n(462),u=n(33640),c=n(92155),l=n(85501),f=n(65144),d=n(75209),h=n(92546);function p(e,t){if(e.length!==t.length)throw new r.YE({expectedLength:e.length,givenLength:t.length});const n=function({params:e,values:t}){const n=[];for(let r=0;r0?(0,u.xW)([t,e]):t}}if(a)return{dynamic:!0,encoded:e}}return{dynamic:!1,encoded:(0,u.xW)(s.map(({encoded:e})=>e))}}(t,{length:i,param:{...e,type:a}})}if("tuple"===e.type)return function(e,{param:t}){let n=!1;const r=[];for(let i=0;ie))}}(t,{param:e});if("address"===e.type)return function(e){if(!(0,o.P)(e))throw new i.M({address:e});return{dynamic:!1,encoded:(0,c.db)(e.toLowerCase())}}(t);if("bool"===e.type)return function(e){if("boolean"!=typeof e)throw new a.C(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:(0,c.db)((0,d.$P)(e))}}(t);if(e.type.startsWith("uint")||e.type.startsWith("int")){const n=e.type.startsWith("int"),[,,r="256"]=h.Ge.exec(e.type)??[];return function(e,{signed:t,size:n=256}){if("number"==typeof n){const r=2n**(BigInt(n)-(t?1n:0n))-1n,i=t?-r-1n:0n;if(e>r||es,qg:()=>o});var r=n(91893),i=n(64458),a=n(4909);n(82884).Et,r.ai;const s=a.ai,o=e=>{if("NaN"===e)return i.zN(NaN);if("Infinity"===e)return i.zN(1/0);if("-Infinity"===e)return i.zN(-1/0);if(""===e.trim())return i.dv;const t=Number(e);return Number.isNaN(t)?i.dv:i.zN(t)}},28882(e,t,n){"use strict";var r=n(72258).Buffer,i=n(18561).Transform;function a(e){i.call(this),this._block=r.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}n(33213)(a,i),a.prototype._transform=function(e,t,n){var r=null;try{this.update(e,t)}catch(e){r=e}n(r)},a.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)};var s="undefined"!=typeof Uint8Array,o="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&ArrayBuffer.isView&&(r.prototype instanceof Uint8Array||r.TYPED_ARRAY_SUPPORT);a.prototype.update=function(e,t){if(this._finalized)throw new Error("Digest already called");e=function(e,t){if(e instanceof r)return e;if("string"==typeof e)return r.from(e,t);if(o&&ArrayBuffer.isView(e)){if(0===e.byteLength)return r.alloc(0);var n=r.from(e.buffer,e.byteOffset,e.byteLength);if(n.byteLength===e.byteLength)return n}if(s&&e instanceof Uint8Array)return r.from(e);if(r.isBuffer(e)&&e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e))return r.from(e);throw new TypeError('The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')}(e,t);for(var n=this._block,i=0;this._blockOffset+e.length-i>=this._blockSize;){for(var a=this._blockOffset;a0;++u)this._length[u]+=c,(c=this._length[u]/4294967296|0)>0&&(this._length[u]-=4294967296*c);return this},a.prototype._update=function(){throw new Error("_update is not implemented")},a.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var n=0;n<4;++n)this._length[n]=0;return t},a.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=a},29385(e,t,n){"use strict";var r=n(23145),i=n(92772).assert;function a(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=a,a.fromPublic=function(e,t,n){return t instanceof a?t:new a(e,{pub:t,pubEnc:n})},a.fromPrivate=function(e,t,n){return t instanceof a?t:new a(e,{priv:t,privEnc:n})},a.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},a.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},a.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},a.prototype._importPrivate=function(e,t){this.priv=new r(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},a.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?i(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},a.prototype.derive=function(e){return e.validate()||i(e.validate(),"public point not validated"),e.mul(this.priv).getX()},a.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},a.prototype.verify=function(e,t,n){return this.ec.verify(e,t,this,void 0,n)},a.prototype.inspect=function(){return""}},29562(e,t,n){var r=n(67779),i=n(74839),a=n(72258).Buffer,s=n(10417),o=n(81475),u=n(81979),c=n(81207);function l(e,t,n){o.call(this),this._cache=new d,this._cipher=new u.AES(t),this._prev=a.from(n),this._mode=e,this._autopadding=!0}n(33213)(l,o),l.prototype._update=function(e){var t,n;this._cache.add(e);for(var r=[];t=this._cache.get();)n=this._mode.encrypt(this,t),r.push(n);return a.concat(r)};var f=a.alloc(16,16);function d(){this.cache=a.allocUnsafe(0)}function h(e,t,n){var o=r[e.toLowerCase()];if(!o)throw new TypeError("invalid suite type");if("string"==typeof t&&(t=a.from(t)),t.length!==o.key/8)throw new TypeError("invalid key length "+t.length);if("string"==typeof n&&(n=a.from(n)),"GCM"!==o.mode&&n.length!==o.iv)throw new TypeError("invalid iv length "+n.length);return"stream"===o.type?new s(o.module,t,n):"auth"===o.type?new i(o.module,t,n):new l(o.module,t,n)}l.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return e=this._mode.encrypt(this,e),this._cipher.scrub(),e;if(!e.equals(f))throw this._cipher.scrub(),new Error("data not multiple of block length")},l.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},d.prototype.add=function(e){this.cache=a.concat([this.cache,e])},d.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},d.prototype.flush=function(){for(var e=16-this.cache.length,t=a.allocUnsafe(e),n=-1;++np,Ez:()=>o,L8:()=>s,Te:()=>u,Tz:()=>a,Vv:()=>f,ZA:()=>h,uV:()=>d});var r=n(47726),i=n(59329);const a=Symbol.for("effect/Tracer"),s=e=>({[a]:a,...e}),o=r.Io("effect/Tracer"),u=r.Io("effect/ParentSpan"),c=function(){return function(e){let t="";for(let n=0;nnew l(e,t,n,r,i,a),context:e=>e()}),d=e=>({_tag:"ExternalSpan",spanId:e.spanId,traceId:e.traceId,sampled:e.sampled??!0,context:e.context??r.Ie()}),h=e=>{if(!1===e?.captureStackTrace)return e;if(void 0!==e?.captureStackTrace&&"boolean"!=typeof e.captureStackTrace)return e;const t=Error.stackTraceLimit;Error.stackTraceLimit=3;const n=new Error;Error.stackTraceLimit=t;let r=!1;return{...e,captureStackTrace:()=>{if(!1!==r)return r;if(void 0!==n.stack){const e=n.stack.split("\n");if(void 0!==e[3])return r=e[3].trim(),r}}}},p=r.Or()("effect/Tracer/DisablePropagation",{defaultValue:i.f4})},30201(e,t,n){var r=n(33213),i=n(39197),a=i.base,s=i.bignum,o=i.constants.der;function u(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new c,this.tree._init(e.body)}function c(e){a.Node.call(this,"der",e)}function l(e,t){var n=e.readUInt8(t);if(e.isError(n))return n;var r=o.tagClass[n>>6],i=!(32&n);if(31&~n)n&=31;else{var a=n;for(n=0;!(128&~a);){if(a=e.readUInt8(t),e.isError(a))return a;n<<=7,n|=127&a}}return{cls:r,primitive:i,tag:n,tagStr:o.tag[n]}}function f(e,t,n){var r=e.readUInt8(n);if(e.isError(r))return r;if(!t&&128===r)return null;if(!(128&r))return r;var i=127&r;if(i>4)return e.error("length octect is too long");r=0;for(var a=0;a-1?t:"Object"===t&&function(e){var t=!1;return r(m,function(n,r){if(!t)try{n(e),t=h(r,1)}catch(e){}}),t}(e)}return o?function(e){var t=!1;return r(m,function(n,r){if(!t)try{"$"+n(e)===r&&(t=h(r,1))}catch(e){}}),t}(e):null}},30643(e,t,n){"use strict";var r=n(75027),i=Object.prototype.toString,a=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){if(!r(t))throw new TypeError("iterator must be a function");var s,o;arguments.length>=3&&(s=n),o=e,"[object Array]"===i.call(o)?function(e,t,n){for(var r=0,i=e.length;rr})},31102(e,t,n){"use strict";var r=n(23145),i=n(9848),a=n(92772),s=n(52565),o=n(15314),u=a.assert,c=n(29385),l=n(72368);function f(e){if(!(this instanceof f))return new f(e);"string"==typeof e&&(u(Object.prototype.hasOwnProperty.call(s,e),"Unknown curve "+e),e=s[e]),e instanceof s.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}e.exports=f,f.prototype.keyPair=function(e){return new c(this,e)},f.prototype.keyFromPrivate=function(e,t){return c.fromPrivate(this,e,t)},f.prototype.keyFromPublic=function(e,t){return c.fromPublic(this,e,t)},f.prototype.genKeyPair=function(e){e||(e={});for(var t=new i({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||o(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),a=this.n.sub(new r(2));;){var s=new r(t.generate(n));if(!(s.cmp(a)>0))return s.iaddn(1),this.keyFromPrivate(s)}},f.prototype._truncateToN=function(e,t,n){var i;if(r.isBN(e)||"number"==typeof e)i=(e=new r(e,16)).byteLength();else if("object"==typeof e)i=e.length,e=new r(e,16);else{var a=e.toString();i=a.length+1>>>1,e=new r(a,16)}"number"!=typeof n&&(n=8*i);var s=n-this.n.bitLength();return s>0&&(e=e.ushrn(s)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},f.prototype.sign=function(e,t,n,a){if("object"==typeof n&&(a=n,n=null),a||(a={}),"string"!=typeof e&&"number"!=typeof e&&!r.isBN(e)){u("object"==typeof e&&e&&"number"==typeof e.length,"Expected message to be an array-like, a hex string, or a BN instance"),u(e.length>>>0===e.length);for(var s=0;s=0)){var y=this.g.mul(m);if(!y.isInfinity()){var b=y.getX(),g=b.umod(this.n);if(0!==g.cmpn(0)){var v=m.invm(this.n).mul(g.mul(t.getPrivate()).iadd(e));if(0!==(v=v.umod(this.n)).cmpn(0)){var w=(y.getY().isOdd()?1:0)|(0!==b.cmp(g)?2:0);return a.canonical&&v.cmp(this.nh)>0&&(v=this.n.sub(v),w^=1),new l({r:g,s:v,recoveryParam:w})}}}}}},f.prototype.verify=function(e,t,n,r,i){i||(i={}),e=this._truncateToN(e,!1,i.msgBitLength),n=this.keyFromPublic(n,r);var a=(t=new l(t,"hex")).r,s=t.s;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var o,u=s.invm(this.n),c=u.mul(e).umod(this.n),f=u.mul(a).umod(this.n);return this.curve._maxwellTrick?!(o=this.g.jmulAdd(c,n.getPublic(),f)).isInfinity()&&o.eqXToP(a):!(o=this.g.mulAdd(c,n.getPublic(),f)).isInfinity()&&0===o.getX().umod(this.n).cmp(a)},f.prototype.recoverPubKey=function(e,t,n,i){u((3&n)===n,"The recovery param is more than two bits"),t=new l(t,i);var a=this.n,s=new r(e),o=t.r,c=t.s,f=1&n,d=n>>1;if(o.cmp(this.curve.p.umod(this.curve.n))>=0&&d)throw new Error("Unable to find sencond key candinate");o=d?this.curve.pointFromX(o.add(this.curve.n),f):this.curve.pointFromX(o,f);var h=t.r.invm(a),p=a.sub(s).mul(h).umod(a),m=c.mul(h).umod(a);return this.g.mulAdd(p,o,m)},f.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new l(t,r)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var a;try{a=this.recoverPubKey(e,t,i)}catch(e){continue}if(a.eq(n))return i}throw new Error("Unable to find valid recovery factor")}},31262(e,t,n){"use strict";n.d(t,{Ez:()=>s,LX:()=>r,WN:()=>i,fT:()=>a});const r="0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe",i="0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe",a="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572",s="0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033"},31547(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=(r=n(80960))&&r.__esModule?r:{default:r};t.default=function(e){var t=e.A,n=2*e.roundIndex;t[0]^=i.default[n],t[1]^=i.default[n+1]}},31757(e,t,n){"use strict";var r=n(92772),i=n(23145),a=n(33213),s=n(14248),o=r.assert;function u(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,s.call(this,"edwards",e),this.a=new i(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),o(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function c(e,t,n,r,a){s.BasePoint.call(this,e,"projective"),null===t&&null===n&&null===r?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(t,16),this.y=new i(n,16),this.z=r?new i(r,16):this.curve.one,this.t=a&&new i(a,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}a(u,s),e.exports=u,u.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},u.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},u.prototype.jpoint=function(e,t,n,r){return this.point(e,t,n,r)},u.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=this.c2.redSub(this.a.redMul(n)),a=this.one.redSub(this.c2.redMul(this.d).redMul(n)),s=r.redMul(a.redInvm()),o=s.redSqrt();if(0!==o.redSqr().redSub(s).cmp(this.zero))throw new Error("invalid point");var u=o.fromRed().isOdd();return(t&&!u||!t&&u)&&(o=o.redNeg()),this.point(e,o)},u.prototype.pointFromY=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=n.redSub(this.c2),a=n.redMul(this.d).redMul(this.c2).redSub(this.a),s=r.redMul(a.redInvm());if(0===s.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var o=s.redSqrt();if(0!==o.redSqr().redSub(s).cmp(this.zero))throw new Error("invalid point");return o.fromRed().isOdd()!==t&&(o=o.redNeg()),this.point(o,e)},u.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),n=e.y.redSqr(),r=t.redMul(this.a).redAdd(n),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(n)));return 0===r.cmp(i)},a(c,s.BasePoint),u.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},u.prototype.point=function(e,t,n,r){return new c(this,e,t,n,r)},c.fromJSON=function(e,t){return new c(e,t[0],t[1],t[2])},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},c.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr();n=n.redIAdd(n);var r=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),a=r.redAdd(t),s=a.redSub(n),o=r.redSub(t),u=i.redMul(s),c=a.redMul(o),l=i.redMul(o),f=s.redMul(a);return this.curve.point(u,c,f,l)},c.prototype._projDbl=function(){var e,t,n,r,i,a,s=this.x.redAdd(this.y).redSqr(),o=this.x.redSqr(),u=this.y.redSqr();if(this.curve.twisted){var c=(r=this.curve._mulA(o)).redAdd(u);this.zOne?(e=s.redSub(o).redSub(u).redMul(c.redSub(this.curve.two)),t=c.redMul(r.redSub(u)),n=c.redSqr().redSub(c).redSub(c)):(i=this.z.redSqr(),a=c.redSub(i).redISub(i),e=s.redSub(o).redISub(u).redMul(a),t=c.redMul(r.redSub(u)),n=c.redMul(a))}else r=o.redAdd(u),i=this.curve._mulC(this.z).redSqr(),a=r.redSub(i).redSub(i),e=this.curve._mulC(s.redISub(r)).redMul(a),t=this.curve._mulC(r).redMul(o.redISub(u)),n=r.redMul(a);return this.curve.point(e,t,n)},c.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},c.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),n=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),r=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),a=n.redSub(t),s=i.redSub(r),o=i.redAdd(r),u=n.redAdd(t),c=a.redMul(s),l=o.redMul(u),f=a.redMul(u),d=s.redMul(o);return this.curve.point(c,l,d,f)},c.prototype._projAdd=function(e){var t,n,r=this.z.redMul(e.z),i=r.redSqr(),a=this.x.redMul(e.x),s=this.y.redMul(e.y),o=this.curve.d.redMul(a).redMul(s),u=i.redSub(o),c=i.redAdd(o),l=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(a).redISub(s),f=r.redMul(u).redMul(l);return this.curve.twisted?(t=r.redMul(c).redMul(s.redSub(this.curve._mulA(a))),n=u.redMul(c)):(t=r.redMul(c).redMul(s.redSub(a)),n=this.curve._mulC(u).redMul(c)),this.curve.point(f,t,n)},c.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},c.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},c.prototype.mulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!1)},c.prototype.jmulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!0)},c.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},c.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()},c.prototype.getY=function(){return this.normalize(),this.y.fromRed()},c.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},c.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var n=e.clone(),r=this.curve.redN.redMul(this.z);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(r),0===this.x.cmp(t))return!0}},c.prototype.toP=c.prototype.normalize,c.prototype.mixedAdd=c.prototype.add},31763(e,t,n){"use strict";n.d(t,{L:()=>a});let r,i=256;function a(e=11){if(!r||i+e>512){r="",i=0;for(let e=0;e<256;e++)r+=(256+256*Math.random()|0).toString(16).substring(1)}return r.substring(i,i+++e)}},31864(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=(r=n(13409))&&r.__esModule?r:{default:r};t.default=function(e){for(var t=e.A,n=e.C,r=e.D,a=e.W,s=0,o=0,u=0;u<5;u++){var c=2*u,l=2*(u+5),f=2*(u+10),d=2*(u+15),h=2*(u+20);n[c]=t[c]^t[l]^t[f]^t[d]^t[h],n[c+1]=t[c+1]^t[l+1]^t[f+1]^t[d+1]^t[h+1]}for(var p=0;p<5;p++){(0,i.default)(n,(p+1)%5)(a,0),s=a[0],o=a[1],a[0]=s<<1|o>>>31,a[1]=o<<1|s>>>31,r[2*p]=n[(p+4)%5*2]^a[0],r[2*p+1]=n[(p+4)%5*2+1]^a[1];for(var m=0;m<25;m+=5)t[2*(m+p)]^=r[2*p],t[2*(m+p)+1]^=r[2*p+1]}}},31963(e,t,n){"use strict";function r(e,t){return({exclude:n,format:r})=>({exclude:n,format:(e,i)=>{const a=t(e,i);if(n)for(const e of n)delete a[e];return{...a,...r(e,i)}},type:e})}n.d(t,{q:()=>r})},32061(e,t,n){"use strict";n.d(t,{Q:()=>s});var r=n(8609);const i=/^tuple(?(\[(\d*)\])*)$/;function a(e){let t=e.type;if(i.test(e.type)&&"components"in e){t="(";const n=e.components.length;for(let r=0;rT,Z:()=>M});var r=n(85327),i=n(75209),a=n(22420),s=n(4667),o=n(95639),u=n(26480),c=n(33640),l=n(8736),f=n(82150),d=n(95775),h=n(19512),p=n(83815),m=n(2273),y=n(80144),b=n(57834),g=n(61355),v=n(462),w=n(85501),_=n(65144),S=n(58038);function E(e){const{chainId:t,maxPriorityFeePerGas:n,maxFeePerGas:r,to:i}=e;if(t<=0)throw new b.qD({chainId:t});if(i&&!(0,v.P)(i))throw new p.M({address:i});if(r&&r>h.Ao)throw new g.BG({maxFeePerGas:r});if(n&&r&&n>r)throw new g.lN({maxFeePerGas:r,maxPriorityFeePerGas:n})}var k=n(33932);function x(e){if(!e||0===e.length)return[];const t=[];for(let n=0;nh.Ao)throw new g.BG({maxFeePerGas:r})}(e);const y=x(l),w=[(0,i.cK)(n),s?(0,i.cK)(s):"0x",d?(0,i.cK)(d):"0x",r?(0,i.cK)(r):"0x",o??"0x",u?(0,i.cK)(u):"0x",a??"0x",y,...M(e,t)];return(0,c.aP)(["0x01",(0,f.EQ)(w)])}(e,t):"eip4844"===n?function(e,t){const{chainId:n,gas:r,nonce:l,to:h,value:p,maxFeePerBlobGas:m,maxFeePerGas:b,maxPriorityFeePerGas:g,accessList:v,data:k}=e;!function(e){const{blobVersionedHashes:t}=e;if(t){if(0===t.length)throw new y.zF;for(const e of t){const t=(0,w.E)(e),n=(0,S.ME)((0,_.di)(e,0,1));if(32!==t)throw new y.uP({hash:e,size:t});if(n!==d.E)throw new y.PK({hash:e,version:n})}}E(e)}(e);let T=e.blobVersionedHashes,I=e.sidecars;if(e.blobs&&(void 0===T||void 0===I)){const t="string"==typeof e.blobs[0]?e.blobs:e.blobs.map(e=>(0,i.My)(e)),n=e.kzg,r=(0,a.S)({blobs:t,kzg:n});if(void 0===T&&(T=(0,o.d)({commitments:r})),void 0===I){const e=(0,s.t)({blobs:t,commitments:r,kzg:n});I=(0,u.T)({blobs:t,commitments:r,proofs:e})}}const A=x(v),N=[(0,i.cK)(n),l?(0,i.cK)(l):"0x",g?(0,i.cK)(g):"0x",b?(0,i.cK)(b):"0x",r?(0,i.cK)(r):"0x",h??"0x",p?(0,i.cK)(p):"0x",k??"0x",A,m?(0,i.cK)(m):"0x",T??[],...M(e,t)],P=[],O=[],R=[];if(I)for(let e=0;eh.Ao)throw new g.BG({maxFeePerGas:r})}(e);let y=[o?(0,i.cK)(o):"0x",d?(0,i.cK)(d):"0x",a?(0,i.cK)(a):"0x",u??"0x",c?(0,i.cK)(c):"0x",s??"0x"];if(t){const e=(()=>{if(t.v>=35n)return(t.v-35n)/2n>0?t.v:27n+(35n===t.v?0n:1n);if(n>0)return BigInt(2*n)+BigInt(35n+t.v-27n);const e=27n+(27n===t.v?0n:1n);if(t.v!==e)throw new r.zW({v:t.v});return e})(),a=(0,l.B)(t.r),s=(0,l.B)(t.s);y=[...y,(0,i.cK)(e),"0x00"===a?"0x":a,"0x00"===s?"0x":s]}else n>0&&(y=[...y,(0,i.cK)(n),"0x","0x"]);return(0,f.EQ)(y)}(e,t)}function M(e,t){const n=t??e,{v:r,yParity:a}=n;if(void 0===n.r)return[];if(void 0===n.s)return[];if(void 0===r&&void 0===a)return[];const s=(0,l.B)(n.r),o=(0,l.B)(n.s);return["number"==typeof a?a?(0,i.cK)(1):"0x":0n===r?"0x":1n===r?(0,i.cK)(1):27n===r?"0x":(0,i.cK)(1),"0x00"===s?"0x":s,"0x00"===o?"0x":o]}},33140(e,t,n){"use strict";var r=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m,i=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,a=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m,s=n(81207),o=n(85984),u=n(72258).Buffer;e.exports=function(e,t){var n,c=e.toString(),l=c.match(r);if(l){var f="aes"+l[1],d=u.from(l[2],"hex"),h=u.from(l[3].replace(/[\r\n]/g,""),"base64"),p=s(t,d.slice(0,8),parseInt(l[1],10)).key,m=[],y=o.createDecipheriv(f,p,d);m.push(y.update(h)),m.push(y.final()),n=u.concat(m)}else{var b=c.match(a);n=u.from(b[2].replace(/[\r\n]/g,""),"base64")}return{tag:c.match(i)[1],data:n}}},33213(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},33640(e,t,n){"use strict";function r(e){return"string"==typeof e[0]?i(e):function(e){let t=0;for(const n of e)t+=n.length;const n=new Uint8Array(t);let r=0;for(const t of e)n.set(t,r),r+=t.length;return n}(e)}function i(e){return`0x${e.reduce((e,t)=>e+t.replace("0x",""),"")}`}n.d(t,{aP:()=>i,xW:()=>r})},33781(e,t,n){"use strict";n.d(t,{E0:()=>v,I3:()=>S,HT:()=>_,hY:()=>w,uU:()=>b,Ek:()=>E});var r=n(99344),i=n(13439),a=n(81127),s=n(70121),o=n(83815),u=n(462),c=n(33640),l=n(92155),f=n(75209),d=n(92546);function h(e,t){if(e.length!==t.length)throw new s.YE({expectedLength:e.length,givenLength:t.length});const n=[];for(let r=0;r255)throw new Error(`Invalid uint8 value: ${e}`)}},33931(e,t,n){"use strict";var r=n(73730).Buffer,i=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)},s=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function s(e){try{u(r.next(e))}catch(e){a(e)}}function o(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(s,o)}u((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},s=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return s.next=o(0),s.throw=o(1),s.return=o(2),"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function o(o){return function(u){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s&&(s=0,o[0]&&(a=0)),a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!((i=(i=a.trys).length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]>24,n>>16,n>>8,n]),s=d(r.concat([t,e]));a=a.then(function(e){return s.then(function(t){return r.concat([e,t])})}),i+=32,n+=1};i32?i(new Error("Message is too long (max 32 bytes)")):n(r.from(u.sign(t,e,{canonical:!0}).toDER("hex"),"hex"))})},t.verify=function(e,t,n){return new Promise(function(r,i){try{65!==e.length||4!==e[0]?i(new Error("Public key should 65 bytes long")):t.length<=0?i(new Error("Message should not be empty")):t.length>32?i(new Error("Message is too long (max 32 bytes)")):u.verify(t,n.toString("hex"),e,"hex")?r(!0):i(new Error("Bad signature"))}catch(e){i(new Error("Invalid arguments"))}})},t.derive=function(e,t){return new Promise(function(n,i){if(32!==e.length)i(new Error("Bad private key, it should be 32 bytes but it's actually ".concat(e.length," bytes long")));else if(65!==t.length)i(new Error("Bad public key, it should be 65 bytes but it's actually ".concat(t.length," bytes long")));else if(4!==t[0])i(new Error("Bad public key, a valid public key would begin with 4"));else{var a=u.keyFromPrivate(e),s=u.keyFromPublic(t),o=a.derive(s.getPublic());n(h(r.from(o.toArray())))}})},t.encrypt=function(e,n,i){return s(void 0,void 0,void 0,function(){var a;return o(this,function(u){return a=(i=i||{}).ephemPrivateKey||f(32),[2,(0,t.derive)(a,e).then(function(e){return(0,t.kdf)(e,32)}).then(function(e){return s(void 0,void 0,void 0,function(){var s,u;return o(this,function(o){return s=i.iv||f(16),u=e.slice(0,16),[2,(c=s,h=u,p=n,l.importKey("raw",h,"AES-CTR",!1,["encrypt"]).then(function(e){return l.encrypt({name:"AES-CTR",counter:c,length:128},e,p)}).then(r.from)).then(function(e){return r.concat([s,e])}).then(function(n){return d(e.slice(16)).then(function(e){return function(e,t){var n={name:"HMAC",hash:{name:"SHA-256"}};return l.importKey("raw",e,n,!1,["sign"]).then(function(e){return l.sign(n,e,t)}).then(r.from)}(e,n)}).then(function(e){return(0,t.getPublic)(a).then(function(t){return r.concat([t,n,e])})})})];var c,h,p})})})]})})},t.decrypt=function(e,n){return new Promise(function(i,a){if(n.length<=113)a(new Error("Invalid Ciphertext. Data is too small. It should ba at least ".concat(113," bytes")));else if(4!==n[0])a(new Error("Not a valid ciphertext. It should begin with 4 but actually begin with ".concat(n[0])));else{var s=n.slice(0,65),o=n.length-113,u=n.slice(65,81),c=n.slice(65,81+o),f=c.slice(16),h=n.slice(81+o);i((0,t.derive)(e,s).then(function(e){return(0,t.kdf)(e,32)}).then(function(e){return d(e.slice(16)).then(function(t){return[e.slice(0,16),t]})}).then(function(e){var t,n,i,a,s=e[0];return(t=e[1],n=c,i=h,a={name:"HMAC",hash:{name:"SHA-256"}},l.importKey("raw",t,a,!1,["verify"]).then(function(e){return l.verify(a,e,i,n)})).then(function(e){return e?function(e,t,n){return l.importKey("raw",t,"AES-CTR",!1,["decrypt"]).then(function(t){return l.decrypt({name:"AES-CTR",counter:e,length:128},t,n)}).then(r.from)}(u,s,f):Promise.reject(new Error("Incorrect MAC"))})}).then(r.from))}})};var h=function(e){if(e.length<32){var t=r.alloc(32).fill(0);return e.copy(t,32-e.length),t}return e};a(n(42697),t)},33932(e,t,n){"use strict";n.d(t,{L:()=>i});var r=n(85327);function i(e){if(e.type)return e.type;if(void 0!==e.authorizationList)return"eip7702";if(void 0!==e.blobs||void 0!==e.blobVersionedHashes||void 0!==e.maxFeePerBlobGas||void 0!==e.sidecars)return"eip4844";if(void 0!==e.maxFeePerGas||void 0!==e.maxPriorityFeePerGas)return"eip1559";if(void 0!==e.gasPrice)return void 0!==e.accessList?"eip2930":"legacy";throw new r.Vg({transaction:e})}},34043(e){var t={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==t.call(e)}},34105(e,t,n){"use strict";n.d(t,{A2:()=>l,My:()=>d,U8:()=>c,X:()=>f,Xn:()=>p,hJ:()=>u,jR:()=>g,or:()=>b,pV:()=>y,rr:()=>m});var r=n(9100),i=n(99344),a=n(84015),s=n(64355),o=n(73730).Buffer;const u=i.k_Z("0x",i.QfV);function c(e){return e?.length?BigInt("0x"+o.from(e).toString("hex")):BigInt(0)}function l(e){return o.from(e.toString(16).padStart(64,"0"),"hex")}function f(e){return(0,s.Z)(p,l(e).toString("hex"))}function d(e){return"0x"+o.from(e).toString("hex")}const h=i.wSs.pipe(i.pbD(e=>e instanceof Uint8Array)),p=i.K$g(i.gPz(i.QfV,h),u,{strict:!0,encode:r.Py,decode:e=>{return e instanceof Uint8Array?r.Py(d(e)):(n=function(e){if(!(0,a.q)(e))throw new Error(`Expected hex string, got: ${e}`);return e}((t=e).startsWith("0x")?t:`0x${t}`),(0,a.q)(n)?r.Py(n):r.fJ(new r.w2(n,`'${n}' is not a hex string`)));var t,n}}).pipe(i.pbD(e=>66===e.length||`Expected 32-byte hex string (66 characters with 0x prefix) but got ${e.length} character string`),i.wkx("Bytes32"));function m(e){return(0,s.Z)(p,e)}const y=u.pipe(i.pbD(e=>42===e.length||`Address must be a 20-byte '0x'-prefixed hex string, but got: ${e}`),i.wkx("Address"));function b(e){return(0,s.Z)(y,e)}function g(e){return(0,s.Z)(u,e)}},34435(e,t,n){"use strict";async function r(e){const t=await e.request({method:"eth_gasPrice"});return BigInt(t)}n.d(t,{L:()=>r})},34520(e,t,n){"use strict";n.d(t,{FX:()=>i,Ub:()=>s,Vw:()=>o,do:()=>a});var r=n(73360);const i=Symbol.for("effect/Deferred"),a={_E:e=>e,_A:e=>e},s=e=>({_tag:r.i,joiners:e}),o=e=>({_tag:r.R,effect:e})},35033(e,t,n){var r=n(71822);t.encrypt=function(e,t){var n=r(t,e._prev);return e._prev=e._cipher.encryptBlock(n),e._prev},t.decrypt=function(e,t){var n=e._prev;e._prev=t;var i=e._cipher.decryptBlock(t);return r(i,n)}},35156(e,t,n){"use strict";n.d(t,{$I:()=>x,$N:()=>L,CB:()=>C,Do:()=>N,L8:()=>R,M1:()=>F,dK:()=>P,dv:()=>_,fA:()=>S,gb:()=>k,kg:()=>I,lm:()=>h,mO:()=>M,pM:()=>A,sN:()=>E,vk:()=>T,zL:()=>B});var r=n(72529),i=n(59329),a=n(55661),s=n(46385),o=n(75169),u=n(12717),c=n(61346),l=n(36708),f=n(82884);const d="effect/FiberId",h=Symbol.for(d),p="None",m="Runtime",y="Composite",b=s.Yj(`${d}-${p}`);class g{[h]=h;_tag=p;id=-1;startTimeMillis=-1;[s.HR](){return b}[r.HR](e){return k(e)&&e._tag===p}toString(){return(0,u.GP)(this.toJSON())}toJSON(){return{_id:"FiberId",_tag:this._tag}}[u.FX](){return this.toJSON()}}class v{id;startTimeMillis;[h]=h;_tag=m;constructor(e,t){this.id=e,this.startTimeMillis=t}[s.HR](){return s.PO(this,s.Yj(`${d}-${this._tag}-${this.id}-${this.startTimeMillis}`))}[r.HR](e){return k(e)&&e._tag===m&&this.id===e.id&&this.startTimeMillis===e.startTimeMillis}toString(){return(0,u.GP)(this.toJSON())}toJSON(){return{_id:"FiberId",_tag:this._tag,id:this.id,startTimeMillis:this.startTimeMillis}}[u.FX](){return this.toJSON()}}class w{left;right;[h]=h;_tag=y;constructor(e,t){this.left=e,this.right=t}_hash;[s.HR](){return(0,i.Fs)(s.Yj(`${d}-${this._tag}`),s.kg(s.tW(this.left)),s.kg(s.tW(this.right)),s.PO(this))}[r.HR](e){return k(e)&&e._tag===y&&r.aI(this.left,e.left)&&r.aI(this.right,e.right)}toString(){return(0,u.GP)(this.toJSON())}toJSON(){return{_id:"FiberId",_tag:this._tag,left:(0,u.U2)(this.left),right:(0,u.U2)(this.right)}}[u.FX](){return this.toJSON()}}const _=new g,S=(e,t)=>new v(e,t),E=(e,t)=>new w(e,t),k=e=>(0,f.i5)(e,h),x=e=>e._tag===p||(0,i.Fs)(F(e),o.Si(e=>x(e))),T=e=>e._tag===m,M=e=>e._tag===y,I=(0,i.XY)(2,(e,t)=>e._tag===p?t:t._tag===p?e:new w(e,t)),A=e=>(0,i.Fs)(e,o.TS(_,(e,t)=>I(t)(e))),N=(0,i.XY)(2,(e,t)=>x(e)?t:e),P=e=>{switch(e._tag){case p:return o.Ie();case m:return o.L8(e.id);case y:return(0,i.Fs)(P(e.left),o.KC(P(e.right)))}},O=(0,a.V)(Symbol.for("effect/Fiber/Id/_fiberCounter"),()=>c.L8(0)),R=(e,t)=>new v(e,t),C=e=>Array.from(P(e)).map(e=>`#${e}`).join(","),B=e=>{const t=F(e);if(0===o.Ej(t))return l.dv();let n,r=!0;for(const e of t)r?(n=e,r=!1):n=(0,i.Fs)(n,I(e));return l.zN(n)},F=e=>{switch(e._tag){case p:return o.Ie();case m:return o.L8(e);case y:return(0,i.Fs)(F(e.left),o.KC(F(e.right)))}},L=()=>{const e=c.Jt(O);return(0,i.Fs)(O,c.hZ(e+1)),new v(e,Date.now())}},35191(e,t,n){"use strict";n.d(t,{$N:()=>l,Au:()=>g,BG:()=>m,Fh:()=>_,Ie:()=>f,Jt:()=>w,Rt:()=>v,aI:()=>S,gU:()=>d,rQ:()=>b,rl:()=>p,vG:()=>k});var r=n(28062),i=n(72529),a=n(59329),s=n(75169),o=n(36708),u=n(66949),c=n(89921);function l(e){return new h(e)}function f(){return l(new Map)}const d=Symbol.for("effect/FiberRefs");class h{locals;[d]=d;constructor(e){this.locals=e}pipe(){return(0,u.tT)(this,arguments)}}const p=(0,a.XY)(3,(e,t,n)=>{const a=new Map(e.locals);return n.locals.forEach((e,n)=>{const s=e[0][1];if(!e[0][0][i.HR](t)){if(!a.has(n)){if(i.aI(s,n.initial))return;return void a.set(n,[[t,n.join(n.initial,s)]])}const o=a.get(n),[u,c]=((e,t,n,i=!1)=>{const a=e;let s,o=t,u=n,c=i;for(;void 0===s;)if(r.iI(o)&&r.iI(u)){const e=r.v4(o)[0],t=r.Rx(o),n=r.v4(u)[0],i=r.v4(u)[1],a=r.Rx(u);e.startTimeMillisn.startTimeMillis?o=t:e.idn.id?o=t:s=[i,c]}else s=[a.initial,!0];return s})(n,o,e);if(c){const e=n.diff(u,s),r=o[0][1],c=n.join(r,n.patch(e)(r));if(!i.aI(r,c)){let e;const r=o[0][0];e=r[i.HR](t)?[[r,c],...o.slice(1)]:[[t,c],...o],a.set(n,e)}}}}),new h(a)}),m=(0,a.XY)(2,(e,t)=>{const n=new Map;return y(e,n,t),new h(n)}),y=(e,t,n)=>{e.locals.forEach((e,r)=>{const a=e[0][1],s=r.patch(r.fork)(a);i.aI(a,s)?t.set(r,e):t.set(r,[[n,s],...e])})},b=e=>s.Ts(e.locals.keys()),g=e=>c.QZV(b(e),t=>c.Ecz(t,_(e,t))),v=(0,a.XY)(2,(e,t)=>{const n=new Map(e.locals);return n.delete(t),new h(n)}),w=(0,a.XY)(2,(e,t)=>e.locals.has(t)?o.zN(r.v4(e.locals.get(t))[1]):o.dv()),_=(0,a.XY)(2,(e,t)=>(0,a.Fs)(w(e,t),o.WL(()=>t.initial))),S=(0,a.XY)(2,(e,{fiberId:t,fiberRef:n,value:r})=>{if(0===e.locals.size)return new h(new Map([[n,[[t,r]]]]));const i=new Map(e.locals);return E(i,t,n,r),new h(i)}),E=(e,t,n,a)=>{const s=e.get(n)??[];let o;if(r.iI(s)){const[e,n]=r.v4(s);if(e[i.HR](t)){if(i.aI(n,a))return;o=[[t,a],...s.slice(1)]}else o=[[t,a],...s]}else o=[[t,a]];e.set(n,o)},k=(0,a.XY)(2,(e,{entries:t,forkAs:n})=>{if(0===e.locals.size)return new h(new Map(t));const r=new Map(e.locals);return void 0!==n&&y(e,r,n),t.forEach(([e,t])=>{1===t.length?E(r,t[0][0],e,t[0][1]):t.forEach(([t,n])=>{E(r,t,e,n)})}),new h(r)})},35346(e,t,n){"use strict";n.d(t,{s:()=>s});var r=n(85327),i=n(76329),a=n(75209);async function s(e,{serializedTransaction:t,throwOnReceiptRevert:n,timeout:s}){const o=await e.request({method:"eth_sendRawTransactionSync",params:s?[t,(0,a.cK)(s)]:[t]},{retryCount:0}),u=(e.chain?.formatters?.transactionReceipt?.format||i.uL)(o);if("reverted"===u.status&&n)throw new r.Sq({receipt:u});return u}},35546(e,t,n){"use strict";var r=n(92772),i=r.assert,a=r.parseBytes,s=r.cachedProperty;function o(e,t){this.eddsa=e,this._secret=a(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=a(t.pub)}o.fromPublic=function(e,t){return t instanceof o?t:new o(e,{pub:t})},o.fromSecret=function(e,t){return t instanceof o?t:new o(e,{secret:t})},o.prototype.secret=function(){return this._secret},s(o,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())}),s(o,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())}),s(o,"privBytes",function(){var e=this.eddsa,t=this.hash(),n=e.encodingLength-1,r=t.slice(0,e.encodingLength);return r[0]&=248,r[n]&=127,r[n]|=64,r}),s(o,"priv",function(){return this.eddsa.decodeInt(this.privBytes())}),s(o,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()}),s(o,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)}),o.prototype.sign=function(e){return i(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},o.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},o.prototype.getSecret=function(e){return i(this._secret,"KeyPair is public only"),r.encode(this.secret(),e)},o.prototype.getPublic=function(e){return r.encode(this.pubBytes(),e)},e.exports=o},35593(e,t,n){"use strict";n.d(t,{S:()=>o});var r=n(27215),i=n(84015),a=n(81127),s=n(75209);function o(e,t){const n=t||"hex",o=(0,r.lY)((0,i.q)(e,{strict:!1})?(0,a.ZJ)(e):e);return"bytes"===n?o:(0,s.nj)(o)}},35815(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(22758)),i=o(n(31547)),a=o(n(81181)),s=o(n(31864));function o(e){return e&&e.__esModule?e:{default:e}}t.default=function(){var e=new Uint32Array(10),t=new Uint32Array(10),n=new Uint32Array(2);return function(o){for(var u=0;u<24;u++)(0,s.default)({A:o,C:e,D:t,W:n}),(0,a.default)({A:o,C:e,W:n}),(0,r.default)({A:o,C:e}),(0,i.default)({A:o,roundIndex:u});e.fill(0),t.fill(0),n.fill(0)}}},35951(e,t,n){"use strict";e.exports=function(t){var n=t.toLowerCase(),r=e.exports[n];if(!r)throw new Error(n+" is not supported (we accept pull requests)");return new r},e.exports.sha=n(77901),e.exports.sha1=n(44114),e.exports.sha224=n(62489),e.exports.sha256=n(3808),e.exports.sha384=n(13284),e.exports.sha512=n(65269)},36093(e,t,n){"use strict";n.d(t,{lB:()=>s});const r=new Map,i=new Map;let a=0;function s(e,t,n){const s=++a,o=()=>r.get(e)||[],u=()=>{const t=o();if(!t.some(e=>e.id===s))return;const n=i.get(e);if(1===t.length&&n){const e=n();e instanceof Promise&&e.catch(()=>{})}(()=>{const t=o();r.set(e,t.filter(e=>e.id!==s))})()},c=o();if(r.set(e,[...c,{id:s,fns:t}]),c&&c.length>0)return u;const l={};for(const e in t)l[e]=(...t)=>{const n=o();if(0!==n.length)for(const r of n)r.fns[e]?.(...t)};const f=n(l);return"function"==typeof f&&i.set(e,f),u}},36388(e,t,n){"use strict";n.d(t,{MG:()=>s,nS:()=>o});var r=n(47726),i=n(89921);const a=Symbol.for("effect/Console"),s=r.Io("effect/Console"),o={[a]:a,assert:(e,...t)=>i.OH5(()=>{console.assert(e,...t)}),clear:i.OH5(()=>{console.clear()}),count:e=>i.OH5(()=>{console.count(e)}),countReset:e=>i.OH5(()=>{console.countReset(e)}),debug:(...e)=>i.OH5(()=>{console.debug(...e)}),dir:(e,t)=>i.OH5(()=>{console.dir(e,t)}),dirxml:(...e)=>i.OH5(()=>{console.dirxml(...e)}),error:(...e)=>i.OH5(()=>{console.error(...e)}),group:e=>e?.collapsed?i.OH5(()=>console.groupCollapsed(e?.label)):i.OH5(()=>console.group(e?.label)),groupEnd:i.OH5(()=>{console.groupEnd()}),info:(...e)=>i.OH5(()=>{console.info(...e)}),log:(...e)=>i.OH5(()=>{console.log(...e)}),table:(e,t)=>i.OH5(()=>{console.table(e,t)}),time:e=>i.OH5(()=>console.time(e)),timeEnd:e=>i.OH5(()=>console.timeEnd(e)),timeLog:(e,...t)=>i.OH5(()=>{console.timeLog(e,...t)}),trace:(...e)=>i.OH5(()=>{console.trace(...e)}),warn:(...e)=>i.OH5(()=>{console.warn(...e)}),unsafe:console}},36442(e,t,n){"use strict";var r=n(61085).F.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,n,i){var a=function(e,t,n){return null!=e.highWaterMark?e.highWaterMark:t?e[n]:null}(t,i,n);if(null!=a){if(!isFinite(a)||Math.floor(a)!==a||a<0)throw new r(i?n:"highWaterMark",a);return Math.floor(a)}return e.objectMode?16:16384}}},36455(e,t){t["des-ecb"]={key:8,iv:0},t["des-cbc"]=t.des={key:8,iv:8},t["des-ede3-cbc"]=t.des3={key:24,iv:8},t["des-ede3"]={key:24,iv:0},t["des-ede-cbc"]={key:16,iv:8},t["des-ede"]={key:16,iv:0}},36708(e,t,n){"use strict";n.d(t,{$I:()=>f,$r:()=>x,Gu:()=>w,IB:()=>v,NW:()=>m,Ru:()=>d,Tj:()=>S,WL:()=>p,XQ:()=>P,Y6:()=>g,YW:()=>h,ZK:()=>y,bt:()=>I,dv:()=>u,gR:()=>A,k$:()=>b,n4:()=>_,oL:()=>l,pb:()=>M,qI:()=>E,t2:()=>N,v9:()=>k,zN:()=>c});var r=n(72529),i=n(91893),a=n(59329),s=n(56802),o=n(64458);const u=()=>o.dv,c=o.zN,l=o.oL,f=o.$I,d=o.Ru,h=(0,a.XY)(2,(e,{onNone:t,onSome:n})=>f(e)?t():n(e.value)),p=(s.j4,s.Gp,(0,a.XY)(2,(e,t)=>f(e)?t():e.value)),m=(0,a.XY)(2,(e,t)=>f(e)?t():e),y=(0,a.XY)(2,(e,t)=>f(e)?c(t()):e),b=e=>null==e?u():c(e),g=p(a.MN),v=e=>(...t)=>{try{return c(e(...t))}catch{return u()}},w=(0,a.XY)(2,(e,t)=>{if(d(e))return e.value;throw t()}),_=w(()=>new Error("getOrThrow called on a None")),S=(0,a.XY)(2,(e,t)=>f(e)?u():c(t(e.value))),E=(0,a.XY)(2,(e,t)=>f(e)?u():t(e.value)),k=(0,a.XY)(2,(e,t)=>f(e)?u():b(t(e.value))),x=e=>f(e)?[]:[e.value],T=E,M=(0,a.XY)(2,(e,t)=>T(e,e=>t(e)?o.zN(e):o.dv)),I=e=>i.L8((t,n)=>f(t)?f(n):!f(n)&&e(t.value,n.value)),A=(e=>(0,a.XY)(2,(t,n)=>!f(t)&&e(t.value,n)))(r.XY()),N=(0,a.XY)(2,(e,t)=>!f(e)&&t(e.value)),P=e=>(t,n)=>f(t)?n:f(n)?t:c(e(t.value,n.value))},37049(e){"use strict";e.exports=RangeError},37279(e){"use strict";e.exports=["Float16Array","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]},37526(e){"use strict";var t=Object.defineProperty||!1;if(t)try{t({},"a",{value:1})}catch(e){t=!1}e.exports=t},37553(e,t,n){"use strict";var r=n(37526),i=function(){return!!r};i.hasArrayLengthDefineBug=function(){if(!r)return null;try{return 1!==r([],"length",{value:1}).length}catch(e){return!0}},e.exports=i},38105(e){"use strict";e.exports=Math.abs},38149(e,t,n){"use strict";async function r(e,{filter:t}){return t.request({method:"eth_uninstallFilter",params:[t.id]})}n.d(t,{Z:()=>r})},38264(e,t,n){var r=n(33213),i=n(73730).Buffer,a=n(30201);function s(e){a.call(this,e),this.enc="pem"}r(s,a),e.exports=s,s.prototype.decode=function(e,t){for(var n=e.toString().split(/[\r\n]+/g),r=t.label.toUpperCase(),s=/^-----(BEGIN|END) ([^-]+)-----$/,o=-1,u=-1,c=0;c{const r="function"==typeof n?n(t):n,i={...t,...r};return Object.assign(i,{extend:e(i)})}}(t)})}n.d(t,{x:()=>r})},39197(e,t,n){var r=t;r.bignum=n(23145),r.define=n(56286).define,r.base=n(54966),r.constants=n(240),r.decoders=n(47202),r.encoders=n(27286)},39437(e,t,n){var r=n(73730).Buffer,i=n(22323),a=n(64950),s=n(4685),o={binary:!0,hex:!0,base64:!0};t.DiffieHellmanGroup=t.createDiffieHellmanGroup=t.getDiffieHellman=function(e){var t=new r(a[e].prime,"hex"),n=new r(a[e].gen,"hex");return new s(t,n)},t.createDiffieHellman=t.DiffieHellman=function e(t,n,a,u){return r.isBuffer(n)||void 0===o[n]?e(t,"binary",n,a):(n=n||"binary",u=u||"binary",a=a||new r([2]),r.isBuffer(a)||(a=new r(a,u)),"number"==typeof t?new s(i(t,a),a,!0):(r.isBuffer(t)||(t=new r(t,n)),new s(t,a,!0)))}},39482(e,t,n){"use strict";var r=n(97103).rotr32;function i(e,t,n){return e&t^~e&n}function a(e,t,n){return e&t^e&n^t&n}function s(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?i(t,n,r):1===e||3===e?s(t,n,r):2===e?a(t,n,r):void 0},t.ch32=i,t.maj32=a,t.p32=s,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},39886(e){"use strict";e.exports=JSON.parse('{"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}')},40258(e){e.exports=function(){throw new Error("Readable.from is not available in the browser")}},40371(e,t,n){var r=n(73730),i=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function s(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=s),a(i,s),s.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,n)},s.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},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 r.SlowBuffer(e)}},40906(e,t,n){"use strict";n.d(t,{Vw:()=>b,DO:()=>a,CC:()=>o,sd:()=>s,Fe:()=>i,Ht:()=>u,uH:()=>l,Id:()=>y,qj:()=>g,O8:()=>f,po:()=>v,Ow:()=>d,fd:()=>p,ZJ:()=>m,DH:()=>c});const r="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;function i(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function a(e,...t){if(!((n=e)instanceof Uint8Array||ArrayBuffer.isView(n)&&"Uint8Array"===n.constructor.name))throw new Error("Uint8Array expected");var n;if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function s(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.createHasher");i(e.outputLen),i(e.blockLen)}function o(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){a(e);const n=t.outputLen;if(e.length>>t}function h(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}const p=(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])()?e=>e:function(e){for(let t=0;te().update(m(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function v(e=32){if(r&&"function"==typeof r.getRandomValues)return r.getRandomValues(new Uint8Array(e));if(r&&"function"==typeof r.randomBytes)return Uint8Array.from(r.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}},40924(e,t,n){var r=n(71822),i=n(72258).Buffer,a=n(71657);function s(e){var t=e._cipher.encryptBlockRaw(e._prev);return a(e._prev),t}t.encrypt=function(e,t){var n=Math.ceil(t.length/16),a=e._cache.length;e._cache=i.concat([e._cache,i.allocUnsafe(16*n)]);for(var o=0;oi,SK:()=>a,hX:()=>s});var r=n(2273);class i extends r.C{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class a extends r.C{constructor({length:e,position:t}){super(`Position \`${t}\` is out of bounds (\`0 < position < ${e}\`).`,{name:"PositionOutOfBoundsError"})}}class s extends r.C{constructor({count:e,limit:t}){super(`Recursive read limit of \`${t}\` exceeded (recursive read count: \`${e}\`).`,{name:"RecursiveReadLimitExceededError"})}}},41498(e,t,n){"use strict";var r=n(42649),i=65536,a=n(72258).Buffer,s=n.g.crypto||n.g.msCrypto;s&&s.getRandomValues?e.exports=function(e,t){if(e>4294967295)throw new RangeError("requested too many random bytes");var n=a.allocUnsafe(e);if(e>0)if(e>i)for(var o=0;oc});var r=n(74014),i=n(15100),a=n(88924),s=n(66893),o=n(26015),u=n(3951);async function c(e,t){return c.internal(e,u.v,"sendTransaction",t)}!function(e){e.internal=async function(e,t,n,u){const{abi:c,account:l=e.account,address:f,args:d,dataSuffix:h,functionName:p,...m}=u;if(void 0===l)throw new i.T({docsPath:"/docs/contract/writeContract"});const y=l?(0,r.J)(l):null,b=(0,a.p)({abi:c,args:d,functionName:p});try{return await(0,o.T)(e,t,n)({data:`${b}${h?h.replace("0x",""):""}`,to:f,account:y,...m})}catch(e){throw(0,s.j)(e,{abi:c,address:f,args:d,docsPath:"/docs/contract/writeContract",functionName:p,sender:y?.address})}}}(c||(c={}))},42169(e,t,n){"use strict";n.d(t,{c:()=>u});var r=n(74014),i=n(19512),a=n(83815),s=n(61355),o=n(462);function u(e){const{account:t,maxFeePerGas:n,maxPriorityFeePerGas:u,to:c}=e,l=t?(0,r.J)(t):void 0;if(l&&!(0,o.P)(l.address))throw new a.M({address:l.address});if(c&&!(0,o.P)(c))throw new a.M({address:c});if(n&&n>i.Ao)throw new s.BG({maxFeePerGas:n});if(u&&n&&u>n)throw new s.lN({maxFeePerGas:n,maxPriorityFeePerGas:u})}},42295(e,t,n){"use strict";e.exports=n(52387)},42649(e){var t,n,r=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{n="function"==typeof clearTimeout?clearTimeout:a}catch(e){n=a}}();var o,u=[],c=!1,l=-1;function f(){c&&o&&(c=!1,o.length?u=o.concat(u):l=-1,u.length&&d())}function d(){if(!c){var e=s(f);c=!0;for(var t=u.length;t;){for(o=u,u=[];++l1)for(var n=1;nMath.pow(2,16)-1||parseInt(t.scope)>Math.pow(2,16)-1||parseInt(t.keyIndex)>Math.pow(2,21)-1)throw new Error("invalid path with value exceeding its limits");return e},i=function(e){return function(){var t=n(e);return parseInt(t.account)*Math.pow(2,37)+parseInt(t.scope)*Math.pow(2,21)+parseInt(t.keyIndex)}};t.KeyPath=function(e){return{value:r(e),parse:function(){return n(e)},next:function(r){return function(e,r){var i=n(e),a=parseInt(i.keyIndex),s=void 0!==r&&r>1?r:1,o="m/"+i.account+"/"+i.scope+"/"+(a+s).toString(10);return(0,t.KeyPath)(o)}(e,r)},valueOf:i(e)}}},43475(e,t,n){"use strict";e.exports=i;var r=n(27825);function i(e){if(!(this instanceof i))return new i(e);r.call(this,e)}n(33213)(i,r),i.prototype._transform=function(e,t,n){n(null,e)}},44114(e,t,n){"use strict";var r=n(33213),i=n(96811),a=n(72258).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],o=new Array(80);function u(){this.init(),this._w=o,i.call(this,64,56)}function c(e){return e<<1|e>>>31}function l(e){return e<<5|e>>>27}function f(e){return e<<30|e>>>2}function d(e,t,n,r){return 0===e?t&n|~t&r:2===e?t&n|t&r|n&r:t^n^r}r(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(e){for(var t=this._w,n=0|this._a,r=0|this._b,i=0|this._c,a=0|this._d,o=0|this._e,u=0;u<16;++u)t[u]=e.readInt32BE(4*u);for(;u<80;++u)t[u]=c(t[u-3]^t[u-8]^t[u-14]^t[u-16]);for(var h=0;h<80;++h){var p=~~(h/20),m=l(n)+d(p,r,i,a)+o+t[h]+s[p]|0;o=a,a=i,i=f(r),r=n,n=m}this._a=n+this._a|0,this._b=r+this._b|0,this._c=i+this._c|0,this._d=a+this._d|0,this._e=o+this._e|0},u.prototype._hash=function(){var e=a.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=u},44166(e,t,n){"use strict";n.d(t,{G:()=>a});const r=new Map,i=new Map;async function a(e,{cacheTime:t=e.cacheTime}={}){const n=await async function(e,{cacheKey:t,cacheTime:n=Number.POSITIVE_INFINITY}){const a=function(e){const t=(e,t)=>({clear:()=>t.delete(e),get:()=>t.get(e),set:n=>t.set(e,n)}),n=t(e,r),a=t(e,i);return{clear:()=>{n.clear(),a.clear()},promise:n,response:a}}(t),s=a.response.get();if(s&&n>0&&Date.now()-s.created.getTime()e.request({method:"eth_blockNumber"}),{cacheKey:(a=e.uid,`blockNumber.${a}`),cacheTime:t});var a;return BigInt(n)}},44535(e,t,n){"use strict";n.d(t,{RR:()=>o,pw:()=>s,sM:()=>a});var r=n(60077),i=n(2273);class a extends i.C{constructor(){super("`baseFeeMultiplier` must be greater than 1.",{name:"BaseFeeScalarError"})}}class s extends i.C{constructor(){super("Chain does not support EIP-1559 fees.",{name:"Eip1559FeesNotSupportedError"})}}class o extends i.C{constructor({maxPriorityFeePerGas:e}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${(0,r.Q)(e)} gwei).`,{name:"MaxFeePerGasTooLowError"})}}},44720(e,t,n){"use strict";n.d(t,{p:()=>u});var r=n(97668),i=n(81127),a=n(35593),s=n(18056),o=n(59398);function u(e){const{abi:t,args:n,logs:u,strict:c=!0}=e,l=(()=>{if(e.eventName)return Array.isArray(e.eventName)?e.eventName:[e.eventName]})();return u.map(e=>{const u=t.filter(t=>"event"===t.type&&e.topics[0]===(0,s.h)(t));if(0===u.length)return null;let f,d;for(const t of u)try{f=(0,o.j)({...e,abi:[t],strict:!0}),d=t;break}catch{}if(!f&&!c){d=u[0];try{f=(0,o.j)({...e,abi:[d],strict:!1})}catch{const t=d.inputs?.some(e=>!("name"in e&&e.name));return{...e,args:t?[]:{},eventName:d.name}}}return f&&d?l&&!l.includes(f.eventName)?null:function(e){const{args:t,inputs:n,matchArgs:s}=e;if(!s)return!0;if(!t)return!1;function o(e,t,n){try{return"address"===e.type?(0,r.h)(t,n):"string"===e.type||"bytes"===e.type?(0,a.S)((0,i.ZJ)(t))===n:t===n}catch{return!1}}return Array.isArray(t)&&Array.isArray(s)?s.every((e,r)=>{if(null==e)return!0;const i=n[r];return!!i&&(Array.isArray(e)?e:[e]).some(e=>o(i,e,t[r]))}):"object"==typeof t&&!Array.isArray(t)&&"object"==typeof s&&!Array.isArray(s)&&Object.entries(s).every(([e,r])=>{if(null==r)return!0;const i=n.find(t=>t.name===e);return!!i&&(Array.isArray(r)?r:[r]).some(n=>o(i,n,t[e]))})}({args:f.args,inputs:d.inputs,matchArgs:n})?{...f,...e}:null:null}).filter(Boolean)}},44815(e,t,n){"use strict";n.d(t,{E$:()=>P,Ej:()=>k,HS:()=>S,Ie:()=>y,KC:()=>O,L$:()=>R,L8:()=>g,Si:()=>_,TF:()=>A,TS:()=>L,Tj:()=>C,Tk:()=>M,Ts:()=>b,WQ:()=>I,bV:()=>T,fi:()=>p,iv:()=>N,jB:()=>D,jJ:()=>F,jT:()=>x,oC:()=>f,pb:()=>j,qI:()=>B,zN:()=>w,zu:()=>E,zx:()=>h,zy:()=>v});var r=n(72529),i=n(59329),a=n(46385),s=n(12717),o=n(66949),u=n(82884),c=n(49362);const l="effect/HashSet",f=Symbol.for(l),d={[f]:f,[Symbol.iterator](){return c.HP(this._keyMap)},[a.HR](){return a.PO(this,a.kg(a.tW(this._keyMap))(a.tW(l)))},[r.HR](e){return!!p(e)&&c.Ej(this._keyMap)===c.Ej(e._keyMap)&&r.aI(this._keyMap,e._keyMap)},toString(){return(0,s.GP)(this.toJSON())},toJSON(){return{_id:"HashSet",values:Array.from(this).map(s.U2)}},[s.FX](){return this.toJSON()},pipe(){return(0,o.tT)(this,arguments)}},h=e=>{const t=Object.create(d);return t._keyMap=e,t},p=e=>(0,u.i5)(e,f),m=h(c.Ie()),y=()=>m,b=e=>{const t=x(y());for(const n of e)I(t,n);return T(t)},g=(...e)=>{const t=x(y());for(const n of e)I(t,n);return T(t)},v=(0,i.XY)(2,(e,t)=>c.zy(e._keyMap,t)),w=(0,i.XY)(2,(e,t)=>{let n=!1;for(const r of e)if(n=t(r),n)break;return n}),_=(0,i.XY)(2,(e,t)=>!w(e,e=>!t(e))),S=(0,i.XY)(2,(e,t)=>_(e,e=>v(t,e))),E=e=>c.HP(e._keyMap),k=e=>c.Ej(e._keyMap),x=e=>h(c.jT(e._keyMap)),T=e=>(e._keyMap._editable=!1,e),M=(0,i.XY)(2,(e,t)=>{const n=x(e);return t(n),T(n)}),I=(0,i.XY)(2,(e,t)=>e._keyMap._editable?(c.hZ(t,!0)(e._keyMap),e):h(c.hZ(t,!0)(e._keyMap))),A=(0,i.XY)(2,(e,t)=>e._keyMap._editable?(c.TF(t)(e._keyMap),e):h(c.TF(t)(e._keyMap))),N=(0,i.XY)(2,(e,t)=>M(e,e=>{for(const n of t)A(e,n)})),P=(0,i.XY)(2,(e,t)=>M(y(),n=>{for(const r of t)v(r)(e)&&I(r)(n)})),O=(0,i.XY)(2,(e,t)=>M(y(),n=>{F(e,e=>I(n,e));for(const e of t)I(n,e)})),R=(0,i.XY)(2,(e,t)=>v(e,t)?A(e,t):I(e,t)),C=(0,i.XY)(2,(e,t)=>M(y(),n=>{F(e,e=>{const r=t(e);v(n,r)||I(n,r)})})),B=(0,i.XY)(2,(e,t)=>M(y(),n=>{F(e,e=>{for(const r of t(e))v(n,r)||I(n,r)})})),F=(0,i.XY)(2,(e,t)=>c.jJ(e._keyMap,(e,n)=>t(n))),L=(0,i.XY)(3,(e,t,n)=>c.TS(e._keyMap,t,(e,t,r)=>n(e,r))),j=(0,i.XY)(2,(e,t)=>M(y(),n=>{const r=E(e);let i;for(;!(i=r.next()).done;){const e=i.value;t(e)&&I(n,e)}})),D=(0,i.XY)(2,(e,t)=>{const n=E(e);let r;const i=x(y()),a=x(y());for(;!(r=n.next()).done;){const e=r.value;t(e)?I(i,e):I(a,e)}return[T(a),T(i)]})},45011(e,t,n){"use strict";n.d(t,{T:()=>x});var r=n(72021),i=n(22839),a=n(18318);function s(e){const t=(0,i.e)(e),n=[],s=e.length;for(let i=0;ivoid 0!==e).length>0)}({request:f})&&!s&&!r)try{return await async function(e,t){const{batchSize:n=1024,deployless:r=!1,wait:i=0}="object"==typeof e.batch?.multicall?e.batch.multicall:{},{blockNumber:a,blockTag:s=e.experimental_blockTag??"latest",data:o,to:u}=t,f=(()=>{if(r)return null;if(t.multicallAddress)return t.multicallAddress;if(e.chain)return(0,b.M)({blockNumber:a,chain:e.chain,contract:"multicall3"});throw new d.YE})(),m=("bigint"==typeof a?(0,g.cK)(a):void 0)||s,{schedule:v}=(0,S.u)({id:`${e.uid}.${m}`,wait:i,shouldSplitBatch(e){const t=e.reduce((e,{data:t})=>e+(t.length-2),0);return t>2*n},fn:async t=>{const n=t.map(e=>({allowFailure:!0,callData:e.data,target:e.to})),r=(0,y.p)({abi:c.v2,args:[n],functionName:"aggregate3"}),i=await e.request({method:"eth_call",params:[{...null===f?{data:T({code:l.Ez,data:r})}:{to:f,data:r}},m]});return(0,p.e)({abi:c.v2,args:[n],functionName:"aggregate3",data:i||"0x"})}}),[{returnData:w,success:_}]=await v({data:o,to:u});if(!_)throw new h.$S({data:w});return"0x"===w?{data:void 0}:{data:w}}(e,{...f,blockNumber:x,blockTag:M})}catch(e){if(!(e instanceof d.YE||e instanceof d.rj))throw e}const m=(()=>{const e=[f,n];return s&&r?[...e,s,r]:s?[...e,s]:r?[...e,{},r]:e})(),v=await e.request({method:"eth_call",params:m});return"0x"===v?{data:void 0}:{data:v}}catch(r){const i=function(e){if(!(e instanceof f.C))return;const t=e.walk();return"object"==typeof t?.data?t.data?.data:t.data}(r),{offchainLookup:a,offchainLookupSignature:s}=await n.e(96).then(n.bind(n,52366));if(!1!==e.ccipRead&&i?.slice(0,10)===s&&z)return{data:await a(e,{data:i,to:z})};if(G&&"0x101bb98d"===i?.slice(0,10))throw new h.Po({factory:R});throw(0,v.d)(r,{...t,account:Y,chain:e.chain})}}function T(e){const{code:t,data:n}=e;return(0,m.m)({abi:s(["constructor(bytes, bytes)"]),bytecode:l.LX,args:[t,n]})}},45264(e,t,n){"use strict";n.d(t,{secp256k1:()=>Me});var r=n(23777),i=n(40906);class a extends i.Vw{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,(0,i.sd)(e);const n=(0,i.ZJ)(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 r=this.blockLen,a=new Uint8Array(r);a.set(n.length>r?e.create().update(n).digest():n);for(let e=0;enew a(e,t).update(n).digest();s.create=(e,t)=>new a(e,t);const o=BigInt(0),u=BigInt(1);function c(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function l(e){if(!c(e))throw new Error("Uint8Array expected")}function f(e,t){if("boolean"!=typeof t)throw new Error(e+" boolean expected, got "+t)}function d(e){const t=e.toString(16);return 1&t.length?"0"+t:t}function h(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);return""===e?o:BigInt("0x"+e)}const p="function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex,m=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function y(e){if(l(e),p)return e.toHex();let t="";for(let n=0;n=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function g(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);if(p)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const r=new Uint8Array(n);for(let t=0,i=0;t"bigint"==typeof e&&o<=e;function T(e,t,n){return x(e)&&x(t)&&x(n)&&t<=e&&e(u<new Uint8Array(e),N=e=>Uint8Array.from(e),P={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||c(e),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 O(e,t,n={}){const r=(t,n,r)=>{const i=P[n];if("function"!=typeof i)throw new Error("invalid validator function");const a=e[t];if(!(r&&void 0===a||i(a,e)))throw new Error("param "+String(t)+" is invalid. Expected "+n+", got "+a)};for(const[e,n]of Object.entries(t))r(e,n,!1);for(const[e,t]of Object.entries(n))r(e,t,!0);return e}function R(e){const t=new WeakMap;return(n,...r)=>{const i=t.get(n);if(void 0!==i)return i;const a=e(n,...r);return t.set(n,a),a}}const C=BigInt(0),B=BigInt(1),F=BigInt(2),L=BigInt(3),j=BigInt(4),D=BigInt(5),U=BigInt(8);function z(e,t){const n=e%t;return n>=C?n:t+n}function $(e,t,n){let r=e;for(;t-- >C;)r*=r,r%=n;return r}function V(e,t){if(e===C)throw new Error("invert: expected non-zero number");if(t<=C)throw new Error("invert: expected positive modulus, got "+t);let n=z(e,t),r=t,i=C,a=B,s=B,o=C;for(;n!==C;){const e=r/n,t=r%n,u=i-s*e,c=a-o*e;r=n,n=t,i=s,a=o,s=u,o=c}if(r!==B)throw new Error("invert: does not exist");return z(i,t)}function K(e,t){const n=(e.ORDER+B)/j,r=e.pow(t,n);if(!e.eql(e.sqr(r),t))throw new Error("Cannot find square root");return r}function Y(e,t){const n=(e.ORDER-D)/U,r=e.mul(t,F),i=e.pow(r,n),a=e.mul(t,i),s=e.mul(e.mul(a,F),i),o=e.mul(a,e.sub(s,e.ONE));if(!e.eql(e.sqr(o),t))throw new Error("Cannot find square root");return o}const q=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function H(e,t,n=!1){const r=new Array(t.length).fill(n?e.ZERO:void 0),i=t.reduce((t,n,i)=>e.is0(n)?t:(r[i]=t,e.mul(t,n)),e.ONE),a=e.inv(i);return t.reduceRight((t,n,i)=>e.is0(n)?t:(r[i]=e.mul(t,r[i]),e.mul(t,n)),a),r}function G(e,t){const n=(e.ORDER-B)/F,r=e.pow(t,n),i=e.eql(r,e.ONE),a=e.eql(r,e.ZERO),s=e.eql(r,e.neg(e.ONE));if(!i&&!a&&!s)throw new Error("invalid Legendre symbol result");return i?1:a?0:-1}function W(e,t){void 0!==t&&(0,i.Fe)(t);const n=void 0!==t?t:e.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function X(e,t,n=!1,r={}){if(e<=C)throw new Error("invalid field: expected ORDER > 0, got "+e);const{nBitLength:i,nByteLength:a}=W(e,t);if(a>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let s;const o=Object.freeze({ORDER:e,isLE:n,BITS:i,BYTES:a,MASK:I(i),ZERO:C,ONE:B,create:t=>z(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("invalid field element: expected bigint, got "+typeof t);return C<=t&&te===C,isOdd:e=>(e&B)===B,neg:t=>z(-t,e),eql:(e,t)=>e===t,sqr:t=>z(t*t,e),add:(t,n)=>z(t+n,e),sub:(t,n)=>z(t-n,e),mul:(t,n)=>z(t*n,e),pow:(e,t)=>function(e,t,n){if(nC;)n&B&&(r=e.mul(r,i)),i=e.sqr(i),n>>=B;return r}(o,e,t),div:(t,n)=>z(t*V(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>V(t,e),sqrt:r.sqrt||(t=>{return s||(s=(n=e)%j===L?K:n%U===D?Y:function(e){if(e1e3)throw new Error("Cannot find square root: probably non-prime P");if(1===n)return K;let a=i.pow(r,t);const s=(t+B)/F;return function(e,r){if(e.is0(r))return r;if(1!==G(e,r))throw new Error("Cannot find square root");let i=n,o=e.mul(e.ONE,a),u=e.pow(r,t),c=e.pow(r,s);for(;!e.eql(u,e.ONE);){if(e.is0(u))return e.ZERO;let t=1,n=e.sqr(u);for(;!e.eql(n,e.ONE);)if(t++,n=e.sqr(n),t===i)throw new Error("Cannot find square root");const r=B<n?S(e,a):_(e,a),fromBytes:e=>{if(e.length!==a)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+e.length);return n?w(e):v(e)},invertBatch:e=>H(o,e),cmov:(e,t,n)=>n?t:e});return Object.freeze(o)}function J(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 Z(e){const t=J(e);return t+Math.ceil(t/2)}const Q=BigInt(0),ee=BigInt(1);function te(e,t){const n=t.negate();return e?n:t}function ne(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function re(e,t){ne(e,t);const n=2**e;return{windows:Math.ceil(t/e)+1,windowSize:2**(e-1),mask:I(e),maxNumber:n,shiftBy:BigInt(e)}}function ie(e,t,n){const{windowSize:r,mask:i,maxNumber:a,shiftBy:s}=n;let o=Number(e&i),u=e>>s;o>r&&(o-=a,u+=ee);const c=t*r;return{nextN:u,offset:c+Math.abs(o)-1,isZero:0===o,isNeg:o<0,isNegF:t%2!=0,offsetF:c}}const ae=new WeakMap,se=new WeakMap;function oe(e){return se.get(e)||1}function ue(e,t,n,r){(function(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((e,n)=>{if(!(e instanceof t))throw new Error("invalid point at index "+n)})})(n,e),function(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((e,n)=>{if(!t.isValid(e))throw new Error("invalid scalar at index "+n)})}(r,t);const i=n.length,a=r.length;if(i!==a)throw new Error("arrays of points and scalars must have equal length");const s=e.ZERO,c=function(e){let t;for(t=0;e>o;e>>=u,t+=1);return t}(BigInt(i));let l=1;c>12?l=c-3:c>4?l=c-2:c>0&&(l=2);const f=I(l),d=new Array(Number(f)+1).fill(s);let h=s;for(let e=Math.floor((t.BITS-1)/l)*l;e>=0;e-=l){d.fill(s);for(let t=0;t>BigInt(e)&f);d[a]=d[a].add(n[t])}let t=s;for(let e=d.length-1,n=s;e>0;e--)n=n.add(d[e]),t=t.add(n);if(h=h.add(t),0!==e)for(let e=0;e(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"})),O(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...W(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}function le(e){void 0!==e.lowS&&f("lowS",e.lowS),void 0!==e.prehash&&f("prehash",e.prehash)}class fe extends Error{constructor(e=""){super(e)}}const de={Err:fe,_tlv:{encode:(e,t)=>{const{Err:n}=de;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(1&t.length)throw new n("tlv.encode: unpadded data");const r=t.length/2,i=d(r);if(i.length/2&128)throw new n("tlv.encode: long form length too big");const a=r>127?d(i.length/2|128):"";return d(e)+a+i+t},decode(e,t){const{Err:n}=de;let r=0;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length<2||t[r++]!==e)throw new n("tlv.decode: wrong tlv");const i=t[r++];let a=0;if(128&i){const e=127&i;if(!e)throw new n("tlv.decode(long): indefinite length not supported");if(e>4)throw new n("tlv.decode(long): byte length is too big");const s=t.subarray(r,r+e);if(s.length!==e)throw new n("tlv.decode: length bytes not complete");if(0===s[0])throw new n("tlv.decode(long): zero leftmost byte");for(const e of s)a=a<<8|e;if(r+=e,a<128)throw new n("tlv.decode(long): not minimal encoding")}else a=i;const s=t.subarray(r,r+a);if(s.length!==a)throw new n("tlv.decode: wrong value length");return{v:s,l:t.subarray(r+a)}}},_int:{encode(e){const{Err:t}=de;if(e{const i=t.toAffine();return k(Uint8Array.from([4]),n.toBytes(i.x),n.toBytes(i.y))}),a=t.fromBytes||(e=>{const t=e.subarray(1);return{x:n.fromBytes(t.subarray(0,n.BYTES)),y:n.fromBytes(t.subarray(n.BYTES,2*n.BYTES))}});function s(e){const{a:r,b:i}=t,a=n.sqr(e),s=n.mul(a,e);return n.add(n.add(s,n.mul(e,r)),i)}function o(e,t){const r=n.sqr(t),i=s(e);return n.eql(r,i)}if(!o(t.Gx,t.Gy))throw new Error("bad curve params: generator point");const u=n.mul(n.pow(t.a,ye),be),l=n.mul(n.sqr(t.b),BigInt(27));if(n.is0(n.add(u,l)))throw new Error("bad curve params: a or b");function d(e){const{allowedPrivateKeyLengths:n,nByteLength:r,wrapPrivateKey:i,n:a}=t;if(n&&"bigint"!=typeof e){if(c(e)&&(e=y(e)),"string"!=typeof e||!n.includes(e.length))throw new Error("invalid private key");e=e.padStart(2*r,"0")}let s;try{s="bigint"==typeof e?e:v(E("private key",e,r))}catch(t){throw new Error("invalid private key, expected hex or "+r+" bytes, got "+typeof e)}return i&&(s=z(s,a)),M("private key",s,me,a),s}function h(e){if(!(e instanceof b))throw new Error("ProjectivePoint expected")}const p=R((e,t)=>{const{px:r,py:i,pz:a}=e;if(n.eql(a,n.ONE))return{x:r,y:i};const s=e.is0();null==t&&(t=s?n.ONE:n.inv(a));const o=n.mul(r,t),u=n.mul(i,t),c=n.mul(a,t);if(s)return{x:n.ZERO,y:n.ZERO};if(!n.eql(c,n.ONE))throw new Error("invZ was invalid");return{x:o,y:u}}),m=R(e=>{if(e.is0()){if(t.allowInfinityPoint&&!n.is0(e.py))return;throw new Error("bad point: ZERO")}const{x:r,y:i}=e.toAffine();if(!n.isValid(r)||!n.isValid(i))throw new Error("bad point: x or y not FE");if(!o(r,i))throw new Error("bad point: equation left != right");if(!e.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class b{constructor(e,t,r){if(null==e||!n.isValid(e))throw new Error("x required");if(null==t||!n.isValid(t)||n.is0(t))throw new Error("y required");if(null==r||!n.isValid(r))throw new Error("z required");this.px=e,this.py=t,this.pz=r,Object.freeze(this)}static fromAffine(e){const{x:t,y:r}=e||{};if(!e||!n.isValid(t)||!n.isValid(r))throw new Error("invalid affine point");if(e instanceof b)throw new Error("projective point not allowed");const i=e=>n.eql(e,n.ZERO);return i(t)&&i(r)?b.ZERO:new b(t,r,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){const t=H(n,e.map(e=>e.pz));return e.map((e,n)=>e.toAffine(t[n])).map(b.fromAffine)}static fromHex(e){const t=b.fromAffine(a(E("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return b.BASE.multiply(d(e))}static msm(e,t){return ue(b,r,e,t)}_setWindowSize(e){_.setWindowSize(this,e)}assertValidity(){m(this)}hasEvenY(){const{y:e}=this.toAffine();if(n.isOdd)return!n.isOdd(e);throw new Error("Field doesn't support isOdd")}equals(e){h(e);const{px:t,py:r,pz:i}=this,{px:a,py:s,pz:o}=e,u=n.eql(n.mul(t,o),n.mul(a,i)),c=n.eql(n.mul(r,o),n.mul(s,i));return u&&c}negate(){return new b(this.px,n.neg(this.py),this.pz)}double(){const{a:e,b:r}=t,i=n.mul(r,ye),{px:a,py:s,pz:o}=this;let u=n.ZERO,c=n.ZERO,l=n.ZERO,f=n.mul(a,a),d=n.mul(s,s),h=n.mul(o,o),p=n.mul(a,s);return p=n.add(p,p),l=n.mul(a,o),l=n.add(l,l),u=n.mul(e,l),c=n.mul(i,h),c=n.add(u,c),u=n.sub(d,c),c=n.add(d,c),c=n.mul(u,c),u=n.mul(p,u),l=n.mul(i,l),h=n.mul(e,h),p=n.sub(f,h),p=n.mul(e,p),p=n.add(p,l),l=n.add(f,f),f=n.add(l,f),f=n.add(f,h),f=n.mul(f,p),c=n.add(c,f),h=n.mul(s,o),h=n.add(h,h),f=n.mul(h,p),u=n.sub(u,f),l=n.mul(h,d),l=n.add(l,l),l=n.add(l,l),new b(u,c,l)}add(e){h(e);const{px:r,py:i,pz:a}=this,{px:s,py:o,pz:u}=e;let c=n.ZERO,l=n.ZERO,f=n.ZERO;const d=t.a,p=n.mul(t.b,ye);let m=n.mul(r,s),y=n.mul(i,o),g=n.mul(a,u),v=n.add(r,i),w=n.add(s,o);v=n.mul(v,w),w=n.add(m,y),v=n.sub(v,w),w=n.add(r,a);let _=n.add(s,u);return w=n.mul(w,_),_=n.add(m,g),w=n.sub(w,_),_=n.add(i,a),c=n.add(o,u),_=n.mul(_,c),c=n.add(y,g),_=n.sub(_,c),f=n.mul(d,w),c=n.mul(p,g),f=n.add(c,f),c=n.sub(y,f),f=n.add(y,f),l=n.mul(c,f),y=n.add(m,m),y=n.add(y,m),g=n.mul(d,g),w=n.mul(p,w),y=n.add(y,g),g=n.sub(m,g),g=n.mul(d,g),w=n.add(w,g),m=n.mul(y,w),l=n.add(l,m),m=n.mul(_,w),c=n.mul(v,c),c=n.sub(c,m),m=n.mul(v,y),f=n.mul(_,f),f=n.add(f,m),new b(c,l,f)}subtract(e){return this.add(e.negate())}is0(){return this.equals(b.ZERO)}wNAF(e){return _.wNAFCached(this,e,b.normalizeZ)}multiplyUnsafe(e){const{endo:r,n:i}=t;M("scalar",e,pe,i);const a=b.ZERO;if(e===pe)return a;if(this.is0()||e===me)return this;if(!r||_.hasPrecomputes(this))return _.wNAFCachedUnsafe(this,e,b.normalizeZ);let{k1neg:s,k1:o,k2neg:u,k2:c}=r.splitScalar(e),l=a,f=a,d=this;for(;o>pe||c>pe;)o&me&&(l=l.add(d)),c&me&&(f=f.add(d)),d=d.double(),o>>=me,c>>=me;return s&&(l=l.negate()),u&&(f=f.negate()),f=new b(n.mul(f.px,r.beta),f.py,f.pz),l.add(f)}multiply(e){const{endo:r,n:i}=t;let a,s;if(M("scalar",e,me,i),r){const{k1neg:t,k1:i,k2neg:o,k2:u}=r.splitScalar(e);let{p:c,f:l}=this.wNAF(i),{p:f,f:d}=this.wNAF(u);c=_.constTimeNegate(t,c),f=_.constTimeNegate(o,f),f=new b(n.mul(f.px,r.beta),f.py,f.pz),a=c.add(f),s=l.add(d)}else{const{p:t,f:n}=this.wNAF(e);a=t,s=n}return b.normalizeZ([a,s])[0]}multiplyAndAddUnsafe(e,t,n){const r=b.BASE,i=(e,t)=>t!==pe&&t!==me&&e.equals(r)?e.multiply(t):e.multiplyUnsafe(t),a=i(this,t).add(i(e,n));return a.is0()?void 0:a}toAffine(e){return p(this,e)}isTorsionFree(){const{h:e,isTorsionFree:n}=t;if(e===me)return!0;if(n)return n(b,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:e,clearCofactor:n}=t;return e===me?this:n?n(b,this):this.multiplyUnsafe(t.h)}toRawBytes(e=!0){return f("isCompressed",e),this.assertValidity(),i(b,this,e)}toHex(e=!0){return f("isCompressed",e),y(this.toRawBytes(e))}}b.BASE=new b(t.Gx,t.Gy,n.ONE),b.ZERO=new b(n.ZERO,n.ONE,n.ZERO);const{endo:g,nBitLength:w}=t,_=(S=b,x=g?Math.ceil(w/2):w,{constTimeNegate:te,hasPrecomputes:e=>1!==oe(e),unsafeLadder(e,t,n=S.ZERO){let r=e;for(;t>Q;)t&ee&&(n=n.add(r)),r=r.double(),t>>=ee;return n},precomputeWindow(e,t){const{windows:n,windowSize:r}=re(t,x),i=[];let a=e,s=a;for(let e=0;er>>me}const x=(e,t,n)=>v(e.slice(t,n));class P{constructor(e,t,n){M("r",e,me,r),M("s",t,me,r),this.r=e,this.s=t,null!=n&&(this.recovery=n),Object.freeze(this)}static fromCompact(e){const t=i;return e=E("compactSignature",e,2*t),new P(x(e,0,t),x(e,t,2*t))}static fromDER(e){const{r:t,s:n}=de.toSig(E("DER",e));return new P(t,n)}assertValidity(){}addRecoveryBit(e){return new P(this.r,this.s,e)}recoverPublicKey(e){const{r,s:i,recovery:a}=this,s=j(E("msgHash",e));if(null==a||![0,1,2,3].includes(a))throw new Error("recovery id invalid");const o=2===a||3===a?r+t.n:r;if(o>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const c=1&a?"03":"02",f=d.fromHex(c+he(o,n.BYTES)),h=l(o),p=u(-s*h),m=u(i*h),y=d.BASE.multiplyAndAddUnsafe(f,p,m);if(!y)throw new Error("point at infinify");return y.assertValidity(),y}hasHighS(){return b(this.s)}normalizeS(){return this.hasHighS()?new P(this.r,u(-this.s),this.recovery):this}toDERRawBytes(){return g(this.toDERHex())}toDERHex(){return de.hexFromSig(this)}toCompactRawBytes(){return g(this.toCompactHex())}toCompactHex(){const e=i;return he(this.r,e)+he(this.s,e)}}const C={isValidPrivateKey(e){try{return h(e),!0}catch(e){return!1}},normPrivateKeyToScalar:h,randomPrivateKey:()=>{const e=Z(t.n);return function(e,t,n=!1){const r=e.length,i=J(t),a=Z(t);if(r<16||r1024)throw new Error("expected "+a+"-1024 bytes of input, got "+r);const s=z(n?w(e):v(e),t-B)+B;return n?S(s,i):_(s,i)}(t.randomBytes(e),t.n)},precompute:(e=8,t=d.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)};function F(e){if("bigint"==typeof e)return!1;if(e instanceof d)return!0;const r=E("key",e).length,a=n.BYTES,s=a+1,o=2*a+1;return t.allowedPrivateKeyLengths||i===s?void 0:r===s||r===o}const L=t.bits2int||function(e){if(e.length>8192)throw new Error("input is too large");const t=v(e),n=8*e.length-a;return n>0?t>>BigInt(n):t},j=t.bits2int_modN||function(e){return u(L(e))},D=I(a);function U(e){return M("num < 2^"+a,e,pe,D),_(e,i)}const $={lowS:t.lowS,prehash:!1},K={lowS:t.lowS,prehash:!1};return d.BASE._setWindowSize(8),{CURVE:t,getPublicKey:function(e,t=!0){return d.fromPrivateKey(e).toRawBytes(t)},getSharedSecret:function(e,t,n=!0){if(!0===F(e))throw new Error("first arg must be private key");if(!1===F(t))throw new Error("second arg must be public key");return d.fromHex(t).multiply(h(e)).toRawBytes(n)},sign:function(e,r,i=$){const{seed:a,k2sig:s}=function(e,r,i=$){if(["recovered","canonical"].some(e=>e in i))throw new Error("sign() legacy options not supported");const{hash:a,randomBytes:s}=t;let{lowS:o,prehash:c,extraEntropy:f}=i;null==o&&(o=!0),e=E("msgHash",e),le(i),c&&(e=E("prehashed msgHash",a(e)));const p=j(e),y=h(r),g=[U(y),U(p)];if(null!=f&&!1!==f){const e=!0===f?s(n.BYTES):f;g.push(E("extraEntropy",e))}const v=k(...g),w=p;return{seed:v,k2sig:function(e){const t=L(e);if(!m(t))return;const n=l(t),r=d.BASE.multiply(t).toAffine(),i=u(r.x);if(i===pe)return;const a=u(n*u(w+i*y));if(a===pe)return;let s=(r.x===i?0:2)|Number(r.y&me),c=a;return o&&b(a)&&(c=function(e){return b(e)?u(-e):e}(a),s^=1),new P(i,c,s)}}}(e,r,i),o=t;return function(e,t,n){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 n)throw new Error("hmacFn must be a function");let r=A(e),i=A(e),a=0;const s=()=>{r.fill(1),i.fill(0),a=0},o=(...e)=>n(i,r,...e),u=(e=A(0))=>{i=o(N([0]),e),r=o(),0!==e.length&&(i=o(N([1]),e),r=o())},c=()=>{if(a++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const n=[];for(;e{let n;for(s(),u(e);!(n=t(c()));)u();return s(),n}}(o.hash.outputLen,o.nByteLength,o.hmac)(a,s)},verify:function(e,n,r,i=K){const a=e;n=E("msgHash",n),r=E("publicKey",r);const{lowS:s,prehash:o,format:f}=i;if(le(i),"strict"in i)throw new Error("options.strict was renamed to lowS");if(void 0!==f&&"compact"!==f&&"der"!==f)throw new Error("format must be compact or der");const h="string"==typeof a||c(a),p=!h&&!f&&"object"==typeof a&&null!==a&&"bigint"==typeof a.r&&"bigint"==typeof a.s;if(!h&&!p)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let m,y;try{if(p&&(m=new P(a.r,a.s)),h){try{"compact"!==f&&(m=P.fromDER(a))}catch(e){if(!(e instanceof de.Err))throw e}m||"der"===f||(m=P.fromCompact(a))}y=d.fromHex(r)}catch(e){return!1}if(!m)return!1;if(s&&m.hasHighS())return!1;o&&(n=t.hash(n));const{r:b,s:g}=m,v=j(n),w=l(g),_=u(v*w),S=u(b*w),k=d.BASE.multiplyAndAddUnsafe(y,_,S)?.toAffine();return!!k&&u(k.x)===b},ProjectivePoint:d,Signature:P,utils:C}}function ve(e){return{hash:e,hmac:(t,...n)=>s(e,t,(0,i.Id)(...n)),randomBytes:i.po}}const we=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),_e=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Se=BigInt(0),Ee=BigInt(1),ke=BigInt(2),xe=(e,t)=>(e+t/ke)/t;const Te=X(we,void 0,void 0,{sqrt:function(e){const t=we,n=BigInt(3),r=BigInt(6),i=BigInt(11),a=BigInt(22),s=BigInt(23),o=BigInt(44),u=BigInt(88),c=e*e*e%t,l=c*c*e%t,f=$(l,n,t)*l%t,d=$(f,n,t)*l%t,h=$(d,ke,t)*c%t,p=$(h,i,t)*h%t,m=$(p,a,t)*p%t,y=$(m,o,t)*m%t,b=$(y,u,t)*y%t,g=$(b,o,t)*m%t,v=$(g,n,t)*l%t,w=$(v,s,t)*p%t,_=$(w,r,t)*c%t,S=$(_,ke,t);if(!Te.eql(Te.sqr(S),e))throw new Error("Cannot find square root");return S}}),Me=function(e,t){const n=t=>ge({...e,...ve(t)});return{...n(t),create:n}}({a:Se,b:BigInt(7),Fp:Te,n:_e,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=_e,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-Ee*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),a=n,s=BigInt("0x100000000000000000000000000000000"),o=xe(a*e,t),u=xe(-r*e,t);let c=z(e-o*n-u*i,t),l=z(-o*r-u*a,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}}}},r.sc)},45366(e){function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},45775(e,t,n){"use strict";var r=n(71942),i=n(39886),a=n(33140),s=n(85984),o=n(51305).pbkdf2Sync,u=n(72258).Buffer;function c(e){var t;"object"!=typeof e||u.isBuffer(e)||(t=e.passphrase,e=e.key),"string"==typeof e&&(e=u.from(e));var n,c,l=a(e,t),f=l.tag,d=l.data;switch(f){case"CERTIFICATE":c=r.certificate.decode(d,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(c||(c=r.PublicKey.decode(d,"der")),n=c.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return r.RSAPublicKey.decode(c.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return c.subjectPrivateKey=c.subjectPublicKey,{type:"ec",data:c};case"1.2.840.10040.4.1":return c.algorithm.params.pub_key=r.DSAparam.decode(c.subjectPublicKey.data,"der"),{type:"dsa",data:c.algorithm.params};default:throw new Error("unknown key id "+n)}case"ENCRYPTED PRIVATE KEY":d=function(e,t){var n=e.algorithm.decrypt.kde.kdeparams.salt,r=parseInt(e.algorithm.decrypt.kde.kdeparams.iters.toString(),10),a=i[e.algorithm.decrypt.cipher.algo.join(".")],c=e.algorithm.decrypt.cipher.iv,l=e.subjectPrivateKey,f=parseInt(a.split("-")[1],10)/8,d=o(t,n,r,f,"sha1"),h=s.createDecipheriv(a,d,c),p=[];return p.push(h.update(l)),p.push(h.final()),u.concat(p)}(d=r.EncryptedPrivateKey.decode(d,"der"),t);case"PRIVATE KEY":switch(n=(c=r.PrivateKey.decode(d,"der")).algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return r.RSAPrivateKey.decode(c.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:c.algorithm.curve,privateKey:r.ECPrivateKey.decode(c.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return c.algorithm.params.priv_key=r.DSAparam.decode(c.subjectPrivateKey,"der"),{type:"dsa",params:c.algorithm.params};default:throw new Error("unknown key id "+n)}case"RSA PUBLIC KEY":return r.RSAPublicKey.decode(d,"der");case"RSA PRIVATE KEY":return r.RSAPrivateKey.decode(d,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:r.DSAPrivateKey.decode(d,"der")};case"EC PRIVATE KEY":return{curve:(d=r.ECPrivateKey.decode(d,"der")).parameters.value,privateKey:d.privateKey};default:throw new Error("unknown key type "+f)}}c.signature=r.signature,e.exports=c},45898(e,t,n){"use strict";n.d(t,{u:()=>a});var r=n(3320);const i=new Map;function a({fn:e,id:t,shouldSplitBatch:n,wait:a=0,sort:s}){const o=async()=>{const t=c();u();const n=t.map(({args:e})=>e);0!==n.length&&e(n).then(e=>{s&&Array.isArray(e)&&e.sort(s);for(let n=0;n{for(let n=0;ni.delete(t),c=()=>i.get(t)||[],l=e=>i.set(t,[...c(),e]);return{flush:u,async schedule(e){const{promise:t,resolve:i,reject:s}=(0,r.Y)(),u=n?.([...c().map(({args:e})=>e),e]);return u&&o(),c().length>0?(l({args:e,resolve:i,reject:s}),t):(l({args:e,resolve:i,reject:s}),setTimeout(o,a),t)}}}},46082(e,t,n){"use strict";n.d(t,{F6:()=>p,Ie:()=>f,Ui:()=>d,kg:()=>h});var r=n(28062),i=n(72529),a=n(59329),s=n(35191);const o="Empty",u="Remove",c="Update",l="AndThen",f={_tag:o},d=(e,t)=>{const n=new Map(e.locals);let a=f;for(const[e,s]of t.locals.entries()){const t=r.v4(s)[1],o=n.get(e);if(void 0!==o){const n=r.v4(o)[1];(0,i.aI)(n,t)||(a=h({_tag:c,fiberRef:e,patch:e.diff(n,t)})(a))}else a=h({_tag:"Add",fiberRef:e,value:t})(a);n.delete(e)}for(const[e]of n.entries())a=h({_tag:u,fiberRef:e})(a);return a},h=(0,a.XY)(2,(e,t)=>({_tag:l,first:e,second:t})),p=(0,a.XY)(3,(e,t,n)=>{let i=n,a=r.of(e);for(;r.iI(a);){const e=r.v4(a),n=r.Rx(a);switch(e._tag){case o:a=n;break;case"Add":i=s.aI(i,{fiberId:t,fiberRef:e.fiberRef,value:e.value}),a=n;break;case u:i=s.Rt(i,e.fiberRef),a=n;break;case c:{const r=s.Fh(i,e.fiberRef);i=s.aI(i,{fiberId:t,fiberRef:e.fiberRef,value:e.fiberRef.patch(e.patch)(r)}),a=n;break}case l:a=r.Hs(e.first)(r.Hs(e.second)(n))}}return i})},46385(e,t,n){"use strict";n.d(t,{HR:()=>u,PO:()=>g,QK:()=>y,YO:()=>b,Yj:()=>m,ai:()=>p,kg:()=>f,tW:()=>c,yT:()=>l});var r=n(59329),i=n(55661),a=n(82884),s=n(95644);const o=(0,i.V)(Symbol.for("effect/Hash/randomHashCache"),()=>new WeakMap),u=Symbol.for("effect/Hash"),c=e=>{if(!0===s.Hi.enabled)return 0;switch(typeof e){case"number":return p(e);case"bigint":return m(e.toString(10));case"boolean":case"symbol":return m(String(e));case"string":return m(e);case"undefined":return m("undefined");case"function":case"object":return null===e?m("null"):e instanceof Date?Number.isNaN(e.getTime())?m("Invalid Date"):c(e.toISOString()):e instanceof URL?c(e.href):h(e)?e[u]():l(e);default:throw new Error(`BUG: unhandled typeof ${typeof e} - please report an issue at https://github.com/Effect-TS/effect/issues`)}},l=e=>(o.has(e)||o.set(e,p(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER))),o.get(e)),f=e=>t=>53*t^e,d=e=>3221225471&e|e>>>1&1073741824,h=e=>(0,a.i5)(e,u),p=e=>{if(e!=e||e===1/0)return 0;let t=0|e;for(t!==e&&(t^=4294967295*e);e>4294967295;)t^=e/=4294967295;return d(t)},m=e=>{let t=5381,n=e.length;for(;n;)t=33*t^e.charCodeAt(--n);return d(t)},y=e=>((e,t)=>{let n=12289;for(let i=0;i{let t=6151;for(let n=0;nt,enumerable:!1}),t}}const e=arguments[0],t=arguments[1];return Object.defineProperty(e,u,{value:()=>t,enumerable:!1}),t}},46644(e,t,n){"use strict";n.d(t,{w:()=>i});var r=n(10616);function i(e,{emitOnBegin:t,initialWaitTime:n,interval:i}){let a=!0;const s=()=>a=!1;return(async()=>{let o;t&&(o=await e({unpoll:s}));const u=await(n?.(o))??i;await(0,r.u)(u);const c=async()=>{a&&(await e({unpoll:s}),await(0,r.u)(i),c())};c()})(),s}},47055(e,t,n){"use strict";var r=n(40371).Buffer,i=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=u,this.end=c,t=4;break;case"utf8":this.fillLast=o,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=d,void(this.end=h)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function s(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function o(e){var t=this.lastTotal-this.lastNeed,n=function(e,t){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function u(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function d(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}t.I=a,a.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0?(i>0&&(e.lastNeed=i-1),i):--r=0?(i>0&&(e.lastNeed=i-2),i):--r=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},a.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},47104(e){e.exports=function(e,t){for(var n=e.length,r=-1;++ro});var r=n(35593),i=n(33640),a=n(85501),s=n(75209);function o(e,t){return(0,r.S)(function(e){const t="string"==typeof e?(0,s.i3)(e):"string"==typeof e.raw?e.raw:(0,s.My)(e.raw),n=(0,s.i3)(`Ethereum Signed Message:\n${(0,a.E)(t)}`);return(0,i.xW)([n,t])}(e),t)}},47457(e,t,n){"use strict";n.d(t,{b4:()=>a,gU:()=>o,uP:()=>s});var r=n(58038),i=n(31963);const a={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function s(e,t){const n={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?(0,r.ME)(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?(0,r.ME)(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?a[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(n.authorizationList=e.authorizationList.map(e=>({address:e.address,chainId:Number(e.chainId),nonce:Number(e.nonce),r:e.r,s:e.s,yParity:Number(e.yParity)}))),n.yParity=(()=>{if(e.yParity)return Number(e.yParity);if("bigint"==typeof n.v){if(0n===n.v||27n===n.v)return 0;if(1n===n.v||28n===n.v)return 1;if(n.v>=35n)return n.v%2n==0n?1:0}})(),"legacy"===n.type&&(delete n.accessList,delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas,delete n.yParity),"eip2930"===n.type&&(delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas),"eip1559"===n.type&&delete n.maxFeePerBlobGas,n}const o=(0,i.q)("transaction",s)},47586(e,t,n){"use strict";n.d(t,{B4:()=>p,CQ:()=>_,CW:()=>w,Ei:()=>d,F8:()=>S,P5:()=>h,TH:()=>E,Vl:()=>g,Vr:()=>v,WM:()=>m,WQ:()=>b,im:()=>y,jm:()=>u,lD:()=>s,qh:()=>f,rE:()=>c,ry:()=>l,xn:()=>o});const r=BigInt(2**32-1),i=BigInt(32);function a(e,t=!1){return t?{h:Number(e&r),l:Number(e>>i&r)}:{h:0|Number(e>>i&r),l:0|Number(e&r)}}function s(e,t=!1){const n=e.length;let r=new Uint32Array(n),i=new Uint32Array(n);for(let s=0;se>>>n,u=(e,t,n)=>e<<32-n|t>>>n,c=(e,t,n)=>e>>>n|t<<32-n,l=(e,t,n)=>e<<32-n|t>>>n,f=(e,t,n)=>e<<64-n|t>>>n-32,d=(e,t,n)=>e>>>n-32|t<<64-n,h=(e,t,n)=>e<>>32-n,p=(e,t,n)=>t<>>32-n,m=(e,t,n)=>t<>>64-n,y=(e,t,n)=>e<>>64-n;function b(e,t,n,r){const i=(t>>>0)+(r>>>0);return{h:e+n+(i/2**32|0)|0,l:0|i}}const g=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),v=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,w=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),_=(e,t,n,r,i)=>t+n+r+i+(e/2**32|0)|0,S=(e,t,n,r,i)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(i>>>0),E=(e,t,n,r,i,a)=>t+n+r+i+a+(e/2**32|0)|0},47726(e,t,n){"use strict";n.d(t,{$v:()=>l,Ie:()=>s,Io:()=>i,Jt:()=>c,L8:()=>o,Or:()=>p,Um:()=>h,WQ:()=>u,aE:()=>a,h1:()=>d,om:()=>f});var r=n(11264);r.Sr,r.lN;const i=r.KA,a=(r.ii,r.og,r.aE),s=(r.dz,r.A_,r.Ie),o=r.L8,u=r.WQ,c=r.Jt,l=(r.Do,r.$v),f=r.om,d=r.h1,h=r.Um,p=(r.Up,r.cJ,r.vw,r.Or)},48268(e,t,n){"use strict";var r=n(42649),i=Symbol.for("react.transitional.element"),a=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),u=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),l=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),h=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),m=Symbol.for("react.activity"),y=Symbol.iterator,b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,v={};function w(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||b}function _(){}function S(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||b}w.prototype.isReactComponent={},w.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},w.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},_.prototype=w.prototype;var E=S.prototype=new _;E.constructor=S,g(E,w.prototype),E.isPureReactComponent=!0;var k=Array.isArray;function x(){}var T={H:null,A:null,T:null,S:null},M=Object.prototype.hasOwnProperty;function I(e,t,n){var r=n.ref;return{$$typeof:i,type:e,key:t,ref:void 0!==r?r:null,props:n}}function A(e){return"object"==typeof e&&null!==e&&e.$$typeof===i}var N=/\/+/g;function P(e,t){return"object"==typeof e&&null!==e&&null!=e.key?(n=""+e.key,r={"=":"=0",":":"=2"},"$"+n.replace(/[=:]/g,function(e){return r[e]})):t.toString(36);var n,r}function O(e,t,n,r,s){var o=typeof e;"undefined"!==o&&"boolean"!==o||(e=null);var u,c,l=!1;if(null===e)l=!0;else switch(o){case"bigint":case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case i:case a:l=!0;break;case p:return O((l=e._init)(e._payload),t,n,r,s)}}if(l)return s=s(e),l=""===r?"."+P(e,0):r,k(s)?(n="",null!=l&&(n=l.replace(N,"$&/")+"/"),O(s,t,n,"",function(e){return e})):null!=s&&(A(s)&&(u=s,c=n+(null==s.key||e&&e.key===s.key?"":(""+s.key).replace(N,"$&/")+"/")+l,s=I(u.type,c,u.props)),t.push(s)),1;l=0;var f,d=""===r?".":r+":";if(k(e))for(var h=0;hw,Ie:()=>d,Ui:()=>g,kg:()=>v,zo:()=>o});var r=n(28062),i=n(72529),a=n(59329),s=n(53487);const o=Symbol.for("effect/DifferReadonlyArrayPatch");function u(e){return e}const c={...s.wC.prototype,[o]:{_Value:u,_Patch:u}},l=Object.assign(Object.create(c),{_tag:"Empty"}),f=Object.create(l),d=()=>f,h=Object.assign(Object.create(c),{_tag:"AndThen"}),p=Object.assign(Object.create(c),{_tag:"Append"}),m=Object.assign(Object.create(c),{_tag:"Slice"}),y=Object.assign(Object.create(c),{_tag:"Update"}),b=(e,t)=>{const n=Object.create(y);return n.index=e,n.patch=t,n},g=e=>{let t=0,n=d();for(;t{const n=Object.create(m);return n.from=0,n.until=t,n})(0,t))),t{const t=Object.create(p);return t.values=e,t})(r.gv(t)(e.newValue)))),n},v=a.XY(2,(e,t)=>((e,t)=>{const n=Object.create(h);return n.first=e,n.second=t,n})(e,t)),w=a.XY(3,(e,t,n)=>{if("Empty"===e._tag)return t;let i=t.slice(),a=r.of(e);for(;r.EI(a);){const e=r.v4(a),t=r.Rx(a);switch(e._tag){case"Empty":a=t;break;case"AndThen":t.unshift(e.first,e.second),a=t;break;case"Append":for(const t of e.values)i.push(t);a=t;break;case"Slice":i=i.slice(e.from,e.until),a=t;break;case"Update":i[e.index]=n.patch(e.patch,i[e.index]),a=t}}return i})},49066(e,t,n){var r=n(73730).Buffer,i=n(71822);function a(e){return e._prev=e._cipher.encryptBlock(e._prev),e._prev}t.encrypt=function(e,t){for(;e._cache.lengthS,Ie:()=>h,Ui:()=>w,kg:()=>_,ys:()=>u});var r=n(17388),i=n(72529),a=n(59329),s=n(91269),o=n(53487);const u=Symbol.for("effect/DifferHashMapPatch");function c(e){return e}const l={...o.wC.prototype,[u]:{_Value:c,_Key:c,_Patch:c}},f=Object.assign(Object.create(l),{_tag:"Empty"}),d=Object.create(f),h=()=>d,p=Object.assign(Object.create(l),{_tag:"AndThen"}),m=Object.assign(Object.create(l),{_tag:"Add"}),y=(e,t)=>{const n=Object.create(m);return n.key=e,n.value=t,n},b=Object.assign(Object.create(l),{_tag:"Remove"}),g=Object.assign(Object.create(l),{_tag:"Update"}),v=(e,t)=>{const n=Object.create(g);return n.key=e,n.patch=t,n},w=e=>{const[t,n]=s.TS([e.oldValue,h()],([t,n],r,a)=>{const o=s.Jt(a)(t);switch(o._tag){case"Some":{const u=e.differ.diff(o.value,r);return i.aI(u,e.differ.empty)?[s.TF(a)(t),n]:[s.TF(a)(t),_(v(a,u))(n)]}case"None":return[t,_(y(a,r))(n)]}})(e.newValue);return s.TS(n,(e,t,n)=>_((e=>{const t=Object.create(b);return t.key=e,t})(n))(e))(t)},_=a.XY(2,(e,t)=>((e,t)=>{const n=Object.create(p);return n.first=e,n.second=t,n})(e,t)),S=a.XY(3,(e,t,n)=>{if("Empty"===e._tag)return t;let i=t,a=r.of(e);for(;r.J_(a);){const e=r.v4(a),t=r.Rx(a);switch(e._tag){case"Empty":a=t;break;case"AndThen":a=r.Hs(e.first)(r.Hs(e.second)(t));break;case"Add":i=s.hZ(e.key,e.value)(i),a=t;break;case"Remove":i=s.TF(e.key)(i),a=t;break;case"Update":{const r=s.Jt(e.key)(i);"Some"===r._tag&&(i=s.hZ(e.key,n.patch(e.patch,r.value))(i)),a=t;break}}}return i})},49362(e,t,n){"use strict";n.d(t,{eY:()=>N,jT:()=>ne,oE:()=>ye,Tr:()=>te,Ie:()=>j,bV:()=>re,jO:()=>Q,Si:()=>we,pb:()=>me,x1:()=>be,i8:()=>ge,qI:()=>de,jJ:()=>he,Ts:()=>U,Jt:()=>V,Zd:()=>K,zy:()=>q,it:()=>G,Fp:()=>H,Im:()=>$,Fu:()=>z,HP:()=>J,L8:()=>D,Tj:()=>fe,JP:()=>oe,qt:()=>ae,Nt:()=>se,Tk:()=>ie,TS:()=>pe,TF:()=>ce,kg:()=>le,hZ:()=>W,Ej:()=>ee,zN:()=>ve,KC:()=>ue,$v:()=>Y,zu:()=>Z});var r=n(72529),i=n(59329),a=n(46385),s=n(12717),o=n(36708),u=n(66949),c=n(82884);const l=Math.pow(2,5),f=l-1,d=l/2,h=l/4;function p(e,t){return t>>>e&f}function m(e){return 1<>1&1431655765))+(n>>2&858993459))+(n>>4)&252645135,127&(n+=n>>8)+(n>>16);var n}const b=(e,t)=>({value:e,previous:t});function g(e,t,n,r){let i=r;if(!e){const e=r.length;i=new Array(e);for(let t=0;t1?new k(e,this.hash,r):r[0]}const s=n(o.dv());return o.$I(s)?this:(++a.value,I(e,t,this.hash,this,r,new E(e,r,i,s)))}updateCollisionList(e,t,n,i,a,s,u){const c=i.length;for(let l=0;l=d?function(e,t,n,r,i){const a=[];let s=r,o=0;for(let e=0;s;++e)1&s&&(a[e]=i[o++]),s>>>=1;return a[t]=n,new T(e,o+1,a)}(e,u,f,s,o):new x(e,s|c,function(e,t,n,r){const i=r.length;if(e){let e=i;for(;e>=t;)r[e--]=r[e];return r[t]=n,r}let a=0,s=0;const o=new Array(i+1);for(;anew x(e,m(s)|m(o),[t]);{const t=s[e,t])},[a.HR](){let e=a.tW(A);for(const t of this)e^=(0,i.Fs)(a.tW(t[0]),a.kg(a.tW(t[1])));return a.PO(this,e)},[r.HR](e){if(z(e)){if(e._size!==this._size)return!1;for(const t of this){const n=(0,i.Fs)(e,K(t[0],a.tW(t[0])));if(o.$I(n))return!1;if(!r.aI(t[1],n.value))return!1}return!0}return!1},toString(){return(0,s.GP)(this.toJSON())},toJSON(){return{_id:"HashMap",values:Array.from(this).map(s.U2)}},[s.FX](){return this.toJSON()},pipe(){return(0,u.tT)(this,arguments)}},O=(e,t,n,r)=>{const i=Object.create(P);return i._editable=e,i._edit=t,i._root=n,i._size=r,i};class R{map;f;v;constructor(e,t){this.map=e,this.f=t,this.v=B(this.map._root,this.f,void 0)}next(){if(o.$I(this.v))return{done:!0,value:void 0};const e=this.v.value;return this.v=C(e.cont),{done:!1,value:e.value}}[Symbol.iterator](){return new R(this.map,this.f)}}const C=e=>e?F(e[0],e[1],e[2],e[3],e[4]):o.dv(),B=(e,t,n=void 0)=>{switch(e._tag){case"LeafNode":return o.Ru(e.value)?o.zN({value:t(e.key,e.value.value),cont:n}):C(n);case"CollisionNode":case"ArrayNode":case"IndexedNode":{const r=e.children;return F(r.length,r,0,t,n)}default:return C(n)}},F=(e,t,n,r,i)=>{for(;nL,D=(...e)=>U(e),U=e=>{const t=ne(j());for(const n of e)W(t,n[0],n[1]);return re(t)},z=e=>(0,c.i5)(e,N),$=e=>e&&_(e._root),V=i.XY(2,(e,t)=>K(e,t,a.tW(t))),K=i.XY(3,(e,t,n)=>{let i=e._root,a=0;for(;;)switch(i._tag){case"LeafNode":return r.aI(t,i.key)?i.value:o.dv();case"CollisionNode":if(n===i.hash){const e=i.children;for(let n=0,i=e.length;n{const n=K(e,t,a.tW(t));if(o.$I(n))throw new Error("Expected map to contain key");return n.value}),q=i.XY(2,(e,t)=>o.Ru(K(e,t,a.tW(t)))),H=i.XY(3,(e,t,n)=>o.Ru(K(e,t,n))),G=i.XY(2,(e,t)=>o.Ru(ge(e,t))),W=i.XY(3,(e,t,n)=>ae(e,t,()=>o.zN(n))),X=i.XY(3,(e,t,n)=>e._editable?(e._root=t,e._size=n,e):t===e._root?e:O(e._editable,e._edit,t,n)),J=e=>new R(e,e=>e),Z=e=>new R(e,(e,t)=>t),Q=e=>new R(e,(e,t)=>[e,t]),ee=e=>e._size,te=i.XY(2,(e,t)=>{let n=0;for(const[r,i]of e)t(i,r)&&n++;return n}),ne=e=>O(!0,e._edit+1,e._root,e._size),re=e=>(e._editable=!1,e),ie=i.XY(2,(e,t)=>{const n=ne(e);return t(n),re(n)}),ae=i.XY(3,(e,t,n)=>se(e,t,a.tW(t),n)),se=i.XY(4,(e,t,n,r)=>{const a={value:e._size},s=e._root.modify(e._editable?e._edit:NaN,0,r,n,t,a);return(0,i.Fs)(e,X(s,a.value))}),oe=i.XY(3,(e,t,n)=>ae(e,t,o.Tj(n))),ue=i.XY(2,(e,t)=>{const n=ne(e);return he(t,(e,t)=>W(n,t,e)),re(n)}),ce=i.XY(2,(e,t)=>ae(e,t,o.dv)),le=i.XY(2,(e,t)=>ie(e,e=>{for(const n of t)ce(n)(e)})),fe=i.XY(2,(e,t)=>pe(e,j(),(e,n,r)=>W(e,r,t(n,r)))),de=i.XY(2,(e,t)=>pe(e,j(),(e,n,r)=>ie(e,e=>he(t(n,r),(t,n)=>W(e,n,t))))),he=i.XY(2,(e,t)=>pe(e,void 0,(e,n,r)=>t(n,r))),pe=i.XY(3,(e,t,n)=>{const r=e._root;if("LeafNode"===r._tag)return o.Ru(r.value)?n(t,r.value.value,r.key):t;if("EmptyNode"===r._tag)return t;const i=[r.children];let a;for(;a=i.pop();)for(let e=0,r=a.length;eie(j(),n=>{for(const[r,i]of e)t(i,r)&&W(n,r,i)})),ye=e=>be(e,i.D_),be=i.XY(2,(e,t)=>ie(j(),n=>{for(const[r,i]of e){const e=t(i,r);o.Ru(e)&&W(n,r,e.value)}})),ge=i.XY(2,(e,t)=>{for(const n of e)if(t(n[1],n[0]))return o.zN(n);return o.dv()}),ve=i.XY(2,(e,t)=>{for(const n of e)if(t(n[1],n[0]))return!0;return!1}),we=i.XY(2,(e,t)=>!ve(e,(e,n)=>!t(e,n)))},49514(e,t,n){"use strict";n.d(t,{a:()=>o});var r=n(78451),i=n(44720),a=n(75209),s=n(63183);async function o(e,{address:t,blockHash:n,fromBlock:o,toBlock:u,event:c,events:l,args:f,strict:d}={}){const h=d??!1,p=l??(c?[c]:void 0);let m,y=[];if(p){const e=p.flatMap(e=>(0,r.R)({abi:[e],eventName:e.name,args:l?void 0:f}));y=[e],c&&(y=y[0])}m=n?await e.request({method:"eth_getLogs",params:[{address:t,topics:y,blockHash:n}]}):await e.request({method:"eth_getLogs",params:[{address:t,topics:y,fromBlock:"bigint"==typeof o?(0,a.cK)(o):o,toBlock:"bigint"==typeof u?(0,a.cK)(u):u}]});const b=m.map(e=>(0,s.e)(e));return p?(0,i.p)({abi:p,args:f,logs:b,strict:h}):b}},49925(e,t,n){"use strict";n.d(t,{c:()=>a});var r=n(14583),i=n(30766);function a(e,t="wei"){return(0,i.J)(e,r.eL[t])}},50007(e,t,n){"use strict";var r=n(45366);function i(e){this.options=e,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0,this.padding=!1!==e.padding}e.exports=i,i.prototype._init=function(){},i.prototype.update=function(e){return 0===e.length?[]:"decrypt"===this.type?this._updateDecrypt(e):this._updateEncrypt(e)},i.prototype._buffer=function(e,t){for(var n=Math.min(this.buffer.length-this.bufferOff,e.length-t),r=0;r0;r--)t+=this._buffer(e,t),n+=this._flushBuffer(i,n);return t+=this._buffer(e,t),i},i.prototype.final=function(e){var t,n;return e&&(t=this.update(e)),n="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),t?t.concat(n):n},i.prototype._pad=function(e,t){if(0===t)return!1;for(;tP,aG:()=>T,Jo:()=>F,SB:()=>w,MR:()=>B,D6:()=>se,Yw:()=>D,u7:()=>A,Uh:()=>M,DH:()=>C,RP:()=>R,U4:()=>I,EK:()=>ft,On:()=>k,NH:()=>Ge,Ad:()=>N,uS:()=>ue,YN:()=>S,Ey:()=>E,zh:()=>$e,J5:()=>L,E_:()=>j,TN:()=>O,Gb:()=>qe,Zn:()=>dt,kV:()=>ot,Ho:()=>_,V3:()=>st,k_:()=>De,KV:()=>je,Z8:()=>x,IT:()=>lt,TD:()=>Ke,ZU:()=>ze,HS:()=>v,Ky:()=>We,nt:()=>ht,gP:()=>tt,w_:()=>fe,hk:()=>pt,H5:()=>_e,Zi:()=>Ne,OD:()=>Ie,Wy:()=>ct,rQ:()=>Mt,gw:()=>$,Zv:()=>H,iJ:()=>J,$N:()=>V,fq:()=>X,zj:()=>ee,u$:()=>W,xE:()=>G,$O:()=>K,rt:()=>Y,M7:()=>Z,Re:()=>Q,YI:()=>te,$j:()=>gt,ad:()=>q,wA:()=>re,c$:()=>ce,gV:()=>rt,C8:()=>ut,Mz:()=>nt,M3:()=>be,ch:()=>le,XS:()=>Te,ZG:()=>Be,xz:()=>_t,g0:()=>wt,g1:()=>vt,vs:()=>Ee,YP:()=>Oe,p$:()=>Et,oA:()=>he,ai:()=>ve,Kt:()=>me});var r=n(28062),i=n(59329),a=n(55661),s=n(12717),o=n(23343);const u=(e,t,n,i)=>{let a=e;return n&&r.iI(n)&&(a+=`\nat path: ${o.jV(n)}`),void 0!==t&&(a+=`\ndetails: ${t}`),i&&(a+=`\nschema (${i._tag}): ${i}`),a},c=e=>u("Duplicate index signature",`${e} index signature`),l=u("Unsupported index signature parameter","An index signature parameter type must be `string`, `symbol`, a template literal type or a refinement of the previous types"),f=u("Invalid element","A required element cannot follow an optional element. ts(1257)"),d=e=>u("Duplicate property signature transformation",`Duplicate key ${s.eA(e)}`),h=e=>u("Duplicate property signature",`Duplicate key ${s.eA(e)}`);var p=n(28876),m=n(36708),y=n(4909),b=n(82884),g=n(76524);const v=Symbol.for("effect/annotation/TypeConstructor"),w=Symbol.for("effect/annotation/Brand"),_=Symbol.for("effect/annotation/SchemaId"),S=Symbol.for("effect/annotation/Message"),E=Symbol.for("effect/annotation/MissingMessage"),k=Symbol.for("effect/annotation/Identifier"),x=Symbol.for("effect/annotation/Title"),T=Symbol.for("effect/annotation/AutoTitle"),M=Symbol.for("effect/annotation/Description"),I=Symbol.for("effect/annotation/Examples"),A=Symbol.for("effect/annotation/Default"),N=Symbol.for("effect/annotation/JSONSchema"),P=Symbol.for("effect/annotation/Arbitrary"),O=Symbol.for("effect/annotation/Pretty"),R=Symbol.for("effect/annotation/Equivalence"),C=Symbol.for("effect/annotation/Documentation"),B=Symbol.for("effect/annotation/Concurrency"),F=Symbol.for("effect/annotation/Batching"),L=Symbol.for("effect/annotation/ParseIssueTitle"),j=Symbol.for("effect/annotation/ParseOptions"),D=Symbol.for("effect/annotation/DecodingFallback"),U=Symbol.for("effect/annotation/Surrogate"),z=Symbol.for("effect/annotation/StableFilter"),$=(0,i.XY)(2,(e,t)=>Object.prototype.hasOwnProperty.call(e.annotations,t)?m.zN(e.annotations[t]):m.dv()),V=$(w),K=$(S),Y=$(E),q=$(x),H=$(T),G=$(k),W=$(M),X=$(B),J=$(F),Z=$(L),Q=$(j),ee=$(D),te=$(U),ne=$(z),re=e=>m.t2(ne(e),e=>!0===e),ie=Symbol.for("effect/annotation/JSONIdentifier"),ae=$(ie);class se{typeParameters;decodeUnknown;encodeUnknown;annotations;_tag="Declaration";constructor(e,t,n,r={}){this.typeParameters=e,this.decodeUnknown=t,this.encodeUnknown=n,this.annotations=r}toString(){return m.WL(Ot(this),()=>"")}toJSON(){return{_tag:this._tag,typeParameters:this.typeParameters.map(e=>e.toJSON()),annotations:It(this.annotations)}}}const oe=e=>t=>t._tag===e;class ue{literal;annotations;_tag="Literal";constructor(e,t={}){this.literal=e,this.annotations=t}toString(){return m.WL(Ot(this),()=>s.eA(this.literal))}toJSON(){return{_tag:this._tag,literal:b.sI(this.literal)?String(this.literal):this.literal,annotations:It(this.annotations)}}}const ce=oe("Literal"),le=new ue(null);class fe{symbol;annotations;_tag="UniqueSymbol";constructor(e,t={}){this.symbol=e,this.annotations=t}toString(){return m.WL(Ot(this),()=>s.eA(this.symbol))}toJSON(){return{_tag:this._tag,symbol:String(this.symbol),annotations:It(this.annotations)}}}class de{annotations;_tag="UndefinedKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const he=new de({[x]:"undefined"});class pe{annotations;_tag="VoidKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const me=new pe({[x]:"void"});class ye{annotations;_tag="NeverKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const be=new ye({[x]:"never"});class ge{annotations;_tag="UnknownKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const ve=new ge({[x]:"unknown"});class we{annotations;_tag="AnyKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const _e=new we({[x]:"any"});class Se{annotations;_tag="StringKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const Ee=new Se({[x]:"string",[M]:"a string"}),ke=oe("StringKeyword");class xe{annotations;_tag="NumberKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const Te=new xe({[x]:"number",[M]:"a number"});class Me{annotations;_tag="BooleanKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const Ie=new Me({[x]:"boolean",[M]:"a boolean"});class Ae{annotations;_tag="BigIntKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const Ne=new Ae({[x]:"bigint",[M]:"a bigint"});class Pe{annotations;_tag="SymbolKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const Oe=new Pe({[x]:"symbol",[M]:"a symbol"}),Re=oe("SymbolKeyword");class Ce{annotations;_tag="ObjectKeyword";constructor(e={}){this.annotations=e}toString(){return Nt(this)}toJSON(){return{_tag:this._tag,annotations:It(this.annotations)}}}const Be=new Ce({[x]:"object",[M]:"an object in the TypeScript meaning, i.e. the `object` type"}),Fe=e=>{switch(e._tag){case"Literal":case"NumberKeyword":case"StringKeyword":case"TemplateLiteral":return!0;case"Union":return e.types.every(Fe)}return!1},Le=e=>{switch(e._tag){case"Literal":return JSON.stringify(String(e.literal));case"StringKeyword":return"string";case"NumberKeyword":return"number";case"TemplateLiteral":return String(e);case"Union":return e.types.map(Le).join(" | ")}};class je{literal;type;constructor(e,t){if(this.literal=t,!Fe(e))throw new Error(u("Unsupported template literal span",void 0,void 0,e));this.type=e}toString(){return(e=>{switch(e._tag){case"Literal":return String(e.literal);case"StringKeyword":return"${string}";case"NumberKeyword":return"${number}";case"TemplateLiteral":return"${"+String(e)+"}";case"Union":return"${"+e.types.map(Le).join(" | ")+"}"}})(this.type)+this.literal}toJSON(){return{type:this.type.toJSON(),literal:this.literal}}}class De{head;spans;annotations;_tag="TemplateLiteral";constructor(e,t,n={}){this.head=e,this.spans=t,this.annotations=n}toString(){return m.WL(Ot(this),()=>Ue(this))}toJSON(){return{_tag:this._tag,head:this.head,spans:this.spans.map(e=>e.toJSON()),annotations:It(this.annotations)}}}const Ue=e=>"`"+e.head+e.spans.map(String).join("")+"`";class ze{type;annotations;constructor(e,t={}){this.type=e,this.annotations=t}toJSON(){return{type:this.type.toJSON(),annotations:It(this.annotations)}}toString(){return String(this.type)}}class $e extends ze{isOptional;constructor(e,t,n={}){super(e,n),this.isOptional=t}toJSON(){return{type:this.type.toJSON(),isOptional:this.isOptional,annotations:It(this.annotations)}}toString(){return String(this.type)+(this.isOptional?"?":"")}}const Ve=e=>e.map(e=>e.type);class Ke{elements;rest;isReadonly;annotations;_tag="TupleType";constructor(e,t,n,r={}){this.elements=e,this.rest=t,this.isReadonly=n,this.annotations=r;let i=!1,a=!1;for(const t of e)if(t.isOptional)i=!0;else if(i){a=!0;break}if(a||i&&t.length>1)throw new Error(f)}toString(){return m.WL(Ot(this),()=>Ye(this))}toJSON(){return{_tag:this._tag,elements:this.elements.map(e=>e.toJSON()),rest:this.rest.map(e=>e.toJSON()),isReadonly:this.isReadonly,annotations:It(this.annotations)}}}const Ye=e=>{const t=e.elements.map(String).join(", ");return r.nc(e.rest,{onEmpty:()=>`readonly [${t}]`,onNonEmpty:(n,r)=>{const i=String(n),a=i.includes(" | ")?`(${i})`:i;if(r.length>0){const n=r.map(String).join(", ");return e.elements.length>0?`readonly [${t}, ...${a}[], ${n}]`:`readonly [...${a}[], ${n}]`}return e.elements.length>0?`readonly [${t}, ...${a}[]]`:`ReadonlyArray<${i}>`}})};class qe extends $e{name;isReadonly;constructor(e,t,n,r,i){super(t,n,i),this.name=e,this.isReadonly=r}toString(){return(this.isReadonly?"readonly ":"")+String(this.name)+(this.isOptional?"?":"")+": "+this.type}toJSON(){return{name:String(this.name),type:this.type.toJSON(),isOptional:this.isOptional,isReadonly:this.isReadonly,annotations:It(this.annotations)}}}const He=e=>{switch(e._tag){case"StringKeyword":case"SymbolKeyword":case"TemplateLiteral":return!0;case"Refinement":return He(e.from)}return!1};class Ge{type;isReadonly;parameter;constructor(e,t,n){if(this.type=t,this.isReadonly=n,!He(e))throw new Error(l);this.parameter=e}toString(){return(this.isReadonly?"readonly ":"")+`[x: ${this.parameter}]: ${this.type}`}toJSON(){return{parameter:this.parameter.toJSON(),type:this.type.toJSON(),isReadonly:this.isReadonly}}}class We{annotations;_tag="TypeLiteral";propertySignatures;indexSignatures;constructor(e,t,n={}){this.annotations=n;const r={};for(let t=0;tJe(this))}toJSON(){return{_tag:this._tag,propertySignatures:this.propertySignatures.map(e=>e.toJSON()),indexSignatures:this.indexSignatures.map(e=>e.toJSON()),annotations:It(this.annotations)}}}const Xe=e=>e.map(String).join("; "),Je=e=>{if(e.propertySignatures.length>0){const t=e.propertySignatures.map(String).join("; ");return e.indexSignatures.length>0?`{ ${t}; ${Xe(e.indexSignatures)} }`:`{ ${t} }`}return e.indexSignatures.length>0?`{ ${Xe(e.indexSignatures)} }`:"{}"},Ze=r.di(y.zQ(p.pH,e=>{switch(e._tag){case"AnyKeyword":return 0;case"UnknownKeyword":return 1;case"ObjectKeyword":return 2;case"StringKeyword":case"NumberKeyword":case"BooleanKeyword":case"BigIntKeyword":case"SymbolKeyword":return 3}return 4})),Qe={string:"StringKeyword",number:"NumberKeyword",boolean:"BooleanKeyword",bigint:"BigIntKeyword"},et=e=>r.qI(e,e=>it(e)?et(e.types):[e]);class tt{types;annotations;static make=(e,t)=>rt(e)?new tt(e,t):1===e.length?e[0]:be;static unify=(e,t)=>tt.make((e=>{const t=Ze(e),n=[],r={},i=[];for(const e of t)switch(e._tag){case"NeverKeyword":break;case"AnyKeyword":return[_e];case"UnknownKeyword":return[ve];case"ObjectKeyword":case"UndefinedKeyword":case"VoidKeyword":case"StringKeyword":case"NumberKeyword":case"BooleanKeyword":case"BigIntKeyword":case"SymbolKeyword":r[e._tag]||(r[e._tag]=e,n.push(e));break;case"Literal":{const t=typeof e.literal;switch(t){case"string":case"number":case"bigint":case"boolean":r[Qe[t]]||i.includes(e.literal)||(i.push(e.literal),n.push(e));break;case"object":i.includes(e.literal)||(i.push(e.literal),n.push(e))}break}case"UniqueSymbol":r.SymbolKeyword||i.includes(e.symbol)||(i.push(e.symbol),n.push(e));break;case"TupleType":r.ObjectKeyword||n.push(e);break;case"TypeLiteral":0===e.propertySignatures.length&&0===e.indexSignatures.length?r["{}"]||(r["{}"]=e,n.push(e)):r.ObjectKeyword||n.push(e);break;default:n.push(e)}return n})(et(e)),t);_tag="Union";constructor(e,t={}){this.types=e,this.annotations=t}toString(){return m.WL(Ot(this),()=>this.types.map(String).join(" | "))}toJSON(){return{_tag:this._tag,types:this.types.map(e=>e.toJSON()),annotations:It(this.annotations)}}}const nt=(e,t)=>e.map(t),rt=e=>e.length>1,it=oe("Union"),at=(0,a.V)(Symbol.for("effect/Schema/AST/toJSONMemoMap"),()=>new WeakMap);class st{f;annotations;_tag="Suspend";constructor(e,t={}){this.f=e,this.annotations=t,this.f=o.Z4(e)}toString(){return Ot(this).pipe(m.NW(()=>m.qI(m.IB(this.f)(),e=>Ot(e))),m.WL(()=>""))}toJSON(){const e=this.f();let t=at.get(e);return t||(at.set(e,{_tag:this._tag}),t={_tag:this._tag,ast:e.toJSON(),annotations:It(this.annotations)},at.set(e,t),t)}}class ot{from;filter;annotations;_tag="Refinement";constructor(e,t,n={}){this.from=e,this.filter=t,this.annotations=n}toString(){return G(this).pipe(m.WL(()=>m.YW(Pt(this),{onNone:()=>`{ ${this.from} | filter }`,onSome:e=>ut(this.from)?String(this.from)+" & "+e:e})))}toJSON(){return{_tag:this._tag,from:this.from.toJSON(),annotations:It(this.annotations)}}}const ut=oe("Refinement"),ct={};class lt{from;to;transformation;annotations;_tag="Transformation";constructor(e,t,n,r={}){this.from=e,this.to=t,this.transformation=n,this.annotations=r}toString(){return m.WL(Ot(this),()=>`(${String(this.from)} <-> ${String(this.to)})`)}toJSON(){return{_tag:this._tag,from:this.from.toJSON(),to:this.to.toJSON(),annotations:It(this.annotations)}}}class ft{decode;encode;_tag="FinalTransformation";constructor(e,t){this.decode=e,this.encode=t}}class dt{from;to;decode;encode;constructor(e,t,n,r){this.from=e,this.to=t,this.decode=n,this.encode=r}}class ht{propertySignatureTransformations;_tag="TypeLiteralTransformation";constructor(e){this.propertySignatureTransformations=e;const t={},n={};for(const r of e){const e=r.from;if(t[e])throw new Error(d(e));t[e]=!0;const i=r.to;if(n[i])throw new Error(d(i));n[i]=!0}}}const pt=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={...e.annotations};delete r[k];const i={...r,...t},a=te(e);return m.Ru(a)&&(i[U]=pt(a.value,t)),n.annotations.value=i,Object.create(Object.getPrototypeOf(e),n)},mt=(e,t)=>{switch(e._tag){case"Literal":return g.i(String(e.literal));case"StringKeyword":return"[\\s\\S]*?";case"NumberKeyword":return"[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?";case"TemplateLiteral":return bt(e,t,!1);case"Union":return e.types.map(e=>mt(e,t)).join("|")}},yt=(e,t,n,r)=>{if(it(e)){if(n&&!r)return`(?:${t})`}else if(!n||!r)return t;return`(${t})`},bt=(e,t,n)=>{let r="";if(""!==e.head){const i=g.i(e.head);r+=t&&n?`(${i})`:i}for(const i of e.spans){const e=mt(i.type,t);if(r+=yt(i.type,e,t,n),""!==i.literal){const e=g.i(i.literal);r+=t&&n?`(${e})`:e}}return r},gt=e=>new RegExp(`^${bt(e,!1,!0)}$`),vt=(e,t)=>{const n=[],r=[],i=e=>{switch(e._tag){case"NeverKeyword":break;case"StringKeyword":case"SymbolKeyword":case"TemplateLiteral":case"Refinement":r.push(new Ge(e,t,!0));break;case"Literal":if(!b.Kg(e.literal)&&!b.Et(e.literal))throw new Error((a=e.literal,u("Unsupported literal",`literal value: ${s.eA(a)}`)));n.push(new qe(e.literal,t,!1,!0));break;case"Enums":for(const[r,i]of e.enums)n.push(new qe(i,t,!1,!0));break;case"UniqueSymbol":n.push(new qe(e.symbol,t,!1,!0));break;case"Union":e.types.forEach(i);break;default:throw new Error(u("Unsupported key schema",void 0,void 0,e))}var a};return i(e),{propertySignatures:n,indexSignatures:r}},wt=e=>t=>{let n;for(const r of e)Object.prototype.hasOwnProperty.call(t.annotations,r)&&(void 0===n&&(n={}),n[r]=t.annotations[r]);return n},_t=e=>t=>{const n={...t.annotations};for(const t of e)delete n[t];return n},St=wt([I,A,N,P,O,R]),Et=e=>{switch(e._tag){case"Declaration":{const t=kt(e.typeParameters,Et);return t===e.typeParameters?e:new se(t,e.decodeUnknown,e.encodeUnknown,e.annotations)}case"TupleType":{const t=kt(e.elements,e=>{const t=Et(e.type);return t===e.type?e:new $e(t,e.isOptional)}),n=Ve(e.rest),r=kt(n,Et);return t===e.elements&&r===n?e:new Ke(t,r.map(e=>new ze(e)),e.isReadonly,e.annotations)}case"TypeLiteral":{const t=kt(e.propertySignatures,e=>{const t=Et(e.type);return t===e.type?e:new qe(e.name,t,e.isOptional,e.isReadonly)}),n=kt(e.indexSignatures,e=>{const t=Et(e.type);return t===e.type?e:new Ge(e.parameter,t,e.isReadonly)});return t===e.propertySignatures&&n===e.indexSignatures?e:new We(t,n,e.annotations)}case"Union":{const t=kt(e.types,Et);return t===e.types?e:tt.make(t,e.annotations)}case"Suspend":return new st(()=>Et(e.f()),e.annotations);case"Refinement":{const t=Et(e.from);return t===e.from?e:new ot(t,e.filter,e.annotations)}case"Transformation":{const t=St(e);return Et(void 0!==t?pt(e.to,t):e.to)}}return e};function kt(e,t){let n=!1;const i=r.CN(e.length);for(let r=0;r{switch(e._tag){case"Transformation":return e.from;case"Refinement":return xt(e.from);case"Suspend":return xt(e.f())}},Tt=(e,t)=>{switch(e._tag){case"Declaration":{const n=kt(e.typeParameters,e=>Tt(e,t));return n===e.typeParameters?e:new se(n,e.decodeUnknown,e.encodeUnknown)}case"TupleType":{const n=kt(e.elements,e=>{const n=Tt(e.type,t);return n===e.type?e:new $e(n,e.isOptional)}),r=Ve(e.rest),i=kt(r,e=>Tt(e,t));return n===e.elements&&i===r?e:new Ke(n,i.map(e=>new ze(e)),e.isReadonly)}case"TypeLiteral":{const n=kt(e.propertySignatures,e=>{const n=Tt(e.type,t);return n===e.type?e:new qe(e.name,n,e.isOptional,e.isReadonly)}),r=kt(e.indexSignatures,e=>{const n=Tt(e.type,t);return n===e.type?e:new Ge(e.parameter,n,e.isReadonly)});return n===e.propertySignatures&&r===e.indexSignatures?e:new We(n,r)}case"Union":{const n=kt(e.types,e=>Tt(e,t));return n===e.types?e:tt.make(n)}case"Suspend":{let r;const i=(n=e,m.NW(ae(n),()=>G(n)));if(m.Ru(i)){const e=t?"Bound":"";r={[ie]:`${i.value}Encoded${e}`}}return new st(()=>Tt(e.f(),t),r)}case"Refinement":{const n=Tt(e.from,t);return t?n===e.from?e:void 0===xt(e.from)&&re(e)?new ot(n,e.filter,e.annotations):n:n}case"Transformation":return Tt(e.from,t)}var n;return e},Mt=e=>Tt(e,!1),It=e=>{const t={};for(const n of Object.getOwnPropertySymbols(e))t[String(n)]=e[n];return t},At=e=>{switch(e._tag){case"StringKeyword":case"SymbolKeyword":case"TemplateLiteral":return e;case"Refinement":return At(e.from)}},Nt=e=>m.WL(Ot(e),()=>e._tag),Pt=e=>q(e).pipe(m.NW(()=>W(e)),m.NW(()=>H(e)),m.Tj(t=>t+function(e){return m.YW(V(e),{onNone:()=>"",onSome:e=>e.map(e=>` & Brand<${s.eA(e)}>`).join("")})}(e))),Ot=e=>m.NW(G(e),()=>Pt(e))},50309(e,t,n){"use strict";n.d(t,{e:()=>o});var r=n(70121),i=n(348),a=n(75879);const s="/docs/contract/decodeFunctionResult";function o(e){const{abi:t,args:n,functionName:o,data:u}=e;let c=t[0];if(o){const e=(0,a.iY)({abi:t,args:n,name:o});if(!e)throw new r.Iz(o,{docsPath:s});c=e}if("function"!==c.type)throw new r.Iz(void 0,{docsPath:s});if(!c.outputs)throw new r.MR(c.name,{docsPath:s});const l=(0,i.n)(c.outputs,u);return l&&l.length>1?l:l&&1===l.length?l[0]:void 0}},50338(e,t,n){e.exports=n(3640).EventEmitter},50660(e,t,n){e.exports=n(68128)(n(63152))},50693(e,t,n){"use strict";n.d(t,{b:()=>i});var r=n(10616);function i(e,{delay:t=100,retryCount:n=2,shouldRetry:i=()=>!0}={}){return new Promise((a,s)=>{const o=async({count:u=0}={})=>{try{const t=await e();a(t)}catch(e){if(u{const n="function"==typeof t?t({count:u,error:e}):t;n&&await(0,r.u)(n),o({count:u+1})})({error:e});s(e)}};o()})}},50786(e,t,n){var r=n(74839),i=n(72258).Buffer,a=n(67779),s=n(10417),o=n(81475),u=n(81979),c=n(81207);function l(e,t,n){o.call(this),this._cache=new f,this._last=void 0,this._cipher=new u.AES(t),this._prev=i.from(n),this._mode=e,this._autopadding=!0}function f(){this.cache=i.allocUnsafe(0)}function d(e,t,n){var o=a[e.toLowerCase()];if(!o)throw new TypeError("invalid suite type");if("string"==typeof n&&(n=i.from(n)),"GCM"!==o.mode&&n.length!==o.iv)throw new TypeError("invalid iv length "+n.length);if("string"==typeof t&&(t=i.from(t)),t.length!==o.key/8)throw new TypeError("invalid key length "+t.length);return"stream"===o.type?new s(o.module,t,n,!0):"auth"===o.type?new r(o.module,t,n,!0):new l(o.module,t,n)}n(33213)(l,o),l.prototype._update=function(e){var t,n;this._cache.add(e);for(var r=[];t=this._cache.get(this._autopadding);)n=this._mode.decrypt(this,t),r.push(n);return i.concat(r)},l.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return function(e){var t=e[15];if(t<1||t>16)throw new Error("unable to decrypt data");for(var n=-1;++n16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null},f.prototype.flush=function(){if(this.cache.length)return this.cache},t.createDecipher=function(e,t){var n=a[e.toLowerCase()];if(!n)throw new TypeError("invalid suite type");var r=c(t,!1,n.key,n.iv);return d(e,r.key,r.iv)},t.createDecipheriv=d},51023(e,t,n){"use strict";n.d(t,{m:()=>o});var r=n(70121),i=n(33640),a=n(28780);const s="/docs/contract/encodeDeployData";function o(e){const{abi:t,args:n,bytecode:o}=e;if(!n||0===n.length)return o;const u=t.find(e=>"type"in e&&"constructor"===e.type);if(!u)throw new r.YW({docsPath:s});if(!("inputs"in u))throw new r.YF({docsPath:s});if(!u.inputs||0===u.inputs.length)throw new r.YF({docsPath:s});const c=(0,a.h)(u.inputs,n);return(0,i.aP)([o,c])}},51305(e,t,n){"use strict";t.pbkdf2=n(82849),t.pbkdf2Sync=n(76035)},52004(e,t,n){var r=n(33213),i=n(99701);function a(e){i.call(this,e),this.enc="pem"}r(a,i),e.exports=a,a.prototype.encode=function(e,t){for(var n=i.prototype.encode.call(this,e).toString("base64"),r=["-----BEGIN "+t.label+"-----"],a=0;av,offchainLookupSignature:()=>b});var r=n(45011),i=n(1060),a=n(2273),s=n(15190);class o extends a.C{constructor({callbackSelector:e,cause:t,data:n,extraData:r,sender:i,urls:a}){super(t.shortMessage||"An error occurred while fetching for an offchain result.",{cause:t,metaMessages:[...t.metaMessages||[],t.metaMessages?.length?"":[],"Offchain Gateway Call:",a&&[" Gateway URL(s):",...a.map(e=>` ${(0,s.I)(e)}`)],` Sender: ${i}`,` Data: ${n}`,` Callback selector: ${e}`,` Extra data: ${r}`].flat(),name:"OffchainLookupError"})}}class u extends a.C{constructor({result:e,url:t}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${(0,s.I)(t)}`,`Response: ${(0,i.A)(e)}`],name:"OffchainLookupResponseMalformedError"})}}class c extends a.C{constructor({sender:e,to:t}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${t}`,`OffchainLookup sender address: ${e}`],name:"OffchainLookupSenderMismatchError"})}}var l=n(72634),f=n(72981),d=n(28780),h=n(97668),p=n(33640),m=n(84015),y=n(95611);const b="0x556f1830",g={name:"OffchainLookup",type:"error",inputs:[{name:"sender",type:"address"},{name:"urls",type:"string[]"},{name:"callData",type:"bytes"},{name:"callbackFunction",type:"bytes4"},{name:"extraData",type:"bytes"}]};async function v(e,{blockNumber:t,blockTag:n,data:i,to:a}){const{args:s}=(0,f.W)({data:i,abi:[g]}),[u,l,m,b,v]=s,{ccipRead:_}=e,S=_&&"function"==typeof _?.request?_.request:w;try{if(!(0,h.h)(a,u))throw new c({sender:u,to:a});const i=l.includes(y.J)?await(0,y.X)({data:m,ccipRequest:S}):await S({data:m,sender:u,urls:l}),{data:s}=await(0,r.T)(e,{blockNumber:t,blockTag:n,data:(0,p.xW)([b,(0,d.h)([{type:"bytes"},{type:"bytes"}],[i,v])]),to:a});return s}catch(e){throw new o({callbackSelector:b,cause:e,data:i,extraData:v,sender:u,urls:l})}}async function w({data:e,sender:t,urls:n}){let r=new Error("An unknown error occurred.");for(let a=0;ar});class r extends Error{static setStaticOptions(e){r.prototype.docsOrigin=e.docsOrigin,r.prototype.showVersion=e.showVersion,r.prototype.version=e.version}constructor(e,t={}){const n=(()=>{if(t.cause instanceof r){if(t.cause.details)return t.cause.details;if(t.cause.shortMessage)return t.cause.shortMessage}return t.cause&&"details"in t.cause&&"string"==typeof t.cause.details?t.cause.details:t.cause?.message?t.cause.message:t.details})(),i=t.cause instanceof r&&t.cause.docsPath||t.docsPath,a=t.docsOrigin??r.prototype.docsOrigin,s=`${a}${i??""}`,o=Boolean(t.version??r.prototype.showVersion),u=t.version??r.prototype.version;super([e||"An error occurred.",...t.metaMessages?["",...t.metaMessages]:[],...n||i||o?["",n?`Details: ${n}`:void 0,i?`See: ${s}`:void 0,o?`Version: ${u}`:void 0]:[]].filter(e=>"string"==typeof e).join("\n"),t.cause?{cause:t.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsOrigin",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"showVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.cause=t.cause,this.details=n,this.docs=s,this.docsOrigin=a,this.docsPath=i,this.shortMessage=e,this.showVersion=o,this.version=u}walk(e){return i(this,e)}}function i(e,t){return t?.(e)?e:e&&"object"==typeof e&&"cause"in e&&e.cause?i(e.cause,t):t?null:e}Object.defineProperty(r,"defaultStaticOptions",{enumerable:!0,configurable:!0,writable:!0,value:{docsOrigin:"https://oxlib.sh",showVersion:!1,version:"ox@0.1.1"}}),r.setStaticOptions(r.defaultStaticOptions)},53487(e,t,n){"use strict";n.d(t,{w3:()=>o,wC:()=>s});var r=n(72529),i=n(46385),a=n(20490);Array.prototype,i.HR,r.HR;const s=function(){function e(e){e&&Object.assign(this,e)}return e.prototype=a.KE,e}(),o=e=>Object.assign(Object.create(a.KE),e)},53874(e,t,n){"use strict";var r=n(72258).Buffer,i=n(39),a=n(11525),s=n(24554).ec,o=n(74393),u=n(45775),c=n(59824);function l(e,t,n,a){if((e=r.from(e.toArray())).length0&&n.ishrn(r),n}function d(e,t,n){var a,s;do{for(a=r.alloc(0);8*a.lengthX,nb:()=>F,vV:()=>H,ww:()=>Kt,sw:()=>O,Mu:()=>qt,Xx:()=>R,t2:()=>C,oI:()=>J,Jr:()=>Z,IK:()=>L,RJ:()=>j,Nu:()=>D,Ku:()=>U,lo:()=>z,c1:()=>$,pm:()=>K,RK:()=>V,sx:()=>ne,Wj:()=>Ht,_3:()=>Gt,cb:()=>Y,yu:()=>G,U$:()=>q,Ek:()=>W,Cm:()=>ee,Hd:()=>te,ex:()=>nn,u4:()=>re,Si:()=>me,rQ:()=>ge,x1:()=>ie,kr:()=>ae,Nf:()=>se,Pm:()=>oe,W$:()=>ce,i8:()=>le,Dd:()=>de,AA:()=>he,i4:()=>be,k$:()=>un,RO:()=>on,d5:()=>ve,Xe:()=>we,XP:()=>_e,EN:()=>Se,N6:()=>Ee,oJ:()=>ke,nl:()=>xe,Mw:()=>pt,zM:()=>Q,VW:()=>ue,_B:()=>Yt,A_:()=>Wt,Rm:()=>Me,rr:()=>Be,MD:()=>Ae,Og:()=>Oe,Zc:()=>Re,fH:()=>Ne,om:()=>Ie,FF:()=>Pe,HW:()=>Fe,Z9:()=>Qt,OM:()=>De,aW:()=>Ue,YW:()=>pe,Bj:()=>ze,h1:()=>$e,ze:()=>Ve,dv:()=>Ke,Oo:()=>Ye,uK:()=>qe,SM:()=>cn,xS:()=>He,DM:()=>Ge,Zk:()=>We,Bz:()=>Xe,iv:()=>Je,Pf:()=>Ze,c7:()=>Qe,yT:()=>et,TS:()=>tt,XK:()=>nt,KE:()=>rt,wn:()=>at,_S:()=>ot,XN:()=>Ut,A3:()=>jt,p4:()=>Lt,KO:()=>Dt,ZF:()=>zt,N:()=>$t,gB:()=>Vt,Z:()=>ut,yy:()=>ct,Fu:()=>en,Wb:()=>tn,lw:()=>lt,nG:()=>ft,Uy:()=>dt,G6:()=>ht,QK:()=>mt,v6:()=>yt,Bi:()=>bt,nA:()=>gt,sF:()=>vt,Ly:()=>_t,TN:()=>wt,ay:()=>St,yW:()=>Et,kJ:()=>kt,gZ:()=>Tt,xA:()=>Mt,$m:()=>xt,bS:()=>B,NJ:()=>It,ix:()=>At,xI:()=>Zt,Pb:()=>Nt,En:()=>Pt,bU:()=>Ot,gv:()=>rn,z7:()=>Rt,iz:()=>Ct,mf:()=>Bt,f1:()=>Ce,Xz:()=>Ft,hq:()=>an,fR:()=>sn});var r=n(28062),i=n(17388),a=n(16491),s=n(47726),o=n(68449),u=n(86937),c=n(59329),l=n(91269),f=n(75169),d=n(84025),h=n(63129),p=n(57109);const m=p.L8;p.XX;var y=n(36708),b=n(82884),g=n(73400),v=n(55606),w=n(30114);w.Tz,w.Te,w.Ez,w.L8,w.uV;const _=v.wT;w.DW;var S=n(95644),E=n(59688),k=n(68929),x=n(89921);const T=e=>(0,c.XY)(3,(t,n,r)=>e(t,e=>({...e,[n]:r(e)}))),M=e=>(0,c.XY)(2,(t,n)=>e(t,e=>({[n]:e}))),I=(e,t)=>(0,c.XY)(3,(n,r,i)=>t(n,t=>e(i(t),e=>({...t,[r]:e}))));var A=n(46082),N=n(91170),P=n(91484);const O=(0,c.XY)(e=>x.yw5(e[0]),function(){const e=arguments;return x.q1t(e[0],x.Umi,"string"==typeof e[1]?l.hZ(e[1],e[2]):t=>Object.entries(e[1]).reduce((e,[t,n])=>l.hZ(e,t,n),t))}),R=e=>x.TjK(e,y.zN),C=e=>x.xm_(e,y.zN),B=e=>{let t,n;return"function"==typeof e?t=e:(t=e.try,n=e.catch),x.DYE(()=>{try{return x.PyW((0,S.sn)(t))}catch(e){return x.fJG(n?(0,S.sn)(()=>n(e)):new x.Uis(e,"An unknown error occurred in Effect.try"))}})},F=(0,c.XY)(3,(e,t,n)=>x.h9N(e,e=>b.i5(e,t)&&e[t]===n.failure?n.onFailure(e):x.fJG(e))),L=(0,c.XY)(2,(e,t)=>x.uPo(e,e=>{const n=E.I6(e,e=>E.VY(e)?y.zN(e):y.dv());switch(n._tag){case"None":return x.ATB(e);case"Some":return t(n.value.defect)}})),j=(0,c.XY)(2,(e,t)=>x.khu(e,{onFailure:e=>{const n=t(e);switch(n._tag){case"None":return x.ATB(e);case"Some":return n.value}},onSuccess:x.PyW})),D=(0,c.XY)(2,(e,t)=>x.uPo(e,e=>{const n=E.I6(e,e=>E.VY(e)?y.zN(e):y.dv());switch(n._tag){case"None":return x.ATB(e);case"Some":{const r=t(n.value.defect);return"Some"===r._tag?r.value:x.ATB(e)}}})),U=(0,c.XY)(e=>x.yw5(e[0]),(e,...t)=>{const n=t[t.length-1];let r;return r=2===t.length?b.$J(t[0]):e=>{const n=b.i5(e,"_tag")?e._tag:void 0;if(!n)return!1;for(let e=0;e{let n;return x.XWm(e,e=>(n??=Object.keys(t),b.i5(e,"_tag")&&b.Kg(e._tag)&&n.includes(e._tag)),e=>t[e._tag](e))}),$=e=>x.D$$(e,{onFailure:c.D_,onSuccess:()=>E.Ie}),V=a.RK,K=V(x.PyW),Y=(0,c.XY)(2,(e,t)=>x.aNH(a.yy(t),e)),q=e=>x.$we((t,n)=>e({id:t.id(),status:n,interruptors:E.ml(t.getFiberRef(x.LGt))})),H=q(e=>f.Ej(e.interruptors)>0?x.GaK:x.rIH),G=q(x.PyW),W=e=>dt(e,ge,A.Ui),X=x.PyW({}),J=I(x.TjK,x.qIB),Z=M(x.TjK),Q=T(x.TjK),ee=(0,c.XY)(2,(e,t)=>x.DYE(()=>{const n=e[Symbol.iterator](),r=[];let i,a=x.PyW(!1),s=0;for(;(i=n.next())&&!i.done;){const e=i.value,n=s++;a=x.qIB(a,i=>i?(r.push(e),x.PyW(!0)):t(e,n))}return x.TjK(a,()=>r)})),te=(0,c.XY)(2,(e,t)=>x.DYE(()=>{const n=e[Symbol.iterator](),r=[];let i,a=x.PyW(!0),s=0;for(;(i=n.next())&&!i.done;){const e=i.value,n=s++;a=x.qIB(a,i=>x.TjK(i?t(e,n):x.PyW(!1),t=>(t||r.push(e),t)))}return x.TjK(a,()=>r)})),ne=e=>x.TjK(x._OA(),e),re=e=>x.NWQ(e,()=>x.qIB(x.m9E(),()=>re(e))),ie=(0,c.XY)(2,(e,t)=>x.TjK(x.CFK(e,c.D_),r.x1(t))),ae=(0,c.XY)(3,(e,t,n)=>oe(e,t,e=>x.Kbz(()=>n(e)))),se=(0,c.XY)(3,(e,t,n)=>oe(e,t,()=>x.GSS(n))),oe=(0,c.XY)(3,(e,t,n)=>x.qIB(e,e=>t(e)?x.PyW(e):n(e))),ue=(0,c.XY)(3,(e,t,n)=>x.DYE(()=>t(e)?x.PyW(e):x.fJG(n(e)))),ce=(0,c.XY)(e=>x.yw5(e[0]),(e,t,n)=>oe(e,t,e=>void 0===n?x.fJG(new x.kJg):x.gOk(()=>n(e)))),le=(0,c.XY)(2,(e,t)=>x.DYE(()=>{const n=e[Symbol.iterator](),r=n.next();return r.done?x.PyW(y.dv()):fe(n,0,t,r.value)})),fe=(e,t,n,r)=>x.qIB(n(r,t),i=>{if(i)return x.PyW(y.zN(r));const a=e.next();return a.done?x.PyW(y.dv()):fe(e,t+1,n,a.value)}),de=e=>x.DYE(()=>{const t=i.Ts(e);return i.J_(t)?(0,c.Fs)(i.Rx(t),r.TS(i.v4(t),(e,t)=>x.NWQ(e,()=>t))):x.Kbz(()=>new x.nAV("Received an empty collection of effects"))}),he=(0,c.XY)(2,(e,t)=>x.UUz(t(x.UUz(e)))),pe=(0,c.XY)(2,(e,t)=>x.tvg(e,{onFailure:e=>x.PyW(t.onFailure(e)),onSuccess:e=>x.PyW(t.onSuccess(e))})),me=(0,c.XY)(2,(e,t)=>x.DYE(()=>ye(e[Symbol.iterator](),0,t))),ye=(e,t,n)=>{const r=e.next();return r.done?x.PyW(!0):x.qIB(n(r.value,t),r=>r?ye(e,t+1,n):x.PyW(r))},be=e=>{const t=x.qIB(x.qIB(e,()=>x.m9E()),()=>t);return t},ge=x.$we(e=>x.PyW(e.getFiberRefs())),ve=e=>x.qIB(e,e=>{const t=e[Symbol.iterator]().next();return t.done?x.fJG(new x.kJg):x.PyW(t.value)}),we=e=>pe(e,{onFailure:c.Yi,onSuccess:c.Yi}),_e=e=>x.khu(e,{onFailure:e=>Ae(e,"An error was silently ignored because it is not anticipated to be useful"),onSuccess:()=>x.rIH}),Se=e=>Pt((t,n)=>u.rl(n,t,e)),Ee=e=>pe(e,{onFailure:c.ue,onSuccess:c.f4}),ke=e=>pe(e,{onFailure:c.f4,onSuccess:c.ue}),xe=(e,t)=>x.DYE(()=>t.while(e)?x.qIB(t.body(e),e=>xe(e,t)):x.PyW(e)),Te=e=>(...t)=>{const n=y.k$(e);let r;for(let e=0,n=t.length;e(e.log(t,r,n),x.rIH))},Me=Te(),Ie=Te(h.Cn),Ae=Te(h.y),Ne=Te(h.R2),Pe=Te(h.N5),Oe=Te(h.$D),Re=Te(h.Lj),Ce=(0,c.XY)(2,(e,t)=>x.qIB(a.Ru,n=>x.q1t(e,x.krO,d.Hs(m(t,n))))),Be=x.U8_(x.Umi),Fe=(e,t)=>t.discard?je(e,t.while,t.step,t.body):x.TjK(Le(e,t.while,t.step,t.body),r.Ts),Le=(e,t,n,r)=>x.DYE(()=>t(e)?x.qIB(r(e),i=>x.TjK(Le(n(e),t,n,r),d.Hs(i))):x.OH5(()=>d.Ie())),je=(e,t,n,r)=>x.DYE(()=>t(e)?x.qIB(r(e),()=>je(n(e),t,n,r)):x.rIH),De=(0,c.XY)(3,(e,t,n)=>x.DYE(()=>{const r=e[Symbol.iterator](),i=[];let a,s=x.PyW(t),o=0;for(;!(a=r.next()).done;){const e=o++,t=a.value;s=x.qIB(s,r=>x.TjK(n(r,t,e),([e,t])=>(i.push(t),e)))}return x.TjK(s,e=>[e,i])})),Ue=(0,c.XY)(2,(e,t)=>x.khu(e,{onFailure:e=>x.pVV(()=>t(e)),onSuccess:x.PyW})),ze=e=>(0,c.Fs)(x.WW4(),x.qIB(t=>(0,c.Fs)((e=>dt(e,x.yU6(ge,x.m$m),([e,t],[n,r])=>[A.Ui(e,n),P.Ui(t,r)]))(e),x._ig(t),Ye,x.TjK(e=>x.aNH(e,(0,c.Fs)(x.gn0(t),x.qIB(([e,t])=>x.as(x.yU6(Xe(e[0]),x.$QS(e[1])),t)))))))),$e=e=>x.tvg(e,{onFailure:e=>x.PyW(e),onSuccess:x.PyW}),Ve=e=>x.TjK(e,e=>!e),Ke=e=>x.qIB(e,e=>{switch(e._tag){case"None":return x.rIH;case"Some":return x.fJG(new x.kJg)}}),Ye=e=>x.TjK(g.L8(!0),t=>x.NLW(x.iK2(e,g.C2(t,!1)))),qe=e=>x.tvg(e,{onFailure:()=>x.PyW(y.dv()),onSuccess:e=>x.PyW(y.zN(e))}),He=(0,c.XY)(2,(e,t)=>x.NWQ(e,()=>x.gOk(t))),Ge=(0,c.XY)(2,(e,t)=>x.NWQ(e,()=>x.OH5(t))),We=e=>x.khu(e,{onFailure:e=>{const t=r.Ts(E.e9(e));return 0===t.length?x.ATB(e):x.fJG(t)},onSuccess:x.PyW}),Xe=e=>Pt((t,n)=>(0,c.Fs)(e,A.F6(t,n))),Je=e=>e.length>=1?x.bIC((t,n)=>{try{e(n).then(e=>t(x.PyW(e)),e=>t(x.F_Q(e)))}catch(e){t(x.F_Q(e))}}):x.bIC(t=>{try{e().then(e=>t(x.PyW(e)),e=>t(x.F_Q(e)))}catch(e){t(x.F_Q(e))}}),Ze=(0,c.XY)(3,(e,t,n)=>x.d_m(r=>x.PpN(e,s.WQ(r,t,n)))),Qe=(0,c.XY)(3,(e,t,n)=>x.d_m(r=>x.qIB(n,n=>x.PpN(e,(0,c.Fs)(r,s.WQ(t,n)))))),et=v.Gx(x.PyW),tt=(0,c.XY)(3,(e,t,n)=>r.Ts(e).reduce((e,t,r)=>x.qIB(e,e=>n(e,t,r)),x.PyW(t))),nt=(0,c.XY)(3,(e,t,n)=>r.Ts(e).reduceRight((e,t,r)=>x.qIB(e,e=>n(t,e,r)),x.PyW(t))),rt=(0,c.XY)(3,(e,t,n)=>x.qIB(x.OH5(()=>e[Symbol.iterator]()),e=>it(e,0,t,n.while,n.body))),it=(e,t,n,r,i)=>{const a=e.next();return!a.done&&r(n)?x.qIB(i(n,a.value,t),n=>it(e,t+1,n,r,i)):x.PyW(n)},at=(0,c.XY)(2,(e,t)=>x.DYE(()=>st(e,t))),st=(e,t)=>x.qIB(e,n=>t<=0?x.PyW(n):x.aNH(x.m9E(),st(e,t-1))),ot=e=>x.khu(e,{onFailure:x.fJG,onSuccess:x.PyW}),ut=e=>x.DYE(()=>u.Au(e)),ct=a.yy,lt=x.PyW(y.dv()),ft=e=>x.PyW(y.zN(e)),dt=(0,c.XY)(3,(e,t,n)=>x.qIB(t,r=>x.qIB(e,e=>x.TjK(t,t=>[n(r,t),e])))),ht=(0,c.XY)(e=>x.yw5(e[0]),function(){return pt(arguments[0],"string"==typeof arguments[1]?[N.L8(arguments[1],arguments[2])]:Object.entries(arguments[1]).map(([e,t])=>N.L8(e,t)))}),pt=(0,c.XY)(2,(e,t)=>x.q1t(e,x.b1P,e=>r.KC(e,t))),mt=(0,c.XY)(2,(e,t)=>x.DYE(()=>{const n=e[Symbol.iterator](),r=[];let i,a=x.PyW(!1),s=0;for(;(i=n.next())&&!i.done;){const e=i.value,n=s++;a=x.qIB(a,i=>i?x.PyW(!0):(r.push(e),t(e,n)))}return x.TjK(a,()=>r)})),yt=(0,c.XY)(2,(e,t)=>x.DYE(()=>{const n=e[Symbol.iterator](),r=[];let i,a=x.PyW(!0),s=0;for(;(i=n.next())&&!i.done;){const e=i.value,n=s++;a=x.qIB(a,i=>(0,c.Fs)(i?t(e,n):x.PyW(!1),x.TjK(t=>(t&&r.push(e),t))))}return x.TjK(a,()=>r)})),bt=(0,c.XY)(2,(e,{onFailure:t,onSuccess:n})=>x.khu(e,{onFailure:e=>{const n=E.vE(e);switch(n._tag){case"Left":return x.aNH(t(n.left),x.ATB(e));case"Right":return x.ATB(e)}},onSuccess:e=>x.as(n(e),e)})),gt=(0,c.XY)(2,(e,t)=>x.uPo(e,e=>y.YW(E.AW(e),{onNone:()=>x.ATB(e),onSome:n=>x.aNH(t(n),x.ATB(e))}))),vt=(0,c.XY)(2,(e,t)=>x.khu(e,{onFailure:e=>{const n=E.vE(e);switch(n._tag){case"Left":return x.aNH(t(n.left),x.ATB(e));case"Right":return x.ATB(e)}},onSuccess:x.PyW})),wt=(0,c.XY)(3,(e,t,n)=>vt(e,e=>b.$J(e,t)?n(e):x.rIH)),_t=(0,c.XY)(2,(e,t)=>x.khu(e,{onFailure:e=>x.aNH(t(e),x.ATB(e)),onSuccess:x.PyW})),St=e=>Et(e,a.s0),Et=(0,c.XY)(2,(e,t)=>dt(e,t,(e,t)=>o.cF(t-e))),kt=_(x.PyW),xt=e=>{let t,n;"function"==typeof e?t=e:(t=e.try,n=e.catch);const r=e=>n?x.gOk(()=>n(e)):x.fJG(new x.Uis(e,"An unknown error occurred in Effect.tryPromise"));return t.length>=1?x.bIC((e,n)=>{try{t(n).then(t=>e(x.PyW(t)),t=>e(r(t)))}catch(t){e(r(t))}}):x.bIC(e=>{try{t().then(t=>e(x.PyW(t)),t=>e(r(t)))}catch(t){e(r(t))}})},Tt=(0,c.XY)(2,(e,t)=>x.qIB(e,e=>B({try:()=>t.try(e),catch:t.catch}))),Mt=(0,c.XY)(2,(e,t)=>x.qIB(e,e=>xt({try:t.try.length>=1?n=>t.try(e,n):()=>t.try(e),catch:t.catch}))),It=(0,c.XY)(2,(e,t)=>x.DYE(()=>t()?lt:R(e))),At=(0,c.XY)(2,(e,t)=>x.qIB(t,t=>t?lt:R(e))),Nt=e=>Ue(e,E.Bq),Pt=e=>x.$we(t=>(t.setFiberRefs(e(t.id(),t.getFiberRefs())),x.rIH)),Ot=(0,c.XY)(3,(e,t,n)=>x.kyh(e,e=>s.WQ(e,t,n(s.$v(e,t))))),Rt=(0,c.XY)(2,(e,t)=>x.DYE(()=>t()?x.TjK(e,y.zN):x.PyW(y.dv()))),Ct=(0,c.XY)(3,(e,t,n)=>x.qIB(x.U8_(t),t=>n(t)?x.TjK(e,e=>[t,y.zN(e)]):x.PyW([t,y.dv()]))),Bt=(0,c.XY)(3,(e,t,n)=>x.qIB(g.Jt(t),t=>n(t)?x.TjK(e,e=>[t,y.zN(e)]):x.PyW([t,y.dv()]))),Ft=(0,c.XY)(2,(e,t)=>t(e)),Lt=(e,t)=>(...n)=>x.qIB(e,e=>t(e)(...n)),jt=(e,t)=>(...n)=>x.TjK(e,e=>t(e)(...n)),Dt=e=>new Proxy({},{get:(t,n,r)=>(...t)=>x.qIB(e,e=>e[n](...t))}),Ut=e=>new Proxy({},{get:(t,n,r)=>x.qIB(e,e=>x.yw5(e[n])?e[n]:x.PyW(e[n]))}),zt=e=>({functions:Dt(e),constants:Ut(e)}),$t=e=>x.TjK(x._OA(),s.om(e)),Vt=e=>x.qIB(x._OA(),s.om(e)),Kt=function(){const e=arguments;return we(x.qIB(Gt,t=>x.OH5(()=>{if("string"==typeof e[0])t.attribute(e[0],e[1]);else for(const n in e[0])t.attribute(n,e[0][n])})))},Yt=function(){const e=arguments,t=Array.isArray(e[0])?e[0]:[{_tag:"SpanLink",span:e[0],attributes:e[1]??{}}];return we(x.qIB(Gt,e=>x.OH5(()=>e.addLinks(t))))},qt=(0,c.XY)(e=>x.yw5(e[0]),function(){const e=arguments;return x.q1t(e[0],x.BzD,"string"==typeof e[1]?l.hZ(e[1],e[2]):t=>Object.entries(e[1]).reduce((e,[t,n])=>l.hZ(e,t,n),t))}),Ht=Vt(w.Te),Gt=x.qIB(x._OA(),e=>{const t=e.unsafeMap.get(w.Te.key);return void 0!==t&&"Span"===t._tag?x.PyW(t):x.fJG(new x.kJg)}),Wt=(0,c.XY)(e=>x.yw5(e[0]),(e,t,n)=>x.q1t(e,x.s$T,i.BC({_tag:"SpanLink",span:t,attributes:n??{}}))),Xt=BigInt(0),Jt=y.qI(e=>s.Jt(e.context,w.DW)?"Span"===e._tag?Jt(e.parent):y.dv():y.zN(e)),Zt=(e,t,n)=>{const o=!e.getFiberRef(x.MP9)||n.context&&s.Jt(n.context,w.DW),c=e.getFiberRef(x.Fi1),f=n.parent?y.zN(n.parent):n.root?y.dv():Jt(s.om(c,w.Te));let d;if(o)d=x.bVS({name:t,parent:f,context:s.WQ(n.context??s.Ie(),w.DW,!0)});else{const o=e.getFiberRef(v.qJ),c=s.Jt(o,w.Ez),h=s.Jt(o,a.zD),p=e.getFiberRef(x.QYw),m=e.getFiberRefs(),y=u.Jt(m,x.BzD),b=u.Jt(m,x.s$T),g="Some"===b._tag?void 0!==n.links?[...i.h3(b.value),...n.links??[]]:i.h3(b.value):n.links??r.Ie();d=c.span(t,f,n.context??s.Ie(),g,p?h.unsafeCurrentTimeNanos():Xt,n.kind??"internal",n),"Some"===y._tag&&l.jJ(y.value,(e,t)=>d.attribute(t,e)),void 0!==n.attributes&&Object.entries(n.attributes).forEach(([e,t])=>d.attribute(e,t))}return"function"==typeof n.captureStackTrace&&E.rF.set(d,n.captureStackTrace),d},Qt=(e,t)=>(t=w.ZA(t),x.$we(n=>x.PyW(Zt(n,e,t)))),en=x.U8_(x.BzD),tn=x.U8_(x.s$T),nn=(e,t,n,r)=>x.OH5(()=>{"Ended"!==e.status._tag&&(x.VE1(t)&&E.rF.has(e)&&e.attribute("code.stacktrace",E.rF.get(e)()),e.end(r?n.unsafeCurrentTimeNanos():Xt,t))}),rn=(e,...t)=>{const n=w.ZA(1===t.length?void 0:t[0]),r=t[t.length-1];return x.$we(t=>{const i=Zt(t,e,n),a=t.getFiberRef(x.QYw),o=s.Jt(t.getFiberRef(v.qJ),k.hV);return x.cfM(r(i),e=>nn(i,e,o,a))})},an=(0,c.XY)(2,(e,t)=>Ze(e,w.Te,t)),sn=function(){const e="string"!=typeof arguments[0],t=e?arguments[1]:arguments[0],n=w.ZA(e?arguments[2]:arguments[1]);if(e){const e=arguments[0];return rn(t,n,t=>an(e,t))}return e=>rn(t,n,t=>an(e,t))},on=e=>function(){let t=e.captureStackTrace??!1;if(!1!==e.captureStackTrace){const e=Error.stackTraceLimit;Error.stackTraceLimit=2;const n=new Error;Error.stackTraceLimit=e;let r=!1;t=()=>{if(!1!==r)return r;if(n.stack){const e=n.stack.trim().split("\n");return r=e.slice(2).join("\n").trim(),r}}}return x.DYE(()=>{const n="function"==typeof e.options?e.options.apply(null,arguments):e.options;return sn(x.DYE(()=>(0,S.sn)(()=>e.body.apply(this,arguments))),n.name,{...n,captureStackTrace:t})})},un=e=>null==e?x.fJG(new x.kJg):x.PyW(e),cn=e=>x.h9N(x.TjK(e,y.zN),e=>x.QRo(e)?lt:x.fJG(e))},54046(e,t,n){"use strict";n.d(t,{a:()=>h});var r=n(74014),i=n(44535),a=n(23427),s=n(98156),o=n(47457),u=n(77576),c=n(26015),l=n(42169),f=n(13940),d=n(73989);async function h(e,t){const{account:n=e.account,accessList:h,authorizationList:p,chain:m=e.chain,blobVersionedHashes:y,blobs:b,data:g,gas:v,gasPrice:w,maxFeePerBlobGas:_,maxFeePerGas:S,maxPriorityFeePerGas:E,nonce:k,nonceManager:x,to:T,type:M,value:I,...A}=t,N=await(async()=>{if(!n)return k;if(!x)return k;if(void 0!==k)return k;const t=(0,r.J)(n),i=m?m.id:await(0,c.T)(e,d.T,"getChainId")({});return await x.consume({address:t.address,chainId:i,client:e})})();(0,l.c)(t);const P=m?.formatters?.transactionRequest?.format,O=(P||u.Bv)({...(0,s.o)(A,{format:P}),account:n?(0,r.J)(n):void 0,accessList:h,authorizationList:p,blobs:b,blobVersionedHashes:y,data:g,gas:v,gasPrice:w,maxFeePerBlobGas:_,maxFeePerGas:S,maxPriorityFeePerGas:E,nonce:N,to:T,type:M,value:I},"fillTransaction");try{const n=await e.request({method:"eth_fillTransaction",params:[O]}),r=(m?.formatters?.transaction?.format||o.uP)(n.tx);delete r.blockHash,delete r.blockNumber,delete r.r,delete r.s,delete r.transactionIndex,delete r.v,delete r.yParity,r.data=r.input,r.gas&&(r.gas=t.gas??r.gas),r.gasPrice&&(r.gasPrice=t.gasPrice??r.gasPrice),r.maxFeePerBlobGas&&(r.maxFeePerBlobGas=t.maxFeePerBlobGas??r.maxFeePerBlobGas),r.maxFeePerGas&&(r.maxFeePerGas=t.maxFeePerGas??r.maxFeePerGas),r.maxPriorityFeePerGas&&(r.maxPriorityFeePerGas=t.maxPriorityFeePerGas??r.maxPriorityFeePerGas),r.nonce&&(r.nonce=t.nonce??r.nonce);const a=await(async()=>{if("function"==typeof m?.fees?.baseFeeMultiplier){const n=await(0,c.T)(e,f.g,"getBlock")({});return m.fees.baseFeeMultiplier({block:n,client:e,request:t})}return m?.fees?.baseFeeMultiplier??1.2})();if(a<1)throw new i.sM;const s=10**(a.toString().split(".")[1]?.length??0),u=e=>e*BigInt(Math.ceil(a*s))/BigInt(s);return r.maxFeePerGas&&!t.maxFeePerGas&&(r.maxFeePerGas=u(r.maxFeePerGas)),r.gasPrice&&!t.gasPrice&&(r.gasPrice=u(r.gasPrice)),{raw:n.raw,transaction:{from:O.from,...r}}}catch(n){throw(0,a.p)(n,{...t,chain:e.chain})}}},54966(e,t,n){var r=t;r.Reporter=n(75437).a,r.DecoderBuffer=n(15542).t,r.EncoderBuffer=n(15542).d,r.Node=n(73004)},55037(e,t,n){"use strict";var r=n(18277).Buffer,i=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=u,this.end=c,t=4;break;case"utf8":this.fillLast=o,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=d,void(this.end=h)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function s(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function o(e){var t=this.lastTotal-this.lastNeed,n=function(e,t){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function u(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function d(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}t.I=a,a.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0?(i>0&&(e.lastNeed=i-1),i):--r=0?(i>0&&(e.lastNeed=i-2),i):--r=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},a.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},55116(e,t,n){"use strict";var r,i=n(42649);r=n.g.process&&n.g.process.browser?"utf-8":n.g.process&&n.g.process.version?parseInt(i.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary":"utf-8",e.exports=r},55303(e,t,n){"use strict";var r=n(33213),i=n(10457),a=n(8776),s=n(35951),o=n(81475);function u(e){o.call(this,"digest"),this._hash=e}r(u,o),u.prototype._update=function(e){this._hash.update(e)},u.prototype._final=function(){return this._hash.digest()},e.exports=function(e){return"md5"===(e=e.toLowerCase())?new i:"rmd160"===e||"ripemd160"===e?new a:new u(s(e))}},55606(e,t,n){"use strict";n.d(t,{Gx:()=>E,Ii:()=>k,RK:()=>b,Ru:()=>g,V6:()=>w,_o:()=>T,aP:()=>S,gm:()=>_,qJ:()=>p,s0:()=>v,wT:()=>x,yy:()=>m});var r=n(47726),i=n(68449),a=n(59329),s=n(55661),o=n(68929),u=n(79383),c=n(89921),l=n(36388),f=n(95516),d=n(30114);const h=(0,a.Fs)(r.Ie(),r.WQ(o.hV,o.L8()),r.WQ(l.MG,l.nS),r.WQ(f.k_,f.L8(Math.random())),r.WQ(u.Am,u.sF()),r.WQ(d.Ez,d.Vv)),p=(0,s.V)(Symbol.for("effect/DefaultServices/currentServices"),()=>c.bzD(h)),m=e=>{const t=i.D4(e);return b(e=>e.sleep(t))},y=e=>c.$we(t=>e(t.currentDefaultServices)),b=e=>y(t=>e(t.unsafeMap.get(o.hV.key))),g=b(e=>e.currentTimeMillis),v=b(e=>e.currentTimeNanos),w=(0,a.XY)(2,(e,t)=>c.q1t(p,r.WQ(o.hV,t))(e)),_=(0,a.XY)(2,(e,t)=>c.q1t(p,r.WQ(u.Am,t))(e)),S=e=>y(t=>e(t.unsafeMap.get(u.Am.key))),E=e=>y(t=>e(t.unsafeMap.get(f.k_.key))),k=(0,a.XY)(2,(e,t)=>c.q1t(p,r.WQ(f.k_,t))(e)),x=e=>y(t=>e(t.unsafeMap.get(d.Ez.key))),T=(0,a.XY)(2,(e,t)=>c.q1t(p,r.WQ(d.Ez,t))(e))},55628(e,t,n){!function(e,t){"use strict";function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function i(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function a(e,t,n){if(a.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var s;"object"==typeof e?e.exports=a:t.BN=a,a.BN=a,a.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:n(92110).Buffer}catch(e){}function o(e,t){var n=e.charCodeAt(t);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+e)}function u(e,t,n){var r=o(e,n);return n-1>=t&&(r|=o(e,n-1)<<4),r}function c(e,t,n,i){for(var a=0,s=0,o=Math.min(e.length,n),u=t;u=49?c-49+10:c>=17?c-17+10:c,r(c>=0&&s0?e:t},a.min=function(e,t){return e.cmp(t)<0?e:t},a.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(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[a]|=s<>>26-o&67108863,(o+=24)>=26&&(o-=26,a++);else if("le"===n)for(i=0,a=0;i>>26-o&67108863,(o+=24)>=26&&(o-=26,a++);return this._strip()},a.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=2)i=u(e,t,r)<=18?(a-=18,s+=1,this.words[s]|=i>>>26):a+=8;else for(r=(e.length-t)%2==0?t+1:t;r=18?(a-=18,s+=1,this.words[s]|=i>>>26):a+=8;this._strip()},a.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var a=e.length-n,s=a%r,o=Math.min(a,a-s)+n,u=0,l=n;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{a.prototype[Symbol.for("nodejs.util.inspect.custom")]=f}catch(e){a.prototype.inspect=f}else a.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 m(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],a=0|t.words[0],s=i*a,o=67108863&s,u=s/67108864|0;n.words[0]=o;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])*(a=0|t.words[h])+f)/67108864|0,f=67108863&s}n.words[c]=0|f,u=0|l}return 0!==u?n.words[c]=0|u:n.length--,n._strip()}a.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,a=0,s=0;s>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),n=0!==a||s!==this.length-1?d[6-u.length]+u+n:u+n}for(0!==a&&(n=a.toString(16)+n);n.length%t!==0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var c=h[e],l=p[e];n="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modrn(l).toString(e);n=(f=f.idivn(l)).isZero()?m+n:d[c-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!==0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},a.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&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},a.prototype.toJSON=function(){return this.toString(16,2)},s&&(a.prototype.toBuffer=function(e,t){return this.toArrayLike(s,e,t)}),a.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},a.prototype.toArrayLike=function(e,t,n){this._strip();var i=this.byteLength(),a=n||Math.max(1,i);r(i<=a,"byte array longer than desired length"),r(a>0,"Requested array length <= 0");var s=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,a);return this["_toArrayLike"+("le"===t?"LE":"BE")](s,i),s},a.prototype._toArrayLikeLE=function(e,t){for(var n=0,r=0,i=0,a=0;i>8&255),n>16&255),6===a?(n>24&255),r=0,a=0):(r=s>>>24,a+=2)}if(n=0&&(e[n--]=s>>8&255),n>=0&&(e[n--]=s>>16&255),6===a?(n>=0&&(e[n--]=s>>24&255),r=0,a=0):(r=s>>>24,a+=2)}if(n>=0)for(e[n--]=r;n>=0;)e[n--]=0},Math.clz32?a.prototype._countBits=function(e){return 32-Math.clz32(e)}:a.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},a.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 8191&t||(n+=13,t>>>=13),127&t||(n+=7,t>>>=7),15&t||(n+=4,t>>>=4),3&t||(n+=2,t>>>=2),1&t||n++,n},a.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},a.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},a.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},a.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},a.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;re.length?this.clone().ixor(e):e.clone().ixor(this)},a.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},a.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-n),this._strip()},a.prototype.notn=function(e){return this.clone().inotn(e)},a.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(n=this,r=e):(n=e,r=this);for(var i=0,a=0;a>>26;for(;0!==i&&a>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;ae.length?this.clone().iadd(e):e.clone().iadd(this)},a.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 n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var a=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==a&&s>26,this.words[s]=67108863&t;if(0===a&&s>>13,h=0|s[1],p=8191&h,m=h>>>13,y=0|s[2],b=8191&y,g=y>>>13,v=0|s[3],w=8191&v,_=v>>>13,S=0|s[4],E=8191&S,k=S>>>13,x=0|s[5],T=8191&x,M=x>>>13,I=0|s[6],A=8191&I,N=I>>>13,P=0|s[7],O=8191&P,R=P>>>13,C=0|s[8],B=8191&C,F=C>>>13,L=0|s[9],j=8191&L,D=L>>>13,U=0|o[0],z=8191&U,$=U>>>13,V=0|o[1],K=8191&V,Y=V>>>13,q=0|o[2],H=8191&q,G=q>>>13,W=0|o[3],X=8191&W,J=W>>>13,Z=0|o[4],Q=8191&Z,ee=Z>>>13,te=0|o[5],ne=8191&te,re=te>>>13,ie=0|o[6],ae=8191&ie,se=ie>>>13,oe=0|o[7],ue=8191&oe,ce=oe>>>13,le=0|o[8],fe=8191&le,de=le>>>13,he=0|o[9],pe=8191&he,me=he>>>13;n.negative=e.negative^t.negative,n.length=19;var ye=(c+(r=Math.imul(f,z))|0)+((8191&(i=(i=Math.imul(f,$))+Math.imul(d,z)|0))<<13)|0;c=((a=Math.imul(d,$))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(p,z),i=(i=Math.imul(p,$))+Math.imul(m,z)|0,a=Math.imul(m,$);var be=(c+(r=r+Math.imul(f,K)|0)|0)+((8191&(i=(i=i+Math.imul(f,Y)|0)+Math.imul(d,K)|0))<<13)|0;c=((a=a+Math.imul(d,Y)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(b,z),i=(i=Math.imul(b,$))+Math.imul(g,z)|0,a=Math.imul(g,$),r=r+Math.imul(p,K)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(m,K)|0,a=a+Math.imul(m,Y)|0;var ge=(c+(r=r+Math.imul(f,H)|0)|0)+((8191&(i=(i=i+Math.imul(f,G)|0)+Math.imul(d,H)|0))<<13)|0;c=((a=a+Math.imul(d,G)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(w,z),i=(i=Math.imul(w,$))+Math.imul(_,z)|0,a=Math.imul(_,$),r=r+Math.imul(b,K)|0,i=(i=i+Math.imul(b,Y)|0)+Math.imul(g,K)|0,a=a+Math.imul(g,Y)|0,r=r+Math.imul(p,H)|0,i=(i=i+Math.imul(p,G)|0)+Math.imul(m,H)|0,a=a+Math.imul(m,G)|0;var ve=(c+(r=r+Math.imul(f,X)|0)|0)+((8191&(i=(i=i+Math.imul(f,J)|0)+Math.imul(d,X)|0))<<13)|0;c=((a=a+Math.imul(d,J)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(E,z),i=(i=Math.imul(E,$))+Math.imul(k,z)|0,a=Math.imul(k,$),r=r+Math.imul(w,K)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(_,K)|0,a=a+Math.imul(_,Y)|0,r=r+Math.imul(b,H)|0,i=(i=i+Math.imul(b,G)|0)+Math.imul(g,H)|0,a=a+Math.imul(g,G)|0,r=r+Math.imul(p,X)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(m,X)|0,a=a+Math.imul(m,J)|0;var we=(c+(r=r+Math.imul(f,Q)|0)|0)+((8191&(i=(i=i+Math.imul(f,ee)|0)+Math.imul(d,Q)|0))<<13)|0;c=((a=a+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(T,z),i=(i=Math.imul(T,$))+Math.imul(M,z)|0,a=Math.imul(M,$),r=r+Math.imul(E,K)|0,i=(i=i+Math.imul(E,Y)|0)+Math.imul(k,K)|0,a=a+Math.imul(k,Y)|0,r=r+Math.imul(w,H)|0,i=(i=i+Math.imul(w,G)|0)+Math.imul(_,H)|0,a=a+Math.imul(_,G)|0,r=r+Math.imul(b,X)|0,i=(i=i+Math.imul(b,J)|0)+Math.imul(g,X)|0,a=a+Math.imul(g,J)|0,r=r+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(m,Q)|0,a=a+Math.imul(m,ee)|0;var _e=(c+(r=r+Math.imul(f,ne)|0)|0)+((8191&(i=(i=i+Math.imul(f,re)|0)+Math.imul(d,ne)|0))<<13)|0;c=((a=a+Math.imul(d,re)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(A,z),i=(i=Math.imul(A,$))+Math.imul(N,z)|0,a=Math.imul(N,$),r=r+Math.imul(T,K)|0,i=(i=i+Math.imul(T,Y)|0)+Math.imul(M,K)|0,a=a+Math.imul(M,Y)|0,r=r+Math.imul(E,H)|0,i=(i=i+Math.imul(E,G)|0)+Math.imul(k,H)|0,a=a+Math.imul(k,G)|0,r=r+Math.imul(w,X)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,X)|0,a=a+Math.imul(_,J)|0,r=r+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,ee)|0)+Math.imul(g,Q)|0,a=a+Math.imul(g,ee)|0,r=r+Math.imul(p,ne)|0,i=(i=i+Math.imul(p,re)|0)+Math.imul(m,ne)|0,a=a+Math.imul(m,re)|0;var Se=(c+(r=r+Math.imul(f,ae)|0)|0)+((8191&(i=(i=i+Math.imul(f,se)|0)+Math.imul(d,ae)|0))<<13)|0;c=((a=a+Math.imul(d,se)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(O,z),i=(i=Math.imul(O,$))+Math.imul(R,z)|0,a=Math.imul(R,$),r=r+Math.imul(A,K)|0,i=(i=i+Math.imul(A,Y)|0)+Math.imul(N,K)|0,a=a+Math.imul(N,Y)|0,r=r+Math.imul(T,H)|0,i=(i=i+Math.imul(T,G)|0)+Math.imul(M,H)|0,a=a+Math.imul(M,G)|0,r=r+Math.imul(E,X)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(k,X)|0,a=a+Math.imul(k,J)|0,r=r+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,a=a+Math.imul(_,ee)|0,r=r+Math.imul(b,ne)|0,i=(i=i+Math.imul(b,re)|0)+Math.imul(g,ne)|0,a=a+Math.imul(g,re)|0,r=r+Math.imul(p,ae)|0,i=(i=i+Math.imul(p,se)|0)+Math.imul(m,ae)|0,a=a+Math.imul(m,se)|0;var Ee=(c+(r=r+Math.imul(f,ue)|0)|0)+((8191&(i=(i=i+Math.imul(f,ce)|0)+Math.imul(d,ue)|0))<<13)|0;c=((a=a+Math.imul(d,ce)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(B,z),i=(i=Math.imul(B,$))+Math.imul(F,z)|0,a=Math.imul(F,$),r=r+Math.imul(O,K)|0,i=(i=i+Math.imul(O,Y)|0)+Math.imul(R,K)|0,a=a+Math.imul(R,Y)|0,r=r+Math.imul(A,H)|0,i=(i=i+Math.imul(A,G)|0)+Math.imul(N,H)|0,a=a+Math.imul(N,G)|0,r=r+Math.imul(T,X)|0,i=(i=i+Math.imul(T,J)|0)+Math.imul(M,X)|0,a=a+Math.imul(M,J)|0,r=r+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(k,Q)|0,a=a+Math.imul(k,ee)|0,r=r+Math.imul(w,ne)|0,i=(i=i+Math.imul(w,re)|0)+Math.imul(_,ne)|0,a=a+Math.imul(_,re)|0,r=r+Math.imul(b,ae)|0,i=(i=i+Math.imul(b,se)|0)+Math.imul(g,ae)|0,a=a+Math.imul(g,se)|0,r=r+Math.imul(p,ue)|0,i=(i=i+Math.imul(p,ce)|0)+Math.imul(m,ue)|0,a=a+Math.imul(m,ce)|0;var ke=(c+(r=r+Math.imul(f,fe)|0)|0)+((8191&(i=(i=i+Math.imul(f,de)|0)+Math.imul(d,fe)|0))<<13)|0;c=((a=a+Math.imul(d,de)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(j,z),i=(i=Math.imul(j,$))+Math.imul(D,z)|0,a=Math.imul(D,$),r=r+Math.imul(B,K)|0,i=(i=i+Math.imul(B,Y)|0)+Math.imul(F,K)|0,a=a+Math.imul(F,Y)|0,r=r+Math.imul(O,H)|0,i=(i=i+Math.imul(O,G)|0)+Math.imul(R,H)|0,a=a+Math.imul(R,G)|0,r=r+Math.imul(A,X)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(N,X)|0,a=a+Math.imul(N,J)|0,r=r+Math.imul(T,Q)|0,i=(i=i+Math.imul(T,ee)|0)+Math.imul(M,Q)|0,a=a+Math.imul(M,ee)|0,r=r+Math.imul(E,ne)|0,i=(i=i+Math.imul(E,re)|0)+Math.imul(k,ne)|0,a=a+Math.imul(k,re)|0,r=r+Math.imul(w,ae)|0,i=(i=i+Math.imul(w,se)|0)+Math.imul(_,ae)|0,a=a+Math.imul(_,se)|0,r=r+Math.imul(b,ue)|0,i=(i=i+Math.imul(b,ce)|0)+Math.imul(g,ue)|0,a=a+Math.imul(g,ce)|0,r=r+Math.imul(p,fe)|0,i=(i=i+Math.imul(p,de)|0)+Math.imul(m,fe)|0,a=a+Math.imul(m,de)|0;var xe=(c+(r=r+Math.imul(f,pe)|0)|0)+((8191&(i=(i=i+Math.imul(f,me)|0)+Math.imul(d,pe)|0))<<13)|0;c=((a=a+Math.imul(d,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(j,K),i=(i=Math.imul(j,Y))+Math.imul(D,K)|0,a=Math.imul(D,Y),r=r+Math.imul(B,H)|0,i=(i=i+Math.imul(B,G)|0)+Math.imul(F,H)|0,a=a+Math.imul(F,G)|0,r=r+Math.imul(O,X)|0,i=(i=i+Math.imul(O,J)|0)+Math.imul(R,X)|0,a=a+Math.imul(R,J)|0,r=r+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(N,Q)|0,a=a+Math.imul(N,ee)|0,r=r+Math.imul(T,ne)|0,i=(i=i+Math.imul(T,re)|0)+Math.imul(M,ne)|0,a=a+Math.imul(M,re)|0,r=r+Math.imul(E,ae)|0,i=(i=i+Math.imul(E,se)|0)+Math.imul(k,ae)|0,a=a+Math.imul(k,se)|0,r=r+Math.imul(w,ue)|0,i=(i=i+Math.imul(w,ce)|0)+Math.imul(_,ue)|0,a=a+Math.imul(_,ce)|0,r=r+Math.imul(b,fe)|0,i=(i=i+Math.imul(b,de)|0)+Math.imul(g,fe)|0,a=a+Math.imul(g,de)|0;var Te=(c+(r=r+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;c=((a=a+Math.imul(m,me)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(j,H),i=(i=Math.imul(j,G))+Math.imul(D,H)|0,a=Math.imul(D,G),r=r+Math.imul(B,X)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(F,X)|0,a=a+Math.imul(F,J)|0,r=r+Math.imul(O,Q)|0,i=(i=i+Math.imul(O,ee)|0)+Math.imul(R,Q)|0,a=a+Math.imul(R,ee)|0,r=r+Math.imul(A,ne)|0,i=(i=i+Math.imul(A,re)|0)+Math.imul(N,ne)|0,a=a+Math.imul(N,re)|0,r=r+Math.imul(T,ae)|0,i=(i=i+Math.imul(T,se)|0)+Math.imul(M,ae)|0,a=a+Math.imul(M,se)|0,r=r+Math.imul(E,ue)|0,i=(i=i+Math.imul(E,ce)|0)+Math.imul(k,ue)|0,a=a+Math.imul(k,ce)|0,r=r+Math.imul(w,fe)|0,i=(i=i+Math.imul(w,de)|0)+Math.imul(_,fe)|0,a=a+Math.imul(_,de)|0;var Me=(c+(r=r+Math.imul(b,pe)|0)|0)+((8191&(i=(i=i+Math.imul(b,me)|0)+Math.imul(g,pe)|0))<<13)|0;c=((a=a+Math.imul(g,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(j,X),i=(i=Math.imul(j,J))+Math.imul(D,X)|0,a=Math.imul(D,J),r=r+Math.imul(B,Q)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(F,Q)|0,a=a+Math.imul(F,ee)|0,r=r+Math.imul(O,ne)|0,i=(i=i+Math.imul(O,re)|0)+Math.imul(R,ne)|0,a=a+Math.imul(R,re)|0,r=r+Math.imul(A,ae)|0,i=(i=i+Math.imul(A,se)|0)+Math.imul(N,ae)|0,a=a+Math.imul(N,se)|0,r=r+Math.imul(T,ue)|0,i=(i=i+Math.imul(T,ce)|0)+Math.imul(M,ue)|0,a=a+Math.imul(M,ce)|0,r=r+Math.imul(E,fe)|0,i=(i=i+Math.imul(E,de)|0)+Math.imul(k,fe)|0,a=a+Math.imul(k,de)|0;var Ie=(c+(r=r+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,me)|0)+Math.imul(_,pe)|0))<<13)|0;c=((a=a+Math.imul(_,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(j,Q),i=(i=Math.imul(j,ee))+Math.imul(D,Q)|0,a=Math.imul(D,ee),r=r+Math.imul(B,ne)|0,i=(i=i+Math.imul(B,re)|0)+Math.imul(F,ne)|0,a=a+Math.imul(F,re)|0,r=r+Math.imul(O,ae)|0,i=(i=i+Math.imul(O,se)|0)+Math.imul(R,ae)|0,a=a+Math.imul(R,se)|0,r=r+Math.imul(A,ue)|0,i=(i=i+Math.imul(A,ce)|0)+Math.imul(N,ue)|0,a=a+Math.imul(N,ce)|0,r=r+Math.imul(T,fe)|0,i=(i=i+Math.imul(T,de)|0)+Math.imul(M,fe)|0,a=a+Math.imul(M,de)|0;var Ae=(c+(r=r+Math.imul(E,pe)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(k,pe)|0))<<13)|0;c=((a=a+Math.imul(k,me)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(j,ne),i=(i=Math.imul(j,re))+Math.imul(D,ne)|0,a=Math.imul(D,re),r=r+Math.imul(B,ae)|0,i=(i=i+Math.imul(B,se)|0)+Math.imul(F,ae)|0,a=a+Math.imul(F,se)|0,r=r+Math.imul(O,ue)|0,i=(i=i+Math.imul(O,ce)|0)+Math.imul(R,ue)|0,a=a+Math.imul(R,ce)|0,r=r+Math.imul(A,fe)|0,i=(i=i+Math.imul(A,de)|0)+Math.imul(N,fe)|0,a=a+Math.imul(N,de)|0;var Ne=(c+(r=r+Math.imul(T,pe)|0)|0)+((8191&(i=(i=i+Math.imul(T,me)|0)+Math.imul(M,pe)|0))<<13)|0;c=((a=a+Math.imul(M,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(j,ae),i=(i=Math.imul(j,se))+Math.imul(D,ae)|0,a=Math.imul(D,se),r=r+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,ce)|0)+Math.imul(F,ue)|0,a=a+Math.imul(F,ce)|0,r=r+Math.imul(O,fe)|0,i=(i=i+Math.imul(O,de)|0)+Math.imul(R,fe)|0,a=a+Math.imul(R,de)|0;var Pe=(c+(r=r+Math.imul(A,pe)|0)|0)+((8191&(i=(i=i+Math.imul(A,me)|0)+Math.imul(N,pe)|0))<<13)|0;c=((a=a+Math.imul(N,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,r=Math.imul(j,ue),i=(i=Math.imul(j,ce))+Math.imul(D,ue)|0,a=Math.imul(D,ce),r=r+Math.imul(B,fe)|0,i=(i=i+Math.imul(B,de)|0)+Math.imul(F,fe)|0,a=a+Math.imul(F,de)|0;var Oe=(c+(r=r+Math.imul(O,pe)|0)|0)+((8191&(i=(i=i+Math.imul(O,me)|0)+Math.imul(R,pe)|0))<<13)|0;c=((a=a+Math.imul(R,me)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(j,fe),i=(i=Math.imul(j,de))+Math.imul(D,fe)|0,a=Math.imul(D,de);var Re=(c+(r=r+Math.imul(B,pe)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(F,pe)|0))<<13)|0;c=((a=a+Math.imul(F,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863;var Ce=(c+(r=Math.imul(j,pe))|0)+((8191&(i=(i=Math.imul(j,me))+Math.imul(D,pe)|0))<<13)|0;return c=((a=Math.imul(D,me))+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,u[0]=ye,u[1]=be,u[2]=ge,u[3]=ve,u[4]=we,u[5]=_e,u[6]=Se,u[7]=Ee,u[8]=ke,u[9]=xe,u[10]=Te,u[11]=Me,u[12]=Ie,u[13]=Ae,u[14]=Ne,u[15]=Pe,u[16]=Oe,u[17]=Re,u[18]=Ce,0!==c&&(u[19]=c,n.length++),n};function b(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,a=0;a>>26)|0)>>>26,s&=67108863}n.words[a]=o,r=s,s=i}return 0!==r?n.words[a]=r:n.length--,n._strip()}function g(e,t,n){return b(e,t,n)}function v(e,t){this.x=e,this.y=t}Math.imul||(y=m),a.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?y(this,e,t):n<63?m(this,e,t):n<1024?b(this,e,t):g(this,e,t)},v.prototype.makeRBT=function(e){for(var t=new Array(e),n=a.prototype._countBits(e)-1,r=0;r>=1;return r},v.prototype.permute=function(e,t,n,r,i,a){for(var s=0;s>>=1)i++;return 1<>>=13,n[2*s+1]=8191&a,a>>>=13;for(s=2*t;s>=26,n+=a/67108864|0,n+=s>>>26,this.words[i]=67108863&s}return 0!==n&&(this.words[i]=n,this.length++),this.length=0===e?1:this.length,t?this.ineg():this},a.prototype.muln=function(e){return this.clone().imuln(e)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n>>i&1}return t}(e);if(0===t.length)return new a(1);for(var n=this,r=0;r=0);var t,n=e%26,i=(e-n)/26,a=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t>>26-n}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 a=e%26,s=Math.min((e-a)/26,this.length),o=67108863^67108863>>>a<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-a|f>>>a,l=f&o}return u&&0!==l&&(u.words[u.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},a.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},a.prototype.shln=function(e){return this.clone().ishln(e)},a.prototype.ushln=function(e){return this.clone().iushln(e)},a.prototype.shrn=function(e){return this.clone().ishrn(e)},a.prototype.ushrn=function(e){return this.clone().iushrn(e)},a.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,i=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,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},a.prototype.isubn=function(e){if(r("number"==typeof e),r(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+n]=67108863&a}for(;i>26,this.words[i+n]=67108863&a;if(0===o)return this._strip();for(r(-1===o),o=0,i=0;i>26,this.words[i]=67108863&a;return this.negative=1,this._strip()},a.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),i=e,s=0|i.words[i.length-1];0!=(n=26-this._countBits(s))&&(i=i.ushln(n),r.iushln(n),s=0|i.words[i.length-1]);var o,u=r.length-i.length;if("mod"!==t){(o=new a(null)).length=u+1,o.words=new Array(o.length);for(var c=0;c=0;f--){var d=67108864*(0|r.words[i.length+f])+(0|r.words[i.length+f-1]);for(d=Math.min(d/s|0,67108863),r._ishlnsubmul(i,d,f);0!==r.negative;)d--,r.negative=0,r._ishlnsubmul(i,1,f),r.isZero()||(r.negative^=1);o&&(o.words[f]=d)}return o&&o._strip(),r._strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:o||null,mod:r}},a.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===e.negative?(o=this.neg().divmod(e,t),"mod"!==t&&(i=o.div.neg()),"div"!==t&&(s=o.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:i,mod:s}):0===this.negative&&0!==e.negative?(o=this.divmod(e.neg(),t),"mod"!==t&&(i=o.div.neg()),{div:i,mod:o.mod}):0!==(this.negative&e.negative)?(o=this.neg().divmod(e.neg(),t),"div"!==t&&(s=o.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:o.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new a(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new a(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new a(this.modrn(e.words[0]))}:this._wordDiv(e,t);var i,s,o},a.prototype.div=function(e){return this.divmod(e,"div",!1).div},a.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},a.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},a.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),a=n.cmp(r);return a<0||1===i&&0===a?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},a.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,i=0,a=this.length-1;a>=0;a--)i=(n*i+(0|this.words[a]))%e;return t?-i:i},a.prototype.modn=function(e){return this.modrn(e)},a.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,i=this.length-1;i>=0;i--){var a=(0|this.words[i])+67108864*n;this.words[i]=a/e|0,n=a%e}return this._strip(),t?this.ineg():this},a.prototype.divn=function(e){return this.clone().idivn(e)},a.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new a(1),s=new a(0),o=new a(0),u=new a(1),c=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++c;for(var l=n.clone(),f=t.clone();!t.isZero();){for(var d=0,h=1;0===(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,m=1;0===(n.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(o.isOdd()||u.isOdd())&&(o.iadd(l),u.isub(f)),o.iushrn(1),u.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(o),s.isub(u)):(n.isub(t),o.isub(i),u.isub(s))}return{a:o,b:u,gcd:n.iushln(c)}},a.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,s=new a(1),o=new a(0),u=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var c=0,l=1;0===(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;0===(n.words[0]&d)&&f<26;++f,d<<=1);if(f>0)for(n.iushrn(f);f-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(o)):(n.isub(t),o.isub(s))}return(i=0===t.cmpn(1)?s:o).cmpn(0)<0&&i.iadd(e),i},a.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var a=t;t=n,n=a}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},a.prototype.invm=function(e){return this.egcd(e).a.umod(e)},a.prototype.isEven=function(){return!(1&this.words[0])},a.prototype.isOdd=function(){return!(1&~this.words[0])},a.prototype.andln=function(e){return this.words[0]&e},a.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<>>26,o&=67108863,this.words[s]=o}return 0!==a&&(this.words[s]=a,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:ie.length)return 1;if(this.length=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){ri&&(t=1);break}}return t},a.prototype.gtn=function(e){return 1===this.cmpn(e)},a.prototype.gt=function(e){return 1===this.cmp(e)},a.prototype.gten=function(e){return this.cmpn(e)>=0},a.prototype.gte=function(e){return this.cmp(e)>=0},a.prototype.ltn=function(e){return-1===this.cmpn(e)},a.prototype.lt=function(e){return-1===this.cmp(e)},a.prototype.lten=function(e){return this.cmpn(e)<=0},a.prototype.lte=function(e){return this.cmp(e)<=0},a.prototype.eqn=function(e){return 0===this.cmpn(e)},a.prototype.eq=function(e){return 0===this.cmp(e)},a.red=function(e){return new T(e)},a.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},a.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(e){return this.red=e,this},a.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},a.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},a.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},a.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},a.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},a.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},a.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},a.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},a.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var w={k256:null,p224:null,p192:null,p25519:null};function _(e,t){this.name=e,this.p=new a(t,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function S(){_.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function E(){_.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function k(){_.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function x(){_.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function T(e){if("string"==typeof e){var t=a._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function M(e){T.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(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 a(null);return e.words=new Array(Math.ceil(this.n/13)),e},_.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},_.prototype.split=function(e,t){e.iushrn(this.n,0,t)},_.prototype.imulK=function(e){return e.imul(this.k)},i(S,_),S.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i>>22,a=s}a>>>=22,e.words[i-10]=a,0===a&&e.length>10?e.length-=10:e.length-=9},S.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},a._prime=function(e){if(w[e])return w[e];var t;if("k256"===e)t=new S;else if("p224"===e)t=new E;else if("p192"===e)t=new k;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new x}return w[e]=t,t},T.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},T.prototype._verify2=function(e,t){r(0===(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},T.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(l(e,e.umod(this.m)._forceRed(this)),e)},T.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},T.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},T.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},T.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},T.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},T.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},T.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},T.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},T.prototype.isqr=function(e){return this.imul(e,e.clone())},T.prototype.sqr=function(e){return this.mul(e,e)},T.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new a(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var o=new a(1).toRed(this),u=o.redNeg(),c=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new a(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(o);){for(var m=h,y=0;0!==m.cmp(o);y++)m=m.redSqr();r(y=0;r--){for(var c=t.words[r],l=u-1;l>=0;l--){var f=c>>l&1;i!==n[0]&&(i=this.sqr(i)),0!==f||0!==s?(s<<=1,s|=f,(4===++o||0===r&&0===l)&&(i=this.mul(i,n[s]),o=0,s=0)):o=0}u=26}return i},T.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},T.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new M(e)},i(M,T),M.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},M.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},M.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},M.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new a(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).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)},M.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=n.nmd(e),this)},55661(e,t,n){"use strict";n.d(t,{V:()=>a});const r="effect/GlobalValue";let i;const a=(e,t)=>(i||(globalThis[r]??=new Map,i=globalThis[r]),i.has(e)||i.set(e,t()),i.get(e))},56050(e,t,n){"use strict";n.d(t,{l:()=>jn});var r=n(77701),i=n(56342),a=n(50309),s=n(88924),o=n(22478),u=n(8736),c=n(75209),l=n(2273),f=n(91042);function d(e){if(!(e instanceof l.C))return!1;const t=e.walk(e=>e instanceof f.M);return t instanceof f.M&&("HttpError"===t.data?.errorName||"ResolverError"===t.data?.errorName||"ResolverNotContract"===t.data?.errorName||"ResolverNotFound"===t.data?.errorName||"ReverseAddressMismatch"===t.data?.errorName||"UnsupportedResolverProfile"===t.data?.errorName)}var h=n(95611),p=n(33640),m=n(81127),y=n(35593),b=n(84015);function g(e){if(66!==e.length)return null;if(0!==e.indexOf("["))return null;if(65!==e.indexOf("]"))return null;const t=`0x${e.slice(1,65)}`;return(0,b.q)(t)?t:null}function v(e){let t=new Uint8Array(32).fill(0);if(!e)return(0,c.My)(t);const n=e.split(".");for(let e=n.length-1;e>=0;e-=1){const r=g(n[e]),i=r?(0,m.ZJ)(r):(0,y.S)((0,m.Af)(n[e]),"bytes");t=(0,y.S)((0,p.xW)([t,i]),"bytes")}return(0,c.My)(t)}function w(e){return`[${e.slice(2)}]`}function _(e){const t=new Uint8Array(32).fill(0);return e?g(e)||(0,y.S)((0,m.Af)(e)):(0,c.My)(t)}function S(e){const t=e.replace(/^\.|\.$/gm,"");if(0===t.length)return new Uint8Array(1);const n=new Uint8Array((0,m.Af)(t).byteLength+2);let r=0;const i=t.split(".");for(let e=0;e255&&(t=(0,m.Af)(w(_(i[e])))),n[r]=t.length,n.set(t,r+1),r+=t.length+1}return n.byteLength!==r+1?n.slice(0,r+1):n}var E=n(26015),k=n(76171);class x extends l.C{constructor({data:e}){super("Unable to extract image from metadata. The metadata may be malformed or invalid.",{metaMessages:["- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.","",`Provided data: ${JSON.stringify(e)}`],name:"EnsAvatarInvalidMetadataError"})}}class T extends l.C{constructor({reason:e}){super(`ENS NFT avatar URI is invalid. ${e}`,{name:"EnsAvatarInvalidNftUriError"})}}class M extends l.C{constructor({uri:e}){super(`Unable to resolve ENS avatar URI "${e}". The URI may be malformed, invalid, or does not respond with a valid image.`,{name:"EnsAvatarUriResolutionError"})}}class I extends l.C{constructor({namespace:e}){super(`ENS NFT avatar namespace "${e}" is not supported. Must be "erc721" or "erc1155".`,{name:"EnsAvatarUnsupportedNamespaceError"})}}l.C;const A=/(?https?:\/\/[^/]*|ipfs:\/|ipns:\/|ar:\/)?(?\/)?(?ipfs\/|ipns\/)?(?[\w\-.]+)(?\/.*)?/,N=/^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\/(?[\w\-.]+))?(?\/.*)?$/,P=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,O=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;function R(e,t){return e?e.endsWith("/")?e.slice(0,-1):e:t}function C({uri:e,gatewayUrls:t}){const n=P.test(e);if(n)return{uri:e,isOnChain:!0,isEncoded:n};const r=R(t?.ipfs,"https://ipfs.io"),i=R(t?.arweave,"https://arweave.net"),a=e.match(A),{protocol:s,subpath:o,target:u,subtarget:c=""}=a?.groups||{},l="ipns:/"===s||"ipns/"===o,f="ipfs:/"===s||"ipfs/"===o||N.test(e);if(e.startsWith("http")&&!l&&!f){let n=e;return t?.arweave&&(n=e.replace(/https:\/\/arweave.net/g,t?.arweave)),{uri:n,isOnChain:!1,isEncoded:!1}}if((l||f)&&u)return{uri:`${r}/${l?"ipns":"ipfs"}/${u}${c}`,isOnChain:!1,isEncoded:!1};if("ar:/"===s&&u)return{uri:`${i}/${u}${c||""}`,isOnChain:!1,isEncoded:!1};let d=e.replace(O,"");if(d.startsWith("{const n=new Image;n.onload=()=>{t(!0)},n.onerror=()=>{t(!1)},n.src=e})}}(n);if(i)return n;throw new M({uri:t})}async function L(e,t){const{blockNumber:n,blockTag:r,key:u,name:l,gatewayUrls:f,strict:p}=t,{chain:m}=e,y=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!m)throw new Error("client chain not configured. universalResolverAddress is required.");return(0,o.M)({blockNumber:n,chain:m,contract:"ensUniversalResolver"})})(),b=m?.ensTlds;if(b&&!b.some(e=>l.endsWith(e)))return null;try{const t={address:y,abi:i.Ag,args:[(0,c.nj)(S(l)),(0,s.p)({abi:i.SJ,functionName:"text",args:[v(l),u]}),f??[h.J]],functionName:"resolveWithGateways",blockNumber:n,blockTag:r},o=(0,E.T)(e,k.J,"readContract"),d=await o(t);if("0x"===d[0])return null;const p=(0,a.e)({abi:i.SJ,functionName:"text",data:d[0]});return""===p?null:p}catch(e){if(p)throw e;if(d(e))return null;throw e}}var j=n(45011),D=n(74014),U=n(25899),z=n(98156),$=n(77576),V=n(42169);async function K(e,t){const{account:n=e.account,blockNumber:r,blockTag:i="latest",blobs:a,data:s,gas:o,gasPrice:u,maxFeePerBlobGas:l,maxFeePerGas:f,maxPriorityFeePerGas:d,to:h,value:p,...m}=t,y=n?(0,D.J)(n):void 0;try{(0,V.c)(t);const n=("bigint"==typeof r?(0,c.cK)(r):void 0)||i,b=e.chain?.formatters?.transactionRequest?.format,g=(b||$.Bv)({...(0,z.o)(m,{format:b}),account:y,blobs:a,data:s,gas:o,gasPrice:u,maxFeePerBlobGas:l,maxFeePerGas:f,maxPriorityFeePerGas:d,to:h,value:p},"createAccessList"),v=await e.request({method:"eth_createAccessList",params:[g,n]});return{accessList:v.accessList,gasUsed:BigInt(v.gasUsed)}}catch(n){throw(0,U.d)(n,{...t,account:y,chain:e.chain})}}var Y=n(88196),q=n(96349),H=n(78451);async function G(e,{address:t,args:n,event:r,events:i,fromBlock:a,strict:s,toBlock:o}={}){const u=i??(r?[r]:void 0),l=(0,Y.g)(e,{method:"eth_newFilter"});let f=[];if(u){const e=u.flatMap(e=>(0,H.R)({abi:[e],eventName:e.name,args:n}));f=[e],r&&(f=f[0])}const d=await e.request({method:"eth_newFilter",params:[{address:t,fromBlock:"bigint"==typeof a?(0,c.cK)(a):a,toBlock:"bigint"==typeof o?(0,c.cK)(o):o,...f.length?{topics:f}:{}}]});return{abi:u,args:n,eventName:r?r.name:void 0,fromBlock:a,id:d,request:l(d),strict:Boolean(s),toBlock:o,type:"event"}}async function W(e){const t=(0,Y.g)(e,{method:"eth_newPendingTransactionFilter"}),n=await e.request({method:"eth_newPendingTransactionFilter"});return{id:n,request:t(n),type:"transaction"}}var X=n(85144),J=n(20582),Z=n(93543),Q=n(13961),ee=n(54046),te=n(13940),ne=n(44166),re=n(58038),ie=n(73989);async function ae(e,{address:t,blockNumber:n,blockTag:r="latest"}){const i=void 0!==n?(0,c.cK)(n):void 0,a=await e.request({method:"eth_getCode",params:[t,i||r]},{dedupe:Boolean(i)});if("0x"!==a)return a}var se=n(65306);class oe extends l.C{constructor({address:e}){super(`No EIP-712 domain found on contract "${e}".`,{metaMessages:["Ensure that:",`- The contract is deployed at the address "${e}".`,"- `eip712Domain()` function exists on the contract.","- `eip712Domain()` function matches signature to ERC-5267 specification."],name:"Eip712DomainNotFoundError"})}}const ue=[{inputs:[],name:"eip712Domain",outputs:[{name:"fields",type:"bytes1"},{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"},{name:"salt",type:"bytes32"},{name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"}];var ce=n(66502),le=n(44720),fe=n(63183),de=n(34435),he=n(49514);var pe=n(12129),me=n(64030),ye=n(9481),be=n(31262),ge=n(70121),ve=n(66893),we=n(90580),_e=n(61355),Se=n(77411),Ee=n(11956),ke=n(61144);async function xe(e,t){const{blockNumber:n,blockTag:r=e.experimental_blockTag??"latest",blocks:i,returnFullTransactions:o,traceTransfers:u,validation:l}=t;try{const t=[];for(const e of i){const n=e.blockOverrides?we.J(e.blockOverrides):void 0,r=e.calls.map(e=>{const t=e,n=t.account?(0,D.J)(t.account):void 0,r=t.abi?(0,s.p)(t):t.data,i={...t,account:n,data:t.dataSuffix?(0,p.xW)([r||"0x",t.dataSuffix]):r,from:t.from??n?.address};return(0,V.c)(i),(0,$.Bv)(i)}),i=e.stateOverrides?(0,ke.yH)(e.stateOverrides):void 0;t.push({blockOverrides:n,calls:r,stateOverrides:i})}const d=("bigint"==typeof n?(0,c.cK)(n):void 0)||r;return(await e.request({method:"eth_simulateV1",params:[{blockStateCalls:t,returnFullTransactions:o,traceTransfers:u,validation:l},d]})).map((e,t)=>({...(0,Ee.$)(e),calls:e.calls.map((e,n)=>{const{abi:r,args:s,functionName:o,to:u}=i[t].calls[n],c=e.error?.data??e.returnData,l=BigInt(e.gasUsed),d=e.logs?.map(e=>(0,fe.e)(e)),h="0x1"===e.status?"success":"failure",p=r&&"success"===h&&"0x"!==c?(0,a.e)({abi:r,data:c,functionName:o}):null,m=(()=>{if("success"===h)return;let t;return"0x"===e.error?.data?t=new ge.O:e.error&&(t=new f.$S(e.error)),t?(0,ve.j)(t,{abi:r??[],address:u??"0x",args:s,functionName:o??""}):void 0})();return{data:c,gasUsed:l,logs:d,status:h,..."success"===h?{result:p}:{error:m}}})}))}catch(e){const t=e,n=(0,Se.l)(t,{});if(n instanceof _e.RM)throw t;throw n}}var Te=n(92666),Me=n(72021),Ie=n(22839),Ae=n(18318);var Ne=n(13059),Pe=n(52948),Oe=n(27215),Re=n(21506);function Ce(e,t){if($e(e)>t)throw new We({givenSize:$e(e),maxSize:t})}function Be(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function Fe(e,t={}){const{dir:n="left"}=t;let r=e,i=0;for(let e=0;e0&&t>$e(e)-1)throw new Xe({offset:t,position:"start",size:$e(e)})}(e,t);const a=e.slice(t,n);return i&&function(e,t,n){if("number"==typeof t&&"number"==typeof n&&$e(e)!==n-t)throw new Xe({offset:n,position:"end",size:$e(e)})}(a,t,n),a}function Ke(e,t={}){const{size:n}=t;void 0!==n&&Ce(e,n);const r=Re.uK(e,t);return Re.Dg(r,t)}function Ye(e,t={}){const{size:n}=t;let r=e;if(void 0!==n&&(Ce(r,n),r=He(r)),r.length>1||r[0]>1)throw new Ge(r);return Boolean(r[0])}function qe(e,t={}){const{size:n}=t;void 0!==n&&Ce(e,n);const r=Re.uK(e,t);return Re.Ro(r,t)}function He(e){return Fe(e,{dir:"left"})}class Ge extends Pe.C{constructor(e){super(`Bytes value \`${e}\` is not a valid boolean.`,{metaMessages:["The bytes array must contain a single byte of either a `0` or `1` value."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.InvalidBytesBooleanError"})}}Pe.C;class We extends Pe.C{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeOverflowError"})}}class Xe extends Pe.C{constructor({offset:e,position:t,size:n}){super(`Slice ${"start"===t?"starting":"ending"} at offset \`${e}\` is out-of-bounds (size: \`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SliceOffsetOutOfBoundsError"})}}class Je extends Pe.C{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeExceedsPaddingSizeError"})}}function Ze(e,t={}){const{as:n=("string"==typeof e?"Hex":"Bytes")}=t,r=(0,Oe.lY)(function(e){return e instanceof Uint8Array?e:"string"==typeof e?ze(e):function(e){return e instanceof Uint8Array?e:new Uint8Array(e)}(e)}(e));return"Bytes"===n?r:Re.uK(r)}class Qe extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){const t=super.get(e);return super.has(e)&&void 0!==t&&(this.delete(e),super.set(e,t)),t}set(e,t){if(super.set(e,t),this.maxSize&&this.size>this.maxSize){const e=this.keys().next().value;e&&this.delete(e)}return this}}const et={checksum:new Qe(8192)}.checksum,tt=/^0x[a-fA-F0-9]{40}$/;function nt(e,t={}){const{strict:n=!0}=t;if(!tt.test(e))throw new at({address:e,cause:new st});if(n){if(e.toLowerCase()===e)return;if(rt(e)!==e)throw new at({address:e,cause:new ot})}}function rt(e){if(et.has(e))return et.get(e);nt(e,{strict:!1});const t=e.substring(2).toLowerCase(),n=Ze(function(e,t={}){const{size:n}=t,r=Ue.encode(e);return"number"==typeof n?(Ce(r,n),function(e,t){return function(e,t={}){const{dir:n,size:r=32}=t;if(0===r)return e;if(e.length>r)throw new Je({size:e.length,targetSize:r,type:"Bytes"});const i=new Uint8Array(r);for(let t=0;t>1]>>4>=8&&r[e]&&(r[e]=r[e].toUpperCase()),(15&n[e>>1])>=8&&r[e+1]&&(r[e+1]=r[e+1].toUpperCase());const i=`0x${r.join("")}`;return et.set(e,i),i}function it(e,t={}){const{strict:n=!0}=t??{};try{return nt(e,{strict:n}),!0}catch{return!1}}class at extends Pe.C{constructor({address:e,cause:t}){super(`Address "${e}" is invalid.`,{cause:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}}class st extends Pe.C{constructor(){super("Address is not a 20 byte (40 hexadecimal character) value."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidInputError"})}}class ot extends Pe.C{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}}function ut(e){let t=!0,n="",r=0,i="",a=!1;for(let s=0;sct(Object.values(e)[n],t)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(r)?"number"===n||"bigint"===n:/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(r)?"string"===n||e instanceof Uint8Array:!!/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(r)&&Array.isArray(e)&&e.every(e=>ct(e,{...t,type:r.replace(/(\[[0-9]{0,}\])$/,"")}))}}function lt(e,t,n){for(const r in e){const i=e[r],a=t[r];if("tuple"===i.type&&"tuple"===a.type&&"components"in i&&"components"in a)return lt(i.components,a.components,n[r]);const s=[i.type,a.type];if((()=>!(!s.includes("address")||!s.includes("bytes20"))||(s.includes("address")&&s.includes("string")||!(!s.includes("address")||!s.includes("bytes")))&&it(n[r],{strict:!1}))())return s}}function ft(e,t={}){const{prepare:n=!0}=t,r=Array.isArray(e)||"string"==typeof e?function(e){let t;if("string"==typeof e)t=(0,Ae.uT)(e);else{const n=(0,Ie.e)(e),r=e.length;for(let i=0;ia?"function"===e.type||"error"===e.type?ht(e)===Re.di(t,0,4):"event"===e.type&&pt(e)===t:"name"in e&&e.name===t);if(0===s.length)throw new yt({name:t});if(1===s.length)return{...s[0],...i?{hash:pt(s[0])}:{}};let o;for(const e of s){if(!("inputs"in e))continue;if(!r||0===r.length){if(!e.inputs||0===e.inputs.length)return{...e,...i?{hash:pt(e)}:{}};continue}if(!e.inputs)continue;if(0===e.inputs.length)continue;if(e.inputs.length!==r.length)continue;const t=r.every((t,n)=>{const r="inputs"in e&&e.inputs[n];return!!r&&ct(t,r)});if(t){if(o&&"inputs"in o&&o.inputs){const t=lt(e.inputs,o.inputs,r);if(t)throw new mt({abiItem:e,type:t[0]},{abiItem:o,type:t[1]})}o=e}}const u=(()=>{if(o)return o;const[e,...t]=s;return{...e,overloads:t}})();if(!u)throw new yt({name:t});return{...u,...i?{hash:pt(u)}:{}}}function ht(...e){const t=(()=>{if(Array.isArray(e[0])){const[t,n]=e;return dt(t,n)}return e[0]})();return Re.di(pt(t),0,4)}function pt(...e){const t=(()=>{if(Array.isArray(e[0])){const[t,n]=e;return dt(t,n)}return e[0]})();return"string"!=typeof t&&"hash"in t&&t.hash?t.hash:Ze(Re.sH(function(...e){const t=(()=>{if(Array.isArray(e[0])){const[t,n]=e;return dt(t,n)}return e[0]})();return ut("string"==typeof t?t:Ne.B(t))}(t)))}class mt extends Pe.C{constructor(e,t){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${e.type}\` in \`${ut(Ne.B(e.abiItem))}\`, and`,`\`${t.type}\` in \`${ut(Ne.B(t.abiItem))}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.AmbiguityError"})}}class yt extends Pe.C{constructor({name:e,data:t,type:n="item"}){super(`ABI ${n}${e?` with name "${e}"`:t?` with data "${t}"`:""} not found.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.NotFoundError"})}}Pe.C;var bt=n(17230);var gt=n(32061);const vt=/^(.*)\[([0-9]*)\]$/,wt=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,_t=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,St=2n**256n-1n;function Et(e,t,n){const{checksumAddress:r,staticPosition:i}=n,a=Mt(t.type);if(a){const[n,s]=a;return function(e,t,n){const{checksumAddress:r,length:i,staticPosition:a}=n;if(!i){const n=a+qe(e.readBytes(32)),i=n+32;e.setPosition(n);const s=qe(e.readBytes(32)),o=It(t);let u=0;const c=[];for(let n=0;n!e),s=a?[]:{};let o=0;if(It(t)){const n=i+qe(e.readBytes(kt));for(let i=0;i48?Ke(i,{signed:n}):qe(i,{signed:n}),32]}(e,t);if("string"===t.type)return function(e,{staticPosition:t}){const n=t+qe(e.readBytes(32));e.setPosition(n);const r=qe(e.readBytes(32));if(0===r)return e.setPosition(t+32),["",32];const i=function(e,t={}){const{size:n}=t;let r=e;return void 0!==n&&(Ce(r,n),r=Fe(r,{dir:"right"})),De.decode(r)}(He(e.readBytes(r,32)));return e.setPosition(t+32),[i,32]}(e,{staticPosition:i});throw new $t(t.type)}const kt=32;function xt({checksumAddress:e=!1,parameter:t,value:n}){const r=t,i=Mt(r.type);if(i){const[t,a]=i;return function(e,t){const{checksumAddress:n,length:r,parameter:i}=t,a=null===r;if(!Array.isArray(e))throw new zt(e);if(!a&&e.length!==r)throw new jt({expectedLength:r,givenLength:e.length,type:`${i.type}[${r}]`});let s=!1;const o=[];for(let t=0;t0?Re.xW(t,e):t}}if(s)return{dynamic:!0,encoded:e}}return{dynamic:!1,encoded:Re.xW(...o.map(({encoded:e})=>e))}}(n,{checksumAddress:e,length:t,parameter:{...r,type:a}})}if("tuple"===r.type)return function(e,t){const{checksumAddress:n,parameter:r}=t;let i=!1;const a=[];for(let t=0;te))}}(n,{checksumAddress:e,parameter:r});if("address"===r.type)return function(e,t){const{checksum:n=!1}=t;return nt(e,{strict:n}),{dynamic:!1,encoded:Re.Ho(e.toLowerCase())}}(n,{checksum:e});if("bool"===r.type)return function(e){if("boolean"!=typeof e)throw new Pe.C(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:Re.Ho(Re.xb(e))}}(n);if(r.type.startsWith("uint")||r.type.startsWith("int")){const e=r.type.startsWith("int"),[,,t="256"]=_t.exec(r.type)??[];return function(e,{signed:t,size:n}){if("number"==typeof n){const r=2n**(BigInt(n)-(t?1n:0n))-1n,i=t?-r-1n:0n;if(e>r||e=this.recursiveReadLimit)throw new Ot({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new Pt({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new Nt({offset:e});const t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new Nt({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const n=t??this.position;return this.assertPosition(n+e-1),this.bytes.subarray(n,n+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,255&e),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const n=this.inspectBytes(e);return this.position+=t??e,n},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};class Nt extends Pe.C{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.NegativeOffsetError"})}}class Pt extends Pe.C{constructor({length:e,position:t}){super(`Position \`${t}\` is out of bounds (\`0 < position < ${e}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.PositionOutOfBoundsError"})}}class Ot extends Pe.C{constructor({count:e,limit:t}){super(`Recursive read limit of \`${t}\` exceeded (recursive read count: \`${e}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.RecursiveReadLimitExceededError"})}}function Rt(e,t,n){const{checksumAddress:r=!1}=n??{};if(e.length!==t.length)throw new Ut({expectedLength:e.length,givenLength:t.length});const i=function({checksumAddress:e,parameters:t,values:n}){const r=[];for(let i=0;i"constructor"===e.type);if(!t)throw new yt({name:"constructor"});return t}function Kt(...e){const[t,n=[]]=(()=>{if(Array.isArray(e[0])){const[t,n,r]=e;return[qt(t,n,{args:r}),r]}const[t,n]=e;return[t,n]})(),{overloads:r}=t,i=r?qt([t,...r],t.name,{args:n}):t,a=ht(i),s=n.length>0?Rt(i.inputs,n):void 0;return s?Re.xW(a,s):a}function Yt(e,t={}){return ft(e,t)}function qt(e,t,n){const r=dt(e,t,n);if("function"!==r.type)throw new yt({name:t,type:"function"});return r}var Ht=n(81689);var Gt=n(12769),Wt=n(38149);const Xt="0x6492649264926492649264926492649264926492649264926492649264926492";class Jt extends Pe.C{constructor(e){super(`Value \`${e}\` is an invalid ERC-6492 wrapped signature.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc6492.InvalidWrappedSignatureError"})}}function Zt(e,t={}){const{recovered:n}=t;if(void 0===e.r)throw new nn({signature:e});if(void 0===e.s)throw new nn({signature:e});if(n&&void 0===e.yParity)throw new nn({signature:e});if(e.r<0n||e.r>St)throw new rn({value:e.r});if(e.s<0n||e.s>St)throw new an({value:e.s});if("number"==typeof e.yParity&&0!==e.yParity&&1!==e.yParity)throw new sn({value:e.yParity})}function Qt(e){if(130!==e.length&&132!==e.length)throw new tn({signature:e});const t=BigInt(Re.di(e,0,32)),n=BigInt(Re.di(e,32,64)),r=(()=>{const t=Number(`0x${e.slice(130)}`);if(!Number.isNaN(t))try{return en(t)}catch{throw new sn({value:t})}})();return void 0===r?{r:t,s:n}:{r:t,s:n,yParity:r}}function en(e){if(0===e||27===e)return 0;if(1===e||28===e)return 1;if(e>=35)return e%2==0?1:0;throw new on({value:e})}class tn extends Pe.C{constructor({signature:e}){super(`Value \`${e}\` is an invalid signature size.`,{metaMessages:["Expected: 64 bytes or 65 bytes.",`Received ${Re.Ej(Re.HT(e))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSerializedSizeError"})}}class nn extends Pe.C{constructor({signature:e}){super(`Signature \`${je.A(e)}\` is missing either an \`r\`, \`s\`, or \`yParity\` property.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.MissingPropertiesError"})}}class rn extends Pe.C{constructor({value:e}){super(`Value \`${e}\` is an invalid r value. r must be a positive integer less than 2^256.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidRError"})}}class an extends Pe.C{constructor({value:e}){super(`Value \`${e}\` is an invalid s value. s must be a positive integer less than 2^256.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSError"})}}class sn extends Pe.C{constructor({value:e}){super(`Value \`${e}\` is an invalid y-parity value. Y-parity must be 0 or 1.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidYParityError"})}}class on extends Pe.C{constructor({value:e}){super(`Value \`${e}\` is an invalid v value. v must be 27, 28 or >=35.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidVError"})}}function un(e,t={}){return"string"==typeof e.chainId?function(e){const{address:t,chainId:n,nonce:r}=e,i=function(e){if(void 0!==e.r&&void 0!==e.s)return function(e){const t="string"==typeof e?Qt(e):e instanceof Uint8Array?function(e){return Qt(Re.uK(e))}(e):"string"==typeof e.r?function(e){const t=(()=>{const t=e.v?Number(e.v):void 0;let n=e.yParity?Number(e.yParity):void 0;if("number"==typeof t&&"number"!=typeof n&&(n=en(t)),"number"!=typeof n)throw new sn({value:e.yParity});return n})();return{r:BigInt(e.r),s:BigInt(e.s),yParity:t}}(e):e.v?function(e){return{r:e.r,s:e.s,yParity:en(e.v)}}(e):{r:e.r,s:e.s,...void 0!==e.yParity?{yParity:e.yParity}:{}};return Zt(t),t}(e)}(e);return{address:t,chainId:Number(n),nonce:BigInt(r),...i}}(e):{...e,...t.signature}}const cn=Bt("(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data");function ln(e){if("string"==typeof e){if("0x8010801080108010801080108010801080108010801080108010801080108010"!==Re.di(e,-32))throw new dn(e)}else Zt(e.authorization)}function fn(e){ln(e);const t=Re.Ro(Re.di(e,-64,-32)),n=Re.di(e,-t-64,-64),r=Re.di(e,0,-t-64),[i,a,s]=function(e,t,n={}){const{as:r="Array",checksumAddress:i=!1}=n,a="string"==typeof t?ze(t):t,s=function(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(At);return n.bytes=e,n.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}(a);if(0===$e(a)&&e.length>0)throw new Lt;if($e(a)&&$e(a)<32)throw new Ft({data:"string"==typeof t?t:Re.uK(t),parameters:e,size:$e(a)});let o=0;const u="Array"===r?[]:{};for(let t=0;t{const e=t.signature;return(0,b.q)(e)?e:"object"==typeof e&&"r"in e&&"s"in e?(0,gn.h)(e):(0,c.My)(e)})();try{return function(e){try{return ln(e),!0}catch{return!1}}(l)?await async function(e,t){const{address:n,blockNumber:r,blockTag:a,hash:o,multicallAddress:u}=t,{authorization:l,data:d,signature:h,to:m}=fn(t.signature);if(await ae(e,{address:n,blockNumber:r,blockTag:a})===(0,p.aP)(["0xef0100",l.address]))return await async function(e,t){const{address:n,blockNumber:r,blockTag:a,hash:s,signature:o}=t;if((await(0,E.T)(e,k.J,"readContract")({address:n,abi:i.UW,args:[s,o],blockNumber:r,blockTag:a,functionName:"isValidSignature"}).catch(e=>{if(e instanceof f.bG)throw new wn;throw e})).startsWith("0x1626ba7e"))return!0;throw new wn}(e,{address:n,blockNumber:r,blockTag:a,hash:o,signature:h});const y={address:l.address,chainId:Number(l.chainId),nonce:Number(l.nonce),r:(0,c.cK)(l.r,{size:32}),s:(0,c.cK)(l.s,{size:32}),yParity:l.yParity},b=await async function({address:e,authorization:t,signature:n}){return(0,mn.h)((0,pn.b)(e),await(0,yn.g)({authorization:t,signature:n}))}({address:n,authorization:y});if(!b)throw new wn;const g=await(0,E.T)(e,k.J,"readContract")({...u?{address:u}:{code:be.Ez},authorizationList:[y],abi:i.v2,blockNumber:r,blockTag:"pending",functionName:"aggregate3",args:[[...d?[{allowFailure:!0,target:m??n,callData:d}]:[],{allowFailure:!0,target:n,callData:(0,s.p)({abi:i.UW,functionName:"isValidSignature",args:[o,h]})}]]}),v=g[g.length-1]?.returnData;if(v?.startsWith("0x1626ba7e"))return!0;throw new wn}(e,{...t,multicallAddress:u,signature:l}):await async function(e,t){const{address:n,factory:r,factoryData:a,hash:o,signature:u,verifierAddress:c,...l}=t,d=await(async()=>r||a?function(e){try{return function(e){if(Re.di(e,-32)!==Xt)throw new Jt(e)}(e),!0}catch{return!1}}(u)?u:function(e){const{data:t,signature:n,to:r}=e;return Re.xW(Rt(Bt("address, bytes, bytes"),[r,t,n]),Xt)}({data:a,signature:u,to:r}):u)(),h=c?{to:c,data:(0,s.p)({abi:i.E5,functionName:"isValidSig",args:[n,o,d]}),...l}:{data:(0,hn.m)({abi:i.E5,args:[n,o,d],bytecode:be.fT}),...l},{data:p}=await(0,E.T)(e,j.T,"call")(h).catch(e=>{if(e instanceof f.zX)throw new wn;throw e});if((0,re.Nx)(p??"0x0"))return!0;throw new wn}(e,{...t,verifierAddress:o,signature:l})}catch(e){try{if((0,mn.h)((0,pn.b)(n),await(0,bn.x)({hash:a,signature:l})))return!0}catch{}if(e instanceof wn)return!1;throw e}}class wn extends Error{}var _n=n(47226),Sn=n(18320),En=n(78341),kn=n(77156),xn=n(36093),Tn=n(46644),Mn=n(1060),In=n(73418),An=n(60936),Nn=n(59398);const Pn=/^(?:(?[a-zA-Z][a-zA-Z0-9+-.]*):\/\/)?(?[a-zA-Z0-9+-.]*(?::[0-9]{1,5})?) (?:wants you to sign in with your Ethereum account:\n)(?
0x[a-fA-F0-9]{40})\n\n(?:(?.*)\n\n)?/,On=/(?:URI: (?.+))\n(?:Version: (?.+))\n(?:Chain ID: (?\d+))\n(?:Nonce: (?[a-zA-Z0-9]+))\n(?:Issued At: (?.+))(?:\nExpiration Time: (?.+))?(?:\nNot Before: (?.+))?(?:\nRequest ID: (?.+))?/;var Rn=n(462);var Cn=n(92359),Bn=n(71357),Fn=n(35346);function Ln(e){return{call:t=>(0,j.T)(e,t),createAccessList:t=>K(e,t),createBlockFilter:()=>async function(e){const t=(0,Y.g)(e,{method:"eth_newBlockFilter"}),n=await e.request({method:"eth_newBlockFilter"});return{id:n,request:t(n),type:"block"}}(e),createContractEventFilter:t=>(0,q.X)(e,t),createEventFilter:t=>G(e,t),createPendingTransactionFilter:()=>W(e),estimateContractGas:t=>(0,X.W)(e,t),estimateGas:t=>(0,Z.Q)(e,t),getBalance:t=>async function(e,{address:t,blockNumber:n,blockTag:r=e.experimental_blockTag??"latest"}){const i="bigint"==typeof n?(0,c.cK)(n):void 0,a=await e.request({method:"eth_getBalance",params:[t,i||r]});return BigInt(a)}(e,t),getBlobBaseFee:()=>async function(e){const t=await e.request({method:"eth_blobBaseFee"});return BigInt(t)}(e),getBlock:t=>(0,te.g)(e,t),getBlockNumber:t=>(0,ne.G)(e,t),getBlockTransactionCount:t=>async function(e,{blockHash:t,blockNumber:n,blockTag:r="latest"}={}){const i=void 0!==n?(0,c.cK)(n):void 0;let a;return a=t?await e.request({method:"eth_getBlockTransactionCountByHash",params:[t]},{dedupe:!0}):await e.request({method:"eth_getBlockTransactionCountByNumber",params:[i||r]},{dedupe:Boolean(i)}),(0,re.ME)(a)}(e,t),getBytecode:t=>ae(e,t),getChainId:()=>(0,ie.T)(e),getCode:t=>ae(e,t),getContractEvents:t=>(0,se.u)(e,t),getEip712Domain:t=>async function(e,t){const{address:n,factory:r,factoryData:i}=t;try{const[t,a,s,o,u,c,l]=await(0,E.T)(e,k.J,"readContract")({abi:ue,address:n,functionName:"eip712Domain",factory:r,factoryData:i});return{domain:{name:a,version:s,chainId:Number(o),verifyingContract:u,salt:c},extensions:l,fields:t}}catch(e){const t=e;if("ContractFunctionExecutionError"===t.name&&"ContractFunctionZeroDataError"===t.cause.name)throw new oe({address:n});throw t}}(e,t),getEnsAddress:t=>async function(e,t){const{blockNumber:n,blockTag:r,coinType:l,name:f,gatewayUrls:p,strict:m}=t,{chain:y}=e,b=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!y)throw new Error("client chain not configured. universalResolverAddress is required.");return(0,o.M)({blockNumber:n,chain:y,contract:"ensUniversalResolver"})})(),g=y?.ensTlds;if(g&&!g.some(e=>f.endsWith(e)))return null;const w=null!=l?[v(f),BigInt(l)]:[v(f)];try{const t=(0,s.p)({abi:i.Rm,functionName:"addr",args:w}),o={address:b,abi:i.Ag,functionName:"resolveWithGateways",args:[(0,c.nj)(S(f)),t,p??[h.J]],blockNumber:n,blockTag:r},l=(0,E.T)(e,k.J,"readContract"),d=await l(o);if("0x"===d[0])return null;const m=(0,a.e)({abi:i.Rm,args:w,functionName:"addr",data:d[0]});return"0x"===m||"0x00"===(0,u.B)(m)?null:m}catch(e){if(m)throw e;if(d(e))return null;throw e}}(e,t),getEnsAvatar:t=>async function(e,{blockNumber:t,blockTag:n,assetGatewayUrls:r,name:i,gatewayUrls:a,strict:s,universalResolverAddress:o}){const u=await(0,E.T)(e,L,"getEnsText")({blockNumber:t,blockTag:n,key:"avatar",name:i,universalResolverAddress:o,gatewayUrls:a,strict:s});if(!u)return null;try{return await async function(e,{gatewayUrls:t,record:n}){return/eip155:/i.test(n)?async function(e,{gatewayUrls:t,record:n}){const r=function(e){let t=e;t.startsWith("did:nft:")&&(t=t.replace("did:nft:","").replace(/_/g,"/"));const[n,r,i]=t.split("/"),[a,s]=n.split(":"),[o,u]=r.split(":");if(!a||"eip155"!==a.toLowerCase())throw new T({reason:"Only EIP-155 supported"});if(!s)throw new T({reason:"Chain ID not found"});if(!u)throw new T({reason:"Contract address not found"});if(!i)throw new T({reason:"Token ID not found"});if(!o)throw new T({reason:"ERC namespace not found"});return{chainID:Number.parseInt(s,10),namespace:o.toLowerCase(),contractAddress:u,tokenID:i}}(n),i=await async function(e,{nft:t}){if("erc721"===t.namespace)return(0,k.J)(e,{address:t.contractAddress,abi:[{name:"tokenURI",type:"function",stateMutability:"view",inputs:[{name:"tokenId",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"tokenURI",args:[BigInt(t.tokenID)]});if("erc1155"===t.namespace)return(0,k.J)(e,{address:t.contractAddress,abi:[{name:"uri",type:"function",stateMutability:"view",inputs:[{name:"_id",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"uri",args:[BigInt(t.tokenID)]});throw new I({namespace:t.namespace})}(e,{nft:r}),{uri:a,isOnChain:s,isEncoded:o}=C({uri:i,gatewayUrls:t});if(s&&(a.includes("data:application/json;base64,")||a.startsWith("{"))){const e=o?atob(a.replace("data:application/json;base64,","")):a;return F({uri:B(JSON.parse(e)),gatewayUrls:t})}let u=r.tokenID;return"erc1155"===r.namespace&&(u=u.replace("0x","").padStart(64,"0")),async function({gatewayUrls:e,uri:t}){try{const n=await fetch(t).then(e=>e.json());return await F({gatewayUrls:e,uri:B(n)})}catch{throw new M({uri:t})}}({gatewayUrls:t,uri:a.replace(/(?:0x)?{id}/,u)})}(e,{gatewayUrls:t,record:n}):F({uri:n,gatewayUrls:t})}(e,{record:u,gatewayUrls:r})}catch{return null}}(e,t),getEnsName:t=>async function(e,t){const{address:n,blockNumber:r,blockTag:a,coinType:s=60n,gatewayUrls:u,strict:c}=t,{chain:l}=e,f=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!l)throw new Error("client chain not configured. universalResolverAddress is required.");return(0,o.M)({blockNumber:r,chain:l,contract:"ensUniversalResolver"})})();try{const t={address:f,abi:i.oX,args:[n,s,u??[h.J]],functionName:"reverseWithGateways",blockNumber:r,blockTag:a},o=(0,E.T)(e,k.J,"readContract"),[c]=await o(t);return c||null}catch(e){if(c)throw e;if(d(e))return null;throw e}}(e,t),getEnsResolver:t=>async function(e,t){const{blockNumber:n,blockTag:r,name:i}=t,{chain:a}=e,s=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!a)throw new Error("client chain not configured. universalResolverAddress is required.");return(0,o.M)({blockNumber:n,chain:a,contract:"ensUniversalResolver"})})(),u=a?.ensTlds;if(u&&!u.some(e=>i.endsWith(e)))throw new Error(`${i} is not a valid ENS TLD (${u?.join(", ")}) for chain "${a.name}" (id: ${a.id}).`);const[l]=await(0,E.T)(e,k.J,"readContract")({address:s,abi:[{inputs:[{type:"bytes"}],name:"findResolver",outputs:[{type:"address"},{type:"bytes32"},{type:"uint256"}],stateMutability:"view",type:"function"}],functionName:"findResolver",args:[(0,c.nj)(S(i))],blockNumber:n,blockTag:r});return l}(e,t),getEnsText:t=>L(e,t),getFeeHistory:t=>async function(e,{blockCount:t,blockNumber:n,blockTag:r="latest",rewardPercentiles:i}){const a="bigint"==typeof n?(0,c.cK)(n):void 0;return{baseFeePerGas:(s=await e.request({method:"eth_feeHistory",params:[(0,c.cK)(t),a||r,i]},{dedupe:Boolean(a)})).baseFeePerGas.map(e=>BigInt(e)),gasUsedRatio:s.gasUsedRatio,oldestBlock:BigInt(s.oldestBlock),reward:s.reward?.map(e=>e.map(e=>BigInt(e)))};var s}(e,t),estimateFeesPerGas:t=>(0,J._)(e,t),getFilterChanges:t=>(0,ce.I)(e,t),getFilterLogs:e=>async function(e,{filter:t}){const n=t.strict??!1,r=(await t.request({method:"eth_getFilterLogs",params:[t.id]})).map(e=>(0,fe.e)(e));return t.abi?(0,le.p)({abi:t.abi,logs:r,strict:n}):r}(0,e),getGasPrice:()=>(0,de.L)(e),getLogs:t=>(0,he.a)(e,t),getProof:t=>async function(e,{address:t,blockNumber:n,blockTag:r,storageKeys:i}){const a=r??"latest",s=void 0!==n?(0,c.cK)(n):void 0;return o=await e.request({method:"eth_getProof",params:[t,i,s||a]}),{...o,balance:o.balance?BigInt(o.balance):void 0,nonce:o.nonce?(0,re.ME)(o.nonce):void 0,storageProof:o.storageProof?(u=o.storageProof,u.map(e=>({...e,value:BigInt(e.value)}))):void 0};var o,u}(e,t),estimateMaxPriorityFeePerGas:t=>(0,Q.b)(e,t),fillTransaction:t=>(0,ee.a)(e,t),getStorageAt:t=>async function(e,{address:t,blockNumber:n,blockTag:r="latest",slot:i}){const a=void 0!==n?(0,c.cK)(n):void 0;return await e.request({method:"eth_getStorageAt",params:[t,i,a||r]})}(e,t),getTransaction:t=>(0,pe.x)(e,t),getTransactionConfirmations:t=>async function(e,{hash:t,transactionReceipt:n}){const[r,i]=await Promise.all([(0,E.T)(e,ne.G,"getBlockNumber")({}),t?(0,E.T)(e,pe.x,"getTransaction")({hash:t}):void 0]),a=n?.blockNumber||i?.blockNumber;return a?r-a+1n:0n}(e,t),getTransactionCount:t=>(0,me.y)(e,t),getTransactionReceipt:t=>(0,ye.h)(e,t),multicall:t=>async function(e,t){const{account:n,authorizationList:r,allowFailure:u=!0,blockNumber:c,blockOverrides:d,blockTag:h,stateOverride:p}=t,m=t.contracts,{batchSize:y=t.batchSize??1024,deployless:b=t.deployless??!1}="object"==typeof e.batch?.multicall?e.batch.multicall:{},g=(()=>{if(t.multicallAddress)return t.multicallAddress;if(b)return null;if(e.chain)return(0,o.M)({blockNumber:c,chain:e.chain,contract:"multicall3"});throw new Error("client chain not configured. multicallAddress is required.")})(),v=[[]];let w=0,_=0;for(let e=0;e0&&_>y&&v[w].length>0&&(w++,_=(e.length-2)/2,v[w]=[]),v[w]=[...v[w],{allowFailure:!0,callData:e,target:r}]}catch(e){const s=(0,ve.j)(e,{abi:t,address:r,args:i,docsPath:"/docs/contract/multicall",functionName:a,sender:n});if(!u)throw s;v[w]=[...v[w],{allowFailure:!0,callData:"0x",target:r}]}}const S=await Promise.allSettled(v.map(t=>(0,E.T)(e,k.J,"readContract")({...null===g?{code:be.Ez}:{address:g},abi:i.v2,account:n,args:[t],authorizationList:r,blockNumber:c,blockOverrides:d,blockTag:h,functionName:"aggregate3",stateOverride:p}))),x=[];for(let e=0;e(0,Cn.ft)(e,t),readContract:t=>(0,k.J)(e,t),sendRawTransaction:t=>(0,Bn.L)(e,t),sendRawTransactionSync:t=>(0,Fn.s)(e,t),simulate:t=>xe(e,t),simulateBlocks:t=>xe(e,t),simulateCalls:t=>async function(e,t){const{blockNumber:n,blockTag:r,calls:i,stateOverrides:a,traceAssetChanges:o,traceTransfers:u,validation:c}=t,f=t.account?(0,D.J)(t.account):void 0;if(o&&!f)throw new l.C("`account` is required when `traceAssetChanges` is true");const d=f?function(...e){const[t,n]=(()=>{if(Array.isArray(e[0])){const[t,n]=e;return[Vt(t),n]}return e})(),{bytecode:r,args:i}=n;return Re.xW(r,t.inputs?.length&&i?.length?Rt(t.inputs,i):"0x")}(ft("constructor(bytes, bytes)"),{bytecode:be.LX,args:["0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033",Kt(Yt("function getBalance(address)"),[f.address])]}):void 0,h=o?await Promise.all(t.calls.map(async t=>{if(!t.data&&!t.abi)return;const{accessList:n}=await K(e,{account:f.address,...t,data:t.abi?(0,s.p)(t):t.data});return n.map(({address:e,storageKeys:t})=>t.length>0?e:null)})).then(e=>e.flat().filter(Boolean)):[],p=await xe(e,{blockNumber:n,blockTag:r,blocks:[...o?[{calls:[{data:d}],stateOverrides:a},{calls:h.map((e,t)=>({abi:[Yt("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[f.address],to:e,from:Ht.X,nonce:t})),stateOverrides:[{address:Ht.X,nonce:0}]}]:[],{calls:[...i,{}].map(e=>({...e,from:f?.address})),stateOverrides:a},...o?[{calls:[{data:d}]},{calls:h.map((e,t)=>({abi:[Yt("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[f.address],to:e,from:Ht.X,nonce:t})),stateOverrides:[{address:Ht.X,nonce:0}]},{calls:h.map((e,t)=>({to:e,abi:[Yt("function decimals() returns (uint256)")],functionName:"decimals",from:Ht.X,nonce:t})),stateOverrides:[{address:Ht.X,nonce:0}]},{calls:h.map((e,t)=>({to:e,abi:[Yt("function tokenURI(uint256) returns (string)")],functionName:"tokenURI",args:[0n],from:Ht.X,nonce:t})),stateOverrides:[{address:Ht.X,nonce:0}]},{calls:h.map((e,t)=>({to:e,abi:[Yt("function symbol() returns (string)")],functionName:"symbol",from:Ht.X,nonce:t})),stateOverrides:[{address:Ht.X,nonce:0}]}]:[]],traceTransfers:u,validation:c}),m=o?p[2]:p[0],[y,b,,g,v,w,_,S]=o?p:[],{calls:E,...k}=m,x=E.slice(0,-1)??[],T=[...y?.calls??[],...b?.calls??[]].map(e=>"success"===e.status?(0,re.uU)(e.data):null),M=[...g?.calls??[],...v?.calls??[]].map(e=>"success"===e.status?(0,re.uU)(e.data):null),I=(w?.calls??[]).map(e=>"success"===e.status?e.result:null),A=(S?.calls??[]).map(e=>"success"===e.status?e.result:null),N=(_?.calls??[]).map(e=>"success"===e.status?e.result:null),P=[];for(const[e,t]of M.entries()){const n=T[e];if("bigint"!=typeof t)continue;if("bigint"!=typeof n)continue;const r=I[e-1],i=A[e-1],a=N[e-1],s=(()=>0===e?{address:Ht.m,decimals:18,symbol:"ETH"}:{address:h[e-1],decimals:a||r?Number(r??1):void 0,symbol:i??void 0})();P.some(e=>e.token.address===s.address)||P.push({token:s,value:{pre:n,post:t,diff:t-n}})}return{assetChanges:P,block:k,results:x}}(e,t),simulateContract:t=>(0,Gt.v)(e,t),verifyHash:t=>vn(e,t),verifyMessage:t=>async function(e,{address:t,message:n,factory:r,factoryData:i,signature:a,...s}){const o=(0,_n.A)(n);return(0,E.T)(e,vn,"verifyHash")({address:t,factory:r,factoryData:i,hash:o,signature:a,...s})}(e,t),verifySiweMessage:t=>async function(e,t){const{address:n,domain:r,message:i,nonce:a,scheme:s,signature:o,time:u=new Date,...c}=t,l=function(e){const{scheme:t,statement:n,...r}=e.match(Pn)?.groups??{},{chainId:i,expirationTime:a,issuedAt:s,notBefore:o,requestId:u,...c}=e.match(On)?.groups??{},l=e.split("Resources:")[1]?.split("\n- ").slice(1);return{...r,...c,...i?{chainId:Number(i)}:{},...a?{expirationTime:new Date(a)}:{},...s?{issuedAt:new Date(s)}:{},...o?{notBefore:new Date(o)}:{},...u?{requestId:u}:{},...l?{resources:l}:{},...t?{scheme:t}:{},...n?{statement:n}:{}}}(i);if(!l.address)return!1;if(!function(e){const{address:t,domain:n,message:r,nonce:i,scheme:a,time:s=new Date}=e;if(n&&r.domain!==n)return!1;if(i&&r.nonce!==i)return!1;if(a&&r.scheme!==a)return!1;if(r.expirationTime&&s>=r.expirationTime)return!1;if(r.notBefore&&sasync function(e,t){const{address:n,factory:r,factoryData:i,signature:a,message:s,primaryType:o,types:u,domain:c,...l}=t,f=(0,Sn.Zh)({message:s,primaryType:o,types:u,domain:c});return(0,E.T)(e,vn,"verifyHash")({address:n,factory:r,factoryData:i,hash:f,signature:a,...l})}(e,t),uninstallFilter:t=>(0,Wt.Z)(e,t),waitForTransactionReceipt:t=>(0,En.n)(e,t),watchBlocks:t=>function(e,{blockTag:t=e.experimental_blockTag??"latest",emitMissed:n=!1,emitOnBegin:r=!1,onBlock:i,onError:a,includeTransactions:s,poll:o,pollingInterval:u=e.pollingInterval}){const c=void 0!==o?o:"webSocket"!==e.transport.type&&"ipc"!==e.transport.type&&("fallback"!==e.transport.type||"webSocket"!==e.transport.transports[0].config.type&&"ipc"!==e.transport.transports[0].config.type),l=s??!1;let f;return c?(()=>{const s=(0,Mn.A)(["watchBlocks",e.uid,t,n,r,l,u]);return(0,xn.lB)(s,{onBlock:i,onError:a},i=>(0,Tn.w)(async()=>{try{const r=await(0,E.T)(e,te.g,"getBlock")({blockTag:t,includeTransactions:l});if(null!==r.number&&null!=f?.number){if(r.number===f.number)return;if(r.number-f.number>1&&n)for(let t=f?.number+1n;tf.number)&&(i.onBlock(r,f),f=r)}catch(e){i.onError?.(e)}},{emitOnBegin:r,interval:u}))})():(()=>{let n=!0,s=!0,o=()=>n=!1;return(async()=>{try{r&&(0,E.T)(e,te.g,"getBlock")({blockTag:t,includeTransactions:l}).then(e=>{n&&s&&(i(e,void 0),s=!1)}).catch(a);const u=(()=>{if("fallback"===e.transport.type){const t=e.transport.transports.find(e=>"webSocket"===e.config.type||"ipc"===e.config.type);return t?t.value:e.transport}return e.transport})(),{unsubscribe:c}=await u.subscribe({params:["newHeads"],async onData(t){if(!n)return;const r=await(0,E.T)(e,te.g,"getBlock")({blockNumber:t.result?.number,includeTransactions:l}).catch(()=>{});n&&(i(r,f),s=!1,f=r)},onError(e){a?.(e)}});o=c,n||o()}catch(e){a?.(e)}})(),()=>o()})()}(e,t),watchBlockNumber:t=>(0,kn.q)(e,t),watchContractEvent:t=>(0,In.q)(e,t),watchEvent:t=>function(e,{address:t,args:n,batch:r=!0,event:i,events:a,fromBlock:s,onError:o,onLogs:u,poll:c,pollingInterval:l=e.pollingInterval,strict:f}){const d=void 0!==c?c:"bigint"==typeof s||"webSocket"!==e.transport.type&&"ipc"!==e.transport.type&&("fallback"!==e.transport.type||"webSocket"!==e.transport.transports[0].config.type&&"ipc"!==e.transport.transports[0].config.type),h=f??!1;return d?(()=>{const c=(0,Mn.A)(["watchEvent",t,n,r,e.uid,i,l,s]);return(0,xn.lB)(c,{onLogs:u,onError:o},o=>{let u,c;void 0!==s&&(u=s-1n);let f=!1;const d=(0,Tn.w)(async()=>{if(f)try{let s;if(c)s=await(0,E.T)(e,ce.I,"getFilterChanges")({filter:c});else{const r=await(0,E.T)(e,ne.G,"getBlockNumber")({});s=u&&u!==r?await(0,E.T)(e,he.a,"getLogs")({address:t,args:n,event:i,events:a,fromBlock:u+1n,toBlock:r}):[],u=r}if(0===s.length)return;if(r)o.onLogs(s);else for(const e of s)o.onLogs([e])}catch(e){c&&e instanceof An.Di&&(f=!1),o.onError?.(e)}else{try{c=await(0,E.T)(e,G,"createEventFilter")({address:t,args:n,event:i,events:a,strict:h,fromBlock:s})}catch{}f=!0}},{emitOnBegin:!0,interval:l});return async()=>{c&&await(0,E.T)(e,Wt.Z,"uninstallFilter")({filter:c}),d()}})})():(()=>{let r=!0,s=()=>r=!1;return(async()=>{try{const c=(()=>{if("fallback"===e.transport.type){const t=e.transport.transports.find(e=>"webSocket"===e.config.type||"ipc"===e.config.type);return t?t.value:e.transport}return e.transport})(),l=a??(i?[i]:void 0);let d=[];if(l){const e=l.flatMap(e=>(0,H.R)({abi:[e],eventName:e.name,args:n}));d=[e],i&&(d=d[0])}const{unsubscribe:p}=await c.subscribe({params:["logs",{address:t,topics:d}],onData(e){if(!r)return;const t=e.result;try{const{eventName:e,args:n}=(0,Nn.j)({abi:l??[],data:t.data,topics:t.topics,strict:h}),r=(0,fe.e)(t,{args:n,eventName:e});u([r])}catch(e){let n,r;if(e instanceof ge.fo||e instanceof ge.l3){if(f)return;n=e.abiItem.name,r=e.abiItem.inputs?.some(e=>!("name"in e&&e.name))}const i=(0,fe.e)(t,{args:r?[]:{},eventName:n});u([i])}},onError(e){o?.(e)}});s=p,r||s()}catch(e){o?.(e)}})(),()=>s()})()}(e,t),watchPendingTransactions:t=>function(e,{batch:t=!0,onError:n,onTransactions:r,poll:i,pollingInterval:a=e.pollingInterval}){return(void 0!==i?i:"webSocket"!==e.transport.type&&"ipc"!==e.transport.type)?(()=>{const i=(0,Mn.A)(["watchPendingTransactions",e.uid,t,a]);return(0,xn.lB)(i,{onTransactions:r,onError:n},n=>{let r;const i=(0,Tn.w)(async()=>{try{if(!r)try{return void(r=await(0,E.T)(e,W,"createPendingTransactionFilter")({}))}catch(e){throw i(),e}const a=await(0,E.T)(e,ce.I,"getFilterChanges")({filter:r});if(0===a.length)return;if(t)n.onTransactions(a);else for(const e of a)n.onTransactions([e])}catch(e){n.onError?.(e)}},{emitOnBegin:!0,interval:a});return async()=>{r&&await(0,E.T)(e,Wt.Z,"uninstallFilter")({filter:r}),i()}})})():(()=>{let t=!0,i=()=>t=!1;return(async()=>{try{const{unsubscribe:a}=await e.transport.subscribe({params:["newPendingTransactions"],onData(e){if(!t)return;const n=e.result;r([n])},onError(e){n?.(e)}});i=a,t||i()}catch(e){n?.(e)}})(),()=>i()})()}(e,t)}}function jn(e){const{key:t="public",name:n="Public Client"}=e;return(0,r.U)({...e,key:t,name:n,type:"publicClient"}).extend(Ln)}},56286(e,t,n){var r=n(39197),i=n(33213);function a(e,t){this.name=e,this.body=t,this.decoders={},this.encoders={}}t.define=function(e,t){return new a(e,t)},a.prototype._createNamed=function(e){var t;try{t=n(52346).runInThisContext("(function "+this.name+"(entity) {\n this._initNamed(entity);\n})")}catch(e){t=function(e){this._initNamed(e)}}return i(t,e),t.prototype._initNamed=function(t){e.call(this,t)},new t(this)},a.prototype._getDecoder=function(e){return e=e||"der",this.decoders.hasOwnProperty(e)||(this.decoders[e]=this._createNamed(r.decoders[e])),this.decoders[e]},a.prototype.decode=function(e,t,n){return this._getDecoder(t).decode(e,n)},a.prototype._getEncoder=function(e){return e=e||"der",this.encoders.hasOwnProperty(e)||(this.encoders[e]=this._createNamed(r.encoders[e])),this.encoders[e]},a.prototype.encode=function(e,t,n){return this._getEncoder(t).encode(e,n)}},56312(e,t,n){"use strict";n.d(t,{$m:()=>d,B8:()=>w,DI:()=>v,HN:()=>m,Ie:()=>u,Im:()=>f,L8:()=>o,Ol:()=>h,Sn:()=>s,WP:()=>y,b8:()=>l,d6:()=>p,gP:()=>b,hg:()=>g,sS:()=>c,vu:()=>a});var r=n(59329);const i=255,a=e=>e&i,s=e=>e>>8&i,o=(e,t)=>(e&i)+((t&e&i)<<8),u=o(0,0),c=e=>o(e,e),l=e=>o(e,0),f=e=>0===e,d=(0,r.XY)(2,(e,t)=>0!==(a(e)&t)),h=(0,r.XY)(2,(e,t)=>0!==(s(e)&t)),p=(0,r.XY)(2,(e,t)=>0!==(a(e)&t)&&0===(s(e)&t)),m=(0,r.XY)(2,(e,t)=>o(a(e)&~t,s(e))),y=(0,r.XY)(2,(e,t)=>o(a(e)|a(t),s(e)&s(t))),b=(0,r.XY)(2,(e,t)=>o(a(e)|a(t),s(e)|s(t))),g=(0,r.XY)(2,(e,t)=>e|t),v=e=>o(s(e),w(a(e))),w=e=>~e>>>0&i},56342(e,t,n){"use strict";n.d(t,{Ag:()=>s,E5:()=>f,Rm:()=>c,SJ:()=>u,UW:()=>l,b2:()=>i,oX:()=>o,v2:()=>r});const r=[{inputs:[{components:[{name:"target",type:"address"},{name:"allowFailure",type:"bool"},{name:"callData",type:"bytes"}],name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{name:"success",type:"bool"},{name:"returnData",type:"bytes"}],name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"}],i=[{name:"query",type:"function",stateMutability:"view",inputs:[{type:"tuple[]",name:"queries",components:[{type:"address",name:"sender"},{type:"string[]",name:"urls"},{type:"bytes",name:"data"}]}],outputs:[{type:"bool[]",name:"failures"},{type:"bytes[]",name:"responses"}]},{name:"HttpError",type:"error",inputs:[{type:"uint16",name:"status"},{type:"string",name:"message"}]}],a=[{inputs:[{name:"dns",type:"bytes"}],name:"DNSDecodingFailed",type:"error"},{inputs:[{name:"ens",type:"string"}],name:"DNSEncodingFailed",type:"error"},{inputs:[],name:"EmptyAddress",type:"error"},{inputs:[{name:"status",type:"uint16"},{name:"message",type:"string"}],name:"HttpError",type:"error"},{inputs:[],name:"InvalidBatchGatewayResponse",type:"error"},{inputs:[{name:"errorData",type:"bytes"}],name:"ResolverError",type:"error"},{inputs:[{name:"name",type:"bytes"},{name:"resolver",type:"address"}],name:"ResolverNotContract",type:"error"},{inputs:[{name:"name",type:"bytes"}],name:"ResolverNotFound",type:"error"},{inputs:[{name:"primary",type:"string"},{name:"primaryAddress",type:"bytes"}],name:"ReverseAddressMismatch",type:"error"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"}],name:"UnsupportedResolverProfile",type:"error"}],s=[...a,{name:"resolveWithGateways",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes"},{name:"data",type:"bytes"},{name:"gateways",type:"string[]"}],outputs:[{name:"",type:"bytes"},{name:"address",type:"address"}]}],o=[...a,{name:"reverseWithGateways",type:"function",stateMutability:"view",inputs:[{type:"bytes",name:"reverseName"},{type:"uint256",name:"coinType"},{type:"string[]",name:"gateways"}],outputs:[{type:"string",name:"resolvedName"},{type:"address",name:"resolver"},{type:"address",name:"reverseResolver"}]}],u=[{name:"text",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"key",type:"string"}],outputs:[{name:"",type:"string"}]}],c=[{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"}],outputs:[{name:"",type:"address"}]},{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"coinType",type:"uint256"}],outputs:[{name:"",type:"bytes"}]}],l=[{name:"isValidSignature",type:"function",stateMutability:"view",inputs:[{name:"hash",type:"bytes32"},{name:"signature",type:"bytes"}],outputs:[{name:"",type:"bytes4"}]}],f=[{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],outputs:[{type:"bool"}],stateMutability:"nonpayable",type:"function",name:"isValidSig"}]},56802(e,t,n){"use strict";n.d(t,{FG:()=>y,Gp:()=>v,OC:()=>m,Wc:()=>p,ii:()=>l,j4:()=>w,kb:()=>b,pG:()=>g,sV:()=>_});var r=n(72529),i=n(59329),a=n(46385),s=n(12717),o=n(82884),u=n(20490),c=n(64458);const l=Symbol.for("effect/Either"),f={...u.MS,[l]:{_R:e=>e},[s.FX](){return this.toJSON()},toString(){return(0,s.GP)(this.toJSON())}},d=Object.assign(Object.create(f),{_tag:"Right",_op:"Right",[r.HR](e){return p(e)&&y(e)&&r.aI(this.right,e.right)},[a.HR](){return a.kg(a.tW(this._tag))(a.tW(this.right))},toJSON(){return{_id:"Either",_tag:this._tag,right:(0,s.U2)(this.right)}}}),h=Object.assign(Object.create(f),{_tag:"Left",_op:"Left",[r.HR](e){return p(e)&&m(e)&&r.aI(this.left,e.left)},[a.HR](){return a.kg(a.tW(this._tag))(a.tW(this.left))},toJSON(){return{_id:"Either",_tag:this._tag,left:(0,s.U2)(this.left)}}}),p=e=>(0,o.i5)(e,l),m=e=>"Left"===e._tag,y=e=>"Right"===e._tag,b=e=>{const t=Object.create(h);return t.left=e,t},g=e=>{const t=Object.create(d);return t.right=e,t},v=e=>y(e)?c.dv:c.zN(e.left),w=e=>m(e)?c.dv:c.zN(e.right),_=(0,i.XY)(2,(e,t)=>c.$I(e)?b(t()):g(e.value))},57109(e,t,n){"use strict";n.d(t,{L8:()=>r,XX:()=>a,wR:()=>i});const r=(e,t)=>({label:e,startTime:t}),i=e=>e.replace(/[\s="]/g,"_"),a=e=>t=>`${i(t.label)}=${e-t.startTime}ms`},57202(e,t,n){(t=e.exports=n(59933)).Stream=t,t.Readable=t,t.Writable=n(1917),t.Duplex=n(60991),t.Transform=n(74017),t.PassThrough=n(16483)},57834(e,t,n){"use strict";n.d(t,{EH:()=>a,YE:()=>o,jF:()=>s,qD:()=>u,rj:()=>i});var r=n(2273);class i extends r.C{constructor({blockNumber:e,chain:t,contract:n}){super(`Chain "${t.name}" does not support contract "${n.name}".`,{metaMessages:["This could be due to any of the following:",...e&&n.blockCreated&&n.blockCreated>e?[`- The contract "${n.name}" was not deployed until block ${n.blockCreated} (current block ${e}).`]:[`- The chain does not have the contract "${n.name}" configured.`]],name:"ChainDoesNotSupportContract"})}}class a extends r.C{constructor({chain:e,currentChainId:t}){super(`The current chain of the wallet (id: ${t}) does not match the target chain for the transaction (id: ${e.id} – ${e.name}).`,{metaMessages:[`Current Chain ID: ${t}`,`Expected Chain ID: ${e.id} – ${e.name}`],name:"ChainMismatchError"})}}class s extends r.C{constructor(){super(["No chain was provided to the request.","Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient."].join("\n"),{name:"ChainNotFoundError"})}}class o extends r.C{constructor(){super("No chain was provided to the Client.",{name:"ClientChainNotConfiguredError"})}}class u extends r.C{constructor({chainId:e}){super("number"==typeof e?`Chain ID "${e}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}},58038(e,t,n){"use strict";n.d(t,{ME:()=>c,Nx:()=>u,Sl:()=>s,uU:()=>o});var r=n(20518),i=n(85501),a=n(8736);function s(e,{size:t}){if((0,i.E)(e)>t)throw new r.u({givenSize:(0,i.E)(e),maxSize:t})}function o(e,t={}){const{signed:n}=t;t.size&&s(e,{size:t.size});const r=BigInt(e);if(!n)return r;const i=(e.length-2)/2;return r<=(1n<<8n*BigInt(i)-1n)-1n?r:r-BigInt(`0x${"f".padStart(2*i,"f")}`)-1n}function u(e,t={}){let n=e;if(t.size&&(s(n,{size:t.size}),n=(0,a.B)(n)),"0x00"===(0,a.B)(n))return!1;if("0x01"===(0,a.B)(n))return!0;throw new r.H2(n)}function c(e,t={}){return Number(o(e,t))}},58074(e,t,n){"use strict";n.d(t,{l:()=>i});var r=n(2273);class i extends r.C{constructor({blockHash:e,blockNumber:t}){let n="Block";e&&(n=`Block at hash "${e}"`),t&&(n=`Block at number "${t}"`),super(`${n} could not be found.`,{name:"BlockNotFoundError"})}}},58159(e,t,n){"use strict";var r=n(23145),i=n(92772),a=i.assert,s=i.cachedProperty,o=i.parseBytes;function u(e,t){this.eddsa=e,"object"!=typeof t&&(t=o(t)),Array.isArray(t)&&(a(t.length===2*e.encodingLength,"Signature has invalid size"),t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),a(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof r&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}s(u,"S",function(){return this.eddsa.decodeInt(this.Sencoded())}),s(u,"R",function(){return this.eddsa.decodePoint(this.Rencoded())}),s(u,"Rencoded",function(){return this.eddsa.encodePoint(this.R())}),s(u,"Sencoded",function(){return this.eddsa.encodeInt(this.S())}),u.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},u.prototype.toHex=function(){return i.encode(this.toBytes(),"hex").toUpperCase()},e.exports=u},58359(e,t,n){"use strict";n.d(t,{L:()=>y});var r=n(72634),i=n(2273);class a extends i.C{constructor(){super("No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.",{docsPath:"/docs/clients/intro",name:"UrlRequiredError"})}}var s=n(45898),o=n(1060);function u(){return{current:0,take(){return this.current++},reset(){this.current=0}}}const c=u();var l=n(60936),f=n(75209);const d=new(n(71768).A)(8192);var h=n(50693);function p(e,t={}){return async(n,a={})=>{const{dedupe:s=!1,methods:u,retryDelay:c=150,retryCount:p=3,uid:m}={...t,...a},{method:y}=n;if(u?.exclude?.includes(y))throw new l.ab(new Error("method not supported"),{method:y});if(u?.include&&!u.include.includes(y))throw new l.ab(new Error("method not supported"),{method:y});return function(e,{enabled:t=!0,id:n}){if(!t||!n)return e();if(d.get(n))return d.get(n);const r=e().finally(()=>d.delete(n));return d.set(n,r),r}(()=>(0,h.b)(async()=>{try{return await e(n)}catch(e){const t=e;switch(t.code){case l.XU.code:throw new l.XU(t);case l.CL.code:throw new l.CL(t);case l.Gi.code:throw new l.Gi(t,{method:n.method});case l.D5.code:throw new l.D5(t);case l.bq.code:throw new l.bq(t);case l.Di.code:throw new l.Di(t);case l.hA.code:throw new l.hA(t);case l.qZ.code:throw new l.qZ(t);case l.YW.code:throw new l.YW(t);case l.ab.code:throw new l.ab(t,{method:n.method});case l.s0.code:throw new l.s0(t);case l.xQ.code:throw new l.xQ(t);case l.vx.code:throw new l.vx(t);case l.sV.code:throw new l.sV(t);case l.Sf.code:throw new l.Sf(t);case l.RV.code:throw new l.RV(t);case l.xq.code:throw new l.xq(t);case l.ch.code:throw new l.ch(t);case l.L5.code:throw new l.L5(t);case l.WT.code:throw new l.WT(t);case l.hl.code:throw new l.hl(t);case l.cg.code:throw new l.cg(t);case l.uL.code:throw new l.uL(t);case l.G1.code:throw new l.G1(t);case l.jz.code:throw new l.jz(t);case 5e3:throw new l.vx(t);default:if(e instanceof i.C)throw e;throw new l.MI(t)}}},{delay:({count:e,error:t})=>{if(t&&t instanceof r.Ci){const e=t?.headers?.get("Retry-After");if(e?.match(/\d/))return 1e3*Number.parseInt(e,10)}return(1<function(e){return"code"in e&&"number"==typeof e.code?-1===e.code||e.code===l.s0.code||e.code===l.bq.code:!(e instanceof r.Ci&&e.status)||(403===e.status||408===e.status||413===e.status||429===e.status||500===e.status||502===e.status||503===e.status||504===e.status)}(e)}),{enabled:s,id:s?(0,f.i3)(`${m}.${(0,o.A)(n)}`):void 0})}}var m=n(31763);function y(e,t={}){const{batch:n,fetchFn:i,fetchOptions:u,key:l="http",methods:f,name:d="HTTP JSON-RPC",onFetchRequest:h,onFetchResponse:y,retryDelay:b,raw:g}=t;return({chain:v,retryCount:w,timeout:_})=>{const{batchSize:S=1e3,wait:E=0}="object"==typeof n?n:{},k=t.retryCount??w,x=_??t.timeout??1e4,T=e||v?.rpcUrls.default.http[0];if(!T)throw new a;const M=function(e,t={}){return{async request(n){const{body:i,fetchFn:a=t.fetchFn??fetch,onRequest:s=t.onRequest,onResponse:u=t.onResponse,timeout:l=t.timeout??1e4}=n,f={...t.fetchOptions??{},...n.fetchOptions??{}},{headers:d,method:h,signal:p}=f;try{const t=await function(e,{errorInstance:t=new Error("timed out"),timeout:n,signal:r}){return new Promise((i,a)=>{(async()=>{let s;try{const o=new AbortController;n>0&&(s=setTimeout(()=>{r?o.abort():a(t)},n)),i(await e({signal:o?.signal||null}))}catch(e){"AbortError"===e?.name&&a(t),a(e)}finally{clearTimeout(s)}})()})}(async({signal:t})=>{const n={...f,body:Array.isArray(i)?(0,o.A)(i.map(e=>({jsonrpc:"2.0",id:e.id??c.take(),...e}))):(0,o.A)({jsonrpc:"2.0",id:i.id??c.take(),...i}),headers:{"Content-Type":"application/json",...d},method:h||"POST",signal:p||(l>0?t:null)},r=new Request(e,n),u=await(s?.(r,n))??{...n,url:e};return await a(u.url??e,u)},{errorInstance:new r.MU({body:i,url:e}),timeout:l,signal:!0});let n;if(u&&await u(t),t.headers.get("Content-Type")?.startsWith("application/json"))n=await t.json();else{n=await t.text();try{n=JSON.parse(n||"{}")}catch(e){if(t.ok)throw e;n={error:n}}}if(!t.ok)throw new r.Ci({body:i,details:(0,o.A)(n.error)||t.statusText,headers:t.headers,status:t.status,url:e});return n}catch(t){if(t instanceof r.Ci)throw t;if(t instanceof r.MU)throw t;throw new r.Ci({body:i,cause:t,url:e})}}}}(T,{fetchFn:i,fetchOptions:u,onRequest:h,onResponse:y,timeout:x});return function({key:e,methods:t,name:n,request:r,retryCount:i=3,retryDelay:a=150,timeout:s,type:o},u){return{config:{key:e,methods:t,name:n,request:r,retryCount:i,retryDelay:a,timeout:s,type:o},request:p(r,{methods:t,retryCount:i,retryDelay:a,uid:(0,m.L)()}),value:u}}({key:l,methods:f,name:d,async request({method:e,params:t}){const i={method:e,params:t},{schedule:a}=(0,s.u)({id:T,wait:E,shouldSplitBatch:e=>e.length>S,fn:e=>M.request({body:e}),sort:(e,t)=>e.id-t.id}),[{error:o,result:u}]=await(async e=>n?a(e):[await M.request({body:e})])(i);if(g)return{error:o,result:u};if(o)throw new r.J8({body:i,error:o,url:T});return u},retryCount:k,retryDelay:b,timeout:x,type:"http"},{fetchOptions:u,url:T})}}},58476(e,t,n){var r=n(23145),i=n(72258).Buffer;e.exports=function(e,t){return i.from(e.toRed(r.mont(t.modulus)).redPow(new r(t.publicExponent)).fromRed().toArray())}},58983(e){"use strict";e.exports=Object},59329(e,t,n){"use strict";n.d(t,{D_:()=>a,Fs:()=>f,MN:()=>c,Tn:()=>r,XY:()=>i,Yi:()=>l,dY:()=>s,f4:()=>u,ue:()=>o});const r=e=>"function"==typeof e,i=function(e,t){if("function"==typeof e)return function(){return e(arguments)?t.apply(this,arguments):e=>t(e,...arguments)};switch(e){case 0:case 1:throw new RangeError(`Invalid arity ${e}`);case 2:return function(e,n){return arguments.length>=2?t(e,n):function(n){return t(n,e)}};case 3:return function(e,n,r){return arguments.length>=3?t(e,n,r):function(r){return t(r,e,n)}};case 4:return function(e,n,r,i){return arguments.length>=4?t(e,n,r,i):function(i){return t(i,e,n,r)}};case 5:return function(e,n,r,i,a){return arguments.length>=5?t(e,n,r,i,a):function(a){return t(a,e,n,r,i)}};default:return function(){if(arguments.length>=e)return t.apply(this,arguments);const n=arguments;return function(e){return t(e,...n)}}}},a=e=>e,s=e=>()=>e,o=s(!0),u=s(!1),c=s(void 0),l=c;function f(e,t,n,r,i,a,s,o,u){switch(arguments.length){case 1:return e;case 2:return t(e);case 3:return n(t(e));case 4:return r(n(t(e)));case 5:return i(r(n(t(e))));case 6:return a(i(r(n(t(e)))));case 7:return s(a(i(r(n(t(e))))));case 8:return o(s(a(i(r(n(t(e)))))));case 9:return u(o(s(a(i(r(n(t(e))))))));default:{let e=arguments[0];for(let t=1;tl});var r=n(70121),i=n(41213),a=n(85501),s=n(18056),o=n(348),u=n(75672);const c="/docs/contract/decodeEventLog";function l(e){const{abi:t,data:n,strict:l,topics:d}=e,h=l??!0,[p,...m]=d;if(!p)throw new r._z({docsPath:c});const y=t.find(e=>"event"===e.type&&p===(0,s.h)((0,u.B)(e)));if(!y||!("name"in y)||"event"!==y.type)throw new r.kE(p,{docsPath:c});const{name:b,inputs:g}=y,v=g?.some(e=>!("name"in e&&e.name)),w=v?[]:{},_=g.map((e,t)=>[e,t]).filter(([e])=>"indexed"in e&&e.indexed);for(let e=0;e<_.length;e++){const[t,n]=_[e],i=m[e];if(!i)throw new r.l3({abiItem:y,param:t});w[v?n:t.name||n]=f({param:t,value:i})}const S=g.filter(e=>!("indexed"in e&&e.indexed));if(S.length>0)if(n&&"0x"!==n)try{const e=(0,o.n)(S,n);if(e)if(v)for(let t=0;t0?w:void 0}}function f({param:e,value:t}){return"string"===e.type||"bytes"===e.type||"tuple"===e.type||e.type.match(/^(.*)\[(\d+)?\]$/)?t:((0,o.n)([e],t)||[])[0]}},59688(e,t,n){"use strict";n.d(t,{PX:()=>E,hg:()=>ue,as:()=>ie,gR:()=>ce,RU:()=>Y,F_:()=>M,Co:()=>W,rA:()=>ne,Ie:()=>x,fJ:()=>T,od:()=>H,vE:()=>G,e9:()=>K,pb:()=>pe,I6:()=>he,qI:()=>se,Bq:()=>oe,Ki:()=>X,G:()=>I,FQ:()=>J,ml:()=>q,Aj:()=>P,Jq:()=>z,VY:()=>C,Im:()=>D,uH:()=>O,rv:()=>R,N6:()=>U,Ep:()=>B,fT:()=>$,t9:()=>V,I2:()=>L,yl:()=>F,AW:()=>Z,$7:()=>Q,Q6:()=>ee,Tj:()=>ae,YW:()=>_e,_7:()=>A,j9:()=>ke,us:()=>Me,Yu:()=>Oe,TS:()=>Se,og:()=>Ee,il:()=>N,Ej:()=>j,Hn:()=>Pe,rF:()=>Ae,el:()=>te,Rw:()=>re});var r=n(28062),i=n(17388),a=n(84468),s=n(72529),o=n(59329),u=n(55661),c=n(46385),l=n(75169),f=n(12717),d=n(36708),h=n(66949),p=n(82884),m=n(65668);const y="Die",b="Empty",g="Fail",v="Interrupt",w="Parallel",_="Sequential",S="effect/Cause",E=Symbol.for(S),k={[E]:{_E:e=>e},[c.HR](){return(0,o.Fs)(c.tW(S),c.kg(c.tW(fe(this))),c.PO(this))},[s.HR](e){return P(e)&&le(this,e)},pipe(){return(0,h.tT)(this,arguments)},toJSON(){switch(this._tag){case"Empty":return{_id:"Cause",_tag:this._tag};case"Die":return{_id:"Cause",_tag:this._tag,defect:(0,f.U2)(this.defect)};case"Interrupt":return{_id:"Cause",_tag:this._tag,fiberId:this.fiberId.toJSON()};case"Fail":return{_id:"Cause",_tag:this._tag,failure:(0,f.U2)(this.error)};case"Sequential":case"Parallel":return{_id:"Cause",_tag:this._tag,left:(0,f.U2)(this.left),right:(0,f.U2)(this.right)}}},toString(){return ke(this)},[f.FX](){return this.toJSON()}},x=(()=>{const e=Object.create(k);return e._tag=b,e})(),T=e=>{const t=Object.create(k);return t._tag=g,t.error=e,t},M=e=>{const t=Object.create(k);return t._tag=y,t.defect=e,t},I=e=>{const t=Object.create(k);return t._tag=v,t.fiberId=e,t},A=(e,t)=>{const n=Object.create(k);return n._tag=w,n.left=e,n.right=t,n},N=(e,t)=>{const n=Object.create(k);return n._tag=_,n.left=e,n.right=t,n},P=e=>(0,p.i5)(e,E),O=e=>e._tag===b,R=e=>e._tag===g,C=e=>e._tag===y,B=e=>e._tag===v,F=e=>e._tag===_,L=e=>e._tag===w,j=e=>Ee(e,void 0,ye),D=e=>e._tag===b||Se(e,!0,(e,t)=>{switch(t._tag){case b:return d.zN(e);case y:case g:case v:return d.zN(!1);default:return d.dv()}}),U=e=>d.Ru(H(e)),z=e=>d.Ru(W(e)),$=e=>d.Ru(J(e)),V=e=>Ee(void 0,be)(e),K=e=>i.BE(Se(e,i.Ie(),(e,t)=>t._tag===g?d.zN((0,o.Fs)(e,i.Hs(t.error))):d.dv())),Y=e=>i.BE(Se(e,i.Ie(),(e,t)=>t._tag===y?d.zN((0,o.Fs)(e,i.Hs(t.defect))):d.dv())),q=e=>Se(e,l.Ie(),(e,t)=>t._tag===v?d.zN((0,o.Fs)(e,l.WQ(t.fiberId))):d.dv()),H=e=>he(e,e=>e._tag===g?d.zN(e.error):d.dv()),G=e=>{const t=H(e);switch(t._tag){case"None":return a.pG(e);case"Some":return a.kb(t.value)}},W=e=>he(e,e=>e._tag===y?d.zN(e.defect):d.dv()),X=e=>_e(e,{onEmpty:d.zN(x),onFail:d.Tj(T),onDie:e=>d.zN(M(e)),onInterrupt:e=>d.zN(I(e)),onSequential:d.XQ(N),onParallel:d.XQ(A)}),J=e=>he(e,e=>e._tag===v?d.zN(e.fiberId):d.dv()),Z=e=>_e(e,{onEmpty:d.dv(),onFail:()=>d.dv(),onDie:e=>d.zN(M(e)),onInterrupt:()=>d.dv(),onSequential:d.XQ(N),onParallel:d.XQ(A)}),Q=e=>_e(e,{onEmpty:d.dv(),onFail:e=>d.zN(M(e)),onDie:e=>d.zN(M(e)),onInterrupt:()=>d.dv(),onSequential:d.XQ(N),onParallel:d.XQ(A)}),ee=e=>_e(e,{onEmpty:l.Ie(),onFail:e=>l.L8(T(e)),onDie:e=>l.L8(M(e)),onInterrupt:e=>l.L8(I(e)),onSequential:(e,t)=>l.qI(e,e=>l.Tj(t,t=>N(e,t))),onParallel:(e,t)=>l.qI(e,e=>l.Tj(t,t=>A(e,t)))}),te=e=>_e(e,{onEmpty:x,onFail:()=>x,onDie:M,onInterrupt:I,onSequential:N,onParallel:A}),ne=e=>_e(e,{onEmpty:x,onFail:M,onDie:M,onInterrupt:I,onSequential:N,onParallel:A}),re=(0,o.XY)(2,(e,t)=>_e(e,{onEmpty:d.zN(x),onFail:e=>d.zN(T(e)),onDie:e=>{const n=t(e);return d.Ru(n)?d.dv():d.zN(M(e))},onInterrupt:e=>d.zN(I(e)),onSequential:d.XQ(N),onParallel:d.XQ(A)})),ie=(0,o.XY)(2,(e,t)=>ae(e,()=>t)),ae=(0,o.XY)(2,(e,t)=>se(e,e=>T(t(e)))),se=(0,o.XY)(2,(e,t)=>_e(e,{onEmpty:x,onFail:e=>t(e),onDie:e=>M(e),onInterrupt:e=>I(e),onSequential:(e,t)=>N(e,t),onParallel:(e,t)=>A(e,t)})),oe=e=>se(e,o.D_),ue=(0,o.XY)(2,(e,t)=>(0,p.Tn)(t)?se(e,t):se(e,()=>t)),ce=(0,o.XY)(2,(e,t)=>t._tag===b||e===t||Se(e,!1,(e,n)=>d.zN(e||le(n,t)))),le=(e,t)=>{let n=i.of(e),r=i.of(t);for(;i.J_(n)&&i.J_(r);){const[e,t]=(0,o.Fs)(i.v4(n),Se([l.Ie(),i.Ie()],([e,t],n)=>{const[r,a]=me(n);return d.zN([(0,o.Fs)(e,l.KC(r)),(0,o.Fs)(t,i.u2(a))])})),[a,u]=(0,o.Fs)(i.v4(r),Se([l.Ie(),i.Ie()],([e,t],n)=>{const[r,a]=me(n);return d.zN([(0,o.Fs)(e,l.KC(r)),(0,o.Fs)(t,i.u2(a))])}));if(!s.aI(e,a))return!1;n=t,r=u}return!0},fe=e=>de(i.of(e),i.Ie()),de=(e,t)=>{for(;;){const[n,a]=(0,o.Fs)(e,r.TS([l.Ie(),i.Ie()],([e,t],n)=>{const[r,a]=me(n);return[(0,o.Fs)(e,l.KC(r)),(0,o.Fs)(t,i.u2(a))]})),s=l.Ej(n)>0?(0,o.Fs)(t,i.Hs(n)):t;if(i.Im(a))return i.BE(s);e=a,t=s}throw new Error((0,m.k)("Cause.flattenCauseLoop"))},he=(0,o.XY)(2,(e,t)=>{const n=[e];for(;n.length>0;){const e=n.pop(),r=t(e);switch(r._tag){case"None":switch(e._tag){case _:case w:n.push(e.right),n.push(e.left)}break;case"Some":return r}}return d.dv()}),pe=(0,o.XY)(2,(e,t)=>Ee(e,void 0,ge(t))),me=e=>{let t=e;const n=[];let r=l.Ie(),a=i.Ie();for(;void 0!==t;)switch(t._tag){case b:if(0===n.length)return[r,a];t=n.pop();break;case g:if(r=l.WQ(r,i.L8(t._tag,t.error)),0===n.length)return[r,a];t=n.pop();break;case y:if(r=l.WQ(r,i.L8(t._tag,t.defect)),0===n.length)return[r,a];t=n.pop();break;case v:if(r=l.WQ(r,i.L8(t._tag,t.fiberId)),0===n.length)return[r,a];t=n.pop();break;case _:switch(t.left._tag){case b:t=t.right;break;case _:t=N(t.left.left,N(t.left.right,t.right));break;case w:t=A(N(t.left.left,t.right),N(t.left.right,t.right));break;default:a=i.Hs(a,t.right),t=t.left}break;case w:n.push(t.right),t=t.left}throw new Error((0,m.k)("Cause.evaluateCauseLoop"))},ye={emptyCase:()=>0,failCase:()=>1,dieCase:()=>1,interruptCase:()=>1,sequentialCase:(e,t,n)=>t+n,parallelCase:(e,t,n)=>t+n},be={emptyCase:o.ue,failCase:o.f4,dieCase:o.f4,interruptCase:o.ue,sequentialCase:(e,t,n)=>t&&n,parallelCase:(e,t,n)=>t&&n},ge=e=>({emptyCase:()=>x,failCase:(e,t)=>T(t),dieCase:(e,t)=>M(t),interruptCase:(e,t)=>I(t),sequentialCase:(t,n,r)=>e(n)?e(r)?N(n,r):n:e(r)?r:x,parallelCase:(t,n,r)=>e(n)?e(r)?A(n,r):n:e(r)?r:x}),ve="SequentialCase",we="ParallelCase",_e=(0,o.XY)(2,(e,{onDie:t,onEmpty:n,onFail:r,onInterrupt:i,onParallel:a,onSequential:s})=>Ee(e,void 0,{emptyCase:()=>n,failCase:(e,t)=>r(t),dieCase:(e,n)=>t(n),interruptCase:(e,t)=>i(t),sequentialCase:(e,t,n)=>s(t,n),parallelCase:(e,t,n)=>a(t,n)})),Se=(0,o.XY)(3,(e,t,n)=>{let r=t,i=e;const a=[];for(;void 0!==i;){const e=n(r,i);switch(r=d.Ru(e)?e.value:r,i._tag){case _:case w:a.push(i.right),i=i.left;break;default:i=void 0}void 0===i&&a.length>0&&(i=a.pop())}return r}),Ee=(0,o.XY)(3,(e,t,n)=>{const r=[e],i=[];for(;r.length>0;){const e=r.pop();switch(e._tag){case b:i.push(a.pG(n.emptyCase(t)));break;case g:i.push(a.pG(n.failCase(t,e.error)));break;case y:i.push(a.pG(n.dieCase(t,e.defect)));break;case v:i.push(a.pG(n.interruptCase(t,e.fiberId)));break;case _:r.push(e.right),r.push(e.left),i.push(a.kb({_tag:ve}));break;case w:r.push(e.right),r.push(e.left),i.push(a.kb({_tag:we}))}}const s=[];for(;i.length>0;){const e=i.pop();switch(e._tag){case"Left":switch(e.left._tag){case ve:{const e=s.pop(),r=s.pop(),i=n.sequentialCase(t,e,r);s.push(i);break}case we:{const e=s.pop(),r=s.pop(),i=n.parallelCase(t,e,r);s.push(i);break}}break;case"Right":s.push(e.right)}}if(0===s.length)throw new Error("BUG: Cause.reduceWithContext - please report an issue at https://github.com/Effect-TS/effect/issues");return s.pop()}),ke=(e,t)=>V(e)?"All fibers interrupted without errors.":Oe(e).map(function(e){return!0!==t?.renderErrorCause||void 0===e.cause?e.stack:`${e.stack} {\n${xe(e.cause," ")}\n}`}).join("\n"),xe=(e,t)=>{const n=e.stack.split("\n");let r=`${t}[cause]: ${n[0]}`;for(let e=1,i=n.length;e{t in this||(this[t]=e[t])})),this.stack=Ne(`${this.name}: ${this.message}`,e instanceof Error&&e.stack?e.stack:"",this.span)}}const Me=e=>{if("string"==typeof e)return e;if("object"==typeof e&&null!==e&&e instanceof Error)return e.message;try{if((0,p.i5)(e,"toString")&&(0,p.Tn)(e.toString)&&e.toString!==Object.prototype.toString&&e.toString!==globalThis.Array.prototype.toString)return e.toString()}catch{}return(0,f.hL)(e)},Ie=/\((.*)\)/g,Ae=(0,u.V)("effect/Tracer/spanToTrace",()=>new WeakMap),Ne=(e,t,n)=>{const r=[e],i=t.startsWith(e)?t.slice(e.length).split("\n"):t.split("\n");for(let e=1;e"))}if(n){let e=n,t=0;for(;e&&"Span"===e._tag&&t<10;){const n=Ae.get(e);if("function"==typeof n){const t=n();if("string"==typeof t){const n=t.matchAll(Ie);let i=!1;for(const[,t]of n)i=!0,r.push(` at ${e.name} (${t})`);i||r.push(` at ${e.name} (${t.replace(/^at /,"")})`)}else r.push(` at ${e.name}`)}else r.push(` at ${e.name}`);e=d.Y6(e.parent),t++}}return r.join("\n")},Pe=Symbol.for("effect/SpanAnnotation"),Oe=e=>Ee(e,void 0,{emptyCase:()=>[],dieCase:(e,t)=>[new Te(t)],failCase:(e,t)=>[new Te(t)],interruptCase:()=>[],parallelCase:(e,t,n)=>[...t,...n],sequentialCase:(e,t,n)=>[...t,...n]})},59824(e){"use strict";e.exports=JSON.parse('{"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}')},59933(e,t,n){"use strict";var r=n(42649),i=n(11644);e.exports=v;var a,s=n(17777);v.ReadableState=g,n(3640).EventEmitter;var o=function(e,t){return e.listeners(t).length},u=n(850),c=n(40371).Buffer,l=(void 0!==n.g?n.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){},f=Object.create(n(1833));f.inherits=n(33213);var d=n(91153),h=void 0;h=d&&d.debuglog?d.debuglog("stream"):function(){};var p,m=n(78821),y=n(63345);f.inherits(v,u);var b=["error","close","destroy","pause","resume"];function g(e,t){e=e||{};var r=t instanceof(a=a||n(60991));this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var i=e.highWaterMark,s=e.readableHighWaterMark,o=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:r&&(s||0===s)?s:o,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(p||(p=n(47055).I),this.decoder=new p(e.encoding),this.encoding=e.encoding)}function v(e){if(a=a||n(60991),!(this instanceof v))return new v(e);this._readableState=new g(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),u.call(this)}function w(e,t,n,r,i){var a,s=e._readableState;return null===t?(s.reading=!1,function(e,t){if(!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,k(e)}}(e,s)):(i||(a=function(e,t){var n,r;return r=t,c.isBuffer(r)||r instanceof l||"string"==typeof t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk")),n}(s,t)),a?e.emit("error",a):s.objectMode||t&&t.length>0?("string"==typeof t||s.objectMode||Object.getPrototypeOf(t)===c.prototype||(t=function(e){return c.from(e)}(t)),r?s.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):_(e,s,t,!0):s.ended?e.emit("error",new Error("stream.push() after EOF")):(s.reading=!1,s.decoder&&!n?(t=s.decoder.write(t),s.objectMode||0!==t.length?_(e,s,t,!1):T(e,s)):_(e,s,t,!1))):r||(s.reading=!1)),function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=S?e=S:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function k(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(h("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?i.nextTick(x,e):x(e))}function x(e){h("emit readable"),e.emit("readable"),N(e)}function T(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(M,e,t))}function M(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;return ea.length?a.length:e;if(s===a.length?i+=a:i+=a.slice(0,e),0===(e-=s)){s===a.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=a.slice(s));break}++r}return t.length-=r,i}(e,t):function(e,t){var n=c.allocUnsafe(e),r=t.head,i=1;for(r.data.copy(n),e-=r.data.length;r=r.next;){var a=r.data,s=e>a.length?a.length:e;if(a.copy(n,n.length-e,0,s),0===(e-=s)){s===a.length?(++i,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=a.slice(s));break}++i}return t.length-=i,n}(e,t),r}(e,t.buffer,t.decoder),n);var n}function O(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,i.nextTick(R,t,e))}function R(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function C(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return h("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?O(this):k(this),null;if(0===(e=E(e,t))&&t.ended)return 0===t.length&&O(this),null;var r,i=t.needReadable;return h("need readable",i),(0===t.length||t.length-e0?P(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&O(this)),null!==r&&this.emit("data",r),r},v.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},v.prototype.pipe=function(e,t){var n=this,a=this._readableState;switch(a.pipesCount){case 0:a.pipes=e;break;case 1:a.pipes=[a.pipes,e];break;default:a.pipes.push(e)}a.pipesCount+=1,h("pipe count=%d opts=%j",a.pipesCount,t);var u=t&&!1===t.end||e===r.stdout||e===r.stderr?g:c;function c(){h("onend"),e.end()}a.endEmitted?i.nextTick(u):n.once("end",u),e.on("unpipe",function t(r,i){h("onunpipe"),r===n&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,h("cleanup"),e.removeListener("close",y),e.removeListener("finish",b),e.removeListener("drain",l),e.removeListener("error",m),e.removeListener("unpipe",t),n.removeListener("end",c),n.removeListener("end",g),n.removeListener("data",p),f=!0,!a.awaitDrain||e._writableState&&!e._writableState.needDrain||l())});var l=function(e){return function(){var t=e._readableState;h("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&o(e,"data")&&(t.flowing=!0,N(e))}}(n);e.on("drain",l);var f=!1,d=!1;function p(t){h("ondata"),d=!1,!1!==e.write(t)||d||((1===a.pipesCount&&a.pipes===e||a.pipesCount>1&&-1!==C(a.pipes,e))&&!f&&(h("false write response, pause",a.awaitDrain),a.awaitDrain++,d=!0),n.pause())}function m(t){h("onerror",t),g(),e.removeListener("error",m),0===o(e,"error")&&e.emit("error",t)}function y(){e.removeListener("finish",b),g()}function b(){h("onfinish"),e.removeListener("close",y),g()}function g(){h("unpipe"),n.unpipe(e)}return n.on("data",p),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?s(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",m),e.once("close",y),e.once("finish",b),e.emit("pipe",n),a.flowing||(h("pipe resume"),n.resume()),e},v.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;aQ});var r=n(77701),i=n(54046),a=n(73989),s=n(75209),o=n(51023),u=n(3951),c=n(68616),l=n(65144),f=n(8736),d=n(58038),h=n(76329),p=n(74014),m=n(2273),y=n(60936),b=n(88924),g=n(33640),v=n(23427);const w="0x5792579257925792579257925792579257925792579257925792579257925792",_=(0,s.cK)(0,{size:32});async function S(e,t){const{account:n=e.account,capabilities:r,chain:i=e.chain,experimental_fallback:a,experimental_fallbackDelay:o=32,forceAtomic:c=!1,id:l,version:f="2.0.0"}=t,h=n?(0,p.J)(n):null,S=t.calls.map(e=>{const t=e,n=t.abi?(0,b.p)({abi:t.abi,functionName:t.functionName,args:t.args}):t.data;return{data:t.dataSuffix&&n?(0,g.xW)([n,t.dataSuffix]):n,to:t.to,value:t.value?(0,s.cK)(t.value):void 0}});try{const t=await e.request({method:"wallet_sendCalls",params:[{atomicRequired:c,calls:S,capabilities:r,chainId:(0,s.cK)(i.id),from:h?.address,id:l,version:f}]},{retryCount:0});return"string"==typeof t?{id:t}:t}catch(n){const l=n;if(a&&("MethodNotFoundRpcError"===l.name||"MethodNotSupportedRpcError"===l.name||"UnknownRpcError"===l.name||l.details.toLowerCase().includes("does not exist / is not available")||l.details.toLowerCase().includes("missing or invalid. request()")||l.details.toLowerCase().includes("did not match any variant of untagged enum")||l.details.toLowerCase().includes("account upgraded to unsupported contract")||l.details.toLowerCase().includes("eip-7702 not supported")||l.details.toLowerCase().includes("unsupported wc_ method")||l.details.toLowerCase().includes("feature toggled misconfigured")||l.details.toLowerCase().includes("jsonrpcengine: response has no error or result for request"))){if(r&&Object.values(r).some(e=>!e.optional)){const e="non-optional `capabilities` are not supported on fallback to `eth_sendTransaction`.";throw new y.L5(new m.C(e,{details:e}))}if(c&&S.length>1){const e="`forceAtomic` is not supported on fallback to `eth_sendTransaction`.";throw new y.jz(new m.C(e,{details:e}))}const t=[];for(const n of S){const r=(0,u.v)(e,{account:h,chain:i,data:n.data,to:n.to,value:n.value?(0,d.uU)(n.value):void 0});t.push(r),o>0&&await new Promise(e=>setTimeout(e,o))}const n=await Promise.allSettled(t);if(n.every(e=>"rejected"===e.status))throw n[0].reason;const a=n.map(e=>"fulfilled"===e.status?e.value:_);return{id:(0,g.xW)([...a,(0,s.cK)(i.id,{size:32}),w])}}throw(0,v.p)(n,{...t,account:h,chain:t.chain})}}async function E(e,t){const{atomic:n=!1,chainId:r,receipts:i,version:a="2.0.0",...s}=await async function(t){if(t.endsWith(w.slice(2))){const n=(0,f.B)((0,l.iN)(t,-64,-32)),r=(0,l.iN)(t,0,-64).slice(2).match(/.{1,64}/g),i=await Promise.all(r.map(t=>_.slice(2)!==t?e.request({method:"eth_getTransactionReceipt",params:[`0x${t}`]},{dedupe:!0}):void 0)),a=i.some(e=>null===e)?100:i.every(e=>"0x1"===e?.status)?200:i.every(e=>"0x0"===e?.status)?500:600;return{atomic:!1,chainId:(0,d.ME)(n),receipts:i.filter(Boolean),status:a,version:"2.0.0"}}return e.request({method:"wallet_getCallsStatus",params:[t]})}(t.id),[o,u]=(()=>{const e=s.status;return e>=100&&e<200?["pending",e]:e>=200&&e<300?["success",e]:e>=300&&e<700?["failure",e]:"CONFIRMED"===e?["success",200]:"PENDING"===e?["pending",100]:[void 0,e]})();return{...s,atomic:n,chainId:r?(0,d.ME)(r):void 0,receipts:i?.map(e=>({...e,blockNumber:(0,d.uU)(e.blockNumber),gasUsed:(0,d.uU)(e.gasUsed),status:h.Lj[e.status]}))??[],statusCode:u,status:o,version:a}}var k=n(15100),x=n(97668),T=n(26015),M=n(64030);async function I(e,t){const{account:n=e.account,chainId:r,nonce:i}=t;if(!n)throw new k.T({docsPath:"/docs/eip7702/prepareAuthorization"});const s=(0,p.J)(n),o=(()=>{if(t.executor)return"self"===t.executor?t.executor:(0,p.J)(t.executor)})(),u={address:t.contractAddress??t.address,chainId:r,nonce:i};return void 0===u.chainId&&(u.chainId=e.chain?.id??await(0,T.T)(e,a.T,"getChainId")({})),void 0===u.nonce&&(u.nonce=await(0,T.T)(e,M.y,"getTransactionCount")({address:s.address,blockTag:"pending"}),("self"===o||o?.address&&(0,x.h)(o.address,s.address))&&(u.nonce+=1)),u}var A=n(92359);class N extends m.C{constructor(e){super(`Call bundle failed with status: ${e.statusCode}`,{name:"BundleFailedError"}),Object.defineProperty(this,"result",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.result=e}}var P=n(36093),O=n(46644),R=n(3320),C=n(50693),B=n(1060);async function F(e,t){const{id:n,pollingInterval:r=e.pollingInterval,status:i=({statusCode:e})=>200===e||e>=300,retryCount:a=4,retryDelay:s=({count:e})=>200*(1<{const o=(0,O.w)(async()=>{const r=e=>{clearTimeout(h),o(),e(),p()};try{const o=await(0,C.b)(async()=>{const t=await(0,T.T)(e,E,"getCallsStatus")({id:n});if(u&&"failure"===t.status)throw new N(t);return t},{retryCount:a,delay:s});if(!i(o))return;r(()=>t.resolve(o))}catch(e){r(()=>t.reject(e))}},{interval:r,emitOnBegin:!0});return o});return h=o?setTimeout(()=>{p(),clearTimeout(h),d(new L({id:n}))},o):void 0,await l}class L extends m.C{constructor({id:e}){super(`Timed out while waiting for call bundle with id "${e}" to be confirmed.`,{name:"WaitForCallsStatusTimeoutError"})}}var j=n(71357),D=n(35346),U=n(85327),z=n(65696),$=n(83835),V=n(98156),K=n(77576),Y=n(71768),q=n(42169),H=n(78341);const G=new Y.A(128);async function W(e,t){const{account:n=e.account,chain:r=e.chain,accessList:i,authorizationList:s,blobs:o,data:u,gas:c,gasPrice:l,maxFeePerBlobGas:f,maxFeePerGas:d,maxPriorityFeePerGas:h,nonce:y,pollingInterval:b,throwOnReceiptRevert:g,type:w,value:_,...S}=t,E=t.timeout??Math.max(3*(r?.blockTime??0),5e3);if(void 0===n)throw new k.T({docsPath:"/docs/actions/wallet/sendTransactionSync"});const x=n?(0,p.J)(n):null;try{(0,q.c)(t);const n=await(async()=>t.to?t.to:null!==t.to&&s&&s.length>0?await(0,z.g)({authorization:s[0]}).catch(()=>{throw new m.C("`to` is required. Could not infer from `authorizationList`.")}):void 0)();if("json-rpc"===x?.type||null===x){let t;null!==r&&(t=await(0,T.T)(e,a.T,"getChainId")({}),(0,$.v)({currentChainId:t,chain:r}));const p=e.chain?.formatters?.transactionRequest?.format,m=(p||K.Bv)({...(0,V.o)(S,{format:p}),accessList:i,account:x,authorizationList:s,blobs:o,chainId:t,data:u,gas:c,gasPrice:l,maxFeePerBlobGas:f,maxFeePerGas:d,maxPriorityFeePerGas:h,nonce:y,to:n,type:w,value:_},"sendTransaction"),v=G.get(e.uid),k=v?"wallet_sendTransaction":"eth_sendTransaction",M=await(async()=>{try{return await e.request({method:k,params:[m]},{retryCount:0})}catch(t){if(!1===v)throw t;const n=t;if("InvalidInputRpcError"===n.name||"InvalidParamsRpcError"===n.name||"MethodNotFoundRpcError"===n.name||"MethodNotSupportedRpcError"===n.name)return await e.request({method:"wallet_sendTransaction",params:[m]},{retryCount:0}).then(t=>(G.set(e.uid,!0),t)).catch(t=>{const r=t;if("MethodNotFoundRpcError"===r.name||"MethodNotSupportedRpcError"===r.name)throw G.set(e.uid,!1),n;throw r});throw n}})(),I=await(0,T.T)(e,H.n,"waitForTransactionReceipt")({checkReplacement:!1,hash:M,pollingInterval:b,timeout:E});if(g&&"reverted"===I.status)throw new U.Sq({receipt:I});return I}if("local"===x?.type){const t=await(0,T.T)(e,A.ft,"prepareTransactionRequest")({account:x,accessList:i,authorizationList:s,blobs:o,chain:r,data:u,gas:c,gasPrice:l,maxFeePerBlobGas:f,maxFeePerGas:d,maxPriorityFeePerGas:h,nonce:y,nonceManager:x.nonceManager,parameters:[...A.MM,"sidecars"],type:w,value:_,...S,to:n}),a=r?.serializers?.transaction,p=await x.signTransaction(t,{serializer:a});return await(0,T.T)(e,D.s,"sendRawTransactionSync")({serializedTransaction:p,throwOnReceiptRevert:g})}if("smart"===x?.type)throw new k.Z({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"});throw new k.Z({docsPath:"/docs/actions/wallet/sendTransactionSync",type:x?.type})}catch(e){if(e instanceof k.Z)throw e;throw(0,v.p)(e,{...t,account:x,chain:t.chain||void 0})}}var X=n(83037),J=n(41584);function Z(e){return{addChain:t=>async function(e,{chain:t}){const{id:n,name:r,nativeCurrency:i,rpcUrls:a,blockExplorers:o}=t;await e.request({method:"wallet_addEthereumChain",params:[{chainId:(0,s.cK)(n),chainName:r,nativeCurrency:i,rpcUrls:a.default.http,blockExplorerUrls:o?Object.values(o).map(({url:e})=>e):void 0}]},{dedupe:!0,retryCount:0})}(e,t),deployContract:t=>function(e,t){const{abi:n,args:r,bytecode:i,...a}=t,s=(0,o.m)({abi:n,args:r,bytecode:i});return(0,u.v)(e,{...a,...a.authorizationList?{to:null}:{},data:s})}(e,t),fillTransaction:t=>(0,i.a)(e,t),getAddresses:()=>async function(e){return"local"===e.account?.type?[e.account.address]:(await e.request({method:"eth_accounts"},{dedupe:!0})).map(e=>(0,c.o)(e))}(e),getCallsStatus:t=>E(e,t),getCapabilities:t=>async function(e,t={}){const{account:n=e.account,chainId:r}=t,i=n?(0,p.J)(n):void 0,a=r?[i?.address,[(0,s.cK)(r)]]:[i?.address],o=await e.request({method:"wallet_getCapabilities",params:a}),u={};for(const[e,t]of Object.entries(o)){u[Number(e)]={};for(let[n,r]of Object.entries(t))"addSubAccount"===n&&(n="unstable_addSubAccount"),u[Number(e)][n]=r}return"number"==typeof r?u[r]:u}(e,t),getChainId:()=>(0,a.T)(e),getPermissions:()=>async function(e){return await e.request({method:"wallet_getPermissions"},{dedupe:!0})}(e),prepareAuthorization:t=>I(e,t),prepareTransactionRequest:t=>(0,A.ft)(e,t),requestAddresses:()=>async function(e){return(await e.request({method:"eth_requestAccounts"},{dedupe:!0,retryCount:0})).map(e=>(0,c.b)(e))}(e),requestPermissions:t=>async function(e,t){return e.request({method:"wallet_requestPermissions",params:[t]},{retryCount:0})}(e,t),sendCalls:t=>S(e,t),sendCallsSync:t=>async function(e,t){const{chain:n=e.chain}=t,r=t.timeout??Math.max(3*(n?.blockTime??0),5e3),i=await S(e,t);return await F(e,{...t,id:i.id,timeout:r})}(e,t),sendRawTransaction:t=>(0,j.L)(e,t),sendRawTransactionSync:t=>(0,D.s)(e,t),sendTransaction:t=>(0,u.v)(e,t),sendTransactionSync:t=>W(e,t),showCallsStatus:t=>async function(e,t){const{id:n}=t;await e.request({method:"wallet_showCallsStatus",params:[n]})}(e,t),signAuthorization:t=>async function(e,t){const{account:n=e.account}=t;if(!n)throw new k.T({docsPath:"/docs/eip7702/signAuthorization"});const r=(0,p.J)(n);if(!r.signAuthorization)throw new k.Z({docsPath:"/docs/eip7702/signAuthorization",metaMessages:["The `signAuthorization` Action does not support JSON-RPC Accounts."],type:r.type});const i=await I(e,t);return r.signAuthorization(i)}(e,t),signMessage:t=>async function(e,{account:t=e.account,message:n}){if(!t)throw new k.T({docsPath:"/docs/actions/wallet/signMessage"});const r=(0,p.J)(t);if(r.signMessage)return r.signMessage({message:n});const i="string"==typeof n?(0,s.i3)(n):n.raw instanceof Uint8Array?(0,s.nj)(n.raw):n.raw;return e.request({method:"personal_sign",params:[i,r.address]},{retryCount:0})}(e,t),signTransaction:t=>async function(e,t){const{account:n=e.account,chain:r=e.chain,...i}=t;if(!n)throw new k.T({docsPath:"/docs/actions/wallet/signTransaction"});const o=(0,p.J)(n);(0,q.c)({account:o,...t});const u=await(0,T.T)(e,a.T,"getChainId")({});null!==r&&(0,$.v)({currentChainId:u,chain:r});const c=r?.formatters||e.chain?.formatters,l=c?.transactionRequest?.format||K.Bv;return o.signTransaction?o.signTransaction({...i,chainId:u},{serializer:e.chain?.serializers?.transaction}):await e.request({method:"eth_signTransaction",params:[{...l({...i,account:o},"signTransaction"),chainId:(0,s.cK)(u),from:o.address}]},{retryCount:0})}(e,t),signTypedData:t=>async function(e,t){const{account:n=e.account,domain:r,message:i,primaryType:a}=t;if(!n)throw new k.T({docsPath:"/docs/actions/wallet/signTypedData"});const s=(0,p.J)(n),o={EIP712Domain:(0,X.H4)({domain:r}),...t.types};if((0,X.$$)({domain:r,message:i,primaryType:a,types:o}),s.signTypedData)return s.signTypedData({domain:r,message:i,primaryType:a,types:o});const u=(0,X.v8)({domain:r,message:i,primaryType:a,types:o});return e.request({method:"eth_signTypedData_v4",params:[s.address,u]},{retryCount:0})}(e,t),switchChain:t=>async function(e,{id:t}){await e.request({method:"wallet_switchEthereumChain",params:[{chainId:(0,s.cK)(t)}]},{retryCount:0})}(e,t),waitForCallsStatus:t=>F(e,t),watchAsset:t=>async function(e,t){return await e.request({method:"wallet_watchAsset",params:t},{retryCount:0})}(e,t),writeContract:t=>(0,J.E)(e,t),writeContractSync:t=>async function(e,t){return J.E.internal(e,W,"sendTransactionSync",t)}(e,t)}}function Q(e){const{key:t="wallet",name:n="Wallet Client",transport:i}=e;return(0,r.U)({...e,key:t,name:n,transport:i,type:"walletClient"}).extend(Z)}},60077(e,t,n){"use strict";n.d(t,{Q:()=>a});var r=n(14583),i=n(30766);function a(e,t="wei"){return(0,i.J)(e,r.sz[t])}},60131(e,t,n){"use strict";n.d(t,{M:()=>r});const r=()=>"3.19.14"},60911(e,t,n){"use strict";var r=n(61085).F.ERR_STREAM_PREMATURE_CLOSE;function i(){}e.exports=function e(t,n,a){if("function"==typeof n)return e(t,null,n);n||(n={}),a=function(e){var t=!1;return function(){if(!t){t=!0;for(var n=arguments.length,r=new Array(n),i=0;iu,D5:()=>l,Di:()=>d,G1:()=>N,Gi:()=>c,L5:()=>x,MI:()=>O,RV:()=>S,Sf:()=>_,WT:()=>T,XU:()=>o,YW:()=>m,ab:()=>y,bq:()=>f,cg:()=>I,ch:()=>k,hA:()=>h,hl:()=>M,jz:()=>P,qZ:()=>p,s0:()=>b,sV:()=>w,uL:()=>A,vx:()=>v,xQ:()=>g,xq:()=>E});var r=n(2273),i=n(72634);class a extends r.C{constructor(e,{code:t,docsPath:n,metaMessages:r,name:a,shortMessage:s}){super(s,{cause:e,docsPath:n,metaMessages:r||e?.metaMessages,name:a||"RpcError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=a||e.name,this.code=e instanceof i.J8?e.code:t??-1}}class s extends a{constructor(e,t){super(e,t),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=t.data}}class o extends a{constructor(e){super(e,{code:o.code,name:"ParseRpcError",shortMessage:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text."})}}Object.defineProperty(o,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700});class u extends a{constructor(e){super(e,{code:u.code,name:"InvalidRequestRpcError",shortMessage:"JSON is not a valid request object."})}}Object.defineProperty(u,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600});class c extends a{constructor(e,{method:t}={}){super(e,{code:c.code,name:"MethodNotFoundRpcError",shortMessage:`The method${t?` "${t}"`:""} does not exist / is not available.`})}}Object.defineProperty(c,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601});class l extends a{constructor(e){super(e,{code:l.code,name:"InvalidParamsRpcError",shortMessage:["Invalid parameters were provided to the RPC method.","Double check you have provided the correct parameters."].join("\n")})}}Object.defineProperty(l,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602});class f extends a{constructor(e){super(e,{code:f.code,name:"InternalRpcError",shortMessage:"An internal error was received."})}}Object.defineProperty(f,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603});class d extends a{constructor(e){super(e,{code:d.code,name:"InvalidInputRpcError",shortMessage:["Missing or invalid parameters.","Double check you have provided the correct parameters."].join("\n")})}}Object.defineProperty(d,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});class h extends a{constructor(e){super(e,{code:h.code,name:"ResourceNotFoundRpcError",shortMessage:"Requested resource not found."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ResourceNotFoundRpcError"})}}Object.defineProperty(h,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001});class p extends a{constructor(e){super(e,{code:p.code,name:"ResourceUnavailableRpcError",shortMessage:"Requested resource not available."})}}Object.defineProperty(p,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002});class m extends a{constructor(e){super(e,{code:m.code,name:"TransactionRejectedRpcError",shortMessage:"Transaction creation failed."})}}Object.defineProperty(m,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003});class y extends a{constructor(e,{method:t}={}){super(e,{code:y.code,name:"MethodNotSupportedRpcError",shortMessage:`Method${t?` "${t}"`:""} is not supported.`})}}Object.defineProperty(y,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004});class b extends a{constructor(e){super(e,{code:b.code,name:"LimitExceededRpcError",shortMessage:"Request exceeds defined limit."})}}Object.defineProperty(b,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005});class g extends a{constructor(e){super(e,{code:g.code,name:"JsonRpcVersionUnsupportedError",shortMessage:"Version of JSON-RPC protocol is not supported."})}}Object.defineProperty(g,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006});class v extends s{constructor(e){super(e,{code:v.code,name:"UserRejectedRequestError",shortMessage:"User rejected the request."})}}Object.defineProperty(v,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001});class w extends s{constructor(e){super(e,{code:w.code,name:"UnauthorizedProviderError",shortMessage:"The requested method and/or account has not been authorized by the user."})}}Object.defineProperty(w,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100});class _ extends s{constructor(e,{method:t}={}){super(e,{code:_.code,name:"UnsupportedProviderMethodError",shortMessage:`The Provider does not support the requested method${t?` " ${t}"`:""}.`})}}Object.defineProperty(_,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200});class S extends s{constructor(e){super(e,{code:S.code,name:"ProviderDisconnectedError",shortMessage:"The Provider is disconnected from all chains."})}}Object.defineProperty(S,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900});class E extends s{constructor(e){super(e,{code:E.code,name:"ChainDisconnectedError",shortMessage:"The Provider is not connected to the requested chain."})}}Object.defineProperty(E,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901});class k extends s{constructor(e){super(e,{code:k.code,name:"SwitchChainError",shortMessage:"An error occurred when attempting to switch chain."})}}Object.defineProperty(k,"code",{enumerable:!0,configurable:!0,writable:!0,value:4902});class x extends s{constructor(e){super(e,{code:x.code,name:"UnsupportedNonOptionalCapabilityError",shortMessage:"This Wallet does not support a capability that was not marked as optional."})}}Object.defineProperty(x,"code",{enumerable:!0,configurable:!0,writable:!0,value:5700});class T extends s{constructor(e){super(e,{code:T.code,name:"UnsupportedChainIdError",shortMessage:"This Wallet does not support the requested chain ID."})}}Object.defineProperty(T,"code",{enumerable:!0,configurable:!0,writable:!0,value:5710});class M extends s{constructor(e){super(e,{code:M.code,name:"DuplicateIdError",shortMessage:"There is already a bundle submitted with this ID."})}}Object.defineProperty(M,"code",{enumerable:!0,configurable:!0,writable:!0,value:5720});class I extends s{constructor(e){super(e,{code:I.code,name:"UnknownBundleIdError",shortMessage:"This bundle id is unknown / has not been submitted"})}}Object.defineProperty(I,"code",{enumerable:!0,configurable:!0,writable:!0,value:5730});class A extends s{constructor(e){super(e,{code:A.code,name:"BundleTooLargeError",shortMessage:"The call bundle is too large for the Wallet to process."})}}Object.defineProperty(A,"code",{enumerable:!0,configurable:!0,writable:!0,value:5740});class N extends s{constructor(e){super(e,{code:N.code,name:"AtomicReadyWalletRejectedUpgradeError",shortMessage:"The Wallet can support atomicity after an upgrade, but the user rejected the upgrade."})}}Object.defineProperty(N,"code",{enumerable:!0,configurable:!0,writable:!0,value:5750});class P extends s{constructor(e){super(e,{code:P.code,name:"AtomicityNotSupportedError",shortMessage:"The wallet does not support atomic execution but the request requires it."})}}Object.defineProperty(P,"code",{enumerable:!0,configurable:!0,writable:!0,value:5760});class O extends a{constructor(e){super(e,{name:"UnknownRpcError",shortMessage:"An unknown RPC error occurred."})}}},60991(e,t,n){"use strict";var r=n(11644),i=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=f;var a=Object.create(n(1833));a.inherits=n(33213);var s=n(59933),o=n(1917);a.inherits(f,s);for(var u=i(o.prototype),c=0;c0)if("string"==typeof t||o.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r)o.endEmitted?S(e,new _):M(e,o,t,!0);else if(o.ended)S(e,new v);else{if(o.destroyed)return!1;o.reading=!1,o.decoder&&!n?(t=o.decoder.write(t),o.objectMode||0!==t.length?M(e,o,t,!1):O(e,o)):M(e,o,t,!1)}else r||(o.reading=!1,O(e,o));return!o.ended&&(o.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=I?e=I:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function N(e){var t=e._readableState;a("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(a("emitReadable",t.flowing),t.emittedReadable=!0,i.nextTick(P,e))}function P(e){var t=e._readableState;a("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,L(e)}function O(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(R,e,t))}function R(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function B(e){a("readable nexttick read 0"),e.read(0)}function F(e,t){a("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),L(e),t.flowing&&!t.reading&&e.read(0)}function L(e){var t=e._readableState;for(a("flow",t.flowing);t.flowing&&null!==e.read(););}function j(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n);var n}function D(e){var t=e._readableState;a("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,i.nextTick(U,t,e))}function U(e,t){if(a("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var n=t._writableState;(!n||n.autoDestroy&&n.finished)&&t.destroy()}}function z(e,t){for(var n=0,r=e.length;n=t.highWaterMark:t.length>0)||t.ended))return a("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?D(this):N(this),null;if(0===(e=A(e,t))&&t.ended)return 0===t.length&&D(this),null;var r,i=t.needReadable;return a("need readable",i),(0===t.length||t.length-e0?j(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&D(this)),null!==r&&this.emit("data",r),r},x.prototype._read=function(e){S(this,new w("_read()"))},x.prototype.pipe=function(e,t){var n=this,r=this._readableState;switch(r.pipesCount){case 0:r.pipes=e;break;case 1:r.pipes=[r.pipes,e];break;default:r.pipes.push(e)}r.pipesCount+=1,a("pipe count=%d opts=%j",r.pipesCount,t);var o=t&&!1===t.end||e===i.stdout||e===i.stderr?m:u;function u(){a("onend"),e.end()}r.endEmitted?i.nextTick(o):n.once("end",o),e.on("unpipe",function t(i,s){a("onunpipe"),i===n&&s&&!1===s.hasUnpiped&&(s.hasUnpiped=!0,a("cleanup"),e.removeListener("close",h),e.removeListener("finish",p),e.removeListener("drain",c),e.removeListener("error",d),e.removeListener("unpipe",t),n.removeListener("end",u),n.removeListener("end",m),n.removeListener("data",f),l=!0,!r.awaitDrain||e._writableState&&!e._writableState.needDrain||c())});var c=function(e){return function(){var t=e._readableState;a("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,L(e))}}(n);e.on("drain",c);var l=!1;function f(t){a("ondata");var i=e.write(t);a("dest.write",i),!1===i&&((1===r.pipesCount&&r.pipes===e||r.pipesCount>1&&-1!==z(r.pipes,e))&&!l&&(a("false write response, pause",r.awaitDrain),r.awaitDrain++),n.pause())}function d(t){a("onerror",t),m(),e.removeListener("error",d),0===s(e,"error")&&S(e,t)}function h(){e.removeListener("finish",p),m()}function p(){a("onfinish"),e.removeListener("close",h),m()}function m(){a("unpipe"),n.unpipe(e)}return n.on("data",f),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",d),e.once("close",h),e.once("finish",p),e.emit("pipe",n),r.flowing||(a("pipe resume"),n.resume()),e},x.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a0,!1!==r.flowing&&this.resume()):"readable"===e&&(r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.flowing=!1,r.emittedReadable=!1,a("on readable",r.length,r.reading),r.length?N(this):r.reading||i.nextTick(B,this))),n},x.prototype.addListener=x.prototype.on,x.prototype.removeListener=function(e,t){var n=o.prototype.removeListener.call(this,e,t);return"readable"===e&&i.nextTick(C,this),n},x.prototype.removeAllListeners=function(e){var t=o.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||i.nextTick(C,this),t},x.prototype.resume=function(){var e=this._readableState;return e.flowing||(a("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,i.nextTick(F,e,t))}(this,e)),e.paused=!1,this},x.prototype.pause=function(){return a("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(a("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},x.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var i in e.on("end",function(){if(a("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)}),e.on("data",function(i){a("wrapped data"),n.decoder&&(i=n.decoder.write(i)),n.objectMode&&null==i||(n.objectMode||i&&i.length)&&(t.push(i)||(r=!0,e.pause()))}),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var s=0;s2?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}n("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError),n("ERR_INVALID_ARG_TYPE",function(e,t,n){var i,a,s,o,u;if("string"==typeof t&&(a="not ",t.substr(0,4)===a)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-9,n)===t}(e," argument"))s="The ".concat(e," ").concat(i," ").concat(r(t,"type"));else{var c=("number"!=typeof u&&(u=0),u+1>(o=e).length||-1===o.indexOf(".",u)?"argument":"property");s='The "'.concat(e,'" ').concat(c," ").concat(i," ").concat(r(t,"type"))}return s+". Received type ".concat(typeof n)},TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"}),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"}),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.F=t},61144(e,t,n){"use strict";n.d(t,{yH:()=>l});var r=n(83815),i=n(93775),a=n(94622),s=n(462),o=n(75209);function u(e){if(e&&0!==e.length)return e.reduce((e,{slot:t,value:n})=>{if(66!==t.length)throw new i.NV({size:t.length,targetSize:66,type:"hex"});if(66!==n.length)throw new i.NV({size:n.length,targetSize:66,type:"hex"});return e[t]=n,e},{})}function c(e){const{balance:t,nonce:n,state:r,stateDiff:i,code:s}=e,c={};if(void 0!==s&&(c.code=s),void 0!==t&&(c.balance=(0,o.cK)(t)),void 0!==n&&(c.nonce=(0,o.cK)(n)),void 0!==r&&(c.state=u(r)),void 0!==i){if(c.state)throw new a.ft;c.stateDiff=u(i)}return c}function l(e){if(!e)return;const t={};for(const{address:n,...i}of e){if(!(0,s.P)(n,{strict:!1}))throw new r.M({address:n});if(t[n])throw new a.Hi({address:n});t[n]=c(i)}return t}},61150(e,t,n){var r=n(72258).Buffer,i=n(71822);function a(e,t,n){var a=t.length,s=i(t,e._cache);return e._cache=e._cache.slice(a),e._prev=r.concat([e._prev,n?t:s]),s}t.encrypt=function(e,t,n){for(var i,s=r.allocUnsafe(0);t.length;){if(0===e._cache.length&&(e._cache=e._cipher.encryptBlock(e._prev),e._prev=r.allocUnsafe(0)),!(e._cache.length<=t.length)){s=r.concat([s,a(e,t,n)]);break}i=e._cache.length,s=r.concat([s,a(e,t.slice(0,i),n)]),t=t.slice(i)}return s}},61213(e,t,n){"use strict";var r,i=n(61085).F,a=i.ERR_MISSING_ARGS,s=i.ERR_STREAM_DESTROYED;function o(e){if(e)throw e}function u(e){e()}function c(e,t){return e.pipe(t)}e.exports=function(){for(var e=arguments.length,t=new Array(e),i=0;i0,function(e){l||(l=e),e&&d.forEach(u),a||(d.forEach(u),f(l))})});return t.reduce(c)}},61346(e,t,n){"use strict";n.d(t,{Jt:()=>f,L8:()=>c,Tc:()=>l,hZ:()=>d});var r=n(72529),i=n(59329),a=n(12717),s=n(66949);const o=Symbol.for("effect/MutableRef"),u={[o]:o,toString(){return(0,a.GP)(this.toJSON())},toJSON(){return{_id:"MutableRef",current:(0,a.U2)(this.current)}},[a.FX](){return this.toJSON()},pipe(){return(0,s.tT)(this,arguments)}},c=e=>{const t=Object.create(u);return t.current=e,t},l=i.XY(3,(e,t,n)=>!!r.aI(t,e.current)&&(e.current=n,!0)),f=e=>e.current,d=i.XY(2,(e,t)=>(e.current=t,e))},61355(e,t,n){"use strict";n.d(t,{A7:()=>a,BG:()=>s,Fo:()=>h,K0:()=>u,Oh:()=>c,RM:()=>y,jj:()=>o,k5:()=>f,lN:()=>m,lY:()=>d,uC:()=>p,vW:()=>l});var r=n(60077),i=n(2273);class a extends i.C{constructor({cause:e,message:t}={}){const n=t?.replace("execution reverted: ","")?.replace("execution reverted","");super(`Execution reverted ${n?`with reason: ${n}`:"for an unknown reason"}.`,{cause:e,name:"ExecutionRevertedError"})}}Object.defineProperty(a,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(a,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted|gas required exceeds allowance/});class s extends i.C{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${(0,r.Q)(t)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:e,name:"FeeCapTooHighError"})}}Object.defineProperty(s,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});class o extends i.C{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${(0,r.Q)(t)}`:""} gwei) cannot be lower than the block base fee.`,{cause:e,name:"FeeCapTooLowError"})}}Object.defineProperty(o,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/});class u extends i.C{constructor({cause:e,nonce:t}={}){super(`Nonce provided for the transaction ${t?`(${t}) `:""}is higher than the next one expected.`,{cause:e,name:"NonceTooHighError"})}}Object.defineProperty(u,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});class c extends i.C{constructor({cause:e,nonce:t}={}){super([`Nonce provided for the transaction ${t?`(${t}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join("\n"),{cause:e,name:"NonceTooLowError"})}}Object.defineProperty(c,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});class l extends i.C{constructor({cause:e,nonce:t}={}){super(`Nonce provided for the transaction ${t?`(${t}) `:""}exceeds the maximum allowed nonce.`,{cause:e,name:"NonceMaxValueError"})}}Object.defineProperty(l,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});class f extends i.C{constructor({cause:e}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join("\n"),{cause:e,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:"InsufficientFundsError"})}}Object.defineProperty(f,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});class d extends i.C{constructor({cause:e,gas:t}={}){super(`The amount of gas ${t?`(${t}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:e,name:"IntrinsicGasTooHighError"})}}Object.defineProperty(d,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});class h extends i.C{constructor({cause:e,gas:t}={}){super(`The amount of gas ${t?`(${t}) `:""}provided for the transaction is too low.`,{cause:e,name:"IntrinsicGasTooLowError"})}}Object.defineProperty(h,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});class p extends i.C{constructor({cause:e}){super("The transaction type is not supported for this chain.",{cause:e,name:"TransactionTypeNotSupportedError"})}}Object.defineProperty(p,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});class m extends i.C{constructor({cause:e,maxPriorityFeePerGas:t,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${t?` = ${(0,r.Q)(t)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${(0,r.Q)(n)} gwei`:""}).`].join("\n"),{cause:e,name:"TipAboveFeeCapError"})}}Object.defineProperty(m,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class y extends i.C{constructor({cause:e}){super(`An error occurred while executing: ${e?.shortMessage}`,{cause:e,name:"UnknownNodeError"})}}},61894(e){"use strict";e.exports=JSON.parse('{"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}}')},62460(e,t,n){"use strict";var r=n(91552);e.exports=Function.prototype.bind||r},62489(e,t,n){"use strict";var r=n(33213),i=n(3808),a=n(96811),s=n(72258).Buffer,o=new Array(64);function u(){this.init(),this._w=o,a.call(this,64,56)}r(u,i),u.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},u.prototype._hash=function(){var e=s.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=u},63068(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=[1,3,6,10,15,21,28,36,45,55,2,14,27,41,56,8,25,43,62,18,39,61,20,44]},63129(e,t,n){"use strict";n.d(t,{$D:()=>c,Al:()=>b,Cn:()=>h,Lj:()=>u,MM:()=>y,N5:()=>l,R2:()=>f,y:()=>d});var r=n(59329),i=n(89921),a=n(28876),s=n(4909);const o=i.whK,u=i.xah,c=i.DxM,l=i.PuW,f=i.VEq,d=i.OM4,h=i._$,p=i.zg6,m=(i.HTn,(0,r.Fs)(a.pH,s.zQ(e=>e.ordinal))),y=s.MM(m),b=e=>{switch(e){case"All":return o;case"Debug":return d;case"Error":return c;case"Fatal":return u;case"Info":return f;case"Trace":return h;case"None":return p;case"Warning":return l}}},63152(e,t,n){const r=new(0,n(24554).ec)("secp256k1"),i=r.curve,a=i.n.constructor;function s(e){const t=e[0];switch(t){case 2:case 3:return 33!==e.length?null:function(e,t){let n=new a(t);if(n.cmp(i.p)>=0)return null;n=n.toRed(i.red);let s=n.redSqr().redIMul(n).redIAdd(i.b).redSqrt();3===e!==s.isOdd()&&(s=s.redNeg());const o=n.redSqr().redIMul(n);return s.redSqr().redISub(o.redIAdd(i.b)).isZero()?r.keyPair({pub:{x:n,y:s}}):null}(t,e.subarray(1,33));case 4:case 6:case 7:return 65!==e.length?null:function(e,t,n){let s=new a(t),o=new a(n);if(s.cmp(i.p)>=0||o.cmp(i.p)>=0)return null;if(s=s.toRed(i.red),o=o.toRed(i.red),(6===e||7===e)&&o.isOdd()!==(7===e))return null;const u=s.redSqr().redIMul(s);return o.redSqr().redISub(u.redIAdd(i.b)).isZero()?r.keyPair({pub:{x:s,y:o}}):null}(t,e.subarray(1,33),e.subarray(33,65));default:return null}}function o(e,t){const n=t.encode(null,33===e.length);for(let t=0;t0,privateKeyVerify(e){const t=new a(e);return t.cmp(i.n)<0&&!t.isZero()?0:1},privateKeyNegate(e){const t=new a(e),n=i.n.sub(t).umod(i.n).toArrayLike(Uint8Array,"be",32);return e.set(n),0},privateKeyTweakAdd(e,t){const n=new a(t);if(n.cmp(i.n)>=0)return 1;if(n.iadd(new a(e)),n.cmp(i.n)>=0&&n.isub(i.n),n.isZero())return 1;const r=n.toArrayLike(Uint8Array,"be",32);return e.set(r),0},privateKeyTweakMul(e,t){let n=new a(t);if(n.cmp(i.n)>=0||n.isZero())return 1;n.imul(new a(e)),n.cmp(i.n)>=0&&(n=n.umod(i.n));const r=n.toArrayLike(Uint8Array,"be",32);return e.set(r),0},publicKeyVerify:e=>null===s(e)?1:0,publicKeyCreate(e,t){const n=new a(t);return n.cmp(i.n)>=0||n.isZero()?1:(o(e,r.keyFromPrivate(t).getPublic()),0)},publicKeyConvert(e,t){const n=s(t);return null===n?1:(o(e,n.getPublic()),0)},publicKeyNegate(e,t){const n=s(t);if(null===n)return 1;const r=n.getPublic();return r.y=r.y.redNeg(),o(e,r),0},publicKeyCombine(e,t){const n=new Array(t.length);for(let e=0;e=0)return 2;const u=r.getPublic().add(i.g.mul(n));return u.isInfinity()?2:(o(e,u),0)},publicKeyTweakMul(e,t,n){const r=s(t);return null===r?1:(n=new a(n)).cmp(i.n)>=0||n.isZero()?2:(o(e,r.getPublic().mul(n)),0)},signatureNormalize(e){const t=new a(e.subarray(0,32)),n=new a(e.subarray(32,64));return t.cmp(i.n)>=0||n.cmp(i.n)>=0?1:(1===n.cmp(r.nh)&&e.set(i.n.sub(n).toArrayLike(Uint8Array,"be",32),32),0)},signatureExport(e,t){const n=t.subarray(0,32),r=t.subarray(32,64);if(new a(n).cmp(i.n)>=0)return 1;if(new a(r).cmp(i.n)>=0)return 1;const{output:s}=e;let o=s.subarray(4,37);o[0]=0,o.set(n,1);let u=33,c=0;for(;u>1&&0===o[c]&&!(128&o[c+1]);--u,++c);if(o=o.subarray(c),128&o[0])return 1;if(u>1&&0===o[0]&&!(128&o[1]))return 1;let l=s.subarray(39,72);l[0]=0,l.set(r,1);let f=33,d=0;for(;f>1&&0===l[d]&&!(128&l[d+1]);--f,++d);return l=l.subarray(d),128&l[0]||f>1&&0===l[0]&&!(128&l[1])?1:(e.outputlen=6+u+f,s[0]=48,s[1]=e.outputlen-2,s[2]=2,s[3]=o.length,s.set(o,4),s[4+u]=2,s[5+u]=l.length,s.set(l,6+u),0)},signatureImport(e,t){if(t.length<8)return 1;if(t.length>72)return 1;if(48!==t[0])return 1;if(t[1]!==t.length-2)return 1;if(2!==t[2])return 1;const n=t[3];if(0===n)return 1;if(5+n>=t.length)return 1;if(2!==t[4+n])return 1;const r=t[5+n];if(0===r)return 1;if(6+n+r!==t.length)return 1;if(128&t[4])return 1;if(n>1&&0===t[4]&&!(128&t[5]))return 1;if(128&t[n+6])return 1;if(r>1&&0===t[n+6]&&!(128&t[n+7]))return 1;let s=t.subarray(4,4+n);if(33===s.length&&0===s[0]&&(s=s.subarray(1)),s.length>32)return 1;let o=t.subarray(6+n);if(33===o.length&&0===o[0]&&(o=o.slice(1)),o.length>32)throw new Error("S length is too long");let u=new a(s);u.cmp(i.n)>=0&&(u=new a(0));let c=new a(t.subarray(6+n));return c.cmp(i.n)>=0&&(c=new a(0)),e.set(u.toArrayLike(Uint8Array,"be",32),0),e.set(c.toArrayLike(Uint8Array,"be",32),32),0},ecdsaSign(e,t,n,s,o){if(o){const e=o;o=r=>{const i=e(t,n,null,s,r);if(!(i instanceof Uint8Array&&32===i.length))throw new Error("This is the way");return new a(i)}}const u=new a(n);if(u.cmp(i.n)>=0||u.isZero())return 1;let c;try{c=r.sign(t,n,{canonical:!0,k:o,pers:s})}catch(e){return 1}return e.signature.set(c.r.toArrayLike(Uint8Array,"be",32),0),e.signature.set(c.s.toArrayLike(Uint8Array,"be",32),32),e.recid=c.recoveryParam,0},ecdsaVerify(e,t,n){const o={r:e.subarray(0,32),s:e.subarray(32,64)},u=new a(o.r),c=new a(o.s);if(u.cmp(i.n)>=0||c.cmp(i.n)>=0)return 1;if(1===c.cmp(r.nh)||u.isZero()||c.isZero())return 3;const l=s(n);if(null===l)return 2;const f=l.getPublic();return r.verify(t,o,f)?0:3},ecdsaRecover(e,t,n,s){const u={r:t.slice(0,32),s:t.slice(32,64)},c=new a(u.r),l=new a(u.s);if(c.cmp(i.n)>=0||l.cmp(i.n)>=0)return 1;if(c.isZero()||l.isZero())return 2;let f;try{f=r.recoverPubKey(s,u,n)}catch(e){return 2}return o(e,f),0},ecdh(e,t,n,o,u,c,l){const f=s(t);if(null===f)return 1;const d=new a(n);if(d.cmp(i.n)>=0||d.isZero())return 2;const h=f.getPublic().mul(d);if(void 0===u){const t=h.encode(null,!0),n=r.hash().update(t).digest();for(let t=0;t<32;++t)e[t]=n[t]}else{c||(c=new Uint8Array(32));const t=h.getX().toArray("be",32);for(let e=0;e<32;++e)c[e]=t[e];l||(l=new Uint8Array(32));const n=h.getY().toArray("be",32);for(let e=0;e<32;++e)l[e]=n[e];const r=u(c,l,o);if(!(r instanceof Uint8Array&&r.length===e.length))return 2;e.set(r)}return 0}}},63183(e,t,n){"use strict";function r(e,{args:t,eventName:n}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,blockTimestamp:e.blockTimestamp?BigInt(e.blockTimestamp):null===e.blockTimestamp?null:void 0,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...n?{args:t,eventName:n}:{}}}n.d(t,{e:()=>r})},63287(e,t,n){"use strict";n.d(t,{M:()=>a});var r=n(68616),i=n(35593);function a(e){const t=(0,i.S)(`0x${e.substring(4)}`).substring(26);return(0,r.o)(`0x${t}`)}},63345(e,t,n){"use strict";var r=n(11644);function i(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,a=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return a||s?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,r.nextTick(i,this,e)):r.nextTick(i,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!t&&e?n._writableState?n._writableState.errorEmitted||(n._writableState.errorEmitted=!0,r.nextTick(i,n,e)):r.nextTick(i,n,e):t&&t(e)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},64030(e,t,n){"use strict";n.d(t,{y:()=>a});var r=n(58038),i=n(75209);async function a(e,{address:t,blockTag:n="latest",blockNumber:a}){const s=await e.request({method:"eth_getTransactionCount",params:[t,"bigint"==typeof a?(0,i.cK)(a):n]},{dedupe:Boolean(a)});return(0,r.ME)(s)}},64116(e){"use strict";e.exports=Number.isNaN||function(e){return e!=e}},64355(e,t,n){"use strict";n.d(t,{Z:()=>i});var r=n(9100);function i(e,t,n){return r.sv(e)(t,n)}},64458(e,t,n){"use strict";n.d(t,{$I:()=>p,Ru:()=>m,dv:()=>y,oL:()=>h,zN:()=>b});var r=n(72529),i=n(46385),a=n(12717),s=n(82884),o=n(20490);const u=Symbol.for("effect/Option"),c={...o.MS,[u]:{_A:e=>e},[a.FX](){return this.toJSON()},toString(){return(0,a.GP)(this.toJSON())}},l=Object.assign(Object.create(c),{_tag:"Some",_op:"Some",[r.HR](e){return h(e)&&m(e)&&r.aI(this.value,e.value)},[i.HR](){return i.PO(this,i.kg(i.tW(this._tag))(i.tW(this.value)))},toJSON(){return{_id:"Option",_tag:this._tag,value:(0,a.U2)(this.value)}}}),f=i.tW("None"),d=Object.assign(Object.create(c),{_tag:"None",_op:"None",[r.HR]:e=>h(e)&&p(e),[i.HR]:()=>f,toJSON(){return{_id:"Option",_tag:this._tag}}}),h=e=>(0,s.i5)(e,u),p=e=>"None"===e._tag,m=e=>"Some"===e._tag,y=Object.create(d),b=e=>{const t=Object.create(l);return t.value=e,t}},64464(e){"use strict";e.exports=JSON.parse('{"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}}')},64781(e,t,n){"use strict";var r,i=n(85889),a=n(73906);try{r=[].__proto__===Array.prototype}catch(e){if(!e||"object"!=typeof e||!("code"in e)||"ERR_PROTO_ACCESS"!==e.code)throw e}var s=!!r&&a&&a(Object.prototype,"__proto__"),o=Object,u=o.getPrototypeOf;e.exports=s&&"function"==typeof s.get?i([s.get]):"function"==typeof u&&function(e){return u(null==e?e:o(e))}},64802(e,t,n){"use strict";var r=n(62460),i=n(68633),a=n(6255);e.exports=function(){return a(r,i,arguments)}},64950(e){"use strict";e.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},65144(e,t,n){"use strict";n.d(t,{A1:()=>c,di:()=>s,iN:()=>l});var r=n(93775),i=n(84015),a=n(85501);function s(e,t,n,{strict:r}={}){return(0,i.q)(e,{strict:!1})?l(e,t,n,{strict:r}):c(e,t,n,{strict:r})}function o(e,t){if("number"==typeof t&&t>0&&t>(0,a.E)(e)-1)throw new r.ii({offset:t,position:"start",size:(0,a.E)(e)})}function u(e,t,n){if("number"==typeof t&&"number"==typeof n&&(0,a.E)(e)!==n-t)throw new r.ii({offset:n,position:"end",size:(0,a.E)(e)})}function c(e,t,n,{strict:r}={}){o(e,t);const i=e.slice(t,n);return r&&u(i,t,n),i}function l(e,t,n,{strict:r}={}){o(e,t);const i=`0x${e.replace("0x","").slice(2*(t??0),2*(n??e.length))}`;return r&&u(i,t,n),i}},65243(e){"use strict";e.exports=Math.max},65269(e,t,n){"use strict";var r=n(33213),i=n(96811),a=n(72258).Buffer,s=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],o=new Array(160);function u(){this.init(),this._w=o,i.call(this,128,112)}function c(e,t,n){return n^e&(t^n)}function l(e,t,n){return e&t|n&(e|t)}function f(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function d(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function h(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function p(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function m(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function y(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function b(e,t){return e>>>0>>0?1:0}r(u,i),u.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},u.prototype._update=function(e){for(var t=this._w,n=0|this._ah,r=0|this._bh,i=0|this._ch,a=0|this._dh,o=0|this._eh,u=0|this._fh,g=0|this._gh,v=0|this._hh,w=0|this._al,_=0|this._bl,S=0|this._cl,E=0|this._dl,k=0|this._el,x=0|this._fl,T=0|this._gl,M=0|this._hl,I=0;I<32;I+=2)t[I]=e.readInt32BE(4*I),t[I+1]=e.readInt32BE(4*I+4);for(;I<160;I+=2){var A=t[I-30],N=t[I-30+1],P=h(A,N),O=p(N,A),R=m(A=t[I-4],N=t[I-4+1]),C=y(N,A),B=t[I-14],F=t[I-14+1],L=t[I-32],j=t[I-32+1],D=O+F|0,U=P+B+b(D,O)|0;U=(U=U+R+b(D=D+C|0,C)|0)+L+b(D=D+j|0,j)|0,t[I]=U,t[I+1]=D}for(var z=0;z<160;z+=2){U=t[z],D=t[z+1];var $=l(n,r,i),V=l(w,_,S),K=f(n,w),Y=f(w,n),q=d(o,k),H=d(k,o),G=s[z],W=s[z+1],X=c(o,u,g),J=c(k,x,T),Z=M+H|0,Q=v+q+b(Z,M)|0;Q=(Q=(Q=Q+X+b(Z=Z+J|0,J)|0)+G+b(Z=Z+W|0,W)|0)+U+b(Z=Z+D|0,D)|0;var ee=Y+V|0,te=K+$+b(ee,Y)|0;v=g,M=T,g=u,T=x,u=o,x=k,o=a+Q+b(k=E+Z|0,E)|0,a=i,E=S,i=r,S=_,r=n,_=w,n=Q+te+b(w=Z+ee|0,Z)|0}this._al=this._al+w|0,this._bl=this._bl+_|0,this._cl=this._cl+S|0,this._dl=this._dl+E|0,this._el=this._el+k|0,this._fl=this._fl+x|0,this._gl=this._gl+T|0,this._hl=this._hl+M|0,this._ah=this._ah+n+b(this._al,w)|0,this._bh=this._bh+r+b(this._bl,_)|0,this._ch=this._ch+i+b(this._cl,S)|0,this._dh=this._dh+a+b(this._dl,E)|0,this._eh=this._eh+o+b(this._el,k)|0,this._fh=this._fh+u+b(this._fl,x)|0,this._gh=this._gh+g+b(this._gl,T)|0,this._hh=this._hh+v+b(this._hl,M)|0},u.prototype._hash=function(){var e=a.allocUnsafe(64);function t(t,n,r){e.writeInt32BE(t,r),e.writeInt32BE(n,r+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=u},65306(e,t,n){"use strict";n.d(t,{u:()=>s});var r=n(75879),i=n(26015),a=n(49514);async function s(e,t){const{abi:n,address:s,args:o,blockHash:u,eventName:c,fromBlock:l,toBlock:f,strict:d}=t,h=c?(0,r.iY)({abi:n,name:c}):void 0,p=h?void 0:n.filter(e=>"event"===e.type);return(0,i.T)(e,a.a,"getLogs")({address:s,args:o,blockHash:u,event:h,events:p,fromBlock:l,toBlock:f,strict:d})}},65587(e){"use strict";e.exports=Math.pow},65632(e,t){t.read=function(e,t,n,r,i){var a,s,o=8*i-r-1,u=(1<>1,l=-7,f=n?i-1:0,d=n?-1:1,h=e[t+f];for(f+=d,a=h&(1<<-l)-1,h>>=-l,l+=o;l>0;a=256*a+e[t+f],f+=d,l-=8);for(s=a&(1<<-l)-1,a>>=-l,l+=r;l>0;s=256*s+e[t+f],f+=d,l-=8);if(0===a)a=1-c;else{if(a===u)return s?NaN:1/0*(h?-1:1);s+=Math.pow(2,r),a-=c}return(h?-1:1)*s*Math.pow(2,a-r)},t.write=function(e,t,n,r,i,a){var s,o,u,c=8*a-i-1,l=(1<>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:a-1,p=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=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?(o=0,s=l):s+f>=1?(o=(t*u-1)*Math.pow(2,i),s+=f):(o=t*Math.pow(2,f-1)*Math.pow(2,i),s=0));i>=8;e[n+h]=255&o,h+=p,o/=256,i-=8);for(s=s<0;e[n+h]=255&s,h+=p,s/=256,c-=8);e[n+h-p]|=128*m}},65668(e,t,n){"use strict";n.d(t,{k:()=>r});const r=e=>`BUG: ${e} - please report an issue at https://github.com/Effect-TS/effect/issues`},65696(e,t,n){"use strict";n.d(t,{g:()=>a});var r=n(68418),i=n(4290);async function a(e){const{authorization:t,signature:n}=e;return(0,r.x)({hash:(0,i.C)(t),signature:n??t})}},66502(e,t,n){"use strict";n.d(t,{I:()=>a});var r=n(44720),i=n(63183);async function a(e,{filter:t}){const n="strict"in t&&t.strict,a=await t.request({method:"eth_getFilterChanges",params:[t.id]});if("string"==typeof a[0])return a;const s=a.map(e=>(0,i.e)(e));return"abi"in t&&t.abi?(0,r.p)({abi:t.abi,logs:s,strict:n}):s}},66573(e,t,n){"use strict";var r,i=n(42649);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t){var n=e.entry;for(e.entry=null;n;){var r=n.callback;t.pendingcb--,r(undefined),n=n.next}t.corkedRequestsFree.next=e}(t,e)}}e.exports=x,x.WritableState=k;var s,o={deprecate:n(12082)},u=n(50338),c=n(73730).Buffer,l=(void 0!==n.g?n.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){},f=n(75073),d=n(36442).getHighWaterMark,h=n(61085).F,p=h.ERR_INVALID_ARG_TYPE,m=h.ERR_METHOD_NOT_IMPLEMENTED,y=h.ERR_MULTIPLE_CALLBACK,b=h.ERR_STREAM_CANNOT_PIPE,g=h.ERR_STREAM_DESTROYED,v=h.ERR_STREAM_NULL_VALUES,w=h.ERR_STREAM_WRITE_AFTER_END,_=h.ERR_UNKNOWN_ENCODING,S=f.errorOrDestroy;function E(){}function k(e,t,s){r=r||n(92783),e=e||{},"boolean"!=typeof s&&(s=t instanceof r),this.objectMode=!!e.objectMode,s&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=d(this,e,"writableHighWaterMark",s),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=!1===e.decodeStrings;this.decodeStrings=!o,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,a=n.writecb;if("function"!=typeof a)throw new y;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,a){--t.pendingcb,n?(i.nextTick(a,r),i.nextTick(P,e,t),e._writableState.errorEmitted=!0,S(e,r)):(a(r),e._writableState.errorEmitted=!0,S(e,r),P(e,t))}(e,n,r,t,a);else{var s=A(n)||e.destroyed;s||n.corked||n.bufferProcessing||!n.bufferedRequest||I(e,n),r?i.nextTick(M,e,n,s,a):M(e,n,s,a)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function x(e){var t=this instanceof(r=r||n(92783));if(!t&&!s.call(x,this))return new x(e);this._writableState=new k(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),u.call(this)}function T(e,t,n,r,i,a,s){t.writelen=r,t.writecb=s,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new g("write")):n?e._writev(i,t.onwrite):e._write(i,a,t.onwrite),t.sync=!1}function M(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),P(e,t)}function I(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,i=new Array(r),s=t.corkedRequestsFree;s.entry=n;for(var o=0,u=!0;n;)i[o]=n,n.isBuf||(u=!1),n=n.next,o+=1;i.allBuffers=u,T(e,t,!0,t.length,i,"",s.finish),t.pendingcb++,t.lastBufferedRequest=null,s.next?(t.corkedRequestsFree=s.next,s.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var c=n.chunk,l=n.encoding,f=n.callback;if(T(e,t,!1,t.objectMode?1:c.length,c,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function A(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function N(e,t){e._final(function(n){t.pendingcb--,n&&S(e,n),t.prefinished=!0,e.emit("prefinish"),P(e,t)})}function P(e,t){var n=A(t);if(n&&(function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,i.nextTick(N,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){var r=e._readableState;(!r||r.autoDestroy&&r.endEmitted)&&e.destroy()}return n}n(33213)(x,u),k.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(k.prototype,"buffer",{get:o.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(s=Function.prototype[Symbol.hasInstance],Object.defineProperty(x,Symbol.hasInstance,{value:function(e){return!!s.call(this,e)||this===x&&e&&e._writableState instanceof k}})):s=function(e){return e instanceof this},x.prototype.pipe=function(){S(this,new b)},x.prototype.write=function(e,t,n){var r,a=this._writableState,s=!1,o=!a.objectMode&&(r=e,c.isBuffer(r)||r instanceof l);return o&&!c.isBuffer(e)&&(e=function(e){return c.from(e)}(e)),"function"==typeof t&&(n=t,t=null),o?t="buffer":t||(t=a.defaultEncoding),"function"!=typeof n&&(n=E),a.ending?function(e,t){var n=new w;S(e,n),i.nextTick(t,n)}(this,n):(o||function(e,t,n,r){var a;return null===n?a=new v:"string"==typeof n||t.objectMode||(a=new p("chunk",["string","Buffer"],n)),!a||(S(e,a),i.nextTick(r,a),!1)}(this,a,e,n))&&(a.pendingcb++,s=function(e,t,n,r,i,a){if(!n){var s=function(e,t,n){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=c.from(t,n)),t}(t,r,i);r!==s&&(n=!0,i="buffer",r=s)}var o=t.objectMode?1:r.length;t.length+=o;var u=t.length-1))throw new _(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(x.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(x.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),x.prototype._write=function(e,t,n){n(new m("_write()"))},x.prototype._writev=null,x.prototype.end=function(e,t,n){var r=this._writableState;return"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||function(e,t,n){t.ending=!0,P(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n)),t.ended=!0,e.writable=!1}(this,r,n),this},Object.defineProperty(x.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(x.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),x.prototype.destroy=f.destroy,x.prototype._undestroy=f.undestroy,x.prototype._destroy=function(e,t){t(e)}},66812(e,t,n){"use strict";var r=n(48431);function i(e){var t="https://react.dev/errors/"+e;if(1c});var r=n(70121),i=n(2273),a=n(91042),s=n(72634),o=n(60936);const u=3;function c(e,{abi:t,address:n,args:c,docsPath:l,functionName:f,sender:d}){const h=e instanceof a.$S?e:e instanceof i.C?e.walk(e=>"data"in e)||e.walk():{},{code:p,data:m,details:y,message:b,shortMessage:g}=h,v=e instanceof r.O?new a.rR({functionName:f}):[u,o.bq.code].includes(p)&&(m||y||b||g)||p===o.Di.code&&"execution reverted"===y&&m?new a.M({abi:t,data:"object"==typeof m?m.data:m,functionName:f,message:h instanceof s.J8?y:g??b}):e;return new a.bG(v,{abi:t,args:c,contractAddress:n,docsPath:l,functionName:f,sender:d})}},66949(e,t,n){"use strict";n.d(t,{tT:()=>r});const r=(e,t)=>{switch(t.length){case 0:return e;case 1:return t[0](e);case 2:return t[1](t[0](e));case 3:return t[2](t[1](t[0](e)));case 4:return t[3](t[2](t[1](t[0](e))));case 5:return t[4](t[3](t[2](t[1](t[0](e)))));case 6:return t[5](t[4](t[3](t[2](t[1](t[0](e))))));case 7:return t[6](t[5](t[4](t[3](t[2](t[1](t[0](e)))))));case 8:return t[7](t[6](t[5](t[4](t[3](t[2](t[1](t[0](e))))))));case 9:return t[8](t[7](t[6](t[5](t[4](t[3](t[2](t[1](t[0](e)))))))));default:{let n=e;for(let e=0,r=t.length;enew Uint8Array(e),t){return"function"==typeof e&&(e=e(t)),u("output",e,t),e}function f(e){return Object.prototype.toString.call(e).slice(8,-1)}e.exports=e=>({contextRandomize(t){if(o(null===t||t instanceof Uint8Array,"Expected seed to be an Uint8Array or null"),null!==t&&u("seed",t,32),1===e.contextRandomize(t))throw new Error("Unknow error on context randomization")},privateKeyVerify:t=>(u("private key",t,32),0===e.privateKeyVerify(t)),privateKeyNegate(n){switch(u("private key",n,32),e.privateKeyNegate(n)){case 0:return n;case 1:throw new Error(t)}},privateKeyTweakAdd(t,r){switch(u("private key",t,32),u("tweak",r,32),e.privateKeyTweakAdd(t,r)){case 0:return t;case 1:throw new Error(n)}},privateKeyTweakMul(t,n){switch(u("private key",t,32),u("tweak",n,32),e.privateKeyTweakMul(t,n)){case 0:return t;case 1:throw new Error(r)}},publicKeyVerify:t=>(u("public key",t,[33,65]),0===e.publicKeyVerify(t)),publicKeyCreate(t,n=!0,r){switch(u("private key",t,32),c(n),r=l(r,n?33:65),e.publicKeyCreate(r,t)){case 0:return r;case 1:throw new Error("Private Key is invalid");case 2:throw new Error(a)}},publicKeyConvert(t,n=!0,r){switch(u("public key",t,[33,65]),c(n),r=l(r,n?33:65),e.publicKeyConvert(r,t)){case 0:return r;case 1:throw new Error(i);case 2:throw new Error(a)}},publicKeyNegate(n,r=!0,s){switch(u("public key",n,[33,65]),c(r),s=l(s,r?33:65),e.publicKeyNegate(s,n)){case 0:return s;case 1:throw new Error(i);case 2:throw new Error(t);case 3:throw new Error(a)}},publicKeyCombine(t,n=!0,r){o(Array.isArray(t),"Expected public keys to be an Array"),o(t.length>0,"Expected public keys array will have more than zero items");for(const e of t)u("public key",e,[33,65]);switch(c(n),r=l(r,n?33:65),e.publicKeyCombine(r,t)){case 0:return r;case 1:throw new Error(i);case 2:throw new Error("The sum of the public keys is not valid");case 3:throw new Error(a)}},publicKeyTweakAdd(t,r,a=!0,s){switch(u("public key",t,[33,65]),u("tweak",r,32),c(a),s=l(s,a?33:65),e.publicKeyTweakAdd(s,t,r)){case 0:return s;case 1:throw new Error(i);case 2:throw new Error(n)}},publicKeyTweakMul(t,n,a=!0,s){switch(u("public key",t,[33,65]),u("tweak",n,32),c(a),s=l(s,a?33:65),e.publicKeyTweakMul(s,t,n)){case 0:return s;case 1:throw new Error(i);case 2:throw new Error(r)}},signatureNormalize(t){switch(u("signature",t,64),e.signatureNormalize(t)){case 0:return t;case 1:throw new Error(s)}},signatureExport(n,r){u("signature",n,64);const i={output:r=l(r,72),outputlen:72};switch(e.signatureExport(i,n)){case 0:return r.slice(0,i.outputlen);case 1:throw new Error(s);case 2:throw new Error(t)}},signatureImport(n,r){switch(u("signature",n),r=l(r,64),e.signatureImport(r,n)){case 0:return r;case 1:throw new Error(s);case 2:throw new Error(t)}},ecdsaSign(n,r,i={},a){u("message",n,32),u("private key",r,32),o("Object"===f(i),"Expected options to be an Object"),void 0!==i.data&&u("options.data",i.data),void 0!==i.noncefn&&o("Function"===f(i.noncefn),"Expected options.noncefn to be a Function");const s={signature:a=l(a,64),recid:null};switch(e.ecdsaSign(s,n,r,i.data,i.noncefn)){case 0:return s;case 1:throw new Error("The nonce generation function failed, or the private key was invalid");case 2:throw new Error(t)}},ecdsaVerify(t,n,r){switch(u("signature",t,64),u("message",n,32),u("public key",r,[33,65]),e.ecdsaVerify(t,n,r)){case 0:return!0;case 3:return!1;case 1:throw new Error(s);case 2:throw new Error(i)}},ecdsaRecover(n,r,i,a=!0,d){switch(u("signature",n,64),o("Number"===f(r)&&r>=0&&r<=3,"Expected recovery id to be a Number within interval [0, 3]"),u("message",i,32),c(a),d=l(d,a?33:65),e.ecdsaRecover(d,n,r,i)){case 0:return d;case 1:throw new Error(s);case 2:throw new Error("Public key could not be recover");case 3:throw new Error(t)}},ecdh(t,n,r={},a){switch(u("public key",t,[33,65]),u("private key",n,32),o("Object"===f(r),"Expected options to be an Object"),void 0!==r.data&&u("options.data",r.data),void 0!==r.hashfn?(o("Function"===f(r.hashfn),"Expected options.hashfn to be a Function"),void 0!==r.xbuf&&u("options.xbuf",r.xbuf,32),void 0!==r.ybuf&&u("options.ybuf",r.ybuf,32),u("output",a)):a=l(a,32),e.ecdh(a,t,n,r.data,r.hashfn,r.xbuf,r.ybuf)){case 0:return a;case 1:throw new Error(i);case 2:throw new Error("Scalar was invalid (zero or overflow)")}}})},68379(e){"use strict";var t=isFinite,n=Math.pow(2,30)-1;e.exports=function(e,r){if("number"!=typeof e)throw new TypeError("Iterations not a number");if(e<0||!t(e))throw new TypeError("Bad iterations");if("number"!=typeof r)throw new TypeError("Key length not a number");if(r<0||r>n||r!=r)throw new TypeError("Bad key length")}},68418(e,t,n){"use strict";n.d(t,{x:()=>c});var r=n(63287),i=n(84015),a=n(85501),s=n(58038),o=n(75209);function u(e){if(0===e||1===e)return e;if(27===e)return 0;if(28===e)return 1;throw new Error("Invalid yParityOrV value")}async function c({hash:e,signature:t}){return(0,r.M)(await async function({hash:e,signature:t}){const r=(0,i.q)(e)?e:(0,o.nj)(e),{secp256k1:c}=await Promise.resolve().then(n.bind(n,45264));return`0x${(()=>{if("object"==typeof t&&"r"in t&&"s"in t){const{r:e,s:n,v:r,yParity:i}=t,a=u(Number(i??r));return new c.Signature((0,s.uU)(e),(0,s.uU)(n)).addRecoveryBit(a)}const e=(0,i.q)(t)?t:(0,o.nj)(t);if(65!==(0,a.E)(e))throw new Error("invalid signature length");const n=u((0,s.ME)(`0x${e.slice(130)}`));return c.Signature.fromCompact(e.substring(2,130)).addRecoveryBit(n)})().recoverPublicKey(r.substring(2)).toHex(!1)}`}({hash:e,signature:t}))}},68449(e,t,n){"use strict";n.d(t,{An:()=>$,Bj:()=>z,D4:()=>g,GP:()=>K,MI:()=>k,Tn:()=>T,YA:()=>N,cF:()=>M,kE:()=>B,n$:()=>E,ne:()=>A,rs:()=>U,tb:()=>F,v_:()=>x});var r=n(72529),i=n(59329),a=n(46385),s=n(12717),o=n(36708),u=n(66949),c=n(82884);const l=Symbol.for("effect/Duration"),f=BigInt(0),d=BigInt(24),h=BigInt(60),p=BigInt(1e3),m=BigInt(1e6),y=BigInt(1e9),b=/^(-?\d+(?:\.\d+)?)\s+(nanos?|micros?|millis?|seconds?|minutes?|hours?|days?|weeks?)$/,g=e=>{if(E(e))return e;if((0,c.Et)(e))return A(e);if((0,c.sI)(e))return M(e);if(Array.isArray(e)&&2===e.length&&e.every(c.Et))return e[0]===-1/0||e[1]===-1/0||Number.isNaN(e[0])||Number.isNaN(e[1])?x:e[0]===1/0||e[1]===1/0?T:M(BigInt(Math.round(1e9*e[0]))+BigInt(Math.round(e[1])));if((0,c.Kg)(e)){const t=b.exec(e);if(t){const[e,n,r]=t,i=Number(n);switch(r){case"nano":case"nanos":return M(BigInt(n));case"micro":case"micros":return I(BigInt(n));case"milli":case"millis":return A(i);case"second":case"seconds":return N(i);case"minute":case"minutes":return P(i);case"hour":case"hours":return O(i);case"day":case"days":return R(i);case"week":case"weeks":return C(i)}}}throw new Error("Invalid DurationInput")},v={_tag:"Millis",millis:0},w={_tag:"Infinity"},_={[l]:l,[a.HR](){return a.PO(this,a.QK(this.value))},[r.HR](e){return E(e)&&V(this,e)},toString(){return`Duration(${K(this)})`},toJSON(){switch(this.value._tag){case"Millis":return{_id:"Duration",_tag:"Millis",millis:this.value.millis};case"Nanos":return{_id:"Duration",_tag:"Nanos",hrtime:L(this)};case"Infinity":return{_id:"Duration",_tag:"Infinity"}}},[s.FX](){return this.toJSON()},pipe(){return(0,u.tT)(this,arguments)}},S=e=>{const t=Object.create(_);return(0,c.Et)(e)?isNaN(e)||e<=0?t.value=v:Number.isFinite(e)?Number.isInteger(e)?t.value={_tag:"Millis",millis:e}:t.value={_tag:"Nanos",nanos:BigInt(Math.round(1e6*e))}:t.value=w:t.value=e<=f?v:{_tag:"Nanos",nanos:e},t},E=e=>(0,c.i5)(e,l),k=e=>"Infinity"!==e.value._tag,x=S(0),T=S(1/0),M=e=>S(e),I=e=>S(e*p),A=e=>S(e),N=e=>S(1e3*e),P=e=>S(6e4*e),O=e=>S(36e5*e),R=e=>S(864e5*e),C=e=>S(6048e5*e),B=e=>j(e,{onMillis:e=>e,onNanos:e=>Number(e)/1e6}),F=e=>{const t=g(e);switch(t.value._tag){case"Infinity":return o.dv();case"Nanos":return o.zN(t.value.nanos);case"Millis":return o.zN(BigInt(Math.round(1e6*t.value.millis)))}},L=e=>{const t=g(e);switch(t.value._tag){case"Infinity":return[1/0,0];case"Nanos":return[Number(t.value.nanos/y),Number(t.value.nanos%y)];case"Millis":return[Math.floor(t.value.millis/1e3),Math.round(t.value.millis%1e3*1e6)]}},j=(0,i.XY)(2,(e,t)=>{const n=g(e);switch(n.value._tag){case"Nanos":return t.onNanos(n.value.nanos);case"Infinity":return t.onMillis(1/0);case"Millis":return t.onMillis(n.value.millis)}}),D=(0,i.XY)(3,(e,t,n)=>{const r=g(e),i=g(t);if("Infinity"===r.value._tag||"Infinity"===i.value._tag)return n.onMillis(B(r),B(i));if("Nanos"===r.value._tag||"Nanos"===i.value._tag){const e="Nanos"===r.value._tag?r.value.nanos:BigInt(Math.round(1e6*r.value.millis)),t="Nanos"===i.value._tag?i.value.nanos:BigInt(Math.round(1e6*i.value.millis));return n.onNanos(e,t)}return n.onMillis(r.value.millis,i.value.millis)}),U=(e,t)=>D(e,t,{onMillis:(e,t)=>e===t,onNanos:(e,t)=>e===t}),z=(0,i.XY)(2,(e,t)=>D(e,t,{onMillis:(e,t)=>e<=t,onNanos:(e,t)=>e<=t})),$=(0,i.XY)(2,(e,t)=>D(e,t,{onMillis:(e,t)=>e>=t,onNanos:(e,t)=>e>=t})),V=(0,i.XY)(2,(e,t)=>U(g(e),g(t))),K=e=>{const t=g(e);if("Infinity"===t.value._tag)return"Infinity";if((e=>{switch(e.value._tag){case"Millis":return 0===e.value.millis;case"Nanos":return e.value.nanos===f;case"Infinity":return!1}})(t))return"0";const n=(e=>{const t=g(e);if("Infinity"===t.value._tag)return{days:1/0,hours:1/0,minutes:1/0,seconds:1/0,millis:1/0,nanos:1/0};const n=(e=>{const t=g(e);switch(t.value._tag){case"Infinity":throw new Error("Cannot convert infinite duration to nanos");case"Nanos":return t.value.nanos;case"Millis":return BigInt(Math.round(1e6*t.value.millis))}})(t),r=n/m,i=r/p,a=i/h,s=a/h;return{days:Number(s/d),hours:Number(s%d),minutes:Number(a%h),seconds:Number(i%h),millis:Number(r%p),nanos:Number(n%m)}})(t),r=[];return 0!==n.days&&r.push(`${n.days}d`),0!==n.hours&&r.push(`${n.hours}h`),0!==n.minutes&&r.push(`${n.minutes}m`),0!==n.seconds&&r.push(`${n.seconds}s`),0!==n.millis&&r.push(`${n.millis}ms`),0!==n.nanos&&r.push(`${n.nanos}ns`),r.join(" ")}},68616(e,t,n){"use strict";n.d(t,{b:()=>l,o:()=>c});var r=n(83815),i=n(81127),a=n(35593),s=n(71768),o=n(462);const u=new s.A(8192);function c(e,t){if(u.has(`${e}.${t}`))return u.get(`${e}.${t}`);const n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),r=(0,a.S)((0,i.Af)(n),"bytes"),s=(t?n.substring(`${t}0x`.length):n).split("");for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&s[e]&&(s[e]=s[e].toUpperCase()),(15&r[e>>1])>=8&&s[e+1]&&(s[e+1]=s[e+1].toUpperCase());const o=`0x${s.join("")}`;return u.set(`${e}.${t}`,o),o}function l(e,t){if(!(0,o.P)(e,{strict:!1}))throw new r.M({address:e});return c(e,t)}},68633(e){"use strict";e.exports=Function.prototype.apply},68929(e,t,n){"use strict";n.d(t,{L8:()=>p,hV:()=>c,iu:()=>u});var r=n(47726),i=n(68449),a=n(59329),s=n(89921),o=n(42649);const u=Symbol.for("effect/Clock"),c=r.Io("effect/Clock"),l={unsafeSchedule(e,t){const n=i.kE(t);if(n>2147483647)return a.f4;let r=!1;const s=setTimeout(()=>{r=!0,e()},n);return()=>(clearTimeout(s),!r)}},f=function(){const e=BigInt(1e6);if("undefined"==typeof performance||"function"!=typeof performance.now)return()=>BigInt(Date.now())*e;let t;return()=>(void 0===t&&(t=BigInt(Date.now())*e-BigInt(Math.round(1e6*performance.now()))),t+BigInt(Math.round(1e6*performance.now())))}(),d=function(){const e="object"==typeof o&&"hrtime"in o&&"function"==typeof o.hrtime.bigint?o.hrtime:void 0;if(!e)return f;const t=f()-e.bigint();return()=>t+e.bigint()}();class h{[u]=u;unsafeCurrentTimeMillis(){return Date.now()}unsafeCurrentTimeNanos(){return d()}currentTimeMillis=s.OH5(()=>this.unsafeCurrentTimeMillis());currentTimeNanos=s.OH5(()=>this.unsafeCurrentTimeNanos());scheduler(){return s.PyW(l)}sleep(e){return s.bIC(t=>{const n=l.unsafeSchedule(()=>t(s.rIH),e);return s.NLW(s.OH5(n))})}}const p=()=>new h},69225(e,t){"use strict";t.byteLength=function(e){var t=o(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,a=o(e),s=a[0],u=a[1],c=new i(function(e,t,n){return 3*(t+n)/4-n}(0,s,u)),l=0,f=u>0?s-4:s;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;return 2===u&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,c[l++]=255&t),1===u&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t),c},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,a=[],s=16383,o=0,u=r-i;ou?u:o+s));return 1===i?(t=e[r-1],a.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],a.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),a.join("")};for(var n=[],r=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0;s<64;++s)n[s]=a[s],r[a.charCodeAt(s)]=s;function o(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function u(e){return n[e>>18&63]+n[e>>12&63]+n[e>>6&63]+n[63&e]}function c(e,t,n){for(var r,i=[],a=t;av,J2:()=>b,L8:()=>p,Q$:()=>E,QZ:()=>w,cA:()=>m,cL:()=>d,iv:()=>y,pd:()=>_,yU:()=>k,yo:()=>S,zI:()=>g});var r=n(72529),i=n(59329),a=n(66949),s=n(7403),o=n(18193),u=n(49342),c=n(72084),l=n(5673),f=n(48905);const d=Symbol.for("effect/Differ"),h={[d]:{_P:i.D_,_V:i.D_},pipe(){return(0,a.tT)(this,arguments)}},p=e=>{const t=Object.create(h);return t.empty=e.empty,t.diff=e.diff,t.combine=e.combine,t.patch=e.patch,t},m=()=>p({empty:o.Ie(),combine:(e,t)=>o.kg(t)(e),diff:(e,t)=>o.Ui(e,t),patch:(e,t)=>o.F6(t)(e)}),y=e=>p({empty:s.Ie(),combine:(e,t)=>s.kg(t)(e),diff:(t,n)=>s.Ui({oldValue:t,newValue:n,differ:e}),patch:(t,n)=>s.F6(n,e)(t)}),b=e=>p({empty:u.Ie(),combine:(e,t)=>u.kg(t)(e),diff:(t,n)=>u.Ui({oldValue:t,newValue:n,differ:e}),patch:(t,n)=>u.F6(n,e)(t)}),g=()=>p({empty:c.Ie(),combine:(e,t)=>c.kg(t)(e),diff:(e,t)=>c.Ui(e,t),patch:(e,t)=>c.F6(t)(e)}),v=i.XY(2,(e,t)=>p({empty:l.Ie(),combine:(e,t)=>l.kg(e,t),diff:(n,r)=>l.Ui({oldValue:n,newValue:r,left:e,right:t}),patch:(n,r)=>l.F6(n,{oldValue:r,left:e,right:t})})),w=e=>p({empty:f.Ie(),combine:(e,t)=>f.kg(e,t),diff:(t,n)=>f.Ui({oldValue:t,newValue:n,differ:e}),patch:(t,n)=>f.F6(t,n,e)}),_=i.XY(2,(e,{toNew:t,toOld:n})=>p({empty:e.empty,combine:(t,n)=>e.combine(t,n),diff:(t,r)=>e.diff(n(t),n(r)),patch:(r,i)=>t(e.patch(r,n(i)))})),S=()=>E((e,t)=>t),E=e=>p({empty:i.D_,combine:(e,t)=>e===i.D_?t:t===i.D_?e:n=>t(e(n)),diff:(e,t)=>r.aI(e,t)?i.D_:(0,i.dY)(t),patch:(t,n)=>e(n,t(n))}),k=i.XY(2,(e,t)=>p({empty:[e.empty,t.empty],combine:(n,r)=>[e.combine(n[0],r[0]),t.combine(n[1],r[1])],diff:(n,r)=>[e.diff(n[0],r[0]),t.diff(n[1],r[1])],patch:(n,r)=>[e.patch(n[0],r[0]),t.patch(n[1],r[1])]}))},70004(e,t){"use strict";var n=t;function r(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",n=0;n>8,s=255&i;a?n.push(a,s):n.push(s)}return n},n.zero2=r,n.toHex=i,n.encode=function(e,t){return"hex"===t?i(e):e}},70121(e,t,n){"use strict";n.d(t,{BI:()=>E,EB:()=>_,Iy:()=>u,Iz:()=>v,MR:()=>w,M_:()=>g,Nc:()=>l,O:()=>c,Wl:()=>N,Wq:()=>m,YE:()=>d,YF:()=>o,YW:()=>s,ZP:()=>h,_z:()=>y,d_:()=>A,dm:()=>I,fo:()=>k,gH:()=>f,j:()=>M,kE:()=>b,l3:()=>x,nK:()=>T,nM:()=>S,yy:()=>p});var r=n(75672),i=n(85501),a=n(2273);class s extends a.C{constructor({docsPath:e}){super(["A constructor was not found on the ABI.","Make sure you are using the correct ABI and that the constructor exists on it."].join("\n"),{docsPath:e,name:"AbiConstructorNotFoundError"})}}class o extends a.C{constructor({docsPath:e}){super(["Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.","Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists."].join("\n"),{docsPath:e,name:"AbiConstructorParamsNotFoundError"})}}a.C;class u extends a.C{constructor({data:e,params:t,size:n}){super([`Data size of ${n} bytes is too small for given parameters.`].join("\n"),{metaMessages:[`Params: (${(0,r.A)(t,{includeName:!0})})`,`Data: ${e} (${n} bytes)`],name:"AbiDecodingDataSizeTooSmallError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=e,this.params=t,this.size=n}}class c extends a.C{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.',{name:"AbiDecodingZeroDataError"})}}class l extends a.C{constructor({expectedLength:e,givenLength:t,type:n}){super([`ABI encoding array length mismatch for type ${n}.`,`Expected length: ${e}`,`Given length: ${t}`].join("\n"),{name:"AbiEncodingArrayLengthMismatchError"})}}class f extends a.C{constructor({expectedSize:e,value:t}){super(`Size of bytes "${t}" (bytes${(0,i.E)(t)}) does not match expected size (bytes${e}).`,{name:"AbiEncodingBytesSizeMismatchError"})}}class d extends a.C{constructor({expectedLength:e,givenLength:t}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${e}`,`Given length (values): ${t}`].join("\n"),{name:"AbiEncodingLengthMismatchError"})}}class h extends a.C{constructor(e,{docsPath:t}){super([`Arguments (\`args\`) were provided to "${e}", but "${e}" on the ABI does not contain any parameters (\`inputs\`).`,"Cannot encode error result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the inputs exist on it."].join("\n"),{docsPath:t,name:"AbiErrorInputsNotFoundError"})}}class p extends a.C{constructor(e,{docsPath:t}={}){super([`Error ${e?`"${e}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it."].join("\n"),{docsPath:t,name:"AbiErrorNotFoundError"})}}class m extends a.C{constructor(e,{docsPath:t}){super([`Encoded error signature "${e}" not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${e}.`].join("\n"),{docsPath:t,name:"AbiErrorSignatureNotFoundError"}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=e}}class y extends a.C{constructor({docsPath:e}){super("Cannot extract event signature from empty topics.",{docsPath:e,name:"AbiEventSignatureEmptyTopicsError"})}}class b extends a.C{constructor(e,{docsPath:t}){super([`Encoded event signature "${e}" not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${e}.`].join("\n"),{docsPath:t,name:"AbiEventSignatureNotFoundError"})}}class g extends a.C{constructor(e,{docsPath:t}={}){super([`Event ${e?`"${e}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it."].join("\n"),{docsPath:t,name:"AbiEventNotFoundError"})}}class v extends a.C{constructor(e,{docsPath:t}={}){super([`Function ${e?`"${e}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it."].join("\n"),{docsPath:t,name:"AbiFunctionNotFoundError"})}}class w extends a.C{constructor(e,{docsPath:t}){super([`Function "${e}" does not contain any \`outputs\` on ABI.`,"Cannot decode function result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the function exists on it."].join("\n"),{docsPath:t,name:"AbiFunctionOutputsNotFoundError"})}}class _ extends a.C{constructor(e,{docsPath:t}){super([`Encoded function signature "${e}" not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${e}.`].join("\n"),{docsPath:t,name:"AbiFunctionSignatureNotFoundError"})}}class S extends a.C{constructor(e,t){super("Found ambiguous types in overloaded ABI items.",{metaMessages:[`\`${e.type}\` in \`${(0,r.B)(e.abiItem)}\`, and`,`\`${t.type}\` in \`${(0,r.B)(t.abiItem)}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."],name:"AbiItemAmbiguityError"})}}class E extends a.C{constructor({expectedSize:e,givenSize:t}){super(`Expected bytes${e}, got bytes${t}.`,{name:"BytesSizeMismatchError"})}}class k extends a.C{constructor({abiItem:e,data:t,params:n,size:i}){super([`Data size of ${i} bytes is too small for non-indexed event parameters.`].join("\n"),{metaMessages:[`Params: (${(0,r.A)(n,{includeName:!0})})`,`Data: ${t} (${i} bytes)`],name:"DecodeLogDataMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=e,this.data=t,this.params=n,this.size=i}}class x extends a.C{constructor({abiItem:e,param:t}){super([`Expected a topic for indexed event parameter${t.name?` "${t.name}"`:""} on event "${(0,r.B)(e,{includeName:!0})}".`].join("\n"),{name:"DecodeLogTopicsMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=e}}class T extends a.C{constructor(e,{docsPath:t}){super([`Type "${e}" is not a valid encoding type.`,"Please provide a valid ABI type."].join("\n"),{docsPath:t,name:"InvalidAbiEncodingType"})}}class M extends a.C{constructor(e,{docsPath:t}){super([`Type "${e}" is not a valid decoding type.`,"Please provide a valid ABI type."].join("\n"),{docsPath:t,name:"InvalidAbiDecodingType"})}}class I extends a.C{constructor(e){super([`Value "${e}" is not a valid array.`].join("\n"),{name:"InvalidArrayError"})}}class A extends a.C{constructor(e){super([`"${e}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join("\n"),{name:"InvalidDefinitionTypeError"})}}class N extends a.C{constructor(e){super(`Type "${e}" is not supported for packed encoding.`,{name:"UnsupportedPackedAbiType"})}}},70950(e,t,n){"use strict";var r=n(72258).Buffer,i=n(34043),a=n(2073),s=ArrayBuffer.isView||function(e){try{return a(e),!0}catch(e){return!1}},o="undefined"!=typeof Uint8Array,u="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,c=u&&(r.prototype instanceof Uint8Array||r.TYPED_ARRAY_SUPPORT);e.exports=function(e,t){if(r.isBuffer(e))return e.constructor&&!("isBuffer"in e)?r.from(e):e;if("string"==typeof e)return r.from(e,t);if(u&&s(e)){if(0===e.byteLength)return r.alloc(0);if(c){var n=r.from(e.buffer,e.byteOffset,e.byteLength);if(n.byteLength===e.byteLength)return n}var a=e instanceof Uint8Array?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength),l=r.from(a);if(l.length===e.byteLength)return l}if(o&&e instanceof Uint8Array)return r.from(e);var f=i(e);if(f)for(var d=0;d255||~~h!==h)throw new RangeError("Array items must be numbers in the range 0-255.")}if(f||r.isBuffer(e)&&e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e))return r.from(e);throw new TypeError('The "data" argument must be a string, an Array, a Buffer, a Uint8Array, or a DataView.')}},71098(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(66812)},71357(e,t,n){"use strict";async function r(e,{serializedTransaction:t}){return e.request({method:"eth_sendRawTransaction",params:[t]},{retryCount:0})}n.d(t,{L:()=>r})},71657(e){e.exports=function(e){for(var t,n=e.length;n--;){if(255!==(t=e.readUInt8(n))){t++,e.writeUInt8(t,n);break}e.writeUInt8(0,n)}}},71768(e,t,n){"use strict";n.d(t,{A:()=>r});class r extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){const t=super.get(e);return super.has(e)&&void 0!==t&&(this.delete(e),super.set(e,t)),t}set(e,t){if(super.set(e,t),this.maxSize&&this.size>this.maxSize){const e=this.keys().next().value;e&&this.delete(e)}return this}}},71778(e,t,n){"use strict";var r=n(95894),i=n(14356),a=n(37553)(),s=n(73906),o=n(4002),u=r("%Math.floor%");e.exports=function(e,t){if("function"!=typeof e)throw new o("`fn` is not a function");if("number"!=typeof t||t<0||t>4294967295||u(t)!==t)throw new o("`length` must be a positive 32-bit integer");var n=arguments.length>2&&!!arguments[2],r=!0,c=!0;if("length"in e&&s){var l=s(e,"length");l&&!l.configurable&&(r=!1),l&&!l.writable&&(c=!1)}return(r||c||!n)&&(a?i(e,"length",t,!0,!0):i(e,"length",t)),e}},71822(e,t,n){var r=n(73730).Buffer;e.exports=function(e,t){for(var n=Math.min(e.length,t.length),i=new r(n),a=0;ak,FO:()=>m,If:()=>_,Ji:()=>f,Rv:()=>u,WL:()=>p,Yo:()=>g,ej:()=>d,fC:()=>x,iB:()=>c,kz:()=>s,l9:()=>b,pc:()=>a,sP:()=>E,v7:()=>T,v8:()=>w});var r=n(8609);const i=/^error (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)$/;function a(e){return i.test(e)}function s(e){return(0,r.Yv)(i,e)}const o=/^event (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)$/;function u(e){return o.test(e)}function c(e){return(0,r.Yv)(o,e)}const l=/^function (?[a-zA-Z$_][a-zA-Z0-9$_]*)\((?.*?)\)(?: (?external|public{1}))?(?: (?pure|view|nonpayable|payable{1}))?(?: returns\s?\((?.*?)\))?$/;function f(e){return l.test(e)}function d(e){return(0,r.Yv)(l,e)}const h=/^struct (?[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?.*?)\}$/;function p(e){return h.test(e)}function m(e){return(0,r.Yv)(h,e)}const y=/^constructor\((?.*?)\)(?:\s(?payable{1}))?$/;function b(e){return y.test(e)}function g(e){return(0,r.Yv)(y,e)}const v=/^fallback\(\) external(?:\s(?payable{1}))?$/;function w(e){return v.test(e)}function _(e){return(0,r.Yv)(v,e)}const S=/^receive\(\) external payable$/;function E(e){return S.test(e)}const k=new Set(["memory","indexed","storage","calldata"]),x=new Set(["indexed"]),T=new Set(["calldata","memory","storage"])},72084(e,t,n){"use strict";n.d(t,{F6:()=>v,Ie:()=>d,Ui:()=>b,kg:()=>g,os:()=>o});var r=n(17388),i=n(59329),a=n(75169),s=n(53487);const o=Symbol.for("effect/DifferHashSetPatch");function u(e){return e}const c={...s.wC.prototype,[o]:{_Value:u,_Key:u,_Patch:u}},l=Object.assign(Object.create(c),{_tag:"Empty"}),f=Object.create(l),d=()=>f,h=Object.assign(Object.create(c),{_tag:"AndThen"}),p=Object.assign(Object.create(c),{_tag:"Add"}),m=e=>{const t=Object.create(p);return t.value=e,t},y=Object.assign(Object.create(c),{_tag:"Remove"}),b=(e,t)=>{const[n,r]=a.TS([e,d()],([e,t],n)=>a.zy(n)(e)?[a.TF(n)(e),t]:[e,g(m(n))(t)])(t);return a.TS(r,(e,t)=>g((e=>{const t=Object.create(y);return t.value=e,t})(t))(e))(n)},g=i.XY(2,(e,t)=>((e,t)=>{const n=Object.create(h);return n.first=e,n.second=t,n})(e,t)),v=i.XY(2,(e,t)=>{if("Empty"===e._tag)return t;let n=t,i=r.of(e);for(;r.J_(i);){const e=r.v4(i),t=r.Rx(i);switch(e._tag){case"Empty":i=t;break;case"AndThen":i=r.Hs(e.first)(r.Hs(e.second)(t));break;case"Add":n=a.WQ(e.value)(n),i=t;break;case"Remove":n=a.TF(e.value)(n),i=t}}return n})},72258(e,t,n){var r=n(73730),i=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function s(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=s),s.prototype=Object.create(i.prototype),a(i,s),s.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,n)},s.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},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 r.SlowBuffer(e)}},72368(e,t,n){"use strict";var r=n(23145),i=n(92772),a=i.assert;function s(e,t){if(e instanceof s)return e;this._importDER(e,t)||(a(e.r&&e.s,"Signature without r or s"),this.r=new r(e.r,16),this.s=new r(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function o(){this.place=0}function u(e,t){var n=e[t.place++];if(!(128&n))return n;var r=15&n;if(0===r||r>4)return!1;if(0===e[t.place])return!1;for(var i=0,a=0,s=t.place;a>>=0;return!(i<=127)&&(t.place=s,i)}function c(e){for(var t=0,n=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|n);--n;)e.push(t>>>(n<<3)&255);e.push(t)}}e.exports=s,s.prototype._importDER=function(e,t){e=i.toArray(e,t);var n=new o;if(48!==e[n.place++])return!1;var a=u(e,n);if(!1===a)return!1;if(a+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var s=u(e,n);if(!1===s)return!1;if(128&e[n.place])return!1;var c=e.slice(n.place,s+n.place);if(n.place+=s,2!==e[n.place++])return!1;var l=u(e,n);if(!1===l)return!1;if(e.length!==l+n.place)return!1;if(128&e[n.place])return!1;var f=e.slice(n.place,l+n.place);if(0===c[0]){if(!(128&c[1]))return!1;c=c.slice(1)}if(0===f[0]){if(!(128&f[1]))return!1;f=f.slice(1)}return this.r=new r(c),this.s=new r(f),this.recoveryParam=null,!0},s.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&n[0]&&(n=[0].concat(n)),t=c(t),n=c(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];l(r,t.length),(r=r.concat(t)).push(2),l(r,n.length);var a=r.concat(n),s=[48];return l(s,a.length),s=s.concat(a),i.encode(s,e)}},72529(e,t,n){"use strict";n.d(t,{HR:()=>s,XY:()=>l,aI:()=>o,n4:()=>c});var r=n(46385),i=n(82884),a=n(95644);const s=Symbol.for("effect/Equal");function o(){return 1===arguments.length?e=>u(e,arguments[0]):u(arguments[0],arguments[1])}function u(e,t){if(e===t)return!0;const n=typeof e;if(n!==typeof t)return!1;if("object"===n||"function"===n){if(null!==e&&null!==t){if(c(e)&&c(t))return!(r.tW(e)!==r.tW(t)||!e[s](t))||!(!a.Hi.enabled||!a.Hi.tester)&&a.Hi.tester(e,t);if(e instanceof Date&&t instanceof Date){const n=e.getTime(),r=t.getTime();return n===r||Number.isNaN(n)&&Number.isNaN(r)}if(e instanceof URL&&t instanceof URL)return e.href===t.href}if(a.Hi.enabled){if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every((e,n)=>u(e,t[n]));if(Object.getPrototypeOf(e)===Object.prototype&&Object.getPrototypeOf(e)===Object.prototype){const n=Object.keys(e),r=Object.keys(t);if(n.length===r.length){for(const r of n)if(!(r in t)||!u(e[r],t[r]))return!!a.Hi.tester&&a.Hi.tester(e,t);return!0}}return!!a.Hi.tester&&a.Hi.tester(e,t)}}return!(!a.Hi.enabled||!a.Hi.tester)&&a.Hi.tester(e,t)}const c=e=>(0,i.i5)(e,s),l=()=>o},72634(e,t,n){"use strict";n.d(t,{Ci:()=>s,J8:()=>o,MU:()=>u});var r=n(1060),i=n(2273),a=n(15190);class s extends i.C{constructor({body:e,cause:t,details:n,headers:i,status:s,url:o}){super("HTTP request failed.",{cause:t,details:n,metaMessages:[s&&`Status: ${s}`,`URL: ${(0,a.I)(o)}`,e&&`Request body: ${(0,r.A)(e)}`].filter(Boolean),name:"HttpRequestError"}),Object.defineProperty(this,"body",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.body=e,this.headers=i,this.status=s,this.url=o}}i.C;class o extends i.C{constructor({body:e,error:t,url:n}){super("RPC Request failed.",{cause:t,details:t.message,metaMessages:[`URL: ${(0,a.I)(n)}`,`Request body: ${(0,r.A)(e)}`],name:"RpcRequestError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=t.code,this.data=t.data,this.url=n}}i.C;class u extends i.C{constructor({body:e,url:t}){super("The request took too long to respond.",{details:"The request timed out.",metaMessages:[`URL: ${(0,a.I)(t)}`,`Request body: ${(0,r.A)(e)}`],name:"TimeoutError"}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.url=t}}},72981(e,t,n){"use strict";n.d(t,{W:()=>c});var r=n(97932),i=n(70121),a=n(65144),s=n(16720),o=n(348),u=n(75672);function c(e){const{abi:t,data:n}=e,c=(0,a.di)(n,0,4);if("0x"===c)throw new i.O;const l=[...t||[],r.Mc,r.J9].find(e=>"error"===e.type&&c===(0,s.V)((0,u.B)(e)));if(!l)throw new i.Wq(c,{docsPath:"/docs/contract/decodeErrorResult"});return{abiItem:l,args:"inputs"in l&&l.inputs&&l.inputs.length>0?(0,o.n)(l.inputs,(0,a.di)(n,4)):void 0,errorName:l.name}}},73004(e,t,n){var r=n(54966).Reporter,i=n(54966).EncoderBuffer,a=n(54966).DecoderBuffer,s=n(45366),o=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],u=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(o);function c(e,t){var n={};this._baseState=n,n.enc=e,n.parent=t||null,n.children=null,n.tag=null,n.args=null,n.reverseArgs=null,n.choice=null,n.optional=!1,n.any=!1,n.obj=!1,n.use=null,n.useDecoder=null,n.key=null,n.default=null,n.explicit=null,n.implicit=null,n.contains=null,n.parent||(n.children=[],this._wrap())}e.exports=c;var l=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];c.prototype.clone=function(){var e=this._baseState,t={};l.forEach(function(n){t[n]=e[n]});var n=new this.constructor(t.parent);return n._baseState=t,n},c.prototype._wrap=function(){var e=this._baseState;u.forEach(function(t){this[t]=function(){var n=new this.constructor(this);return e.children.push(n),n[t].apply(n,arguments)}},this)},c.prototype._init=function(e){var t=this._baseState;s(null===t.parent),e.call(this),t.children=t.children.filter(function(e){return e._baseState.parent===this},this),s.equal(t.children.length,1,"Root node can have only one child")},c.prototype._useArgs=function(e){var t=this._baseState,n=e.filter(function(e){return e instanceof this.constructor},this);e=e.filter(function(e){return!(e instanceof this.constructor)},this),0!==n.length&&(s(null===t.children),t.children=n,n.forEach(function(e){e._baseState.parent=this},this)),0!==e.length&&(s(null===t.args),t.args=e,t.reverseArgs=e.map(function(e){if("object"!=typeof e||e.constructor!==Object)return e;var t={};return Object.keys(e).forEach(function(n){n==(0|n)&&(n|=0);var r=e[n];t[r]=n}),t}))},["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"].forEach(function(e){c.prototype[e]=function(){var t=this._baseState;throw new Error(e+" not implemented for encoding: "+t.enc)}}),o.forEach(function(e){c.prototype[e]=function(){var t=this._baseState,n=Array.prototype.slice.call(arguments);return s(null===t.tag),t.tag=e,this._useArgs(n),this}}),c.prototype.use=function(e){s(e);var t=this._baseState;return s(null===t.use),t.use=e,this},c.prototype.optional=function(){return this._baseState.optional=!0,this},c.prototype.def=function(e){var t=this._baseState;return s(null===t.default),t.default=e,t.optional=!0,this},c.prototype.explicit=function(e){var t=this._baseState;return s(null===t.explicit&&null===t.implicit),t.explicit=e,this},c.prototype.implicit=function(e){var t=this._baseState;return s(null===t.explicit&&null===t.implicit),t.implicit=e,this},c.prototype.obj=function(){var e=this._baseState,t=Array.prototype.slice.call(arguments);return e.obj=!0,0!==t.length&&this._useArgs(t),this},c.prototype.key=function(e){var t=this._baseState;return s(null===t.key),t.key=e,this},c.prototype.any=function(){return this._baseState.any=!0,this},c.prototype.choice=function(e){var t=this._baseState;return s(null===t.choice),t.choice=e,this._useArgs(Object.keys(e).map(function(t){return e[t]})),this},c.prototype.contains=function(e){var t=this._baseState;return s(null===t.use),t.contains=e,this},c.prototype._decode=function(e,t){var n=this._baseState;if(null===n.parent)return e.wrapResult(n.children[0]._decode(e,t));var r,i=n.default,s=!0,o=null;if(null!==n.key&&(o=e.enterKey(n.key)),n.optional){var u=null;if(null!==n.explicit?u=n.explicit:null!==n.implicit?u=n.implicit:null!==n.tag&&(u=n.tag),null!==u||n.any){if(s=this._peekTag(e,u,n.any),e.isError(s))return s}else{var c=e.save();try{null===n.choice?this._decodeGeneric(n.tag,e,t):this._decodeChoice(e,t),s=!0}catch(e){s=!1}e.restore(c)}}if(n.obj&&s&&(r=e.enterObject()),s){if(null!==n.explicit){var l=this._decodeTag(e,n.explicit);if(e.isError(l))return l;e=l}var f=e.offset;if(null===n.use&&null===n.choice){n.any&&(c=e.save());var d=this._decodeTag(e,null!==n.implicit?n.implicit:n.tag,n.any);if(e.isError(d))return d;n.any?i=e.raw(c):e=d}if(t&&t.track&&null!==n.tag&&t.track(e.path(),f,e.length,"tagged"),t&&t.track&&null!==n.tag&&t.track(e.path(),e.offset,e.length,"content"),n.any||(i=null===n.choice?this._decodeGeneric(n.tag,e,t):this._decodeChoice(e,t)),e.isError(i))return i;if(n.any||null!==n.choice||null===n.children||n.children.forEach(function(n){n._decode(e,t)}),n.contains&&("octstr"===n.tag||"bitstr"===n.tag)){var h=new a(i);i=this._getUse(n.contains,e._reporterState.obj)._decode(h,t)}}return n.obj&&s&&(i=e.leaveObject(r)),null===n.key||null===i&&!0!==s?null!==o&&e.exitKey(o):e.leaveKey(o,n.key,i),i},c.prototype._decodeGeneric=function(e,t,n){var r=this._baseState;return"seq"===e||"set"===e?null:"seqof"===e||"setof"===e?this._decodeList(t,e,r.args[0],n):/str$/.test(e)?this._decodeStr(t,e,n):"objid"===e&&r.args?this._decodeObjid(t,r.args[0],r.args[1],n):"objid"===e?this._decodeObjid(t,null,null,n):"gentime"===e||"utctime"===e?this._decodeTime(t,e,n):"null_"===e?this._decodeNull(t,n):"bool"===e?this._decodeBool(t,n):"objDesc"===e?this._decodeStr(t,e,n):"int"===e||"enum"===e?this._decodeInt(t,r.args&&r.args[0],n):null!==r.use?this._getUse(r.use,t._reporterState.obj)._decode(t,n):t.error("unknown tag: "+e)},c.prototype._getUse=function(e,t){var n=this._baseState;return n.useDecoder=this._use(e,t),s(null===n.useDecoder._baseState.parent),n.useDecoder=n.useDecoder._baseState.children[0],n.implicit!==n.useDecoder._baseState.implicit&&(n.useDecoder=n.useDecoder.clone(),n.useDecoder._baseState.implicit=n.implicit),n.useDecoder},c.prototype._decodeChoice=function(e,t){var n=this._baseState,r=null,i=!1;return Object.keys(n.choice).some(function(a){var s=e.save(),o=n.choice[a];try{var u=o._decode(e,t);if(e.isError(u))return!1;r={type:a,value:u},i=!0}catch(t){return e.restore(s),!1}return!0},this),i?r:e.error("Choice not matched")},c.prototype._createEncoderBuffer=function(e){return new i(e,this.reporter)},c.prototype._encode=function(e,t,n){var r=this._baseState;if(null===r.default||r.default!==e){var i=this._encodeValue(e,t,n);if(void 0!==i&&!this._skipDefault(i,t,n))return i}},c.prototype._encodeValue=function(e,t,n){var i=this._baseState;if(null===i.parent)return i.children[0]._encode(e,t||new r);var a=null;if(this.reporter=t,i.optional&&void 0===e){if(null===i.default)return;e=i.default}var s=null,o=!1;if(i.any)a=this._createEncoderBuffer(e);else if(i.choice)a=this._encodeChoice(e,t);else if(i.contains)s=this._getUse(i.contains,n)._encode(e,t),o=!0;else if(i.children)s=i.children.map(function(n){if("null_"===n._baseState.tag)return n._encode(null,t,e);if(null===n._baseState.key)return t.error("Child should have a key");var r=t.enterKey(n._baseState.key);if("object"!=typeof e)return t.error("Child expected, but input is not object");var i=n._encode(e[n._baseState.key],t,e);return t.leaveKey(r),i},this).filter(function(e){return e}),s=this._createEncoderBuffer(s);else if("seqof"===i.tag||"setof"===i.tag){if(!i.args||1!==i.args.length)return t.error("Too many args for : "+i.tag);if(!Array.isArray(e))return t.error("seqof/setof, but data is not Array");var u=this.clone();u._baseState.implicit=null,s=this._createEncoderBuffer(e.map(function(n){var r=this._baseState;return this._getUse(r.args[0],e)._encode(n,t)},u))}else null!==i.use?a=this._getUse(i.use,n)._encode(e,t):(s=this._encodePrimitive(i.tag,e),o=!0);if(!i.any&&null===i.choice){var c=null!==i.implicit?i.implicit:i.tag,l=null===i.implicit?"universal":"context";null===c?null===i.use&&t.error("Tag could be omitted only for .use()"):null===i.use&&(a=this._encodeComposite(c,o,l,s))}return null!==i.explicit&&(a=this._encodeComposite(i.explicit,!1,"context",a)),a},c.prototype._encodeChoice=function(e,t){var n=this._baseState,r=n.choice[e.type];return r||s(!1,e.type+" not found in "+JSON.stringify(Object.keys(n.choice))),r._encode(e.value,t)},c.prototype._encodePrimitive=function(e,t){var n=this._baseState;if(/str$/.test(e))return this._encodeStr(t,e);if("objid"===e&&n.args)return this._encodeObjid(t,n.reverseArgs[0],n.args[1]);if("objid"===e)return this._encodeObjid(t,null,null);if("gentime"===e||"utctime"===e)return this._encodeTime(t,e);if("null_"===e)return this._encodeNull();if("int"===e||"enum"===e)return this._encodeInt(t,n.args&&n.reverseArgs[0]);if("bool"===e)return this._encodeBool(t);if("objDesc"===e)return this._encodeStr(t,e);throw new Error("Unsupported tag: "+e)},c.prototype._isNumstr=function(e){return/^[0-9 ]*$/.test(e)},c.prototype._isPrintstr=function(e){return/^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(e)}},73076(e,t,n){var r=n(72258).Buffer;function i(e,t,n){var i=e._cipher.encryptBlock(e._prev)[0]^t;return e._prev=r.concat([e._prev.slice(1),r.from([n?t:i])]),i}t.encrypt=function(e,t,n){for(var a=t.length,s=r.allocUnsafe(a),o=-1;++oi,i:()=>r});const r="Pending",i="Done"},73400(e,t,n){"use strict";n.d(t,{C2:()=>s,Jt:()=>a,L8:()=>i,yo:()=>o});var r=n(4014);r.ll;const i=r.L8,a=r.Jt,s=r.C2,o=(r.Ru,r.$N,r.JP,r.ni,r.hZ,r._c,r.yo);r.lF,r.gH,r.VH,r.s$},73418(e,t,n){"use strict";n.d(t,{q:()=>b});var r=n(70121),i=n(60936),a=n(59398),s=n(78451),o=n(63183),u=n(26015),c=n(36093),l=n(46644),f=n(1060),d=n(96349),h=n(44166),p=n(65306),m=n(66502),y=n(38149);function b(e,t){const{abi:n,address:b,args:g,batch:v=!0,eventName:w,fromBlock:_,onError:S,onLogs:E,poll:k,pollingInterval:x=e.pollingInterval,strict:T}=t;return(void 0!==k?k:"bigint"==typeof _||"webSocket"!==e.transport.type&&"ipc"!==e.transport.type&&("fallback"!==e.transport.type||"webSocket"!==e.transport.transports[0].config.type&&"ipc"!==e.transport.transports[0].config.type))?(()=>{const t=T??!1,r=(0,f.A)(["watchContractEvent",b,g,v,e.uid,w,x,t,_]);return(0,c.lB)(r,{onLogs:E,onError:S},r=>{let a,s;void 0!==_&&(a=_-1n);let o=!1;const c=(0,l.w)(async()=>{if(o)try{let i;if(s)i=await(0,u.T)(e,m.I,"getFilterChanges")({filter:s});else{const r=await(0,u.T)(e,h.G,"getBlockNumber")({});i=a&&a{s&&await(0,u.T)(e,y.Z,"uninstallFilter")({filter:s}),c()}})})():(()=>{const t=T??!1,i=(0,f.A)(["watchContractEvent",b,g,v,e.uid,w,x,t]);let u=!0,l=()=>u=!1;return(0,c.lB)(i,{onLogs:E,onError:S},t=>((async()=>{try{const i=(()=>{if("fallback"===e.transport.type){const t=e.transport.transports.find(e=>"webSocket"===e.config.type||"ipc"===e.config.type);return t?t.value:e.transport}return e.transport})(),c=w?(0,s.R)({abi:n,eventName:w,args:g}):[],{unsubscribe:f}=await i.subscribe({params:["logs",{address:b,topics:c}],onData(e){if(!u)return;const i=e.result;try{const{eventName:e,args:r}=(0,a.j)({abi:n,data:i.data,topics:i.topics,strict:T}),s=(0,o.e)(i,{args:r,eventName:e});t.onLogs([s])}catch(e){let n,a;if(e instanceof r.fo||e instanceof r.l3){if(T)return;n=e.abiItem.name,a=e.abiItem.inputs?.some(e=>!("name"in e&&e.name))}const s=(0,o.e)(i,{args:a?[]:{},eventName:n});t.onLogs([s])}},onError(e){t.onError?.(e)}});l=f,u||l()}catch(e){S?.(e)}})(),()=>l()))})()}},73730(e,t,n){"use strict";const r=n(69225),i=n(65632),a="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=u,t.SlowBuffer=function(e){return+e!=e&&(e=0),u.alloc(+e)},t.INSPECT_MAX_BYTES=50;const s=2147483647;function o(e){if(e>s)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,u.prototype),t}function u(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return f(e)}return c(e,t,n)}function c(e,t,n){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!u.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const n=0|m(e,t);let r=o(n);const i=r.write(e,t);return i!==n&&(r=r.slice(0,i)),r}(e,t);if(ArrayBuffer.isView(e))return function(e){if(W(e,Uint8Array)){const t=new Uint8Array(e);return h(t.buffer,t.byteOffset,t.byteLength)}return d(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(W(e,ArrayBuffer)||e&&W(e.buffer,ArrayBuffer))return h(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(W(e,SharedArrayBuffer)||e&&W(e.buffer,SharedArrayBuffer)))return h(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const r=e.valueOf&&e.valueOf();if(null!=r&&r!==e)return u.from(r,t,n);const i=function(e){if(u.isBuffer(e)){const t=0|p(e.length),n=o(t);return 0===n.length||e.copy(n,0,0,t),n}return void 0!==e.length?"number"!=typeof e.length||X(e.length)?o(0):d(e):"Buffer"===e.type&&Array.isArray(e.data)?d(e.data):void 0}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return u.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function l(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 f(e){return l(e),o(e<0?0:0|p(e))}function d(e){const t=e.length<0?0:0|p(e.length),n=o(t);for(let r=0;r=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return 0|e}function m(e,t){if(u.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||W(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 n=e.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return q(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(i)return r?-1:q(e).length;t=(""+t).toLowerCase(),i=!0}}function y(e,t,n){let r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return N(this,t,n);case"utf8":case"utf-8":return T(this,t,n);case"ascii":return I(this,t,n);case"latin1":case"binary":return A(this,t,n);case"base64":return x(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function b(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function g(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),X(n=+n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=u.from(t,r)),u.isBuffer(t))return 0===t.length?-1:v(e,t,n,r,i);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):v(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function v(e,t,n,r,i){let a,s=1,o=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;s=2,o/=2,u/=2,n/=2}function c(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(i){let r=-1;for(a=n;ao&&(n=o-u),a=n;a>=0;a--){let n=!0;for(let r=0;ri&&(r=i):r=i;const a=t.length;let s;for(r>a/2&&(r=a/2),s=0;s>8,i=n%256,a.push(i),a.push(r);return a}(t,e.length-n),e,n,r)}function x(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function T(e,t,n){n=Math.min(e.length,n);const r=[];let i=t;for(;i239?4:t>223?3:t>191?2:1;if(i+s<=n){let n,r,o,u;switch(s){case 1:t<128&&(a=t);break;case 2:n=e[i+1],128==(192&n)&&(u=(31&t)<<6|63&n,u>127&&(a=u));break;case 3:n=e[i+1],r=e[i+2],128==(192&n)&&128==(192&r)&&(u=(15&t)<<12|(63&n)<<6|63&r,u>2047&&(u<55296||u>57343)&&(a=u));break;case 4:n=e[i+1],r=e[i+2],o=e[i+3],128==(192&n)&&128==(192&r)&&128==(192&o)&&(u=(15&t)<<18|(63&n)<<12|(63&r)<<6|63&o,u>65535&&u<1114112&&(a=u))}}null===a?(a=65533,s=1):a>65535&&(a-=65536,r.push(a>>>10&1023|55296),a=56320|1023&a),r.push(a),i+=s}return function(e){const t=e.length;if(t<=M)return String.fromCharCode.apply(String,e);let n="",r=0;for(;rr.length?(u.isBuffer(t)||(t=u.from(t)),t.copy(r,i)):Uint8Array.prototype.set.call(r,t,i);else{if(!u.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(r,i)}i+=t.length}return r},u.byteLength=m,u.prototype._isBuffer=!0,u.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;tn&&(e+=" ... "),""},a&&(u.prototype[a]=u.prototype.inspect),u.prototype.compare=function(e,t,n,r,i){if(W(e,Uint8Array)&&(e=u.from(e,e.offset,e.byteLength)),!u.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===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;let a=(i>>>=0)-(r>>>=0),s=(n>>>=0)-(t>>>=0);const o=Math.min(a,s),c=this.slice(r,i),l=e.slice(t,n);for(let e=0;e>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}const i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");let a=!1;for(;;)switch(r){case"hex":return w(this,e,t,n);case"utf8":case"utf-8":return _(this,e,t,n);case"ascii":case"latin1":case"binary":return S(this,e,t,n);case"base64":return E(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const M=4096;function I(e,t,n){let r="";n=Math.min(e.length,n);for(let i=t;ir)&&(n=r);let i="";for(let r=t;rn)throw new RangeError("Trying to access beyond buffer length")}function R(e,t,n,r,i,a){if(!u.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 C(e,t,n,r,i){$(t,r,i,e,n,7);let a=Number(t&BigInt(4294967295));e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=s,s>>=8,e[n++]=s,s>>=8,e[n++]=s,s>>=8,e[n++]=s,n}function B(e,t,n,r,i){$(t,r,i,e,n,7);let a=Number(t&BigInt(4294967295));e[n+7]=a,a>>=8,e[n+6]=a,a>>=8,e[n+5]=a,a>>=8,e[n+4]=a;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=s,s>>=8,e[n+2]=s,s>>=8,e[n+1]=s,s>>=8,e[n]=s,n+8}function F(e,t,n,r,i,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function L(e,t,n,r,a){return t=+t,n>>>=0,a||F(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function j(e,t,n,r,a){return t=+t,n>>>=0,a||F(e,0,n,8),i.write(e,t,n,r,52,8),n+8}u.prototype.slice=function(e,t){const n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,n||O(e,t,this.length);let r=this[e],i=1,a=0;for(;++a>>=0,t>>>=0,n||O(e,t,this.length);let r=this[e+--t],i=1;for(;t>0&&(i*=256);)r+=this[e+--t]*i;return r},u.prototype.readUint8=u.prototype.readUInt8=function(e,t){return e>>>=0,t||O(e,1,this.length),this[e]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(e,t){return e>>>=0,t||O(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(e,t){return e>>>=0,t||O(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(e,t){return e>>>=0,t||O(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(e,t){return e>>>=0,t||O(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readBigUInt64LE=Z(function(e){V(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||K(e,this.length-8);const r=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,i=this[++e]+256*this[++e]+65536*this[++e]+n*2**24;return BigInt(r)+(BigInt(i)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||K(e,this.length-8);const r=t*2**24+65536*this[++e]+256*this[++e]+this[++e],i=this[++e]*2**24+65536*this[++e]+256*this[++e]+n;return(BigInt(r)<>>=0,t>>>=0,n||O(e,t,this.length);let r=this[e],i=1,a=0;for(;++a=i&&(r-=Math.pow(2,8*t)),r},u.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||O(e,t,this.length);let r=t,i=1,a=this[e+--r];for(;r>0&&(i*=256);)a+=this[e+--r]*i;return i*=128,a>=i&&(a-=Math.pow(2,8*t)),a},u.prototype.readInt8=function(e,t){return e>>>=0,t||O(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){e>>>=0,t||O(e,2,this.length);const n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){e>>>=0,t||O(e,2,this.length);const n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return e>>>=0,t||O(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return e>>>=0,t||O(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readBigInt64LE=Z(function(e){V(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||K(e,this.length-8);const r=this[e+4]+256*this[e+5]+65536*this[e+6]+(n<<24);return(BigInt(r)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||K(e,this.length-8);const r=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(r)<>>=0,t||O(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return e>>>=0,t||O(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return e>>>=0,t||O(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return e>>>=0,t||O(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUintLE=u.prototype.writeUIntLE=function(e,t,n,r){e=+e,t>>>=0,n>>>=0,r||R(this,e,t,n,Math.pow(2,8*n)-1,0);let i=1,a=0;for(this[t]=255&e;++a>>=0,n>>>=0,r||R(this,e,t,n,Math.pow(2,8*n)-1,0);let i=n-1,a=1;for(this[t+i]=255&e;--i>=0&&(a*=256);)this[t+i]=e/a&255;return t+n},u.prototype.writeUint8=u.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,1,255,0),this[t]=255&e,t+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||R(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},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||R(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},u.prototype.writeBigUInt64LE=Z(function(e,t=0){return C(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))}),u.prototype.writeBigUInt64BE=Z(function(e,t=0){return B(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))}),u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);R(this,e,t,n,r-1,-r)}let i=0,a=1,s=0;for(this[t]=255&e;++i>>=0,!r){const r=Math.pow(2,8*n-1);R(this,e,t,n,r-1,-r)}let i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a|0)-s&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||R(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},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||R(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},u.prototype.writeBigInt64LE=Z(function(e,t=0){return C(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),u.prototype.writeBigInt64BE=Z(function(e,t=0){return B(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),u.prototype.writeFloatLE=function(e,t,n){return L(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return L(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return j(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return j(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(!u.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function $(e,t,n,r,i,a){if(e>n||e3?0===t||t===BigInt(0)?`>= 0${r} and < 2${r} ** ${8*(a+1)}${r}`:`>= -(2${r} ** ${8*(a+1)-1}${r}) and < 2 ** ${8*(a+1)-1}${r}`:`>= ${t}${r} and <= ${n}${r}`,new D.ERR_OUT_OF_RANGE("value",i,e)}!function(e,t,n){V(t,"offset"),void 0!==e[t]&&void 0!==e[t+n]||K(t,e.length-(n+1))}(r,i,a)}function V(e,t){if("number"!=typeof e)throw new D.ERR_INVALID_ARG_TYPE(t,"number",e)}function K(e,t,n){if(Math.floor(e)!==e)throw V(e,n),new D.ERR_OUT_OF_RANGE(n||"offset","an integer",e);if(t<0)throw new D.ERR_BUFFER_OUT_OF_BOUNDS;throw new D.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${t}`,e)}U("ERR_BUFFER_OUT_OF_BOUNDS",function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),U("ERR_INVALID_ARG_TYPE",function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`},TypeError),U("ERR_OUT_OF_RANGE",function(e,t,n){let r=`The value of "${e}" is out of range.`,i=n;return Number.isInteger(n)&&Math.abs(n)>2**32?i=z(String(n)):"bigint"==typeof n&&(i=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(i=z(i)),i+="n"),r+=` It must be ${t}. Received ${i}`,r},RangeError);const Y=/[^+/0-9A-Za-z-_]/g;function q(e,t){let n;t=t||1/0;const r=e.length;let i=null;const a=[];for(let s=0;s55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(s+1===r){(t-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function H(e){return r.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(Y,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function G(e,t,n,r){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function W(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function X(e){return e!=e}const J=function(){const e="0123456789abcdef",t=new Array(256);for(let n=0;n<16;++n){const r=16*n;for(let i=0;i<16;++i)t[r+i]=e[n]+e[i]}return t}();function Z(e){return"undefined"==typeof BigInt?Q:e}function Q(){throw new Error("BigInt not supported")}},73906(e,t,n){"use strict";var r=n(86262);if(r)try{r([],"length")}catch(e){r=null}e.exports=r},73934(e,t,n){"use strict";n.d(t,{k:()=>o});var r=n(81127),i=n(35593);var a=n(13059),s=n(2273);function o(e){return t=function(e){let t=!0,n="",r=0,i="",a=!1;for(let s=0;si});var r=n(58038);async function i(e){const t=await e.request({method:"eth_chainId"},{dedupe:!0});return(0,r.ME)(t)}},74014(e,t,n){"use strict";function r(e){return"string"==typeof e?{address:e,type:"json-rpc"}:e}n.d(t,{J:()=>r})},74017(e,t,n){"use strict";e.exports=s;var r=n(60991),i=Object.create(n(1833));function a(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+e)}function u(e,t,n){var r=o(e,n);return n-1>=t&&(r|=o(e,n-1)<<4),r}function c(e,t,n,i){for(var a=0,s=0,o=Math.min(e.length,n),u=t;u=49?c-49+10:c>=17?c-17+10:c,r(c>=0&&s0?e:t},a.min=function(e,t){return e.cmp(t)<0?e:t},a.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(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[a]|=s<>>26-o&67108863,(o+=24)>=26&&(o-=26,a++);else if("le"===n)for(i=0,a=0;i>>26-o&67108863,(o+=24)>=26&&(o-=26,a++);return this._strip()},a.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=2)i=u(e,t,r)<=18?(a-=18,s+=1,this.words[s]|=i>>>26):a+=8;else for(r=(e.length-t)%2==0?t+1:t;r=18?(a-=18,s+=1,this.words[s]|=i>>>26):a+=8;this._strip()},a.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var a=e.length-n,s=a%r,o=Math.min(a,a-s)+n,u=0,l=n;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{a.prototype[Symbol.for("nodejs.util.inspect.custom")]=f}catch(e){a.prototype.inspect=f}else a.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 m(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],a=0|t.words[0],s=i*a,o=67108863&s,u=s/67108864|0;n.words[0]=o;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])*(a=0|t.words[h])+f)/67108864|0,f=67108863&s}n.words[c]=0|f,u=0|l}return 0!==u?n.words[c]=0|u:n.length--,n._strip()}a.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,a=0,s=0;s>>24-i&16777215,(i+=2)>=26&&(i-=26,s--),n=0!==a||s!==this.length-1?d[6-u.length]+u+n:u+n}for(0!==a&&(n=a.toString(16)+n);n.length%t!==0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var c=h[e],l=p[e];n="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modrn(l).toString(e);n=(f=f.idivn(l)).isZero()?m+n:d[c-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!==0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},a.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&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},a.prototype.toJSON=function(){return this.toString(16,2)},s&&(a.prototype.toBuffer=function(e,t){return this.toArrayLike(s,e,t)}),a.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},a.prototype.toArrayLike=function(e,t,n){this._strip();var i=this.byteLength(),a=n||Math.max(1,i);r(i<=a,"byte array longer than desired length"),r(a>0,"Requested array length <= 0");var s=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,a);return this["_toArrayLike"+("le"===t?"LE":"BE")](s,i),s},a.prototype._toArrayLikeLE=function(e,t){for(var n=0,r=0,i=0,a=0;i>8&255),n>16&255),6===a?(n>24&255),r=0,a=0):(r=s>>>24,a+=2)}if(n=0&&(e[n--]=s>>8&255),n>=0&&(e[n--]=s>>16&255),6===a?(n>=0&&(e[n--]=s>>24&255),r=0,a=0):(r=s>>>24,a+=2)}if(n>=0)for(e[n--]=r;n>=0;)e[n--]=0},Math.clz32?a.prototype._countBits=function(e){return 32-Math.clz32(e)}:a.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},a.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 8191&t||(n+=13,t>>>=13),127&t||(n+=7,t>>>=7),15&t||(n+=4,t>>>=4),3&t||(n+=2,t>>>=2),1&t||n++,n},a.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},a.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},a.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},a.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},a.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;re.length?this.clone().ixor(e):e.clone().ixor(this)},a.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},a.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-n),this._strip()},a.prototype.notn=function(e){return this.clone().inotn(e)},a.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(n=this,r=e):(n=e,r=this);for(var i=0,a=0;a>>26;for(;0!==i&&a>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;ae.length?this.clone().iadd(e):e.clone().iadd(this)},a.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 n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var a=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==a&&s>26,this.words[s]=67108863&t;if(0===a&&s>>13,h=0|s[1],p=8191&h,m=h>>>13,y=0|s[2],b=8191&y,g=y>>>13,v=0|s[3],w=8191&v,_=v>>>13,S=0|s[4],E=8191&S,k=S>>>13,x=0|s[5],T=8191&x,M=x>>>13,I=0|s[6],A=8191&I,N=I>>>13,P=0|s[7],O=8191&P,R=P>>>13,C=0|s[8],B=8191&C,F=C>>>13,L=0|s[9],j=8191&L,D=L>>>13,U=0|o[0],z=8191&U,$=U>>>13,V=0|o[1],K=8191&V,Y=V>>>13,q=0|o[2],H=8191&q,G=q>>>13,W=0|o[3],X=8191&W,J=W>>>13,Z=0|o[4],Q=8191&Z,ee=Z>>>13,te=0|o[5],ne=8191&te,re=te>>>13,ie=0|o[6],ae=8191&ie,se=ie>>>13,oe=0|o[7],ue=8191&oe,ce=oe>>>13,le=0|o[8],fe=8191&le,de=le>>>13,he=0|o[9],pe=8191&he,me=he>>>13;n.negative=e.negative^t.negative,n.length=19;var ye=(c+(r=Math.imul(f,z))|0)+((8191&(i=(i=Math.imul(f,$))+Math.imul(d,z)|0))<<13)|0;c=((a=Math.imul(d,$))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(p,z),i=(i=Math.imul(p,$))+Math.imul(m,z)|0,a=Math.imul(m,$);var be=(c+(r=r+Math.imul(f,K)|0)|0)+((8191&(i=(i=i+Math.imul(f,Y)|0)+Math.imul(d,K)|0))<<13)|0;c=((a=a+Math.imul(d,Y)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(b,z),i=(i=Math.imul(b,$))+Math.imul(g,z)|0,a=Math.imul(g,$),r=r+Math.imul(p,K)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(m,K)|0,a=a+Math.imul(m,Y)|0;var ge=(c+(r=r+Math.imul(f,H)|0)|0)+((8191&(i=(i=i+Math.imul(f,G)|0)+Math.imul(d,H)|0))<<13)|0;c=((a=a+Math.imul(d,G)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(w,z),i=(i=Math.imul(w,$))+Math.imul(_,z)|0,a=Math.imul(_,$),r=r+Math.imul(b,K)|0,i=(i=i+Math.imul(b,Y)|0)+Math.imul(g,K)|0,a=a+Math.imul(g,Y)|0,r=r+Math.imul(p,H)|0,i=(i=i+Math.imul(p,G)|0)+Math.imul(m,H)|0,a=a+Math.imul(m,G)|0;var ve=(c+(r=r+Math.imul(f,X)|0)|0)+((8191&(i=(i=i+Math.imul(f,J)|0)+Math.imul(d,X)|0))<<13)|0;c=((a=a+Math.imul(d,J)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(E,z),i=(i=Math.imul(E,$))+Math.imul(k,z)|0,a=Math.imul(k,$),r=r+Math.imul(w,K)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(_,K)|0,a=a+Math.imul(_,Y)|0,r=r+Math.imul(b,H)|0,i=(i=i+Math.imul(b,G)|0)+Math.imul(g,H)|0,a=a+Math.imul(g,G)|0,r=r+Math.imul(p,X)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(m,X)|0,a=a+Math.imul(m,J)|0;var we=(c+(r=r+Math.imul(f,Q)|0)|0)+((8191&(i=(i=i+Math.imul(f,ee)|0)+Math.imul(d,Q)|0))<<13)|0;c=((a=a+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(T,z),i=(i=Math.imul(T,$))+Math.imul(M,z)|0,a=Math.imul(M,$),r=r+Math.imul(E,K)|0,i=(i=i+Math.imul(E,Y)|0)+Math.imul(k,K)|0,a=a+Math.imul(k,Y)|0,r=r+Math.imul(w,H)|0,i=(i=i+Math.imul(w,G)|0)+Math.imul(_,H)|0,a=a+Math.imul(_,G)|0,r=r+Math.imul(b,X)|0,i=(i=i+Math.imul(b,J)|0)+Math.imul(g,X)|0,a=a+Math.imul(g,J)|0,r=r+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(m,Q)|0,a=a+Math.imul(m,ee)|0;var _e=(c+(r=r+Math.imul(f,ne)|0)|0)+((8191&(i=(i=i+Math.imul(f,re)|0)+Math.imul(d,ne)|0))<<13)|0;c=((a=a+Math.imul(d,re)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(A,z),i=(i=Math.imul(A,$))+Math.imul(N,z)|0,a=Math.imul(N,$),r=r+Math.imul(T,K)|0,i=(i=i+Math.imul(T,Y)|0)+Math.imul(M,K)|0,a=a+Math.imul(M,Y)|0,r=r+Math.imul(E,H)|0,i=(i=i+Math.imul(E,G)|0)+Math.imul(k,H)|0,a=a+Math.imul(k,G)|0,r=r+Math.imul(w,X)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,X)|0,a=a+Math.imul(_,J)|0,r=r+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,ee)|0)+Math.imul(g,Q)|0,a=a+Math.imul(g,ee)|0,r=r+Math.imul(p,ne)|0,i=(i=i+Math.imul(p,re)|0)+Math.imul(m,ne)|0,a=a+Math.imul(m,re)|0;var Se=(c+(r=r+Math.imul(f,ae)|0)|0)+((8191&(i=(i=i+Math.imul(f,se)|0)+Math.imul(d,ae)|0))<<13)|0;c=((a=a+Math.imul(d,se)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(O,z),i=(i=Math.imul(O,$))+Math.imul(R,z)|0,a=Math.imul(R,$),r=r+Math.imul(A,K)|0,i=(i=i+Math.imul(A,Y)|0)+Math.imul(N,K)|0,a=a+Math.imul(N,Y)|0,r=r+Math.imul(T,H)|0,i=(i=i+Math.imul(T,G)|0)+Math.imul(M,H)|0,a=a+Math.imul(M,G)|0,r=r+Math.imul(E,X)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(k,X)|0,a=a+Math.imul(k,J)|0,r=r+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,a=a+Math.imul(_,ee)|0,r=r+Math.imul(b,ne)|0,i=(i=i+Math.imul(b,re)|0)+Math.imul(g,ne)|0,a=a+Math.imul(g,re)|0,r=r+Math.imul(p,ae)|0,i=(i=i+Math.imul(p,se)|0)+Math.imul(m,ae)|0,a=a+Math.imul(m,se)|0;var Ee=(c+(r=r+Math.imul(f,ue)|0)|0)+((8191&(i=(i=i+Math.imul(f,ce)|0)+Math.imul(d,ue)|0))<<13)|0;c=((a=a+Math.imul(d,ce)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(B,z),i=(i=Math.imul(B,$))+Math.imul(F,z)|0,a=Math.imul(F,$),r=r+Math.imul(O,K)|0,i=(i=i+Math.imul(O,Y)|0)+Math.imul(R,K)|0,a=a+Math.imul(R,Y)|0,r=r+Math.imul(A,H)|0,i=(i=i+Math.imul(A,G)|0)+Math.imul(N,H)|0,a=a+Math.imul(N,G)|0,r=r+Math.imul(T,X)|0,i=(i=i+Math.imul(T,J)|0)+Math.imul(M,X)|0,a=a+Math.imul(M,J)|0,r=r+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(k,Q)|0,a=a+Math.imul(k,ee)|0,r=r+Math.imul(w,ne)|0,i=(i=i+Math.imul(w,re)|0)+Math.imul(_,ne)|0,a=a+Math.imul(_,re)|0,r=r+Math.imul(b,ae)|0,i=(i=i+Math.imul(b,se)|0)+Math.imul(g,ae)|0,a=a+Math.imul(g,se)|0,r=r+Math.imul(p,ue)|0,i=(i=i+Math.imul(p,ce)|0)+Math.imul(m,ue)|0,a=a+Math.imul(m,ce)|0;var ke=(c+(r=r+Math.imul(f,fe)|0)|0)+((8191&(i=(i=i+Math.imul(f,de)|0)+Math.imul(d,fe)|0))<<13)|0;c=((a=a+Math.imul(d,de)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(j,z),i=(i=Math.imul(j,$))+Math.imul(D,z)|0,a=Math.imul(D,$),r=r+Math.imul(B,K)|0,i=(i=i+Math.imul(B,Y)|0)+Math.imul(F,K)|0,a=a+Math.imul(F,Y)|0,r=r+Math.imul(O,H)|0,i=(i=i+Math.imul(O,G)|0)+Math.imul(R,H)|0,a=a+Math.imul(R,G)|0,r=r+Math.imul(A,X)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(N,X)|0,a=a+Math.imul(N,J)|0,r=r+Math.imul(T,Q)|0,i=(i=i+Math.imul(T,ee)|0)+Math.imul(M,Q)|0,a=a+Math.imul(M,ee)|0,r=r+Math.imul(E,ne)|0,i=(i=i+Math.imul(E,re)|0)+Math.imul(k,ne)|0,a=a+Math.imul(k,re)|0,r=r+Math.imul(w,ae)|0,i=(i=i+Math.imul(w,se)|0)+Math.imul(_,ae)|0,a=a+Math.imul(_,se)|0,r=r+Math.imul(b,ue)|0,i=(i=i+Math.imul(b,ce)|0)+Math.imul(g,ue)|0,a=a+Math.imul(g,ce)|0,r=r+Math.imul(p,fe)|0,i=(i=i+Math.imul(p,de)|0)+Math.imul(m,fe)|0,a=a+Math.imul(m,de)|0;var xe=(c+(r=r+Math.imul(f,pe)|0)|0)+((8191&(i=(i=i+Math.imul(f,me)|0)+Math.imul(d,pe)|0))<<13)|0;c=((a=a+Math.imul(d,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(j,K),i=(i=Math.imul(j,Y))+Math.imul(D,K)|0,a=Math.imul(D,Y),r=r+Math.imul(B,H)|0,i=(i=i+Math.imul(B,G)|0)+Math.imul(F,H)|0,a=a+Math.imul(F,G)|0,r=r+Math.imul(O,X)|0,i=(i=i+Math.imul(O,J)|0)+Math.imul(R,X)|0,a=a+Math.imul(R,J)|0,r=r+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(N,Q)|0,a=a+Math.imul(N,ee)|0,r=r+Math.imul(T,ne)|0,i=(i=i+Math.imul(T,re)|0)+Math.imul(M,ne)|0,a=a+Math.imul(M,re)|0,r=r+Math.imul(E,ae)|0,i=(i=i+Math.imul(E,se)|0)+Math.imul(k,ae)|0,a=a+Math.imul(k,se)|0,r=r+Math.imul(w,ue)|0,i=(i=i+Math.imul(w,ce)|0)+Math.imul(_,ue)|0,a=a+Math.imul(_,ce)|0,r=r+Math.imul(b,fe)|0,i=(i=i+Math.imul(b,de)|0)+Math.imul(g,fe)|0,a=a+Math.imul(g,de)|0;var Te=(c+(r=r+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;c=((a=a+Math.imul(m,me)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(j,H),i=(i=Math.imul(j,G))+Math.imul(D,H)|0,a=Math.imul(D,G),r=r+Math.imul(B,X)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(F,X)|0,a=a+Math.imul(F,J)|0,r=r+Math.imul(O,Q)|0,i=(i=i+Math.imul(O,ee)|0)+Math.imul(R,Q)|0,a=a+Math.imul(R,ee)|0,r=r+Math.imul(A,ne)|0,i=(i=i+Math.imul(A,re)|0)+Math.imul(N,ne)|0,a=a+Math.imul(N,re)|0,r=r+Math.imul(T,ae)|0,i=(i=i+Math.imul(T,se)|0)+Math.imul(M,ae)|0,a=a+Math.imul(M,se)|0,r=r+Math.imul(E,ue)|0,i=(i=i+Math.imul(E,ce)|0)+Math.imul(k,ue)|0,a=a+Math.imul(k,ce)|0,r=r+Math.imul(w,fe)|0,i=(i=i+Math.imul(w,de)|0)+Math.imul(_,fe)|0,a=a+Math.imul(_,de)|0;var Me=(c+(r=r+Math.imul(b,pe)|0)|0)+((8191&(i=(i=i+Math.imul(b,me)|0)+Math.imul(g,pe)|0))<<13)|0;c=((a=a+Math.imul(g,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(j,X),i=(i=Math.imul(j,J))+Math.imul(D,X)|0,a=Math.imul(D,J),r=r+Math.imul(B,Q)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(F,Q)|0,a=a+Math.imul(F,ee)|0,r=r+Math.imul(O,ne)|0,i=(i=i+Math.imul(O,re)|0)+Math.imul(R,ne)|0,a=a+Math.imul(R,re)|0,r=r+Math.imul(A,ae)|0,i=(i=i+Math.imul(A,se)|0)+Math.imul(N,ae)|0,a=a+Math.imul(N,se)|0,r=r+Math.imul(T,ue)|0,i=(i=i+Math.imul(T,ce)|0)+Math.imul(M,ue)|0,a=a+Math.imul(M,ce)|0,r=r+Math.imul(E,fe)|0,i=(i=i+Math.imul(E,de)|0)+Math.imul(k,fe)|0,a=a+Math.imul(k,de)|0;var Ie=(c+(r=r+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,me)|0)+Math.imul(_,pe)|0))<<13)|0;c=((a=a+Math.imul(_,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(j,Q),i=(i=Math.imul(j,ee))+Math.imul(D,Q)|0,a=Math.imul(D,ee),r=r+Math.imul(B,ne)|0,i=(i=i+Math.imul(B,re)|0)+Math.imul(F,ne)|0,a=a+Math.imul(F,re)|0,r=r+Math.imul(O,ae)|0,i=(i=i+Math.imul(O,se)|0)+Math.imul(R,ae)|0,a=a+Math.imul(R,se)|0,r=r+Math.imul(A,ue)|0,i=(i=i+Math.imul(A,ce)|0)+Math.imul(N,ue)|0,a=a+Math.imul(N,ce)|0,r=r+Math.imul(T,fe)|0,i=(i=i+Math.imul(T,de)|0)+Math.imul(M,fe)|0,a=a+Math.imul(M,de)|0;var Ae=(c+(r=r+Math.imul(E,pe)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(k,pe)|0))<<13)|0;c=((a=a+Math.imul(k,me)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(j,ne),i=(i=Math.imul(j,re))+Math.imul(D,ne)|0,a=Math.imul(D,re),r=r+Math.imul(B,ae)|0,i=(i=i+Math.imul(B,se)|0)+Math.imul(F,ae)|0,a=a+Math.imul(F,se)|0,r=r+Math.imul(O,ue)|0,i=(i=i+Math.imul(O,ce)|0)+Math.imul(R,ue)|0,a=a+Math.imul(R,ce)|0,r=r+Math.imul(A,fe)|0,i=(i=i+Math.imul(A,de)|0)+Math.imul(N,fe)|0,a=a+Math.imul(N,de)|0;var Ne=(c+(r=r+Math.imul(T,pe)|0)|0)+((8191&(i=(i=i+Math.imul(T,me)|0)+Math.imul(M,pe)|0))<<13)|0;c=((a=a+Math.imul(M,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(j,ae),i=(i=Math.imul(j,se))+Math.imul(D,ae)|0,a=Math.imul(D,se),r=r+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,ce)|0)+Math.imul(F,ue)|0,a=a+Math.imul(F,ce)|0,r=r+Math.imul(O,fe)|0,i=(i=i+Math.imul(O,de)|0)+Math.imul(R,fe)|0,a=a+Math.imul(R,de)|0;var Pe=(c+(r=r+Math.imul(A,pe)|0)|0)+((8191&(i=(i=i+Math.imul(A,me)|0)+Math.imul(N,pe)|0))<<13)|0;c=((a=a+Math.imul(N,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,r=Math.imul(j,ue),i=(i=Math.imul(j,ce))+Math.imul(D,ue)|0,a=Math.imul(D,ce),r=r+Math.imul(B,fe)|0,i=(i=i+Math.imul(B,de)|0)+Math.imul(F,fe)|0,a=a+Math.imul(F,de)|0;var Oe=(c+(r=r+Math.imul(O,pe)|0)|0)+((8191&(i=(i=i+Math.imul(O,me)|0)+Math.imul(R,pe)|0))<<13)|0;c=((a=a+Math.imul(R,me)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(j,fe),i=(i=Math.imul(j,de))+Math.imul(D,fe)|0,a=Math.imul(D,de);var Re=(c+(r=r+Math.imul(B,pe)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(F,pe)|0))<<13)|0;c=((a=a+Math.imul(F,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863;var Ce=(c+(r=Math.imul(j,pe))|0)+((8191&(i=(i=Math.imul(j,me))+Math.imul(D,pe)|0))<<13)|0;return c=((a=Math.imul(D,me))+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,u[0]=ye,u[1]=be,u[2]=ge,u[3]=ve,u[4]=we,u[5]=_e,u[6]=Se,u[7]=Ee,u[8]=ke,u[9]=xe,u[10]=Te,u[11]=Me,u[12]=Ie,u[13]=Ae,u[14]=Ne,u[15]=Pe,u[16]=Oe,u[17]=Re,u[18]=Ce,0!==c&&(u[19]=c,n.length++),n};function b(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,a=0;a>>26)|0)>>>26,s&=67108863}n.words[a]=o,r=s,s=i}return 0!==r?n.words[a]=r:n.length--,n._strip()}function g(e,t,n){return b(e,t,n)}function v(e,t){this.x=e,this.y=t}Math.imul||(y=m),a.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?y(this,e,t):n<63?m(this,e,t):n<1024?b(this,e,t):g(this,e,t)},v.prototype.makeRBT=function(e){for(var t=new Array(e),n=a.prototype._countBits(e)-1,r=0;r>=1;return r},v.prototype.permute=function(e,t,n,r,i,a){for(var s=0;s>>=1)i++;return 1<>>=13,n[2*s+1]=8191&a,a>>>=13;for(s=2*t;s>=26,n+=a/67108864|0,n+=s>>>26,this.words[i]=67108863&s}return 0!==n&&(this.words[i]=n,this.length++),this.length=0===e?1:this.length,t?this.ineg():this},a.prototype.muln=function(e){return this.clone().imuln(e)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n>>i&1}return t}(e);if(0===t.length)return new a(1);for(var n=this,r=0;r=0);var t,n=e%26,i=(e-n)/26,a=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t>>26-n}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 a=e%26,s=Math.min((e-a)/26,this.length),o=67108863^67108863>>>a<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-a|f>>>a,l=f&o}return u&&0!==l&&(u.words[u.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},a.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},a.prototype.shln=function(e){return this.clone().ishln(e)},a.prototype.ushln=function(e){return this.clone().iushln(e)},a.prototype.shrn=function(e){return this.clone().ishrn(e)},a.prototype.ushrn=function(e){return this.clone().iushrn(e)},a.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,i=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,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},a.prototype.isubn=function(e){if(r("number"==typeof e),r(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+n]=67108863&a}for(;i>26,this.words[i+n]=67108863&a;if(0===o)return this._strip();for(r(-1===o),o=0,i=0;i>26,this.words[i]=67108863&a;return this.negative=1,this._strip()},a.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),i=e,s=0|i.words[i.length-1];0!=(n=26-this._countBits(s))&&(i=i.ushln(n),r.iushln(n),s=0|i.words[i.length-1]);var o,u=r.length-i.length;if("mod"!==t){(o=new a(null)).length=u+1,o.words=new Array(o.length);for(var c=0;c=0;f--){var d=67108864*(0|r.words[i.length+f])+(0|r.words[i.length+f-1]);for(d=Math.min(d/s|0,67108863),r._ishlnsubmul(i,d,f);0!==r.negative;)d--,r.negative=0,r._ishlnsubmul(i,1,f),r.isZero()||(r.negative^=1);o&&(o.words[f]=d)}return o&&o._strip(),r._strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:o||null,mod:r}},a.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===e.negative?(o=this.neg().divmod(e,t),"mod"!==t&&(i=o.div.neg()),"div"!==t&&(s=o.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:i,mod:s}):0===this.negative&&0!==e.negative?(o=this.divmod(e.neg(),t),"mod"!==t&&(i=o.div.neg()),{div:i,mod:o.mod}):0!==(this.negative&e.negative)?(o=this.neg().divmod(e.neg(),t),"div"!==t&&(s=o.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:o.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new a(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new a(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new a(this.modrn(e.words[0]))}:this._wordDiv(e,t);var i,s,o},a.prototype.div=function(e){return this.divmod(e,"div",!1).div},a.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},a.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},a.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),a=n.cmp(r);return a<0||1===i&&0===a?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},a.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,i=0,a=this.length-1;a>=0;a--)i=(n*i+(0|this.words[a]))%e;return t?-i:i},a.prototype.modn=function(e){return this.modrn(e)},a.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,i=this.length-1;i>=0;i--){var a=(0|this.words[i])+67108864*n;this.words[i]=a/e|0,n=a%e}return this._strip(),t?this.ineg():this},a.prototype.divn=function(e){return this.clone().idivn(e)},a.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new a(1),s=new a(0),o=new a(0),u=new a(1),c=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++c;for(var l=n.clone(),f=t.clone();!t.isZero();){for(var d=0,h=1;0===(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,m=1;0===(n.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(o.isOdd()||u.isOdd())&&(o.iadd(l),u.isub(f)),o.iushrn(1),u.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(o),s.isub(u)):(n.isub(t),o.isub(i),u.isub(s))}return{a:o,b:u,gcd:n.iushln(c)}},a.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,s=new a(1),o=new a(0),u=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var c=0,l=1;0===(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;0===(n.words[0]&d)&&f<26;++f,d<<=1);if(f>0)for(n.iushrn(f);f-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(o)):(n.isub(t),o.isub(s))}return(i=0===t.cmpn(1)?s:o).cmpn(0)<0&&i.iadd(e),i},a.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var a=t;t=n,n=a}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},a.prototype.invm=function(e){return this.egcd(e).a.umod(e)},a.prototype.isEven=function(){return!(1&this.words[0])},a.prototype.isOdd=function(){return!(1&~this.words[0])},a.prototype.andln=function(e){return this.words[0]&e},a.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<>>26,o&=67108863,this.words[s]=o}return 0!==a&&(this.words[s]=a,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:ie.length)return 1;if(this.length=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){ri&&(t=1);break}}return t},a.prototype.gtn=function(e){return 1===this.cmpn(e)},a.prototype.gt=function(e){return 1===this.cmp(e)},a.prototype.gten=function(e){return this.cmpn(e)>=0},a.prototype.gte=function(e){return this.cmp(e)>=0},a.prototype.ltn=function(e){return-1===this.cmpn(e)},a.prototype.lt=function(e){return-1===this.cmp(e)},a.prototype.lten=function(e){return this.cmpn(e)<=0},a.prototype.lte=function(e){return this.cmp(e)<=0},a.prototype.eqn=function(e){return 0===this.cmpn(e)},a.prototype.eq=function(e){return 0===this.cmp(e)},a.red=function(e){return new T(e)},a.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},a.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(e){return this.red=e,this},a.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},a.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},a.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},a.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},a.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},a.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},a.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},a.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},a.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var w={k256:null,p224:null,p192:null,p25519:null};function _(e,t){this.name=e,this.p=new a(t,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function S(){_.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function E(){_.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function k(){_.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function x(){_.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function T(e){if("string"==typeof e){var t=a._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function M(e){T.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(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 a(null);return e.words=new Array(Math.ceil(this.n/13)),e},_.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},_.prototype.split=function(e,t){e.iushrn(this.n,0,t)},_.prototype.imulK=function(e){return e.imul(this.k)},i(S,_),S.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i>>22,a=s}a>>>=22,e.words[i-10]=a,0===a&&e.length>10?e.length-=10:e.length-=9},S.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},a._prime=function(e){if(w[e])return w[e];var t;if("k256"===e)t=new S;else if("p224"===e)t=new E;else if("p192"===e)t=new k;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new x}return w[e]=t,t},T.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},T.prototype._verify2=function(e,t){r(0===(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},T.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(l(e,e.umod(this.m)._forceRed(this)),e)},T.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},T.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},T.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},T.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},T.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},T.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},T.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},T.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},T.prototype.isqr=function(e){return this.imul(e,e.clone())},T.prototype.sqr=function(e){return this.mul(e,e)},T.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new a(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var o=new a(1).toRed(this),u=o.redNeg(),c=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new a(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(o);){for(var m=h,y=0;0!==m.cmp(o);y++)m=m.redSqr();r(y=0;r--){for(var c=t.words[r],l=u-1;l>=0;l--){var f=c>>l&1;i!==n[0]&&(i=this.sqr(i)),0!==f||0!==s?(s<<=1,s|=f,(4===++o||0===r&&0===l)&&(i=this.mul(i,n[s]),o=0,s=0)):o=0}u=26}return i},T.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},T.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new M(e)},i(M,T),M.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},M.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},M.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},M.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new a(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).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)},M.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=n.nmd(e),this)},74839(e,t,n){var r=n(81979),i=n(72258).Buffer,a=n(81475),s=n(33213),o=n(88881),u=n(71822),c=n(71657);function l(e,t,n,s){a.call(this);var u=i.alloc(4,0);this._cipher=new r.AES(t);var l=this._cipher.encryptBlock(u);this._ghash=new o(l),n=function(e,t,n){if(12===t.length)return e._finID=i.concat([t,i.from([0,0,0,1])]),i.concat([t,i.from([0,0,0,2])]);var r=new o(n),a=t.length,s=a%16;r.update(t),s&&(s=16-s,r.update(i.alloc(s,0))),r.update(i.alloc(8,0));var u=8*a,l=i.alloc(8);l.writeUIntBE(u,0,8),r.update(l),e._finID=r.state;var f=i.from(e._finID);return c(f),f}(this,n,l),this._prev=i.from(n),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=s,this._alen=0,this._len=0,this._mode=e,this._authTag=null,this._called=!1}s(l,a),l.prototype._update=function(e){if(!this._called&&this._alen){var t=16-this._alen%16;t<16&&(t=i.alloc(t,0),this._ghash.update(t))}this._called=!0;var n=this._mode.encrypt(this,e);return this._decrypt?this._ghash.update(e):this._ghash.update(n),this._len+=e.length,n},l.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var e=u(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(e,t){var n=0;e.length!==t.length&&n++;for(var r=Math.min(e.length,t.length),i=0;ic,Ie:()=>i,KC:()=>h,L8:()=>s,Si:()=>u,TF:()=>f,TS:()=>y,Tj:()=>p,Ts:()=>a,WQ:()=>l,iv:()=>d,qI:()=>m,zy:()=>o});var r=n(44815);r.oC,r.fi;const i=r.Ie,a=r.Ts,s=r.L8,o=r.zy,u=(r.zN,r.Si),c=(r.HS,r.zu,r.Ej),l=(r.jT,r.bV,r.Tk,r.WQ),f=r.TF,d=r.iv,h=(r.E$,r.KC),p=(r.L$,r.Tj),m=r.qI,y=(r.jJ,r.TS);r.pb,r.jB},75209(e,t,n){"use strict";n.d(t,{$P:()=>u,My:()=>c,cK:()=>l,i3:()=>d,nj:()=>o});var r=n(20518),i=n(92155),a=n(58038);const s=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function o(e,t={}){return"number"==typeof e||"bigint"==typeof e?l(e,t):"string"==typeof e?d(e,t):"boolean"==typeof e?u(e,t):c(e,t)}function u(e,t={}){const n=`0x${Number(e)}`;return"number"==typeof t.size?((0,a.Sl)(n,{size:t.size}),(0,i.eV)(n,{size:t.size})):n}function c(e,t={}){let n="";for(let t=0;to||so,nA:()=>s,rv:()=>a});var r=n(59688),i=n(89921);r.PX,i.R8K,i.jo7,i.owM,i.VwM,i.PDv,i.g1R,i.igQ,i.VbV,i.Wc6,r.Ie,r.fJ,r.F_,r.G,r._7,r.il,r.Aj,r.uH;const a=r.rv,s=(r.VY,r.Ep,r.yl,r.I2,r.Ej,r.Im,r.N6,r.Jq,r.fT,r.t9,r.e9,r.RU,r.ml,r.od,r.vE,r.Ki,r.Co,r.FQ,r.AW,r.Q6,r.el,r.Rw,r.as,r.Tj,r.qI,r.hg,r.Bq,r.gR,i.ReC,i.R_7,r.I6,r.pb,r.YW,r.TS,r.og,i.s2,i.OTT,i.nAV),o=(i.xt1,i.kJg,i.QRo,i.AlI,i.MrQ,i.nv8,i.xUJ,i.Uis,i.sAm,i.THF,i.p2e,r.j9);r.Yu,i.RkE},75672(e,t,n){"use strict";n.d(t,{A:()=>a,B:()=>i});var r=n(70121);function i(e,{includeName:t=!1}={}){if("function"!==e.type&&"event"!==e.type&&"error"!==e.type)throw new r.d_(e.type);return`${e.name}(${a(e.inputs,{includeName:t})})`}function a(e,{includeName:t=!1}={}){return e?e.map(e=>function(e,{includeName:t}){return e.type.startsWith("tuple")?`(${a(e.components,{includeName:t})})${e.type.slice(5)}`:e.type+(t&&e.name?` ${e.name}`:"")}(e,{includeName:t})).join(t?", ":","):""}},75749(e,t,n){"use strict";var r=n(30512);e.exports=function(e){return!!r(e)}},75879(e,t,n){"use strict";n.d(t,{iY:()=>u});var r=n(70121),i=n(84015),a=n(462),s=n(18056),o=n(16720);function u(e){const{abi:t,args:n=[],name:a}=e,u=(0,i.q)(a,{strict:!1}),f=t.filter(e=>u?"function"===e.type?(0,o.V)(e)===a:"event"===e.type&&(0,s.h)(e)===a:"name"in e&&e.name===a);if(0===f.length)return;if(1===f.length)return f[0];let d;for(const e of f)if("inputs"in e)if(n&&0!==n.length){if(e.inputs&&0!==e.inputs.length&&e.inputs.length===n.length&&n.every((t,n)=>{const r="inputs"in e&&e.inputs[n];return!!r&&c(t,r)})){if(d&&"inputs"in d&&d.inputs){const t=l(e.inputs,d.inputs,n);if(t)throw new r.nM({abiItem:e,type:t[0]},{abiItem:d,type:t[1]})}d=e}}else if(!e.inputs||0===e.inputs.length)return e;return d||f[0]}function c(e,t){const n=typeof e,r=t.type;switch(r){case"address":return(0,a.P)(e,{strict:!1});case"bool":return"boolean"===n;case"function":case"string":return"string"===n;default:return"tuple"===r&&"components"in t?Object.values(t.components).every((t,r)=>"object"===n&&c(Object.values(e)[r],t)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(r)?"number"===n||"bigint"===n:/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(r)?"string"===n||e instanceof Uint8Array:!!/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(r)&&Array.isArray(e)&&e.every(e=>c(e,{...t,type:r.replace(/(\[[0-9]{0,}\])$/,"")}))}}function l(e,t,n){for(const r in e){const i=e[r],s=t[r];if("tuple"===i.type&&"tuple"===s.type&&"components"in i&&"components"in s)return l(i.components,s.components,n[r]);const o=[i.type,s.type];if((()=>!(!o.includes("address")||!o.includes("bytes20"))||(o.includes("address")&&o.includes("string")||!(!o.includes("address")||!o.includes("bytes")))&&(0,a.P)(n[r],{strict:!1}))())return o}}},76035(e,t,n){"use strict";var r=n(24763),i=n(8776),a=n(35951),s=n(72258).Buffer,o=n(68379),u=n(55116),c=n(98839),l=s.alloc(128),f={__proto__:null,md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,"sha512-256":32,ripemd160:20,rmd160:20},d={__proto__:null,"sha-1":"sha1","sha-224":"sha224","sha-256":"sha256","sha-384":"sha384","sha-512":"sha512","ripemd-160":"ripemd160"};function h(e){return(new i).update(e).digest()}function p(e,t,n){var i=function(e){return"rmd160"===e||"ripemd160"===e?h:"md5"===e?r:function(t){return a(e).update(t).digest()}}(e),o="sha512"===e||"sha384"===e?128:64;t.length>o?t=i(t):t.lengthu});var r=n(50309),i=n(88924),a=n(66893),s=n(26015),o=n(45011);async function u(e,t){const{abi:n,address:u,args:c,functionName:l,...f}=t,d=(0,i.p)({abi:n,args:c,functionName:l});try{const{data:t}=await(0,s.T)(e,o.T,"call")({...f,data:d,to:u});return(0,r.e)({abi:n,args:c,functionName:l,data:t||"0x"})}catch(e){throw(0,a.j)(e,{abi:n,address:u,args:c,docsPath:"/docs/contract/readContract",functionName:l})}}},76221(e){"use strict";e.exports=Math.round},76329(e,t,n){"use strict";n.d(t,{Lj:()=>o,WB:()=>c,uL:()=>u});var r=n(58038),i=n(31963),a=n(63183),s=n(47457);const o={"0x0":"reverted","0x1":"success"};function u(e,t){const n={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map(e=>(0,a.e)(e)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?(0,r.ME)(e.transactionIndex):null,status:e.status?o[e.status]:null,type:e.type?s.b4[e.type]||e.type:null};return e.blobGasPrice&&(n.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(n.blobGasUsed=BigInt(e.blobGasUsed)),n}const c=(0,i.q)("transactionReceipt",u)},76524(e,t,n){"use strict";n.d(t,{i:()=>r}),n(82884).gd;const r=e=>e.replace(/[/\\^$*+?.()|[\]{}]/g,"\\$&")},76528(e,t,n){"use strict";var r=n(97103),i=n(79601),a=n(39482),s=r.rotl32,o=r.sum32,u=r.sum32_5,c=a.ft_1,l=i.BlockHash,f=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;l.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(d,l),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;rj||(e.current=L[j],L[j]=null,j--)}function z(e,t){j++,L[j]=e.current,e.current=t}var $,V,K=D(null),Y=D(null),q=D(null),H=D(null);function G(e,t){switch(z(q,t),z(Y,e),z(K,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?gf(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)e=vf(t=gf(t),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}U(K),z(K,e)}function W(){U(K),U(Y),U(q)}function X(e){null!==e.memoizedState&&z(H,e);var t=K.current,n=vf(t,e.type);t!==n&&(z(Y,e),z(K,n))}function J(e){Y.current===e&&(U(K),U(Y)),H.current===e&&(U(H),fd._currentValue=F)}function Z(e){if(void 0===$)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);$=t&&t[1]||"",V=-1)":-1--i||u[r]!==c[i]){var l="\n"+u[r].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}}while(1<=r&&0<=i);break}}}finally{Q=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?Z(n):""}function te(e,t){switch(e.tag){case 26:case 27:case 5:return Z(e.type);case 16:return Z("Lazy");case 13:return e.child!==t&&null!==t?Z("Suspense Fallback"):Z("Suspense");case 19:return Z("SuspenseList");case 0:case 15:return ee(e.type,!1);case 11:return ee(e.type.render,!1);case 1:return ee(e.type,!0);case 31:return Z("Activity");default:return""}}function ne(e){try{var t="",n=null;do{t+=te(e,n),n=e,e=e.return}while(e);return t}catch(e){return"\nError generating stack: "+e.message+"\n"+e.stack}}var re=Object.prototype.hasOwnProperty,ie=i.unstable_scheduleCallback,ae=i.unstable_cancelCallback,se=i.unstable_shouldYield,oe=i.unstable_requestPaint,ue=i.unstable_now,ce=i.unstable_getCurrentPriorityLevel,le=i.unstable_ImmediatePriority,fe=i.unstable_UserBlockingPriority,de=i.unstable_NormalPriority,he=i.unstable_LowPriority,pe=i.unstable_IdlePriority,me=i.log,ye=i.unstable_setDisableYieldValue,be=null,ge=null;function ve(e){if("function"==typeof me&&ye(e),ge&&"function"==typeof ge.setStrictMode)try{ge.setStrictMode(be,e)}catch(e){}}var we=Math.clz32?Math.clz32:function(e){return 0==(e>>>=0)?32:31-(_e(e)/Se|0)|0},_e=Math.log,Se=Math.LN2,Ee=256,ke=262144,xe=4194304;function Te(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return 261888&e;case 262144:case 524288:case 1048576:case 2097152:return 3932160&e;case 4194304:case 8388608:case 16777216:case 33554432:return 62914560&e;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Me(e,t,n){var r=e.pendingLanes;if(0===r)return 0;var i=0,a=e.suspendedLanes,s=e.pingedLanes;e=e.warmLanes;var o=134217727&r;return 0!==o?0!==(r=o&~a)?i=Te(r):0!==(s&=o)?i=Te(s):n||0!==(n=o&~e)&&(i=Te(n)):0!==(o=r&~a)?i=Te(o):0!==s?i=Te(s):n||0!==(n=r&~e)&&(i=Te(n)),0===i?0:0!==t&&t!==i&&0===(t&a)&&((a=i&-i)>=(n=t&-t)||32===a&&4194048&n)?t:i}function Ie(e,t){return 0===(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function Ae(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function Ne(){var e=xe;return!(62914560&(xe<<=1))&&(xe=4194304),e}function Pe(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Oe(e,t){e.pendingLanes|=t,268435456!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Re(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-we(t);e.entangledLanes|=t,e.entanglements[r]=1073741824|e.entanglements[r]|261930&n}function Ce(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-we(n),i=1<=Tn),An=String.fromCharCode(32),Nn=!1;function Pn(e,t){switch(e){case"keyup":return-1!==kn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function On(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Rn=!1,Cn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Bn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Cn[e.type]:"textarea"===t}function Fn(e,t,n,r){Bt?Ft?Ft.push(r):Ft=[r]:Bt=r,0<(t=rf(t,"onChange")).length&&(n=new nn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Ln=null,jn=null;function Dn(e){Wl(e,0)}function Un(e){if(pt(Ze(e)))return e}function zn(e,t){if("change"===e)return t}var $n=!1;if(zt){var Vn;if(zt){var Kn="oninput"in document;if(!Kn){var Yn=document.createElement("div");Yn.setAttribute("oninput","return;"),Kn="function"==typeof Yn.oninput}Vn=Kn}else Vn=!1;$n=Vn&&(!document.documentMode||9=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=er(r)}}function nr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?nr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function rr(e){for(var t=mt((e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window).document);t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;t=mt((e=t.contentWindow).document)}return t}function ir(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var ar=zt&&"documentMode"in document&&11>=document.documentMode,sr=null,or=null,ur=null,cr=!1;function lr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;cr||null==sr||sr!==mt(r)||(r="selectionStart"in(r=sr)&&ir(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},ur&&Qn(ur,r)||(ur=r,0<(r=rf(or,"onSelect")).length&&(t=new nn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=sr)))}function fr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var dr={animationend:fr("Animation","AnimationEnd"),animationiteration:fr("Animation","AnimationIteration"),animationstart:fr("Animation","AnimationStart"),transitionrun:fr("Transition","TransitionRun"),transitionstart:fr("Transition","TransitionStart"),transitioncancel:fr("Transition","TransitionCancel"),transitionend:fr("Transition","TransitionEnd")},hr={},pr={};function mr(e){if(hr[e])return hr[e];if(!dr[e])return e;var t,n=dr[e];for(t in n)if(n.hasOwnProperty(t)&&t in pr)return hr[e]=n[t];return e}zt&&(pr=document.createElement("div").style,"AnimationEvent"in window||(delete dr.animationend.animation,delete dr.animationiteration.animation,delete dr.animationstart.animation),"TransitionEvent"in window||delete dr.transitionend.transition);var yr=mr("animationend"),br=mr("animationiteration"),gr=mr("animationstart"),vr=mr("transitionrun"),wr=mr("transitionstart"),_r=mr("transitioncancel"),Sr=mr("transitionend"),Er=new Map,kr="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function xr(e,t){Er.set(e,t),rt(t,[e])}kr.push("scrollEnd");var Tr="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof r&&"function"==typeof r.emit)return void r.emit("uncaughtException",e);console.error(e)},Mr=[],Ir=0,Ar=0;function Nr(){for(var e=Ir,t=Ar=Ir=0;t>=s,i-=s,ni=1<<32-we(t)+i|n<m?(y=f,f=null):y=f.sibling;var b=h(i,f,o[m],u);if(null===b){null===f&&(f=y);break}e&&f&&null===b.alternate&&t(i,f),s=a(b,s,m),null===l?c=b:l.sibling=b,l=b,f=y}if(m===o.length)return n(i,f),fi&&ii(i,m),c;if(null===f){for(;my?(b=m,m=null):b=m.sibling;var v=h(i,m,g.value,c);if(null===v){null===m&&(m=b);break}e&&m&&null===v.alternate&&t(i,m),s=a(v,s,y),null===f?l=v:f.sibling=v,f=v,m=b}if(g.done)return n(i,m),fi&&ii(i,y),l;if(null===m){for(;!g.done;y++,g=u.next())null!==(g=d(i,g.value,c))&&(s=a(g,s,y),null===f?l=g:f.sibling=g,f=g);return fi&&ii(i,y),l}for(m=r(m);!g.done;y++,g=u.next())null!==(g=p(m,i,y,g.value,c))&&(e&&null!==g.alternate&&m.delete(null===g.key?y:g.key),s=a(g,s,y),null===f?l=g:f.sibling=g,f=g);return e&&m.forEach(function(e){return t(i,e)}),fi&&ii(i,y),l}(u,c,l=v.call(l),f)}if("function"==typeof l.then)return g(u,c,ca(l),f);if(l.$$typeof===_)return g(u,c,Ri(u,l),f);fa(u,l)}return"string"==typeof l&&""!==l||"number"==typeof l||"bigint"==typeof l?(l=""+l,null!==c&&6===c.tag?(n(u,c.sibling),(f=i(c,l)).return=u,u=f):(n(u,c),(f=Kr(l,u.mode,f)).return=u,u=f),s(u)):n(u,c)}return function(e,t,n,r){try{ua=0;var i=g(e,t,n,r);return oa=null,i}catch(t){if(t===Ji||t===Qi)throw t;var a=jr(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var ha=da(!0),pa=da(!1),ma=!1;function ya(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function ba(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function ga(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function va(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,2&hc){var i=r.pending;return null===i?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=Br(e),Cr(e,null,n),t}return Pr(e,r,t,n),Br(e)}function wa(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,4194048&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,Ce(e,n)}}function _a(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var i=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var s={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};null===a?i=a=s:a=a.next=s,n=n.next}while(null!==n);null===a?i=a=t:a=a.next=t}else i=a=t;return n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Sa=!1;function Ea(){if(Sa&&null!==Ki)throw Ki}function ka(e,t,n,r){Sa=!1;var i=e.updateQueue;ma=!1;var a=i.firstBaseUpdate,s=i.lastBaseUpdate,o=i.shared.pending;if(null!==o){i.shared.pending=null;var u=o,c=u.next;u.next=null,null===s?a=c:s.next=c,s=u;var l=e.alternate;null!==l&&(o=(l=l.updateQueue).lastBaseUpdate)!==s&&(null===o?l.firstBaseUpdate=c:o.next=c,l.lastBaseUpdate=u)}if(null!==a){var f=i.baseState;for(s=0,l=c=u=null,o=a;;){var d=-536870913&o.lane,p=d!==o.lane;if(p?(yc&d)===d:(r&d)===d){0!==d&&d===Vi&&(Sa=!0),null!==l&&(l=l.next={lane:0,tag:o.tag,payload:o.payload,callback:null,next:null});e:{var m=e,y=o;d=t;var b=n;switch(y.tag){case 1:if("function"==typeof(m=y.payload)){f=m.call(b,f,d);break e}f=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null==(d="function"==typeof(m=y.payload)?m.call(b,f,d):m))break e;f=h({},f,d);break e;case 2:ma=!0}}null!==(d=o.callback)&&(e.flags|=64,p&&(e.flags|=8192),null===(p=i.callbacks)?i.callbacks=[d]:p.push(d))}else p={lane:d,tag:o.tag,payload:o.payload,callback:o.callback,next:null},null===l?(c=l=p,u=f):l=l.next=p,s|=d;if(null===(o=o.next)){if(null===(o=i.shared.pending))break;o=(p=o).next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}null===l&&(u=f),i.baseState=u,i.firstBaseUpdate=c,i.lastBaseUpdate=l,null===a&&(i.shared.lanes=0),kc|=s,e.lanes=s,e.memoizedState=f}}function xa(e,t){if("function"!=typeof e)throw Error(o(191,e));e.call(t)}function Ta(e,t){var n=e.callbacks;if(null!==n)for(e.callbacks=null,e=0;ea?a:8;var s,o,u,c=C.T,l={};C.T=l,lo(e,!1,t,n);try{var f=i(),d=C.S;null!==d&&d(l,f),null!==f&&"object"==typeof f&&"function"==typeof f.then?co(e,t,(s=r,o=[],u={status:"pending",value:null,reason:null,then:function(e){o.push(e)}},f.then(function(){u.status="fulfilled",u.value=s;for(var e=0;e<\/script>",a=a.removeChild(a.firstChild);break;case"select":a="string"==typeof r.is?s.createElement("select",{is:r.is}):s.createElement("select"),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a="string"==typeof r.is?s.createElement(i,{is:r.is}):s.createElement(i)}}a[ze]=t,a[$e]=r;e:for(s=t.child;null!==s;){if(5===s.tag||6===s.tag)a.appendChild(s.stateNode);else if(4!==s.tag&&27!==s.tag&&null!==s.child){s.child.return=s,s=s.child;continue}if(s===t)break e;for(;null===s.sibling;){if(null===s.return||s.return===t)break e;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=a;e:switch(hf(a,i,r),i){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}r&&ou(t)}}return du(t),uu(t,t.type,null===e||e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&ou(t);else{if("string"!=typeof r&&null===t.stateNode)throw Error(o(166));if(e=q.current,gi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(i=ci))switch(i.tag){case 27:case 5:r=i.memoizedProps}e[ze]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||lf(e.nodeValue,n)))||mi(t,!0)}else(e=bf(e).createTextNode(r))[ze]=t,t.stateNode=e}return du(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=gi(t),null!==n){if(null===e){if(!r)throw Error(o(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(o(557));e[ze]=t}else vi(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;du(t),e=!1}else n=wi(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return 256&t.flags?(ja(t),t):(ja(t),null);if(128&t.flags)throw Error(o(558))}return du(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(i=gi(t),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(o(318));if(!(i=null!==(i=t.memoizedState)?i.dehydrated:null))throw Error(o(317));i[ze]=t}else vi(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;du(t),i=!1}else i=wi(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return 256&t.flags?(ja(t),t):(ja(t),null)}return ja(t),128&t.flags?(t.lanes=n,t):(n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(i=null,null!==(r=t.child).alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(i=r.alternate.memoizedState.cachePool.pool),a=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(a=r.memoizedState.cachePool.pool),a!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),lu(t,t.updateQueue),du(t),null);case 4:return W(),null===e&&Ql(t.stateNode.containerInfo),du(t),null;case 10:return Ti(t.type),du(t),null;case 19:if(U(Da),null===(r=t.memoizedState))return du(t),null;if(i=!!(128&t.flags),null===(a=r.rendering))if(i)fu(r,!1);else{if(0!==Ec||null!==e&&128&e.flags)for(e=t.child;null!==e;){if(null!==(a=Ua(e))){for(t.flags|=128,fu(r,!1),e=a.updateQueue,t.updateQueue=e,lu(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)zr(n,e),n=n.sibling;return z(Da,1&Da.current|2),fi&&ii(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&ue()>Cc&&(t.flags|=128,i=!0,fu(r,!1),t.lanes=4194304)}else{if(!i)if(null!==(e=Ua(a))){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,lu(t,e),fu(r,!0),null===r.tail&&"hidden"===r.tailMode&&!a.alternate&&!fi)return du(t),null}else 2*ue()-r.renderingStartTime>Cc&&536870912!==n&&(t.flags|=128,i=!0,fu(r,!1),t.lanes=4194304);r.isBackwards?(a.sibling=t.child,t.child=a):(null!==(e=r.last)?e.sibling=a:t.child=a,r.last=a)}return null!==r.tail?(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=ue(),e.sibling=null,n=Da.current,z(Da,i?1&n|2:1&n),fi&&ii(t,r.treeForkCount),e):(du(t),null);case 22:case 23:return ja(t),Pa(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?!!(536870912&n)&&!(128&t.flags)&&(du(t),6&t.subtreeFlags&&(t.flags|=8192)):du(t),null!==(n=t.updateQueue)&&lu(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&U(Hi),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Ti(ji),du(t),null;case 25:case 30:return null}throw Error(o(156,t.tag))}function pu(e,t){switch(oi(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return Ti(ji),W(),65536&(e=t.flags)&&!(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return J(t),null;case 31:if(null!==t.memoizedState){if(ja(t),null===t.alternate)throw Error(o(340));vi()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(ja(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(o(340));vi()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return U(Da),null;case 4:return W(),null;case 10:return Ti(t.type),null;case 22:case 23:return ja(t),Pa(),null!==e&&U(Hi),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return Ti(ji),null;default:return null}}function mu(e,t){switch(oi(t),t.tag){case 3:Ti(ji),W();break;case 26:case 27:case 5:J(t);break;case 4:W();break;case 31:null!==t.memoizedState&&ja(t);break;case 13:ja(t);break;case 19:U(Da);break;case 10:Ti(t.type);break;case 22:case 23:ja(t),Pa(),null!==e&&U(Hi);break;case 24:Ti(ji)}}function yu(e,t){try{var n=t.updateQueue,r=null!==n?n.lastEffect:null;if(null!==r){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,s=n.inst;r=a(),s.destroy=r}n=n.next}while(n!==i)}}catch(e){El(t,t.return,e)}}function bu(e,t,n){try{var r=t.updateQueue,i=null!==r?r.lastEffect:null;if(null!==i){var a=i.next;r=a;do{if((r.tag&e)===e){var s=r.inst,o=s.destroy;if(void 0!==o){s.destroy=void 0,i=t;var u=n,c=o;try{c()}catch(e){El(i,u,e)}}}r=r.next}while(r!==a)}}catch(e){El(t,t.return,e)}}function gu(e){var t=e.updateQueue;if(null!==t){var n=e.stateNode;try{Ta(t,n)}catch(t){El(e,e.return,t)}}}function vu(e,t,n){n.props=Eo(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){El(e,t,n)}}function wu(e,t){try{var n=e.ref;if(null!==n){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;default:r=e.stateNode}"function"==typeof n?e.refCleanup=n(r):n.current=r}}catch(n){El(e,t,n)}}function _u(e,t){var n=e.ref,r=e.refCleanup;if(null!==n)if("function"==typeof r)try{r()}catch(n){El(e,t,n)}finally{e.refCleanup=null,null!=(e=e.alternate)&&(e.refCleanup=null)}else if("function"==typeof n)try{n(null)}catch(n){El(e,t,n)}else n.current=null}function Su(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&r.focus();break e;case"img":n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){El(e,e.return,t)}}function Eu(e,t,n){try{var r=e.stateNode;!function(e,t,n,r){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var i=null,a=null,s=null,u=null,c=null,l=null,f=null;for(p in n){var d=n[p];if(n.hasOwnProperty(p)&&null!=d)switch(p){case"checked":case"value":break;case"defaultValue":c=d;default:r.hasOwnProperty(p)||ff(e,t,p,null,r,d)}}for(var h in r){var p=r[h];if(d=n[h],r.hasOwnProperty(h)&&(null!=p||null!=d))switch(h){case"type":a=p;break;case"name":i=p;break;case"checked":l=p;break;case"defaultChecked":f=p;break;case"value":s=p;break;case"defaultValue":u=p;break;case"children":case"dangerouslySetInnerHTML":if(null!=p)throw Error(o(137,t));break;default:p!==d&&ff(e,t,h,p,r,d)}}return void gt(e,s,u,c,l,f,a,i);case"select":for(a in p=s=u=h=null,n)if(c=n[a],n.hasOwnProperty(a)&&null!=c)switch(a){case"value":break;case"multiple":p=c;default:r.hasOwnProperty(a)||ff(e,t,a,null,r,c)}for(i in r)if(a=r[i],c=n[i],r.hasOwnProperty(i)&&(null!=a||null!=c))switch(i){case"value":h=a;break;case"defaultValue":u=a;break;case"multiple":s=a;default:a!==c&&ff(e,t,i,a,r,c)}return t=u,n=s,r=p,void(null!=h?_t(e,!!n,h,!1):!!r!=!!n&&(null!=t?_t(e,!!n,t,!0):_t(e,!!n,n?[]:"",!1)));case"textarea":for(u in p=h=null,n)if(i=n[u],n.hasOwnProperty(u)&&null!=i&&!r.hasOwnProperty(u))switch(u){case"value":case"children":break;default:ff(e,t,u,null,r,i)}for(s in r)if(i=r[s],a=n[s],r.hasOwnProperty(s)&&(null!=i||null!=a))switch(s){case"value":h=i;break;case"defaultValue":p=i;break;case"children":break;case"dangerouslySetInnerHTML":if(null!=i)throw Error(o(91));break;default:i!==a&&ff(e,t,s,i,r,a)}return void St(e,h,p);case"option":for(var m in n)h=n[m],n.hasOwnProperty(m)&&null!=h&&!r.hasOwnProperty(m)&&("selected"===m?e.selected=!1:ff(e,t,m,null,r,h));for(c in r)h=r[c],p=n[c],!r.hasOwnProperty(c)||h===p||null==h&&null==p||("selected"===c?e.selected=h&&"function"!=typeof h&&"symbol"!=typeof h:ff(e,t,c,h,r,p));return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var y in n)h=n[y],n.hasOwnProperty(y)&&null!=h&&!r.hasOwnProperty(y)&&ff(e,t,y,null,r,h);for(l in r)if(h=r[l],p=n[l],r.hasOwnProperty(l)&&h!==p&&(null!=h||null!=p))switch(l){case"children":case"dangerouslySetInnerHTML":if(null!=h)throw Error(o(137,t));break;default:ff(e,t,l,h,r,p)}return;default:if(It(t)){for(var b in n)h=n[b],n.hasOwnProperty(b)&&void 0!==h&&!r.hasOwnProperty(b)&&df(e,t,b,void 0,r,h);for(f in r)h=r[f],p=n[f],!r.hasOwnProperty(f)||h===p||void 0===h&&void 0===p||df(e,t,f,h,r,p);return}}for(var g in n)h=n[g],n.hasOwnProperty(g)&&null!=h&&!r.hasOwnProperty(g)&&ff(e,t,g,null,r,h);for(d in r)h=r[d],p=n[d],!r.hasOwnProperty(d)||h===p||null==h&&null==p||ff(e,t,d,h,r,p)}(r,e.type,n,t),r[$e]=t}catch(t){El(e,e.return,t)}}function ku(e){return 5===e.tag||3===e.tag||26===e.tag||27===e.tag&&Mf(e.type)||4===e.tag}function xu(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||ku(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(27===e.tag&&Mf(e.type))continue e;if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function Tu(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?(9===n.nodeType?n.body:"HTML"===n.nodeName?n.ownerDocument.body:n).insertBefore(e,t):((t=9===n.nodeType?n.body:"HTML"===n.nodeName?n.ownerDocument.body:n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Ot));else if(4!==r&&(27===r&&Mf(e.type)&&(n=e.stateNode,t=null),null!==(e=e.child)))for(Tu(e,t,n),e=e.sibling;null!==e;)Tu(e,t,n),e=e.sibling}function Mu(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&(27===r&&Mf(e.type)&&(n=e.stateNode),null!==(e=e.child)))for(Mu(e,t,n),e=e.sibling;null!==e;)Mu(e,t,n),e=e.sibling}function Iu(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);hf(t,r,n),t[ze]=e,t[$e]=n}catch(t){El(e,e.return,t)}}var Au=!1,Nu=!1,Pu=!1,Ou="function"==typeof WeakSet?WeakSet:Set,Ru=null;function Cu(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:Gu(e,n),4&r&&yu(5,n);break;case 1:if(Gu(e,n),4&r)if(e=n.stateNode,null===t)try{e.componentDidMount()}catch(e){El(n,n.return,e)}else{var i=Eo(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){El(n,n.return,e)}}64&r&&gu(n),512&r&&wu(n,n.return);break;case 3:if(Gu(e,n),64&r&&null!==(e=n.updateQueue)){if(t=null,null!==n.child)switch(n.child.tag){case 27:case 5:case 1:t=n.child.stateNode}try{Ta(e,t)}catch(e){El(n,n.return,e)}}break;case 27:null===t&&4&r&&Iu(n);case 26:case 5:Gu(e,n),null===t&&4&r&&Su(n),512&r&&wu(n,n.return);break;case 12:Gu(e,n);break;case 31:Gu(e,n),4&r&&Uu(e,n);break;case 13:Gu(e,n),4&r&&zu(e,n),64&r&&null!==(e=n.memoizedState)&&null!==(e=e.dehydrated)&&function(e,t){var n=e.ownerDocument;if("$~"===e.data)e._reactRetry=t;else if("$?"!==e.data||"loading"!==n.readyState)t();else{var r=function(){t(),n.removeEventListener("DOMContentLoaded",r)};n.addEventListener("DOMContentLoaded",r),e._reactRetry=r}}(e,n=Ml.bind(null,n));break;case 22:if(!(r=null!==n.memoizedState||Au)){t=null!==t&&null!==t.memoizedState||Nu,i=Au;var a=Nu;Au=r,(Nu=t)&&!a?Xu(e,n,!!(8772&n.subtreeFlags)):Gu(e,n),Au=i,Nu=a}break;case 30:break;default:Gu(e,n)}}function Bu(e){var t=e.alternate;null!==t&&(e.alternate=null,Bu(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&null!==(t=e.stateNode)&&We(t),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Fu=null,Lu=!1;function ju(e,t,n){for(n=n.child;null!==n;)Du(e,t,n),n=n.sibling}function Du(e,t,n){if(ge&&"function"==typeof ge.onCommitFiberUnmount)try{ge.onCommitFiberUnmount(be,n)}catch(e){}switch(n.tag){case 26:Nu||_u(n,t),ju(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode).parentNode.removeChild(n);break;case 27:Nu||_u(n,t);var r=Fu,i=Lu;Mf(n.type)&&(Fu=n.stateNode,Lu=!1),ju(e,t,n),Df(n.stateNode),Fu=r,Lu=i;break;case 5:Nu||_u(n,t);case 6:if(r=Fu,i=Lu,Fu=null,ju(e,t,n),Lu=i,null!==(Fu=r))if(Lu)try{(9===Fu.nodeType?Fu.body:"HTML"===Fu.nodeName?Fu.ownerDocument.body:Fu).removeChild(n.stateNode)}catch(e){El(n,t,e)}else try{Fu.removeChild(n.stateNode)}catch(e){El(n,t,e)}break;case 18:null!==Fu&&(Lu?(If(9===(e=Fu).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e,n.stateNode),Vd(e)):If(Fu,n.stateNode));break;case 4:r=Fu,i=Lu,Fu=n.stateNode.containerInfo,Lu=!0,ju(e,t,n),Fu=r,Lu=i;break;case 0:case 11:case 14:case 15:bu(2,n,t),Nu||bu(4,n,t),ju(e,t,n);break;case 1:Nu||(_u(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount&&vu(n,t,r)),ju(e,t,n);break;case 21:ju(e,t,n);break;case 22:Nu=(r=Nu)||null!==n.memoizedState,ju(e,t,n),Nu=r;break;default:ju(e,t,n)}}function Uu(e,t){if(null===t.memoizedState&&null!==(e=t.alternate)&&null!==(e=e.memoizedState)){e=e.dehydrated;try{Vd(e)}catch(e){El(t,t.return,e)}}}function zu(e,t){if(null===t.memoizedState&&null!==(e=t.alternate)&&null!==(e=e.memoizedState)&&null!==(e=e.dehydrated))try{Vd(e)}catch(e){El(t,t.return,e)}}function $u(e,t){var n=function(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return null===t&&(t=e.stateNode=new Ou),t;case 22:return null===(t=(e=e.stateNode)._retryCache)&&(t=e._retryCache=new Ou),t;default:throw Error(o(435,e.tag))}}(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=Il.bind(null,e,t);t.then(r,r)}})}function Vu(e,t){var n=t.deletions;if(null!==n)for(var r=0;r title"))),hf(a,r,n),a[ze]=e,et(a),r=a;break e;case"link":var s=rd("link","href",i).get(r+(n.href||""));if(s)for(var u=0;uo)break;var l=u.transferSize,f=u.initiatorType;l&&pf(f)&&(s+=l*((u=u.responseEnd)sd?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}(f,p)))return Uc=a,e.cancelPendingCommit=p(ml.bind(null,e,t,a,n,r,i,s,o,u,l,f,null,d,h)),void Zc(e,a,s,!c)}ml(e,t,a,n,r,i,s,o,u)}function Jc(e){for(var t=e;;){var n=t.tag;if((0===n||11===n||15===n)&&16384&t.flags&&null!==(n=t.updateQueue)&&null!==(n=n.stores))for(var r=0;ry&&(s=y,y=m,m=s);var b=tr(o,m),g=tr(o,y);if(b&&g&&(1!==h.rangeCount||h.anchorNode!==b.node||h.anchorOffset!==b.offset||h.focusNode!==g.node||h.focusOffset!==g.offset)){var v=f.createRange();v.setStart(b.node,b.offset),h.removeAllRanges(),m>y?(h.addRange(v),h.extend(g.node,g.offset)):(v.setEnd(g.node,g.offset),h.addRange(v))}}}}for(f=[],h=o;h=h.parentNode;)1===h.nodeType&&f.push({element:h,left:h.scrollLeft,top:h.scrollTop});for("function"==typeof o.focus&&o.focus(),o=0;on?32:n,C.T=null,n=$c,$c=null;var a=jc,s=Uc;if(Lc=0,Dc=jc=null,Uc=0,6&hc)throw Error(o(331));var u=hc;if(hc|=4,uc(a.current),ec(a,a.current,s,n),hc=u,Fl(0,!1),ge&&"function"==typeof ge.onPostCommitFiberRoot)try{ge.onPostCommitFiberRoot(be,a)}catch(e){}return!0}finally{B.p=i,C.T=r,vl(e,t)}}function Sl(e,t,n){t=Gr(n,t),null!==(e=va(e,t=Ao(e.stateNode,t,2),2))&&(Oe(e,2),Bl(e))}function El(e,t,n){if(3===e.tag)Sl(e,e,n);else for(;null!==t;){if(3===t.tag){Sl(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Fc||!Fc.has(r))){e=Gr(n,e),null!==(r=va(t,n=No(2),2))&&(Po(n,r,t,e),Oe(r,2),Bl(r));break}}t=t.return}}function kl(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new dc;var i=new Set;r.set(t,i)}else void 0===(i=r.get(t))&&(i=new Set,r.set(t,i));i.has(n)||(_c=!0,i.add(n),e=xl.bind(null,e,t,n),t.then(e,e))}function xl(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,pc===e&&(yc&n)===n&&(4===Ec||3===Ec&&(62914560&yc)===yc&&300>ue()-Oc?!(2&hc)&&tl(e,0):Tc|=n,Ic===yc&&(Ic=0)),Bl(e)}function Tl(e,t){0===t&&(t=Ne()),null!==(e=Rr(e,t))&&(Oe(e,t),Bl(e))}function Ml(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Tl(e,n)}function Il(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;null!==i&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(o(314))}null!==r&&r.delete(t),Tl(e,n)}var Al=null,Nl=null,Pl=!1,Ol=!1,Rl=!1,Cl=0;function Bl(e){e!==Nl&&null===e.next&&(null===Nl?Al=Nl=e:Nl=Nl.next=e),Ol=!0,Pl||(Pl=!0,xf(function(){6&hc?ie(le,Ll):jl()}))}function Fl(e,t){if(!Rl&&Ol){Rl=!0;do{for(var n=!1,r=Al;null!==r;){if(!t)if(0!==e){var i=r.pendingLanes;if(0===i)var a=0;else{var s=r.suspendedLanes,o=r.pingedLanes;a=(1<<31-we(42|e)+1)-1,a=201326741&(a&=i&~(s&~o))?201326741&a|1:a?2|a:0}0!==a&&(n=!0,zl(r,a))}else a=yc,!(3&(a=Me(r,r===pc?a:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||Ie(r,a)||(n=!0,zl(r,a));r=r.next}}while(n);Rl=!1}}function Ll(){jl()}function jl(){Ol=Pl=!1;var e,t=0;0!==Cl&&((e=window.event)&&"popstate"===e.type?e!==_f&&(_f=e,1):(_f=null,0))&&(t=Cl);for(var n=ue(),r=null,i=Al;null!==i;){var a=i.next,s=Dl(i,n);0===s?(i.next=null,null===r?Al=a:r.next=a,null===a&&(Nl=r)):(r=i,(0!==t||3&s)&&(Ol=!0)),i=a}0!==Lc&&5!==Lc||Fl(t,!1),0!==Cl&&(Cl=0)}function Dl(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=-62914561&e.pendingLanes;0 title"):null)}function ad(e){return!!("stylesheet"!==e.type||3&e.state.loading)}var sd=0;function od(){if(this.count--,0===this.count&&(0===this.imgCount||!this.waitingForImages))if(this.stylesheets)cd(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}var ud=null;function cd(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,ud=new Map,t.forEach(ld,e),ud=null,od.call(e))}function ld(e,t){if(!(4&t.state.loading)){var n=ud.get(e);if(n)var r=n.get(null);else{n=new Map,ud.set(e,n);for(var i=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;ac});var r=n(58038),i=n(26015),a=n(36093),s=n(46644),o=n(1060),u=n(44166);function c(e,{emitOnBegin:t=!1,emitMissed:n=!1,onBlockNumber:c,onError:l,poll:f,pollingInterval:d=e.pollingInterval}){let h;return(void 0!==f?f:"webSocket"!==e.transport.type&&"ipc"!==e.transport.type&&("fallback"!==e.transport.type||"webSocket"!==e.transport.transports[0].config.type&&"ipc"!==e.transport.transports[0].config.type))?(()=>{const r=(0,o.A)(["watchBlockNumber",e.uid,t,n,d]);return(0,a.lB)(r,{onBlockNumber:c,onError:l},r=>(0,s.w)(async()=>{try{const t=await(0,i.T)(e,u.G,"getBlockNumber")({cacheTime:0});if(void 0!==h){if(t===h)return;if(t-h>1&&n)for(let e=h+1n;eh)&&(r.onBlockNumber(t,h),h=t)}catch(e){r.onError?.(e)}},{emitOnBegin:t,interval:d}))})():(()=>{const i=(0,o.A)(["watchBlockNumber",e.uid,t,n]);return(0,a.lB)(i,{onBlockNumber:c,onError:l},t=>{let n=!0,i=()=>n=!1;return(async()=>{try{const a=(()=>{if("fallback"===e.transport.type){const t=e.transport.transports.find(e=>"webSocket"===e.config.type||"ipc"===e.config.type);return t?t.value:e.transport}return e.transport})(),{unsubscribe:s}=await a.subscribe({params:["newHeads"],onData(e){if(!n)return;const i=(0,r.uU)(e.result?.number);t.onBlockNumber(i,h),h=i},onError(e){t.onError?.(e)}});i=s,n||i()}catch(e){l?.(e)}})(),()=>i()})})()}},77411(e,t,n){"use strict";n.d(t,{l:()=>a});var r=n(2273),i=n(61355);function a(e,t){const n=(e.details||"").toLowerCase(),a=e instanceof r.C?e.walk(e=>e?.code===i.A7.code):e;return a instanceof r.C?new i.A7({cause:e,message:a.details}):i.A7.nodeMessage.test(n)?new i.A7({cause:e,message:e.details}):i.BG.nodeMessage.test(n)?new i.BG({cause:e,maxFeePerGas:t?.maxFeePerGas}):i.jj.nodeMessage.test(n)?new i.jj({cause:e,maxFeePerGas:t?.maxFeePerGas}):i.K0.nodeMessage.test(n)?new i.K0({cause:e,nonce:t?.nonce}):i.Oh.nodeMessage.test(n)?new i.Oh({cause:e,nonce:t?.nonce}):i.vW.nodeMessage.test(n)?new i.vW({cause:e,nonce:t?.nonce}):i.k5.nodeMessage.test(n)?new i.k5({cause:e}):i.lY.nodeMessage.test(n)?new i.lY({cause:e,gas:t?.gas}):i.Fo.nodeMessage.test(n)?new i.Fo({cause:e,gas:t?.gas}):i.uC.nodeMessage.test(n)?new i.uC({cause:e}):i.lN.nodeMessage.test(n)?new i.lN({cause:e,maxFeePerGas:t?.maxFeePerGas,maxPriorityFeePerGas:t?.maxPriorityFeePerGas}):new i.RM({cause:e})}},77561(e,t,n){"use strict";var r=n(11644),i=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=f;var a=Object.create(n(1833));a.inherits=n(33213);var s=n(90639),o=n(6179);a.inherits(f,s);for(var u=i(o.prototype),c=0;ca});var r=n(75209);const i={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"};function a(e,t){const n={};return void 0!==e.authorizationList&&(n.authorizationList=e.authorizationList.map(e=>({address:e.address,r:e.r?(0,r.cK)(BigInt(e.r)):e.r,s:e.s?(0,r.cK)(BigInt(e.s)):e.s,chainId:(0,r.cK)(e.chainId),nonce:(0,r.cK)(e.nonce),...void 0!==e.yParity?{yParity:(0,r.cK)(e.yParity)}:{},...void 0!==e.v&&void 0===e.yParity?{v:(0,r.cK)(e.v)}:{}}))),void 0!==e.accessList&&(n.accessList=e.accessList),void 0!==e.blobVersionedHashes&&(n.blobVersionedHashes=e.blobVersionedHashes),void 0!==e.blobs&&("string"!=typeof e.blobs[0]?n.blobs=e.blobs.map(e=>(0,r.My)(e)):n.blobs=e.blobs),void 0!==e.data&&(n.data=e.data),e.account&&(n.from=e.account.address),void 0!==e.from&&(n.from=e.from),void 0!==e.gas&&(n.gas=(0,r.cK)(e.gas)),void 0!==e.gasPrice&&(n.gasPrice=(0,r.cK)(e.gasPrice)),void 0!==e.maxFeePerBlobGas&&(n.maxFeePerBlobGas=(0,r.cK)(e.maxFeePerBlobGas)),void 0!==e.maxFeePerGas&&(n.maxFeePerGas=(0,r.cK)(e.maxFeePerGas)),void 0!==e.maxPriorityFeePerGas&&(n.maxPriorityFeePerGas=(0,r.cK)(e.maxPriorityFeePerGas)),void 0!==e.nonce&&(n.nonce=(0,r.cK)(e.nonce)),void 0!==e.to&&(n.to=e.to),void 0!==e.type&&(n.type=i[e.type]),void 0!==e.value&&(n.value=(0,r.cK)(e.value)),n}},77701(e,t,n){"use strict";n.d(t,{U:()=>a});var r=n(74014),i=n(31763);function a(e){const{batch:t,chain:n,ccipRead:a,key:s="base",name:o="Base Client",type:u="base"}=e,c=e.experimental_blockTag??("number"==typeof n?.experimental_preconfirmationTime?"pending":void 0),l=n?.blockTime??12e3,f=Math.min(Math.max(Math.floor(l/2),500),4e3),d=e.pollingInterval??f,h=e.cacheTime??d,p=e.account?(0,r.J)(e.account):void 0,{config:m,request:y,value:b}=e.transport({account:p,chain:n,pollingInterval:d}),g={account:p,batch:t,cacheTime:h,ccipRead:a,chain:n,key:s,name:o,pollingInterval:d,request:y,transport:{...m,...b},type:u,uid:(0,i.L)(),...c?{experimental_blockTag:c}:{}};return Object.assign(g,{extend:function e(t){return n=>{const r=n(t);for(const e in g)delete r[e];const i={...t,...r};return Object.assign(i,{extend:e(i)})}}(g)})}},77805(e,t,n){"use strict";var r=t;r.base=n(14248),r.short=n(8983),r.mont=n(96359),r.edwards=n(31757)},77901(e,t,n){"use strict";var r=n(33213),i=n(96811),a=n(72258).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],o=new Array(80);function u(){this.init(),this._w=o,i.call(this,64,56)}function c(e){return e<<5|e>>>27}function l(e){return e<<30|e>>>2}function f(e,t,n,r){return 0===e?t&n|~t&r:2===e?t&n|t&r|n&r:t^n^r}r(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(e){for(var t=this._w,n=0|this._a,r=0|this._b,i=0|this._c,a=0|this._d,o=0|this._e,u=0;u<16;++u)t[u]=e.readInt32BE(4*u);for(;u<80;++u)t[u]=t[u-3]^t[u-8]^t[u-14]^t[u-16];for(var d=0;d<80;++d){var h=~~(d/20),p=c(n)+f(h,r,i,a)+o+t[d]+s[h]|0;o=a,a=i,i=l(r),r=n,n=p}this._a=n+this._a|0,this._b=r+this._b|0,this._c=i+this._c|0,this._d=a+this._d|0,this._e=o+this._e|0},u.prototype._hash=function(){var e=a.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=u},77962(e,t,n){"use strict";n.d(t,{$N:()=>d,CB:()=>f,Do:()=>c,dK:()=>l,dv:()=>i,fA:()=>a,gb:()=>o,kg:()=>u,sN:()=>s});var r=n(35156);r.lm;const i=r.dv,a=r.fA,s=r.sN,o=r.gb,u=(r.$I,r.vk,r.mO,r.kg),c=(r.pM,r.Do),l=r.dK,f=(r.L8,r.CB),d=(r.zL,r.M1,r.$N)},77971(e,t,n){var r=n(72258).Buffer;function i(e,t,n){for(var r,i,s=-1,o=0;++s<8;)r=t&1<<7-s?128:0,o+=(128&(i=e._cipher.encryptBlock(e._prev)[0]^r))>>s%8,e._prev=a(e._prev,n?r:i);return o}function a(e,t){var n=e.length,i=-1,a=r.allocUnsafe(e.length);for(e=r.concat([e,r.from([t])]);++i>7;return a}t.encrypt=function(e,t,n){for(var a=t.length,s=r.allocUnsafe(a),o=-1;++op});var r=n(58074),i=n(85327),a=n(26015),s=n(36093),o=n(3320),u=n(50693),c=n(1060),l=n(13940),f=n(12129),d=n(9481),h=n(77156);async function p(e,t){const{checkReplacement:n=!0,confirmations:p=1,hash:m,onReplaced:y,retryCount:b=6,retryDelay:g=({count:e})=>200*(1<{T?.(),x?.(),N(new i.WA({hash:m}))},v):void 0;return x=(0,s.lB)(w,{onReplaced:y,resolve:A,reject:N},async t=>{if(k=await(0,a.T)(e,d.h,"getTransactionReceipt")({hash:m}).catch(()=>{}),k&&p<=1)return clearTimeout(P),t.resolve(k),void x?.();T=(0,a.T)(e,h.q,"watchBlockNumber")({emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:_,async onBlockNumber(s){const o=e=>{clearTimeout(P),T?.(),e(),x?.()};let c=s;if(!M)try{if(k){if(p>1&&(!k.blockNumber||c-k.blockNumber+1nt.resolve(k))}if(n&&!S&&(M=!0,await(0,u.b)(async()=>{S=await(0,a.T)(e,f.x,"getTransaction")({hash:m}),S.blockNumber&&(c=S.blockNumber)},{delay:g,retryCount:b}),M=!1),k=await(0,a.T)(e,d.h,"getTransactionReceipt")({hash:m}),p>1&&(!k.blockNumber||c-k.blockNumber+1nt.resolve(k))}catch(n){if(n instanceof i.Kz||n instanceof i.Kc){if(!S)return void(M=!1);try{E=S,M=!0;const n=await(0,u.b)(()=>(0,a.T)(e,l.g,"getBlock")({blockNumber:c,includeTransactions:!0}),{delay:g,retryCount:b,shouldRetry:({error:e})=>e instanceof r.l});M=!1;const i=n.transactions.find(({from:e,nonce:t})=>e===E.from&&t===E.nonce);if(!i)return;if(k=await(0,a.T)(e,d.h,"getTransactionReceipt")({hash:i.hash}),p>1&&(!k.blockNumber||c-k.blockNumber+1n{t.onReplaced?.({reason:s,replacedTransaction:E,transaction:i,transactionReceipt:k}),t.resolve(k)})}catch(e){o(()=>t.reject(e))}}else o(()=>t.reject(n))}}})}),I}},78451(e,t,n){"use strict";n.d(t,{R:()=>h});var r=n(70121),i=n(2273);class a extends i.C{constructor(e){super(`Filter type "${e}" is not supported.`,{name:"FilterTypeNotSupportedError"})}}var s=n(81127),o=n(35593),u=n(18056),c=n(28780),l=n(75672),f=n(75879);const d="/docs/contract/encodeEventTopics";function h(e){const{abi:t,eventName:n,args:i}=e;let a=t[0];if(n){const e=(0,f.iY)({abi:t,name:n});if(!e)throw new r.M_(n,{docsPath:d});a=e}if("event"!==a.type)throw new r.M_(void 0,{docsPath:d});const s=(0,l.B)(a),o=(0,u.h)(s);let c=[];if(i&&"inputs"in a){const e=a.inputs?.filter(e=>"indexed"in e&&e.indexed),t=Array.isArray(i)?i:Object.values(i).length>0?e?.map(e=>i[e.name])??[]:[];t.length>0&&(c=e?.map((e,n)=>Array.isArray(t[n])?t[n].map((r,i)=>p({param:e,value:t[n][i]})):void 0!==t[n]&&null!==t[n]?p({param:e,value:t[n]}):null)??[])}return[o,...c]}function p({param:e,value:t}){if("string"===e.type||"bytes"===e.type)return(0,o.S)((0,s.ZJ)(t));if("tuple"===e.type||e.type.match(/^(.*)\[(\d+)?\]$/))throw new a(e.type);return(0,c.h)([e],[t])}},78821(e,t,n){"use strict";var r=n(40371).Buffer,i=n(28929);function a(e,t,n){e.copy(t,n)}e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},e.prototype.concat=function(e){if(0===this.length)return r.alloc(0);for(var t=r.allocUnsafe(e>>>0),n=this.head,i=0;n;)a(n.data,t,i),i+=n.data.length,n=n.next;return t},e}(),i&&i.inspect&&i.inspect.custom&&(e.exports.prototype[i.inspect.custom]=function(){var e=i.inspect({length:this.length});return this.constructor.name+" "+e})},79050(e,t,n){var r=n(21379),i=n(85984),a=n(67779),s=n(36455),o=n(81207);function u(e,t,n){if(e=e.toLowerCase(),a[e])return i.createCipheriv(e,t,n);if(s[e])return new r({key:t,iv:n,mode:e});throw new TypeError("invalid suite type")}function c(e,t,n){if(e=e.toLowerCase(),a[e])return i.createDecipheriv(e,t,n);if(s[e])return new r({key:t,iv:n,mode:e,decrypt:!0});throw new TypeError("invalid suite type")}t.createCipher=t.Cipher=function(e,t){var n,r;if(e=e.toLowerCase(),a[e])n=a[e].key,r=a[e].iv;else{if(!s[e])throw new TypeError("invalid suite type");n=8*s[e].key,r=s[e].iv}var i=o(t,!1,n,r);return u(e,i.key,i.iv)},t.createCipheriv=t.Cipheriv=u,t.createDecipher=t.Decipher=function(e,t){var n,r;if(e=e.toLowerCase(),a[e])n=a[e].key,r=a[e].iv;else{if(!s[e])throw new TypeError("invalid suite type");n=8*s[e].key,r=s[e].iv}var i=o(t,!1,n,r);return c(e,i.key,i.iv)},t.createDecipheriv=t.Decipheriv=c,t.listCiphers=t.getCiphers=function(){return Object.keys(s).concat(i.getCiphers())}},79383(e,t,n){"use strict";n.d(t,{Am:()=>R,sF:()=>F});var r=n(28062),i=n(47726),a=n(84468),s=n(59329),o=n(91269),u=n(75169),c=n(28876),l=n(36708),f=n(66949),d=n(76524);const h="InvalidData",p="MissingData",m="SourceUnavailable",y="Unsupported",b=Symbol.for("effect/ConfigError"),g={_tag:"ConfigError",[b]:b},v=(e,t)=>{const n=Object.create(g);return n._op="And",n.left=e,n.right=t,Object.defineProperty(n,"toString",{enumerable:!1,value(){return`${this.left} and ${this.right}`}}),Object.defineProperty(n,"message",{enumerable:!1,get(){return this.toString()}}),n},w=(e,t)=>{const n=Object.create(g);return n._op="Or",n.left=e,n.right=t,Object.defineProperty(n,"toString",{enumerable:!1,value(){return`${this.left} or ${this.right}`}}),Object.defineProperty(n,"message",{enumerable:!1,get(){return this.toString()}}),n},_=(e,t,n={pathDelim:"."})=>{const i=Object.create(g);return i._op=h,i.path=e,i.message=t,Object.defineProperty(i,"toString",{enumerable:!1,value(){return`(Invalid data at ${(0,s.Fs)(this.path,r.fj(n.pathDelim))}: "${this.message}")`}}),i},S=(e,t,n={pathDelim:"."})=>{const i=Object.create(g);return i._op=p,i.path=e,i.message=t,Object.defineProperty(i,"toString",{enumerable:!1,value(){return`(Missing data at ${(0,s.Fs)(this.path,r.fj(n.pathDelim))}: "${this.message}")`}}),i},E=(e,t,n,i={pathDelim:"."})=>{const a=Object.create(g);return a._op=m,a.path=e,a.message=t,a.cause=n,Object.defineProperty(a,"toString",{enumerable:!1,value(){return`(Source unavailable at ${(0,s.Fs)(this.path,r.fj(i.pathDelim))}: "${this.message}")`}}),a},k=(e,t,n={pathDelim:"."})=>{const i=Object.create(g);return i._op=y,i.path=e,i.message=t,Object.defineProperty(i,"toString",{enumerable:!1,value(){return`(Unsupported operation at ${(0,s.Fs)(this.path,r.fj(n.pathDelim))}: "${this.message}")`}}),i},x=(0,s.XY)(2,(e,t)=>{switch(e._op){case"And":return v(x(e.left,t),x(e.right,t));case"Or":return w(x(e.left,t),x(e.right,t));case h:return _([...t,...e.path],e.message);case p:return S([...t,...e.path],e.message);case m:return E([...t,...e.path],e.message,e.cause);case y:return k([...t,...e.path],e.message)}});s.f4,s.ue,s.f4,s.f4;var T=n(84025);const M={_tag:"Empty"},I=(0,s.XY)(2,(e,t)=>{let n=T.of(t),i=e;for(;T.ae(n);){const e=n.head;switch(e._tag){case"Empty":n=n.tail;break;case"AndThen":n=T.qu(e.first,T.qu(e.second,n.tail));break;case"MapName":i=r.Tj(i,e.f),n=n.tail;break;case"Nested":i=r.Hs(i,e.name),n=n.tail;break;case"Unnested":if(!(0,s.Fs)(r.d5(i),l.gR(e.name)))return a.kb(S(i,`Expected ${e.name} to be in path in ConfigProvider#unnested`));i=r.Rx(i),n=n.tail}}return a.pG(i)});var A=n(89921),N=n(42649);const P=(e,t)=>[...e,...t],O=Symbol.for("effect/ConfigProvider"),R=i.Io("effect/ConfigProvider"),C=Symbol.for("effect/ConfigProviderFlat"),B=e=>({[O]:O,pipe(){return(0,f.tT)(this,arguments)},...e}),F=e=>{const{pathDelim:t,seqDelim:n}=Object.assign({},{pathDelim:"_",seqDelim:","},e),i=()=>void 0!==N&&"env"in N&&"object"==typeof N.env?N.env:{};return a=(e=>({[C]:C,patch:e.patch,load:(t,n,r=!0)=>e.load(t,n,r),enumerateChildren:e.enumerateChildren}))({load:(e,a,o=!0)=>{const u=(e=>(0,s.Fs)(e,r.fj(t)))(e),c=i(),f=u in c?l.zN(c[u]):l.dv();return(0,s.Fs)(f,A.xm_(()=>S(e,`Expected ${u} to exist in the process context`)),A.qIB(t=>D(t,e,a,n,o)))},enumerateChildren:e=>A.OH5(()=>{const n=i(),a=Object.keys(n).map(e=>e.toUpperCase().split(t)).filter(t=>{for(let n=0;nt.slice(e.length,e.length+1));return u.Ts(a)}),patch:M}),B({load:e=>A.qIB(L(a,r.Ie(),e,!1),t=>l.YW(r.d5(t),{onNone:()=>A.fJG(S(r.Ie(),`Expected a single value having structure: ${e}`)),onSome:A.PyW})),flattened:a});var a},L=(e,t,n,i)=>{const u=n;switch(u._tag){case"Constant":return A.PyW(r.of(u.value));case"Described":return A.DYE(()=>L(e,t,u.config,i));case"Fail":return A.fJG(S(t,u.message));case"Fallback":return(0,s.Fs)(A.DYE(()=>L(e,t,u.first,i)),A.h9N(n=>u.condition(n)?(0,s.Fs)(L(e,t,u.second,i),A.h9N(e=>A.fJG(w(n,e)))):A.fJG(n)));case"Lazy":return A.DYE(()=>L(e,t,u.config(),i));case"MapOrFail":return A.DYE(()=>(0,s.Fs)(L(e,t,u.original,i),A.qIB(A.CFK(e=>(0,s.Fs)(u.mapOrFail(e),A.xm_(x(((e,t)=>{let n=t;if("Nested"===n._tag){const t=e.slice();for(;"Nested"===n._tag;)t.push(n.name),n=n.config;return t}return e})(t,u.original))))))));case"Nested":return A.DYE(()=>L(e,P(t,r.of(u.name)),u.config,i));case"Primitive":return(0,s.Fs)(I(t,e.patch),A.qIB(t=>(0,s.Fs)(e.load(t,u,i),A.qIB(e=>{if(0===e.length){const e=(0,s.Fs)(r.HV(t),l.WL(()=>""));return A.fJG(S([],`Expected ${u.description} with name ${e}`))}return A.PyW(e)}))));case"Sequence":return(0,s.Fs)(I(t,e.patch),A.qIB(n=>(0,s.Fs)(e.enumerateChildren(n),A.qIB(z),A.qIB(n=>0===n.length?A.DYE(()=>A.TjK(L(e,t,u.config,!0),r.of)):(0,s.Fs)(A.CFK(n,n=>L(e,r.BC(t,`[${n}]`),u.config,!0)),A.TjK(e=>{const t=r.Bq(e);return 0===t.length?r.of(r.Ie()):r.of(t)}))))));case"HashMap":return A.DYE(()=>(0,s.Fs)(I(t,e.patch),A.qIB(t=>(0,s.Fs)(e.enumerateChildren(t),A.qIB(n=>(0,s.Fs)(n,A.CFK(n=>L(e,P(t,r.of(n)),u.valueConfig,i)),A.TjK(e=>0===e.length?r.of(o.Ie()):(0,s.Fs)(U(e),r.Tj(e=>o.Ts(r.yU(r.Ts(n),e)))))))))));case"ZipWith":return A.DYE(()=>(0,s.Fs)(L(e,t,u.left,i),A.gPK,A.qIB(n=>(0,s.Fs)(L(e,t,u.right,i),A.gPK,A.qIB(e=>{if(a.OC(n)&&a.OC(e))return A.fJG(v(n.left,e.left));if(a.OC(n)&&a.FG(e))return A.fJG(n.left);if(a.FG(n)&&a.OC(e))return A.fJG(e.left);if(a.FG(n)&&a.FG(e)){const i=(0,s.Fs)(t,r.fj(".")),o=j(t,i),[c,f]=((e,t,n,i)=>{const a=r.t8(n.length,t=>t>=i.length?l.dv():l.zN([e(t),t+1])),s=r.t8(i.length,e=>e>=n.length?l.dv():l.zN([t(e),e+1]));return[P(n,a),P(i,s)]})(o,o,(0,s.Fs)(n.right,r.Tj(a.pG)),(0,s.Fs)(e.right,r.Tj(a.pG)));return(0,s.Fs)(c,r.yU(f),A.CFK(([e,t])=>(0,s.Fs)(A.yU6(e,t),A.TjK(([e,t])=>u.zip(e,t)))))}throw new Error("BUG: ConfigProvider.fromFlatLoop - please report an issue at https://github.com/Effect-TS/effect/issues")})))))}},j=(e,t)=>n=>a.kb(S(e,`The element at index ${n} in a sequence at path "${t}" was missing`)),D=(e,t,n,i,a)=>a?(0,s.Fs)(((e,t)=>e.split(new RegExp(`\\s*${d.i(t)}\\s*`)))(e,i),A.CFK(e=>n.parse(e.trim())),A.xm_(x(t))):(0,s.Fs)(n.parse(e),A.UcN({onFailure:x(t),onSuccess:r.of})),U=e=>Object.keys(e[0]).map(t=>e.map(e=>e[t])),z=e=>(0,s.Fs)(A.CFK(e,V),A.UcN({onFailure:()=>r.Ie(),onSuccess:r.di(c.pH)}),A.gPK,A.TjK(a.h1)),$=/^(\[(\d+)\])$/,V=e=>{const t=e.match($);if(null!==t){const e=t[2];return(0,s.Fs)(void 0!==e&&e.length>0?l.zN(e):l.dv(),l.qI(K))}return l.dv()},K=e=>{const t=Number.parseInt(e);return Number.isNaN(t)?l.dv():l.zN(t)}},79553(e,t,n){"use strict";var r=n(95894),i=n(85889),a=i([r("%String.prototype.indexOf%")]);e.exports=function(e,t){var n=r(e,!!t);return"function"==typeof n&&a(e,".prototype.")>-1?i([n]):n}},79601(e,t,n){"use strict";var r=n(97103),i=n(45366);function a(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=a,a.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var i=0;i>>24&255,r[i++]=e>>>16&255,r[i++]=e>>>8&255,r[i++]=255&e}else for(r[i++]=255&e,r[i++]=e>>>8&255,r[i++]=e>>>16&255,r[i++]=e>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,a=8;au,iq:()=>a,uP:()=>o,zF:()=>s});var r=n(95775),i=n(2273);class a extends i.C{constructor({maxSize:e,size:t}){super("Blob size is too large.",{metaMessages:[`Max: ${e} bytes`,`Given: ${t} bytes`],name:"BlobSizeTooLargeError"})}}class s extends i.C{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class o extends i.C{constructor({hash:e,size:t}){super(`Versioned hash "${e}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${t}`],name:"InvalidVersionedHashSizeError"})}}class u extends i.C{constructor({hash:e,version:t}){super(`Versioned hash "${e}" version is invalid.`,{metaMessages:[`Expected: ${r.E}`,`Received: ${t}`],name:"InvalidVersionedHashVersionError"})}}},80960(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=new Uint32Array([0,1,0,32898,2147483648,32906,2147483648,2147516416,0,32907,0,2147483649,2147483648,2147516545,2147483648,32777,0,138,0,136,0,2147516425,0,2147483658,0,2147516555,2147483648,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,0,32778,2147483648,2147483658,2147483648,2147516545,2147483648,32896,0,2147483649,2147483648,2147516424]);t.default=n},81127(e,t,n){"use strict";n.d(t,{Af:()=>d,ZJ:()=>c,aT:()=>f});var r=n(2273),i=n(84015),a=n(92155),s=n(58038),o=n(75209);const u=new TextEncoder;function c(e,t={}){return"number"==typeof e||"bigint"==typeof e?function(e,t){return f((0,o.cK)(e,t))}(e,t):"boolean"==typeof e?function(e,t={}){const n=new Uint8Array(1);return n[0]=Number(e),"number"==typeof t.size?((0,s.Sl)(n,{size:t.size}),(0,a.eV)(n,{size:t.size})):n}(e,t):(0,i.q)(e)?f(e,t):d(e,t)}function l(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function f(e,t={}){let n=e;t.size&&((0,s.Sl)(n,{size:t.size}),n=(0,a.eV)(n,{dir:"right",size:t.size}));let i=n.slice(2);i.length%2&&(i=`0${i}`);const o=i.length/2,u=new Uint8Array(o);for(let e=0,t=0;e>>l,s[(c+1)%2]=u<>>l,(0,a.default)(s,0)(t,d),(0,a.default)(n,0)(s,0)}}},81207(e,t,n){var r=n(72258).Buffer,i=n(10457);e.exports=function(e,t,n,a){if(r.isBuffer(e)||(e=r.from(e,"binary")),t&&(r.isBuffer(t)||(t=r.from(t,"binary")),8!==t.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var s=n/8,o=r.alloc(s),u=r.alloc(a||0),c=r.alloc(0);s>0||a>0;){var l=new i;l.update(c),l.update(e),t&&l.update(t),c=l.digest();var f=0;if(s>0){var d=o.length-s;f=Math.min(s,c.length),c.copy(o,d,0,f),s-=f}if(f0){var h=u.length-a,p=Math.min(a,c.length-f);c.copy(u,h,f,f+p),a-=p}}return c.fill(0),{key:o,iv:u}}},81271(e,t,n){"use strict";var r=n(97103),i=n(45366);function a(e,t,n){if(!(this instanceof a))return new a(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(r.toArray(t,n))}e.exports=a,a.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),i(e.length<=this.blockSize);for(var t=e.length;t>>0},t.writeUInt32BE=function(e,t,n){e[0+n]=t>>>24,e[1+n]=t>>>16&255,e[2+n]=t>>>8&255,e[3+n]=255&t},t.ip=function(e,t,n,r){for(var i=0,a=0,s=6;s>=0;s-=2){for(var o=0;o<=24;o+=8)i<<=1,i|=t>>>o+s&1;for(o=0;o<=24;o+=8)i<<=1,i|=e>>>o+s&1}for(s=6;s>=0;s-=2){for(o=1;o<=25;o+=8)a<<=1,a|=t>>>o+s&1;for(o=1;o<=25;o+=8)a<<=1,a|=e>>>o+s&1}n[r+0]=i>>>0,n[r+1]=a>>>0},t.rip=function(e,t,n,r){for(var i=0,a=0,s=0;s<4;s++)for(var o=24;o>=0;o-=8)i<<=1,i|=t>>>o+s&1,i<<=1,i|=e>>>o+s&1;for(s=4;s<8;s++)for(o=24;o>=0;o-=8)a<<=1,a|=t>>>o+s&1,a<<=1,a|=e>>>o+s&1;n[r+0]=i>>>0,n[r+1]=a>>>0},t.pc1=function(e,t,n,r){for(var i=0,a=0,s=7;s>=5;s--){for(var o=0;o<=24;o+=8)i<<=1,i|=t>>o+s&1;for(o=0;o<=24;o+=8)i<<=1,i|=e>>o+s&1}for(o=0;o<=24;o+=8)i<<=1,i|=t>>o+s&1;for(s=1;s<=3;s++){for(o=0;o<=24;o+=8)a<<=1,a|=t>>o+s&1;for(o=0;o<=24;o+=8)a<<=1,a|=e>>o+s&1}for(o=0;o<=24;o+=8)a<<=1,a|=e>>o+s&1;n[r+0]=i>>>0,n[r+1]=a>>>0},t.r28shl=function(e,t){return e<>>28-t};var n=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];t.pc2=function(e,t,r,i){for(var a=0,s=0,o=n.length>>>1,u=0;u>>n[u]&1;for(u=o;u>>n[u]&1;r[i+0]=a>>>0,r[i+1]=s>>>0},t.expand=function(e,t,n){var r=0,i=0;r=(1&e)<<5|e>>>27;for(var a=23;a>=15;a-=4)r<<=6,r|=e>>>a&63;for(a=11;a>=3;a-=4)i|=e>>>a&63,i<<=6;i|=(31&e)<<1|e>>>31,t[n+0]=r>>>0,t[n+1]=i>>>0};var r=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];t.substitute=function(e,t){for(var n=0,i=0;i<4;i++)n<<=4,n|=r[64*i+(e>>>18-6*i&63)];for(i=0;i<4;i++)n<<=4,n|=r[256+64*i+(t>>>18-6*i&63)];return n>>>0};var i=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];t.permute=function(e){for(var t=0,n=0;n>>i[n]&1;return t>>>0},t.padSplit=function(e,t,n){for(var r=e.toString(2);r.lengthi,m:()=>r});const r="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",i="0x0000000000000000000000000000000000000000"},81699(e,t,n){var r=n(73730).Buffer,i=n(24554),a=n(23145);e.exports=function(e){return new o(e)};var s={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};function o(e){this.curveType=s[e],this.curveType||(this.curveType={name:e}),this.curve=new i.ec(this.curveType.name),this.keys=void 0}function u(e,t,n){Array.isArray(e)||(e=e.toArray());var i=new r(e);if(n&&i.length>>24]^l[p>>>16&255]^f[m>>>8&255]^d[255&y]^t[b++],s=c[p>>>24]^l[m>>>16&255]^f[y>>>8&255]^d[255&h]^t[b++],o=c[m>>>24]^l[y>>>16&255]^f[h>>>8&255]^d[255&p]^t[b++],u=c[y>>>24]^l[h>>>16&255]^f[p>>>8&255]^d[255&m]^t[b++],h=a,p=s,m=o,y=u;return a=(r[h>>>24]<<24|r[p>>>16&255]<<16|r[m>>>8&255]<<8|r[255&y])^t[b++],s=(r[p>>>24]<<24|r[m>>>16&255]<<16|r[y>>>8&255]<<8|r[255&h])^t[b++],o=(r[m>>>24]<<24|r[y>>>16&255]<<16|r[h>>>8&255]<<8|r[255&p])^t[b++],u=(r[y>>>24]<<24|r[h>>>16&255]<<16|r[p>>>8&255]<<8|r[255&m])^t[b++],[a>>>=0,s>>>=0,o>>>=0,u>>>=0]}var o=[0,1,2,4,8,16,32,64,128,27,54],u=function(){for(var e=new Array(256),t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;for(var n=[],r=[],i=[[],[],[],[]],a=[[],[],[],[]],s=0,o=0,u=0;u<256;++u){var c=o^o<<1^o<<2^o<<3^o<<4;c=c>>>8^255&c^99,n[s]=c,r[c]=s;var l=e[s],f=e[l],d=e[f],h=257*e[c]^16843008*c;i[0][s]=h<<24|h>>>8,i[1][s]=h<<16|h>>>16,i[2][s]=h<<8|h>>>24,i[3][s]=h,h=16843009*d^65537*f^257*l^16843008*s,a[0][c]=h<<24|h>>>8,a[1][c]=h<<16|h>>>16,a[2][c]=h<<8|h>>>24,a[3][c]=h,0===s?s=o=1:(s=l^e[e[e[d^l]]],o^=e[e[o]])}return{SBOX:n,INV_SBOX:r,SUB_MIX:i,INV_SUB_MIX:a}}();function c(e){this._key=i(e),this._reset()}c.blockSize=16,c.keySize=32,c.prototype.blockSize=c.blockSize,c.prototype.keySize=c.keySize,c.prototype._reset=function(){for(var e=this._key,t=e.length,n=t+6,r=4*(n+1),i=[],a=0;a>>24,s=u.SBOX[s>>>24]<<24|u.SBOX[s>>>16&255]<<16|u.SBOX[s>>>8&255]<<8|u.SBOX[255&s],s^=o[a/t|0]<<24):t>6&&a%t===4&&(s=u.SBOX[s>>>24]<<24|u.SBOX[s>>>16&255]<<16|u.SBOX[s>>>8&255]<<8|u.SBOX[255&s]),i[a]=i[a-t]^s}for(var c=[],l=0;l>>24]]^u.INV_SUB_MIX[1][u.SBOX[d>>>16&255]]^u.INV_SUB_MIX[2][u.SBOX[d>>>8&255]]^u.INV_SUB_MIX[3][u.SBOX[255&d]]}this._nRounds=n,this._keySchedule=i,this._invKeySchedule=c},c.prototype.encryptBlockRaw=function(e){return s(e=i(e),this._keySchedule,u.SUB_MIX,u.SBOX,this._nRounds)},c.prototype.encryptBlock=function(e){var t=this.encryptBlockRaw(e),n=r.allocUnsafe(16);return n.writeUInt32BE(t[0],0),n.writeUInt32BE(t[1],4),n.writeUInt32BE(t[2],8),n.writeUInt32BE(t[3],12),n},c.prototype.decryptBlock=function(e){var t=(e=i(e))[1];e[1]=e[3],e[3]=t;var n=s(e,this._invKeySchedule,u.INV_SUB_MIX,u.INV_SBOX,this._nRounds),a=r.allocUnsafe(16);return a.writeUInt32BE(n[0],0),a.writeUInt32BE(n[3],4),a.writeUInt32BE(n[2],8),a.writeUInt32BE(n[1],12),a},c.prototype.scrub=function(){a(this._keySchedule),a(this._invKeySchedule),a(this._key)},e.exports.AES=c},82150(e,t,n){"use strict";n.d(t,{EQ:()=>o});var r=n(2273),i=n(7411),a=n(81127),s=n(75209);function o(e,t="hex"){const n=u(e),r=(0,i.l)(new Uint8Array(n.length));return n.encode(r),"hex"===t?(0,s.My)(r.bytes):r.bytes}function u(e){return Array.isArray(e)?function(e){const t=e.reduce((e,t)=>e+t.length,0),n=c(t);return{length:t<=55?1+t:1+n+t,encode(r){t<=55?r.pushByte(192+t):(r.pushByte(247+n),1===n?r.pushUint8(t):2===n?r.pushUint16(t):3===n?r.pushUint24(t):r.pushUint32(t));for(const{encode:t}of e)t(r)}}}(e.map(e=>u(e))):function(e){const t="string"==typeof e?(0,a.aT)(e):e,n=c(t.length);return{length:1===t.length&&t[0]<128?1:t.length<=55?1+t.length:1+n+t.length,encode(e){1===t.length&&t[0]<128?e.pushBytes(t):t.length<=55?(e.pushByte(128+t.length),e.pushBytes(t)):(e.pushByte(183+n),1===n?e.pushUint8(t.length):2===n?e.pushUint16(t.length):3===n?e.pushUint24(t.length):e.pushUint32(t.length),e.pushBytes(t))}}}(e)}function c(e){if(e<256)return 1;if(e<65536)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new r.C("Length is too large.")}},82849(e,t,n){"use strict";var r,i,a=n(72258).Buffer,s=n(68379),o=n(55116),u=n(76035),c=n(98839),l=n.g.crypto&&n.g.crypto.subtle,f={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},d=[];function h(){return i||(i=n.g.process&&n.g.process.nextTick?n.g.process.nextTick:n.g.queueMicrotask?n.g.queueMicrotask:n.g.setImmediate?n.g.setImmediate:n.g.setTimeout)}function p(e,t,n,r,i){return l.importKey("raw",e,{name:"PBKDF2"},!1,["deriveBits"]).then(function(e){return l.deriveBits({name:"PBKDF2",salt:t,iterations:n,hash:{name:i}},e,r<<3)}).then(function(e){return a.from(e)})}e.exports=function(e,t,i,m,y,b){if("function"==typeof y&&(b=y,y=void 0),s(i,m),e=c(e,o,"Password"),t=c(t,o,"Salt"),"function"!=typeof b)throw new Error("No callback provided to pbkdf2");var g=f[(y=y||"sha1").toLowerCase()];g&&"function"==typeof n.g.Promise?function(e,t){e.then(function(e){h()(function(){t(null,e)})},function(e){h()(function(){t(e)})})}(function(e){if(n.g.process&&!n.g.process.browser)return Promise.resolve(!1);if(!l||!l.importKey||!l.deriveBits)return Promise.resolve(!1);if(void 0!==d[e])return d[e];var t=p(r=r||a.alloc(8),r,10,128,e).then(function(){return!0},function(){return!1});return d[e]=t,t}(g).then(function(n){return n?p(e,t,i,m,g):u(e,t,i,m,y)}),b):h()(function(){var n;try{n=u(e,t,i,m,y)}catch(e){return void b(e)}b(null,n)})}},82860(e){e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},82884(e,t,n){"use strict";n.d(t,{$J:()=>y,$P:()=>w,$X:()=>E,$y:()=>g,Bm:()=>c,Et:()=>s,Gv:()=>p,Kg:()=>a,Lm:()=>o,Pd:()=>d,Tn:()=>l,_3:()=>h,b0:()=>f,gd:()=>k,i5:()=>m,mg:()=>v,sI:()=>u,u4:()=>S,wD:()=>b,xZ:()=>_,zz:()=>i});var r=n(59329);const i=e=>!!e,a=e=>"string"==typeof e,s=e=>"number"==typeof e,o=e=>"boolean"==typeof e,u=e=>"bigint"==typeof e,c=e=>"symbol"==typeof e,l=r.Tn,f=e=>void 0===e,d=e=>!1,h=e=>"object"==typeof e&&null!==e,p=e=>h(e)||l(e),m=(0,r.XY)(2,(e,t)=>p(e)&&t in e),y=(0,r.XY)(2,(e,t)=>m(e,"_tag")&&e._tag===t),b=e=>null==e,g=e=>null!=e,v=e=>e instanceof Uint8Array,w=e=>e instanceof Date,_=e=>"string"==typeof e||m(e,Symbol.iterator),S=e=>h(e)&&!Array.isArray(e),E=e=>m(e,"then")&&l(e.then),k=e=>e instanceof RegExp},82988(e,t,n){"use strict";var r=n(45366),i=n(33213),a={};function s(e){r.equal(e.length,8,"Invalid IV length"),this.iv=new Array(8);for(var t=0;ty,v8:()=>p,$$:()=>m});var r=n(70121),i=n(83815),a=n(1060),s=n(2273);class o extends s.C{constructor({domain:e}){super(`Invalid domain "${(0,a.A)(e)}".`,{metaMessages:["Must be a valid EIP-712 domain."]})}}class u extends s.C{constructor({primaryType:e,types:t}){super(`Invalid primary type \`${e}\` must be one of \`${JSON.stringify(Object.keys(t))}\`.`,{docsPath:"/api/glossary/Errors#typeddatainvalidprimarytypeerror",metaMessages:["Check that the primary type is a key in `types`."]})}}class c extends s.C{constructor({type:e}){super(`Struct type "${e}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."],name:"InvalidStructTypeError"})}}var l=n(462),f=n(85501),d=n(75209),h=n(92546);function p(e){const{domain:t,message:n,primaryType:r,types:i}=e,s=(e,t)=>{const n={...t};for(const t of e){const{name:e,type:r}=t;"address"===r&&(n[e]=n[e].toLowerCase())}return n},o=i.EIP712Domain&&t?s(i.EIP712Domain,t):{},u=(()=>{if("EIP712Domain"!==r)return s(i[r],n)})();return(0,a.A)({domain:o,message:u,primaryType:r,types:i})}function m(e){const{domain:t,message:n,primaryType:a,types:s}=e,c=(e,t)=>{for(const n of e){const{name:e,type:a}=n,o=t[e],u=a.match(h.Ge);if(u&&("number"==typeof o||"bigint"==typeof o)){const[e,t,n]=u;(0,d.cK)(o,{signed:"int"===t,size:Number.parseInt(n,10)/8})}if("address"===a&&"string"==typeof o&&!(0,l.P)(o))throw new i.M({address:o});const p=a.match(h.BD);if(p){const[e,t]=p;if(t&&(0,f.E)(o)!==Number.parseInt(t,10))throw new r.BI({expectedSize:Number.parseInt(t,10),givenSize:(0,f.E)(o)})}const m=s[a];m&&(b(a),c(m,o))}};if(s.EIP712Domain&&t){if("object"!=typeof t)throw new o({domain:t});c(s.EIP712Domain,t)}if("EIP712Domain"!==a){if(!s[a])throw new u({primaryType:a,types:s});c(s[a],n)}}function y({domain:e}){return["string"==typeof e?.name&&{name:"name",type:"string"},e?.version&&{name:"version",type:"string"},("number"==typeof e?.chainId||"bigint"==typeof e?.chainId)&&{name:"chainId",type:"uint256"},e?.verifyingContract&&{name:"verifyingContract",type:"address"},e?.salt&&{name:"salt",type:"bytes32"}].filter(Boolean)}function b(e){if("address"===e||"bool"===e||"string"===e||e.startsWith("bytes")||e.startsWith("uint")||e.startsWith("int"))throw new c({type:e})}},83439(e,t,n){"use strict";var r=n(41065),i=n(92079),a=n(64781);e.exports=r?function(e){return r(e)}:i?function(e){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new TypeError("getProto: not an object");return i(e)}:a?function(e){return a(e)}:null},83506(e,t,n){"use strict";var r=n(45366),i=n(33213),a=n(81675),s=n(50007);function o(){this.tmp=new Array(2),this.keys=null}function u(e){s.call(this,e);var t=new o;this._desState=t,this.deriveKeys(t,e.key)}i(u,s),e.exports=u,u.create=function(e){return new u(e)};var c=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];u.prototype.deriveKeys=function(e,t){e.keys=new Array(32),r.equal(t.length,this.blockSize,"Invalid key length");var n=a.readUInt32BE(t,0),i=a.readUInt32BE(t,4);a.pc1(n,i,e.tmp,0),n=e.tmp[0],i=e.tmp[1];for(var s=0;s>>1];n=a.r28shl(n,o),i=a.r28shl(i,o),a.pc2(n,i,e.keys,s)}},u.prototype._update=function(e,t,n,r){var i=this._desState,s=a.readUInt32BE(e,t),o=a.readUInt32BE(e,t+4);a.ip(s,o,i.tmp,0),s=i.tmp[0],o=i.tmp[1],"encrypt"===this.type?this._encrypt(i,s,o,i.tmp,0):this._decrypt(i,s,o,i.tmp,0),s=i.tmp[0],o=i.tmp[1],a.writeUInt32BE(n,s,r),a.writeUInt32BE(n,o,r+4)},u.prototype._pad=function(e,t){if(!1===this.padding)return!1;for(var n=e.length-t,r=t;r>>0,s=d}a.rip(o,s,r,i)},u.prototype._decrypt=function(e,t,n,r,i){for(var s=n,o=t,u=e.keys.length-2;u>=0;u-=2){var c=e.keys[u],l=e.keys[u+1];a.expand(s,e.tmp,0),c^=e.tmp[0],l^=e.tmp[1];var f=a.substitute(c,l),d=s;s=(o^a.permute(f))>>>0,o=d}a.rip(s,o,r,i)}},83815(e,t,n){"use strict";n.d(t,{M:()=>i});var r=n(2273);class i extends r.C{constructor({address:e}){super(`Address "${e}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}},83835(e,t,n){"use strict";n.d(t,{v:()=>i});var r=n(57834);function i({chain:e,currentChainId:t}){if(!e)throw new r.jF;if(t!==e.id)throw new r.EH({chain:e,currentChainId:t})}},84015(e,t,n){"use strict";function r(e,{strict:t=!0}={}){return!!e&&"string"==typeof e&&(t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x"))}n.d(t,{q:()=>r})},84025(e,t,n){"use strict";n.d(t,{BE:()=>A,Hs:()=>T,Ie:()=>E,TS:()=>I,ae:()=>_,gD:()=>w,of:()=>k,qu:()=>S,u2:()=>x});var r=n(28062),i=n(72529),a=n(91893),s=n(59329),o=n(46385),u=n(12717),c=n(66949),l=n(82884);const f=Symbol.for("effect/List"),d=e=>r.Ts(e),h=(e=>a.zQ(r.bt(e),d))(i.aI),p={[f]:f,_tag:"Cons",toString(){return(0,u.GP)(this.toJSON())},toJSON(){return{_id:"List",_tag:"Cons",values:d(this).map(u.U2)}},[u.FX](){return this.toJSON()},[i.HR](e){return v(e)&&this._tag===e._tag&&h(this,e)},[o.HR](){return o.PO(this,o.YO(d(this)))},[Symbol.iterator](){let e=!1,t=this;return{next(){if(e)return this.return();if("Nil"===t._tag)return e=!0,this.return();const n=t.head;return t=t.tail,{done:e,value:n}},return:t=>(e||(e=!0),{done:!0,value:t})}},pipe(){return(0,c.tT)(this,arguments)}},m=(e,t)=>{const n=Object.create(p);return n.head=e,n.tail=t,n},y=o.Yj("Nil"),b={[f]:f,_tag:"Nil",toString(){return(0,u.GP)(this.toJSON())},toJSON:()=>({_id:"List",_tag:"Nil"}),[u.FX](){return this.toJSON()},[o.HR]:()=>y,[i.HR](e){return v(e)&&this._tag===e._tag},[Symbol.iterator]:()=>({next:()=>({done:!0,value:void 0})}),pipe(){return(0,c.tT)(this,arguments)}},g=Object.create(b),v=e=>(0,l.i5)(e,f),w=e=>"Nil"===e._tag,_=e=>"Cons"===e._tag,S=(e,t)=>m(e,t),E=()=>g,k=e=>m(e,g),x=(0,s.XY)(2,(e,t)=>M(t,e)),T=(0,s.XY)(2,(e,t)=>S(t,e)),M=(0,s.XY)(2,(e,t)=>{if(w(e))return t;if(w(t))return e;{const n=m(t.head,e);let r=n,i=t.tail;for(;!w(i);){const t=m(i.head,e);r.tail=t,r=t,i=i.tail}return n}}),I=(0,s.XY)(3,(e,t,n)=>{let r=t,i=e;for(;!w(i);)r=n(r,i.head),i=i.tail;return r}),A=e=>{let t=E(),n=e;for(;!w(n);)t=T(t,n.head),n=n.tail;return t}},84468(e,t,n){"use strict";n.d(t,{FG:()=>d,Gu:()=>g,OC:()=>f,Sv:()=>c,Tj:()=>m,Uc:()=>h,Wc:()=>l,YW:()=>y,h1:()=>b,kb:()=>o,n4:()=>v,pG:()=>s,qE:()=>p,sV:()=>u});var r=n(59329),i=n(56802),a=n(82884);i.ii;const s=i.pG,o=i.kb,u=i.sV,c=e=>{if((0,a.Tn)(e))try{return s(e())}catch(e){return o(e)}else try{return s(e.try())}catch(t){return o(e.catch(t))}},l=i.Wc,f=i.OC,d=i.FG,h=(i.j4,i.Gp,(0,r.XY)(2,(e,{onLeft:t,onRight:n})=>f(e)?o(t(e.left)):s(n(e.right)))),p=(0,r.XY)(2,(e,t)=>f(e)?o(t(e.left)):s(e.right)),m=(0,r.XY)(2,(e,t)=>d(e)?s(t(e.right)):o(e.left)),y=(0,r.XY)(2,(e,{onLeft:t,onRight:n})=>f(e)?t(e.left):n(e.right)),b=y({onLeft:r.D_,onRight:r.D_}),g=(0,r.XY)(2,(e,t)=>{if(d(e))return e.right;throw t(e.left)}),v=g(()=>new Error("getOrThrow called on a Left"))},84722(e,t,n){"use strict";n.d(t,{HN:()=>u,Ie:()=>a,b8:()=>o,sS:()=>s});var r=n(91484),i=n(56312);const a=i.Ie,s=(i.L8,i.sS),o=i.b8,u=(i.Im,i.$m,i.Ol,i.d6,i.$m,i.hg,i.WP,i.gP,i.HN);i.DI,r.qB,r.Vh,r.hY},85144(e,t,n){"use strict";n.d(t,{W:()=>u});var r=n(74014),i=n(88924),a=n(66893),s=n(26015),o=n(93543);async function u(e,t){const{abi:n,address:u,args:c,functionName:l,dataSuffix:f,...d}=t,h=(0,i.p)({abi:n,args:c,functionName:l});try{return await(0,s.T)(e,o.Q,"estimateGas")({data:`${h}${f?f.replace("0x",""):""}`,to:u,...d})}catch(e){const t=d.account?(0,r.J)(d.account):void 0;throw(0,a.j)(e,{abi:n,address:u,args:c,docsPath:"/docs/contract/estimateContractGas",functionName:l,sender:t?.address})}}},85327(e,t,n){"use strict";n.d(t,{$s:()=>l,Kc:()=>d,Kz:()=>f,Sq:()=>h,Vg:()=>u,WA:()=>p,aO:()=>s,fZ:()=>c,zW:()=>o});var r=n(49925),i=n(60077),a=n(2273);function s(e){const t=Object.entries(e).map(([e,t])=>void 0===t||!1===t?null:[e,t]).filter(Boolean),n=t.reduce((e,[t])=>Math.max(e,t.length),0);return t.map(([e,t])=>` ${`${e}:`.padEnd(n+1)} ${t}`).join("\n")}a.C;class o extends a.C{constructor({v:e}){super(`Invalid \`v\` value "${e}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class u extends a.C{constructor({transaction:e}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",s(e),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}}a.C,a.C;class c extends a.C{constructor({storageKey:e}){super(`Size for storage key "${e}" is invalid. Expected 32 bytes. Got ${Math.floor((e.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}}class l extends a.C{constructor(e,{account:t,docsPath:n,chain:a,data:o,gas:u,gasPrice:c,maxFeePerGas:l,maxPriorityFeePerGas:f,nonce:d,to:h,value:p}){const m=s({chain:a&&`${a?.name} (id: ${a?.id})`,from:t?.address,to:h,value:void 0!==p&&`${(0,r.c)(p)} ${a?.nativeCurrency?.symbol||"ETH"}`,data:o,gas:u,gasPrice:void 0!==c&&`${(0,i.Q)(c)} gwei`,maxFeePerGas:void 0!==l&&`${(0,i.Q)(l)} gwei`,maxPriorityFeePerGas:void 0!==f&&`${(0,i.Q)(f)} gwei`,nonce:d});super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],"Request Arguments:",m].filter(Boolean),name:"TransactionExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=e}}class f extends a.C{constructor({blockHash:e,blockNumber:t,blockTag:n,hash:r,index:i}){let a="Transaction";n&&void 0!==i&&(a=`Transaction at block time "${n}" at index "${i}"`),e&&void 0!==i&&(a=`Transaction at block hash "${e}" at index "${i}"`),t&&void 0!==i&&(a=`Transaction at block number "${t}" at index "${i}"`),r&&(a=`Transaction with hash "${r}"`),super(`${a} could not be found.`,{name:"TransactionNotFoundError"})}}class d extends a.C{constructor({hash:e}){super(`Transaction receipt with hash "${e}" could not be found. The Transaction may not be processed on a block yet.`,{name:"TransactionReceiptNotFoundError"})}}class h extends a.C{constructor({receipt:e}){super(`Transaction with hash "${e.transactionHash}" reverted.`,{metaMessages:['The receipt marked the transaction as "reverted". This could mean that the function on the contract you are trying to call threw an error.'," ","You can attempt to extract the revert reason by:","- calling the `simulateContract` or `simulateCalls` Action with the `abi` and `functionName` of the contract","- using the `call` Action with raw `data`"],name:"TransactionReceiptRevertedError"}),Object.defineProperty(this,"receipt",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.receipt=e}}class p extends a.C{constructor({hash:e}){super(`Timed out while waiting for transaction with hash "${e}" to be confirmed.`,{name:"WaitForTransactionReceiptTimeoutError"})}}},85501(e,t,n){"use strict";n.d(t,{E:()=>i});var r=n(84015);function i(e){return(0,r.q)(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}},85889(e,t,n){"use strict";var r=n(62460),i=n(4002),a=n(17821),s=n(6255);e.exports=function(e){if(e.length<1||"function"!=typeof e[0])throw new i("a function is required");return s(r,a,e)}},85984(e,t,n){var r=n(29562),i=n(50786),a=n(64464);t.createCipher=t.Cipher=r.createCipher,t.createCipheriv=t.Cipheriv=r.createCipheriv,t.createDecipher=t.Decipher=i.createDecipher,t.createDecipheriv=t.Decipheriv=i.createDecipheriv,t.listCiphers=t.getCiphers=function(){return Object.keys(a)}},86020(e,t,n){"use strict";n.d(t,{G:()=>r,Z:()=>i});const r=[{type:"constructor",inputs:[{name:"salt",internalType:"bytes32",type:"bytes32"},{name:"_incoVerifier",internalType:"contract IIncoVerifier",type:"address"}],stateMutability:"nonpayable"},{type:"fallback",stateMutability:"nonpayable"},{type:"function",inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"account",internalType:"address",type:"address"}],name:"allow",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"account",internalType:"address",type:"address"}],name:"allowTransient",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"account",internalType:"address",type:"address"}],name:"allowedTransient",outputs:[{name:"",internalType:"bool",type:"bool"}],stateMutability:"view"},{type:"function",inputs:[{name:"value",internalType:"address",type:"address"}],name:"asEaddress",outputs:[{name:"newEaddress",internalType:"eaddress",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"value",internalType:"bool",type:"bool"}],name:"asEbool",outputs:[{name:"newEbool",internalType:"ebool",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"value",internalType:"uint256",type:"uint256"}],name:"asEuint256",outputs:[{name:"newEuint256",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"proof",internalType:"struct AllowanceProof",type:"tuple",components:[{name:"sharer",internalType:"address",type:"address"},{name:"voucher",internalType:"struct AllowanceVoucher",type:"tuple",components:[{name:"sessionNonce",internalType:"bytes32",type:"bytes32"},{name:"verifyingContract",internalType:"address",type:"address"},{name:"callFunction",internalType:"bytes4",type:"bytes4"},{name:"sharerArgData",internalType:"bytes",type:"bytes"}]},{name:"voucherSignature",internalType:"bytes",type:"bytes"},{name:"requesterArgData",internalType:"bytes",type:"bytes"}]}],name:"claimHandle",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"cleanTransientStorage",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eAdd",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"bytes32",type:"bytes32"},{name:"rhs",internalType:"bytes32",type:"bytes32"}],name:"eBitAnd",outputs:[{name:"result",internalType:"bytes32",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"bytes32",type:"bytes32"},{name:"rhs",internalType:"bytes32",type:"bytes32"}],name:"eBitOr",outputs:[{name:"result",internalType:"bytes32",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"bytes32",type:"bytes32"},{name:"rhs",internalType:"bytes32",type:"bytes32"}],name:"eBitXor",outputs:[{name:"result",internalType:"bytes32",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"ct",internalType:"bytes32",type:"bytes32"},{name:"toType",internalType:"enum ETypes",type:"uint8"}],name:"eCast",outputs:[{name:"result",internalType:"bytes32",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eDiv",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"bytes32",type:"bytes32"},{name:"rhs",internalType:"bytes32",type:"bytes32"}],name:"eEq",outputs:[{name:"result",internalType:"ebool",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eGe",outputs:[{name:"result",internalType:"ebool",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eGt",outputs:[{name:"result",internalType:"ebool",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"control",internalType:"ebool",type:"bytes32"},{name:"ifTrue",internalType:"bytes32",type:"bytes32"},{name:"ifFalse",internalType:"bytes32",type:"bytes32"}],name:"eIfThenElse",outputs:[{name:"result",internalType:"bytes32",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eLe",outputs:[{name:"result",internalType:"ebool",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eLt",outputs:[{name:"result",internalType:"ebool",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eMax",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eMin",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eMul",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"bytes32",type:"bytes32"},{name:"rhs",internalType:"bytes32",type:"bytes32"}],name:"eNe",outputs:[{name:"result",internalType:"ebool",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"operand",internalType:"ebool",type:"bytes32"}],name:"eNot",outputs:[{name:"result",internalType:"ebool",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"randType",internalType:"enum ETypes",type:"uint8"}],name:"eRand",outputs:[{name:"result",internalType:"bytes32",type:"bytes32"}],stateMutability:"payable"},{type:"function",inputs:[{name:"upperBound",internalType:"bytes32",type:"bytes32"},{name:"randType",internalType:"enum ETypes",type:"uint8"}],name:"eRandBounded",outputs:[{name:"result",internalType:"bytes32",type:"bytes32"}],stateMutability:"payable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eRem",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eRotl",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eRotr",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eShl",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eShr",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"lhs",internalType:"euint256",type:"bytes32"},{name:"rhs",internalType:"euint256",type:"bytes32"}],name:"eSub",outputs:[{name:"result",internalType:"euint256",type:"bytes32"}],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"getEventCounter",outputs:[{name:"",internalType:"uint256",type:"uint256"}],stateMutability:"view"},{type:"function",inputs:[],name:"getFee",outputs:[{name:"",internalType:"uint256",type:"uint256"}],stateMutability:"pure"},{type:"function",inputs:[],name:"getMajorVersion",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[],name:"getName",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[],name:"getNextEventId",outputs:[{name:"",internalType:"uint256",type:"uint256"}],stateMutability:"view"},{type:"function",inputs:[{name:"op",internalType:"enum EOps",type:"uint8"},{name:"returnType",internalType:"enum ETypes",type:"uint8"},{name:"packedInputs",internalType:"bytes",type:"bytes"}],name:"getOpResultHandle",outputs:[{name:"generatedHandle",internalType:"bytes32",type:"bytes32"}],stateMutability:"pure"},{type:"function",inputs:[{name:"plaintextBytes",internalType:"bytes32",type:"bytes32"},{name:"handleType",internalType:"enum ETypes",type:"uint8"}],name:"getTrivialEncryptHandle",outputs:[{name:"generatedHandle",internalType:"bytes32",type:"bytes32"}],stateMutability:"pure"},{type:"function",inputs:[],name:"getVersion",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[],name:"getVersionedName",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[],name:"incoVerifier",outputs:[{name:"",internalType:"contract IIncoVerifier",type:"address"}],stateMutability:"view"},{type:"function",inputs:[{name:"owner",internalType:"address",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"account",internalType:"address",type:"address"}],name:"isAllowed",outputs:[{name:"",internalType:"bool",type:"bool"}],stateMutability:"view"},{type:"function",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"}],name:"isRevealed",outputs:[{name:"",internalType:"bool",type:"bool"}],stateMutability:"view"},{type:"function",inputs:[],name:"majorVersion",outputs:[{name:"",internalType:"uint8",type:"uint8"}],stateMutability:"view"},{type:"function",inputs:[],name:"minorVersion",outputs:[{name:"",internalType:"uint8",type:"uint8"}],stateMutability:"view"},{type:"function",inputs:[{name:"input",internalType:"bytes",type:"bytes"},{name:"user",internalType:"address",type:"address"}],name:"newEaddress",outputs:[{name:"newValue",internalType:"eaddress",type:"bytes32"}],stateMutability:"payable"},{type:"function",inputs:[{name:"input",internalType:"bytes",type:"bytes"},{name:"user",internalType:"address",type:"address"}],name:"newEbool",outputs:[{name:"newValue",internalType:"ebool",type:"bytes32"}],stateMutability:"payable"},{type:"function",inputs:[{name:"input",internalType:"bytes",type:"bytes"},{name:"user",internalType:"address",type:"address"}],name:"newEuint256",outputs:[{name:"newValue",internalType:"euint256",type:"bytes32"}],stateMutability:"payable"},{type:"function",inputs:[],name:"owner",outputs:[{name:"",internalType:"address",type:"address"}],stateMutability:"view"},{type:"function",inputs:[],name:"patchVersion",outputs:[{name:"",internalType:"uint8",type:"uint8"}],stateMutability:"view"},{type:"function",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"account",internalType:"address",type:"address"}],name:"persistAllowed",outputs:[{name:"",internalType:"bool",type:"bool"}],stateMutability:"view"},{type:"function",inputs:[],name:"proxiableUUID",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"}],name:"reveal",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"salt",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[{name:"newOwner",internalType:"address",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"newImplementation",internalType:"address",type:"address"},{name:"data",internalType:"bytes",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable"},{type:"event",anonymous:!1,inputs:[{name:"handle",internalType:"bytes32",type:"bytes32",indexed:!1},{name:"account",internalType:"address",type:"address",indexed:!1},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"Allow"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EAdd"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"rhs",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"result",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EBitAnd"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"rhs",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"result",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EBitOr"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"rhs",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"result",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EBitXor"},{type:"event",anonymous:!1,inputs:[{name:"ct",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"toType",internalType:"uint8",type:"uint8",indexed:!0},{name:"result",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ECast"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EDiv"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"rhs",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"result",internalType:"ebool",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EEq"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"ebool",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EGe"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"ebool",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EGt"},{type:"event",anonymous:!1,inputs:[{name:"control",internalType:"ebool",type:"bytes32",indexed:!1},{name:"ifTrue",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"ifFalse",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"result",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EIfThenElse"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"ebool",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ELe"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"ebool",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ELt"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EMax"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EMin"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EMul"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"rhs",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"result",internalType:"ebool",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ENe"},{type:"event",anonymous:!1,inputs:[{name:"operand",internalType:"ebool",type:"bytes32",indexed:!0},{name:"result",internalType:"ebool",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ENot"},{type:"event",anonymous:!1,inputs:[{name:"counter",internalType:"uint256",type:"uint256",indexed:!0},{name:"randType",internalType:"enum ETypes",type:"uint8",indexed:!1},{name:"result",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ERand"},{type:"event",anonymous:!1,inputs:[{name:"counter",internalType:"uint256",type:"uint256",indexed:!0},{name:"randType",internalType:"enum ETypes",type:"uint8",indexed:!1},{name:"upperBound",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"result",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ERandBounded"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ERem"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ERotl"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ERotr"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EShl"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"EShr"},{type:"event",anonymous:!1,inputs:[{name:"lhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"rhs",internalType:"euint256",type:"bytes32",indexed:!0},{name:"result",internalType:"euint256",type:"bytes32",indexed:!0},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ESub"},{type:"event",anonymous:!1,inputs:[{name:"version",internalType:"uint64",type:"uint64",indexed:!1}],name:"Initialized"},{type:"event",anonymous:!1,inputs:[{name:"result",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"contractAddress",internalType:"address",type:"address",indexed:!0},{name:"user",internalType:"address",type:"address",indexed:!0},{name:"ciphertext",internalType:"bytes",type:"bytes",indexed:!1},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"NewInput"},{type:"event",anonymous:!1,inputs:[{name:"previousOwner",internalType:"address",type:"address",indexed:!0},{name:"newOwner",internalType:"address",type:"address",indexed:!0}],name:"OwnershipTransferred"},{type:"event",anonymous:!1,inputs:[{name:"handle",internalType:"bytes32",type:"bytes32",indexed:!1},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"Reveal"},{type:"event",anonymous:!1,inputs:[{name:"result",internalType:"bytes32",type:"bytes32",indexed:!0},{name:"plainTextBytes",internalType:"bytes32",type:"bytes32",indexed:!1},{name:"handleType",internalType:"enum ETypes",type:"uint8",indexed:!1},{name:"eventId",internalType:"uint256",type:"uint256",indexed:!1}],name:"TrivialEncrypt"},{type:"event",anonymous:!1,inputs:[{name:"implementation",internalType:"address",type:"address",indexed:!0}],name:"Upgraded"},{type:"error",inputs:[{name:"target",internalType:"address",type:"address"}],name:"AddressEmptyCode"},{type:"error",inputs:[{name:"implementation",internalType:"address",type:"address"}],name:"ERC1967InvalidImplementation"},{type:"error",inputs:[],name:"ERC1967NonPayable"},{type:"error",inputs:[{name:"externalHandle",internalType:"bytes32",type:"bytes32"},{name:"computedHandle",internalType:"bytes32",type:"bytes32"},{name:"chainId",internalType:"uint256",type:"uint256"},{name:"aclAddress",internalType:"address",type:"address"},{name:"userAddress",internalType:"address",type:"address"},{name:"contractAddress",internalType:"address",type:"address"}],name:"ExternalHandleDoesNotMatchComputedHandle"},{type:"error",inputs:[],name:"FailedCall"},{type:"error",inputs:[],name:"FeeNotPaid"},{type:"error",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"}],name:"HandleAlreadyExists"},{type:"error",inputs:[],name:"InvalidInitialization"},{type:"error",inputs:[],name:"InvalidShortString"},{type:"error",inputs:[],name:"NotInitializing"},{type:"error",inputs:[{name:"owner",internalType:"address",type:"address"}],name:"OwnableInvalidOwner"},{type:"error",inputs:[{name:"account",internalType:"address",type:"address"}],name:"OwnableUnauthorizedAccount"},{type:"error",inputs:[{name:"verifyingContract",internalType:"address",type:"address"},{name:"callFunction",internalType:"bytes4",type:"bytes4"},{name:"argData",internalType:"bytes",type:"bytes"}],name:"ProofVerificationFailed"},{type:"error",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"sender",internalType:"address",type:"address"}],name:"SenderNotAllowedForHandle"},{type:"error",inputs:[{name:"str",internalType:"string",type:"string"}],name:"StringTooLong"},{type:"error",inputs:[],name:"UUPSUnauthorizedCallContext"},{type:"error",inputs:[{name:"slot",internalType:"bytes32",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID"},{type:"error",inputs:[{name:"actual",internalType:"enum ETypes",type:"uint8"},{name:"expectedTypes",internalType:"bytes32",type:"bytes32"}],name:"UnexpectedType"},{type:"error",inputs:[{name:"actual",internalType:"enum ETypes",type:"uint8"}],name:"UnsupportedType"}],i=[{type:"constructor",inputs:[{name:"salt",internalType:"bytes32",type:"bytes32"}],stateMutability:"nonpayable"},{type:"fallback",stateMutability:"nonpayable"},{type:"function",inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[{name:"",internalType:"bytes32",type:"bytes32"},{name:"account",internalType:"address",type:"address"},{name:"sharerArgData",internalType:"bytes",type:"bytes"},{name:"",internalType:"bytes",type:"bytes"}],name:"canUseSession",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[],name:"getMajorVersion",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[],name:"getName",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[],name:"getVersion",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[],name:"getVersionedName",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[{name:"owner",internalType:"address",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"majorVersion",outputs:[{name:"",internalType:"uint8",type:"uint8"}],stateMutability:"view"},{type:"function",inputs:[],name:"minorVersion",outputs:[{name:"",internalType:"uint8",type:"uint8"}],stateMutability:"view"},{type:"function",inputs:[],name:"owner",outputs:[{name:"",internalType:"address",type:"address"}],stateMutability:"view"},{type:"function",inputs:[],name:"patchVersion",outputs:[{name:"",internalType:"uint8",type:"uint8"}],stateMutability:"view"},{type:"function",inputs:[],name:"proxiableUUID",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"salt",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[{name:"newOwner",internalType:"address",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"newImplementation",internalType:"address",type:"address"},{name:"data",internalType:"bytes",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable"},{type:"event",anonymous:!1,inputs:[{name:"version",internalType:"uint64",type:"uint64",indexed:!1}],name:"Initialized"},{type:"event",anonymous:!1,inputs:[{name:"previousOwner",internalType:"address",type:"address",indexed:!0},{name:"newOwner",internalType:"address",type:"address",indexed:!0}],name:"OwnershipTransferred"},{type:"event",anonymous:!1,inputs:[{name:"implementation",internalType:"address",type:"address",indexed:!0}],name:"Upgraded"},{type:"error",inputs:[{name:"target",internalType:"address",type:"address"}],name:"AddressEmptyCode"},{type:"error",inputs:[{name:"implementation",internalType:"address",type:"address"}],name:"ERC1967InvalidImplementation"},{type:"error",inputs:[],name:"ERC1967NonPayable"},{type:"error",inputs:[],name:"FailedCall"},{type:"error",inputs:[],name:"InvalidInitialization"},{type:"error",inputs:[],name:"InvalidShortString"},{type:"error",inputs:[],name:"NotInitializing"},{type:"error",inputs:[{name:"owner",internalType:"address",type:"address"}],name:"OwnableInvalidOwner"},{type:"error",inputs:[{name:"account",internalType:"address",type:"address"}],name:"OwnableUnauthorizedAccount"},{type:"error",inputs:[{name:"str",internalType:"string",type:"string"}],name:"StringTooLong"},{type:"error",inputs:[],name:"UUPSUnauthorizedCallContext"},{type:"error",inputs:[{name:"slot",internalType:"bytes32",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID"}]},86262(e){"use strict";e.exports=Object.getOwnPropertyDescriptor},86937(e,t,n){"use strict";n.d(t,{Au:()=>o,Fh:()=>a,Ie:()=>c,Jt:()=>i,rl:()=>s,vG:()=>u});var r=n(35191);r.gU,r.Rt,r.rQ,r.BG;const i=r.Jt,a=r.Fh,s=r.rl,o=r.Au,u=(r.aI,r.vG),c=(r.$N,r.Ie)},88096(e){"use strict";e.exports=EvalError},88196(e,t,n){"use strict";function r(e,{method:t}){const n={};return"fallback"===e.transport.type&&e.transport.onResponse?.(({method:e,response:r,status:i,transport:a})=>{"success"===i&&t===e&&(n[r]=a.request)}),t=>n[t]||e.request}n.d(t,{g:()=>r})},88881(e,t,n){var r=n(72258).Buffer,i=r.alloc(16,0);function a(e){var t=r.allocUnsafe(16);return t.writeUInt32BE(e[0]>>>0,0),t.writeUInt32BE(e[1]>>>0,4),t.writeUInt32BE(e[2]>>>0,8),t.writeUInt32BE(e[3]>>>0,12),t}function s(e){this.h=e,this.state=r.alloc(16,0),this.cache=r.allocUnsafe(0)}s.prototype.ghash=function(e){for(var t=-1;++t0;t--)r[t]=r[t]>>>1|(1&r[t-1])<<31;r[0]=r[0]>>>1,n&&(r[0]=r[0]^225<<24)}this.state=a(i)},s.prototype.update=function(e){var t;for(this.cache=r.concat([this.cache,e]);this.cache.length>=16;)t=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(t)},s.prototype.final=function(e,t){return this.cache.length&&this.ghash(r.concat([this.cache,i],16)),this.ghash(a([0,e,0,t])),this.state},e.exports=s},88924(e,t,n){"use strict";n.d(t,{p:()=>l});var r=n(33640),i=n(28780),a=n(70121),s=n(16720),o=n(75672),u=n(75879);const c="/docs/contract/encodeFunctionData";function l(e){const{args:t}=e,{abi:n,functionName:l}=1===e.abi.length&&e.functionName?.startsWith("0x")?e:function(e){const{abi:t,args:n,functionName:r}=e;let i=t[0];if(r){const e=(0,u.iY)({abi:t,args:n,name:r});if(!e)throw new a.Iz(r,{docsPath:c});i=e}if("function"!==i.type)throw new a.Iz(void 0,{docsPath:c});return{abi:[i],functionName:(0,s.V)((0,o.B)(i))}}(e),f=n[0],d=l,h="inputs"in f&&f.inputs?(0,i.h)(f.inputs,t??[]):void 0;return(0,r.aP)([d,h??"0x"])}},89068(e,t,n){"use strict";var r=n(64116);e.exports=function(e){return r(e)||0===e?e:e<0?-1:1}},89921(e,t,n){"use strict";n.d(t,{APi:()=>rn,$n1:()=>R,THF:()=>Mn,g1R:()=>Tn,nAV:()=>wn,owM:()=>vn,s2:()=>bn,jo7:()=>yn,PDv:()=>xn,kJg:()=>En,VwM:()=>Sn,yPL:()=>C,AlI:()=>pn,R8K:()=>hn,kWD:()=>nn,nv8:()=>Nn,igQ:()=>An,Uis:()=>Cn,VbV:()=>Rn,Wc6:()=>fn,jGc:()=>U,HTn:()=>_t,hgn:()=>he,as:()=>z,NLW:()=>$,bIC:()=>q,QUl:()=>Y,Z5i:()=>P,FgE:()=>ee,h9N:()=>G,uPo:()=>H,XWm:()=>W,_Oy:()=>X,ReC:()=>cn,R_7:()=>ln,_5X:()=>J,_OA:()=>Ur,d_m:()=>zr,D$Q:()=>Vt,Fi1:()=>Bt,CdZ:()=>Xt,LGt:()=>Jt,Umi:()=>jt,w6U:()=>Dt,krO:()=>Ut,KAb:()=>Lt,b1P:()=>Gt,pX6:()=>Kt,QPU:()=>Ft,S_H:()=>Hr,MP9:()=>Zt,BzD:()=>en,s$T:()=>tn,QYw:()=>Qt,bRS:()=>Yt,G2Y:()=>qt,IeY:()=>V,gn0:()=>_r,$1O:()=>Sr,ZI2:()=>Er,AR8:()=>Ar,lN4:()=>Nr,AsN:()=>kr,Ao:()=>xr,FIO:()=>Mr,un1:()=>Ir,jxG:()=>Tr,ZM1:()=>Pr,bdM:()=>Or,_fI:()=>Rr,WW4:()=>vr,sDf:()=>wr,vwO:()=>Cr,syF:()=>Br,BCV:()=>Fr,q_p:()=>Lr,MIt:()=>gr,F_Q:()=>te,GSS:()=>ne,Kbz:()=>re,gPK:()=>ie,NS5:()=>ae,VuY:()=>Un,Hox:()=>zn,n9O:()=>$n,Q9S:()=>Vn,V2G:()=>Kn,JUF:()=>Yn,Rkt:()=>qn,cbD:()=>Hn,ygP:()=>Gn,NG:()=>Wn,T12:()=>Xn,m_i:()=>Jn,eec:()=>Zn,Cau:()=>Qn,t9n:()=>er,_sz:()=>tr,h0c:()=>Fn,VE1:()=>Ln,dWJ:()=>Dn,CoE:()=>jn,v9O:()=>nr,EkE:()=>rr,zPu:()=>ir,o7R:()=>ar,Wtn:()=>sr,dDX:()=>or,xtk:()=>ur,x5l:()=>cr,cpb:()=>lr,TBR:()=>fr,pLZ:()=>hr,CrW:()=>pr,$sd:()=>mr,il9:()=>dr,wnO:()=>yr,fJG:()=>se,ATB:()=>ue,pVV:()=>ce,gOk:()=>oe,ABT:()=>le,g1G:()=>fe,U8_:()=>kt,uPR:()=>xt,woH:()=>It,q1t:()=>At,Ecz:()=>Tt,QID:()=>Nt,bzD:()=>Ot,_Pd:()=>Pt,sH6:()=>Rt,nlF:()=>Ct,_z2:()=>Yr,HyR:()=>qr,qIB:()=>de,Bqz:()=>me,UUz:()=>ye,D9k:()=>Qe,CFK:()=>we,QZV:()=>_e,JkU:()=>Ze,tDT:()=>Se,GaK:()=>Ee,_tB:()=>dt,OLv:()=>ft,IPo:()=>ke,Inz:()=>xe,eMl:()=>Te,_ig:()=>Me,yw5:()=>j,p2e:()=>In,xt1:()=>_n,OTT:()=>gn,QRo:()=>kn,MrQ:()=>mn,xUJ:()=>On,sAm:()=>Bn,whK:()=>ht,OM4:()=>gt,DxM:()=>mt,xah:()=>pt,VEq:()=>bt,zg6:()=>wt,_$:()=>vt,PuW:()=>yt,TjK:()=>Ie,UcN:()=>Ae,xm_:()=>Ne,kyh:()=>Kr,D$$:()=>be,khu:()=>ge,tvg:()=>ve,SLb:()=>Wt,ZmZ:()=>lt,bVS:()=>Wr,S5A:()=>Pe,cfM:()=>Oe,nAr:()=>Re,QgK:()=>Be,kS9:()=>Fe,NWQ:()=>Ce,RkE:()=>Q,rTm:()=>Le,PpN:()=>$r,$1l:()=>Vr,UFt:()=>O,m$m:()=>je,iLB:()=>an,Uio:()=>sn,vDJ:()=>on,Z$R:()=>un,PMw:()=>pe,PyW:()=>De,DYE:()=>Ue,OH5:()=>ze,Mim:()=>$e,x6Q:()=>Pn,sK9:()=>Ve,rfi:()=>Ye,FcF:()=>qe,t04:()=>K,$QS:()=>Ge,rIH:()=>He,iK2:()=>We,iMI:()=>Xe,KyM:()=>et,$we:()=>D,jDN:()=>$t,mHP:()=>tt,cay:()=>nt,FRe:()=>zt,nDN:()=>rt,MaT:()=>it,EYO:()=>Ht,m9E:()=>at,yU6:()=>st,piH:()=>ot,aNH:()=>ut,OYO:()=>ct});var r=n(28062),i=n(17388),a=n(47726),s=n(68449),o=n(84468),u=n(72529),c=n(77962),l=n(59329),f=n(55661),d=n(46385),h=n(91269),p=n(12717),m=n(84025),y=n(61346),b=n(36708),g=n(66949),v=n(82884),w=n(84722),_=n(95644),S=n(59688),E=n(34520),k=n(69995),x=n(20490),T=n(65668),M=n(73360),I=n(17442),A=n(91484);class N{self;called=!1;constructor(e){this.self=e}next(e){return this.called?{value:e,done:!0}:(this.called=!0,{value:this.self,done:!1})}return(e){return{value:e,done:!0}}throw(e){throw e}[Symbol.iterator](){return new N(this.self)}}const P=(e,t)=>{const n=new B("Blocked");return n.effect_instruction_i0=e,n.effect_instruction_i1=t,n},O=e=>{const t=new B("RunBlocked");return t.effect_instruction_i0=e,t},R=Symbol.for("effect/Effect");class C{patch;op;_op=I.Ni;constructor(e,t){this.patch=e,this.op=t}}class B{_op;effect_instruction_i0=void 0;effect_instruction_i1=void 0;effect_instruction_i2=void 0;trace=void 0;[R]=x.Hs;constructor(e){this._op=e}[u.HR](e){return this===e}[d.HR](){return d.PO(this,d.yT(this))}pipe(){return(0,g.tT)(this,arguments)}toJSON(){return{_id:"Effect",_op:this._op,effect_instruction_i0:(0,p.U2)(this.effect_instruction_i0),effect_instruction_i1:(0,p.U2)(this.effect_instruction_i1),effect_instruction_i2:(0,p.U2)(this.effect_instruction_i2)}}toString(){return(0,p.GP)(this.toJSON())}[p.FX](){return this.toJSON()}[Symbol.iterator](){return new N(new _.WT(this))}}class F{_op;effect_instruction_i0=void 0;effect_instruction_i1=void 0;effect_instruction_i2=void 0;trace=void 0;[R]=x.Hs;constructor(e){this._op=e,this._tag=e}[u.HR](e){return Fn(e)&&"Failure"===e._op&&u.aI(this.effect_instruction_i0,e.effect_instruction_i0)}[d.HR](){return(0,l.Fs)(d.Yj(this._tag),d.kg(d.tW(this.effect_instruction_i0)),d.PO(this))}get cause(){return this.effect_instruction_i0}pipe(){return(0,g.tT)(this,arguments)}toJSON(){return{_id:"Exit",_tag:this._op,cause:this.cause.toJSON()}}toString(){return(0,p.GP)(this.toJSON())}[p.FX](){return this.toJSON()}[Symbol.iterator](){return new N(new _.WT(this))}}class L{_op;effect_instruction_i0=void 0;effect_instruction_i1=void 0;effect_instruction_i2=void 0;trace=void 0;[R]=x.Hs;constructor(e){this._op=e,this._tag=e}[u.HR](e){return Fn(e)&&"Success"===e._op&&u.aI(this.effect_instruction_i0,e.effect_instruction_i0)}[d.HR](){return(0,l.Fs)(d.Yj(this._tag),d.kg(d.tW(this.effect_instruction_i0)),d.PO(this))}get value(){return this.effect_instruction_i0}pipe(){return(0,g.tT)(this,arguments)}toJSON(){return{_id:"Exit",_tag:this._op,value:(0,p.U2)(this.value)}}toString(){return(0,p.GP)(this.toJSON())}[p.FX](){return this.toJSON()}[Symbol.iterator](){return new N(new _.WT(this))}}const j=e=>(0,v.i5)(e,R),D=e=>{const t=new B(I.mm);return t.effect_instruction_i0=e,t},U=(0,l.XY)(3,(e,t,n)=>qe(r=>de(e,e=>de(ae(Ue(()=>r(t(e)))),t=>Ue(()=>n(e,t)).pipe(ge({onFailure:e=>{switch(t._tag){case I.N9:return ue(S.il(t.effect_instruction_i0,e));case I._l:return ue(e)}},onSuccess:()=>t})))))),z=(0,l.XY)(2,(e,t)=>de(e,()=>De(t))),$=e=>z(e,void 0),V=function(){const e=new B(I.kK);switch(arguments.length){case 2:e.effect_instruction_i0=arguments[0],e.commit=arguments[1];break;case 3:e.effect_instruction_i0=arguments[0],e.effect_instruction_i1=arguments[1],e.commit=arguments[2];break;case 4:e.effect_instruction_i0=arguments[0],e.effect_instruction_i1=arguments[1],e.effect_instruction_i2=arguments[2],e.commit=arguments[3];break;default:throw new Error((0,T.k)("you're not supposed to end up here"))}return e},K=(e,t=c.dv)=>{const n=new B(I.ZO);let r;return n.effect_instruction_i0=t=>{r=e(t)},n.effect_instruction_i1=t,Re(n,e=>j(r)?r:He)},Y=(e,t=c.dv)=>Ue(()=>K(e,t)),q=(e,t=c.dv)=>V(e,function(){let e,n;function r(t){e?e(t):void 0===n&&(n=t)}const i=new B(I.ZO);let a,s;return i.effect_instruction_i0=t=>{e=t,n&&t(n)},i.effect_instruction_i1=t,1!==this.effect_instruction_i0.length?(s=new AbortController,a=(0,_.sn)(()=>this.effect_instruction_i0(r,s.signal))):a=(0,_.sn)(()=>this.effect_instruction_i0(r)),a||s?Re(i,e=>(s&&s.abort(),a??He)):i}),H=(0,l.XY)(2,(e,t)=>{const n=new B(I.JJ);return n.effect_instruction_i0=e,n.effect_instruction_i1=t,n}),G=(0,l.XY)(2,(e,t)=>ve(e,{onFailure:t,onSuccess:De})),W=(0,l.XY)(3,(e,t,n)=>H(e,e=>{const r=S.vE(e);switch(r._tag){case"Left":return t(r.left)?n(r.left):ue(e);case"Right":return ue(r.right)}})),X=(0,l.XY)(2,(e,t)=>H(e,e=>{const n=S.vE(e);switch(n._tag){case"Left":return(0,l.Fs)(t(n.left),b.WL(()=>ue(e)));case"Right":return ue(n.right)}})),J=e=>D((t,n)=>e(A.YW(n.runtimeFlags))),Z=Symbol.for("effect/OriginalAnnotation"),Q=e=>(0,v.i5)(e,Z)?e[Z]:e,ee=(e,t)=>b.Ru(t)?new Proxy(e,{has:(e,t)=>t===S.Hn||t===Z||t in e,get:(n,r)=>r===S.Hn?t.value:r===Z?e:n[r]}):e,te=e=>(0,v.Gv)(e)&&!(S.Hn in e)?D(t=>ue(S.F_(ee(e,Hr(t))))):ue(S.F_(e)),ne=e=>ce(()=>S.F_(new pn(e))),re=e=>de(ze(e),te),ie=e=>ve(e,{onFailure:e=>De(o.kb(e)),onSuccess:e=>De(o.pG(e))}),ae=e=>be(e,{onFailure:Hn,onSuccess:ur}),se=e=>(0,v.Gv)(e)&&!(S.Hn in e)?D(t=>ue(S.fJ(ee(e,Hr(t))))):ue(S.fJ(e)),oe=e=>de(ze(e),se),ue=e=>{const t=new F(I.N9);return t.effect_instruction_i0=e,t},ce=e=>de(ze(e),ue),le=D(e=>De(e.id())),fe=e=>D(t=>e(t.id())),de=(0,l.XY)(2,(e,t)=>{const n=new B(I.Gj);return n.effect_instruction_i0=e,n.effect_instruction_i1=t,n}),he=(0,l.XY)(2,(e,t)=>de(e,e=>{const n="function"==typeof t?t(e):t;return j(n)?n:(0,v.$X)(n)?K(e=>{n.then(t=>e(De(t)),t=>e(se(new Cn(t,"An unknown error occurred in Effect.andThen"))))}):De(n)})),pe=e=>{const t=new B("OnStep");return t.effect_instruction_i0=e,t},me=e=>de(e,l.D_),ye=e=>ve(e,{onFailure:De,onSuccess:se}),be=(0,l.XY)(2,(e,t)=>ge(e,{onFailure:e=>De(t.onFailure(e)),onSuccess:e=>De(t.onSuccess(e))})),ge=(0,l.XY)(2,(e,t)=>{const n=new B(I.du);return n.effect_instruction_i0=e,n.effect_instruction_i1=t.onFailure,n.effect_instruction_i2=t.onSuccess,n}),ve=(0,l.XY)(2,(e,t)=>ge(e,{onFailure:e=>{if(S.RU(e).length>0)return ue(S.rA(e));const n=S.e9(e);return n.length>0?t.onFailure(i.z1(n)):ue(e)},onSuccess:t.onSuccess})),we=(0,l.XY)(2,(e,t)=>Ue(()=>{const n=r.Ts(e),i=r.CN(n.length);let a=0;return z(Xe({while:()=>at(n[a],a),step:e=>{i[a++]=e}}),i)})),_e=(0,l.XY)(2,(e,t)=>Ue(()=>{const n=r.Ts(e);let i=0;return Xe({while:()=>it(n[i],i),step:()=>{i++}})})),Se=(0,l.XY)(e=>"boolean"==typeof e[0]||j(e[0]),(e,t)=>j(e)?de(e,e=>e?t.onTrue():t.onFalse()):e?t.onTrue():t.onFalse()),Ee=de(le,e=>ke(e)),ke=e=>ue(S.G(e)),xe=e=>{const t=new B(I.NM);return t.effect_instruction_i0=w.sS(A._n),t.effect_instruction_i1=()=>e,t},Te=e=>V(e,function(){const e=new B(I.NM);return e.effect_instruction_i0=w.sS(A._n),e.effect_instruction_i1=e=>A.YW(e)?(0,_.sn)(()=>this.effect_instruction_i0(xe)):(0,_.sn)(()=>this.effect_instruction_i0(Ye)),e}),Me=(0,l.XY)(2,(e,t)=>qe(n=>de(ae(n(e)),e=>kr(t,e)))),Ie=(0,l.XY)(2,(e,t)=>de(e,e=>ze(()=>t(e)))),Ae=(0,l.XY)(2,(e,t)=>ve(e,{onFailure:e=>oe(()=>t.onFailure(e)),onSuccess:e=>ze(()=>t.onSuccess(e))})),Ne=(0,l.XY)(2,(e,t)=>ge(e,{onFailure:e=>{const n=S.vE(e);switch(n._tag){case"Left":return oe(()=>t(n.left));case"Right":return ue(n.right)}},onSuccess:De})),Pe=(0,l.XY)(2,(e,t)=>Oe(e,e=>jn(e)?He:t(e.effect_instruction_i0))),Oe=(0,l.XY)(2,(e,t)=>qe(n=>ge(n(e),{onFailure:e=>{const n=Hn(e);return ge(t(n),{onFailure:t=>Hn(S.il(e,t)),onSuccess:()=>n})},onSuccess:e=>{const n=ur(e);return ut(t(n),n)}}))),Re=(0,l.XY)(2,(e,t)=>Oe(e,sr({onFailure:e=>S.t9(e)?$(t(S.ml(e))):He,onSuccess:()=>He}))),Ce=(0,l.XY)(2,(e,t)=>Ke(e,t,De)),Be=e=>Fe(e,l.D_),Fe=(0,l.XY)(2,(e,t)=>ve(e,{onFailure:e=>te(t(e)),onSuccess:De})),Le=r.rT,je=D((e,t)=>De(t.runtimeFlags)),De=e=>{const t=new L(I._l);return t.effect_instruction_i0=e,t},Ue=e=>{const t=new B(I.kK);return t.commit=e,t},ze=e=>{const t=new B(I.EF);return t.effect_instruction_i0=e,t},$e=(0,l.XY)(e=>3===e.length||2===e.length&&!((0,v.Gv)(e[1])&&"onlyEffect"in e[1]),(e,t)=>de(e,e=>{const n="function"==typeof t?t(e):t;return j(n)?z(n,e):(0,v.$X)(n)?K(t=>{n.then(n=>t(De(e)),e=>t(se(new Cn(e,"An unknown error occurred in Effect.tap"))))}):De(e)})),Ve=e=>D(t=>{const n=t.getFiberRef(Xt),r=(0,l.Fs)(n,b.WL(()=>t.scope()));return e(It(Xt,b.zN(r)))}),Ke=(0,l.XY)(3,(e,t,n)=>ge(e,{onFailure:e=>S.RU(e).length>0?ue(b.n4(S.$7(e))):t(),onSuccess:n})),Ye=e=>{const t=new B(I.NM);return t.effect_instruction_i0=w.b8(A._n),t.effect_instruction_i1=()=>e,t},qe=e=>V(e,function(){const e=new B(I.NM);return e.effect_instruction_i0=w.b8(A._n),e.effect_instruction_i1=e=>A.YW(e)?(0,_.sn)(()=>this.effect_instruction_i0(xe)):(0,_.sn)(()=>this.effect_instruction_i0(Ye)),e}),He=De(void 0),Ge=e=>{const t=new B(I.NM);return t.effect_instruction_i0=e,t.effect_instruction_i1=void 0,t},We=(0,l.XY)(2,(e,t)=>de(t,t=>t?(0,l.Fs)(e,Ie(b.zN)):De(b.dv()))),Xe=e=>{const t=new B(I.mM);return t.effect_instruction_i0=e.while,t.effect_instruction_i1=e.body,t.effect_instruction_i2=e.step,t},Je=e=>Ue(()=>{const t=new B(I.xS);return t.effect_instruction_i0=e(),t}),Ze=function(){const e=1===arguments.length?arguments[0]:arguments[1].bind(arguments[0]);return Je(()=>e(l.Fs))},Qe=(e,...t)=>Object.defineProperty(0===t.length?function(...t){return Je(()=>e.apply(this,t))}:function(...n){let r=Je(()=>e.apply(this,n));for(const e of t)r=e(r,...n);return r},"length",{value:e.length,configurable:!0}),et=(0,l.XY)(2,(e,t)=>It(e,Vt,t)),tt=(0,l.XY)(2,(e,t)=>It(e,Kt,t)),nt=(0,l.XY)(2,(e,t)=>{const n=new B(I.NM);return n.effect_instruction_i0=t,n.effect_instruction_i1=()=>e,n}),rt=(0,l.XY)(2,(e,t)=>It(e,Zt,t)),it=(0,l.XY)(2,(e,t)=>It(e,Qt,t)),at=e=>{const t=new B(I.u4);return void 0!==e?.priority?zt(t,e.priority):t},st=(0,l.XY)(2,(e,t)=>de(e,e=>Ie(t,t=>[e,t]))),ot=(0,l.XY)(2,(e,t)=>de(e,e=>z(t,e))),ut=(0,l.XY)(2,(e,t)=>de(e,()=>t)),ct=(0,l.XY)(3,(e,t,n)=>de(e,e=>Ie(t,t=>n(e,t)))),lt=Y(()=>{const e=setInterval(()=>{},2**31-1);return ze(()=>clearInterval(e))}),ft=e=>de(le,t=>(0,l.Fs)(e,dt(t))),dt=(0,l.XY)(2,(e,t)=>de(e.interruptAsFork(t),()=>e.await)),ht={_tag:"All",syslog:0,label:"ALL",ordinal:Number.MIN_SAFE_INTEGER,pipe(){return(0,g.tT)(this,arguments)}},pt={_tag:"Fatal",syslog:2,label:"FATAL",ordinal:5e4,pipe(){return(0,g.tT)(this,arguments)}},mt={_tag:"Error",syslog:3,label:"ERROR",ordinal:4e4,pipe(){return(0,g.tT)(this,arguments)}},yt={_tag:"Warning",syslog:4,label:"WARN",ordinal:3e4,pipe(){return(0,g.tT)(this,arguments)}},bt={_tag:"Info",syslog:6,label:"INFO",ordinal:2e4,pipe(){return(0,g.tT)(this,arguments)}},gt={_tag:"Debug",syslog:7,label:"DEBUG",ordinal:1e4,pipe(){return(0,g.tT)(this,arguments)}},vt={_tag:"Trace",syslog:7,label:"TRACE",ordinal:0,pipe(){return(0,g.tT)(this,arguments)}},wt={_tag:"None",syslog:7,label:"OFF",ordinal:Number.MAX_SAFE_INTEGER,pipe(){return(0,g.tT)(this,arguments)}},_t=[ht,vt,gt,bt,yt,mt,pt,wt],St=Symbol.for("effect/FiberRef"),Et={_A:e=>e},kt=e=>D(t=>ur(t.getFiberRef(e))),xt=(0,l.XY)(2,(e,t)=>de(kt(e),t)),Tt=(0,l.XY)(2,(e,t)=>Mt(e,()=>[void 0,t])),Mt=(0,l.XY)(2,(e,t)=>D(n=>{const[r,i]=t(n.getFiberRef(e));return n.setFiberRef(e,i),De(r)}));d.HR,u.HR;const It=(0,l.XY)(3,(e,t,n)=>U(ot(kt(t),Tt(t,n)),()=>e,e=>Tt(t,e))),At=(0,l.XY)(3,(e,t,n)=>xt(t,r=>It(e,t,n(r)))),Nt=(e,t)=>Rt(e,{differ:k.yo(),fork:t?.fork??l.D_,join:t?.join}),Pt=e=>{const t=k.zI();return Rt(e,{differ:t,fork:t.empty})},Ot=e=>{const t=k.cA();return Rt(e,{differ:t,fork:t.empty})},Rt=(e,t)=>({...x.Em,[St]:Et,initial:e,commit(){return kt(this)},diff:(e,n)=>t.differ.diff(e,n),combine:(e,n)=>t.differ.combine(e,n),patch:e=>n=>t.differ.patch(e,n),fork:t.fork,join:t.join??((e,t)=>t)}),Ct=e=>Rt(e,{differ:A.Tx,fork:A.Tx.empty}),Bt=(0,f.V)(Symbol.for("effect/FiberRef/currentContext"),()=>Ot(a.Ie())),Ft=(0,f.V)(Symbol.for("effect/FiberRef/currentSchedulingPriority"),()=>Nt(0)),Lt=(0,f.V)(Symbol.for("effect/FiberRef/currentMaxOpsBeforeYield"),()=>Nt(2048)),jt=(0,f.V)(Symbol.for("effect/FiberRef/currentLogAnnotation"),()=>Nt(h.Ie())),Dt=(0,f.V)(Symbol.for("effect/FiberRef/currentLogLevel"),()=>Nt(bt)),Ut=(0,f.V)(Symbol.for("effect/FiberRef/currentLogSpan"),()=>Nt(m.Ie())),zt=(0,l.XY)(2,(e,t)=>It(e,Ft,t)),$t=(0,l.XY)(2,(e,t)=>It(e,Lt,t)),Vt=(0,f.V)(Symbol.for("effect/FiberRef/currentConcurrency"),()=>Nt("unbounded")),Kt=(0,f.V)(Symbol.for("effect/FiberRef/currentRequestBatching"),()=>Nt(!0)),Yt=(0,f.V)(Symbol.for("effect/FiberRef/currentUnhandledErrorLogLevel"),()=>Nt(b.zN(gt))),qt=(0,f.V)(Symbol.for("effect/FiberRef/versionMismatchErrorLogLevel"),()=>Nt(b.zN(yt))),Ht=(0,l.XY)(2,(e,t)=>It(e,Yt,t)),Gt=(0,f.V)(Symbol.for("effect/FiberRef/currentMetricLabels"),()=>(e=>{const t=k.QZ(k.yo());return Rt(e,{differ:t,fork:t.empty})})(r.Ie())),Wt=kt(Gt),Xt=(0,f.V)(Symbol.for("effect/FiberRef/currentForkScopeOverride"),()=>Nt(b.dv(),{fork:()=>b.dv(),join:(e,t)=>e})),Jt=(0,f.V)(Symbol.for("effect/FiberRef/currentInterruptedCause"),()=>Nt(S.Ie,{fork:()=>S.Ie,join:(e,t)=>e})),Zt=(0,f.V)(Symbol.for("effect/FiberRef/currentTracerEnabled"),()=>Nt(!0)),Qt=(0,f.V)(Symbol.for("effect/FiberRef/currentTracerTiming"),()=>Nt(!0)),en=(0,f.V)(Symbol.for("effect/FiberRef/currentTracerSpanAnnotations"),()=>Nt(h.Ie())),tn=(0,f.V)(Symbol.for("effect/FiberRef/currentTracerSpanLinks"),()=>Nt(i.Ie())),nn=Symbol.for("effect/Scope"),rn=Symbol.for("effect/CloseableScope"),an=(e,t)=>e.addFinalizer(()=>$(t)),sn=(e,t)=>e.addFinalizer(t),on=(e,t)=>e.close(t),un=(e,t)=>e.fork(t),cn=e=>ln(l.D_)(e),ln=(0,l.XY)(2,(e,t)=>{const n=(0,l.Fs)(e,S.od,b.Tj(t));switch(n._tag){case"None":return(0,l.Fs)(S.RU(e),i.d5,b.YW({onNone:()=>{const t=r.Ts(S.ml(e)).flatMap(e=>r.Ts(c.dK(e)).map(e=>`#${e}`));return new bn(t?`Interrupted by fibers: ${t.join(", ")}`:void 0)},onSome:l.D_}));case"Some":return n.value}}),fn=function(){class e extends globalThis.Error{commit(){return se(this)}toJSON(){const e={...this};return this.message&&(e.message=this.message),this.cause&&(e.cause=this.cause),e}[p.FX](){return this.toString!==globalThis.Error.prototype.toString?this.stack?`${this.toString()}\n${this.stack.split("\n").slice(1).join("\n")}`:this.toString():"Bun"in globalThis?S.j9(S.fJ(this),{renderErrorCause:!0}):this}}return Object.assign(e.prototype,x.Pe),e}(),dn=(e,t)=>{class n extends fn{_tag=t}return Object.assign(n.prototype,e),n.prototype.name=t,n},hn=Symbol.for("effect/Cause/errors/RuntimeException"),pn=dn({[hn]:hn},"RuntimeException"),mn=e=>(0,v.i5)(e,hn),yn=Symbol.for("effect/Cause/errors/InterruptedException"),bn=dn({[yn]:yn},"InterruptedException"),gn=e=>(0,v.i5)(e,yn),vn=Symbol.for("effect/Cause/errors/IllegalArgument"),wn=dn({[vn]:vn},"IllegalArgumentException"),_n=e=>(0,v.i5)(e,vn),Sn=Symbol.for("effect/Cause/errors/NoSuchElement"),En=dn({[Sn]:Sn},"NoSuchElementException"),kn=e=>(0,v.i5)(e,Sn),xn=Symbol.for("effect/Cause/errors/InvalidPubSubCapacityException"),Tn=Symbol.for("effect/Cause/errors/ExceededCapacityException"),Mn=dn({[Tn]:Tn},"ExceededCapacityException"),In=e=>(0,v.i5)(e,Tn),An=Symbol.for("effect/Cause/errors/Timeout"),Nn=dn({[An]:An},"TimeoutException"),Pn=e=>new Nn(`Operation timed out after '${s.GP(e)}'`),On=e=>(0,v.i5)(e,An),Rn=Symbol.for("effect/Cause/errors/UnknownException"),Cn=function(){class e extends fn{_tag="UnknownException";error;constructor(e,t){super(t??"An unknown error occurred",{cause:e}),this.error=e}}return Object.assign(e.prototype,{[Rn]:Rn,name:"UnknownException"}),e}(),Bn=e=>(0,v.i5)(e,Rn),Fn=e=>j(e)&&"_tag"in e&&("Success"===e._tag||"Failure"===e._tag),Ln=e=>"Failure"===e._tag,jn=e=>"Success"===e._tag,Dn=e=>{switch(e._tag){case I.N9:return S.fT(e.effect_instruction_i0);case I._l:return!1}},Un=(0,l.XY)(2,(e,t)=>{switch(e._tag){case I.N9:return Hn(e.effect_instruction_i0);case I._l:return ur(t)}}),zn=e=>Un(e,void 0),$n=e=>{switch(e._tag){case I.N9:return b.zN(e.effect_instruction_i0);case I._l:return b.dv()}},Vn=(e,t)=>br(e,t?.parallel?S._7:S.il),Kn=e=>Hn(S.F_(e)),Yn=(0,l.XY)(2,(e,t)=>{switch(e._tag){case I.N9:return!1;case I._l:return t(e.effect_instruction_i0)}}),qn=e=>Hn(S.fJ(e)),Hn=e=>{const t=new F(I.N9);return t.effect_instruction_i0=e,t},Gn=(0,l.XY)(2,(e,t)=>{switch(e._tag){case I.N9:return Hn(e.effect_instruction_i0);case I._l:return t(e.effect_instruction_i0)}}),Wn=(0,l.XY)(2,(e,t)=>{switch(e._tag){case I.N9:return De(Hn(e.effect_instruction_i0));case I._l:return t(e.effect_instruction_i0)}}),Xn=e=>(0,l.Fs)(e,Gn(l.D_)),Jn=(0,l.XY)(2,(e,t)=>{switch(e._tag){case I.N9:return De(Hn(e.effect_instruction_i0));case I._l:return ae(t(e.effect_instruction_i0))}}),Zn=e=>{switch(e._tag){case"Left":return qn(e.left);case"Right":return ur(e.right)}},Qn=e=>{switch(e._tag){case"None":return qn(void 0);case"Some":return ur(e.value)}},er=(0,l.XY)(2,(e,t)=>{switch(e._tag){case I.N9:return t(e.effect_instruction_i0);case I._l:return e.effect_instruction_i0}}),tr=e=>Hn(S.G(e)),nr=(0,l.XY)(2,(e,t)=>{switch(e._tag){case I.N9:return Hn(e.effect_instruction_i0);case I._l:return ur(t(e.effect_instruction_i0))}}),rr=(0,l.XY)(2,(e,{onFailure:t,onSuccess:n})=>{switch(e._tag){case I.N9:return Hn((0,l.Fs)(e.effect_instruction_i0,S.Tj(t)));case I._l:return ur(n(e.effect_instruction_i0))}}),ir=(0,l.XY)(2,(e,t)=>{switch(e._tag){case I.N9:return Hn((0,l.Fs)(e.effect_instruction_i0,S.Tj(t)));case I._l:return ur(e.effect_instruction_i0)}}),ar=(0,l.XY)(2,(e,t)=>{switch(e._tag){case I.N9:return Hn(t(e.effect_instruction_i0));case I._l:return ur(e.effect_instruction_i0)}}),sr=(0,l.XY)(2,(e,{onFailure:t,onSuccess:n})=>{switch(e._tag){case I.N9:return t(e.effect_instruction_i0);case I._l:return n(e.effect_instruction_i0)}}),or=(0,l.XY)(2,(e,{onFailure:t,onSuccess:n})=>{switch(e._tag){case I.N9:return t(e.effect_instruction_i0);case I._l:return n(e.effect_instruction_i0)}}),ur=e=>{const t=new L(I._l);return t.effect_instruction_i0=e,t},cr=ur(void 0),lr=(0,l.XY)(2,(e,t)=>yr(e,t,{onSuccess:(e,t)=>[e,t],onFailure:S.il})),fr=(0,l.XY)(2,(e,t)=>yr(e,t,{onSuccess:(e,t)=>e,onFailure:S.il})),dr=(0,l.XY)(2,(e,t)=>yr(e,t,{onSuccess:(e,t)=>t,onFailure:S.il})),hr=(0,l.XY)(2,(e,t)=>yr(e,t,{onSuccess:(e,t)=>[e,t],onFailure:S._7})),pr=(0,l.XY)(2,(e,t)=>yr(e,t,{onSuccess:(e,t)=>e,onFailure:S._7})),mr=(0,l.XY)(2,(e,t)=>yr(e,t,{onSuccess:(e,t)=>t,onFailure:S._7})),yr=(0,l.XY)(3,(e,t,{onFailure:n,onSuccess:r})=>{switch(e._tag){case I.N9:switch(t._tag){case I._l:return Hn(e.effect_instruction_i0);case I.N9:return Hn(n(e.effect_instruction_i0,t.effect_instruction_i0))}case I._l:switch(t._tag){case I._l:return ur(r(e.effect_instruction_i0,t.effect_instruction_i0));case I.N9:return Hn(t.effect_instruction_i0)}}}),br=(e,t)=>{const n=i.Ts(e);return i.J_(n)?(0,l.Fs)(i.Rx(n),r.TS((0,l.Fs)(i.v4(n),nr(i.of)),(e,n)=>(0,l.Fs)(e,yr(n,{onSuccess:(e,t)=>(0,l.Fs)(e,i.Hs(t)),onFailure:t}))),nr(i.BE),nr(e=>i.h3(e)),b.zN):b.dv()},gr=e=>({...x.Em,[E.FX]:E.do,state:y.L8(E.Ub([])),commit(){return _r(this)},blockingOn:e}),vr=()=>de(le,e=>wr(e)),wr=e=>ze(()=>gr(e)),_r=e=>Y(t=>{const n=y.Jt(e.state);switch(n._tag){case M.R:return t(n.effect);case M.i:return n.joiners.push(t),jr(e,t)}},e.blockingOn),Sr=(0,l.XY)(2,(e,t)=>Me(t,e)),Er=(0,l.XY)(2,(e,t)=>ze(()=>{const n=y.Jt(e.state);switch(n._tag){case M.R:return!1;case M.i:y.hZ(e.state,E.Vw(t));for(let e=0,r=n.joiners.length;eEr(e,t)),xr=(0,l.XY)(2,(e,t)=>Er(e,se(t))),Tr=(0,l.XY)(2,(e,t)=>Er(e,oe(t))),Mr=(0,l.XY)(2,(e,t)=>Er(e,ue(t))),Ir=(0,l.XY)(2,(e,t)=>Er(e,ce(t))),Ar=(0,l.XY)(2,(e,t)=>Er(e,te(t))),Nr=(0,l.XY)(2,(e,t)=>Er(e,re(t))),Pr=e=>de(le,t=>Er(e,ke(t))),Or=(0,l.XY)(2,(e,t)=>Er(e,ke(t))),Rr=e=>ze(()=>y.Jt(e.state)._tag===M.R),Cr=e=>ze(()=>{const t=y.Jt(e.state);switch(t._tag){case M.R:return b.zN(t.effect);case M.i:return b.dv()}}),Br=(0,l.XY)(2,(e,t)=>Er(e,De(t))),Fr=(0,l.XY)(2,(e,t)=>Er(e,ze(t))),Lr=(e,t)=>{const n=y.Jt(e.state);if(n._tag===M.i){y.hZ(e.state,E.Vw(t));for(let e=0,r=n.joiners.length;eze(()=>{const n=y.Jt(e.state);if(n._tag===M.i){const e=n.joiners.indexOf(t);e>=0&&n.joiners.splice(e,1)}}),Dr=D(e=>ur(e.currentContext)),Ur=()=>Dr,zr=e=>de(Ur(),e),$r=(0,l.XY)(2,(e,t)=>It(Bt,t)(e)),Vr=(0,l.XY)(2,(e,t)=>At(Bt,e=>a.h1(e,t))(e)),Kr=(0,l.XY)(2,(e,t)=>zr(n=>$r(e,t(n)))),Yr=(0,l.XY)(2,(e,t)=>de(e,e=>de(t.predicate(e),n=>n?De(e):t.orElse(e)))),qr=(0,l.XY)(2,(e,t)=>Yr(e,{predicate:t.predicate,orElse:e=>se(t.orFailWith(e))})),Hr=e=>{const t=e.currentSpan;return void 0!==t&&"Span"===t._tag?b.zN(t):b.dv()},Gr={_tag:"Span",spanId:"noop",traceId:"noop",sampled:!1,status:{_tag:"Ended",startTime:BigInt(0),endTime:BigInt(0),exit:cr},attributes:new Map,links:[],kind:"internal",attribute(){},event(){},end(){},addLinks(){}},Wr=e=>Object.assign(Object.create(Gr),e)},90303(e,t,n){"use strict";var r=n(18277).Buffer,i=n(30903);function a(e,t,n){e.copy(t,n)}e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},e.prototype.concat=function(e){if(0===this.length)return r.alloc(0);for(var t=r.allocUnsafe(e>>>0),n=this.head,i=0;n;)a(n.data,t,i),i+=n.data.length,n=n.next;return t},e}(),i&&i.inspect&&i.inspect.custom&&(e.exports.prototype[i.inspect.custom]=function(){var e=i.inspect({length:this.length});return this.constructor.name+" "+e})},90580(e,t,n){"use strict";n.d(t,{J:()=>a});var r=n(21506);function i(e){return{address:e.address,amount:r.oB(e.amount),index:r.oB(e.index),validatorIndex:r.oB(e.validatorIndex)}}function a(e){return{..."bigint"==typeof e.baseFeePerGas&&{baseFeePerGas:r.oB(e.baseFeePerGas)},..."bigint"==typeof e.blobBaseFee&&{blobBaseFee:r.oB(e.blobBaseFee)},..."string"==typeof e.feeRecipient&&{feeRecipient:e.feeRecipient},..."bigint"==typeof e.gasLimit&&{gasLimit:r.oB(e.gasLimit)},..."bigint"==typeof e.number&&{number:r.oB(e.number)},..."bigint"==typeof e.prevRandao&&{prevRandao:r.oB(e.prevRandao)},..."bigint"==typeof e.time&&{time:r.oB(e.time)},...e.withdrawals&&{withdrawals:e.withdrawals.map(i)}}}},90639(e,t,n){"use strict";var r=n(42649),i=n(11644);e.exports=v;var a,s=n(17777);v.ReadableState=g,n(3640).EventEmitter;var o=function(e,t){return e.listeners(t).length},u=n(4880),c=n(18277).Buffer,l=(void 0!==n.g?n.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){},f=Object.create(n(1833));f.inherits=n(33213);var d=n(42187),h=void 0;h=d&&d.debuglog?d.debuglog("stream"):function(){};var p,m=n(90303),y=n(48743);f.inherits(v,u);var b=["error","close","destroy","pause","resume"];function g(e,t){e=e||{};var r=t instanceof(a=a||n(77561));this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var i=e.highWaterMark,s=e.readableHighWaterMark,o=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:r&&(s||0===s)?s:o,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(p||(p=n(55037).I),this.decoder=new p(e.encoding),this.encoding=e.encoding)}function v(e){if(a=a||n(77561),!(this instanceof v))return new v(e);this._readableState=new g(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),u.call(this)}function w(e,t,n,r,i){var a,s=e._readableState;return null===t?(s.reading=!1,function(e,t){if(!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,k(e)}}(e,s)):(i||(a=function(e,t){var n,r;return r=t,c.isBuffer(r)||r instanceof l||"string"==typeof t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk")),n}(s,t)),a?e.emit("error",a):s.objectMode||t&&t.length>0?("string"==typeof t||s.objectMode||Object.getPrototypeOf(t)===c.prototype||(t=function(e){return c.from(e)}(t)),r?s.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):_(e,s,t,!0):s.ended?e.emit("error",new Error("stream.push() after EOF")):(s.reading=!1,s.decoder&&!n?(t=s.decoder.write(t),s.objectMode||0!==t.length?_(e,s,t,!1):T(e,s)):_(e,s,t,!1))):r||(s.reading=!1)),function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=S?e=S:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function k(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(h("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?i.nextTick(x,e):x(e))}function x(e){h("emit readable"),e.emit("readable"),N(e)}function T(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(M,e,t))}function M(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;return ea.length?a.length:e;if(s===a.length?i+=a:i+=a.slice(0,e),0===(e-=s)){s===a.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=a.slice(s));break}++r}return t.length-=r,i}(e,t):function(e,t){var n=c.allocUnsafe(e),r=t.head,i=1;for(r.data.copy(n),e-=r.data.length;r=r.next;){var a=r.data,s=e>a.length?a.length:e;if(a.copy(n,n.length-e,0,s),0===(e-=s)){s===a.length?(++i,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=a.slice(s));break}++i}return t.length-=i,n}(e,t),r}(e,t.buffer,t.decoder),n);var n}function O(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,i.nextTick(R,t,e))}function R(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function C(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return h("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?O(this):k(this),null;if(0===(e=E(e,t))&&t.ended)return 0===t.length&&O(this),null;var r,i=t.needReadable;return h("need readable",i),(0===t.length||t.length-e0?P(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&O(this)),null!==r&&this.emit("data",r),r},v.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},v.prototype.pipe=function(e,t){var n=this,a=this._readableState;switch(a.pipesCount){case 0:a.pipes=e;break;case 1:a.pipes=[a.pipes,e];break;default:a.pipes.push(e)}a.pipesCount+=1,h("pipe count=%d opts=%j",a.pipesCount,t);var u=t&&!1===t.end||e===r.stdout||e===r.stderr?g:c;function c(){h("onend"),e.end()}a.endEmitted?i.nextTick(u):n.once("end",u),e.on("unpipe",function t(r,i){h("onunpipe"),r===n&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,h("cleanup"),e.removeListener("close",y),e.removeListener("finish",b),e.removeListener("drain",l),e.removeListener("error",m),e.removeListener("unpipe",t),n.removeListener("end",c),n.removeListener("end",g),n.removeListener("data",p),f=!0,!a.awaitDrain||e._writableState&&!e._writableState.needDrain||l())});var l=function(e){return function(){var t=e._readableState;h("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&o(e,"data")&&(t.flowing=!0,N(e))}}(n);e.on("drain",l);var f=!1,d=!1;function p(t){h("ondata"),d=!1,!1!==e.write(t)||d||((1===a.pipesCount&&a.pipes===e||a.pipesCount>1&&-1!==C(a.pipes,e))&&!f&&(h("false write response, pause",a.awaitDrain),a.awaitDrain++,d=!0),n.pause())}function m(t){h("onerror",t),g(),e.removeListener("error",m),0===o(e,"error")&&e.emit("error",t)}function y(){e.removeListener("finish",b),g()}function b(){h("onfinish"),e.removeListener("close",y),g()}function g(){h("unpipe"),n.unpipe(e)}return n.on("data",p),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?s(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",m),e.once("close",y),e.once("finish",b),e.emit("pipe",n),a.flowing||(h("pipe resume"),n.resume()),e},v.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;ab,bG:()=>g,M:()=>v,rR:()=>w,Po:()=>_,$S:()=>S});var r=n(74014),i=n(97932),a=n(72981),s=n(75672),o=n(1060);function u({abiItem:e,args:t,includeFunctionName:n=!0,includeName:r=!1}){if("name"in e&&"inputs"in e&&e.inputs)return`${n?e.name:""}(${e.inputs.map((e,n)=>`${r&&e.name?`${e.name}: `:""}${"object"==typeof t[n]?(0,o.A)(t[n]):t[n]}`).join(", ")})`}var c=n(75879),l=n(49925),f=n(60077),d=n(70121),h=n(2273),p=n(94622),m=n(85327),y=n(15190);class b extends h.C{constructor(e,{account:t,docsPath:n,chain:i,data:a,gas:s,gasPrice:o,maxFeePerGas:u,maxPriorityFeePerGas:c,nonce:d,to:h,value:y,stateOverride:b}){const g=t?(0,r.J)(t):void 0;let v=(0,m.aO)({from:g?.address,to:h,value:void 0!==y&&`${(0,l.c)(y)} ${i?.nativeCurrency?.symbol||"ETH"}`,data:a,gas:s,gasPrice:void 0!==o&&`${(0,f.Q)(o)} gwei`,maxFeePerGas:void 0!==u&&`${(0,f.Q)(u)} gwei`,maxPriorityFeePerGas:void 0!==c&&`${(0,f.Q)(c)} gwei`,nonce:d});b&&(v+=`\n${(0,p.uj)(b)}`),super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],"Raw Call Arguments:",v].filter(Boolean),name:"CallExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=e}}class g extends h.C{constructor(e,{abi:t,args:n,contractAddress:r,docsPath:i,functionName:a,sender:o}){const l=(0,c.iY)({abi:t,args:n,name:a}),f=l?u({abiItem:l,args:n,includeFunctionName:!1,includeName:!1}):void 0,d=l?(0,s.B)(l,{includeName:!0}):void 0,h=(0,m.aO)({address:r&&(0,y.R)(r),function:d,args:f&&"()"!==f&&`${[...Array(a?.length??0).keys()].map(()=>" ").join("")}${f}`,sender:o});super(e.shortMessage||`An unknown error occurred while executing the contract function "${a}".`,{cause:e,docsPath:i,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],h&&"Contract Call:",h].filter(Boolean),name:"ContractFunctionExecutionError"}),Object.defineProperty(this,"abi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"contractAddress",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"formattedArgs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"functionName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sender",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abi=t,this.args=n,this.cause=e,this.contractAddress=r,this.functionName=a,this.sender=o}}class v extends h.C{constructor({abi:e,data:t,functionName:n,message:r}){let o,c,l,f,h;if(t&&"0x"!==t)try{c=(0,a.W)({abi:e,data:t});const{abiItem:n,errorName:r,args:o}=c;if("Error"===r)f=o[0];else if("Panic"===r){const[e]=o;f=i.fD[e]}else{const e=n?(0,s.B)(n,{includeName:!0}):void 0,t=n&&o?u({abiItem:n,args:o,includeFunctionName:!1,includeName:!1}):void 0;l=[e?`Error: ${e}`:"",t&&"()"!==t?` ${[...Array(r?.length??0).keys()].map(()=>" ").join("")}${t}`:""]}}catch(e){o=e}else r&&(f=r);o instanceof d.Wq&&(h=o.signature,l=[`Unable to decode signature "${h}" as it was not found on the provided ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${h}.`]),super(f&&"execution reverted"!==f||h?[`The contract function "${n}" reverted with the following ${h?"signature":"reason"}:`,f||h].join("\n"):`The contract function "${n}" reverted.`,{cause:o,metaMessages:l,name:"ContractFunctionRevertedError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reason",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=c,this.raw=t,this.reason=f,this.signature=h}}class w extends h.C{constructor({functionName:e}){super(`The contract function "${e}" returned no data ("0x").`,{metaMessages:["This could be due to any of the following:",` - The contract does not have the function "${e}",`," - The parameters passed to the contract function may be invalid, or"," - The address is not a contract."],name:"ContractFunctionZeroDataError"})}}class _ extends h.C{constructor({factory:e}){super("Deployment for counterfactual contract call failed"+(e?` for factory "${e}".`:""),{metaMessages:["Please ensure:","- The `factory` is a valid contract deployment factory (ie. Create2 Factory, ERC-4337 Factory, etc).","- The `factoryData` is a valid encoded function call for contract deployment function on the factory."],name:"CounterfactualDeploymentFailedError"})}}class S extends h.C{constructor({data:e,message:t}){super(t||"",{name:"RawContractError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=e}}},91170(e,t,n){"use strict";n.d(t,{L8:()=>l});var r=n(72529),i=n(46385),a=n(66949),s=n(82884);const o="effect/MetricLabel",u=Symbol.for(o);class c{key;value;[u]=u;_hash;constructor(e,t){this.key=e,this.value=t,this._hash=i.Yj(o+this.key+this.value)}[i.HR](){return this._hash}[r.HR](e){return f(e)&&this.key===e.key&&this.value===e.value}pipe(){return(0,a.tT)(this,arguments)}}const l=(e,t)=>new c(e,t),f=e=>(0,s.i5)(e,u)},91269(e,t,n){"use strict";n.d(t,{Ie:()=>i,jJ:()=>m,Ts:()=>a,Jt:()=>o,Im:()=>s,HP:()=>c,Tj:()=>p,qt:()=>d,Tk:()=>f,TS:()=>y,TF:()=>h,hZ:()=>u,Ej:()=>l});var r=n(49362);n(44815),r.eY,r.Fu;const i=r.Ie,a=(r.L8,r.Ts),s=r.Im,o=r.Jt,u=(r.Zd,r.$v,r.zy,r.Fp,r.it,r.hZ),c=r.HP,l=(r.zu,r.jO,r.Ej),f=(r.Tr,r.jT,r.bV,r.Tk),d=r.qt,h=(r.Nt,r.JP,r.KC,r.TF),p=(r.kg,r.Tj),m=(r.qI,r.jJ),y=r.TS;r.pb,r.oE,r.x1,r.i8,r.zN,r.Si},91484(e,t,n){"use strict";n.d(t,{F6:()=>M,In:()=>y,L8:()=>v,Ps:()=>h,Tx:()=>A,Ui:()=>T,Vh:()=>x,YW:()=>b,Zd:()=>l,_n:()=>s,b8:()=>p,dv:()=>w,hY:()=>I,qB:()=>k,qg:()=>_,rS:()=>c,sS:()=>m,sd:()=>u,zb:()=>o});var r=n(59329),i=n(69995),a=n(56312);const s=1,o=2,u=4,c=16,l=32,f=[0,s,o,u,c,l],d=e=>{switch(e){case l:return"CooperativeYielding";case c:return"WindDown";case u:return"RuntimeMetrics";case o:return"OpSupervision";case s:return"Interruption";case 0:return"None"}},h=e=>g(e,l),p=(0,r.XY)(2,(e,t)=>e&~t),m=(0,r.XY)(2,(e,t)=>e|t),y=e=>b(e)&&!E(e),b=e=>g(e,s),g=(0,r.XY)(2,(e,t)=>0!==(e&t)),v=(...e)=>e.reduce((e,t)=>e|t,0),w=v(0),_=e=>g(e,u),S=e=>new Set(f.filter(t=>g(e,t))),E=e=>g(e,c),k=e=>S(a.vu(e)&a.Sn(e)),x=e=>S(a.vu(e)&~a.Sn(e)),T=(0,r.XY)(2,(e,t)=>a.L8(e^t,t)),M=(0,r.XY)(2,(e,t)=>e&(a.B8(a.vu(t))|a.Sn(t))|a.vu(t)&a.Sn(t)),I=e=>`RuntimeFlagsPatch(enabled = (${Array.from(k(e)).map(e=>d(e)).join(", ")}), disabled = (${Array.from(x(e)).map(e=>d(e)).join(", ")}))`,A=i.L8({empty:a.Ie,diff:(e,t)=>T(e,t),combine:(e,t)=>a.hg(t)(e),patch:(e,t)=>M(t,e)})},91552(e){"use strict";var t=Object.prototype.toString,n=Math.max,r=function(e,t){for(var n=[],r=0;ri,PV:()=>h,YO:()=>p,Yj:()=>o,ai:()=>u,n9:()=>d,o:()=>l,w3:()=>m,zM:()=>c,zQ:()=>f});var r=n(59329);const i=e=>(t,n)=>t===n||e(t,n),a=(e,t)=>e===t,s=()=>a,o=s(),u=s(),c=s(),l=s(),f=(0,r.XY)(2,(e,t)=>i((n,r)=>e(t(n),t(r)))),d=f(u,e=>e.getTime()),h=(...e)=>{return t=e,i((e,n)=>{const r=Math.min(e.length,n.length);let i=0;for(const a of t){if(i>=r)break;if(!a(e[i],n[i]))return!1;i++}return!0});var t},p=e=>i((t,n)=>{if(t.length!==n.length)return!1;for(let r=0;r{const t=Object.keys(e);return i((n,r)=>{for(const i of t)if(!e[i](n[i],r[i]))return!1;return!0})}},92079(e,t,n){"use strict";var r=n(58983);e.exports=r.getPrototypeOf||null},92092(e,t,n){"use strict";e.exports=n(61894)},92155(e,t,n){"use strict";n.d(t,{db:()=>a,eV:()=>i});var r=n(93775);function i(e,{dir:t,size:n=32}={}){return"string"==typeof e?a(e,{dir:t,size:n}):function(e,{dir:t,size:n=32}={}){if(null===n)return e;if(e.length>n)throw new r.Fl({size:e.length,targetSize:n,type:"bytes"});const i=new Uint8Array(n);for(let r=0;r2*n)throw new r.Fl({size:Math.ceil(i.length/2),targetSize:n,type:"hex"});return`0x${i["right"===t?"padEnd":"padStart"](2*n,"0")}`}},92359(e,t,n){"use strict";n.d(t,{MM:()=>v,ft:()=>S});var r=n(74014),i=n(20582),a=n(93543),s=n(13940),o=n(64030),u=n(44535),c=n(22420),l=n(4667),f=n(95639),d=n(26480),h=n(26015),p=n(71768),m=n(42169),y=n(33932),b=n(54046),g=n(73989);const v=["blobVersionedHashes","chainId","fees","gas","nonce","type"],w=new Map,_=new p.A(128);async function S(e,t){let n=t;n.account??=e.account,n.parameters??=v;const{account:p,chain:S=e.chain,nonceManager:E,parameters:k}=n,x="function"==typeof S?.prepareTransactionRequest?{fn:S.prepareTransactionRequest,runAt:["beforeFillTransaction"]}:Array.isArray(S?.prepareTransactionRequest)?{fn:S.prepareTransactionRequest[0],runAt:S.prepareTransactionRequest[1].runAt}:void 0;let T;async function M(){if(T)return T;if(void 0!==n.chainId)return n.chainId;if(S)return S.id;const t=await(0,h.T)(e,g.T,"getChainId")({});return T=t,T}const I=p?(0,r.J)(p):p;let A=n.nonce;if(k.includes("nonce")&&void 0===A&&I&&E){const t=await M();A=await E.consume({address:I.address,chainId:t,client:e})}x?.fn&&x.runAt?.includes("beforeFillTransaction")&&(n=await x.fn({...n,chain:S},{phase:"beforeFillTransaction"}),A??=n.nonce);const N=(k.includes("blobVersionedHashes")||k.includes("sidecars"))&&n.kzg&&n.blobs||!1===_.get(e.uid)||!["fees","gas"].some(e=>k.includes(e))||!(k.includes("chainId")&&"number"!=typeof n.chainId||k.includes("nonce")&&"number"!=typeof A||k.includes("fees")&&"bigint"!=typeof n.gasPrice&&("bigint"!=typeof n.maxFeePerGas||"bigint"!=typeof n.maxPriorityFeePerGas)||k.includes("gas")&&"bigint"!=typeof n.gas)?n:await(0,h.T)(e,b.a,"fillTransaction")({...n,nonce:A}).then(t=>{const{chainId:r,from:i,gas:a,gasPrice:s,nonce:o,maxFeePerBlobGas:u,maxFeePerGas:c,maxPriorityFeePerGas:l,type:f,...d}=t.transaction;return _.set(e.uid,!0),{...n,...i?{from:i}:{},...f?{type:f}:{},...void 0!==r?{chainId:r}:{},...void 0!==a?{gas:a}:{},...void 0!==s?{gasPrice:s}:{},...void 0!==o?{nonce:o}:{},...void 0!==u?{maxFeePerBlobGas:u}:{},...void 0!==c?{maxFeePerGas:c}:{},...void 0!==l?{maxPriorityFeePerGas:l}:{},..."nonceKey"in d&&void 0!==d.nonceKey?{nonceKey:d.nonceKey}:{}}}).catch(t=>{const r=t;if("TransactionExecutionError"!==r.name)return n;const i=r.walk?.(e=>{const t=e;return"MethodNotFoundRpcError"===t.name||"MethodNotSupportedRpcError"===t.name});return i&&_.set(e.uid,!1),n});A??=N.nonce,n={...N,...I?{from:I?.address}:{},...A?{nonce:A}:{}};const{blobs:P,gas:O,kzg:R,type:C}=n;let B;async function F(){return B||(B=await(0,h.T)(e,s.g,"getBlock")({blockTag:"latest"}),B)}if(x?.fn&&x.runAt?.includes("beforeFillParameters")&&(n=await x.fn({...n,chain:S},{phase:"beforeFillParameters"})),k.includes("nonce")&&void 0===A&&I&&!E&&(n.nonce=await(0,h.T)(e,o.y,"getTransactionCount")({address:I.address,blockTag:"pending"})),(k.includes("blobVersionedHashes")||k.includes("sidecars"))&&P&&R){const e=(0,c.S)({blobs:P,kzg:R});if(k.includes("blobVersionedHashes")){const t=(0,f.d)({commitments:e,to:"hex"});n.blobVersionedHashes=t}if(k.includes("sidecars")){const t=(0,l.t)({blobs:P,commitments:e,kzg:R}),r=(0,d.T)({blobs:P,commitments:e,proofs:t,to:"hex"});n.sidecars=r}}if(k.includes("chainId")&&(n.chainId=await M()),(k.includes("fees")||k.includes("type"))&&void 0===C)try{n.type=(0,y.L)(n)}catch{let t=w.get(e.uid);if(void 0===t){const n=await F();t="bigint"==typeof n?.baseFeePerGas,w.set(e.uid,t)}n.type=t?"eip1559":"legacy"}if(k.includes("fees"))if("legacy"!==n.type&&"eip2930"!==n.type){if(void 0===n.maxFeePerGas||void 0===n.maxPriorityFeePerGas){const t=await F(),{maxFeePerGas:r,maxPriorityFeePerGas:a}=await(0,i.O)(e,{block:t,chain:S,request:n});if(void 0===n.maxPriorityFeePerGas&&n.maxFeePerGas&&n.maxFeePerGasi,D5:()=>r,Ge:()=>a});const r=/^(.*)\[([0-9]*)\]$/,i=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,a=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/},92666(e,t,n){"use strict";n.d(t,{UG:()=>s,xo:()=>i,zz:()=>a});var r=n(20094);class i extends r.C{constructor({signature:e}){super("Failed to parse ABI item.",{details:`parseAbiItem(${JSON.stringify(e,null,2)})`,docsPath:"/api/human#parseabiitem-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiItemError"})}}class a extends r.C{constructor({type:e}){super("Unknown type.",{metaMessages:[`Type "${e}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}}class s extends r.C{constructor({type:e}){super("Unknown type.",{metaMessages:[`Type "${e}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}}},92772(e,t,n){"use strict";var r=t,i=n(23145),a=n(45366),s=n(70004);r.assert=a,r.toArray=s.toArray,r.zero2=s.zero2,r.toHex=s.toHex,r.encode=s.encode,r.getNAF=function(e,t,n){var r,i=new Array(Math.max(e.bitLength(),n)+1);for(r=0;r(a>>1)-1?(a>>1)-u:u,s.isubn(o)):o=0,i[r]=o,s.iushrn(1)}return i},r.getJSF=function(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var r,i=0,a=0;e.cmpn(-i)>0||t.cmpn(-a)>0;){var s,o,u=e.andln(3)+i&3,c=t.andln(3)+a&3;3===u&&(u=-1),3===c&&(c=-1),s=1&u?3!=(r=e.andln(7)+i&7)&&5!==r||2!==c?u:-u:0,n[0].push(s),o=1&c?3!=(r=t.andln(7)+a&7)&&5!==r||2!==u?c:-c:0,n[1].push(o),2*i===s+1&&(i=1-i),2*a===o+1&&(a=1-a),e.iushrn(1),t.iushrn(1)}return n},r.cachedProperty=function(e,t,n){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new i(e,"hex","le")}},92783(e,t,n){"use strict";var r=n(42649),i=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=l;var a=n(61037),s=n(66573);n(33213)(l,a);for(var o=i(s.prototype),u=0;ug});var r=n(74014),i=n(2273),a=n(65696),s=n(75209),o=n(49925),u=n(60077),c=n(85327);class l extends i.C{constructor(e,{account:t,docsPath:n,chain:r,data:i,gas:a,gasPrice:s,maxFeePerGas:l,maxPriorityFeePerGas:f,nonce:d,to:h,value:p}){const m=(0,c.aO)({from:t?.address,to:h,value:void 0!==p&&`${(0,o.c)(p)} ${r?.nativeCurrency?.symbol||"ETH"}`,data:i,gas:a,gasPrice:void 0!==s&&`${(0,u.Q)(s)} gwei`,maxFeePerGas:void 0!==l&&`${(0,u.Q)(l)} gwei`,maxPriorityFeePerGas:void 0!==f&&`${(0,u.Q)(f)} gwei`,nonce:d});super(e.shortMessage,{cause:e,docsPath:n,metaMessages:[...e.metaMessages?[...e.metaMessages," "]:[],"Estimate Gas Arguments:",m].filter(Boolean),name:"EstimateGasExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=e}}var f=n(61355),d=n(77411),h=n(98156),p=n(77576),m=n(61144),y=n(42169),b=n(92359);async function g(e,t){const{account:n=e.account,prepare:o=!0}=t,u=n?(0,r.J)(n):void 0,c=Array.isArray(o)?o:"local"!==u?.type?["blobVersionedHashes"]:void 0;try{const n=await(async()=>t.to?t.to:t.authorizationList&&t.authorizationList.length>0?await(0,a.g)({authorization:t.authorizationList[0]}).catch(()=>{throw new i.C("`to` is required. Could not infer from `authorizationList`")}):void 0)(),{accessList:r,authorizationList:l,blobs:f,blobVersionedHashes:d,blockNumber:g,blockTag:v,data:w,gas:_,gasPrice:S,maxFeePerBlobGas:E,maxFeePerGas:k,maxPriorityFeePerGas:x,nonce:T,value:M,stateOverride:I,...A}=o?await(0,b.ft)(e,{...t,parameters:c,to:n}):t;if(_&&t.gas!==_)return _;const N=("bigint"==typeof g?(0,s.cK)(g):void 0)||v,P=(0,m.yH)(I);(0,y.c)(t);const O=e.chain?.formatters?.transactionRequest?.format,R=(O||p.Bv)({...(0,h.o)(A,{format:O}),account:u,accessList:r,authorizationList:l,blobs:f,blobVersionedHashes:d,data:w,gasPrice:S,maxFeePerBlobGas:E,maxFeePerGas:k,maxPriorityFeePerGas:x,nonce:T,to:n,value:M},"estimateGas");return BigInt(await e.request({method:"eth_estimateGas",params:P?[R,N??e.experimental_blockTag??"latest",P]:N?[R,N]:[R]}))}catch(n){throw function(e,{docsPath:t,...n}){const r=(()=>{const t=(0,d.l)(e,n);return t instanceof f.RM?e:t})();return new l(r,{docsPath:t,...n})}(n,{...t,account:u,chain:e.chain})}}},93604(e,t){"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0>>1,i=e[r];if(!(0>>1;ra(u,n))ca(l,u)?(e[r]=l,e[c]=n,r=c):(e[r]=u,e[o]=n,r=o);else{if(!(ca(l,n)))break e;e[r]=l,e[c]=n,r=c}}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var s=performance;t.unstable_now=function(){return s.now()}}else{var o=Date,u=o.now();t.unstable_now=function(){return o.now()-u}}var c=[],l=[],f=1,d=null,h=3,p=!1,m=!1,y=!1,b=!1,g="function"==typeof setTimeout?setTimeout:null,v="function"==typeof clearTimeout?clearTimeout:null,w="undefined"!=typeof setImmediate?setImmediate:null;function _(e){for(var t=r(l);null!==t;){if(null===t.callback)i(l);else{if(!(t.startTime<=e))break;i(l),t.sortIndex=t.expirationTime,n(c,t)}t=r(l)}}function S(e){if(y=!1,_(e),!m)if(null!==r(c))m=!0,k||(k=!0,E());else{var t=r(l);null!==t&&O(S,t.startTime-e)}}var E,k=!1,x=-1,T=5,M=-1;function I(){return!(!b&&t.unstable_now()-Me&&I());){var s=d.callback;if("function"==typeof s){d.callback=null,h=d.priorityLevel;var o=s(d.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof o){d.callback=o,_(e),n=!0;break t}d===r(c)&&i(c),_(e)}else i(c);d=r(c)}if(null!==d)n=!0;else{var u=r(l);null!==u&&O(S,u.startTime-e),n=!1}}break e}finally{d=null,h=a,p=!1}n=void 0}}finally{n?E():k=!1}}}if("function"==typeof w)E=function(){w(A)};else if("undefined"!=typeof MessageChannel){var N=new MessageChannel,P=N.port2;N.port1.onmessage=A,E=function(){P.postMessage(null)}}else E=function(){g(A,0)};function O(e,n){x=g(function(){e(t.unstable_now())},n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_forceFrameRate=function(e){0>e||125s?(e.sortIndex=a,n(l,e),null===r(c)&&e===r(l)&&(y?(v(x),x=-1):y=!0,O(S,a-s))):(e.sortIndex=o,n(c,e),m||p||(m=!0,k||(k=!0,E()))),e},t.unstable_shouldYield=I,t.unstable_wrapCallback=function(e){var t=h;return function(){var n=h;h=t;try{return e.apply(this,arguments)}finally{h=n}}}},93775(e,t,n){"use strict";n.d(t,{Fl:()=>a,NV:()=>s,ii:()=>i});var r=n(2273);class i extends r.C{constructor({offset:e,position:t,size:n}){super(`Slice ${"start"===t?"starting":"ending"} at offset "${e}" is out-of-bounds (size: ${n}).`,{name:"SliceOffsetOutOfBoundsError"})}}class a extends r.C{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${e}) exceeds padding size (${t}).`,{name:"SizeExceedsPaddingSizeError"})}}class s extends r.C{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} is expected to be ${t} ${n} long, but is ${e} ${n} long.`,{name:"InvalidBytesLengthError"})}}},93976(e,t,n){"use strict";n.d(t,{Em:()=>a,MS:()=>i,Xs:()=>o});var r=n(20490);r.$n,r.O4,r.TW,r.le;const i=r.MS,a=r.Em,s=(r.Pe,r.C6);r.bw;class o extends s{}},94622(e,t,n){"use strict";n.d(t,{Hi:()=>i,ft:()=>a,uj:()=>o});var r=n(2273);class i extends r.C{constructor({address:e}){super(`State for account "${e}" is set multiple times.`,{name:"AccountStateConflictError"})}}class a extends r.C{constructor(){super("state and stateDiff are set on the same account.",{name:"StateAssignmentConflictError"})}}function s(e){return e.reduce((e,{slot:t,value:n})=>`${e} ${t}: ${n}\n`,"")}function o(e){return e.reduce((e,{address:t,...n})=>{let r=`${e} ${t}:\n`;return n.nonce&&(r+=` nonce: ${n.nonce}\n`),n.balance&&(r+=` balance: ${n.balance}\n`),n.code&&(r+=` code: ${n.code}\n`),n.state&&(r+=" state:\n",r+=s(n.state)),n.stateDiff&&(r+=" stateDiff:\n",r+=s(n.stateDiff)),r}," State Override:\n").slice(0,-1)}},95516(e,t,n){"use strict";n.d(t,{L8:()=>p,k_:()=>l});var r=n(17388),i=n(47726),a=n(59329),s=n(46385),o=n(95644),u=n(89921);const c=Symbol.for("effect/Random"),l=i.Io("effect/Random");class f{seed;[c]=c;PRNG;constructor(e){this.seed=e,this.PRNG=new o.Cz(e)}get next(){return u.OH5(()=>this.PRNG.number())}get nextBoolean(){return u.TjK(this.next,e=>e>.5)}get nextInt(){return u.OH5(()=>this.PRNG.integer(Number.MAX_SAFE_INTEGER))}nextRange(e,t){return u.TjK(this.next,n=>(t-e)*n+e)}nextIntBetween(e,t){return u.OH5(()=>this.PRNG.integer(t-e)+e)}shuffle(e){return d(e,e=>this.nextIntBetween(0,e))}}const d=(e,t)=>u.DYE(()=>(0,a.Fs)(u.OH5(()=>Array.from(e)),u.qIB(e=>{const n=[];for(let t=e.length;t>=2;t-=1)n.push(t);return(0,a.Fs)(n,u.QZV(n=>(0,a.Fs)(t(n),u.TjK(t=>h(e,n-1,t)))),u.as(r.Ts(e)))}))),h=(e,t,n)=>{const r=e[t];return e[t]=e[n],e[n]=r,e},p=e=>new f(s.tW(e))},95611(e,t,n){"use strict";n.d(t,{X:()=>b,J:()=>y});var r=n(56342),i=n(97932),a=n(70121),s=n(65144),o=n(16720),u=n(348),c=n(75672),l=n(33640),f=n(28780),d=n(75879);const h="/docs/contract/encodeErrorResult";function p(e){const{abi:t,errorName:n,args:r}=e;let i=t[0];if(n){const e=(0,d.iY)({abi:t,args:r,name:n});if(!e)throw new a.yy(n,{docsPath:h});i=e}if("error"!==i.type)throw new a.yy(void 0,{docsPath:h});const s=(0,c.B)(i),u=(0,o.V)(s);let p="0x";if(r&&r.length>0){if(!i.inputs)throw new a.ZP(i.name,{docsPath:h});p=(0,f.h)(i.inputs,r)}return(0,l.aP)([u,p])}const m="/docs/contract/encodeFunctionResult",y="x-batch-gateway:true";async function b(e){const{data:t,ccipRequest:n}=e,{args:[l]}=function(e){const{abi:t,data:n}=e,r=(0,s.di)(n,0,4),i=t.find(e=>"function"===e.type&&r===(0,o.V)((0,c.B)(e)));if(!i)throw new a.EB(r,{docsPath:"/docs/contract/decodeFunctionData"});return{functionName:i.name,args:"inputs"in i&&i.inputs&&i.inputs.length>0?(0,u.n)(i.inputs,(0,s.di)(n,4)):void 0}}({abi:r.b2,data:t}),h=[],g=[];return await Promise.all(l.map(async(e,t)=>{try{g[t]=e.urls.includes(y)?await b({data:e.data,ccipRequest:n}):await n(e),h[t]=!1}catch(e){h[t]=!0,g[t]="HttpRequestError"===(a=e).name&&a.status?p({abi:r.b2,errorName:"HttpError",args:[a.status,a.shortMessage]}):p({abi:[i.Mc],errorName:"Error",args:["shortMessage"in a?a.shortMessage:a.message]})}var a})),function(e){const{abi:t,functionName:n,result:r}=e;let i=t[0];if(n){const e=(0,d.iY)({abi:t,name:n});if(!e)throw new a.Iz(n,{docsPath:m});i=e}if("function"!==i.type)throw new a.Iz(void 0,{docsPath:m});if(!i.outputs)throw new a.MR(i.name,{docsPath:m});const s=(()=>{if(0===i.outputs.length)return[];if(1===i.outputs.length)return[r];if(Array.isArray(r))return r;throw new a.dm(r)})();return(0,f.h)(i.outputs,s)}({abi:r.b2,functionName:"query",result:[h,g]})}},95639(e,t,n){"use strict";n.d(t,{d:()=>u});var r=n(75209);const i=n(23777).sc;var a=n(84015),s=n(81127);function o(e){const{commitment:t,version:n=1}=e,o=e.to??("string"==typeof t?"hex":"bytes"),u=function(e){const t=i((0,a.q)(e,{strict:!1})?(0,s.ZJ)(e):e);return t}(t);return u.set([n],0),"bytes"===o?u:(0,r.My)(u)}function u(e){const{commitments:t,version:n}=e,r=e.to??("string"==typeof t[0]?"hex":"bytes"),i=[];for(const e of t)i.push(o({commitment:e,to:r,version:n}));return i}},95644(e,t,n){"use strict";n.d(t,{BW:()=>s,Cz:()=>o,Hi:()=>d,WT:()=>l,ku:()=>f,sn:()=>p}),n(59329);var r=n(55661),i=n(65668),a=n(82884);Symbol.iterator;class s{self;called=!1;constructor(e){this.self=e}next(e){return this.called?{value:e,done:!0}:(this.called=!0,{value:this.self,done:!1})}return(e){return{value:e,done:!0}}throw(e){throw e}[Symbol.iterator](){return new s(this.self)}}class o{_state;constructor(e,t,n,r){return(0,a.wD)(t)&&(0,a.wD)(e)?(t=4294967295*Math.random()>>>0,e=0):(0,a.wD)(t)&&(t=e,e=0),(0,a.wD)(r)&&(0,a.wD)(n)?(r=this._state?this._state[3]:4150755663,n=this._state?this._state[2]:335903614):(0,a.wD)(r)&&(r=n,n=0),this._state=new Int32Array([0,0,n>>>0,(1|(r||0))>>>0]),this._next(),u(this._state,this._state[0],this._state[1],e>>>0,t>>>0),this._next(),this}getState(){return[this._state[0],this._state[1],this._state[2],this._state[3]]}setState(e){this._state[0]=e[0],this._state[1]=e[1],this._state[2]=e[2],this._state[3]=1|e[3]}integer(e){return Math.round(this.number()*Number.MAX_SAFE_INTEGER)%e}number(){return(1*(67108863&this._next())*134217728+1*(134217727&this._next()))/9007199254740992}_next(){const e=this._state[0]>>>0,t=this._state[1]>>>0;!function(e,t,n,r,i){let a=32557*(n>>>16)>>>0,s=19605*(65535&n)>>>0,o=32557*(65535&n)>>>0,u=19605*(n>>>16)+((s>>>16)+(a>>>16))>>>0;s=s<<16>>>0,o=o+s>>>0,o>>>0>>0&&(u=u+1>>>0),a=a<<16>>>0,o=o+a>>>0,o>>>0>>0&&(u=u+1>>>0),u=u+Math.imul(n,1481765933)>>>0,u=u+Math.imul(t,i)>>>0,e[0]=u,e[1]=o}(this._state,e,t,0,1284865837),u(this._state,this._state[0],this._state[1],this._state[2],this._state[3]);let n=e>>>18,r=(t>>>18|e<<14)>>>0;n=(n^e)>>>0,r=(r^t)>>>0;const i=(r>>>27|n<<5)>>>0,a=e>>>27;return(i>>>a|i<<((-a>>>0&31)>>>0))>>>0}}function u(e,t,n,r,i){let a=t+r>>>0;const s=n+i>>>0;s>>>0>>0&&(a=a+1|0),e[0]=a,e[1]=s}const c=Symbol.for("effect/Utils/YieldWrap");class l{#e;constructor(e){this.#e=e}[c](){return this.#e}}function f(e){if("object"==typeof e&&null!==e&&c in e)return e[c]();throw new Error((0,i.k)("yieldWrapGet"))}const d=(0,r.V)("effect/Utils/isStructuralRegion",()=>({enabled:!1,tester:void 0})),h={effect_internal_function:e=>e()},p=!0===h.effect_internal_function(()=>(new Error).stack)?.includes("effect_internal_function")?h.effect_internal_function:e=>{try{return e()}finally{}}},95775(e,t,n){"use strict";n.d(t,{E:()=>r});const r=1},95894(e,t,n){"use strict";var r,i=n(58983),a=n(18052),s=n(88096),o=n(37049),u=n(21977),c=n(32873),l=n(4002),f=n(24002),d=n(38105),h=n(28299),p=n(65243),m=n(9465),y=n(65587),b=n(76221),g=n(89068),v=Function,w=function(e){try{return v('"use strict"; return ('+e+").constructor;")()}catch(e){}},_=n(73906),S=n(37526),E=function(){throw new l},k=_?function(){try{return E}catch(e){try{return _(arguments,"callee").get}catch(e){return E}}}():E,x=n(52040)(),T=n(83439),M=n(92079),I=n(41065),A=n(68633),N=n(17821),P={},O="undefined"!=typeof Uint8Array&&T?T(Uint8Array):r,R={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":x&&T?T([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":P,"%AsyncGenerator%":P,"%AsyncGeneratorFunction%":P,"%AsyncIteratorPrototype%":P,"%Atomics%":"undefined"==typeof Atomics?r:Atomics,"%BigInt%":"undefined"==typeof BigInt?r:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?r:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?r:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":a,"%eval%":eval,"%EvalError%":s,"%Float16Array%":"undefined"==typeof Float16Array?r:Float16Array,"%Float32Array%":"undefined"==typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":v,"%GeneratorFunction%":P,"%Int8Array%":"undefined"==typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":x&&T?T(T([][Symbol.iterator]())):r,"%JSON%":"object"==typeof JSON?JSON:r,"%Map%":"undefined"==typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&x&&T?T((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":i,"%Object.getOwnPropertyDescriptor%":_,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?r:Promise,"%Proxy%":"undefined"==typeof Proxy?r:Proxy,"%RangeError%":o,"%ReferenceError%":u,"%Reflect%":"undefined"==typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&x&&T?T((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":x&&T?T(""[Symbol.iterator]()):r,"%Symbol%":x?Symbol:r,"%SyntaxError%":c,"%ThrowTypeError%":k,"%TypedArray%":O,"%TypeError%":l,"%Uint8Array%":"undefined"==typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?r:Uint32Array,"%URIError%":f,"%WeakMap%":"undefined"==typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?r:WeakSet,"%Function.prototype.call%":N,"%Function.prototype.apply%":A,"%Object.defineProperty%":S,"%Object.getPrototypeOf%":M,"%Math.abs%":d,"%Math.floor%":h,"%Math.max%":p,"%Math.min%":m,"%Math.pow%":y,"%Math.round%":b,"%Math.sign%":g,"%Reflect.getPrototypeOf%":I};if(T)try{null.error}catch(e){var C=T(T(e));R["%Error.prototype%"]=C}var B=function e(t){var n;if("%AsyncFunction%"===t)n=w("async function () {}");else if("%GeneratorFunction%"===t)n=w("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=w("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var i=e("%AsyncGenerator%");i&&T&&(n=T(i.prototype))}return R[t]=n,n},F={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},L=n(62460),j=n(2204),D=L.call(N,Array.prototype.concat),U=L.call(A,Array.prototype.splice),z=L.call(N,String.prototype.replace),$=L.call(N,String.prototype.slice),V=L.call(N,RegExp.prototype.exec),K=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,Y=/\\(\\)?/g,q=function(e,t){var n,r=e;if(j(F,r)&&(r="%"+(n=F[r])[0]+"%"),j(R,r)){var i=R[r];if(i===P&&(i=B(r)),void 0===i&&!t)throw new l("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:i}}throw new c("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new l("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new l('"allowMissing" argument must be a boolean');if(null===V(/^%?[^%]*%?$/,e))throw new c("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=function(e){var t=$(e,0,1),n=$(e,-1);if("%"===t&&"%"!==n)throw new c("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new c("invalid intrinsic syntax, expected opening `%`");var r=[];return z(e,K,function(e,t,n,i){r[r.length]=n?z(i,Y,"$1"):t||e}),r}(e),r=n.length>0?n[0]:"",i=q("%"+r+"%",t),a=i.name,s=i.value,o=!1,u=i.alias;u&&(r=u[0],U(n,D([0,1],u)));for(var f=1,d=!0;f=n.length){var y=_(s,h);s=(d=!!y)&&"get"in y&&!("originalValue"in y.get)?y.get:s[h]}else d=j(s,h),s=s[h];d&&!o&&(R[a]=s)}}return s}},96349(e,t,n){"use strict";n.d(t,{X:()=>s});var r=n(78451),i=n(75209),a=n(88196);async function s(e,t){const{address:n,abi:s,args:o,eventName:u,fromBlock:c,strict:l,toBlock:f}=t,d=(0,a.g)(e,{method:"eth_newFilter"}),h=u?(0,r.R)({abi:s,args:o,eventName:u}):void 0,p=await e.request({method:"eth_newFilter",params:[{address:n,fromBlock:"bigint"==typeof c?(0,i.cK)(c):c,toBlock:"bigint"==typeof f?(0,i.cK)(f):f,topics:h}]});return{abi:s,args:o,eventName:u,id:p,request:d(p),strict:Boolean(l),type:"event"}}},96359(e,t,n){"use strict";var r=n(23145),i=n(33213),a=n(14248),s=n(92772);function o(e){a.call(this,"mont",e),this.a=new r(e.a,16).toRed(this.red),this.b=new r(e.b,16).toRed(this.red),this.i4=new r(4).toRed(this.red).redInvm(),this.two=new r(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function u(e,t,n){a.BasePoint.call(this,e,"projective"),null===t&&null===n?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new r(t,16),this.z=new r(n,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(o,a),e.exports=o,o.prototype.validate=function(e){var t=e.normalize().x,n=t.redSqr(),r=n.redMul(t).redAdd(n.redMul(this.a)).redAdd(t);return 0===r.redSqrt().redSqr().cmp(r)},i(u,a.BasePoint),o.prototype.decodePoint=function(e,t){return this.point(s.toArray(e,t),1)},o.prototype.point=function(e,t){return new u(this,e,t)},o.prototype.pointFromJSON=function(e){return u.fromJSON(this,e)},u.prototype.precompute=function(){},u.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},u.fromJSON=function(e,t){return new u(e,t[0],t[1]||e.one)},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},u.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),n=e.redSub(t),r=e.redMul(t),i=n.redMul(t.redAdd(this.curve.a24.redMul(n)));return this.curve.point(r,i)},u.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.diffAdd=function(e,t){var n=this.x.redAdd(this.z),r=this.x.redSub(this.z),i=e.x.redAdd(e.z),a=e.x.redSub(e.z).redMul(n),s=i.redMul(r),o=t.z.redMul(a.redAdd(s).redSqr()),u=t.x.redMul(a.redISub(s).redSqr());return this.curve.point(o,u)},u.prototype.mul=function(e){for(var t=e.clone(),n=this,r=this.curve.point(null,null),i=[];0!==t.cmpn(0);t.iushrn(1))i.push(t.andln(1));for(var a=i.length-1;a>=0;a--)0===i[a]?(n=n.diffAdd(r,this),r=r.dbl()):(r=n.diffAdd(r,this),n=n.dbl());return r},u.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},u.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},96602(e,t,n){"use strict";var r=n(72258).Buffer,i=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=u,this.end=c,t=4;break;case"utf8":this.fillLast=o,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=d,void(this.end=h)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function s(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function o(e){var t=this.lastTotal-this.lastNeed,n=function(e,t){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function u(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function d(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}t.I=a,a.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0?(i>0&&(e.lastNeed=i-1),i):--r=0?(i>0&&(e.lastNeed=i-2),i):--r=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},a.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},96811(e,t,n){"use strict";var r=n(72258).Buffer,i=n(70950);function a(e,t){this._block=r.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}a.prototype.update=function(e,t){e=i(e,t||"utf8");for(var n=this._block,r=this._blockSize,a=e.length,s=this._len,o=0;o=this._finalSize&&(this._update(this._block),this._block.fill(0));var n=8*this._len;if(n<=4294967295)this._block.writeUInt32BE(n,this._blockSize-4);else{var r=(4294967295&n)>>>0,i=(n-r)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(r,this._blockSize-4)}this._update(this._block);var a=this._hash();return e?a.toString(e):a},a.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=a},97103(e,t,n){"use strict";var r=n(45366),i=n(33213);function a(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function s(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function o(e){return 1===e.length?"0"+e:e}function u(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=i,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i>6|192,n[r++]=63&s|128):a(e,i)?(s=65536+((1023&s)<<10)+(1023&e.charCodeAt(++i)),n[r++]=s>>18|240,n[r++]=s>>12&63|128,n[r++]=s>>6&63|128,n[r++]=63&s|128):(n[r++]=s>>12|224,n[r++]=s>>6&63|128,n[r++]=63&s|128)}else for(i=0;i>>0}return s},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,i=0;r>>24,n[i+1]=a>>>16&255,n[i+2]=a>>>8&255,n[i+3]=255&a):(n[i+3]=a>>>24,n[i+2]=a>>>16&255,n[i+1]=a>>>8&255,n[i]=255&a)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,i){return e+t+n+r+i>>>0},t.sum64=function(e,t,n,r){var i=e[t],a=r+e[t+1]>>>0,s=(a>>0,e[t+1]=a},t.sum64_hi=function(e,t,n,r){return(t+r>>>0>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,i,a,s,o){var u=0,c=t;return u+=(c=c+r>>>0)>>0)>>0)>>0},t.sum64_4_lo=function(e,t,n,r,i,a,s,o){return t+r+a+o>>>0},t.sum64_5_hi=function(e,t,n,r,i,a,s,o,u,c){var l=0,f=t;return l+=(f=f+r>>>0)>>0)>>0)>>0)>>0},t.sum64_5_lo=function(e,t,n,r,i,a,s,o,u,c){return t+r+a+o+c>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},97216(e,t,n){"use strict";var r=n(37279),i="undefined"==typeof globalThis?n.g:globalThis;e.exports=function(){for(var e=[],t=0;ta});var r=n(83815),i=n(462);function a(e,t){if(!(0,i.P)(e,{strict:!1}))throw new r.M({address:e});if(!(0,i.P)(t,{strict:!1}))throw new r.M({address:t});return e.toLowerCase()===t.toLowerCase()}},97932(e,t,n){"use strict";n.d(t,{J9:()=>a,Mc:()=>i,fD:()=>r});const r={1:"An `assert` condition failed.",17:"Arithmetic operation resulted in underflow or overflow.",18:"Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).",33:"Attempted to convert to an invalid type.",34:"Attempted to access a storage byte array that is incorrectly encoded.",49:"Performed `.pop()` on an empty array",50:"Array index is out of bounds.",65:"Allocated too much memory or created an array which is too large.",81:"Attempted to call a zero-initialized variable of internal function type."},i={inputs:[{name:"message",type:"string"}],name:"Error",type:"error"},a={inputs:[{name:"reason",type:"uint256"}],name:"Panic",type:"error"}},98156(e,t,n){"use strict";function r(e,{format:t}){if(!t)return{};const n={};return function t(r){const i=Object.keys(r);for(const a of i)a in e&&(n[a]=e[a]),r[a]&&"object"==typeof r[a]&&!Array.isArray(r[a])&&t(r[a])}(t(e||{})),n}n.d(t,{o:()=>r})},98490(e,t,n){"use strict";n.d(t,{K:()=>r});const r=[{type:"constructor",inputs:[{name:"_incoLightningAddress",internalType:"address",type:"address"}],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"ADD_NODE_RESULT_STRUCT_HASH",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[],name:"BOOTSTRAP_RESULT_STRUCT_HASH",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[],name:"QUOTE_VERIFIER_VERSION",outputs:[{name:"",internalType:"uint16",type:"uint16"}],stateMutability:"view"},{type:"function",inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[],name:"UPGRADE_RESULT_STRUCT_HASH",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[{name:"addNodeResult",internalType:"struct AddNodeResult",type:"tuple",components:[{name:"networkPubkey",internalType:"bytes",type:"bytes"}]}],name:"addNodeResultDigest",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[{name:"voucher",internalType:"struct AllowanceVoucher",type:"tuple",components:[{name:"sessionNonce",internalType:"bytes32",type:"bytes32"},{name:"verifyingContract",internalType:"address",type:"address"},{name:"callFunction",internalType:"bytes4",type:"bytes4"},{name:"sharerArgData",internalType:"bytes",type:"bytes"}]}],name:"allowanceVoucherDigest",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[{name:"newMrAggregated",internalType:"bytes32",type:"bytes32"}],name:"approveNewTeeVersion",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"index",internalType:"uint256",type:"uint256"}],name:"approvedTeeVersions",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[{name:"bootstrapResult",internalType:"struct BootstrapResult",type:"tuple",components:[{name:"ecies_pubkey",internalType:"bytes",type:"bytes"}]}],name:"bootstrapResultDigest",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[{name:"mrTd",internalType:"bytes",type:"bytes"},{name:"rtMr0",internalType:"bytes",type:"bytes"},{name:"rtMr1",internalType:"bytes",type:"bytes"},{name:"rtMr2",internalType:"bytes",type:"bytes"}],name:"computeMrAggregated",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"pure"},{type:"function",inputs:[{name:"decryption",internalType:"struct DecryptionAttestation",type:"tuple",components:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"value",internalType:"bytes32",type:"bytes32"}]}],name:"decryptionAttestationDigest",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[],name:"eciesPubkey",outputs:[{name:"",internalType:"bytes",type:"bytes"}],stateMutability:"view"},{type:"function",inputs:[],name:"eip712Domain",outputs:[{name:"fields",internalType:"bytes1",type:"bytes1"},{name:"name",internalType:"string",type:"string"},{name:"version",internalType:"string",type:"string"},{name:"chainId",internalType:"uint256",type:"uint256"},{name:"verifyingContract",internalType:"address",type:"address"},{name:"salt",internalType:"bytes32",type:"bytes32"},{name:"extensions",internalType:"uint256[]",type:"uint256[]"}],stateMutability:"view"},{type:"function",inputs:[{name:"account",internalType:"address",type:"address"}],name:"getActiveVouchersSessionNonce",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[],name:"getEIP712Name",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[],name:"getEIP712Version",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{type:"function",inputs:[{name:"index",internalType:"uint256",type:"uint256"}],name:"getSignerAtIndex",outputs:[{name:"",internalType:"address",type:"address"}],stateMutability:"view"},{type:"function",inputs:[],name:"getSignersCount",outputs:[{name:"",internalType:"uint256",type:"uint256"}],stateMutability:"view"},{type:"function",inputs:[],name:"getThreshold",outputs:[{name:"",internalType:"uint256",type:"uint256"}],stateMutability:"view"},{type:"function",inputs:[{name:"owner",internalType:"address",type:"address"},{name:"name",internalType:"string",type:"string"},{name:"version",internalType:"string",type:"string"},{name:"quoteVerifier",internalType:"contract IQuoteVerifier",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"account",internalType:"address",type:"address"},{name:"proof",internalType:"struct AllowanceProof",type:"tuple",components:[{name:"sharer",internalType:"address",type:"address"},{name:"voucher",internalType:"struct AllowanceVoucher",type:"tuple",components:[{name:"sessionNonce",internalType:"bytes32",type:"bytes32"},{name:"verifyingContract",internalType:"address",type:"address"},{name:"callFunction",internalType:"bytes4",type:"bytes4"},{name:"sharerArgData",internalType:"bytes",type:"bytes"}]},{name:"voucherSignature",internalType:"bytes",type:"bytes"},{name:"requesterArgData",internalType:"bytes",type:"bytes"}]}],name:"isAllowedWithProof",outputs:[{name:"",internalType:"bool",type:"bool"}],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"isBootstrapComplete",outputs:[{name:"",internalType:"bool",type:"bool"}],stateMutability:"view"},{type:"function",inputs:[{name:"signerAddress",internalType:"address",type:"address"}],name:"isSigner",outputs:[{name:"",internalType:"bool",type:"bool"}],stateMutability:"view"},{type:"function",inputs:[{name:"decryption",internalType:"struct DecryptionAttestation",type:"tuple",components:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"value",internalType:"bytes32",type:"bytes32"}]},{name:"signatures",internalType:"bytes[]",type:"bytes[]"}],name:"isValidDecryptionAttestation",outputs:[{name:"",internalType:"bool",type:"bool"}],stateMutability:"view"},{type:"function",inputs:[{name:"digest",internalType:"bytes32",type:"bytes32"},{name:"signatures",internalType:"bytes[]",type:"bytes[]"}],name:"isValidSignature",outputs:[{name:"",internalType:"bool",type:"bool"}],stateMutability:"view"},{type:"function",inputs:[],name:"owner",outputs:[{name:"",internalType:"address",type:"address"}],stateMutability:"view"},{type:"function",inputs:[{name:"tdReport",internalType:"struct Td10ReportBody",type:"tuple",components:[{name:"teeTcbSvn",internalType:"bytes16",type:"bytes16"},{name:"mrSeam",internalType:"bytes",type:"bytes"},{name:"mrsignerSeam",internalType:"bytes",type:"bytes"},{name:"seamAttributes",internalType:"bytes8",type:"bytes8"},{name:"tdAttributes",internalType:"bytes8",type:"bytes8"},{name:"xFAM",internalType:"bytes8",type:"bytes8"},{name:"mrTd",internalType:"bytes",type:"bytes"},{name:"mrConfigId",internalType:"bytes",type:"bytes"},{name:"mrOwner",internalType:"bytes",type:"bytes"},{name:"mrOwnerConfig",internalType:"bytes",type:"bytes"},{name:"rtMr0",internalType:"bytes",type:"bytes"},{name:"rtMr1",internalType:"bytes",type:"bytes"},{name:"rtMr2",internalType:"bytes",type:"bytes"},{name:"rtMr3",internalType:"bytes",type:"bytes"},{name:"reportData",internalType:"bytes",type:"bytes"}]}],name:"parseReport",outputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"pure"},{type:"function",inputs:[{name:"rawQuote",internalType:"bytes",type:"bytes"}],name:"parseTd10ReportBody",outputs:[{name:"report",internalType:"struct Td10ReportBody",type:"tuple",components:[{name:"teeTcbSvn",internalType:"bytes16",type:"bytes16"},{name:"mrSeam",internalType:"bytes",type:"bytes"},{name:"mrsignerSeam",internalType:"bytes",type:"bytes"},{name:"seamAttributes",internalType:"bytes8",type:"bytes8"},{name:"tdAttributes",internalType:"bytes8",type:"bytes8"},{name:"xFAM",internalType:"bytes8",type:"bytes8"},{name:"mrTd",internalType:"bytes",type:"bytes"},{name:"mrConfigId",internalType:"bytes",type:"bytes"},{name:"mrOwner",internalType:"bytes",type:"bytes"},{name:"mrOwnerConfig",internalType:"bytes",type:"bytes"},{name:"rtMr0",internalType:"bytes",type:"bytes"},{name:"rtMr1",internalType:"bytes",type:"bytes"},{name:"rtMr2",internalType:"bytes",type:"bytes"},{name:"rtMr3",internalType:"bytes",type:"bytes"},{name:"reportData",internalType:"bytes",type:"bytes"}]}],stateMutability:"pure"},{type:"function",inputs:[],name:"proxiableUUID",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[],name:"quoteVerifier",outputs:[{name:"",internalType:"contract IQuoteVerifier",type:"address"}],stateMutability:"view"},{type:"function",inputs:[{name:"signerAddress",internalType:"address",type:"address"}],name:"removeSigner",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"newThreshold",internalType:"uint256",type:"uint256"}],name:"setThreshold",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"newOwner",internalType:"address",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"updateActiveVouchersSessionNonce",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"upgradeResult",internalType:"struct UpgradeResult",type:"tuple",components:[{name:"networkPubkey",internalType:"bytes",type:"bytes"}]}],name:"upgradeResultDigest",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[{name:"newImplementation",internalType:"address",type:"address"},{name:"data",internalType:"bytes",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable"},{type:"function",inputs:[{name:"tcbInfo",internalType:"struct TcbInfoJsonObj",type:"tuple",components:[{name:"tcbInfoStr",internalType:"string",type:"string"},{name:"signature",internalType:"bytes",type:"bytes"}]},{name:"identity",internalType:"struct EnclaveIdentityJsonObj",type:"tuple",components:[{name:"identityStr",internalType:"string",type:"string"},{name:"signature",internalType:"bytes",type:"bytes"}]}],name:"uploadCollateral",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"newMrAggregated",internalType:"bytes32",type:"bytes32"},{name:"addNodeResult",internalType:"struct AddNodeResult",type:"tuple",components:[{name:"networkPubkey",internalType:"bytes",type:"bytes"}]},{name:"quote",internalType:"bytes",type:"bytes"},{name:"signature",internalType:"bytes",type:"bytes"}],name:"verifyAddNodeResult",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"bootstrapResult",internalType:"struct BootstrapResult",type:"tuple",components:[{name:"ecies_pubkey",internalType:"bytes",type:"bytes"}]},{name:"quote",internalType:"bytes",type:"bytes"},{name:"signature",internalType:"bytes",type:"bytes"}],name:"verifyBootstrapResult",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"newMrAggregated",internalType:"bytes32",type:"bytes32"},{name:"upgradeResult",internalType:"struct UpgradeResult",type:"tuple",components:[{name:"networkPubkey",internalType:"bytes",type:"bytes"}]},{name:"quote",internalType:"bytes",type:"bytes"},{name:"signature",internalType:"bytes",type:"bytes"}],name:"verifyUpgradeResult",outputs:[],stateMutability:"nonpayable"},{type:"event",anonymous:!1,inputs:[{name:"signerAddress",internalType:"address",type:"address",indexed:!1}],name:"AddedSignatureVerifier"},{type:"event",anonymous:!1,inputs:[{name:"newEoaSigner",internalType:"address",type:"address",indexed:!0},{name:"bootstrapResult",internalType:"struct BootstrapResult",type:"tuple",components:[{name:"ecies_pubkey",internalType:"bytes",type:"bytes"}],indexed:!1}],name:"BootstrapStageComplete"},{type:"event",anonymous:!1,inputs:[],name:"EIP712DomainChanged"},{type:"event",anonymous:!1,inputs:[{name:"version",internalType:"uint64",type:"uint64",indexed:!1}],name:"Initialized"},{type:"event",anonymous:!1,inputs:[{name:"covalidatorAddress",internalType:"address",type:"address",indexed:!1},{name:"quote",internalType:"bytes",type:"bytes",indexed:!1}],name:"NewCovalidatorAdded"},{type:"event",anonymous:!1,inputs:[{name:"version",internalType:"uint256",type:"uint256",indexed:!0},{name:"mrAggregated",internalType:"bytes32",type:"bytes32",indexed:!0}],name:"NewTEEVersionApproved"},{type:"event",anonymous:!1,inputs:[{name:"previousOwner",internalType:"address",type:"address",indexed:!0},{name:"newOwner",internalType:"address",type:"address",indexed:!0}],name:"OwnershipTransferred"},{type:"event",anonymous:!1,inputs:[{name:"signerAddress",internalType:"address",type:"address",indexed:!1}],name:"RemovedSignatureVerifier"},{type:"event",anonymous:!1,inputs:[{name:"eoaSigner",internalType:"address",type:"address",indexed:!0},{name:"mrAggregated",internalType:"bytes32",type:"bytes32",indexed:!0}],name:"SignerHasUpdatedTDX"},{type:"event",anonymous:!1,inputs:[{name:"oldThreshold",internalType:"uint256",type:"uint256",indexed:!1},{name:"newThreshold",internalType:"uint256",type:"uint256",indexed:!1}],name:"ThresholdChanged"},{type:"event",anonymous:!1,inputs:[{name:"implementation",internalType:"address",type:"address",indexed:!0}],name:"Upgraded"},{type:"error",inputs:[{name:"target",internalType:"address",type:"address"}],name:"AddressEmptyCode"},{type:"error",inputs:[],name:"BootstrapAlreadyCompleted"},{type:"error",inputs:[],name:"BootstrapNotComplete"},{type:"error",inputs:[],name:"ECDSAInvalidSignature"},{type:"error",inputs:[{name:"length",internalType:"uint256",type:"uint256"}],name:"ECDSAInvalidSignatureLength"},{type:"error",inputs:[{name:"s",internalType:"bytes32",type:"bytes32"}],name:"ECDSAInvalidSignatureS"},{type:"error",inputs:[{name:"implementation",internalType:"address",type:"address"}],name:"ERC1967InvalidImplementation"},{type:"error",inputs:[],name:"ERC1967NonPayable"},{type:"error",inputs:[],name:"EmptyIdentity"},{type:"error",inputs:[],name:"EmptyTcbInfo"},{type:"error",inputs:[],name:"FailedCall"},{type:"error",inputs:[],name:"IndexOutOfBounds"},{type:"error",inputs:[],name:"InvalidEIP712Signature"},{type:"error",inputs:[],name:"InvalidInitialization"},{type:"error",inputs:[],name:"InvalidNetworkPubkey"},{type:"error",inputs:[{name:"actual",internalType:"uint16",type:"uint16"},{name:"expected",internalType:"uint16",type:"uint16"}],name:"InvalidQuoteVerifierVersion"},{type:"error",inputs:[],name:"InvalidReportDataSigner"},{type:"error",inputs:[],name:"InvalidReportMrAggregated"},{type:"error",inputs:[{name:"threshold",internalType:"uint256",type:"uint256"},{name:"nbOfSigners",internalType:"uint256",type:"uint256"}],name:"InvalidThreshold"},{type:"error",inputs:[{name:"providedSessionNonce",internalType:"bytes32",type:"bytes32"},{name:"activeSessionNonce",internalType:"bytes32",type:"bytes32"}],name:"InvalidVoucherSessionNonce"},{type:"error",inputs:[{name:"signer",internalType:"address",type:"address"},{name:"digest",internalType:"bytes32",type:"bytes32"},{name:"signature",internalType:"bytes",type:"bytes"}],name:"InvalidVoucherSignature"},{type:"error",inputs:[],name:"NotInitializing"},{type:"error",inputs:[{name:"owner",internalType:"address",type:"address"}],name:"OwnableInvalidOwner"},{type:"error",inputs:[{name:"account",internalType:"address",type:"address"}],name:"OwnableUnauthorizedAccount"},{type:"error",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"sharer",internalType:"address",type:"address"}],name:"SharerNotAllowedForHandle"},{type:"error",inputs:[{name:"signerAddress",internalType:"address",type:"address"}],name:"SignerAlreadyAdded"},{type:"error",inputs:[{name:"signerAddress",internalType:"address",type:"address"}],name:"SignerNotFound"},{type:"error",inputs:[{name:"currentSigner",internalType:"address",type:"address"},{name:"lastSigner",internalType:"address",type:"address"}],name:"SignersNotInAscendingOrder"},{type:"error",inputs:[],name:"TEEVersionNotFound"},{type:"error",inputs:[],name:"UUPSUnauthorizedCallContext"},{type:"error",inputs:[{name:"slot",internalType:"bytes32",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID"}]},98839(e,t,n){"use strict";var r=n(72258).Buffer,i=n(70950),a="undefined"!=typeof Uint8Array,s=a&&"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView;e.exports=function(e,t,n){if("string"==typeof e||r.isBuffer(e)||a&&e instanceof Uint8Array||s&&s(e))return i(e,t);throw new TypeError(n+" must be a string, a Buffer, a Uint8Array, or a DataView")}},99053(e,t,n){"use strict";n.d(t,{AU:()=>a});var r=n(91893),i=n(4909);n(82884).Lm,r.zM,i.zM;const a=e=>!e},99342(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=[10,7,11,17,18,3,5,16,8,21,24,4,15,23,19,13,12,2,20,14,22,9,6,1]},99344(e,t,n){"use strict";n.d(t,{O31:()=>ue,QwO:()=>Oe,v8c:()=>ne,uSQ:()=>X,wSs:()=>re,mSG:()=>Ee,QfV:()=>te,_kM:()=>_e,k_Z:()=>J,gPz:()=>ae,wkx:()=>xe,pbD:()=>Ae,lqM:()=>ge,K$g:()=>Pe});var r=n(28062),i=n(72529),a=n(91893),s=n(59329),o=n(46385),u=n(12717),c=n(36708),l=n(66949),f=n(82884);const d=Symbol.for("effect/BigDecimal"),h={[d]:d,[o.HR](){const e=w(this);return(0,s.Fs)(o.tW(e.value),o.kg(o.ai(e.scale)),o.PO(this))},[i.HR](e){return p(e)&&E(this,e)},toString(){return`BigDecimal(${k(this)})`},toJSON(){return{_id:"BigDecimal",value:String(this.value),scale:this.scale}},[u.FX](){return this.toJSON()},pipe(){return(0,l.tT)(this,arguments)}},p=e=>(0,f.i5)(e,d),m=(e,t)=>{const n=Object.create(h);return n.value=e,n.scale=t,n},y=(e,t)=>{if(e!==b&&e%g===b)throw new RangeError("Value must be normalized");const n=m(e,t);return n.normalized=n,n},b=BigInt(0),g=BigInt(10),v=y(b,0),w=e=>{if(void 0===e.normalized)if(e.value===b)e.normalized=v;else{const t=`${e.value}`;let n=0;for(let e=t.length-1;e>=0&&"0"===t[e];e--)n++;0===n&&(e.normalized=e);const r=BigInt(t.substring(0,t.length-n)),i=e.scale-n;e.normalized=y(r,i)}return e.normalized},_=(0,s.XY)(2,(e,t)=>t>e.scale?m(e.value*g**BigInt(t-e.scale),t):te.scale>t.scale?_(t,e.scale).value===e.value:e.scaleS(e,t)),k=e=>{const t=w(e);if(Math.abs(t.scale)>=16)return x(t);const n=t.value=r.length)i="0",a="0".repeat(t.scale-r.length)+r;else{const e=r.length-t.scale;if(e>r.length){const t=e-r.length;i=`${r}${"0".repeat(t)}`,a=""}else a=r.slice(e),i=r.slice(0,e)}const s=""===a?i:`${i}.${a}`;return n?`-${s}`:s},x=e=>{if(T(e))return"0e+0";const t=w(e),n=`${(e=>e.value=0?"+":""}${s}`},T=e=>e.value===b,M=e=>e.valuef.i5(e,P)),B=(A.Ru,A.Ru,e=>new Date(e.epochMillis));var F=n(77962);n(59688);var L=n(23343),j=(n(28876),n(9100)),D=n(50168);f.Kg,a.Yj,I.Yj,Symbol.iterator;const U=(0,s.XY)(e=>f.Gv(e[0]),(e,...t)=>{const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}),z=(0,s.XY)(e=>f.Gv(e[0]),(e,...t)=>{const n={...e};for(const e of t)delete n[e];return n}),$=(a.w3,I.w3,Symbol.for("effect/Schema"));function V(e){return class{[$]=K;static ast=e;static annotations(e){return V(H(this.ast,e))}static pipe(){return(0,l.tT)(this,arguments)}static toString(){return String(e)}static Type;static Encoded;static Context;static[$]=K}}const K={_A:e=>e,_I:e=>e,_R:e=>e},Y={typeConstructor:D.HS,schemaId:D.Ho,message:D.YN,missingMessage:D.Ey,identifier:D.On,title:D.Z8,description:D.Uh,examples:D.U4,default:D.u7,documentation:D.DH,jsonSchema:D.Ad,arbitrary:D.BW,pretty:D.TN,equivalence:D.RP,concurrency:D.MR,batching:D.Jo,parseIssueTitle:D.J5,parseOptions:D.E_,decodingFallback:D.Yw},q=e=>{if(!e)return{};const t={...e};for(const n in Y)n in e&&(t[Y[n]]=e[n],delete t[n]);return t},H=(e,t)=>D.hk(e,q(t)),G=e=>f.i5(e,$)&&f.Gv(e[$]);function W(e,t=function(e){return D.gV(e)?D.gP.make(D.Mz(e,e=>new D.uS(e))):new D.uS(e[0])}(e)){return class extends(V(t)){static annotations(e){return W(this.literals,H(this.ast,e))}static literals=[...e]}}function X(...e){return r.iI(e)?W(e):Q}const J=(...[e,...t])=>{const n=[];let i="",a=t;G(e)?D.c$(e.ast)?i=String(e.ast.literal):a=[e,...a]:i=String(e);for(let e=0;eD.gP.make(e.map(e=>e.ast)))(e)){return class extends(V(t)){static annotations(e){return ie(this.members,H(this.ast,e))}static members=[...e]}}function ae(...e){return D.gV(e)?ie(e):r.iI(e)?e[0]:Q}function se(e,t,n=((e,t)=>new D.TD(e.map(e=>G(e)?new D.zh(e.ast,!1):e.ast),t.map(e=>G(e)?new D.ZU(e.ast):e.ast),!0))(e,t)){return class extends(V(n)){static annotations(e){return se(this.elements,this.rest,H(this.ast,e))}static elements=[...e];static rest=[...t]}}function oe(e,t){return class extends(se([],[e],t)){static annotations(e){return oe(this.value,H(this.ast,e))}static value=e}}const ue=e=>oe(e),ce=e=>e?'"?:"':'":"';class le extends D.zh{isReadonly;defaultValue;_tag="PropertySignatureDeclaration";constructor(e,t,n,r,i){super(e,t,r),this.isReadonly=n,this.defaultValue=i}toString(){const e=ce(this.isOptional),t=String(this.type);return`PropertySignature<${e}, ${t}, never, ${e}, ${t}>`}}D.zh;class fe extends D.zh{isReadonly;defaultValue;constructor(e,t,n,r,i){super(e,t,r),this.isReadonly=n,this.defaultValue=i}}class de{from;to;decode;encode;_tag="PropertySignatureTransformation";constructor(e,t,n,r){this.from=e,this.to=t,this.decode=n,this.encode=r}toString(){return`PropertySignature<${ce(this.to.isOptional)}, ${this.to.type}, ${e=this.from.fromKey,void 0===e?"never":f.Kg(e)?JSON.stringify(e):String(e)}, ${ce(this.from.isOptional)}, ${this.from.type}>`;var e}}const he=(e,t)=>{switch(e._tag){case"PropertySignatureDeclaration":return new le(e.type,e.isOptional,e.isReadonly,{...e.annotations,...t},e.defaultValue);case"PropertySignatureTransformation":return new de(e.from,new fe(e.to.type,e.to.isOptional,e.to.isReadonly,{...e.to.annotations,...t},e.to.defaultValue),e.decode,e.encode)}},pe=Symbol.for("effect/PropertySignature"),me=e=>f.i5(e,pe);class ye{ast;[$];[pe]=null;_TypeToken;_Key;_EncodedToken;_HasDefault;constructor(e){this.ast=e}pipe(){return(0,l.tT)(this,arguments)}annotations(e){return new ye(he(this.ast,q(e)))}toString(){return String(this.ast)}}class be extends ye{from;constructor(e,t){super(e),this.from=t}annotations(e){return new be(he(this.ast,q(e)),this.from)}}const ge=e=>{const t=e.ast===D.oA||e.ast===D.M3?D.oA:(e=>ae(e,Z))(e).ast;return new be(new le(t,!0,!0,{},void 0),e)},ve=D.g0([D.Ey]);function we(e,t,n=((e,t)=>{const n=Reflect.ownKeys(e),i=[];if(n.length>0){const a=[],s=[],o=[];for(let t=0;t{a.push(e),s.push(new D.Gb(e.name,D.p$(e.type),e.isOptional,e.isReadonly,e.annotations))}),t.forEach(t=>{e.push(t),n.push(new D.NH(t.parameter,D.p$(t.type),t.isReadonly))})}return new D.IT(new D.Ky(a,e,{[D.aG]:"Struct (Encoded side)"}),new D.Ky(s,n,{[D.aG]:"Struct (Type side)"}),new D.nt(o))}}const a=[];for(const e of t){const{indexSignatures:t,propertySignatures:n}=D.g1(e.key.ast,e.value.ast);n.forEach(e=>i.push(e)),t.forEach(e=>a.push(e))}return new D.Ky(i,a)})(e,t)){return class extends(V(n)){static annotations(e){return we(this.fields,this.records,H(this.ast,e))}static fields={...e};static records=[...t];static make=(t,n)=>{const r=((e,t)=>{const n=Reflect.ownKeys(e);for(const r of n){const n=e[r];if(void 0===t[r]&&me(n)){const e=n.ast,i="PropertySignatureDeclaration"===e._tag?e.defaultValue:e.to.defaultValue;void 0!==i&&(t[r]=i())}}return t})(e,{...t});return Re(n)?r:j.eq(this)(r)};static pick(...t){return _e(U(e,...t))}static omit(...t){return _e(z(e,...t))}}}function _e(e,...t){return we(e,t)}function Se(e,t,n){return class extends(we({},[{key:e,value:t}],n)){static annotations(n){return Se(e,t,H(this.ast,n))}static key=e;static value=t}}const Ee=e=>Se(e.key,e.value);function ke(e,t){return class extends(V(t)){static annotations(e){return ke(this.from,H(this.ast,e))}static make=(e,t)=>Re(t)?e:j.eq(this)(e);static from=e}}const xe=(e,t)=>n=>{const r=c.YW(D.$N(n.ast),{onNone:()=>[e],onSome:t=>[...t,e]});return ke(n,D.hk(n.ast,q({[D.SB]:r,...t})))},Te=(D.On,Symbol.for("effect/SchemaId/Refine"));function Me(e,t,n){return class extends(V(n)){static annotations(e){return Me(this.from,this.filter,H(this.ast,e))}static[Te]=e;static from=e;static filter=t;static make=(e,t)=>Re(t)?e:j.eq(this)(e)}}const Ie=(e,t,n)=>{if(f.Lm(e))return e?c.dv():c.zN(new j.ZU(t,n));if(f.Kg(e))return c.zN(new j.ZU(t,n,e));if(void 0!==e){if("_tag"in e)return c.zN(e);const i=new j.ZU(t,n,e.message);return c.zN(r.iI(e.path)?new j.gm(e.path,n,i):i)}return c.dv()};function Ae(e,t){return n=>{function i(t,n,i){return((e,t,n)=>{if(L.vX(e))return Ie(e,t,n);if(r.iI(e)){const i=r.x1(e,e=>Ie(e,t,n));if(r.iI(i))return c.zN(1===i.length?i[0]:new j.eC(t,n,i))}return c.dv()})(e(t,n,i),i,t)}return Me(n,i,new D.kV(n.ast,i,q(t)))}}function Ne(e,t,n){return class extends(V(n)){static annotations(e){return Ne(this.from,this.to,H(this.ast,e))}static from=e;static to=t}}const Pe=(0,s.XY)(e=>G(e[0])&&G(e[1]),(e,t,n)=>Ne(e,t,new D.IT(e.ast,t.ast,new D.EK(n.decode,n.encode))));URL;class Oe extends(Pe(te.annotations({description:"a string to be decoded into a bigint"}),ee,{strict:!0,decode:(e,t,n)=>j.sV((e=>{try{return""===e.trim()?c.dv():c.zN(BigInt(e))}catch{return c.dv()}})(e),()=>new j.ZU(n,e,`Unable to decode ${JSON.stringify(e)} into a bigint`)),encode:e=>j.Py(String(e))}).annotations({identifier:"BigInt"})){}N.n$,f.mg;function Re(e){return f.Lm(e)?e:e?.disableValidation??!1}f.$P;F.gb;D.RP},99701(e,t,n){var r=n(33213),i=n(73730).Buffer,a=n(39197),s=a.base,o=a.constants.der;function u(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new c,this.tree._init(e.body)}function c(e){s.Node.call(this,"der",e)}function l(e){return e<10?"0"+e:e}e.exports=u,u.prototype.encode=function(e,t){return this.tree._encode(e,t).join()},r(c,s.Node),c.prototype._encodeComposite=function(e,t,n,r){var a,s=function(e,t,n,r){var i;if("seqof"===e?e="seq":"setof"===e&&(e="set"),o.tagByName.hasOwnProperty(e))i=o.tagByName[e];else{if("number"!=typeof e||(0|e)!==e)return r.error("Unknown tag: "+e);i=e}return i>=31?r.error("Multi-octet tag encoding unsupported"):(t||(i|=32),i|=o.tagClassByName[n||"universal"]<<6)}(e,t,n,this.reporter);if(r.length<128)return(a=new i(2))[0]=s,a[1]=r.length,this._createEncoderBuffer([a,r]);for(var u=1,c=r.length;c>=256;c>>=8)u++;(a=new i(2+u))[0]=s,a[1]=128|u,c=1+u;for(var l=r.length;l>0;c--,l>>=8)a[c]=255&l;return this._createEncoderBuffer([a,r])},c.prototype._encodeStr=function(e,t){if("bitstr"===t)return this._createEncoderBuffer([0|e.unused,e.data]);if("bmpstr"===t){for(var n=new i(2*e.length),r=0;r=40)return this.reporter.error("Second objid identifier OOB");e.splice(0,2,40*e[0]+e[1])}var a=0;for(r=0;r=128;s>>=7)a++}var o=new i(a),u=o.length-1;for(r=e.length-1;r>=0;r--)for(s=e[r],o[u--]=127&s;(s>>=7)>0;)o[u--]=128|127&s;return this._createEncoderBuffer(o)},c.prototype._encodeTime=function(e,t){var n,r=new Date(e);return"gentime"===t?n=[l(r.getFullYear()),l(r.getUTCMonth()+1),l(r.getUTCDate()),l(r.getUTCHours()),l(r.getUTCMinutes()),l(r.getUTCSeconds()),"Z"].join(""):"utctime"===t?n=[l(r.getFullYear()%100),l(r.getUTCMonth()+1),l(r.getUTCDate()),l(r.getUTCHours()),l(r.getUTCMinutes()),l(r.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+t+" time is not supported yet"),this._encodeStr(n,"octstr")},c.prototype._encodeNull=function(){return this._createEncoderBuffer("")},c.prototype._encodeInt=function(e,t){if("string"==typeof e){if(!t)return this.reporter.error("String int or enum given, but no values map");if(!t.hasOwnProperty(e))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(e));e=t[e]}if("number"!=typeof e&&!i.isBuffer(e)){var n=e.toArray();!e.sign&&128&n[0]&&n.unshift(0),e=new i(n)}if(i.isBuffer(e)){var r=e.length;0===e.length&&r++;var a=new i(r);return e.copy(a),0===e.length&&(a[0]=0),this._createEncoderBuffer(a)}if(e<128)return this._createEncoderBuffer(e);if(e<256)return this._createEncoderBuffer([0,e]);r=1;for(var s=e;s>=256;s>>=8)r++;for(s=(a=new Array(r)).length-1;s>=0;s--)a[s]=255&e,e>>=8;return 128&a[0]&&a.unshift(0),this._createEncoderBuffer(new i(a))},c.prototype._encodeBool=function(e){return this._createEncoderBuffer(e?255:0)},c.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getEncoder("der").tree},c.prototype._skipDefault=function(e,t,n){var r,i=this._baseState;if(null===i.default)return!1;var a=e.join();if(void 0===i.defaultBuffer&&(i.defaultBuffer=this._encodeValue(i.default,t,n).join()),a.length!==i.defaultBuffer.length)return!1;for(r=0;rZi});var r=n(81127),i=n(56050),a=n(58359),s=n(19109),o=n(81689),u=n(58038),c=n(11956),l=n(47457),f=n(76329);const d={block:(0,c.R)({format(e){const t=e.transactions?.map(e=>{if("string"==typeof e)return e;const t=(0,l.uP)(e);return"0x7e"===t.typeHex&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?(0,u.uU)(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t});return{transactions:t,stateRoot:e.stateRoot}}}),transaction:(0,l.gU)({format(e){const t={};return"0x7e"===e.type&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?(0,u.uU)(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:(0,f.WB)({format:e=>({l1GasPrice:e.l1GasPrice?(0,u.uU)(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?(0,u.uU)(e.l1GasUsed):null,l1Fee:e.l1Fee?(0,u.uU)(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null})})};var h=n(83815),p=n(462),m=n(33640),y=n(75209),b=n(82150),g=n(33026);const v={blockTime:2e3,contracts:{gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}},formatters:d,serializers:{transaction:function(e,t){return function(e){return"deposit"===e.type||void 0!==e.sourceHash}(e)?function(e){!function(e){const{from:t,to:n}=e;if(t&&!(0,p.P)(t))throw new h.M({address:t});if(n&&!(0,p.P)(n))throw new h.M({address:n})}(e);const{sourceHash:t,data:n,from:r,gas:i,isSystemTx:a,mint:s,to:o,value:u}=e,c=[t,r,o??"0x",s?(0,y.nj)(s):"0x",u?(0,y.nj)(u):"0x",i?(0,y.nj)(i):"0x",a?"0x1":"0x",n??"0x"];return(0,m.aP)(["0x7e",(0,b.EQ)(c)])}(e):(0,g.b)(e,t)}}};var w=n(38963);const _=11155111,S=(0,w.x)({...v,id:84532,network:"base-sepolia",name:"Base Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://sepolia.basescan.org",apiUrl:"https://api-sepolia.basescan.org/api"}},contracts:{...v.contracts,disputeGameFactory:{[_]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[_]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[_]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[_]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:_});function E(e,t){return!(null===e||"object"!=typeof e||!("$typeName"in e)||"string"!=typeof e.$typeName||void 0!==t&&t.typeName!==e.$typeName)}var k,x;function T(){let e=0,t=0;for(let n=0;n<28;n+=7){let r=this.buf[this.pos++];if(e|=(127&r)<>4,!(128&n))return this.assertBounds(),[e,t];for(let n=3;n<=31;n+=7){let r=this.buf[this.pos++];if(t|=(127&r)<>>r,a=!(i>>>7==0&&0==t),s=255&(a?128|i:i);if(n.push(s),!a)return}const r=e>>>28&15|(7&t)<<4,i=!!(t>>3);if(n.push(255&(i?128|r:r)),i){for(let e=3;e<31;e+=7){const r=t>>>e,i=!(r>>>7==0),a=255&(i?128|r:r);if(n.push(a),!i)return}n.push(t>>>31&1)}}(x=k||(k={}))[x.DOUBLE=1]="DOUBLE",x[x.FLOAT=2]="FLOAT",x[x.INT64=3]="INT64",x[x.UINT64=4]="UINT64",x[x.INT32=5]="INT32",x[x.FIXED64=6]="FIXED64",x[x.FIXED32=7]="FIXED32",x[x.BOOL=8]="BOOL",x[x.STRING=9]="STRING",x[x.BYTES=12]="BYTES",x[x.UINT32=13]="UINT32",x[x.SFIXED32=15]="SFIXED32",x[x.SFIXED64=16]="SFIXED64",x[x.SINT32=17]="SINT32",x[x.SINT64=18]="SINT64";const I=4294967296;function A(e){const t="-"===e[0];t&&(e=e.slice(1));const n=1e6;let r=0,i=0;function a(t,a){const s=Number(e.slice(t,a));i*=n,r=r*n+s,r>=I&&(i+=r/I|0,r%=I)}return a(-24,-18),a(-18,-12),a(-12,-6),a(-6),t?O(r,i):P(r,i)}function N(e,t){if(({lo:e,hi:t}=function(e,t){return{lo:e>>>0,hi:t>>>0}}(e,t)),t<=2097151)return String(I*t+e);const n=16777215&(e>>>24|t<<8),r=t>>16&65535;let i=(16777215&e)+6777216*n+6710656*r,a=n+8147497*r,s=2*r;const o=1e7;return i>=o&&(a+=Math.floor(i/o),i%=o),a>=o&&(s+=Math.floor(a/o),a%=o),s.toString()+R(a)+R(i)}function P(e,t){return{lo:0|e,hi:0|t}}function O(e,t){return t=~t,e?e=1+~e:t+=1,P(e,t)}const R=e=>{const t=String(e);return"0000000".slice(t.length)+t};function C(e,t){if(e>=0){for(;e>127;)t.push(127&e|128),e>>>=7;t.push(e)}else{for(let n=0;n<9;n++)t.push(127&e|128),e>>=7;t.push(1)}}function B(){let e=this.buf[this.pos++],t=127&e;if(!(128&e))return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(127&e)<<7,!(128&e))return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(127&e)<<14,!(128&e))return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(127&e)<<21,!(128&e))return this.assertBounds(),t;e=this.buf[this.pos++],t|=(15&e)<<28;for(let t=5;128&e&&t<10;t++)e=this.buf[this.pos++];if(128&e)throw new Error("invalid varint");return this.assertBounds(),t>>>0}var F=n(42649);const L=j();function j(){const e=new DataView(new ArrayBuffer(8));if("function"==typeof BigInt&&"function"==typeof e.getBigInt64&&"function"==typeof e.getBigUint64&&"function"==typeof e.setBigInt64&&"function"==typeof e.setBigUint64&&(globalThis.Deno||"object"!=typeof F||"object"!=typeof F.env||"1"!==F.env.BUF_BIGINT_DISABLE)){const t=BigInt("-9223372036854775808"),n=BigInt("9223372036854775807"),r=BigInt("0"),i=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(e){const r="bigint"==typeof e?e:BigInt(e);if(r>n||ri||t(e.setInt32(0,t,!0),e.setInt32(4,n,!0),e.getBigInt64(0,!0)),uDec:(t,n)=>(e.setInt32(0,t,!0),e.setInt32(4,n,!0),e.getBigUint64(0,!0))}}return{zero:"0",supported:!1,parse:e=>("string"!=typeof e&&(e=e.toString()),D(e),e),uParse:e=>("string"!=typeof e&&(e=e.toString()),U(e),e),enc:e=>("string"!=typeof e&&(e=e.toString()),D(e),A(e)),uEnc:e=>("string"!=typeof e&&(e=e.toString()),U(e),A(e)),dec:(e,t)=>function(e,t){let n=P(e,t);const r=2147483648&n.hi;r&&(n=O(n.lo,n.hi));const i=N(n.lo,n.hi);return r?"-"+i:i}(e,t),uDec:(e,t)=>N(e,t)}}function D(e){if(!/^-?[0-9]+$/.test(e))throw new Error("invalid int64: "+e)}function U(e){if(!/^[0-9]+$/.test(e))throw new Error("invalid uint64: "+e)}function z(e,t){switch(e){case k.STRING:return"";case k.BOOL:return!1;case k.DOUBLE:case k.FLOAT:return 0;case k.INT64:case k.UINT64:case k.SFIXED64:case k.FIXED64:case k.SINT64:return t?"0":L.zero;case k.BYTES:return new Uint8Array(0);default:return 0}}const $=Symbol.for("reflect unsafe local");function V(e,t){const n=e[t.localName].case;return void 0===n?n:t.fields.find(e=>e.localName===n)}function K(e,t){return Object.prototype.hasOwnProperty.call(e,t)&&void 0!==e[t]}function Y(e,t){if(t.oneof){const n=e[t.oneof.localName];return n.case===t.localName?n.value:void 0}return e[t.localName]}function q(e,t,n){t.oneof?e[t.oneof.localName]={case:t.localName,value:n}:e[t.localName]=n}function H(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function G(e,t){var n,r,i,a;if(H(e)&&$ in e&&"add"in e&&"field"in e&&"function"==typeof e.field){if(void 0!==t){const s=t,o=e.field();return s.listKind==o.listKind&&s.scalar===o.scalar&&(null===(n=s.message)||void 0===n?void 0:n.typeName)===(null===(r=o.message)||void 0===r?void 0:r.typeName)&&(null===(i=s.enum)||void 0===i?void 0:i.typeName)===(null===(a=o.enum)||void 0===a?void 0:a.typeName)}return!0}return!1}function W(e,t){var n,r,i,a;if(H(e)&&$ in e&&"has"in e&&"field"in e&&"function"==typeof e.field){if(void 0!==t){const s=t,o=e.field();return s.mapKey===o.mapKey&&s.mapKind==o.mapKind&&s.scalar===o.scalar&&(null===(n=s.message)||void 0===n?void 0:n.typeName)===(null===(r=o.message)||void 0===r?void 0:r.typeName)&&(null===(i=s.enum)||void 0===i?void 0:i.typeName)===(null===(a=o.enum)||void 0===a?void 0:a.typeName)}return!0}return!1}function X(e,t){return H(e)&&$ in e&&"desc"in e&&H(e.desc)&&"message"===e.desc.kind&&(void 0===t||e.desc.typeName==t.typeName)}function J(e){const t=e.fields[0];return Z(e.typeName)&&void 0!==t&&"scalar"==t.fieldKind&&"value"==t.name&&1==t.number}function Z(e){return e.startsWith("google.protobuf.")&&["DoubleValue","FloatValue","Int64Value","UInt64Value","Int32Value","UInt32Value","BoolValue","StringValue","BytesValue"].includes(e.substring(16))}function Q(e,t){if(E(t,e))return t;const n=function(e){let t;if(function(e){switch(e.file.edition){case 999:return!1;case 998:return!0;default:return e.fields.some(e=>2!=e.presence&&"message"!=e.fieldKind&&!e.oneof)}}(e)){const n=oe.get(e);let r,i;if(n)({prototype:r,members:i}=n);else{r={},i=new Set;for(const t of e.members)"oneof"!=t.kind&&("scalar"!=t.fieldKind&&"enum"!=t.fieldKind||2!=t.presence&&(i.add(t),r[t.localName]=ue(t)));oe.set(e,{prototype:r,members:i})}t=Object.create(r),t.$typeName=e.typeName;for(const n of e.members)if(!i.has(n)){if("field"==n.kind){if("message"==n.fieldKind)continue;if(("scalar"==n.fieldKind||"enum"==n.fieldKind)&&2!=n.presence)continue}t[n.localName]=ue(n)}}else{t={$typeName:e.typeName};for(const n of e.members)"oneof"!=n.kind&&2!=n.presence||(t[n.localName]=ue(n))}return t}(e);return void 0!==t&&function(e,t,n){for(const r of e.members){let e,i=n[r.localName];if(null!=i){if("oneof"==r.kind){const t=V(n,r);if(!t)continue;e=t,i=Y(n,t)}else e=r;switch(e.fieldKind){case"message":i=re(e,i);break;case"scalar":i=ee(e,i);break;case"list":i=ne(e,i);break;case"map":i=te(e,i)}q(t,e,i)}}}(e,n,t),n}function ee(e,t){return e.scalar==k.BYTES?ie(t):t}function te(e,t){if(H(t)){if(e.scalar==k.BYTES)return ae(t,ie);if("message"==e.mapKind)return ae(t,t=>re(e,t))}return t}function ne(e,t){if(Array.isArray(t)){if(e.scalar==k.BYTES)return t.map(ie);if("message"==e.listKind)return t.map(t=>re(e,t))}return t}function re(e,t){if("message"==e.fieldKind&&!e.oneof&&J(e.message))return ee(e.message.fields[0],t);if(H(t)){if("google.protobuf.Struct"==e.message.typeName&&"google.protobuf.Value"!==e.parent.typeName)return t;if(!E(t,e.message))return Q(e.message,t)}return t}function ie(e){return Array.isArray(e)?new Uint8Array(e):e}function ae(e,t){const n={};for(const r of Object.entries(e))n[r[0]]=t(r[1]);return n}const se=Symbol(),oe=new WeakMap;function ue(e){if("oneof"==e.kind)return{case:void 0};if("list"==e.fieldKind)return[];if("map"==e.fieldKind)return{};if("message"==e.fieldKind)return se;const t=e.getDefaultValue();return void 0!==t?"scalar"==e.fieldKind&&e.longAsString?t.toString():t:"scalar"==e.fieldKind?z(e.scalar,e.longAsString):e.enum.values[0].number}var ce=n(28780),le=n(16720),fe=n(17617),de=n(99344),he=n(34105),pe=n(33781);const me={euint64:pe.uU.euint64,euint160:pe.uU.euint160,euint256:pe.uU.euint256,ebool:pe.uU.ebool},ye=Object.keys(me),be=(de.uSQ(...ye),de.uSQ(...Object.values(me))),ge=de.uSQ(1),ve=de._kM({scheme:ge,type:be,value:he.hJ}),we=(de._kM({ciphertext:ve,context:pe.E0}),de._kM({ciphertext:ve,context:pe.E0,prehandle:he.Xn,handle:he.Xn}),de.gPz(de._kM({scheme:ge,type:de.uSQ(pe.uU.euint64,pe.uU.euint160,pe.uU.euint256),value:de.QwO}),de._kM({scheme:ge,type:de.uSQ(pe.uU.ebool),value:de.v8c})));function _e(e,t,n){switch(t){case pe.uU.euint64:case pe.uU.euint160:case pe.uU.euint256:return{scheme:e,type:t,value:n};case pe.uU.ebool:return{scheme:e,type:t,value:0n!==n};default:console.warn(`bigintToPlaintext: Unsupported Encryption Scheme type ${t}`)}throw new Error(`Unsupported Encryption Scheme type: ${t}`)}de._kM({plaintext:we,context:pe.E0});const Se=[{name:"handle",type:"bytes32"},{name:"ciphertext",type:"bytes"}];function Ee(e,t){return(0,ce.h)(Se,[e,t])}function ke(e){return(0,he.A2)(function(e){switch(e.type){case pe.uU.euint64:case pe.uU.euint160:case pe.uU.euint256:return e.value;case pe.uU.ebool:return e.value?1n:0n}}(e))}const xe=[{type:"function",inputs:[],name:"getSession",outputs:[{name:"",internalType:"struct Session",type:"tuple",components:[{name:"decrypter",internalType:"address",type:"address"},{name:"expiresAt",internalType:"uint256",type:"uint256"}]}],stateMutability:"pure"}],Te=[{type:"function",inputs:[{name:"voucher",internalType:"struct AllowanceVoucher",type:"tuple",components:[{name:"sessionNonce",internalType:"bytes32",type:"bytes32"},{name:"verifyingContract",internalType:"address",type:"address"},{name:"callFunction",internalType:"bytes4",type:"bytes4"},{name:"sharerArgData",internalType:"bytes",type:"bytes"}]}],name:"allowanceVoucherDigest",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[],name:"eip712Domain",outputs:[{name:"fields",internalType:"bytes1",type:"bytes1"},{name:"name",internalType:"string",type:"string"},{name:"version",internalType:"string",type:"string"},{name:"chainId",internalType:"uint256",type:"uint256"},{name:"verifyingContract",internalType:"address",type:"address"},{name:"salt",internalType:"bytes32",type:"bytes32"},{name:"extensions",internalType:"uint256[]",type:"uint256[]"}],stateMutability:"view"},{type:"function",inputs:[{name:"account",internalType:"address",type:"address"}],name:"getActiveVouchersSessionNonce",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}],stateMutability:"view"},{type:"function",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"account",internalType:"address",type:"address"},{name:"proof",internalType:"struct AllowanceProof",type:"tuple",components:[{name:"sharer",internalType:"address",type:"address"},{name:"voucher",internalType:"struct AllowanceVoucher",type:"tuple",components:[{name:"sessionNonce",internalType:"bytes32",type:"bytes32"},{name:"verifyingContract",internalType:"address",type:"address"},{name:"callFunction",internalType:"bytes4",type:"bytes4"},{name:"sharerArgData",internalType:"bytes",type:"bytes"}]},{name:"voucherSignature",internalType:"bytes",type:"bytes"},{name:"requesterArgData",internalType:"bytes",type:"bytes"}]}],name:"isAllowedWithProof",outputs:[{name:"",internalType:"bool",type:"bool"}],stateMutability:"nonpayable"},{type:"function",inputs:[],name:"updateActiveVouchersSessionNonce",outputs:[],stateMutability:"nonpayable"},{type:"event",anonymous:!1,inputs:[],name:"EIP712DomainChanged"},{type:"event",anonymous:!1,inputs:[{name:"version",internalType:"uint64",type:"uint64",indexed:!1}],name:"Initialized"},{type:"error",inputs:[],name:"InvalidInitialization"},{type:"error",inputs:[{name:"providedSessionNonce",internalType:"bytes32",type:"bytes32"},{name:"activeSessionNonce",internalType:"bytes32",type:"bytes32"}],name:"InvalidVoucherSessionNonce"},{type:"error",inputs:[{name:"signer",internalType:"address",type:"address"},{name:"digest",internalType:"bytes32",type:"bytes32"},{name:"signature",internalType:"bytes",type:"bytes"}],name:"InvalidVoucherSignature"},{type:"error",inputs:[],name:"NotInitializing"},{type:"error",inputs:[{name:"handle",internalType:"bytes32",type:"bytes32"},{name:"sharer",internalType:"address",type:"address"}],name:"SharerNotAllowedForHandle"}];var Me=n(86020),Ie=n(98490);function Ae(e){const t=function(){if(!Re){Re=[];const e=Ce("std");for(let t=0;t>4,o=r,s=2;break;case 2:i[a++]=(15&o)<<4|(60&r)>>2,o=r,s=3;break;case 3:i[a++]=(3&o)<<6|r,s=0}}if(1==s)throw Error("invalid base64 string");return i.subarray(0,a)}function Ne(e,t="std"){const n=Ce(t),r="std"==t;let i,a="",s=0,o=0;for(let t=0;t>2],o=(3&i)<<4,s=1;break;case 1:a+=n[o|i>>4],o=(15&i)<<2,s=2;break;case 2:a+=n[o|i>>6],a+=n[63&i],s=0}return s&&(a+=n[o],r&&(a+="=",1==s&&(a+="="))),a}let Pe,Oe,Re;function Ce(e){return Pe||(Pe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),Oe=Pe.slice(0,-2).concat("-","_")),"url"==e?Oe:Pe}function Be(e){let t=!1;const n=[];for(let r=0;re.values(),get files(){return n.values()},addFile(e,t,r){if(n.set(e.proto.name,e),!t)for(const t of De(e))this.add(t);if(r)for(const n of e.dependencies)this.addFile(n,t,r)},add(n){if("extension"==n.kind){let e=t.get(n.extendee.typeName);e||t.set(n.extendee.typeName,e=new Map),e.set(n.number,n)}e.set(n.typeName,n)},get:t=>e.get(t),getFile:e=>n.get(e),getMessage(t){const n=e.get(t);return"message"==(null==n?void 0:n.kind)?n:void 0},getEnum(t){const n=e.get(t);return"enum"==(null==n?void 0:n.kind)?n:void 0},getExtension(t){const n=e.get(t);return"extension"==(null==n?void 0:n.kind)?n:void 0},getExtensionFor(e,n){var r;return null===(r=t.get(e.typeName))||void 0===r?void 0:r.get(n)},getService(t){const n=e.get(t);return"service"==(null==n?void 0:n.kind)?n:void 0}}}();if(!e.length)return t;if("$typeName"in e[0]&&"google.protobuf.FileDescriptorSet"==e[0].$typeName){for(const n of e[0].file)$e(n,t);return t}if("$typeName"in e[0]){const r=e[0],i=e[1],a=new Set;function s(e){const n=[];for(const r of e.dependency){if(null!=t.getFile(r))continue;if(a.has(r))continue;const s=i(r);if(!s)throw new Error(`Unable to resolve ${r}, imported by ${e.name}`);"kind"in s?t.addFile(s,!1,!0):(a.add(s.name),n.push(s))}return n.concat(...n.map(s))}for(const o of[r,...s(r)].reverse())$e(o,t)}else for(const u of e)for(const c of u.files)t.addFile(c);return t}const ze={998:{fieldPresence:1,enumType:2,repeatedFieldEncoding:2,utf8Validation:3,messageEncoding:1,jsonFormat:2,enforceNamingStyle:2,defaultSymbolVisibility:1},999:{fieldPresence:2,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1},1e3:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1},1001:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:1,defaultSymbolVisibility:2}};function $e(e,t){var n,r;const i={kind:"file",proto:e,deprecated:null!==(r=null===(n=e.options)||void 0===n?void 0:n.deprecated)&&void 0!==r&&r,edition:Xe(e),name:e.name.replace(/\.proto$/,""),dependencies:Je(e,t),enums:[],messages:[],extensions:[],services:[],toString:()=>`file ${e.name}`},a=new Map,s={get:e=>a.get(e),add(e){var t;it(!0===(null===(t=e.proto.options)||void 0===t?void 0:t.mapEntry)),a.set(e.typeName,e)}};for(const n of e.enumType)Ye(n,i,void 0,t);for(const n of e.messageType)qe(n,i,void 0,t,s);for(const n of e.service)He(n,i,t);Ve(i,t);for(const e of a.values())Ke(e,t,s);for(const e of i.messages)Ke(e,t,s),Ve(e,t);t.addFile(i,!0)}function Ve(e,t){switch(e.kind){case"file":for(const n of e.proto.extension){const r=We(n,e,t);e.extensions.push(r),t.add(r)}break;case"message":for(const n of e.proto.extension){const r=We(n,e,t);e.nestedExtensions.push(r),t.add(r)}for(const n of e.nestedMessages)Ve(n,t)}}function Ke(e,t,n){const r=e.proto.oneofDecl.map(t=>function(e,t){return{kind:"oneof",proto:e,deprecated:!1,parent:t,fields:[],name:e.name,localName:Le(Be(e.name)),toString(){return`oneof ${t.typeName}.${this.name}`}}}(t,e)),i=new Set;for(const a of e.proto.field){const s=et(a,r),o=We(a,e,t,s,n);e.fields.push(o),e.field[o.localName]=o,void 0===s?e.members.push(o):(s.fields.push(o),i.has(s)||(i.add(s),e.members.push(s)))}for(const t of r.filter(e=>i.has(e)))e.oneofs.push(t);for(const r of e.nestedMessages)Ke(r,t,n)}function Ye(e,t,n,r){var i,a,s,o,u;const c=function(e,t){const n=((r=e).substring(0,1)+r.substring(1).replace(/[A-Z]/g,e=>"_"+e)).toLowerCase()+"_";var r;for(const e of t){if(!e.name.toLowerCase().startsWith(n))return;const t=e.name.substring(n.length);if(0==t.length)return;if(/^\d/.test(t))return}return n}(e.name,e.value),l={kind:"enum",proto:e,deprecated:null!==(a=null===(i=e.options)||void 0===i?void 0:i.deprecated)&&void 0!==a&&a,file:t,parent:n,open:!0,name:e.name,typeName:Ze(e,n,t),value:{},values:[],sharedPrefix:c,toString(){return`enum ${this.typeName}`}};l.open=function(e){var t;return 1==rt("enumType",{proto:e.proto,parent:null!==(t=e.parent)&&void 0!==t?t:e.file})}(l),r.add(l);for(const t of e.value){const e=t.name;l.values.push(l.value[t.number]={kind:"enum_value",proto:t,deprecated:null!==(o=null===(s=t.options)||void 0===s?void 0:s.deprecated)&&void 0!==o&&o,parent:l,name:e,localName:Le(null==c?e:e.substring(c.length)),number:t.number,toString:()=>`enum value ${l.typeName}.${e}`})}(null!==(u=null==n?void 0:n.nestedEnums)&&void 0!==u?u:t.enums).push(l)}function qe(e,t,n,r,i){var a,s,o,u;const c={kind:"message",proto:e,deprecated:null!==(s=null===(a=e.options)||void 0===a?void 0:a.deprecated)&&void 0!==s&&s,file:t,parent:n,name:e.name,typeName:Ze(e,n,t),fields:[],field:{},oneofs:[],members:[],nestedEnums:[],nestedMessages:[],nestedExtensions:[],toString(){return`message ${this.typeName}`}};!0===(null===(o=e.options)||void 0===o?void 0:o.mapEntry)?i.add(c):((null!==(u=null==n?void 0:n.nestedMessages)&&void 0!==u?u:t.messages).push(c),r.add(c));for(const n of e.enumType)Ye(n,t,c,r);for(const n of e.nestedType)qe(n,t,c,r,i)}function He(e,t,n){var r,i;const a={kind:"service",proto:e,deprecated:null!==(i=null===(r=e.options)||void 0===r?void 0:r.deprecated)&&void 0!==i&&i,file:t,name:e.name,typeName:Ze(e,void 0,t),methods:[],method:{},toString(){return`service ${this.typeName}`}};t.services.push(a),n.add(a);for(const t of e.method){const e=Ge(t,a,n);a.methods.push(e),a.method[e.localName]=e}}function Ge(e,t,n){var r,i,a,s;let o;o=e.clientStreaming&&e.serverStreaming?"bidi_streaming":e.clientStreaming?"client_streaming":e.serverStreaming?"server_streaming":"unary";const u=n.getMessage(Qe(e.inputType)),c=n.getMessage(Qe(e.outputType));it(u,`invalid MethodDescriptorProto: input_type ${e.inputType} not found`),it(c,`invalid MethodDescriptorProto: output_type ${e.inputType} not found`);const l=e.name;return{kind:"rpc",proto:e,deprecated:null!==(i=null===(r=e.options)||void 0===r?void 0:r.deprecated)&&void 0!==i&&i,parent:t,name:l,localName:Le(l.length?Le(l[0].toLowerCase()+l.substring(1)):l),methodKind:o,input:u,output:c,idempotency:null!==(s=null===(a=e.options)||void 0===a?void 0:a.idempotencyLevel)&&void 0!==s?s:0,toString:()=>`rpc ${t.typeName}.${l}`}}function We(e,t,n,r,i){var a,s,o;const u=void 0===i,c={kind:"field",proto:e,deprecated:null!==(s=null===(a=e.options)||void 0===a?void 0:a.deprecated)&&void 0!==s&&s,name:e.name,number:e.number,scalar:void 0,message:void 0,enum:void 0,presence:tt(e,r,u,t),listKind:void 0,mapKind:void 0,mapKey:void 0,delimitedEncoding:void 0,packed:void 0,longAsString:!1,getDefaultValue:void 0};if(u){const r="file"==t.kind?t:t.file,i="file"==t.kind?void 0:t,a=Ze(e,i,r);c.kind="extension",c.file=r,c.parent=i,c.oneof=void 0,c.typeName=a,c.jsonName=`[${a}]`,c.toString=()=>`extension ${a}`;const s=n.getMessage(Qe(e.extendee));it(s,`invalid FieldDescriptorProto: extendee ${e.extendee} not found`),c.extendee=s}else{const n=t;it("message"==n.kind),c.parent=n,c.oneof=r,c.localName=r?Be(e.name):Le(Be(e.name)),c.jsonName=e.jsonName,c.toString=()=>`field ${n.typeName}.${e.name}`}const l=e.label,f=e.type,d=null===(o=e.options)||void 0===o?void 0:o.jstype;if(3===l){const r=11==f?null==i?void 0:i.get(Qe(e.typeName)):void 0;if(r){c.fieldKind="map";const{key:e,value:t}=function(e){const t=e.fields.find(e=>1===e.number),n=e.fields.find(e=>2===e.number);return it(t&&"scalar"==t.fieldKind&&t.scalar!=k.BYTES&&t.scalar!=k.FLOAT&&t.scalar!=k.DOUBLE&&n&&"list"!=n.fieldKind&&"map"!=n.fieldKind),{key:t,value:n}}(r);return c.mapKey=e.scalar,c.mapKind=t.fieldKind,c.message=t.message,c.delimitedEncoding=!1,c.enum=t.enum,c.scalar=t.scalar,c}switch(c.fieldKind="list",f){case 11:case 10:c.listKind="message",c.message=n.getMessage(Qe(e.typeName)),it(c.message),c.delimitedEncoding=nt(e,t);break;case 14:c.listKind="enum",c.enum=n.getEnum(Qe(e.typeName)),it(c.enum);break;default:c.listKind="scalar",c.scalar=f,c.longAsString=1==d}return c.packed=function(e,t){if(3!=e.label)return!1;switch(e.type){case 9:case 12:case 10:case 11:return!1}const n=e.options;return n&&K(n,"packed")?n.packed:1==rt("repeatedFieldEncoding",{proto:e,parent:t})}(e,t),c}switch(f){case 11:case 10:c.fieldKind="message",c.message=n.getMessage(Qe(e.typeName)),it(c.message,`invalid FieldDescriptorProto: type_name ${e.typeName} not found`),c.delimitedEncoding=nt(e,t),c.getDefaultValue=()=>{};break;case 14:{const t=n.getEnum(Qe(e.typeName));it(void 0!==t,`invalid FieldDescriptorProto: type_name ${e.typeName} not found`),c.fieldKind="enum",c.enum=n.getEnum(Qe(e.typeName)),c.getDefaultValue=()=>K(e,"defaultValue")?function(e,t){const n=e.values.find(e=>e.name===t);if(!n)throw new Error(`cannot parse ${e} default value: ${t}`);return n.number}(t,e.defaultValue):void 0;break}default:c.fieldKind="scalar",c.scalar=f,c.longAsString=1==d,c.getDefaultValue=()=>K(e,"defaultValue")?function(e,t){switch(e){case k.STRING:return t;case k.BYTES:{const n=function(e){const t=[],n={tail:e,c:"",next(){return 0!=this.tail.length&&(this.c=this.tail[0],this.tail=this.tail.substring(1),!0)},take(e){if(this.tail.length>=e){const t=this.tail.substring(0,e);return this.tail=this.tail.substring(e),t}return!1}};for(;n.next();)if("\\"===n.c){if(n.next())switch(n.c){case"\\":t.push(n.c.charCodeAt(0));break;case"b":t.push(8);break;case"f":t.push(12);break;case"n":t.push(10);break;case"r":t.push(13);break;case"t":t.push(9);break;case"v":t.push(11);break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{const e=n.c,r=n.take(2);if(!1===r)return!1;const i=parseInt(e+r,8);if(Number.isNaN(i))return!1;t.push(i);break}case"x":{const e=n.c,r=n.take(2);if(!1===r)return!1;const i=parseInt(e+r,16);if(Number.isNaN(i))return!1;t.push(i);break}case"u":{const e=n.c,r=n.take(4);if(!1===r)return!1;const i=parseInt(e+r,16);if(Number.isNaN(i))return!1;const a=new Uint8Array(4);new DataView(a.buffer).setInt32(0,i,!0),t.push(a[0],a[1],a[2],a[3]);break}case"U":{const e=n.c,r=n.take(8);if(!1===r)return!1;const i=L.uEnc(e+r),a=new Uint8Array(8),s=new DataView(a.buffer);s.setInt32(0,i.lo,!0),s.setInt32(4,i.hi,!0),t.push(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7]);break}}}else t.push(n.c.charCodeAt(0));return new Uint8Array(t)}(t);if(!1===n)throw new Error(`cannot parse ${k[e]} default value: ${t}`);return n}case k.INT64:case k.SFIXED64:case k.SINT64:return L.parse(t);case k.UINT64:case k.FIXED64:return L.uParse(t);case k.DOUBLE:case k.FLOAT:switch(t){case"inf":return Number.POSITIVE_INFINITY;case"-inf":return Number.NEGATIVE_INFINITY;case"nan":return Number.NaN;default:return parseFloat(t)}case k.BOOL:return"true"===t;case k.INT32:case k.UINT32:case k.SINT32:case k.FIXED32:case k.SFIXED32:return parseInt(t,10)}}(f,e.defaultValue):void 0}return c}function Xe(e){switch(e.syntax){case"":case"proto2":return 998;case"proto3":return 999;case"editions":if(e.edition in ze)return e.edition;throw new Error(`${e.name}: unsupported edition`);default:throw new Error(`${e.name}: unsupported syntax "${e.syntax}"`)}}function Je(e,t){return e.dependency.map(n=>{const r=t.getFile(n);if(!r)throw new Error(`Cannot find ${n}, imported by ${e.name}`);return r})}function Ze(e,t,n){let r;return r=t?`${t.typeName}.${e.name}`:n.proto.package.length>0?`${n.proto.package}.${e.name}`:`${e.name}`,r}function Qe(e){return e.startsWith(".")?e.substring(1):e}function et(e,t){if(!K(e,"oneofIndex"))return;if(e.proto3Optional)return;const n=t[e.oneofIndex];return it(n,`invalid FieldDescriptorProto: oneof #${e.oneofIndex} for field #${e.number} not found`),n}function tt(e,t,n,r){if(2==e.label)return 3;if(3==e.label)return 2;if(t||e.proto3Optional)return 1;if(n)return 1;const i=rt("fieldPresence",{proto:e,parent:r});return 2!=i||11!=e.type&&10!=e.type?i:1}function nt(e,t){return 10==e.type||2==rt("messageEncoding",{proto:e,parent:t})}function rt(e,t){var n,r;const i=null===(n=t.proto.options)||void 0===n?void 0:n.features;if(i){const t=i[e];if(0!=t)return t}if("kind"in t){if("message"==t.kind)return rt(e,null!==(r=t.parent)&&void 0!==r?r:t.file);const n=ze[t.edition];if(!n)throw new Error(`feature default for edition ${t.edition} not found`);return n[e]}return rt(e,t.parent)}function it(e,t){if(!e)throw new Error(t)}function at(e){const t=function(e){const t=Object.create({syntax:"",edition:0});return Object.assign(t,Object.assign(Object.assign({$typeName:"google.protobuf.FileDescriptorProto",dependency:[],publicDependency:[],weakDependency:[],optionDependency:[],service:[],extension:[]},e),{messageType:e.messageType.map(st),enumType:e.enumType.map(ct)}))}(e);return t.messageType.forEach(je),Ue(t,()=>{}).getFile(t.name)}function st(e){var t,n,r,i,a,s,o,u;const c=Object.create({visibility:0});return Object.assign(c,{$typeName:"google.protobuf.DescriptorProto",name:e.name,field:null!==(n=null===(t=e.field)||void 0===t?void 0:t.map(ot))&&void 0!==n?n:[],extension:[],nestedType:null!==(i=null===(r=e.nestedType)||void 0===r?void 0:r.map(st))&&void 0!==i?i:[],enumType:null!==(s=null===(a=e.enumType)||void 0===a?void 0:a.map(ct))&&void 0!==s?s:[],extensionRange:null!==(u=null===(o=e.extensionRange)||void 0===o?void 0:o.map(e=>Object.assign({$typeName:"google.protobuf.DescriptorProto.ExtensionRange"},e)))&&void 0!==u?u:[],oneofDecl:[],reservedRange:[],reservedName:[]})}function ot(e){const t=Object.create({label:1,typeName:"",extendee:"",defaultValue:"",oneofIndex:0,jsonName:"",proto3Optional:!1});return Object.assign(t,Object.assign(Object.assign({$typeName:"google.protobuf.FieldDescriptorProto"},e),{options:e.options?ut(e.options):void 0}))}function ut(e){var t,n,r;const i=Object.create({ctype:0,packed:!1,jstype:0,lazy:!1,unverifiedLazy:!1,deprecated:!1,weak:!1,debugRedact:!1,retention:0});return Object.assign(i,Object.assign(Object.assign({$typeName:"google.protobuf.FieldOptions"},e),{targets:null!==(t=e.targets)&&void 0!==t?t:[],editionDefaults:null!==(r=null===(n=e.editionDefaults)||void 0===n?void 0:n.map(e=>Object.assign({$typeName:"google.protobuf.FieldOptions.EditionDefault"},e)))&&void 0!==r?r:[],uninterpretedOption:[]}))}function ct(e){const t=Object.create({visibility:0});return Object.assign(t,{$typeName:"google.protobuf.EnumDescriptorProto",name:e.name,reservedName:[],reservedRange:[],value:e.value.map(e=>Object.assign({$typeName:"google.protobuf.EnumValueDescriptorProto"},e))})}function lt(e,t,...n){return n.reduce((e,t)=>e.nestedMessages[t],e.messages[t])}const ft=lt(at({name:"google/protobuf/descriptor.proto",package:"google.protobuf",messageType:[{name:"FileDescriptorSet",field:[{name:"file",number:1,type:11,label:3,typeName:".google.protobuf.FileDescriptorProto"}],extensionRange:[{start:536e6,end:536000001}]},{name:"FileDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"package",number:2,type:9,label:1},{name:"dependency",number:3,type:9,label:3},{name:"public_dependency",number:10,type:5,label:3},{name:"weak_dependency",number:11,type:5,label:3},{name:"option_dependency",number:15,type:9,label:3},{name:"message_type",number:4,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:5,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"service",number:6,type:11,label:3,typeName:".google.protobuf.ServiceDescriptorProto"},{name:"extension",number:7,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FileOptions"},{name:"source_code_info",number:9,type:11,label:1,typeName:".google.protobuf.SourceCodeInfo"},{name:"syntax",number:12,type:9,label:1},{name:"edition",number:14,type:14,label:1,typeName:".google.protobuf.Edition"}]},{name:"DescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"field",number:2,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"extension",number:6,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"nested_type",number:3,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"extension_range",number:5,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ExtensionRange"},{name:"oneof_decl",number:8,type:11,label:3,typeName:".google.protobuf.OneofDescriptorProto"},{name:"options",number:7,type:11,label:1,typeName:".google.protobuf.MessageOptions"},{name:"reserved_range",number:9,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ReservedRange"},{name:"reserved_name",number:10,type:9,label:3},{name:"visibility",number:11,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"ExtensionRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ExtensionRangeOptions"}]},{name:"ReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"ExtensionRangeOptions",field:[{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"},{name:"declaration",number:2,type:11,label:3,typeName:".google.protobuf.ExtensionRangeOptions.Declaration",options:{retention:2}},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"verification",number:3,type:14,label:1,typeName:".google.protobuf.ExtensionRangeOptions.VerificationState",defaultValue:"UNVERIFIED",options:{retention:2}}],nestedType:[{name:"Declaration",field:[{name:"number",number:1,type:5,label:1},{name:"full_name",number:2,type:9,label:1},{name:"type",number:3,type:9,label:1},{name:"reserved",number:5,type:8,label:1},{name:"repeated",number:6,type:8,label:1}]}],enumType:[{name:"VerificationState",value:[{name:"DECLARATION",number:0},{name:"UNVERIFIED",number:1}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"FieldDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:3,type:5,label:1},{name:"label",number:4,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Label"},{name:"type",number:5,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Type"},{name:"type_name",number:6,type:9,label:1},{name:"extendee",number:2,type:9,label:1},{name:"default_value",number:7,type:9,label:1},{name:"oneof_index",number:9,type:5,label:1},{name:"json_name",number:10,type:9,label:1},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FieldOptions"},{name:"proto3_optional",number:17,type:8,label:1}],enumType:[{name:"Type",value:[{name:"TYPE_DOUBLE",number:1},{name:"TYPE_FLOAT",number:2},{name:"TYPE_INT64",number:3},{name:"TYPE_UINT64",number:4},{name:"TYPE_INT32",number:5},{name:"TYPE_FIXED64",number:6},{name:"TYPE_FIXED32",number:7},{name:"TYPE_BOOL",number:8},{name:"TYPE_STRING",number:9},{name:"TYPE_GROUP",number:10},{name:"TYPE_MESSAGE",number:11},{name:"TYPE_BYTES",number:12},{name:"TYPE_UINT32",number:13},{name:"TYPE_ENUM",number:14},{name:"TYPE_SFIXED32",number:15},{name:"TYPE_SFIXED64",number:16},{name:"TYPE_SINT32",number:17},{name:"TYPE_SINT64",number:18}]},{name:"Label",value:[{name:"LABEL_OPTIONAL",number:1},{name:"LABEL_REPEATED",number:3},{name:"LABEL_REQUIRED",number:2}]}]},{name:"OneofDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"options",number:2,type:11,label:1,typeName:".google.protobuf.OneofOptions"}]},{name:"EnumDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"value",number:2,type:11,label:3,typeName:".google.protobuf.EnumValueDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumOptions"},{name:"reserved_range",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto.EnumReservedRange"},{name:"reserved_name",number:5,type:9,label:3},{name:"visibility",number:6,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"EnumReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"EnumValueDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumValueOptions"}]},{name:"ServiceDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"method",number:2,type:11,label:3,typeName:".google.protobuf.MethodDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ServiceOptions"}]},{name:"MethodDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"input_type",number:2,type:9,label:1},{name:"output_type",number:3,type:9,label:1},{name:"options",number:4,type:11,label:1,typeName:".google.protobuf.MethodOptions"},{name:"client_streaming",number:5,type:8,label:1,defaultValue:"false"},{name:"server_streaming",number:6,type:8,label:1,defaultValue:"false"}]},{name:"FileOptions",field:[{name:"java_package",number:1,type:9,label:1},{name:"java_outer_classname",number:8,type:9,label:1},{name:"java_multiple_files",number:10,type:8,label:1,defaultValue:"false"},{name:"java_generate_equals_and_hash",number:20,type:8,label:1,options:{deprecated:!0}},{name:"java_string_check_utf8",number:27,type:8,label:1,defaultValue:"false"},{name:"optimize_for",number:9,type:14,label:1,typeName:".google.protobuf.FileOptions.OptimizeMode",defaultValue:"SPEED"},{name:"go_package",number:11,type:9,label:1},{name:"cc_generic_services",number:16,type:8,label:1,defaultValue:"false"},{name:"java_generic_services",number:17,type:8,label:1,defaultValue:"false"},{name:"py_generic_services",number:18,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:23,type:8,label:1,defaultValue:"false"},{name:"cc_enable_arenas",number:31,type:8,label:1,defaultValue:"true"},{name:"objc_class_prefix",number:36,type:9,label:1},{name:"csharp_namespace",number:37,type:9,label:1},{name:"swift_prefix",number:39,type:9,label:1},{name:"php_class_prefix",number:40,type:9,label:1},{name:"php_namespace",number:41,type:9,label:1},{name:"php_metadata_namespace",number:44,type:9,label:1},{name:"ruby_package",number:45,type:9,label:1},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"OptimizeMode",value:[{name:"SPEED",number:1},{name:"CODE_SIZE",number:2},{name:"LITE_RUNTIME",number:3}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"MessageOptions",field:[{name:"message_set_wire_format",number:1,type:8,label:1,defaultValue:"false"},{name:"no_standard_descriptor_accessor",number:2,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"map_entry",number:7,type:8,label:1},{name:"deprecated_legacy_json_field_conflicts",number:11,type:8,label:1,options:{deprecated:!0}},{name:"features",number:12,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"FieldOptions",field:[{name:"ctype",number:1,type:14,label:1,typeName:".google.protobuf.FieldOptions.CType",defaultValue:"STRING"},{name:"packed",number:2,type:8,label:1},{name:"jstype",number:6,type:14,label:1,typeName:".google.protobuf.FieldOptions.JSType",defaultValue:"JS_NORMAL"},{name:"lazy",number:5,type:8,label:1,defaultValue:"false"},{name:"unverified_lazy",number:15,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"weak",number:10,type:8,label:1,defaultValue:"false",options:{deprecated:!0}},{name:"debug_redact",number:16,type:8,label:1,defaultValue:"false"},{name:"retention",number:17,type:14,label:1,typeName:".google.protobuf.FieldOptions.OptionRetention"},{name:"targets",number:19,type:14,label:3,typeName:".google.protobuf.FieldOptions.OptionTargetType"},{name:"edition_defaults",number:20,type:11,label:3,typeName:".google.protobuf.FieldOptions.EditionDefault"},{name:"features",number:21,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"feature_support",number:22,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],nestedType:[{name:"EditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"value",number:2,type:9,label:1}]},{name:"FeatureSupport",field:[{name:"edition_introduced",number:1,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"edition_deprecated",number:2,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"deprecation_warning",number:3,type:9,label:1},{name:"edition_removed",number:4,type:14,label:1,typeName:".google.protobuf.Edition"}]}],enumType:[{name:"CType",value:[{name:"STRING",number:0},{name:"CORD",number:1},{name:"STRING_PIECE",number:2}]},{name:"JSType",value:[{name:"JS_NORMAL",number:0},{name:"JS_STRING",number:1},{name:"JS_NUMBER",number:2}]},{name:"OptionRetention",value:[{name:"RETENTION_UNKNOWN",number:0},{name:"RETENTION_RUNTIME",number:1},{name:"RETENTION_SOURCE",number:2}]},{name:"OptionTargetType",value:[{name:"TARGET_TYPE_UNKNOWN",number:0},{name:"TARGET_TYPE_FILE",number:1},{name:"TARGET_TYPE_EXTENSION_RANGE",number:2},{name:"TARGET_TYPE_MESSAGE",number:3},{name:"TARGET_TYPE_FIELD",number:4},{name:"TARGET_TYPE_ONEOF",number:5},{name:"TARGET_TYPE_ENUM",number:6},{name:"TARGET_TYPE_ENUM_ENTRY",number:7},{name:"TARGET_TYPE_SERVICE",number:8},{name:"TARGET_TYPE_METHOD",number:9}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"OneofOptions",field:[{name:"features",number:1,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"EnumOptions",field:[{name:"allow_alias",number:2,type:8,label:1},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"deprecated_legacy_json_field_conflicts",number:6,type:8,label:1,options:{deprecated:!0}},{name:"features",number:7,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"EnumValueOptions",field:[{name:"deprecated",number:1,type:8,label:1,defaultValue:"false"},{name:"features",number:2,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"debug_redact",number:3,type:8,label:1,defaultValue:"false"},{name:"feature_support",number:4,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"ServiceOptions",field:[{name:"features",number:34,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"MethodOptions",field:[{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"idempotency_level",number:34,type:14,label:1,typeName:".google.protobuf.MethodOptions.IdempotencyLevel",defaultValue:"IDEMPOTENCY_UNKNOWN"},{name:"features",number:35,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"IdempotencyLevel",value:[{name:"IDEMPOTENCY_UNKNOWN",number:0},{name:"NO_SIDE_EFFECTS",number:1},{name:"IDEMPOTENT",number:2}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"UninterpretedOption",field:[{name:"name",number:2,type:11,label:3,typeName:".google.protobuf.UninterpretedOption.NamePart"},{name:"identifier_value",number:3,type:9,label:1},{name:"positive_int_value",number:4,type:4,label:1},{name:"negative_int_value",number:5,type:3,label:1},{name:"double_value",number:6,type:1,label:1},{name:"string_value",number:7,type:12,label:1},{name:"aggregate_value",number:8,type:9,label:1}],nestedType:[{name:"NamePart",field:[{name:"name_part",number:1,type:9,label:2},{name:"is_extension",number:2,type:8,label:2}]}]},{name:"FeatureSet",field:[{name:"field_presence",number:1,type:14,label:1,typeName:".google.protobuf.FeatureSet.FieldPresence",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPLICIT",edition:900},{value:"IMPLICIT",edition:999},{value:"EXPLICIT",edition:1e3}]}},{name:"enum_type",number:2,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnumType",options:{retention:1,targets:[6,1],editionDefaults:[{value:"CLOSED",edition:900},{value:"OPEN",edition:999}]}},{name:"repeated_field_encoding",number:3,type:14,label:1,typeName:".google.protobuf.FeatureSet.RepeatedFieldEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPANDED",edition:900},{value:"PACKED",edition:999}]}},{name:"utf8_validation",number:4,type:14,label:1,typeName:".google.protobuf.FeatureSet.Utf8Validation",options:{retention:1,targets:[4,1],editionDefaults:[{value:"NONE",edition:900},{value:"VERIFY",edition:999}]}},{name:"message_encoding",number:5,type:14,label:1,typeName:".google.protobuf.FeatureSet.MessageEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"LENGTH_PREFIXED",edition:900}]}},{name:"json_format",number:6,type:14,label:1,typeName:".google.protobuf.FeatureSet.JsonFormat",options:{retention:1,targets:[3,6,1],editionDefaults:[{value:"LEGACY_BEST_EFFORT",edition:900},{value:"ALLOW",edition:999}]}},{name:"enforce_naming_style",number:7,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnforceNamingStyle",options:{retention:2,targets:[1,2,3,4,5,6,7,8,9],editionDefaults:[{value:"STYLE_LEGACY",edition:900},{value:"STYLE2024",edition:1001}]}},{name:"default_symbol_visibility",number:8,type:14,label:1,typeName:".google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility",options:{retention:2,targets:[1],editionDefaults:[{value:"EXPORT_ALL",edition:900},{value:"EXPORT_TOP_LEVEL",edition:1001}]}}],nestedType:[{name:"VisibilityFeature",enumType:[{name:"DefaultSymbolVisibility",value:[{name:"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",number:0},{name:"EXPORT_ALL",number:1},{name:"EXPORT_TOP_LEVEL",number:2},{name:"LOCAL_ALL",number:3},{name:"STRICT",number:4}]}]}],enumType:[{name:"FieldPresence",value:[{name:"FIELD_PRESENCE_UNKNOWN",number:0},{name:"EXPLICIT",number:1},{name:"IMPLICIT",number:2},{name:"LEGACY_REQUIRED",number:3}]},{name:"EnumType",value:[{name:"ENUM_TYPE_UNKNOWN",number:0},{name:"OPEN",number:1},{name:"CLOSED",number:2}]},{name:"RepeatedFieldEncoding",value:[{name:"REPEATED_FIELD_ENCODING_UNKNOWN",number:0},{name:"PACKED",number:1},{name:"EXPANDED",number:2}]},{name:"Utf8Validation",value:[{name:"UTF8_VALIDATION_UNKNOWN",number:0},{name:"VERIFY",number:2},{name:"NONE",number:3}]},{name:"MessageEncoding",value:[{name:"MESSAGE_ENCODING_UNKNOWN",number:0},{name:"LENGTH_PREFIXED",number:1},{name:"DELIMITED",number:2}]},{name:"JsonFormat",value:[{name:"JSON_FORMAT_UNKNOWN",number:0},{name:"ALLOW",number:1},{name:"LEGACY_BEST_EFFORT",number:2}]},{name:"EnforceNamingStyle",value:[{name:"ENFORCE_NAMING_STYLE_UNKNOWN",number:0},{name:"STYLE2024",number:1},{name:"STYLE_LEGACY",number:2}]}],extensionRange:[{start:1e3,end:9995},{start:9995,end:1e4},{start:1e4,end:10001}]},{name:"FeatureSetDefaults",field:[{name:"defaults",number:1,type:11,label:3,typeName:".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"},{name:"minimum_edition",number:4,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"maximum_edition",number:5,type:14,label:1,typeName:".google.protobuf.Edition"}],nestedType:[{name:"FeatureSetEditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"overridable_features",number:4,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"fixed_features",number:5,type:11,label:1,typeName:".google.protobuf.FeatureSet"}]}]},{name:"SourceCodeInfo",field:[{name:"location",number:1,type:11,label:3,typeName:".google.protobuf.SourceCodeInfo.Location"}],nestedType:[{name:"Location",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"span",number:2,type:5,label:3,options:{packed:!0}},{name:"leading_comments",number:3,type:9,label:1},{name:"trailing_comments",number:4,type:9,label:1},{name:"leading_detached_comments",number:6,type:9,label:3}]}],extensionRange:[{start:536e6,end:536000001}]},{name:"GeneratedCodeInfo",field:[{name:"annotation",number:1,type:11,label:3,typeName:".google.protobuf.GeneratedCodeInfo.Annotation"}],nestedType:[{name:"Annotation",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"source_file",number:2,type:9,label:1},{name:"begin",number:3,type:5,label:1},{name:"end",number:4,type:5,label:1},{name:"semantic",number:5,type:14,label:1,typeName:".google.protobuf.GeneratedCodeInfo.Annotation.Semantic"}],enumType:[{name:"Semantic",value:[{name:"NONE",number:0},{name:"SET",number:1},{name:"ALIAS",number:2}]}]}]}],enumType:[{name:"Edition",value:[{name:"EDITION_UNKNOWN",number:0},{name:"EDITION_LEGACY",number:900},{name:"EDITION_PROTO2",number:998},{name:"EDITION_PROTO3",number:999},{name:"EDITION_2023",number:1e3},{name:"EDITION_2024",number:1001},{name:"EDITION_UNSTABLE",number:9999},{name:"EDITION_1_TEST_ONLY",number:1},{name:"EDITION_2_TEST_ONLY",number:2},{name:"EDITION_99997_TEST_ONLY",number:99997},{name:"EDITION_99998_TEST_ONLY",number:99998},{name:"EDITION_99999_TEST_ONLY",number:99999},{name:"EDITION_MAX",number:2147483647}]},{name:"SymbolVisibility",value:[{name:"VISIBILITY_UNSET",number:0},{name:"VISIBILITY_LOCAL",number:1},{name:"VISIBILITY_EXPORT",number:2}]}]}),1);var dt,ht,pt,mt,yt,bt,gt,vt,wt,_t,St,Et,kt,xt,Tt,Mt,It,At,Nt,Pt;!function(e){e[e.DECLARATION=0]="DECLARATION",e[e.UNVERIFIED=1]="UNVERIFIED"}(dt||(dt={})),function(e){e[e.DOUBLE=1]="DOUBLE",e[e.FLOAT=2]="FLOAT",e[e.INT64=3]="INT64",e[e.UINT64=4]="UINT64",e[e.INT32=5]="INT32",e[e.FIXED64=6]="FIXED64",e[e.FIXED32=7]="FIXED32",e[e.BOOL=8]="BOOL",e[e.STRING=9]="STRING",e[e.GROUP=10]="GROUP",e[e.MESSAGE=11]="MESSAGE",e[e.BYTES=12]="BYTES",e[e.UINT32=13]="UINT32",e[e.ENUM=14]="ENUM",e[e.SFIXED32=15]="SFIXED32",e[e.SFIXED64=16]="SFIXED64",e[e.SINT32=17]="SINT32",e[e.SINT64=18]="SINT64"}(ht||(ht={})),function(e){e[e.OPTIONAL=1]="OPTIONAL",e[e.REPEATED=3]="REPEATED",e[e.REQUIRED=2]="REQUIRED"}(pt||(pt={})),function(e){e[e.SPEED=1]="SPEED",e[e.CODE_SIZE=2]="CODE_SIZE",e[e.LITE_RUNTIME=3]="LITE_RUNTIME"}(mt||(mt={})),function(e){e[e.STRING=0]="STRING",e[e.CORD=1]="CORD",e[e.STRING_PIECE=2]="STRING_PIECE"}(yt||(yt={})),function(e){e[e.JS_NORMAL=0]="JS_NORMAL",e[e.JS_STRING=1]="JS_STRING",e[e.JS_NUMBER=2]="JS_NUMBER"}(bt||(bt={})),function(e){e[e.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",e[e.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",e[e.RETENTION_SOURCE=2]="RETENTION_SOURCE"}(gt||(gt={})),function(e){e[e.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",e[e.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",e[e.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",e[e.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",e[e.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",e[e.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",e[e.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",e[e.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",e[e.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",e[e.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"}(vt||(vt={})),function(e){e[e.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",e[e.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",e[e.IDEMPOTENT=2]="IDEMPOTENT"}(wt||(wt={})),function(e){e[e.DEFAULT_SYMBOL_VISIBILITY_UNKNOWN=0]="DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",e[e.EXPORT_ALL=1]="EXPORT_ALL",e[e.EXPORT_TOP_LEVEL=2]="EXPORT_TOP_LEVEL",e[e.LOCAL_ALL=3]="LOCAL_ALL",e[e.STRICT=4]="STRICT"}(_t||(_t={})),function(e){e[e.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",e[e.EXPLICIT=1]="EXPLICIT",e[e.IMPLICIT=2]="IMPLICIT",e[e.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"}(St||(St={})),function(e){e[e.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",e[e.OPEN=1]="OPEN",e[e.CLOSED=2]="CLOSED"}(Et||(Et={})),function(e){e[e.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",e[e.PACKED=1]="PACKED",e[e.EXPANDED=2]="EXPANDED"}(kt||(kt={})),function(e){e[e.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",e[e.VERIFY=2]="VERIFY",e[e.NONE=3]="NONE"}(xt||(xt={})),function(e){e[e.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",e[e.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",e[e.DELIMITED=2]="DELIMITED"}(Tt||(Tt={})),function(e){e[e.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",e[e.ALLOW=1]="ALLOW",e[e.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"}(Mt||(Mt={})),function(e){e[e.ENFORCE_NAMING_STYLE_UNKNOWN=0]="ENFORCE_NAMING_STYLE_UNKNOWN",e[e.STYLE2024=1]="STYLE2024",e[e.STYLE_LEGACY=2]="STYLE_LEGACY"}(It||(It={})),function(e){e[e.NONE=0]="NONE",e[e.SET=1]="SET",e[e.ALIAS=2]="ALIAS"}(At||(At={})),function(e){e[e.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",e[e.EDITION_LEGACY=900]="EDITION_LEGACY",e[e.EDITION_PROTO2=998]="EDITION_PROTO2",e[e.EDITION_PROTO3=999]="EDITION_PROTO3",e[e.EDITION_2023=1e3]="EDITION_2023",e[e.EDITION_2024=1001]="EDITION_2024",e[e.EDITION_UNSTABLE=9999]="EDITION_UNSTABLE",e[e.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",e[e.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",e[e.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",e[e.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",e[e.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY",e[e.EDITION_MAX=2147483647]="EDITION_MAX"}(Nt||(Nt={})),function(e){e[e.VISIBILITY_UNSET=0]="VISIBILITY_UNSET",e[e.VISIBILITY_LOCAL=1]="VISIBILITY_LOCAL",e[e.VISIBILITY_EXPORT=2]="VISIBILITY_EXPORT"}(Pt||(Pt={}));const Ot=["FieldValueInvalidError","FieldListRangeError","ForeignFieldError"];class Rt extends Error{constructor(e,t,n="FieldValueInvalidError"){super(t),this.name=n,this.field=()=>e}}const Ct=Symbol.for("@bufbuild/protobuf/text-encoding");function Bt(){if(null==globalThis[Ct]){const e=new globalThis.TextEncoder,t=new globalThis.TextDecoder;globalThis[Ct]={encodeUtf8:t=>e.encode(t),decodeUtf8:e=>t.decode(e),checkUtf8(e){try{return encodeURIComponent(e),!0}catch(e){return!1}}}}return globalThis[Ct]}var Ft;!function(e){e[e.Varint=0]="Varint",e[e.Bit64=1]="Bit64",e[e.LengthDelimited=2]="LengthDelimited",e[e.StartGroup=3]="StartGroup",e[e.EndGroup=4]="EndGroup",e[e.Bit32=5]="Bit32"}(Ft||(Ft={}));const Lt=34028234663852886e22,jt=-34028234663852886e22,Dt=4294967295,Ut=2147483647,zt=-2147483648;class $t{constructor(e=Bt().encodeUtf8){this.encodeUtf8=e,this.stack=[],this.chunks=[],this.buf=[]}finish(){this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]);let e=0;for(let t=0;t>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(Yt(e);e>127;)this.buf.push(127&e|128),e>>>=7;return this.buf.push(e),this}int32(e){return Kt(e),C(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let t=this.encodeUtf8(e);return this.uint32(t.byteLength),this.raw(t)}float(e){!function(e){if("string"==typeof e){const t=e;if(e=Number(e),Number.isNaN(e)&&"NaN"!==t)throw new Error("invalid float32: "+t)}else if("number"!=typeof e)throw new Error("invalid float32: "+typeof e);if(Number.isFinite(e)&&(e>Lt||e>31)>>>0,this.buf),this}sfixed64(e){let t=new Uint8Array(8),n=new DataView(t.buffer),r=L.enc(e);return n.setInt32(0,r.lo,!0),n.setInt32(4,r.hi,!0),this.raw(t)}fixed64(e){let t=new Uint8Array(8),n=new DataView(t.buffer),r=L.uEnc(e);return n.setInt32(0,r.lo,!0),n.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=L.enc(e);return M(t.lo,t.hi,this.buf),this}sint64(e){const t=L.enc(e),n=t.hi>>31;return M(t.lo<<1^n,(t.hi<<1|t.lo>>>31)^n,this.buf),this}uint64(e){const t=L.uEnc(e);return M(t.lo,t.hi,this.buf),this}}class Vt{constructor(e,t=Bt().decodeUtf8){this.decodeUtf8=t,this.varint64=T,this.uint32=B,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength)}tag(){let e=this.uint32(),t=e>>>3,n=7&e;if(t<=0||n<0||n>5)throw new Error("illegal tag: field no "+t+" wire type "+n);return[t,n]}skip(e,t){let n=this.pos;switch(e){case Ft.Varint:for(;128&this.buf[this.pos++];);break;case Ft.Bit64:this.pos+=4;case Ft.Bit32:this.pos+=4;break;case Ft.LengthDelimited:let n=this.uint32();this.pos+=n;break;case Ft.StartGroup:for(;;){const[e,n]=this.tag();if(n===Ft.EndGroup){if(void 0!==t&&e!==t)throw new Error("invalid end group tag");break}this.skip(n,e)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(n,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return 0|this.uint32()}sint32(){let e=this.uint32();return e>>>1^-(1&e)}int64(){return L.dec(...this.varint64())}uint64(){return L.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),n=-(1&e);return e=(e>>>1|(1&t)<<31)^n,t=t>>>1^n,L.dec(e,t)}bool(){let[e,t]=this.varint64();return 0!==e||0!==t}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return L.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return L.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(){return this.decodeUtf8(this.bytes())}}function Kt(e){if("string"==typeof e)e=Number(e);else if("number"!=typeof e)throw new Error("invalid int32: "+typeof e);if(!Number.isInteger(e)||e>Ut||eDt||e<0)throw new Error("invalid uint32: "+e)}function qt(e,t){const n="list"==e.fieldKind?G(t,e):"map"==e.fieldKind?W(t,e):Gt(e,t);if(!0===n)return;let r;switch(e.fieldKind){case"list":r=`expected ${Qt(e)}, got ${Jt(t)}`;break;case"map":r=`expected ${en(e)}, got ${Jt(t)}`;break;default:r=Xt(e,t,n)}return new Rt(e,r)}function Ht(e,t,n){const r=Gt(e,n);if(!0!==r)return new Rt(e,`list item #${t+1}: ${Xt(e,n,r)}`)}function Gt(e,t){return void 0!==e.scalar?Wt(t,e.scalar):void 0!==e.enum?e.enum.open?Number.isInteger(t):e.enum.values.some(e=>e.number===t):X(t,e.message)}function Wt(e,t){switch(t){case k.DOUBLE:return"number"==typeof e;case k.FLOAT:return"number"==typeof e&&(!(!Number.isNaN(e)&&Number.isFinite(e))||!(e>Lt||eUt||eDt||e<0)||`${e.toFixed()} out of range`);case k.BOOL:return"boolean"==typeof e;case k.STRING:return"string"==typeof e&&(Bt().checkUtf8(e)||"invalid UTF8");case k.BYTES:return e instanceof Uint8Array;case k.INT64:case k.SFIXED64:case k.SINT64:if("bigint"==typeof e||"number"==typeof e||"string"==typeof e&&e.length>0)try{return L.parse(e),!0}catch(t){return`${e} out of range`}return!1;case k.FIXED64:case k.UINT64:if("bigint"==typeof e||"number"==typeof e||"string"==typeof e&&e.length>0)try{return L.uParse(e),!0}catch(t){return`${e} out of range`}return!1}}function Xt(e,t,n){return n="string"==typeof n?`: ${n}`:`, got ${Jt(t)}`,void 0!==e.scalar?`expected ${function(e){switch(e){case k.STRING:return"string";case k.BOOL:return"boolean";case k.INT64:case k.SINT64:case k.SFIXED64:return"bigint (int64)";case k.UINT64:case k.FIXED64:return"bigint (uint64)";case k.BYTES:return"Uint8Array";case k.DOUBLE:return"number (float64)";case k.FLOAT:return"number (float32)";case k.FIXED32:case k.UINT32:return"number (uint32)";case k.INT32:case k.SFIXED32:case k.SINT32:return"number (int32)"}}(e.scalar)}`+n:void 0!==e.enum?`expected ${e.enum.toString()}`+n:`expected ${Zt(e.message)}`+n}function Jt(e){switch(typeof e){case"object":return null===e?"null":e instanceof Uint8Array?`Uint8Array(${e.length})`:Array.isArray(e)?`Array(${e.length})`:G(e)?Qt(e.field()):W(e)?en(e.field()):X(e)?Zt(e.desc):E(e)?`message ${e.$typeName}`:"object";case"string":return e.length>30?"string":`"${e.split('"').join('\\"')}"`;case"boolean":case"number":return String(e);case"bigint":return String(e)+"n";default:return typeof e}}function Zt(e){return`ReflectMessage (${e.typeName})`}function Qt(e){switch(e.listKind){case"message":return`ReflectList (${e.message.toString()})`;case"enum":return`ReflectList (${e.enum.toString()})`;case"scalar":return`ReflectList (${k[e.scalar]})`}}function en(e){switch(e.mapKind){case"message":return`ReflectMap (${k[e.mapKey]}, ${e.message.toString()})`;case"enum":return`ReflectMap (${k[e.mapKey]}, ${e.enum.toString()})`;case"scalar":return`ReflectMap (${k[e.mapKey]}, ${k[e.scalar]})`}}function tn(e,t,n=!0){return new rn(e,t,n)}const nn=new WeakMap;class rn{get sortedFields(){const e=nn.get(this.desc);if(e)return e;const t=this.desc.fields.concat().sort((e,t)=>e.number-t.number);return nn.set(this.desc,t),t}constructor(e,t,n=!0){this.lists=new Map,this.maps=new Map,this.check=n,this.desc=e,this.message=this[$]=null!=t?t:Q(e),this.fields=e.fields,this.oneofs=e.oneofs,this.members=e.members}findNumber(e){return this._fieldsByNumber||(this._fieldsByNumber=new Map(this.desc.fields.map(e=>[e.number,e]))),this._fieldsByNumber.get(e)}oneofCase(e){return an(this.message,e),V(this.message,e)}isSet(e){return an(this.message,e),function(e,t){const n=t.localName;if(t.oneof)return e[t.oneof.localName].case===n;if(2!=t.presence)return void 0!==e[n]&&Object.prototype.hasOwnProperty.call(e,n);switch(t.fieldKind){case"list":return e[n].length>0;case"map":return Object.keys(e[n]).length>0;case"scalar":return!function(e,t){switch(e){case k.BOOL:return!1===t;case k.STRING:return""===t;case k.BYTES:return t instanceof Uint8Array&&!t.byteLength;default:return 0==t}}(t.scalar,e[n]);case"enum":return e[n]!==t.enum.values[0].number}throw new Error("message field with implicit presence")}(this.message,e)}clear(e){an(this.message,e),function(e,t){const n=t.localName;if(t.oneof){const r=t.oneof.localName;e[r].case===n&&(e[r]={case:void 0})}else if(2!=t.presence)delete e[n];else switch(t.fieldKind){case"map":e[n]={};break;case"list":e[n]=[];break;case"enum":e[n]=t.enum.values[0].number;break;case"scalar":e[n]=z(t.scalar,t.longAsString)}}(this.message,e)}get(e){an(this.message,e);const t=Y(this.message,e);switch(e.fieldKind){case"list":let n=this.lists.get(e);return n&&n[$]===t||this.lists.set(e,n=new sn(e,t,this.check)),n;case"map":let r=this.maps.get(e);return r&&r[$]===t||this.maps.set(e,r=new on(e,t,this.check)),r;case"message":return cn(e,t,this.check);case"scalar":return void 0===t?z(e.scalar,!1):mn(e,t);case"enum":return null!=t?t:e.enum.values[0].number}}set(e,t){if(an(this.message,e),this.check){const n=qt(e,t);if(n)throw n}let n;n="message"==e.fieldKind?un(e,t):W(t)||G(t)?t[$]:yn(e,t),q(this.message,e,n)}getUnknown(){return this.message.$unknown}setUnknown(e){this.message.$unknown=e}}function an(e,t){if(t.parent.typeName!==e.$typeName)throw new Rt(t,`cannot use ${t.toString()} with message ${e.$typeName}`,"ForeignFieldError")}class sn{field(){return this._field}get size(){return this._arr.length}constructor(e,t,n){this._field=e,this._arr=this[$]=t,this.check=n}get(e){const t=this._arr[e];return void 0===t?void 0:fn(this._field,t,this.check)}set(e,t){if(e<0||e>=this._arr.length)throw new Rt(this._field,`list item #${e+1}: out of range`);if(this.check){const n=Ht(this._field,e,t);if(n)throw n}this._arr[e]=ln(this._field,t)}add(e){if(this.check){const t=Ht(this._field,this._arr.length,e);if(t)throw t}this._arr.push(ln(this._field,e))}clear(){this._arr.splice(0,this._arr.length)}[Symbol.iterator](){return this.values()}keys(){return this._arr.keys()}*values(){for(const e of this._arr)yield fn(this._field,e,this.check)}*entries(){for(let e=0;e0&&e.setUnknown(c)}function kn(e,t,n,r,i){var a;switch(n.fieldKind){case"scalar":e.set(n,Tn(t,n.scalar));break;case"enum":const s=Tn(t,k.INT32);if(n.enum.open)e.set(n,s);else if(n.enum.values.some(e=>e.number===s))e.set(n,s);else if(i.readUnknownFields){const t=[];C(s,t);const i=null!==(a=e.getUnknown())&&void 0!==a?a:[];i.push({no:n.number,wireType:r,data:new Uint8Array(t)}),e.setUnknown(i)}break;case"message":e.set(n,xn(t,i,n,e.get(n)));break;case"list":!function(e,t,n,r){var i;const a=n.field();if("message"===a.listKind)return void n.add(xn(e,r,a));const s=null!==(i=a.scalar)&&void 0!==i?i:k.INT32;if(!(t==Ft.LengthDelimited&&s!=k.STRING&&s!=k.BYTES))return void n.add(Tn(e,s));const o=e.uint32()+e.pos;for(;e.pose.proto.name))&&void 0!==n?n:[],Ue(r,e=>null==t?void 0:t.find(t=>t.proto.name===e)).getFile(r.name)}function In(e,t,...n){if(n.length>0)throw new Error;return e.services[t]}const An=Mn("ChxpbmNvL2ttcy9saXRlL3YxL3R5cGVzLnByb3RvEhBpbmNvLmttcy5saXRlLnYxIhkKC0VDSUVTS2V5c2V0EgoKAnBrGAEgASgMIrUBCghBQ0xQcm9vZhJMChlpbmNvX2xpdGVfYmFzaWNfYWNsX3Byb29mGAogASgLMicuaW5jby5rbXMubGl0ZS52MS5JbmNvTGl0ZUJhc2ljQUNMUHJvb2ZIABJSChxpbmNvX2xpdGVfYWR2YW5jZWRfYWNsX3Byb29mGAsgASgLMiouaW5jby5rbXMubGl0ZS52MS5JbmNvTGl0ZUFkdmFuY2VkQUNMUHJvb2ZIAEIHCgVwcm9vZiJQCg9IYW5kbGVXaXRoUHJvb2YSDgoGaGFuZGxlGAEgASgJEi0KCWFjbF9wcm9vZhgCIAEoCzIaLmluY28ua21zLmxpdGUudjEuQUNMUHJvb2YiFwoVSW5jb0xpdGVCYXNpY0FDTFByb29mInUKEEFsbG93YW5jZVZvdWNoZXISGgoSdmVyaWZ5aW5nX2NvbnRyYWN0GAEgASgJEhUKDWNhbGxfZnVuY3Rpb24YAiABKAwSFwoPc2hhcmVyX2FyZ19kYXRhGAMgASgMEhUKDXNlc3Npb25fbm9uY2UYBCABKAwijAEKDkFsbG93YW5jZVByb29mEg4KBnNoYXJlchgBIAEoCRIzCgd2b3VjaGVyGAIgASgLMiIuaW5jby5rbXMubGl0ZS52MS5BbGxvd2FuY2VWb3VjaGVyEhkKEXZvdWNoZXJfc2lnbmF0dXJlGAMgASgMEhoKEnJlcXVlc3Rlcl9hcmdfZGF0YRgEIAEoDCJVChhJbmNvTGl0ZUFkdmFuY2VkQUNMUHJvb2YSOQoPYWxsb3dhbmNlX3Byb29mGAEgASgLMiAuaW5jby5rbXMubGl0ZS52MS5BbGxvd2FuY2VQcm9vZkI7WjlnaXRodWIuY29tL2luY28tZmhldm0vaW5jby1tb25vcmVwby9jb3ZhbGlkYXRvci9rbXMvdHlwZXNiBnByb3RvMw"),Nn=lt(An,2),Pn=lt(An,4),On=lt(An,5),Rn=lt(An,6),Cn=Mn("CiJpbmNvL2ttcy9saXRlL3YxL2ttc19zZXJ2aWNlLnByb3RvEhBpbmNvLmttcy5saXRlLnYxIgwKCktleVJlcXVlc3QiVQoLS2V5UmVzcG9uc2USLQoGa2V5c2V0GAEgASgLMh0uaW5jby5rbXMubGl0ZS52MS5FQ0lFU0tleXNldBIXCg9zaWduaW5nX2FkZHJlc3MYAiABKAkiowEKFkF0dGVzdGVkRGVjcnlwdFJlcXVlc3QSFAoMdXNlcl9hZGRyZXNzGAEgASgJEhkKEXJlZW5jcnlwdF9wdWJfa2V5GAIgASgMEhgKEGVpcDcxMl9zaWduYXR1cmUYAyABKAwSPgoTaGFuZGxlc193aXRoX3Byb29mcxgEIAMoCzIhLmluY28ua21zLmxpdGUudjEuSGFuZGxlV2l0aFByb29mIigKFUF0dGVzdGVkUmV2ZWFsUmVxdWVzdBIPCgdoYW5kbGVzGAMgAygJIvQBChZBdHRlc3RlZENvbXB1dGVSZXF1ZXN0EhQKDHVzZXJfYWRkcmVzcxgBIAEoCRIZChFyZWVuY3J5cHRfcHViX2tleRgCIAEoDBIYChBlaXA3MTJfc2lnbmF0dXJlGAMgASgMEjUKAm9wGAQgASgOMikuaW5jby5rbXMubGl0ZS52MS5TdXBwb3J0ZWRTY2FsYXJCaW5hcnlPcBISCgpsaHNfaGFuZGxlGAUgASgJEhUKDXJoc19wbGFpbnRleHQYBiABKAkSLQoJYWNsX3Byb29mGAcgASgLMhouaW5jby5rbXMubGl0ZS52MS5BQ0xQcm9vZiJjChdBdHRlc3RlZERlY3J5cHRSZXNwb25zZRJIChdkZWNyeXB0aW9uX2F0dGVzdGF0aW9ucxgBIAMoCzInLmluY28ua21zLmxpdGUudjEuRGVjcnlwdGlvbkF0dGVzdGF0aW9uImIKFkF0dGVzdGVkUmV2ZWFsUmVzcG9uc2USSAoXZGVjcnlwdGlvbl9hdHRlc3RhdGlvbnMYASADKAsyJy5pbmNvLmttcy5saXRlLnYxLkRlY3J5cHRpb25BdHRlc3RhdGlvbiJiChdBdHRlc3RlZENvbXB1dGVSZXNwb25zZRJHChZkZWNyeXB0aW9uX2F0dGVzdGF0aW9uGAEgASgLMicuaW5jby5rbXMubGl0ZS52MS5EZWNyeXB0aW9uQXR0ZXN0YXRpb24iGgoJUGxhaW50ZXh0Eg0KBXZhbHVlGAEgASgMIkQKDFJlZW5jcnlwdGlvbhIXCg91c2VyX2NpcGhlcnRleHQYASABKAwSGwoTZW5jcnlwdGVkX3NpZ25hdHVyZRgDIAEoDCKtAQoVRGVjcnlwdGlvbkF0dGVzdGF0aW9uEg4KBmhhbmRsZRgBIAEoCRIwCglwbGFpbnRleHQYAiABKAsyGy5pbmNvLmttcy5saXRlLnYxLlBsYWludGV4dEgAEjYKDHJlZW5jcnlwdGlvbhgDIAEoCzIeLmluY28ua21zLmxpdGUudjEuUmVlbmNyeXB0aW9uSAASEQoJc2lnbmF0dXJlGAQgASgMQgcKBXZhbHVlKqQCChdTdXBwb3J0ZWRTY2FsYXJCaW5hcnlPcBILCgdGSEVfQUREEAASCwoHRkhFX1NVQhABEgsKB0ZIRV9NVUwQAhILCgdGSEVfRElWEAMSCwoHRkhFX1JFTRAEEg8KC0ZIRV9CSVRfQU5EEAUSDgoKRkhFX0JJVF9PUhAGEg8KC0ZIRV9CSVRfWE9SEAcSCwoHRkhFX1NITBAIEgsKB0ZIRV9TSFIQCRIMCghGSEVfUk9UTBAKEgwKCEZIRV9ST1RSEAsSCgoGRkhFX0VREAwSCgoGRkhFX05FEA0SCgoGRkhFX0dFEA4SCgoGRkhFX0dUEA8SCgoGRkhFX0xFEBASCgoGRkhFX0xUEBESCwoHRkhFX01JThASEgsKB0ZIRV9NQVgQEzKFAwoKS21zU2VydmljZRJCCgNLZXkSHC5pbmNvLmttcy5saXRlLnYxLktleVJlcXVlc3QaHS5pbmNvLmttcy5saXRlLnYxLktleVJlc3BvbnNlEmYKD0F0dGVzdGVkRGVjcnlwdBIoLmluY28ua21zLmxpdGUudjEuQXR0ZXN0ZWREZWNyeXB0UmVxdWVzdBopLmluY28ua21zLmxpdGUudjEuQXR0ZXN0ZWREZWNyeXB0UmVzcG9uc2USZgoPQXR0ZXN0ZWRDb21wdXRlEiguaW5jby5rbXMubGl0ZS52MS5BdHRlc3RlZENvbXB1dGVSZXF1ZXN0GikuaW5jby5rbXMubGl0ZS52MS5BdHRlc3RlZENvbXB1dGVSZXNwb25zZRJjCg5BdHRlc3RlZFJldmVhbBInLmluY28ua21zLmxpdGUudjEuQXR0ZXN0ZWRSZXZlYWxSZXF1ZXN0GiguaW5jby5rbXMubGl0ZS52MS5BdHRlc3RlZFJldmVhbFJlc3BvbnNlQjtaOWdpdGh1Yi5jb20vaW5jby1maGV2bS9pbmNvLW1vbm9yZXBvL2NvdmFsaWRhdG9yL2ttcy90eXBlc2IGcHJvdG8z",[An]),Bn=lt(Cn,2),Fn=lt(Cn,3),Ln=lt(Cn,4);var jn;!function(e){e[e.FHE_ADD=0]="FHE_ADD",e[e.FHE_SUB=1]="FHE_SUB",e[e.FHE_MUL=2]="FHE_MUL",e[e.FHE_DIV=3]="FHE_DIV",e[e.FHE_REM=4]="FHE_REM",e[e.FHE_BIT_AND=5]="FHE_BIT_AND",e[e.FHE_BIT_OR=6]="FHE_BIT_OR",e[e.FHE_BIT_XOR=7]="FHE_BIT_XOR",e[e.FHE_SHL=8]="FHE_SHL",e[e.FHE_SHR=9]="FHE_SHR",e[e.FHE_ROTL=10]="FHE_ROTL",e[e.FHE_ROTR=11]="FHE_ROTR",e[e.FHE_EQ=12]="FHE_EQ",e[e.FHE_NE=13]="FHE_NE",e[e.FHE_GE=14]="FHE_GE",e[e.FHE_GT=15]="FHE_GT",e[e.FHE_LE=16]="FHE_LE",e[e.FHE_LT=17]="FHE_LT",e[e.FHE_MIN=18]="FHE_MIN",e[e.FHE_MAX=19]="FHE_MAX"}(jn||(jn={}));const Dn=In(Cn,0);var Un=n(5324),zn=n(24554);const $n={writeUnknownFields:!0};function Vn(e,t,n){return Kn(new $t,function(e){return e?Object.assign(Object.assign({},$n),e):$n}(n),tn(e,t)).finish()}function Kn(e,t,n){var r;for(const r of n.sortedFields)if(n.isSet(r))Yn(e,t,n,r);else if(3==r.presence)throw new Error(`cannot encode ${r} to binary: required field not set`);if(t.writeUnknownFields)for(const{no:t,wireType:i,data:a}of null!==(r=n.getUnknown())&&void 0!==r?r:[])e.tag(t,i).raw(a);return e}function Yn(e,t,n,r){var i;switch(r.fieldKind){case"scalar":case"enum":qn(e,n.desc.typeName,r.name,null!==(i=r.scalar)&&void 0!==i?i:k.INT32,r.number,n.get(r));break;case"list":!function(e,t,n,r){var i;if("message"==n.listKind){for(const i of r)Hn(e,t,n,i);return}const a=null!==(i=n.scalar)&&void 0!==i?i:k.INT32;if(n.packed){if(!r.size)return;e.tag(n.number,Ft.LengthDelimited).fork();for(const t of r)Wn(e,n.parent.typeName,n.name,a,t);e.join()}else for(const t of r)qn(e,n.parent.typeName,n.name,a,n.number,t)}(e,t,r,n.get(r));break;case"message":Hn(e,t,r,n.get(r));break;case"map":for(const[i,a]of n.get(r))Gn(e,t,r,i,a)}}function qn(e,t,n,r,i,a){Wn(e.tag(i,function(e){switch(e){case k.BYTES:case k.STRING:return Ft.LengthDelimited;case k.DOUBLE:case k.FIXED64:case k.SFIXED64:return Ft.Bit64;case k.FIXED32:case k.SFIXED32:case k.FLOAT:return Ft.Bit32;default:return Ft.Varint}}(r)),t,n,r,a)}function Hn(e,t,n,r){n.delimitedEncoding?Kn(e.tag(n.number,Ft.StartGroup),t,r).tag(n.number,Ft.EndGroup):Kn(e.tag(n.number,Ft.LengthDelimited).fork(),t,r).join()}function Gn(e,t,n,r,i){var a;switch(e.tag(n.number,Ft.LengthDelimited).fork(),qn(e,n.parent.typeName,n.name,n.mapKey,1,r),n.mapKind){case"scalar":case"enum":qn(e,n.parent.typeName,n.name,null!==(a=n.scalar)&&void 0!==a?a:k.INT32,2,i);break;case"message":Kn(e.tag(2,Ft.LengthDelimited).fork(),t,i).join()}e.join()}function Wn(e,t,n,r,i){try{switch(r){case k.STRING:e.string(i);break;case k.BOOL:e.bool(i);break;case k.DOUBLE:e.double(i);break;case k.FLOAT:e.float(i);break;case k.INT32:e.int32(i);break;case k.INT64:e.int64(i);break;case k.UINT64:e.uint64(i);break;case k.FIXED64:e.fixed64(i);break;case k.BYTES:e.bytes(i);break;case k.FIXED32:e.fixed32(i);break;case k.SFIXED32:e.sfixed32(i);break;case k.SFIXED64:e.sfixed64(i);break;case k.SINT64:e.sint64(i);break;case k.UINT32:e.uint32(i);break;case k.SINT32:e.sint32(i)}}catch(e){if(e instanceof Error)throw new Error(`cannot encode field ${t}.${n} to binary: ${e.message}`);throw e}}const Xn=Mn("CidpbmNvL2NvdmFsaWRhdG9yL2NvbXB1dGUvdjEvdHlwZXMucHJvdG8SG2luY28uY292YWxpZGF0b3IuY29tcHV0ZS52MSJqCgxJbnB1dENvbnRleHQSFQoNaG9zdF9jaGFpbl9pZBgBIAEoCRITCgthY2xfYWRkcmVzcxgCIAEoCRIUCgx1c2VyX2FkZHJlc3MYAyABKAkSGAoQY29udHJhY3RfYWRkcmVzcxgEIAEoCSJeCg9JbnB1dENyeXB0b2dyYW0SOgoHY29udGV4dBgBIAEoCzIpLmluY28uY292YWxpZGF0b3IuY29tcHV0ZS52MS5JbnB1dENvbnRleHQSDwoHcGF5bG9hZBgCIAEoDCJbCgxJbnB1dFBheWxvYWQSFAoMY29udGV4dF9oYXNoGAEgASgMEjUKBnZhbHVlcxgCIAMoCzIlLmluY28uY292YWxpZGF0b3IuY29tcHV0ZS52MS5BbnlWYWx1ZSJ9CghBbnlWYWx1ZRI1CgZzY2FsYXIYAiABKAsyIy5pbmNvLmNvdmFsaWRhdG9yLmNvbXB1dGUudjEuU2NhbGFySAASMQoEbGlzdBgDIAEoCzIhLmluY28uY292YWxpZGF0b3IuY29tcHV0ZS52MS5MaXN0SABCBwoFdmFsdWUiJQoGU2NhbGFyEgwKBHR5cGUYASABKAUSDQoFdmFsdWUYAiABKAwiKwoETGlzdBITCgtlbGVtZW50VHlwZRgBIAEoBRIOCgZ2YWx1ZXMYAiADKAwiMwoQU3RvcmVkQ3J5cHRvZ3JhbRIOCgZoYW5kbGUYASABKAwSDwoHcGF5bG9hZBgCIAEoDEI3WjVnaXRodWIuY29tL2luY28tZmhldm0vaW5jby1tb25vcmVwby9jb3ZhbGlkYXRvci90eXBlc2IGcHJvdG8z"),Jn=lt(Xn,2),Zn=lt(Xn,4);var Qn=n(73730).Buffer;const er=new zn.ec("secp256k1");function tr(){return{scheme:1,kp:e=er.genKeyPair(),encodePublicKey:()=>new Uint8Array(e.getPublic().encode("array",!0))};var e}async function nr(e,t){const n=e.kp.getPrivate().toArrayLike(Qn,"be",32),r=await(0,Un.decrypt)(n,Qn.from(t));return new Uint8Array(r)}function rr({chainId:e,primaryType:t,primaryTypeFields:n,message:r,verifyingContract:i,domainName:a,domainVersion:s}){const o={EIP712Domain:[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"}],[t]:n};i&&o.EIP712Domain.push({name:"verifyingContract",type:"address"});const u=Object.keys(r),c=n.map(e=>e.name);if(u.length!==c.length)throw new Error("Message keys do not match primaryTypeFields keys");for(const e of u)if(!c.includes(e))throw new Error(`Message key ${e} does not match primaryTypeFields key`);return{types:o,primaryType:t,domain:{name:a,version:s,chainId:e,verifyingContract:i},message:r}}de._kM({domain:de._kM({chainId:de.QwO,name:de.QfV,version:de.QfV,verifyingContract:de.lqM(he.hJ)}),primaryType:de.QfV,types:de.mSG({key:de.QfV,value:de.O31(de._kM({name:de.QfV,type:de.QfV}))})});class ir extends Error{cause;constructor(e,t){super(e),this.cause=t,this.name="AttestedDecryptError"}}const ar="IncoAttestedDecrypt";async function sr({handles:e,backoffConfig:t,walletClient:n,chainId:i,reencryptPubKey:a,reencryptKeypair:s,kmsQuorumClient:o,executorAddress:u}){try{e.forEach(cr);const l=await async function(e){const t=await or(e.executorAddress,"2",e.walletClient);return rr({chainId:BigInt(e.chainId),primaryType:"AttestedDecryptRequest",primaryTypeFields:[{name:"handles",type:"bytes32[]"},{name:"publicKey",type:"bytes"}],message:{handles:e.handles,publicKey:(0,y.My)(e.reencryptPubKey?e.reencryptPubKey:new Uint8Array)},domainName:ar,domainVersion:t})}({executorAddress:u,...n?{walletClient:n}:{},chainId:i,handles:e,...void 0!==a?{reencryptPubKey:a}:{}});let f;if(n){const i=await async function(e,t){return await e.signTypedData(t)}(n,l),u=function(e){return e.map(e=>Q(Nn,{handle:e,aclProof:{proof:{case:"incoLiteBasicAclProof",value:{}}}}))}(e),d=(c={userAddress:n.account.address,handlesWithProofs:u,eip712Signature:(0,r.aT)(i),...void 0!==a?{reencryptPubKey:a}:{}},Q(Bn,{userAddress:c.userAddress,handlesWithProofs:c.handlesWithProofs,eip712Signature:c.eip712Signature,reencryptPubKey:c.reencryptPubKey?c.reencryptPubKey:new Uint8Array}));f=await o.attestedDecrypt(d,t),void 0!==a&&s&&(f=await ur(f,s))}else{const n=Q(Fn,{handles:e});f=await o.attestedReveal(n,t)}return f}catch(e){if(e instanceof ir)throw e;throw new ir("Failed to decrypt handles",e)}var c}async function or(e,t,n){let r;if(n&&e&&"UNUSED IN TEST"!==n.transport.url){const t=(0,s.PF)({address:e,abi:Me.G,client:n}),i=await t.read.incoVerifier(),a=(0,s.PF)({address:i,abi:Ie.K,client:n});r=await a.read.getEIP712Version()}else r=t;return r}async function ur(e,t){return Promise.all(e.map(async e=>{if("plaintext"in e&&void 0!==e.plaintext)return e;if("encryptedPlaintext"in e&&void 0!==e.encryptedPlaintext){const n=e,i=(0,r.aT)(n.encryptedPlaintext.ciphertext.value),a=await nr(t,i),s=(0,he.U8)(a),o=(0,pe.hY)(n.handle),u=await Promise.all(n.encryptedSignatures.map(async e=>await nr(t,e)));return{handle:n.handle,plaintext:_e(1,o,s),covalidatorSignatures:u}}throw new ir("Attestation is neither plaintext nor encrypted")}))}function cr(e){if(!e.startsWith("0x")||66!==e.length)throw new ir("Invalid handle format: must be a 32-byte hex string with 0x prefix")}jn.FHE_EQ,jn.FHE_NE,jn.FHE_GE,jn.FHE_GT,jn.FHE_LE,jn.FHE_LT;class lr extends Error{cause;constructor(e,t){super(e),this.cause=t,this.name="AttestedComputeError"}}const fr="IncoAttestedCompute";async function dr({executorAddress:e,lhsHandle:t,op:n,rhsPlaintext:i,backoffConfig:a,walletClient:s,kmsQuorumClient:o,chainId:u,reencryptPubKey:c,reencryptKeypair:l}){try{cr(t);const f="boolean"==typeof i?i?1n:0n:BigInt(i),d=await or(e,"2",s),h=rr({chainId:BigInt(u),primaryType:"AttestedComputeRequest",primaryTypeFields:[{name:"op",type:"uint8"},{name:"lhsHandle",type:"bytes32"},{name:"rhsPlaintext",type:"bytes32"},{name:"publicKey",type:"bytes"}],message:{op:n,lhsHandle:t,rhsPlaintext:(0,he.X)(f),publicKey:(0,y.My)(c||new Uint8Array)},domainName:fr,domainVersion:d}),p=await s.signTypedData(h),m=Q(Ln,{userAddress:s.account.address,reencryptPubKey:c||new Uint8Array,op:n,lhsHandle:t,rhsPlaintext:f.toString(16),eip712Signature:(0,r.aT)(p),aclProof:{proof:{case:"incoLiteBasicAclProof",value:{}}}});let b=await o.attestedCompute(m,a);if(c&&l){const[e]=await ur([b],l);return e}return b}catch(e){if(e instanceof lr)throw e;throw new lr("Failed to perform attested compute",e)}}async function hr({lhsHandle:e,op:t,rhsPlaintext:n,backoffConfig:i,chainId:a,kmsQuorumClient:s,ephemeralKeypair:o,allowanceVoucherWithSig:u,ethClient:c,executorAddress:l,reencryptPubKey:f,reencryptKeypair:d}){const h=(0,fe.R)(`0x${o.kp.getPrivate("hex")}`),p=BigInt(n),m=(_e(1,(0,pe.hY)(e),p),await or(l,"2",c)),b=rr({chainId:BigInt(a),primaryType:"AttestedComputeRequest",primaryTypeFields:[{name:"op",type:"uint8"},{name:"lhsHandle",type:"bytes32"},{name:"rhsPlaintext",type:"bytes32"},{name:"publicKey",type:"bytes"}],message:{op:t,lhsHandle:e,rhsPlaintext:(0,he.X)(p),publicKey:(0,y.My)(f||new Uint8Array)},domainName:fr,domainVersion:m}),g=await h.signTypedData(b),v=Q(Ln,{userAddress:h.address,reencryptPubKey:f||new Uint8Array,op:t,lhsHandle:e,rhsPlaintext:p.toString(16),eip712Signature:(0,r.aT)(g),aclProof:{proof:{case:"incoLiteAdvancedAclProof",value:Q(Rn,{allowanceProof:Q(On,{sharer:u.sharer,voucher:Q(Pn,{sessionNonce:(0,r.aT)(u.voucher.sessionNonce),verifyingContract:u.voucher.verifyingContract,callFunction:(0,r.aT)(u.voucher.callFunction),sharerArgData:(0,r.aT)(u.voucher.sharerArgData)}),voucherSignature:(0,r.aT)(u.voucherSignature),requesterArgData:new Uint8Array})})}}});let w=await s.attestedCompute(v,i);if(f&&d){const[e]=await ur([w],d);return e}return w}async function pr({chainId:e,kmsQuorumClient:t,handles:n,ephemeralKeypair:i,allowanceVoucherWithSig:a,backoffConfig:s,reencryptPubKey:o,reencryptKeypair:u,ethClient:c,executorAddress:l}){const f=(0,fe.R)(`0x${i.kp.getPrivate("hex")}`),d=await or(l,"2",c),h=rr({chainId:BigInt(e),primaryType:"AttestedDecryptRequest",primaryTypeFields:[{name:"handles",type:"bytes32[]"},{name:"publicKey",type:"bytes"}],message:{handles:n,publicKey:(0,y.My)(o||Uint8Array.from([]))},domainName:ar,domainVersion:d}),p=await f.signTypedData(h),m=n.map(e=>Q(Nn,{handle:e,aclProof:{proof:{case:"incoLiteAdvancedAclProof",value:Q(Rn,{allowanceProof:Q(On,{sharer:a.sharer,voucher:Q(Pn,{sessionNonce:(0,r.aT)(a.voucher.sessionNonce),verifyingContract:a.voucher.verifyingContract,callFunction:(0,r.aT)(a.voucher.callFunction),sharerArgData:(0,r.aT)(a.voucher.sharerArgData)}),voucherSignature:(0,r.aT)(a.voucherSignature),requesterArgData:new Uint8Array})})}}})),b=Q(Bn,{userAddress:f.address,handlesWithProofs:m,eip712Signature:(0,r.aT)(p),reencryptPubKey:o||Uint8Array.from([])});let g=await t.attestedDecrypt(b,s);return void 0!==o&&u&&(g=await ur(g,u)),g}function mr(){const e=Te.find(e=>"allowanceVoucherDigest"===e.name);if(!e)throw new Error("allowanceVoucherDigest not found");const t=e.inputs.find(e=>"struct AllowanceVoucher"===e.internalType);if(!t)throw new Error("allowanceVoucherInput not found");return t.components}async function yr(e,t){const n=function(e,t){return(0,s.PF)({address:e,abi:Me.G,client:t})}(e,t),r=await n.read.incoVerifier();return(0,s.PF)({address:r,abi:Ie.K,client:t})}const br=[{name:"incoLightningPreview_2_0_0__889158349",majorVersion:2,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"testnet",executorAddress:"0x168FDc3Ae19A5d5b03614578C58974FF30FCBe92",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc005e0f44aac1a914b715cecd",chainId:84532,chainName:"Base Sepolia",version:{major:2,minor:0,patch:0,shortSalt:"889158349"},blockNumber:35063463,deployDate:"2025-12-16T14:26:58.303Z",commit:"v0.7.5-1-g770d7d08-dirty",active:!0,includesPreviewFeatures:!0},{name:"incoLightningPreview_2_0_0__467437523",majorVersion:2,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"demonet",executorAddress:"0xA95EAbCE575f5f1e52605358Ee893F6536166378",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc0071f74686446f14c7b469d3",chainId:84532,chainName:"Base Sepolia",version:{major:2,minor:0,patch:0,shortSalt:"467437523"},blockNumber:35796550,deployDate:"2026-01-02T13:43:12.741Z",commit:"v0.7.6-testnet-1-dirty",active:!0,includesPreviewFeatures:!0},{name:"incoLightningPreview_2_0_0__976644394",majorVersion:2,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"alphanet",executorAddress:"0xc0d693DeEF0A91CE39208676b6da09B822abd199",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc000822f11f6e30f933e76d2a",chainId:84532,chainName:"Base Sepolia",version:{major:2,minor:0,patch:0,shortSalt:"976644394"},blockNumber:34459258,deployDate:"2025-12-02T14:46:46.026Z",commit:"v0.6.9-17-g217794f3-dirty",active:!0,includesPreviewFeatures:!0},{name:"incoLightningPreview_2_0_0__295237520",majorVersion:2,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"devnet",executorAddress:"0xC64BB070D6F5aa796e79fA19c1008647ffF736ED",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc008d5a963bd519d8493f5190",chainId:9746,chainName:"Plasma Testnet",version:{major:2,minor:0,patch:0,shortSalt:"295237520"},blockNumber:9978173,deployDate:"2025-12-15T09:08:41.845Z",commit:"v0.7.4-dirty",active:!0,includesPreviewFeatures:!0},{name:"incoLightningPreview_2_0_0__295237520",majorVersion:2,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"devnet",executorAddress:"0xC64BB070D6F5aa796e79fA19c1008647ffF736ED",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc008d5a963bd519d8493f5190",chainId:84532,chainName:"Base Sepolia",version:{major:2,minor:0,patch:0,shortSalt:"295237520"},blockNumber:34835187,deployDate:"2025-12-11T07:37:48.943Z",commit:"v0.7.2-3-g4d31fa62-dirty",active:!0,includesPreviewFeatures:!0},{name:"incoLightningPreview_1_1_0__725458969",majorVersion:1,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"alphanet",executorAddress:"0x28676Cd3b10b03b2FDF105Ba280425b45a674F2A",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc004dfbe338c6966a22bcca19",chainId:84532,chainName:"Base Sepolia",version:{major:1,minor:1,patch:0,shortSalt:"725458969"},blockNumber:34456535,deployDate:"2025-12-02T13:16:00.594Z",commit:"v0.6.9-16-g428d1837-dirty",active:!0,includesPreviewFeatures:!0},{name:"incoLightningPreview_1_0_2__725458969",majorVersion:1,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"alphanet",executorAddress:"0x28676Cd3b10b03b2FDF105Ba280425b45a674F2A",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc004dfbe338c6966a22bcca19",chainId:84532,chainName:"Base Sepolia",version:{major:1,minor:0,patch:2,shortSalt:"725458969"},blockNumber:32124925,deployDate:"2025-10-09T13:55:42.997Z",commit:"v0.5.3-10-ga4f2312d",active:!0},{name:"incoLightningPreview_1_0_2__904635675",majorVersion:1,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"devnet",executorAddress:"0x3473820DcAa71Af8157b93C7f2bf1c676A2A39A6",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc007d63c0fdca6698ac7cc51b",chainId:9746,chainName:"Plasma Testnet",version:{major:1,minor:0,patch:2,shortSalt:"904635675"},blockNumber:3696905,deployDate:"2025-10-03T13:24:44.682Z",commit:"v0.5.3-6-g8db0f27f-dirty",active:!0},{name:"incoLightningPreview_1_0_0__904635675",majorVersion:1,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"devnet",executorAddress:"0x3473820DcAa71Af8157b93C7f2bf1c676A2A39A6",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc007d63c0fdca6698ac7cc51b",chainId:9746,chainName:"Plasma Testnet",version:{major:1,minor:0,patch:0,shortSalt:"904635675"},blockNumber:3344310,deployDate:"2025-09-29T11:14:02.599Z",commit:"v0.5.1-5-g4135c790-dirty",active:!0},{name:"incoLightning_0_2_0__183408998",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"testnet",executorAddress:"0x63D8135aF4D393B1dB43B649010c8D3EE19FC9fd",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00d75ffa0caf0797c3f12d66",chainId:84532,chainName:"Base Sepolia",version:{major:0,minor:2,patch:0,shortSalt:"183408998"},blockNumber:26296576,deployDate:"2025-05-27T15:57:24.175Z",commit:"v5-3-gec8b6aae-dirty",active:!0},{name:"incoLightning_0_1_29__183408998",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"testnet",executorAddress:"0x63D8135aF4D393B1dB43B649010c8D3EE19FC9fd",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00d75ffa0caf0797c3f12d66",chainId:10143,chainName:"Monad Testnet",version:{major:0,minor:1,patch:29,shortSalt:"183408998"},blockNumber:13464615,deployDate:"2025-04-22T16:01:14.380Z",commit:"v3-28-g93c05a49-dirty",active:!0},{name:"incoLightning_0_1_29__183408998",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"testnet",executorAddress:"0x63D8135aF4D393B1dB43B649010c8D3EE19FC9fd",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00d75ffa0caf0797c3f12d66",chainId:84532,chainName:"Base Sepolia",version:{major:0,minor:1,patch:29,shortSalt:"183408998"},blockNumber:24784654,deployDate:"2025-04-22T16:00:02.028Z",commit:"v3-28-g93c05a49-dirty",active:!0},{name:"incoLightning_0_2_0__863421733",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"demonet",executorAddress:"0xeBAFF6D578733E4603b99CBdbb221482F29a78E1",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00834654f6d289ccc7e5ab25",chainId:84532,chainName:"Base Sepolia",version:{major:0,minor:2,patch:0,shortSalt:"863421733"},blockNumber:25737175,deployDate:"2025-05-14T17:10:44.285Z",commit:"v4-11-g4a1f413a-dirty",active:!0},{name:"incoLightning_0_1_29__863421733",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"demonet",executorAddress:"0xeBAFF6D578733E4603b99CBdbb221482F29a78E1",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00834654f6d289ccc7e5ab25",chainId:84532,chainName:"Base Sepolia",version:{major:0,minor:1,patch:29,shortSalt:"863421733"},blockNumber:25719113,deployDate:"2025-05-14T07:08:39.059Z",commit:"v4",active:!0},{name:"incoLightningPreview_0_2_1__297966649",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"alphanet",executorAddress:"0x4651DfD7729aE5568092E7351fAaD872266d4CBd",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc0023f7798f470fdf5e9da639",chainId:84532,chainName:"Base Sepolia",version:{major:0,minor:2,patch:1,shortSalt:"297966649"},blockNumber:27543410,deployDate:"2025-06-25T12:38:32.856Z",commit:"v5-17-ga03e4b32-dirty",active:!0},{name:"incoLightningPreview_0_2_0__297966649",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"alphanet",executorAddress:"0x4651DfD7729aE5568092E7351fAaD872266d4CBd",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc0023f7798f470fdf5e9da639",chainId:84532,chainName:"Base Sepolia",version:{major:0,minor:2,patch:0,shortSalt:"297966649"},blockNumber:26894782,deployDate:"2025-06-10T12:17:35.790Z",commit:"v5-13-gd6b19c10-dirty",active:!0},{name:"incoLightningPreview_0_2_1__340846814",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"devnet",executorAddress:"0x3B22be60Ae699933959CA3cE147C96caa88Ccd3D",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00b001d6742fded0dd599ede",chainId:9746,chainName:"Plasma Testnet",version:{major:0,minor:2,patch:1,shortSalt:"340846814"},blockNumber:1718868,deployDate:"2025-09-10T15:20:25.654Z",commit:"v6-7-gf96f358e-dirty",active:!0},{name:"incoLightning_0_2_1__340846814",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"devnet",executorAddress:"0x3B22be60Ae699933959CA3cE147C96caa88Ccd3D",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00b001d6742fded0dd599ede",chainId:9746,chainName:"Plasma Testnet",version:{major:0,minor:2,patch:1,shortSalt:"340846814"},blockNumber:1717229,deployDate:"2025-09-10T14:53:07.218Z",commit:"v6-7-gf96f358e-dirty",active:!0},{name:"incoLightningPreview_0_2_1__340846814",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"devnet",executorAddress:"0x3B22be60Ae699933959CA3cE147C96caa88Ccd3D",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00b001d6742fded0dd599ede",chainId:4801,chainName:"World Chain Sepolia",version:{major:0,minor:2,patch:1,shortSalt:"340846814"},blockNumber:17365942,deployDate:"2025-08-15T17:35:15.208Z",commit:"v0.2.17-35-g8cca6b4e-dirty",active:!0},{name:"incoLightning_0_2_0__340846814",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"devnet",executorAddress:"0x3B22be60Ae699933959CA3cE147C96caa88Ccd3D",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00b001d6742fded0dd599ede",chainId:84532,chainName:"Base Sepolia",version:{major:0,minor:2,patch:0,shortSalt:"340846814"},blockNumber:26122863,deployDate:"2025-05-23T15:26:57.031Z",commit:"v5-2-g8957c16b-dirty",active:!0},{name:"incoLightning_0_1_29__340846814",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"devnet",executorAddress:"0x3B22be60Ae699933959CA3cE147C96caa88Ccd3D",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00b001d6742fded0dd599ede",chainId:10143,chainName:"Monad Testnet",version:{major:0,minor:1,patch:29,shortSalt:"340846814"},blockNumber:13464197,deployDate:"2025-04-22T15:57:26.862Z",commit:"v3-28-g93c05a49-dirty",active:!0},{name:"incoLightning_0_1_29__340846814",majorVersion:0,deployer:"0x8202D2D747784Cb7D48868E44C42C4bf162a70BC",pepper:"devnet",executorAddress:"0x3B22be60Ae699933959CA3cE147C96caa88Ccd3D",salt:"0x8202d2d747784cb7d48868e44c42c4bf162a70bc00b001d6742fded0dd599ede",chainId:84532,chainName:"Base Sepolia",version:{major:0,minor:1,patch:29,shortSalt:"340846814"},blockNumber:24784527,deployDate:"2025-04-22T15:55:47.828Z",commit:"v3-28-g93c05a49-dirty",active:!0}],gr={testnet:{executorAddress:"0x168FDc3Ae19A5d5b03614578C58974FF30FCBe92",chainId:31337,covalidatorUrls:["http://localhost:50055"],signers:["0x8586714c02340Dc28935977d8E864f1F8E1c30B2"],hostChainRpcUrl:"http://localhost:8545",senderPrivateKey:"0x3ff395b755c4dc09837d0672dd421915e9b9835a4733edf63d8fd12b3fe4475c"},devnet:{executorAddress:"0xC64BB070D6F5aa796e79fA19c1008647ffF736ED",chainId:31337,covalidatorUrls:["http://localhost:50055"],signers:["0xe615dc3628F1cff966707A902104f8D96e19B7A2"],hostChainRpcUrl:"http://localhost:8545",senderPrivateKey:"0x8505bef7355f09a839822de30d48ab50d466303e61553a2df00e3efeff64a79f"},alphanet:{executorAddress:"0xc0d693DeEF0A91CE39208676b6da09B822abd199",chainId:31337,covalidatorUrls:["http://localhost:50055"],signers:["0x8E873085348a3406A07907E5d1465B9824bA07cd"],hostChainRpcUrl:"http://localhost:8545",senderPrivateKey:"0x279c172cf3638a79642daa5f7666c600befde318550d7579cf96280920e318b6"},scratch:{executorAddress:"0x230b8fb0201E621Be3612ab7387d164f8AdC863f",chainId:31337,covalidatorUrls:["http://localhost:50055"],signers:["0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"],hostChainRpcUrl:"http://127.0.0.1:8567",senderPrivateKey:"0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80"}},vr=(0,w.x)({id:11155111,name:"Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://11155111.rpc.thirdweb.com"]}},blockExplorers:{default:{name:"Etherscan",url:"https://sepolia.etherscan.io",apiUrl:"https://api-sepolia.etherscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:751532},ensUniversalResolver:{address:"0xeeeeeeee14d718c2b47d9923deab1335e144eeee",blockCreated:8928790}},testnet:!0}),wr=(0,w.x)({id:10143,name:"Monad Testnet",blockTime:400,nativeCurrency:{name:"Testnet MON Token",symbol:"MON",decimals:18},rpcUrls:{default:{http:["https://testnet-rpc.monad.xyz"]}},blockExplorers:{default:{name:"Monad Testnet explorer",url:"https://testnet.monadexplorer.com"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:251449}},testnet:!0}),_r=(0,w.x)({id:9746,name:"Plasma Testnet",nativeCurrency:{name:"Testnet Plasma",symbol:"XPL",decimals:18},rpcUrls:{default:{http:["https://testnet-rpc.plasma.to"]}},blockExplorers:{default:{name:"RouteScan",url:"https://testnet.plasmascan.to"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:0}},testnet:!0});var Sr=n(4297);const Er=11155111,kr=(0,w.x)({...v,id:4801,name:"World Chain Sepolia",network:"worldchain-sepolia",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://worldchain-sepolia.g.alchemy.com/public"]}},blockExplorers:{default:{name:"Worldscan Sepolia",url:"https://sepolia.worldscan.org",apiUrl:"https://api-sepolia.worldscan.org/api"},blockscout:{name:"Blockscout",url:"https://worldchain-sepolia.explorer.alchemy.com",apiUrl:"https://worldchain-sepolia.explorer.alchemy.com/api"}},contracts:{...v.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:0},disputeGameFactory:{[Er]:{address:"0x8Ec1111f67Dad6b6A93B3F42DfBC92D81c98449A"}},l2OutputOracle:{[Er]:{address:"0xc8886f8BAb6Eaeb215aDB5f1c686BF699248300e"}},portal:{[Er]:{address:"0xFf6EBa109271fe6d4237EeeD4bAb1dD9A77dD1A4"}},l1StandardBridge:{[Er]:{address:"0xd7DF54b3989855eb66497301a4aAEc33Dbb3F8DE"}}},testnet:!0,sourceId:Er}),xr={baseSepolia:84532,sepolia:11155111,monadTestnet:10143,plasmaTestnet:9746,worldchainSepolia:4801,anvil:31337},Tr={sepolia:vr,baseSepolia:S,monadTestnet:wr,plasmaTestnet:_r,anvil:Sr.N,worldchainSepolia:kr};function Mr(e){const{name:t}=function(e){const t="number"==typeof e||"bigint"==typeof e?Object.entries(xr).find(([,t])=>t===Number(e)):"object"==typeof e?Object.entries(xr).find(([,t])=>t===Number(e.id)):Object.entries(xr).find(([t])=>t===e);if(!t)throw new Error(`Supported chain ${e} not found`);const[n,r]=t;return{name:n,id:r}}(e),n=Tr[t];if(!n)throw new Error(`Unable to get viem chain: ${t}`);return n}var Ir;function Ar(e){const t=Ir[e];return"string"!=typeof t?e.toString():t[0].toLowerCase()+t.substring(1).replace(/[A-Z]/g,e=>"_"+e.toLowerCase())}let Nr;var Pr;(Pr=Ir||(Ir={}))[Pr.Canceled=1]="Canceled",Pr[Pr.Unknown=2]="Unknown",Pr[Pr.InvalidArgument=3]="InvalidArgument",Pr[Pr.DeadlineExceeded=4]="DeadlineExceeded",Pr[Pr.NotFound=5]="NotFound",Pr[Pr.AlreadyExists=6]="AlreadyExists",Pr[Pr.PermissionDenied=7]="PermissionDenied",Pr[Pr.ResourceExhausted=8]="ResourceExhausted",Pr[Pr.FailedPrecondition=9]="FailedPrecondition",Pr[Pr.Aborted=10]="Aborted",Pr[Pr.OutOfRange=11]="OutOfRange",Pr[Pr.Unimplemented=12]="Unimplemented",Pr[Pr.Internal=13]="Internal",Pr[Pr.Unavailable=14]="Unavailable",Pr[Pr.DataLoss=15]="DataLoss",Pr[Pr.Unauthenticated=16]="Unauthenticated";class Or extends Error{constructor(e,t=Ir.Unknown,n,r,i){super(function(e,t){return e.length?`[${Ar(t)}] ${e}`:`[${Ar(t)}]`}(e,t)),this.name="ConnectError",Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=e,this.code=t,this.metadata=new Headers(null!=n?n:{}),this.details=null!=r?r:[],this.cause=i}static from(e,t=Ir.Unknown){return e instanceof Or?e:e instanceof Error?"AbortError"==e.name||"TimeoutError"==e.name?new Or(e.message,Ir.Canceled):new Or(e.message,t,void 0,void 0,e):new Or(String(e),t,void 0,void 0,e)}static[Symbol.hasInstance](e){return e instanceof Error&&(Object.getPrototypeOf(e)===Or.prototype||"ConnectError"===e.name&&"code"in e&&"number"==typeof e.code&&"metadata"in e&&"details"in e&&Array.isArray(e.details)&&"rawMessage"in e&&"string"==typeof e.rawMessage&&"cause"in e)}findDetails(e){const t="message"===e.kind?{getMessage:t=>t===e.typeName?e:void 0}:e,n=[];for(const e of this.details){if("desc"in e){t.getMessage(e.desc.typeName)&&n.push(Q(e.desc,e.value));continue}const r=t.getMessage(e.type);if(r)try{n.push(Sn(r,e.value))}catch(e){}}return n}}var Rr=function(e){return this instanceof Rr?(this.v=e,this):new Rr(e)},Cr=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,i){!function(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)}(r,i,(t=e[n](t)).done,t.value)})}}},Br=function(e){return this instanceof Br?(this.v=e,this):new Br(e)};function Fr(e,t){return function(e,t){const n={};for(const r of e.methods){const e=t(r);null!=e&&(n[r.localName]=e)}return n}(e,e=>{switch(e.methodKind){case"unary":return function(e,t){return async(n,r)=>{var i,a;const s=await e.unary(t,null==r?void 0:r.signal,null==r?void 0:r.timeoutMs,null==r?void 0:r.headers,n,null==r?void 0:r.contextValues);return null===(i=null==r?void 0:r.onHeader)||void 0===i||i.call(r,s.header),null===(a=null==r?void 0:r.onTrailer)||void 0===a||a.call(r,s.trailer),s.message}}(t,e);case"server_streaming":return function(e,t){return(n,r)=>Lr(e.stream(t,null==r?void 0:r.signal,null==r?void 0:r.timeoutMs,null==r?void 0:r.headers,function(e){return function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=n.apply(e,t||[]),a=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",function(e){return function(t){return Promise.resolve(t).then(e,c)}}),r[Symbol.asyncIterator]=function(){return this},r;function s(e,t){i[e]&&(r[e]=function(t){return new Promise(function(n,r){a.push([e,t,n,r])>1||o(e,t)})},t&&(r[e]=t(r[e])))}function o(e,t){try{(n=i[e](t)).value instanceof Rr?Promise.resolve(n.value.v).then(u,c):l(a[0][2],n)}catch(e){l(a[0][3],e)}var n}function u(e){o("next",e)}function c(e){o("throw",e)}function l(e,t){e(t),a.shift(),a.length&&o(a[0][0],a[0][1])}}(this,arguments,function*(){yield Rr(yield*function(e){var t,n;return t={},r("next"),r("throw",function(e){throw e}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,i){t[r]=e[r]?function(t){return(n=!n)?{value:Rr(e[r](t)),done:!1}:i?i(t):t}:i}}(function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,i){!function(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)}(r,i,(t=e[n](t)).done,t.value)})}}}(e)))})}([n]),null==r?void 0:r.contextValues),r)}(t,e);case"client_streaming":return function(e,t){return async(n,r)=>{var i,a,s,o,u,c;const l=await e.stream(t,null==r?void 0:r.signal,null==r?void 0:r.timeoutMs,null==r?void 0:r.headers,n,null==r?void 0:r.contextValues);let f;null===(u=null==r?void 0:r.onHeader)||void 0===u||u.call(r,l.header);let d=0;try{for(var h,p=!0,m=Cr(l.message);!(i=(h=await m.next()).done);p=!0)o=h.value,p=!1,f=o,d++}catch(e){a={error:e}}finally{try{p||i||!(s=m.return)||await s.call(m)}finally{if(a)throw a.error}}if(!f)throw new Or("protocol error: missing response message",Ir.Unimplemented);if(d>1)throw new Or("protocol error: received extra messages for client streaming method",Ir.Unimplemented);return null===(c=null==r?void 0:r.onTrailer)||void 0===c||c.call(r,l.trailer),f}}(t,e);case"bidi_streaming":return function(e,t){return(n,r)=>Lr(e.stream(t,null==r?void 0:r.signal,null==r?void 0:r.timeoutMs,null==r?void 0:r.headers,n,null==r?void 0:r.contextValues),r)}(t,e);default:return null}})}function Lr(e,t){const n=function(){return function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=n.apply(e,t||[]),a=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",function(e){return function(t){return Promise.resolve(t).then(e,c)}}),r[Symbol.asyncIterator]=function(){return this},r;function s(e,t){i[e]&&(r[e]=function(t){return new Promise(function(n,r){a.push([e,t,n,r])>1||o(e,t)})},t&&(r[e]=t(r[e])))}function o(e,t){try{(n=i[e](t)).value instanceof Br?Promise.resolve(n.value.v).then(u,c):l(a[0][2],n)}catch(e){l(a[0][3],e)}var n}function u(e){o("next",e)}function c(e){o("throw",e)}function l(e,t){e(t),a.shift(),a.length&&o(a[0][0],a[0][1])}}(this,arguments,function*(){var n,r;const i=yield Br(e);null===(n=null==t?void 0:t.onHeader)||void 0===n||n.call(t,i.header),yield Br(yield*function(e){var t,n;return t={},r("next"),r("throw",function(e){throw e}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,i){t[r]=e[r]?function(t){return(n=!n)?{value:Br(e[r](t)),done:!1}:i?i(t):t}:i}}(Cr(i.message))),null===(r=null==t?void 0:t.onTrailer)||void 0===r||r.call(t,i.trailer)})}()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>n.next()})}}const jr=lt(Mn("Chlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiJgoDQW55EhAKCHR5cGVfdXJsGAEgASgJEg0KBXZhbHVlGAIgASgMQnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFueVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FueXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),0);function Dr(e){const t=e.lastIndexOf("/"),n=t>=0?e.substring(t+1):e;if(!n.length)throw new Error(`invalid type url: ${e}`);return n}const Ur=Mn("Chxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvEg9nb29nbGUucHJvdG9idWYihAEKBlN0cnVjdBIzCgZmaWVsZHMYASADKAsyIy5nb29nbGUucHJvdG9idWYuU3RydWN0LkZpZWxkc0VudHJ5GkUKC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEi6gEKBVZhbHVlEjAKCm51bGxfdmFsdWUYASABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSAASFgoMbnVtYmVyX3ZhbHVlGAIgASgBSAASFgoMc3RyaW5nX3ZhbHVlGAMgASgJSAASFAoKYm9vbF92YWx1ZRgEIAEoCEgAEi8KDHN0cnVjdF92YWx1ZRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIABIwCgpsaXN0X3ZhbHVlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZUgAQgYKBGtpbmQiMwoJTGlzdFZhbHVlEiYKBnZhbHVlcxgBIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSobCglOdWxsVmFsdWUSDgoKTlVMTF9WQUxVRRAAQn8KE2NvbS5nb29nbGUucHJvdG9idWZCC1N0cnVjdFByb3RvUAFaL2dvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3N0cnVjdHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),zr=lt(Ur,0),$r=lt(Ur,1),Vr=lt(Ur,2);var Kr;function Yr(e,t){Gr(t,e);const n=function(e,t){if(void 0===e)return[];if("enum"===t.fieldKind||"scalar"===t.fieldKind){for(let n=e.length-1;n>=0;--n)if(e[n].no==t.number)return[e[n]];return[]}return e.filter(e=>e.no===t.number)}(e.$unknown,t),[r,i,a]=Hr(t);for(const e of n)kn(r,new Vt(e.data),i,e.wireType,{readUnknownFields:!0});return a()}function qr(e,t,n){var r;Gr(t,e);const i=(null!==(r=e.$unknown)&&void 0!==r?r:[]).filter(e=>e.no!==t.number),[a,s]=Hr(t,n),o=new $t;Yn(o,{writeUnknownFields:!0},a,s);const u=new Vt(o.finish());for(;u.pos{const t=a[n];if(void 0===t){const t=e.message;return J(t)?z(t.fields[0].scalar,t.fields[0].longAsString):Q(t)}return t}]}function Gr(e,t){if(e.extendee.typeName!=t.$typeName)throw new Error(`extension ${e.typeName} can only be applied to message ${e.extendee.typeName}`)}!function(e){e[e.NULL_VALUE=0]="NULL_VALUE"}(Kr||(Kr={}));const Wr={ignoreUnknownFields:!1};function Xr(e,t,n){const r=tn(e);try{Jr(r,t,function(e){return e?Object.assign(Object.assign({},Wr),e):Wr}(n))}catch(e){if((i=e)instanceof Error&&Ot.includes(i.name)&&"field"in i&&"function"==typeof i.field)throw new Error(`cannot decode ${e.field()} from JSON: ${e.message}`,{cause:e});throw e}var i;return r.message}function Jr(e,t,n){var r;if(function(e,t,n){if(!e.desc.typeName.startsWith("google.protobuf."))return!1;switch(e.desc.typeName){case"google.protobuf.Any":return function(e,t,n){var r;if(null===t||Array.isArray(t)||"object"!=typeof t)throw new Error(`cannot decode message ${e.$typeName} from JSON: expected object but got ${Jt(t)}`);if(0==Object.keys(t).length)return;const i=t["@type"];if("string"!=typeof i||""==i)throw new Error(`cannot decode message ${e.$typeName} from JSON: "@type" is empty`);const a=i.includes("/")?i.substring(i.lastIndexOf("/")+1):i;if(!a.length)throw new Error(`cannot decode message ${e.$typeName} from JSON: "@type" is invalid`);const s=null===(r=n.registry)||void 0===r?void 0:r.getMessage(a);if(!s)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${i} is not in the type registry`);const o=tn(s);if(a.startsWith("google.protobuf.")&&Object.prototype.hasOwnProperty.call(t,"value"))Jr(o,t.value,n);else{const e=Object.assign({},t);delete e["@type"],Jr(o,e,n)}!function(e,t,n){let r=!1;n||(n=Q(jr)),n.value=Vn(e,t),n.typeUrl=`type.googleapis.com/${t.$typeName}`}(o.desc,o.message,e)}(e.message,t,n),!0;case"google.protobuf.Timestamp":return function(e,t){if("string"!=typeof t)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${Jt(t)}`);const n=t.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:\.([0-9]{1,9}))?(?:Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!n)throw new Error(`cannot decode message ${e.$typeName} from JSON: invalid RFC 3339 string`);const r=Date.parse(n[1]+"-"+n[2]+"-"+n[3]+"T"+n[4]+":"+n[5]+":"+n[6]+(n[8]?n[8]:"Z"));if(Number.isNaN(r))throw new Error(`cannot decode message ${e.$typeName} from JSON: invalid RFC 3339 string`);if(rDate.parse("9999-12-31T23:59:59Z"))throw new Error(`cannot decode message ${e.$typeName} from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);e.seconds=L.parse(r/1e3),e.nanos=0,n[7]&&(e.nanos=parseInt("1"+n[7]+"0".repeat(9-n[7].length))-1e9)}(e.message,t),!0;case"google.protobuf.Duration":return function(e,t){if("string"!=typeof t)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${Jt(t)}`);const n=t.match(/^(-?[0-9]+)(?:\.([0-9]+))?s/);if(null===n)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${Jt(t)}`);const r=Number(n[1]);if(r>315576e6||r<-315576e6)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${Jt(t)}`);if(e.seconds=L.parse(r),"string"!=typeof n[2])return;const i=n[2]+"0".repeat(9-n[2].length);e.nanos=parseInt(i),(r<0||Object.is(r,-0))&&(e.nanos=-e.nanos)}(e.message,t),!0;case"google.protobuf.FieldMask":return function(e,t){if("string"!=typeof t)throw new Error(`cannot decode message ${e.$typeName} from JSON: ${Jt(t)}`);""!==t&&(e.paths=t.split(",").map(function(t){if(t.includes("_"))throw new Error(`cannot decode message ${e.$typeName} from JSON: path names must be lowerCamelCase`);const n=t.replace(/[A-Z]/g,e=>"_"+e.toLowerCase());return"_"===n[0]?n.substring(1):n}))}(e.message,t),!0;case"google.protobuf.Struct":return si(e.message,t),!0;case"google.protobuf.Value":return oi(e.message,t),!0;case"google.protobuf.ListValue":return ui(e.message,t),!0;default:if(J(e.desc)){const n=e.desc.fields[0];return null===t?e.clear(n):e.set(n,ri(n,t,!0)),!0}return!1}}(e,t,n))return;if(null==t||Array.isArray(t)||"object"!=typeof t)throw new Error(`cannot decode ${e.desc} from JSON: ${Jt(t)}`);const i=new Map,a=new Map;for(const t of e.desc.fields)a.set(t.name,t).set(t.jsonName,t);for(const[s,o]of Object.entries(t)){const t=a.get(s);if(t){if(t.oneof){if(null===o&&"scalar"==t.fieldKind)continue;const e=i.get(t.oneof);if(void 0!==e)throw new Rt(t.oneof,`oneof set multiple times by ${e.name} and ${t.name}`);i.set(t.oneof,t)}Zr(e,t,o,n)}else{let t;if(s.startsWith("[")&&s.endsWith("]")&&(t=null===(r=n.registry)||void 0===r?void 0:r.getExtension(s.substring(1,s.length-1)))&&t.extendee.typeName===e.desc.typeName){const[r,i,a]=Hr(t);Zr(r,i,o,n),qr(e.message,t,a())}if(!t&&!n.ignoreUnknownFields)throw new Error(`cannot decode ${e.desc} from JSON: key "${s}" is unknown`)}}}function Zr(e,t,n,r){switch(t.fieldKind){case"scalar":!function(e,t,n){const r=ri(t,n,!1);r===ni?e.clear(t):e.set(t,r)}(e,t,n);break;case"enum":!function(e,t,n,r){const i=ti(t.enum,n,r.ignoreUnknownFields,!1);i===ni?e.clear(t):i!==ei&&e.set(t,i)}(e,t,n,r);break;case"message":!function(e,t,n,r){if(null===n&&"google.protobuf.Value"!=t.message.typeName)return void e.clear(t);const i=e.isSet(t)?e.get(t):tn(t.message);Jr(i,n,r),e.set(t,i)}(e,t,n,r);break;case"list":!function(e,t,n){if(null===t)return;const r=e.field();if(!Array.isArray(t))throw new Rt(r,"expected Array, got "+Jt(t));for(const i of t){if(null===i&&!Qr(r))throw new Rt(r,"list item must not be null");switch(r.listKind){case"message":const t=tn(r.message);Jr(t,i,n),e.add(t);break;case"enum":const a=ti(r.enum,i,n.ignoreUnknownFields,!0);a!==ei&&e.add(a);break;case"scalar":e.add(ri(r,i,!0))}}}(e.get(t),n,r);break;case"map":!function(e,t,n){if(null===t)return;const r=e.field();if("object"!=typeof t||Array.isArray(t))throw new Rt(r,"expected object, got "+Jt(t));for(const[i,a]of Object.entries(t)){if(null===a&&!Qr(r))throw new Rt(r,"map value must not be null");let t;switch(r.mapKind){case"message":const e=tn(r.message);Jr(e,a,n),t=e;break;case"enum":if(t=ti(r.enum,a,n.ignoreUnknownFields,!0),t===ei)return;break;case"scalar":t=ri(r,a,!0)}const s=ii(r.mapKey,i);e.set(s,t)}}(e.get(t),n,r)}}function Qr(e){var t,n;return"google.protobuf.Value"==(null===(t=e.message)||void 0===t?void 0:t.typeName)||"google.protobuf.NullValue"==(null===(n=e.enum)||void 0===n?void 0:n.typeName)}const ei=Symbol();function ti(e,t,n,r){if(null===t)return"google.protobuf.NullValue"==e.typeName?0:r?e.values[0].number:ni;switch(typeof t){case"number":if(Number.isInteger(t))return t;break;case"string":const r=e.values.find(e=>e.name===t);if(void 0!==r)return r.number;if(n)return ei}throw new Error(`cannot decode ${e} from JSON: ${Jt(t)}`)}const ni=Symbol();function ri(e,t,n){if(null===t)return n?z(e.scalar,!1):ni;switch(e.scalar){case k.DOUBLE:case k.FLOAT:if("NaN"===t)return NaN;if("Infinity"===t)return Number.POSITIVE_INFINITY;if("-Infinity"===t)return Number.NEGATIVE_INFINITY;if("number"==typeof t){if(Number.isNaN(t))throw new Rt(e,"unexpected NaN number");if(!Number.isFinite(t))throw new Rt(e,"unexpected infinite number");break}if("string"==typeof t){if(""===t)break;if(t.trim().length!==t.length)break;const e=Number(t);if(!Number.isFinite(e))break;return e}break;case k.INT32:case k.FIXED32:case k.SFIXED32:case k.SINT32:case k.UINT32:return ai(t);case k.BYTES:if("string"==typeof t){if(""===t)return new Uint8Array(0);try{return Ae(t)}catch(t){const n=t instanceof Error?t.message:String(t);throw new Rt(e,n)}}}return t}function ii(e,t){switch(e){case k.BOOL:switch(t){case"true":return!0;case"false":return!1}return t;case k.INT32:case k.FIXED32:case k.UINT32:case k.SFIXED32:case k.SINT32:return ai(t);default:return t}}function ai(e){if("string"==typeof e){if(""===e)return e;if(e.trim().length!==e.length)return e;const t=Number(e);return Number.isNaN(t)?e:t}return e}function si(e,t){if("object"!=typeof t||null==t||Array.isArray(t))throw new Error(`cannot decode message ${e.$typeName} from JSON ${Jt(t)}`);for(const[n,r]of Object.entries(t)){const t=Q($r);oi(t,r),e.fields[n]=t}}function oi(e,t){switch(typeof t){case"number":e.kind={case:"numberValue",value:t};break;case"string":e.kind={case:"stringValue",value:t};break;case"boolean":e.kind={case:"boolValue",value:t};break;case"object":if(null===t)e.kind={case:"nullValue",value:Kr.NULL_VALUE};else if(Array.isArray(t)){const n=Q(Vr);ui(n,t),e.kind={case:"listValue",value:n}}else{const n=Q(zr);si(n,t),e.kind={case:"structValue",value:n}}break;default:throw new Error(`cannot decode message ${e.$typeName} from JSON ${Jt(t)}`)}return e}function ui(e,t){if(!Array.isArray(t))throw new Error(`cannot decode message ${e.$typeName} from JSON ${Jt(t)}`);for(const n of t){const t=Q($r);oi(t,n),e.values.push(t)}}function ci(){return{get(e){return e.id in this?this[e.id]:e.defaultValue},set(e,t){return this[e.id]=t,this},delete(e){return delete this[e.id],this}}}const li={alwaysEmitImplicit:!1,enumAsInteger:!1,useProtoFieldName:!1};function fi(e,t){var n;const r=function(e,t){var n;if(e.desc.typeName.startsWith("google.protobuf."))switch(e.desc.typeName){case"google.protobuf.Any":return function(e,t){if(""===e.typeUrl)return{};const{registry:n}=t;let r,i;if(n&&(r=function(e,t){if(""===e.typeUrl)return;const n="message"==t.kind?t:t.getMessage(Dr(e.typeUrl));return n&&function(e,t){return""!==e.typeUrl&&("string"==typeof t?t:t.typeName)===Dr(e.typeUrl)}(e,n)?Sn(n,e.value):void 0}(e,n),r&&(i=n.getMessage(r.$typeName))),!i||!r)throw new Error(`cannot encode message ${e.$typeName} to JSON: "${e.typeUrl}" is not in the type registry`);let a=fi(tn(i,r),t);return(i.typeName.startsWith("google.protobuf.")||null===a||Array.isArray(a)||"object"!=typeof a)&&(a={value:a}),a["@type"]=e.typeUrl,a}(e.message,t);case"google.protobuf.Timestamp":return function(e){const t=1e3*Number(e.seconds);if(tDate.parse("9999-12-31T23:59:59Z"))throw new Error(`cannot encode message ${e.$typeName} to JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);if(e.nanos<0)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos must not be negative`);if(e.nanos>999999999)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos must not be greater than 99999999`);let n="Z";if(e.nanos>0){const t=(e.nanos+1e9).toString().substring(1);n="000000"===t.substring(3)?"."+t.substring(0,3)+"Z":"000"===t.substring(6)?"."+t.substring(0,6)+"Z":"."+t+"Z"}return new Date(t).toISOString().replace(".000Z",n)}(e.message);case"google.protobuf.Duration":return function(e){const t=Number(e.seconds),n=e.nanos;if(t>315576e6||t<-315576e6)throw new Error(`cannot encode message ${e.$typeName} to JSON: value out of range`);if(t>0&&n<0||t<0&&n>0)throw new Error(`cannot encode message ${e.$typeName} to JSON: nanos sign must match seconds sign`);let r=e.seconds.toString();if(0!==n){let e=Math.abs(n).toString();e="0".repeat(9-e.length)+e,"000000"===e.substring(3)?e=e.substring(0,3):"000"===e.substring(6)&&(e=e.substring(0,6)),r+="."+e,n<0&&0==t&&(r="-"+r)}return r+"s"}(e.message);case"google.protobuf.FieldMask":return(n=e.message).paths.map(e=>{if(e.match(/_[0-9]?_/g)||e.match(/[A-Z]/g))throw new Error(`cannot encode message ${n.$typeName} to JSON: lowerCamelCase of path name "`+e+'" is irreversible');return Be(e)}).join(",");case"google.protobuf.Struct":return yi(e.message);case"google.protobuf.Value":return bi(e.message);case"google.protobuf.ListValue":return gi(e.message);default:if(J(e.desc)){const t=e.desc.fields[0];return pi(t,e.get(t))}return}}(e,t);if(void 0!==r)return r;const i={};for(const n of e.sortedFields){if(!e.isSet(n)){if(3==n.presence)throw new Error(`cannot encode ${n} to JSON: required field not set`);if(!t.alwaysEmitImplicit||2!==n.presence)continue}const r=di(n,e.get(n),t);void 0!==r&&(i[mi(n,t)]=r)}if(t.registry){const r=new Set;for(const{no:a}of null!==(n=e.getUnknown())&&void 0!==n?n:[])if(!r.has(a)){r.add(a);const n=t.registry.getExtensionFor(e.desc,a);if(!n)continue;const s=Yr(e.message,n),[o,u]=Hr(n,s),c=di(u,o.get(u),t);void 0!==c&&(i[n.jsonName]=c)}}return i}function di(e,t,n){switch(e.fieldKind){case"scalar":return pi(e,t);case"message":return fi(t,n);case"enum":return hi(e.enum,t,n.enumAsInteger);case"list":return function(e,t){const n=e.field(),r=[];switch(n.listKind){case"scalar":for(const t of e)r.push(pi(n,t));break;case"enum":for(const i of e)r.push(hi(n.enum,i,t.enumAsInteger));break;case"message":for(const n of e)r.push(fi(n,t))}return t.alwaysEmitImplicit||r.length>0?r:void 0}(t,n);case"map":return function(e,t){const n=e.field(),r={};switch(n.mapKind){case"scalar":for(const[t,i]of e)r[t]=pi(n,i);break;case"message":for(const[n,i]of e)r[n]=fi(i,t);break;case"enum":for(const[i,a]of e)r[i]=hi(n.enum,a,t.enumAsInteger)}return t.alwaysEmitImplicit||e.size>0?r:void 0}(t,n)}}function hi(e,t,n){var r;if("number"!=typeof t)throw new Error(`cannot encode ${e} to JSON: expected number, got ${Jt(t)}`);if("google.protobuf.NullValue"==e.typeName)return null;if(n)return t;const i=e.value[t];return null!==(r=null==i?void 0:i.name)&&void 0!==r?r:t}function pi(e,t){var n,r,i,a,s,o;switch(e.scalar){case k.INT32:case k.SFIXED32:case k.SINT32:case k.FIXED32:case k.UINT32:if("number"!=typeof t)throw new Error(`cannot encode ${e} to JSON: ${null===(n=qt(e,t))||void 0===n?void 0:n.message}`);return t;case k.FLOAT:case k.DOUBLE:if("number"!=typeof t)throw new Error(`cannot encode ${e} to JSON: ${null===(r=qt(e,t))||void 0===r?void 0:r.message}`);return Number.isNaN(t)?"NaN":t===Number.POSITIVE_INFINITY?"Infinity":t===Number.NEGATIVE_INFINITY?"-Infinity":t;case k.STRING:if("string"!=typeof t)throw new Error(`cannot encode ${e} to JSON: ${null===(i=qt(e,t))||void 0===i?void 0:i.message}`);return t;case k.BOOL:if("boolean"!=typeof t)throw new Error(`cannot encode ${e} to JSON: ${null===(a=qt(e,t))||void 0===a?void 0:a.message}`);return t;case k.UINT64:case k.FIXED64:case k.INT64:case k.SFIXED64:case k.SINT64:if("bigint"!=typeof t&&"string"!=typeof t)throw new Error(`cannot encode ${e} to JSON: ${null===(s=qt(e,t))||void 0===s?void 0:s.message}`);return t.toString();case k.BYTES:if(t instanceof Uint8Array)return Ne(t);throw new Error(`cannot encode ${e} to JSON: ${null===(o=qt(e,t))||void 0===o?void 0:o.message}`)}}function mi(e,t){return t.useProtoFieldName?e.name:e.jsonName}function yi(e){const t={};for(const[n,r]of Object.entries(e.fields))t[n]=bi(r);return t}function bi(e){switch(e.kind.case){case"nullValue":return null;case"numberValue":if(!Number.isFinite(e.kind.value))throw new Error(`${e.$typeName} cannot be NaN or Infinity`);return e.kind.value;case"boolValue":case"stringValue":return e.kind.value;case"structValue":return yi(e.kind.value);case"listValue":return gi(e.kind.value);default:throw new Error(`${e.$typeName} must have a value`)}}function gi(e){return e.values.map(bi)}function vi(e){var t;const n=Object.assign({},e);return null!==(t=n.ignoreUnknownFields)&&void 0!==t||(n.ignoreUnknownFields=!0),n}function wi(e,t,n,r){const i=t?_i(e.input,r):Si(e.input,n);return{parse:(t?_i(e.output,r):Si(e.output,n)).parse,serialize:i.serialize}}function _i(e,t){return{parse(n){try{return Sn(e,n,t)}catch(e){const t=e instanceof Error?e.message:String(e);throw new Or(`parse binary: ${t}`,Ir.Internal)}},serialize(n){try{return Vn(e,n,t)}catch(e){const t=e instanceof Error?e.message:String(e);throw new Or(`serialize binary: ${t}`,Ir.Internal)}}}}function Si(e,t){var n,r;const i=null!==(n=null==t?void 0:t.textEncoder)&&void 0!==n?n:new TextEncoder,a=null!==(r=null==t?void 0:t.textDecoder)&&void 0!==r?r:new TextDecoder,s=vi(t);return{parse(t){try{const n=a.decode(t);return function(e,t,n){return Xr(e,function(e,t){try{return JSON.parse(e)}catch(e){const n=e instanceof Error?e.message:String(e);throw new Error(`cannot decode message ${t} from JSON: ${n}`,{cause:e})}}(t,e.typeName),n)}(e,n,s)}catch(e){throw Or.from(e,Ir.InvalidArgument)}},serialize(t){try{const n=function(e,t,n){var r;const i=function(e,t,n){return fi(tn(e,t),function(e){return e?Object.assign(Object.assign({},li),e):li}(n))}(e,t,n);return JSON.stringify(i,null,null!==(r=null==n?void 0:n.prettySpaces)&&void 0!==r?r:0)}(e,t,s);return i.encode(n)}catch(e){throw Or.from(e,Ir.Internal)}}}}function Ei(e,t){if(!t)return e;for(const n of t.concat().reverse())e=n(e);return e}function ki(e){if(!e.aborted)return;if(void 0!==e.reason)return e.reason;const t=new Error("This operation was aborted");return t.name="AbortError",t}function xi(e,t){return Q(e,t)}function Ti(e,t){function n(t){return!0===t.done?t:{done:t.done,value:xi(e,t.value)}}return{[Symbol.asyncIterator](){const e=t[Symbol.asyncIterator](),r={next:()=>e.next().then(n)};return void 0!==e.throw&&(r.throw=t=>e.throw(t).then(n)),void 0!==e.return&&(r.return=t=>e.return(t).then(n)),r}}}function Mi(e){const{signal:t,cleanup:n}=function(e){const t=new AbortController,n=()=>{t.abort(new Or("the operation timed out",Ir.DeadlineExceeded))};let r;return void 0!==e&&(e<=0?n():r=setTimeout(n,e)),{signal:t.signal,cleanup:()=>clearTimeout(r)}}(e.timeoutMs),r=function(...e){const t=new AbortController,n=e.filter(e=>void 0!==e).concat(t.signal);for(const e of n){if(e.aborted){r.apply(e);break}e.addEventListener("abort",r)}function r(){t.signal.aborted||t.abort(ki(this));for(const e of n)e.removeEventListener("abort",r)}return t}(e.signal,t);return[r.signal,function(e){const i=Or.from(t.aborted?ki(t):e);return r.abort(i),n(),Promise.reject(i)},function(){n(),r.abort()}]}function Ii(e,t){return e.toString().replace(/\/?$/,`/${t.parent.typeName}/${t.name}`)}class Ai{constructor(e){this.readMaxBytes=e,this.header=new Uint8Array(5),this.headerView=new DataView(this.header.buffer),this.buf=[]}get byteLength(){return this.buf.reduce((e,t)=>e+t.byteLength,0)}decode(e){this.buf.push(e);const t=[];for(;;){let e=this.pop();if(!e)break;t.push(e)}return t}pop(){if((this.env||(this.env=this.head(),this.env))&&this.cons(this.env.data)){const e=this.env;return this.env=void 0,e}}head(){if(!this.cons(this.header))return;const e=this.headerView.getUint8(0),t=this.headerView.getUint32(1);return function(e,t,n=!1){if(t>e){let r=`message size is larger than configured readMaxBytes ${e}`;throw n&&(r=`message size ${t} is larger than configured readMaxBytes ${e}`),new Or(r,Ir.ResourceExhausted)}}(this.readMaxBytes,t,!0),{flags:e,data:new Uint8Array(t)}}cons(e){const t=e.byteLength;if(this.byteLengtht-n?(e.set(r.subarray(0,t-n),n),this.buf.unshift(r.subarray(t-n)),n+=t-n):(e.set(r,n),n+=r.byteLength)}return!0}}const Ni="Content-Type",Pi="Content-Encoding",Oi="Connect-Protocol-Version",Ri="User-Agent",Ci=/^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;function Bi(e,t,n,r,i){const a=new Headers(null!=r?r:{});return void 0!==n&&a.set("Connect-Timeout-Ms",`${n}`),a.set(Ni,"unary"==e?t?"application/proto":"application/json":t?"application/connect+proto":"application/connect+json"),a.set(Oi,"1"),!a.has(Ri)&&i&&a.set(Ri,"connect-es/2.1.1"),a}function Fi(e,t,n,r){const i=r.get(Ni),a=function(e){const t=null==e?void 0:e.match(Ci);if(t)return{stream:!!t[1],binary:!!t[3]}}(i);if(200!==n){const t=new Or(`HTTP ${n}`,function(e){switch(e){case 400:return Ir.Internal;case 401:return Ir.Unauthenticated;case 403:return Ir.PermissionDenied;case 404:return Ir.Unimplemented;case 429:case 502:case 503:case 504:return Ir.Unavailable;default:return Ir.Unknown}}(n),r);if("unary"==e&&a&&!a.binary)return{isUnaryError:!0,unaryError:t};throw t}const s=t,o="unary"!==e;if((null==a?void 0:a.binary)!==s||a.stream!==o)throw new Or(`unsupported content type ${i}`,void 0===a?Ir.Unknown:Ir.Internal,r);return{isUnaryError:!1}}function Li(e,t,n){var r;if(t&&new Headers(t).forEach((e,t)=>n.metadata.append(t,e)),"object"!=typeof e||null==e||Array.isArray(e))throw n;let i=n.code;"code"in e&&"string"==typeof e.code&&(i=null!==(r=function(e){if(!Nr){Nr={};for(const e of Object.values(Ir))"string"!=typeof e&&(Nr[Ar(e)]=e)}return Nr[e]}(e.code))&&void 0!==r?r:i);const a=e.message;if(null!=a&&"string"!=typeof a)throw n;const s=new Or(null!=a?a:"",i,t);if("details"in e&&Array.isArray(e.details))for(const t of e.details){if(null===t||"object"!=typeof t||Array.isArray(t)||"string"!=typeof t.type||"string"!=typeof t.value)throw n;try{s.details.push({type:t.type,value:Ae(t.value),debug:t.debug})}catch(e){throw n}}return s}function ji(e){const t=new Headers,n=new Headers;return e.forEach((e,r)=>{r.toLowerCase().startsWith("trailer-")?n.append(r.substring(8),e):t.append(r,e)}),[t,n]}function Di(e){const t=new Or("invalid end stream",Ir.Unknown);let n;try{n=JSON.parse("string"==typeof e?e:(new TextDecoder).decode(e))}catch(e){throw t}if("object"!=typeof n||null==n||Array.isArray(n))throw t;const r=new Headers;if("metadata"in n){if("object"!=typeof n.metadata||null==n.metadata||Array.isArray(n.metadata))throw t;for(const[e,i]of Object.entries(n.metadata)){if(!Array.isArray(i)||i.some(e=>"string"!=typeof e))throw t;for(const t of i)r.append(e,t)}}return{metadata:r,error:"error"in n&&null!=n.error?Li(n.error,r,t):void 0}}var Ui=function(e){return this instanceof Ui?(this.v=e,this):new Ui(e)};const zi={redirect:"error"};function $i(e){var t;!function(){try{new Headers}catch(e){throw new Error("connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.")}}();const n=null!==(t=e.useBinaryFormat)&&void 0!==t&&t;return{async unary(t,r,i,a,s,o){const{serialize:u,parse:c}=wi(t,n,e.jsonOptions,e.binaryOptions);return i=void 0===i?e.defaultTimeoutMs:i<=0?void 0:i,await function(e){const t=Ei(e.next,e.interceptors),[n,r,i]=Mi(e);return t(Object.assign(Object.assign({},e.req),{message:xi(e.req.method.input,e.req.message),signal:n})).then(e=>(i(),e),r)}({interceptors:e.interceptors,signal:r,timeoutMs:i,req:{stream:!1,service:t.parent,method:t,requestMethod:"POST",url:Ii(e.baseUrl,t),header:Bi(t.methodKind,n,i,a,!1),contextValues:null!=o?o:ci(),message:s},next:async r=>{var i;let a=null;!0===e.useHttpGet&&t.idempotency===wt.NO_SIDE_EFFECTS?r=function(e,t,n){let r="?connect=v1";const i=e.header.get(Ni);0===(null==i?void 0:i.indexOf("application/"))&&(r+="&encoding="+encodeURIComponent(i.slice(12)));const a=e.header.get(Pi);null!==a&&"identity"!==a&&(r+="&compression="+encodeURIComponent(a),n=!0),n&&(r+="&base64=1"),r+="&message="+function(e,t){return t?Ne(e,"url"):encodeURIComponent((new TextDecoder).decode(e))}(t,n);const s=e.url+r,o=new Headers(e.header);for(const e of[Oi,Ni,"Content-Length",Pi,"Accept-Encoding"])o.delete(e);return Object.assign(Object.assign({},e),{requestMethod:"GET",url:s,header:o})}(r,u(r.message),n):a=u(r.message);const s=null!==(i=e.fetch)&&void 0!==i?i:globalThis.fetch,o=await s(r.url,Object.assign(Object.assign({},zi),{method:r.requestMethod,headers:r.header,signal:r.signal,body:a})),{isUnaryError:l,unaryError:f}=Fi(t.methodKind,n,o.status,o.headers);if(l)throw Li(await o.json(),function(...e){const t=new Headers;for(const n of e)n.forEach((e,n)=>{t.append(n,e)});return t}(...ji(o.headers)),f);const[d,h]=ji(o.headers);return{stream:!1,service:t.parent,method:t,header:d,message:n?c(new Uint8Array(await o.arrayBuffer())):Xr(t.output,await o.json(),vi(e.jsonOptions)),trailer:h}}})},async stream(t,r,i,a,s,o){const{serialize:u,parse:c}=wi(t,n,e.jsonOptions,e.binaryOptions);function l(e,t,n,r){return function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=n.apply(e,t||[]),a=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",function(e){return function(t){return Promise.resolve(t).then(e,c)}}),r[Symbol.asyncIterator]=function(){return this},r;function s(e,t){i[e]&&(r[e]=function(t){return new Promise(function(n,r){a.push([e,t,n,r])>1||o(e,t)})},t&&(r[e]=t(r[e])))}function o(e,t){try{(n=i[e](t)).value instanceof Ui?Promise.resolve(n.value.v).then(u,c):l(a[0][2],n)}catch(e){l(a[0][3],e)}var n}function u(e){o("next",e)}function c(e){o("throw",e)}function l(e,t){e(t),a.shift(),a.length&&o(a[0][0],a[0][1])}}(this,arguments,function*(){const i=function(e){let t;const n=new Ai(4294967295);return new ReadableStream({start(){t=e.getReader()},async pull(e){let r=!1;for(;!r;){const i=await t.read();if(i.done)n.byteLength>0&&e.error(new Or("protocol error: incomplete envelope",Ir.InvalidArgument)),e.close();else for(const t of n.decode(i.value))e.enqueue(t),r=!0}}})}(e).getReader();let a=!1;for(;;){const e=yield Ui(i.read());if(e.done)break;const{flags:r,data:s}=e.value;if(!(1&~r))throw new Or("protocol error: received unsupported compressed output",Ir.Internal);if(!(2&~r)){a=!0;const e=Di(s);if(e.error){const t=e.error;throw n.forEach((e,n)=>{t.metadata.append(n,e)}),t}e.metadata.forEach((e,n)=>t.set(n,e));continue}yield yield Ui(c(s))}if("throwIfAborted"in r&&r.throwIfAborted(),!a)throw"missing EndStreamResponse"})}async function f(e){if("server_streaming"!=t.methodKind)throw"The fetch API does not support streaming request bodies";const n=await e[Symbol.asyncIterator]().next();if(1==n.done)throw"missing request message";return function(e,t){const n=new Uint8Array(t.length+5);n.set(t,5);const r=new DataView(n.buffer,n.byteOffset,n.byteLength);return r.setUint8(0,0),r.setUint32(1,t.length),n}(0,u(n.value))}return i=void 0===i?e.defaultTimeoutMs:i<=0?void 0:i,await function(e){const t=Ei(e.next,e.interceptors),[n,r,i]=Mi(e),a=Object.assign(Object.assign({},e.req),{message:Ti(e.req.method.input,e.req.message),signal:n});let s=!1;return n.addEventListener("abort",function(){var t,n;const r=e.req.message[Symbol.asyncIterator]();s||null===(t=r.throw)||void 0===t||t.call(r,this.reason).catch(()=>{}),null===(n=r.return)||void 0===n||n.call(r).catch(()=>{})}),t(a).then(e=>Object.assign(Object.assign({},e),{message:{[Symbol.asyncIterator](){const t=e.message[Symbol.asyncIterator]();return{next:()=>t.next().then(e=>(1==e.done&&(s=!0,i()),e),r)}}}}),r)}({interceptors:e.interceptors,timeoutMs:i,signal:r,req:{stream:!0,service:t.parent,method:t,requestMethod:"POST",url:Ii(e.baseUrl,t),header:Bi(t.methodKind,n,i,a,!1),contextValues:null!=o?o:ci(),message:s},next:async r=>{var i;const a=null!==(i=e.fetch)&&void 0!==i?i:globalThis.fetch,s=await a(r.url,Object.assign(Object.assign({},zi),{method:r.requestMethod,headers:r.header,signal:r.signal,body:await f(r.message)}));if(Fi(t.methodKind,n,s.status,s.headers),null===s.body)throw"missing response body";const o=new Headers;return Object.assign(Object.assign({},r),{header:s.headers,trailer:o,message:l(s.body,o,s.headers,r.signal)})}})}}}function Vi(e,t){if("string"==typeof e){const n=$i({baseUrl:e}),r=Fr(Dn,n);return Object.assign(r,{signerAddress:t})}return Object.assign(e,{signerAddress:t})}class Ki{kmss;threshold;constructor(e,t){if(0===e.length)throw new Error("At least one attester or KMS client is required");if(t<1||t>e.length)throw new Error(`Threshold must be between 1 and ${e.length}`);if(e.length>0&&"attestedDecrypt"in e[0]){const t=e;this.kmss=t.map(e=>({client:e,signer:e.signerAddress}))}else{const t=e;this.kmss=t.map(e=>({client:Vi(e.url,e.signer),signer:e.signer}))}this.threshold=t}static fromUrls(e,t,n){if(0===e.length)throw new Error("At least one URL is required");if(t.length!==e.length)throw new Error(`Signers array length (${t.length}) must match URLs array length (${e.length})`);if(n<1||n>e.length)throw new Error(`Threshold must be between 1 and ${e.length} (number of URLs)`);const r=e.map((e,n)=>({url:e,signer:t[n]}));return new Ki(r,n)}static fromKmsClients(e,t){if(0===e.length)throw new Error("At least one KMS client is required");if(t<1||t>e.length)throw new Error(`Threshold must be between 1 and ${e.length} (number of KMS clients)`);return new Ki(e,t)}async attestedDecrypt(e,t){const n=await this.executeKmsOperationWithThreshold(async t=>await t.client.attestedDecrypt(e),t),r=n.map(e=>e.response),i=n.map(e=>e.signer),a=this.verifyResponseConsistency(r);return this.buildAggregatedAttestations(a,r,i)}async attestedCompute(e,t){const n=await this.executeKmsOperationWithThreshold(async t=>await t.client.attestedCompute(e),t),r=n.map(e=>e.response),i=n.map(e=>e.signer),a=this.verifyComputeResponseConsistency(r,e);return this.buildAggregatedComputeAttestation(a,r,i)}async attestedReveal(e,t){const n=await this.executeKmsOperationWithThreshold(async t=>await t.client.attestedReveal(e),t),r=n.map(e=>e.response),i=n.map(e=>e.signer),a=this.verifyResponseConsistency(r);return this.buildAggregatedAttestations(a,r,i)}async executeKmsOperationWithThreshold(e,t){const n=this.kmss.map(async(n,r)=>{try{return{response:await async function(e,{maxRetries:t=10,baseDelayInMs:n=1e3,backoffFactor:r=1.5,errHandler:i=()=>"continue"}={}){let a;for(let s=0;ssetTimeout(e,o))}throw a}(async()=>await e(n),t),signer:n.signer}}catch(e){throw new Error(`KMS client ${r} failed: ${e}`)}});return await async function(e,t){if(t<0)throw new Error("Threshold cannot be negative");if(0===t)return[];if(0===e.length&&t>0)throw new Error("Cannot reach positive threshold with no promises");if(t>e.length)throw new Error(`Threshold ${t} exceeds number of promises ${e.length}`);const n=[];let r=0;return new Promise((i,a)=>{e.forEach(s=>{s.then(e=>{n.length{console.error(`Error executing promise: ${i}`),r++,e.length-n.length-r({signature:e,signer:t[n]}));return n.sort((e,t)=>{const n=BigInt(e.signer),r=BigInt(t.signer);return nr?1:0}),n.map(e=>e.signature)}buildPlaintextAttestation(e,t){if(!e.value||"plaintext"!==e.value.case)throw new Error("Expected plaintext attestation");const n=e.value.value.value,r=e.handle;return{handle:r,plaintext:_e(1,(0,pe.hY)(r),(0,he.U8)(n)),covalidatorSignatures:t}}buildAggregatedAttestations(e,t,n){const r=e.decryptionAttestations.length;return new Array(r).fill(void 0).map((r,i)=>{const a=e.decryptionAttestations[i];if(!a.value)throw new Error("No value in attestation");const s=t.map(e=>e.decryptionAttestations[i].signature),o=this.collectAndSortSignatures(s,n);if("plaintext"===a.value.case)return this.buildPlaintextAttestation(a,o);if("reencryption"===a.value.case){const e=t.map(e=>{if("reencryption"===e.decryptionAttestations[i].value.case)return e.decryptionAttestations[i].value.value.encryptedSignature;throw new Error(`Expected reencryption attestation but received '${e.decryptionAttestations[i].value.case}'`)}),r=this.collectAndSortSignatures(e,n),s=a.value.value.userCiphertext,u=(0,pe.hY)((0,he.jR)(a.handle));return{handle:a.handle,encryptedPlaintext:{ciphertext:{value:(0,he.My)(s),scheme:1,type:u}},encryptedSignatures:r,covalidatorSignatures:o}}throw new Error(`Unexpected attestation type: ${a.value.case}, expected 'plaintext' or 'reencryption'`)})}buildAggregatedComputeAttestation(e,t,n){const r=e.decryptionAttestation;if(!r)throw new Error("No decryption attestation in reference response");if(!r.value)throw new Error("No value in reference attestation");const i=[];for(const e of t){const t=e.decryptionAttestation;t&&i.push(t.signature)}const a=this.collectAndSortSignatures(i,n);if("plaintext"===r.value.case)return this.buildPlaintextAttestation(r,a);if("reencryption"===r.value.case){const e=r.value.value.userCiphertext;if(!e)throw new Error("No ciphertext in reencryption");const i=(0,pe.hY)((0,he.jR)(r.handle)),s=t.map(e=>{if("reencryption"===e.decryptionAttestation?.value.case){const t=e.decryptionAttestation?.value.value;return t.encryptedSignature}throw new Error(`Expected reencryption attestation but received '${e.decryptionAttestation?.value.case}'`)}),o=this.collectAndSortSignatures(s,n);return{handle:r.handle,encryptedPlaintext:{ciphertext:{value:(0,he.My)(e),scheme:1,type:i}},encryptedSignatures:o,covalidatorSignatures:a}}throw new Error(`Unexpected attestation type: ${r.value.case}, expected 'plaintext' or 'reencryption'`)}verifyResponseConsistency(e){if(0===e.length)throw new Error("No responses collected to verify");const t=e[0];for(let n=1;n0;if("reencryption"===i&&!c)throw new Error("Unexpected attestation type: reencryption, expected 'plaintext'");for(let t=1;t{if(1!==e.scheme)throw new Error(`Plaintext with scheme ${function(e){if(1===e)return"ECIES";throw new Error(`Unknown encryption scheme: ${e}`)}(e.scheme)} cannot be encrypted with ECIES`);const i=Qn.from(function({plaintext:e,context:t}){const n=Q(Jn,{contextHash:(0,pe.Ek)(t),values:[{value:{case:"scalar",value:Q(Zn,{type:e.type,value:ke(e)})}}]});return Vn(Jn,n)}({plaintext:e,context:t})),a=await(0,Un.encrypt)(n,i,{ephemPrivateKey:r}),s=(0,pe.HT)({ciphertext:a,handleType:e.type,indexHandle:0,handleVersion:0}),o=(0,pe.I3)({prehandle:s,context:t});return{prehandle:(0,he.rr)(s),handle:(0,he.rr)(o),context:t,ciphertext:{scheme:1,type:e.type,value:Ee((0,he.My)(o),(0,he.My)(a))}}}}({pubKeyA:(s=(0,r.aT)((0,Gi.Z)(he.hJ,this.eciesPubKey)),er.keyFromPublic(s,"array").getPublic()),privKeyB:this.ephemeralKeypair}),this.kmsQuorumClient=Ki.fromUrls(this.covalidatorUrls,this.signers,this.threshold)}static async baseSepoliaTestnet(){return Zi.latest("testnet",S.id)}static async localNode(e){if(!e){const e=gr[Xi];return Zi.custom({...e,covalidatorUrls:[...e.covalidatorUrls],signers:e.signers.map(e=>(0,he.or)(e))})}if("string"==typeof e){const t=gr[e];return Zi.custom({...t,covalidatorUrls:[...t.covalidatorUrls],signers:t.signers.map(e=>(0,he.or)(e))})}const t=gr[Xi];return Zi.custom({chainId:e.COVALIDATOR_HOST_CHAIN_ID?Number(e.COVALIDATOR_HOST_CHAIN_ID):t.chainId,covalidatorUrls:e.COVALIDATOR_URL?e.COVALIDATOR_URL.split(","):[...t.covalidatorUrls],signers:e.EIP712_SIGNER_ADDRESS?e.EIP712_SIGNER_ADDRESS.split(",").map(e=>(0,he.or)(e)):t.signers.map(e=>(0,he.or)(e)),hostChainRpcUrl:e.COVALIDATOR_HOST_CHAIN_RPC_URL??t.hostChainRpcUrl??"http://localhost:8545",executorAddress:e.EXECUTOR_ADDRESS,senderPrivateKey:e.SENDER_PRIVATE_KEY})}static async localNodeFromEnv(e){let t;if((r=e)&&"object"==typeof r&&"filePath"in r&&"string"==typeof r.filePath){if(void 0===Wi||!Wi.versions?.node)throw new Error("Lightning.localNodeFromEnv with a file path is only available in Node environments.");const{readFile:r}=await n.e(137).then(n.t.bind(n,95137,23));t=await r(e.filePath)}else t=e;var r;const i=function(e){const t=e?function(e){let t={};const n=e.split("\n");for(const e of n){const n=e.trim();if(n&&!n.startsWith("#")){const e=n.indexOf("=");if(-1!==e){const r=n.substring(0,e).trim();let i=n.substring(e+1).trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.substring(1,i.length-1)),t[r]=i}}}for(const[e,n]of Object.entries(t))t[e]=n.replace(/\${?(\w+)}?/g,(e,n)=>t[n]??"");return t}(e.toString()):qi.env;return Yi.sv(Hi)(t)}(t);return await Zi.localNode(i)}static async at(e){const t=this.isIdByName(e)?br.find(t=>t.name===e.name&&t.chainId===e.chainId):br.find(t=>t.executorAddress===e.executorAddress&&t.chainId===e.chainId);if(!t)throw new Error(`No deployment found for ${JSON.stringify(e)}`);const n=Mr({id:t.chainId}),r=(0,i.l)({chain:n,transport:(0,a.L)()}),{threshold:s,signers:o,eciesPubKey:u}=await Zi.getChainConfig(t,r);return new Zi(t,Zi.getCovalidatorUrls(t,s),o,s,u)}static async custom(e){const t=Mr({id:e.chainId}),n=(0,i.l)({chain:t,transport:e.hostChainRpcUrl?(0,a.L)(e.hostChainRpcUrl):(0,a.L)()}),{threshold:r,signers:s,eciesPubKey:o}=await Zi.getVerifierContractDetails(e.executorAddress,n);return new Zi(e,e.covalidatorUrls,s,r,o)}static latestDeployment(e,t){const n=br.find(n=>n.pepper===e&&n.chainId===t);if(!n)throw new Error(`No deployment found for pepper ${e}`);return n}static async latest(e,t){return Zi.at(Zi.latestDeployment(e,t))}get deployment(){return{...this._deployment}}async encrypt(e,{accountAddress:t,dappAddress:n,handleType:r}){const{ciphertext:i}=await this.encryptor({plaintext:Zi.plaintextFromValue(e,r),context:{hostChainId:this.chainId,aclAddress:this.executorAddress,userAddress:(0,he.or)(t),contractAddress:(0,he.or)(n)}});return i.value}grantSessionKeyAllowanceVoucher(e,t,n,r){return async function({chainId:e,incoLiteAddress:t,sessionVerifierContractAddress:n,granteeAddress:r,sharerWalletClient:i,expiresAt:a}){const s={decrypter:r,expiresAt:BigInt(Math.floor(a.getTime()/1e3))},o=(0,ce.h)(function(){const e=xe.find(e=>"name"in e&&"getSession"===e.name);if(!e)throw new Error("getSession not found");const t=e.outputs[0];if(!t)throw new Error("session not found");return t.components}(),[s.decrypter,s.expiresAt]),u=await yr(t,i),c=await u.read.eip712Domain(),l=c[1],f=c[2],d=await async function(e,t,n,r,i){const a=await yr(e,t);return{sessionNonce:await a.read.getActiveVouchersSessionNonce([t.account.address]),verifyingContract:n,callFunction:r,sharerArgData:i}}(t,i,n,(0,le.V)(function(){const e=Me.Z.find(e=>"name"in e&&"canUseSession"===e.name);if(!e)throw new Error("canUseSession not found");return e}()),o),h=rr({chainId:e,primaryType:"AllowanceVoucher",primaryTypeFields:mr(),message:d,verifyingContract:u.address,domainName:l,domainVersion:f}),p=await i.signTypedData(h);return{sharer:i.account.address,voucher:d,voucherSignature:p}}({chainId:this.chainId,incoLiteAddress:this.executorAddress,sessionVerifierContractAddress:(0,he.or)(r),granteeAddress:(0,he.or)(t),sharerWalletClient:e,expiresAt:n})}updateActiveVouchersSessionNonce(e){return async function(e,t){const n=await yr(e,t);return await n.write.updateActiveVouchersSessionNonce()}(this.executorAddress,e)}attestedDecrypt(e,t,n,r,i){if(n instanceof Uint8Array){const a=n;let s,o;return r&&Ji(r)?(s=r,o=i):o=r,sr(s?{handles:t,backoffConfig:o,chainId:Number(this.chainId),walletClient:e,kmsQuorumClient:this.kmsQuorumClient,executorAddress:this.executorAddress,reencryptPubKey:a,reencryptKeypair:s}:{executorAddress:this.executorAddress,handles:t,backoffConfig:o,chainId:Number(this.chainId),walletClient:e,kmsQuorumClient:this.kmsQuorumClient,reencryptPubKey:a})}const a=n,s=tr(),o=s.encodePublicKey();return sr({handles:t,backoffConfig:a,chainId:Number(this.chainId),walletClient:e,kmsQuorumClient:this.kmsQuorumClient,executorAddress:this.executorAddress,reencryptPubKey:o,reencryptKeypair:s})}attestedDecryptWithVoucher(e,t,n,r,i,a,s){if(i instanceof Uint8Array){const o=i;let u,c;return a&&Ji(a)?(u=a,c=s):c=a,pr(u?{backoffConfig:c,chainId:Number(this.chainId),kmsQuorumClient:this.kmsQuorumClient,ephemeralKeypair:e,allowanceVoucherWithSig:t,handles:r,reencryptPubKey:o,reencryptKeypair:u,ethClient:n,executorAddress:this.executorAddress}:{backoffConfig:c,chainId:Number(this.chainId),kmsQuorumClient:this.kmsQuorumClient,ephemeralKeypair:e,allowanceVoucherWithSig:t,handles:r,reencryptPubKey:o,ethClient:n,executorAddress:this.executorAddress})}const o=i,u=tr(),c=u.encodePublicKey();return pr({backoffConfig:o,chainId:Number(this.chainId),kmsQuorumClient:this.kmsQuorumClient,ephemeralKeypair:e,allowanceVoucherWithSig:t,handles:r,ethClient:n,executorAddress:this.executorAddress,reencryptPubKey:c,reencryptKeypair:u})}attestedCompute(e,t,n,r,i,a,s){if(i instanceof Uint8Array){const o=i;let u,c;return a&&Ji(a)?(u=a,c=s):c=a,dr(u?{executorAddress:this.executorAddress,walletClient:e,kmsQuorumClient:this.kmsQuorumClient,chainId:Number(this.chainId),lhsHandle:t,op:n,rhsPlaintext:r,reencryptPubKey:o,reencryptKeypair:u,backoffConfig:c}:{executorAddress:this.executorAddress,walletClient:e,kmsQuorumClient:this.kmsQuorumClient,chainId:Number(this.chainId),lhsHandle:t,op:n,rhsPlaintext:r,reencryptPubKey:o,backoffConfig:c})}const o=i,u=tr(),c=u.encodePublicKey();return dr({executorAddress:this.executorAddress,walletClient:e,kmsQuorumClient:this.kmsQuorumClient,chainId:Number(this.chainId),lhsHandle:t,op:n,rhsPlaintext:r,reencryptPubKey:c,reencryptKeypair:u,backoffConfig:o})}attestedComputeWithVoucher(e,t,n,r,i,a,s,o,u){if(s instanceof Uint8Array){const c=s;let l,f;return o&&Ji(o)?(l=o,f=u):f=o,hr(l?{chainId:Number(this.chainId),kmsQuorumClient:this.kmsQuorumClient,ephemeralKeypair:e,allowanceVoucherWithSig:t,lhsHandle:r,op:i,rhsPlaintext:a,ethClient:n,executorAddress:this.executorAddress,reencryptPubKey:c,reencryptKeypair:l,backoffConfig:f}:{chainId:Number(this.chainId),kmsQuorumClient:this.kmsQuorumClient,ephemeralKeypair:e,allowanceVoucherWithSig:t,lhsHandle:r,op:i,rhsPlaintext:a,ethClient:n,executorAddress:this.executorAddress,reencryptPubKey:c,backoffConfig:f})}const c=s,l=tr(),f=l.encodePublicKey();return hr({chainId:Number(this.chainId),kmsQuorumClient:this.kmsQuorumClient,ephemeralKeypair:e,allowanceVoucherWithSig:t,lhsHandle:r,op:i,rhsPlaintext:a,ethClient:n,executorAddress:this.executorAddress,reencryptPubKey:f,reencryptKeypair:l,backoffConfig:c})}attestedReveal(e,t){return sr({executorAddress:this.executorAddress,handles:e,backoffConfig:t,chainId:Number(this.chainId),kmsQuorumClient:this.kmsQuorumClient})}static getCovalidatorUrls(e,t){const{executorAddress:n,chainId:r,pepper:i}=e;return Array.from({length:t},(e,t)=>`https://${n.toLowerCase()}.${r}.${i}.inco.org`)}static isIdByName(e){return void 0!==e.name}static plaintextFromValue(e,t){if("boolean"==typeof e)return{scheme:1,type:pe.uU.ebool,value:e};if("bigint"==typeof e||"number"==typeof e)return{scheme:1,type:t??pe.uU.euint256,value:BigInt(e)};throw new Error("Unsupported type "+typeof e)}static async getEciesPublicKey(e,t){const n=await Zi.getIncoVerifierContract(e,t);return await n.read.eciesPubkey()}static async getIncoVerifierContract(e,t){const n=(0,s.PF)({abi:Me.G,address:t,client:e}),r=await n.read.incoVerifier(),i=(0,s.PF)({abi:Ie.K,address:r,client:e});return console.log("inco executor",n.address),console.log("inco verifier",i.address),i}static async getVerifierContractDetails(e,t){const n=await Zi.getIncoVerifierContract(t,e),r=await n.read.getThreshold(),i=await n.read.eciesPubkey(),a=await n.read.getSignersCount(),s=[];for(let e=BigInt(0);e1||1===t&&n>=1}static getDefaultThresholdAndSigners(){return{threshold:1,signers:[o.X],eciesPubKey:"0x02516bda9e68a1c3dce74dc1b6ed7d91a91d51c1e1933947f06331cef59631e9eb"}}}},99942(e,t,n){"use strict";var r=n(33213),i=n(72258).Buffer,a=n(81475),s=i.alloc(128),o=64;function u(e,t){a.call(this,"digest"),"string"==typeof t&&(t=i.from(t)),this._alg=e,this._key=t,t.length>o?t=e(t):t.length - * @license MIT - */ - -/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ - -/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ - -/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */ - -/*! safe-buffer. MIT License. Feross Aboukhadijeh */ - -/** - * @license React - * react-dom.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** - * @license React - * react-jsx-runtime.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** - * @license React - * react.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** - * @license React - * scheduler.production.js - * - * Copyright (c) Meta Platforms, Inc. and 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/backend/src/test/react-example/build/static/js/vendors.358533ae.js.map b/backend/src/test/react-example/build/static/js/vendors.358533ae.js.map deleted file mode 100644 index f4cea55..0000000 --- a/backend/src/test/react-example/build/static/js/vendors.358533ae.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/vendors.358533ae.js","mappings":"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A,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,UACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,YAGGC,EAAI,IAAI9S,MAAM,KAElB,SAAS+uK,IACRj4K,KAAKuW,OACLvW,KAAKkc,GAAKF,EAEVF,EAAK/b,KAAKC,KAAM,IAAK,IACtB,CA0BA,SAAS04F,EAAGhlF,EAAG0I,EAAGC,GACjB,OAAOA,EAAK3I,GAAK0I,EAAIC,EACtB,CAEA,SAASC,EAAI5I,EAAG0I,EAAGC,GAClB,OAAQ3I,EAAI0I,EAAMC,GAAK3I,EAAI0I,EAC5B,CAEA,SAASG,EAAO7I,EAAG+9D,GAClB,OAAS/9D,IAAM,GAAO+9D,GAAM,IAAQA,IAAO,EAAM/9D,GAAK,KAAS+9D,IAAO,EAAM/9D,GAAK,GAClF,CAEA,SAAS8I,EAAO9I,EAAG+9D,GAClB,OAAS/9D,IAAM,GAAO+9D,GAAM,KAAS/9D,IAAM,GAAO+9D,GAAM,KAASA,IAAO,EAAM/9D,GAAK,GACpF,CAEA,SAASwkK,EAAOxkK,E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L,EAC7D,CACF,MACE6yN,GACE7D,EACA/C,EACA6G,EACAC,GAEJ,MAiBF,KAAK,GACH,MACF,KAAK,GACHE,EAAyBhH,EAAap2B,UACtCx9K,EAAK4zM,EAAav/B,UAClB,OAASu/B,EAAan/B,cACmB,EAArCmmC,EAAuB5oB,YACrBwoB,GACE7D,EACA/C,EACA6G,EACAC,GAEFK,GAAwCpE,EAAc/C,GACnB,EAArCgH,EAAuB5oB,YACrBwoB,GACE7D,EACA/C,EACA6G,EACAC,IAEAE,EAAuB5oB,aAAe,EACxCgpB,GACErE,EACA/C,EACA6G,EACAC,KACmC,MAA5B9G,EAAajhB,gBAAyB,IAE7C,KAAR78L,GAAgBukN,GAAmCr6M,EAAI4zM,GACvD,MACF,KAAK,GACH4G,GACE7D,EACA/C,EACA6G,EACAC,GAEM,KAAR5kN,GACEykN,GAA8B3G,EAAav/B,UAAWu/B,GAU9D,CACA,SAASoH,GACPb,EACA/yL,EACA6zL,EACAC,EACAd,GAKA,IAHAA,EACEA,OACmC,MAA3BhzL,EAAYurK,gBAAyB,GAC1CvrK,EAAcA,EAAYL,MAAO,OAASK,GAAe,CAC5D,IAAIuvL,EAAewD,EACjBvG,EAAexsL,EACfqzL,EAAiBQ,EACjBP,EAAuBQ,EACvBplN,EAAQ89M,EAAa99M,MACvB,OAAQ89M,EAAa14L,KACnB,KAAK,EACL,KAAK,GACL,KAAK,GACH8/L,GACErE,EACA/C,EACA6G,EACAC,EACAN,GAEFzG,GAA0B,EAAGC,GAC7B,MACF,KAAK,GACH,MACF,KAAK,GACH,IAAInyI,EAAWmyI,EAAap2B,UAC5B,OAASo2B,EAAan/B,cACK,EAAvBhzG,EAASuwH,YACPgpB,GACErE,EACA/C,EACA6G,EACAC,EACAN,GAEFW,GACEpE,EACA/C,IAEFnyI,EAASuwH,aAAe,EAC1BgpB,GACErE,EACA/C,EACA6G,EACAC,EACAN,IAENA,GACU,KAARtkN,GACAukN,GACEzG,EAAav/B,UACbu/B,GAEJ,MACF,KAAK,GACHoH,GACErE,EACA/C,EACA6G,EACAC,EACAN,GAEFA,GACU,KAARtkN,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A,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINa,IAAK,CACHC,IAAK,EACLd,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sE,iPC1tBD,MA4EM0uN,EAAWjvM,KAAWA,EAwDtBltC,EAAWktC,GAA0B,iBAAVA,EAoB3BntC,EAAWmtC,GAA0B,iBAAVA,EAmB3BttC,EAAYstC,GAA0B,kBAAVA,EAkB5BkvM,EAAWlvM,GAA0B,iBAAVA,EAiB3BjtC,EAAWitC,GAA0B,iBAAVA,EAwB3BxsC,EAAa,KAkBbR,EAAcgtC,QAAmBhrC,IAAVgrC,EAuEvBmvM,EAAUnhP,IAAK,EAsBfohP,EAAkBpvM,GAA0B,iBAAVA,GAAgC,OAAVA,EAsBxD7sC,EAAW6sC,GAASovM,EAAgBpvM,IAAUxsC,EAAWwsC,GAuBzDqvM,GAA2B,QAAK,EAAG,CAACp4O,EAAM68D,IAAa3gE,EAAS8D,IAAS68D,KAAY78D,GA8BrFq4O,GAAwB,QAAK,EAAG,CAACr4O,EAAM8wB,IAAQsnN,EAAYp4O,EAAM,SAAWA,EAAW,OAAM8wB,GAoB7FwnN,EAAavvM,GAASA,QAqBtBwvM,EAAgBxvM,GAASA,QAqCzBgnI,EAAehnI,GAASA,aAAiB9oC,WAkBzC9D,EAAS4sC,GAASA,aAAiBb,KAqBnCswM,EAAazvM,GAA0B,iBAAVA,GAAsBqvM,EAAYrvM,EAAO5kC,OAAO0J,UAuB7E4qO,EAAW1vM,GAASovM,EAAgBpvM,KAAWvtC,MAAMF,QAAQytC,GA+D7D2vM,EAAgB3vM,GAASqvM,EAAYrvM,EAAO,SAAWxsC,EAAWwsC,EAAM91B,MAkBxEjX,EAAW+sC,GAASA,aAAiBiiG,M,4BCxqBlD,IAAI/6H,EAAS,EAAQ,OACjBxe,EAAW,EAAQ,OAEnBotG,EAAQ,CAAC,EAEb,SAAS85I,EAAS9uL,GAChB55C,EAAOI,MAAMw5C,EAAGl3D,OAAQ,EAAG,qBAE3BL,KAAKu3D,GAAK,IAAIruD,MAAM,GACpB,IAAK,IAAIpI,EAAI,EAAGA,EAAId,KAAKu3D,GAAGl3D,OAAQS,IAClCd,KAAKu3D,GAAGz2D,GAAKy2D,EAAGz2D,EACpB,CAsBAQ,EAAQ2gF,YApBR,SAAqB5iF,GACnB,SAAS2iF,EAAIp8E,GACXvG,EAAKU,KAAKC,KAAM4F,GAChB5F,KAAKsmP,UACP,CACAnnP,EAAS6iF,EAAK3iF,GAGd,IADA,IAAIwC,EAAOD,OAAOC,KAAK0qG,GACdzrG,EAAI,EAAGA,EAAIe,EAAKxB,OAAQS,IAAK,CACpC,IAAIhB,EAAM+B,EAAKf,GACfkhF,EAAIhhF,UAAUlB,GAAOysG,EAAMzsG,EAC7B,CAMA,OAJAkiF,EAAI90E,OAAS,SAAgBtH,GAC3B,OAAO,IAAIo8E,EAAIp8E,EACjB,EAEOo8E,CACT,EAIAuqB,EAAM+5I,SAAW,WACf,IAAIz6O,EAAQ,IAAIw6O,EAASrmP,KAAK4F,QAAQ2xD,IACtCv3D,KAAKumP,UAAY16O,CACnB,EAEA0gG,EAAMtrG,QAAU,SAAiBqd,EAAKC,EAAO5M,EAAK6M,GAChD,IAAI3S,EAAQ7L,KAAKumP,UACb/5I,EAAaxsG,KAAKkU,YAAYyzE,OAAO3mF,UAErCu2D,EAAK1rD,EAAM0rD,GACf,GAAkB,YAAdv3D,KAAKuD,KAAoB,CAC3B,IAAK,IAAIzC,EAAI,EAAGA,EAAId,KAAKuK,UAAWzJ,IAClCy2D,EAAGz2D,IAAMwd,EAAIC,EAAQzd,GAIvB,IAFA0rG,EAAWvrG,QAAQlB,KAAKC,KAAMu3D,EAAI,EAAG5lD,EAAK6M,GAEjC1d,EAAI,EAAGA,EAAId,KAAKuK,UAAWzJ,IAClCy2D,EAAGz2D,GAAK6Q,EAAI6M,EAAS1d,EACzB,KAAO,CAGL,IAFA0rG,EAAWvrG,QAAQlB,KAAKC,KAAMse,EAAKC,EAAO5M,EAAK6M,GAEtC1d,EAAI,EAAGA,EAAId,KAAKuK,UAAWzJ,IAClC6Q,EAAI6M,EAAS1d,IAAMy2D,EAAGz2D,GAExB,IAASA,EAAI,EAAGA,EAAId,KAAKuK,UAAWzJ,IAClCy2D,EAAGz2D,GAAKwd,EAAIC,EAAQzd,EACxB,CACF,C,8GC9DO,MAAM0lP,UAA2B,IACpC,WAAAtyO,EAAY,OAAEgoE,IACVznE,MAAM,oBAAmB,EAAAhM,EAAA,GAAUyzE,OAAa,CAC5CxnE,aAAc,CAAC,oCAEvB,EAEG,MAAM+xO,UAAgC,IACzC,WAAAvyO,EAAY,YAAEioE,EAAW,MAAEttB,IACvBp6C,MAAM,0BAA0B0nE,wBAAkCvzE,KAAKH,UAAU7G,OAAOC,KAAKgtD,SAAc,CACvGvpD,SAAU,wDACVoP,aAAc,CAAC,qDAEvB,EAEG,MAAMgyO,UAA+B,IACxC,WAAAxyO,EAAY,KAAE3Q,IACVkR,MAAM,gBAAgBlR,iBAAqB,CACvCmR,aAAc,CAAC,4CACfzQ,KAAM,0BAEd,E,8CCdG,SAAS0iP,EAAmB5nO,GAC/B,MAAQm9D,OAAQ0qK,EAASryO,QAASgsH,EAAQ,YAAEpkD,EAAW,MAAEttB,GAAW9vC,EAC9D8nO,EAAgB,CAACt+N,EAAQ2+F,KAC3B,MAAMhmH,EAAO,IAAKgmH,GAClB,IAAK,MAAMlkH,KAASulB,EAAQ,CACxB,MAAM,KAAEtkB,EAAI,KAAEV,GAASP,EACV,YAATO,IACArC,EAAK+C,GAAQ/C,EAAK+C,GAAM1C,cAChC,CACA,OAAOL,GAELg7E,EACGrtB,EAAMutB,cAENwqK,EAEEC,EAAch4L,EAAMutB,aAAcwqK,GAH9B,CAAC,EAKVryO,EAAU,MACZ,GAAoB,iBAAhB4nE,EAEJ,OAAO0qK,EAAch4L,EAAMstB,GAAcokD,EAC5C,EAJe,GAKhB,OAAO,EAAA93H,EAAA,GAAU,CAAEyzE,SAAQ3nE,UAAS4nE,cAAattB,SACrD,CACO,SAASi4L,EAAkB/nO,GAC9B,MAAM,OAAEm9D,EAAM,QAAE3nE,EAAO,YAAE4nE,EAAW,MAAEttB,GAAU9vC,EAC1CgoO,EAAe,CAACx+N,EAAQrnB,KAC1B,IAAK,MAAM8B,KAASulB,EAAQ,CACxB,MAAM,KAAEtkB,EAAI,KAAEV,GAASP,EACjBjB,EAAQb,EAAK+C,GACb+iP,EAAezjP,EAAK8rB,MAAM,MAChC,GAAI23N,IACkB,iBAAVjlP,GAAuC,iBAAVA,GAAqB,CAC1D,MAAOmxG,EAAOhkC,EAAMU,GAASo3K,GAG7B,QAAYjlP,EAAO,CACfgD,OAAiB,QAATmqE,EACR9sE,KAAMwC,OAAOC,SAAS+qE,EAAO,IAAM,GAE3C,CACA,GAAa,YAATrsE,GAAuC,iBAAVxB,KAAuB,EAAA2D,EAAA,GAAU3D,GAC9D,MAAM,IAAI,IAAoB,CAAE4D,QAAS5D,IAC7C,MAAMqxG,EAAa7vG,EAAK8rB,MAAM,MAC9B,GAAI+jF,EAAY,CACZ,MAAOF,EAAOtjC,GAASwjC,EACvB,GAAIxjC,IAAS,EAAAxtE,EAAA,GAAKL,KAAW6C,OAAOC,SAAS+qE,EAAO,IAChD,MAAM,IAAI,KAAuB,CAC7Bw1B,aAAcxgG,OAAOC,SAAS+qE,EAAO,IACrCC,WAAW,EAAAztE,EAAA,GAAKL,IAE5B,CACA,MAAMwmB,EAASsmC,EAAMtrD,GACjBglB,IACA0+N,EAAkB1jP,GAClBwjP,EAAax+N,EAAQxmB,GAE7B,GAGJ,GAAI8sD,EAAMutB,cAAgBF,EAAQ,CAC9B,GAAsB,iBAAXA,EACP,MAAM,IAAIsqK,EAAmB,CAAEtqK,WACnC6qK,EAAal4L,EAAMutB,aAAcF,EACrC,CAEA,GAAoB,iBAAhBC,EAAgC,CAChC,IAAIttB,EAAMstB,GAGN,MAAM,IAAIsqK,EAAwB,CAAEtqK,cAAattB,UAFjDk4L,EAAal4L,EAAMstB,GAAc5nE,EAGzC,CACJ,CACO,SAAS2yO,GAAwB,OAAEhrK,IACtC,MAAO,CACqB,iBAAjBA,GAAQj4E,MAAqB,CAAEA,KAAM,OAAQV,KAAM,UAC1D24E,GAAQrvE,SAAW,CAAE5I,KAAM,UAAWV,KAAM,WAChB,iBAApB24E,GAAQl8D,SACe,iBAApBk8D,GAAQl8D,UAAyB,CACxC/b,KAAM,UACNV,KAAM,WAEV24E,GAAQ84E,mBAAqB,CACzB/wJ,KAAM,oBACNV,KAAM,WAEV24E,GAAQ8gD,MAAQ,CAAE/4H,KAAM,OAAQV,KAAM,YACxCk6C,OAAOh7C,QACb,CAUA,SAASwkP,EAAkB1jP,GAEvB,GAAa,YAATA,GACS,SAATA,GACS,WAATA,GACAA,EAAKiB,WAAW,UAChBjB,EAAKiB,WAAW,SAChBjB,EAAKiB,WAAW,OAChB,MAAM,IAAIkiP,EAAuB,CAAEnjP,QAC3C,C,4BCnHA,IAAI4jP,EAAkB,EAAQ,OAC1BC,EAAmB,EAAQ,OAE3BC,EAAiB,EAAQ,OAG7BhmP,EAAOC,QAAU6lP,EACd,SAAkBh/N,GAEnB,OAAOg/N,EAAgBh/N,EACxB,EACEi/N,EACC,SAAkBj/N,GACnB,IAAKA,GAAmB,iBAANA,GAA+B,mBAANA,EAC1C,MAAM,IAAI5V,UAAU,2BAGrB,OAAO60O,EAAiBj/N,EACzB,EACEk/N,EACC,SAAkBl/N,GAEnB,OAAOk/N,EAAel/N,EACvB,EACE,I,4BCxBL,IAAIxK,EAAS,EAAQ,OACjBxe,EAAW,EAAQ,OAEnBwyB,EAAQ,EAAQ,OAChB/T,EAAS,EAAQ,OAErB,SAAS0pO,IACPtnP,KAAKgqE,IAAM,IAAI9gE,MAAM,GACrBlJ,KAAK6B,KAAO,IACd,CAEA,SAASgc,EAAIjY,GACXgY,EAAO7d,KAAKC,KAAM4F,GAElB,IAAIiG,EAAQ,IAAIy7O,EAChBtnP,KAAKunP,UAAY17O,EAEjB7L,KAAKwnP,WAAW37O,EAAOjG,EAAQ9F,IACjC,CACAX,EAAS0e,EAAKD,GACdvc,EAAOC,QAAUuc,EAEjBA,EAAI3Q,OAAS,SAAgBtH,GAC3B,OAAO,IAAIiY,EAAIjY,EACjB,EAEA,IAAI6hP,EAAa,CACf,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGvB5pO,EAAI7c,UAAUwmP,WAAa,SAAoB37O,EAAO/L,GACpD+L,EAAMhK,KAAO,IAAIqH,MAAM,IAEvByU,EAAOI,MAAMje,EAAIO,OAAQL,KAAKuK,UAAW,sBAEzC,IAAIm9O,EAAK/1N,EAAMg+J,aAAa7vL,EAAK,GAC7B6nP,EAAKh2N,EAAMg+J,aAAa7vL,EAAK,GAEjC6xB,EAAMsvN,IAAIyG,EAAIC,EAAI97O,EAAMm+D,IAAK,GAC7B09K,EAAK77O,EAAMm+D,IAAI,GACf29K,EAAK97O,EAAMm+D,IAAI,GACf,IAAK,IAAIlpE,EAAI,EAAGA,EAAI+K,EAAMhK,KAAKxB,OAAQS,GAAK,EAAG,CAC7C,IAAIuZ,EAAQotO,EAAW3mP,IAAM,GAC7B4mP,EAAK/1N,EAAMuvN,OAAOwG,EAAIrtO,GACtBstO,EAAKh2N,EAAMuvN,OAAOyG,EAAIttO,GACtBsX,EAAMyvN,IAAIsG,EAAIC,EAAI97O,EAAMhK,KAAMf,EAChC,CACF,EAEA+c,EAAI7c,UAAUC,QAAU,SAAiBqd,EAAKC,EAAO5M,EAAK6M,GACxD,IAAI3S,EAAQ7L,KAAKunP,UAEbv2O,EAAI2gB,EAAMg+J,aAAarxK,EAAKC,GAC5BkW,EAAI9C,EAAMg+J,aAAarxK,EAAKC,EAAQ,GAGxCoT,EAAMgvN,GAAG3vO,EAAGyjB,EAAG5oB,EAAMm+D,IAAK,GAC1Bh5D,EAAInF,EAAMm+D,IAAI,GACdv1C,EAAI5oB,EAAMm+D,IAAI,GAEI,YAAdhqE,KAAKuD,KACPvD,KAAK4nP,SAAS/7O,EAAOmF,EAAGyjB,EAAG5oB,EAAMm+D,IAAK,GAEtChqE,KAAKy5D,SAAS5tD,EAAOmF,EAAGyjB,EAAG5oB,EAAMm+D,IAAK,GAExCh5D,EAAInF,EAAMm+D,IAAI,GACdv1C,EAAI5oB,EAAMm+D,IAAI,GAEdr4C,EAAM1C,cAActd,EAAKX,EAAGwN,GAC5BmT,EAAM1C,cAActd,EAAK8iB,EAAGjW,EAAS,EACvC,EAEAX,EAAI7c,UAAUyd,KAAO,SAAcxN,EAAQwJ,GACzC,IAAqB,IAAjBza,KAAK8G,QACP,OAAO,EAIT,IADA,IAAI/E,EAAQkP,EAAO5Q,OAASoa,EACnB3Z,EAAI2Z,EAAK3Z,EAAImQ,EAAO5Q,OAAQS,IACnCmQ,EAAOnQ,GAAKiB,EAEd,OAAO,CACT,EAEA8b,EAAI7c,UAAU0d,OAAS,SAAgBzN,GACrC,IAAqB,IAAjBjR,KAAK8G,QACP,OAAOmK,EAIT,IADA,IAAI++D,EAAM/+D,EAAOA,EAAO5Q,OAAS,GACxBS,EAAImQ,EAAO5Q,OAAS2vE,EAAKlvE,EAAImQ,EAAO5Q,OAAQS,IACnD6c,EAAOI,MAAM9M,EAAOnQ,GAAIkvE,GAE1B,OAAO/+D,EAAO5M,MAAM,EAAG4M,EAAO5Q,OAAS2vE,EACzC,EAEAnyD,EAAI7c,UAAU4mP,SAAW,SAAkB/7O,EAAOg8O,EAAQC,EAAQn2O,EAAK8I,GAKrE,IAJA,IAAIzJ,EAAI62O,EACJpzN,EAAIqzN,EAGChnP,EAAI,EAAGA,EAAI+K,EAAMhK,KAAKxB,OAAQS,GAAK,EAAG,CAC7C,IAAIinP,EAAOl8O,EAAMhK,KAAKf,GAClBknP,EAAOn8O,EAAMhK,KAAKf,EAAI,GAG1B6wB,EAAMo7G,OAAOt4G,EAAG5oB,EAAMm+D,IAAK,GAE3B+9K,GAAQl8O,EAAMm+D,IAAI,GAClBg+K,GAAQn8O,EAAMm+D,IAAI,GAClB,IAAIz5C,EAAIoB,EAAM2vN,WAAWyG,EAAMC,GAG3B94N,EAAIuF,EACRA,GAAKzjB,EAHG2gB,EAAMs/D,QAAQ1gE,MAGN,EAChBvf,EAAIke,CACN,CAGAyC,EAAMqvN,IAAIvsN,EAAGzjB,EAAGW,EAAK8I,EACvB,EAEAoD,EAAI7c,UAAUy4D,SAAW,SAAkB5tD,EAAOg8O,EAAQC,EAAQn2O,EAAK8I,GAKrE,IAJA,IAAIzJ,EAAI82O,EACJrzN,EAAIozN,EAGC/mP,EAAI+K,EAAMhK,KAAKxB,OAAS,EAAGS,GAAK,EAAGA,GAAK,EAAG,CAClD,IAAIinP,EAAOl8O,EAAMhK,KAAKf,GAClBknP,EAAOn8O,EAAMhK,KAAKf,EAAI,GAG1B6wB,EAAMo7G,OAAO/7H,EAAGnF,EAAMm+D,IAAK,GAE3B+9K,GAAQl8O,EAAMm+D,IAAI,GAClBg+K,GAAQn8O,EAAMm+D,IAAI,GAClB,IAAIz5C,EAAIoB,EAAM2vN,WAAWyG,EAAMC,GAG3B94N,EAAIle,EACRA,GAAKyjB,EAHG9C,EAAMs/D,QAAQ1gE,MAGN,EAChBkE,EAAIvF,CACN,CAGAyC,EAAMqvN,IAAIhwO,EAAGyjB,EAAG9iB,EAAK8I,EACvB,C,2DCpJO,MAAMy0I,UAA4B,IACrC,WAAAh7I,EAAY,QAAEvO,IACV8O,MAAM,YAAY9O,iBAAwB,CACtC+O,aAAc,CACV,iEACA,kDAEJzQ,KAAM,uBAEd,E,4DCTG,SAAS6oK,GAAmB,MAAE5tJ,EAAK,eAAEe,IACxC,IAAKf,EACD,MAAM,IAAI,KACd,GAAIe,IAAmBf,EAAMoE,GACzB,MAAM,IAAI,KAAmB,CAAEpE,QAAOe,kBAC9C,C,4BCNO,SAAS43D,EAAM91E,GAAO,OAAE8D,GAAS,GAAS,CAAC,GAC9C,QAAK9D,GAEgB,iBAAVA,IAEJ8D,EAAS,mBAAmBK,KAAKnE,GAASA,EAAMyC,WAAW,MACtE,C,kOC+BO,MAAMk7B,EAAsB7tB,OAAOwP,IAAI,eAOjC2E,EAAUtY,GAAQ,KAAiBA,GAM1CsnE,EADwBC,IAAgB,KAAqB,KAAmBA,GAAejvD,GACnEmvD,CAAe,MAC3C8yK,EAAY,CAChB,CAACvoN,GAASA,EACVvd,KAAM,OACN,QAAA5Z,GACE,OAAO,QAAOvI,KAAKi4B,SACrB,EACA,MAAAA,GACE,MAAO,CACLyL,IAAK,OACLvhB,KAAM,OACNpf,OAAQijB,EAAQhmB,MAAM0B,IAAI,MAE9B,EACA,CAAC,QACC,OAAO1B,KAAKi4B,QACd,EACA,CAAC,MAAczgB,GACb,OAAO0wO,EAAO1wO,IAASxX,KAAKmiB,OAAS3K,EAAK2K,MAAQ6yD,EAAah1E,KAAMwX,EACvE,EACA,CAAC,QACC,OAAO,KAAYxX,KAAM,KAAWgmB,EAAQhmB,OAC9C,EACA,CAAC6R,OAAO0J,YACN,IAAIyzB,GAAO,EAEPthC,EAAO1N,KACX,MAAO,CACL,IAAA+L,GACE,GAAIijC,EACF,OAAOhvC,KAAK43L,SAEd,GAAkB,QAAdlqL,EAAKyU,KAEP,OADA6sB,GAAO,EACAhvC,KAAK43L,SAEd,MAAM71L,EAAQ2L,EAAKyd,KAEnB,OADAzd,EAAOA,EAAK0d,KACL,CACL4jB,OACAjtC,QAEJ,EACA61L,OAAO71L,IACAitC,IACHA,GAAO,GAEF,CACLA,MAAM,EACNjtC,UAIR,EACA,IAAAkQ,GACE,OAAO,QAAcjS,KAAM4W,UAC7B,GAEIuxO,EAAW,CAACh9N,EAAMC,KACtB,MAAMg9N,EAAOxmP,OAAOsL,OAAO+6O,GAG3B,OAFAG,EAAKj9N,KAAOA,EACZi9N,EAAKh9N,KAAOA,EACLg9N,GAEHC,EAAuB,KAAY,OACnCC,EAAW,CACf,CAAC5oN,GAASA,EACVvd,KAAM,MACN,QAAA5Z,GACE,OAAO,QAAOvI,KAAKi4B,SACrB,EACAA,OAAM,KACG,CACLyL,IAAK,OACLvhB,KAAM,QAGV,CAAC,QACC,OAAOniB,KAAKi4B,QACd,EACA,CAAC,MAAY,IACJowN,EAET,CAAC,MAAc7wO,GACb,OAAO0wO,EAAO1wO,IAASxX,KAAKmiB,OAAS3K,EAAK2K,IAC5C,EACA,CAACtQ,OAAO0J,UAAS,KACR,CACLxP,KAAI,KACK,CACLijC,MAAM,EACNjtC,WAAO0J,MAKf,IAAAwG,GACE,OAAO,QAAcjS,KAAM4W,UAC7B,GAEI2xO,EAAoB3mP,OAAOsL,OAAOo7O,GAO3BJ,EAASrzN,IAAK,QAAYA,EAAG6K,GAO7B8oN,EAAQ96O,GAAsB,QAAdA,EAAKyU,KAOrBsmO,EAAS/6O,GAAsB,SAAdA,EAAKyU,KA6BtBimO,EAAO,CAACj9N,EAAMC,IAAS+8N,EAASh9N,EAAMC,GAStCvB,EAhBM,IAAM0+N,EAuBZ1pL,EAAK98D,GAASomP,EAASpmP,EAAOwmP,GAuD9BxyK,GAAyB,QAAK,EAAG,CAACroE,EAAM8J,IAASkxO,EAAWlxO,EAAM9J,IAOlEgK,GAAuB,QAAK,EAAG,CAAChK,EAAMmiD,IAAYu4L,EAAKv4L,EAASniD,IAmBhEg7O,GAA0B,QAAK,EAAG,CAACh7O,EAAMwqH,KACpD,GAAIswH,EAAM96O,GACR,OAAOwqH,EACF,GAAIswH,EAAMtwH,GACf,OAAOxqH,EACF,CACL,MAAMzH,EAASkiP,EAASjwH,EAAO/sG,KAAMzd,GACrC,IAAIi7O,EAAO1iP,EACPuR,EAAO0gH,EAAO9sG,KAClB,MAAQo9N,EAAMhxO,IAAO,CACnB,MAAMs8C,EAAOq0L,EAAS3wO,EAAK2T,KAAMzd,GACjCi7O,EAAKv9N,KAAO0oC,EACZ60L,EAAO70L,EACPt8C,EAAOA,EAAK4T,IACd,CACA,OAAOnlB,CACT,IA4TWi/C,GAAsB,QAAK,EAAG,CAACx3C,EAAM8oB,EAAMnZ,KACtD,IAAIosD,EAAMjzC,EACNoyN,EAAQl7O,EACZ,MAAQ86O,EAAMI,IACZn/K,EAAMpsD,EAAEosD,EAAKm/K,EAAMz9N,MACnBy9N,EAAQA,EAAMx9N,KAEhB,OAAOq+C,IAwBI5iE,EAAU6G,IACrB,IAAIzH,EAAS4jB,IACT++N,EAAQl7O,EACZ,MAAQ86O,EAAMI,IACZ3iP,EAASyR,EAAQzR,EAAQ2iP,EAAMz9N,MAC/By9N,EAAQA,EAAMx9N,KAEhB,OAAOnlB,E,wMC7oBa,KAAf,MAQM0kB,EAAQ,KAeRJ,EAAO,KA+BPm0I,EAAa,KACpB3f,EAAOt9G,IACX,IAAI,QAAWA,GACb,IACE,OAAO9W,EAAM8W,IACf,CAAE,MAAOz3B,GACP,OAAOugB,EAAKvgB,EACd,MAEA,IACE,OAAO2gB,EAAM8W,EAASu9G,MACxB,CAAE,MAAOh1I,GACP,OAAOugB,EAAKkX,EAAS1hB,MAAM/V,GAC7B,GA4BSggD,EAAW,KAgBXs0G,EAAS,KAgBTF,EAAU,KA6CVyqF,GA7BW,KAgBD,MAaa,QAAK,EAAG,CAACn7O,GAC3Cu8C,SACAC,aACIo0G,EAAO5wJ,GAAQ6c,EAAK0/B,EAAOv8C,EAAK6c,OAASI,EAAMu/B,EAAQx8C,EAAKid,UAOrDm+N,GAAuB,QAAK,EAAG,CAACp7O,EAAM2P,IAAMihJ,EAAO5wJ,GAAQ6c,EAAKlN,EAAE3P,EAAK6c,OAASI,EAAMjd,EAAKid,QAO3FjpB,GAAmB,QAAK,EAAG,CAACgM,EAAM2P,IAAM+gJ,EAAQ1wJ,GAAQid,EAAMtN,EAAE3P,EAAKid,QAAUJ,EAAK7c,EAAK6c,OAwBzF8E,GAAqB,QAAK,EAAG,CAAC3hB,GACzCu8C,SACAC,aACIo0G,EAAO5wJ,GAAQu8C,EAAOv8C,EAAK6c,MAAQ2/B,EAAQx8C,EAAKid,QA8DzCsd,EAAqB5Y,EAAM,CACtC46B,OAAQ,KACRC,QAAS,OAkEEg0D,GAA8B,QAAK,EAAG,CAACxwG,EAAMu8C,KACxD,GAAIm0G,EAAQ1wJ,GACV,OAAOA,EAAKid,MAEd,MAAMs/B,EAAOv8C,EAAK6c,QAsBP4zF,EAA0BD,EAAe,IAAM,IAAI92G,MAAM,+B,mGCvX/D,MAAMyiB,EAAQ,KAYRkzI,GAPO,KAOE,MAOTE,EAAU,KAuEVzsD,GAhEU,KAQC,KAQC,KAQC,KAQF,KAQD,KAQH,KAQE,KAQC,MAQA,KAQG,KAQC,KAOL,I,wGCpGf5xF,eAAe01I,EAAoBx1I,EAAQC,GAC9C,MAAM,IAAEimD,EAAG,QAAEr/D,EAAO,KAAEyO,EAAI,aAAE8wD,EAAY,WAAED,KAAe3kD,GAAYvB,EAC/D7d,GAAO,OAAmB,CAC5B8jE,MACA5wD,OACA8wD,iBAEJ,IAMI,aALkB,OAAUpmD,EAAQ,IAAa,cAA/B,CAA8C,CAC5D5d,KAAM,GAAGA,IAAO+jE,EAAaA,EAAWr1C,QAAQ,KAAM,IAAM,KAC5D/P,GAAIla,KACD2a,GAGX,CACA,MAAOrV,GACH,MAAM+T,EAAUsB,EAAQtB,SAAU,OAAasB,EAAQtB,cAAWvT,EAClE,MAAM,OAAiBR,EAAO,CAC1B+5D,MACAr/D,UACAyO,OACA9O,SAAU,qCACV4/D,eACA5B,OAAQtkD,GAASrZ,SAEzB,CACJ,C,0JCvDO,SAASojP,EAAY30O,GACxB,MAAMq8B,EAAU7uC,OAAO6uC,QAAQr8B,GAC1B1S,IAAI,EAAE5B,EAAKiC,UACE0J,IAAV1J,IAAiC,IAAVA,EAChB,KACJ,CAACjC,EAAKiC,IAEZ07C,OAAOh7C,SACNumP,EAAYv4M,EAAQyU,OAAO,CAACukB,GAAM3pE,KAASkI,KAAK6gB,IAAI4gD,EAAK3pE,EAAIO,QAAS,GAC5E,OAAOowC,EACF/uC,IAAI,EAAE5B,EAAKiC,KAAW,KAAK,GAAGjC,KAAOi+F,OAAOirJ,EAAY,OAAOjnP,KAC/D4S,KAAK,KACd,CACsC,IAQ/B,MAAMs0O,UAA4B,IACrC,WAAA/0O,EAAY,EAAE4gB,IACVrgB,MAAM,wBAAwBqgB,yBAA0B,CACpD7wB,KAAM,uBAEd,EAEG,MAAMilP,UAA4C,IACrD,WAAAh1O,EAAY,YAAE+M,IACVxM,MAAM,6DAA8D,CAChEC,aAAc,CACV,wBACA,IACAq0O,EAAY9nO,GACZ,IACA,GACA,qCACA,oCACA,oDACA,+DACA,gFACA,yDACA,0CAEJhd,KAAM,uCAEd,EAEuD,IAcJ,IA4BhD,MAAMklP,UAAmC,IAC5C,WAAAj1O,EAAY,WAAEk9F,IACV38F,MAAM,yBAAyB28F,yCAAkDppG,KAAKuG,OAAO6iG,EAAW/wG,OAAS,GAAK,YAAa,CAAE4D,KAAM,8BAC/I,EAEG,MAAMmlP,UAAkC,IAC3C,WAAAl1O,CAAYI,GAAO,QAAE0K,EAAO,SAAE1Z,EAAQ,MAAE4Z,EAAK,KAAEhe,EAAI,IAAEoe,EAAG,SAAEC,EAAQ,aAAEE,EAAY,qBAAEC,EAAoB,MAAEC,EAAK,GAAEE,EAAE,MAAE9d,IAC/G,MAAMsnP,EAAaN,EAAY,CAC3B7pO,MAAOA,GAAS,GAAGA,GAAOjb,aAAaib,GAAOoE,MAC9CrjB,KAAM+e,GAASrZ,QACfka,KACA9d,WAAwB,IAAVA,GACV,IAAG,OAAYA,MAAUmd,GAAOqE,gBAAgBE,QAAU,QAC9DviB,OACAoe,MACAC,cAA8B,IAAbA,GAA4B,IAAG,OAAWA,UAC3DE,kBAAsC,IAAjBA,GACjB,IAAG,OAAWA,UAClBC,0BAAsD,IAAzBA,GACzB,IAAG,OAAWA,UAClBC,UAEJlL,MAAMH,EAAMH,aAAc,CACtBG,QACAhP,WACAoP,aAAc,IACNJ,EAAMI,aAAe,IAAIJ,EAAMI,aAAc,KAAO,GACxD,qBACA20O,GACF5rM,OAAOh7C,SACTwB,KAAM,8BAEVrC,OAAOgQ,eAAe5R,KAAM,QAAS,CACjCgT,YAAY,EACZ4B,cAAc,EACdtE,UAAU,EACVvO,WAAO,IAEX/B,KAAKsU,MAAQA,CACjB,EAEG,MAAMg1O,UAAiC,IAC1C,WAAAp1O,EAAY,UAAEgvD,EAAS,YAAEC,EAAW,SAAEC,EAAQ,KAAExiD,EAAI,MAAEtG,IAClD,IAAI4oB,EAAa,cACbkgC,QAAsB33D,IAAV6O,IACZ4oB,EAAa,8BAA8BkgC,gBAAuB9oD,MAClE4oD,QAAuBz3D,IAAV6O,IACb4oB,EAAa,8BAA8BggC,gBAAwB5oD,MACnE6oD,QAAyB13D,IAAV6O,IACf4oB,EAAa,gCAAgCigC,gBAA0B7oD,MACvEsG,IACAsiB,EAAa,0BAA0BtiB,MAC3CnM,MAAM,GAAGyuB,wBAAkC,CACvCj/B,KAAM,4BAEd,EAEG,MAAMslP,UAAwC,IACjD,WAAAr1O,EAAY,KAAE0M,IACVnM,MAAM,kCAAkCmM,8EAAkF,CACtH3c,KAAM,mCAEd,EAEG,MAAMulP,UAAwC,IACjD,WAAAt1O,EAAY,QAAEm+C,IACV59C,MAAM,0BAA0B49C,EAAQklH,6BAA8B,CAClE7iK,aAAc,CACV,6IACA,IACA,mDACA,+GACA,6CAEJzQ,KAAM,oCAEVrC,OAAOgQ,eAAe5R,KAAM,UAAW,CACnCgT,YAAY,EACZ4B,cAAc,EACdtE,UAAU,EACVvO,WAAO,IAEX/B,KAAKqyD,QAAUA,CACnB,EAEG,MAAMo3L,UAA8C,IACvD,WAAAv1O,EAAY,KAAE0M,IACVnM,MAAM,sDAAsDmM,sBAA0B,CAAE3c,KAAM,yCAClG,E,4DC/KG,SAAS7B,EAAKL,GACjB,OAAI,OAAMA,EAAO,CAAE8D,QAAQ,IAChBmC,KAAKu1B,MAAMx7B,EAAM1B,OAAS,GAAK,GACnC0B,EAAM1B,MACjB,C,4BCTA,IAAIwT,EAAO,EAAQ,OACfP,EAAa,EAAQ,MAErBgY,EAAQ,EAAQ,OAChBo+N,EAAe,EAAQ,MAG3BroP,EAAOC,QAAU,SAAuB8S,GACvC,GAAIA,EAAK/T,OAAS,GAAwB,mBAAZ+T,EAAK,GAClC,MAAM,IAAId,EAAW,0BAEtB,OAAOo2O,EAAa71O,EAAMyX,EAAOlX,EAClC,C,eCdA,IAAI+J,EAAU,EAAQ,OAClBwrO,EAAY,EAAQ,OACpB5nK,EAAQ,EAAQ,OAMpBzgF,EAAQsqE,aAAetqE,EAAQsc,OAASO,EAAQytD,aAChDtqE,EAAQu2D,eAAiBv2D,EAAQuqE,SAAW1tD,EAAQ05C,eACpDv2D,EAAQyqE,eAAiBzqE,EAAQwqE,SAAW69K,EAAU59K,eACtDzqE,EAAQq3D,iBAAmBr3D,EAAQ0qE,WAAa29K,EAAUhxL,iBAC1Dr3D,EAAQ4qE,YAAc5qE,EAAQ2qE,WAR9B,WACE,OAAOrqE,OAAOC,KAAKkgF,EACrB,C,qDCHO,MAAM6nK,EAAmB,CAC5B,CACIrmP,KAAM,cACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,OAAQw5J,aAAc,UAAWl6J,KAAM,WAC/C,CACIU,KAAM,gBACNw5J,aAAc,yBACdl6J,KAAM,YAGdkiE,gBAAiB,cAErB,CAAEliE,KAAM,WAAYkiE,gBAAiB,cACrC,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,4BACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,SAAUl6J,KAAM,WACpDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CAAEU,KAAM,UAAWw5J,aAAc,UAAWl6J,KAAM,YAEtDU,KAAM,QACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CAAEU,KAAM,UAAWw5J,aAAc,UAAWl6J,KAAM,YAEtDU,KAAM,iBACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CAAEU,KAAM,UAAWw5J,aAAc,UAAWl6J,KAAM,YAEtDU,KAAM,mBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,OAAQl6J,KAAM,SAClDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,QAASw5J,aAAc,UAAWl6J,KAAM,YACzDU,KAAM,aACNyhE,QAAS,CACL,CAAEzhE,KAAM,cAAew5J,aAAc,WAAYl6J,KAAM,YAE3DkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,QAASw5J,aAAc,OAAQl6J,KAAM,SACtDU,KAAM,UACNyhE,QAAS,CAAC,CAAEzhE,KAAM,WAAYw5J,aAAc,QAASl6J,KAAM,YAC3DkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,QAASw5J,aAAc,UAAWl6J,KAAM,YACzDU,KAAM,aACNyhE,QAAS,CACL,CAAEzhE,KAAM,cAAew5J,aAAc,WAAYl6J,KAAM,YAE3DkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CACIU,KAAM,QACNw5J,aAAc,wBACdl6J,KAAM,QACNQ,WAAY,CACR,CAAEE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CACIU,KAAM,UACNw5J,aAAc,0BACdl6J,KAAM,QACNQ,WAAY,CACR,CACIE,KAAM,eACNw5J,aAAc,UACdl6J,KAAM,WAEV,CACIU,KAAM,oBACNw5J,aAAc,UACdl6J,KAAM,WAEV,CAAEU,KAAM,eAAgBw5J,aAAc,SAAUl6J,KAAM,UACtD,CAAEU,KAAM,gBAAiBw5J,aAAc,QAASl6J,KAAM,WAG9D,CAAEU,KAAM,mBAAoBw5J,aAAc,QAASl6J,KAAM,SACzD,CAAEU,KAAM,mBAAoBw5J,aAAc,QAASl6J,KAAM,YAIrEU,KAAM,cACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,wBACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,WAC/C,CAAEU,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,YAEnDU,KAAM,OACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,WAAYl6J,KAAM,YAC5DkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,UAAWl6J,KAAM,WAC9C,CAAEU,KAAM,MAAOw5J,aAAc,UAAWl6J,KAAM,YAElDU,KAAM,UACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,YAC3DkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,UAAWl6J,KAAM,WAC9C,CAAEU,KAAM,MAAOw5J,aAAc,UAAWl6J,KAAM,YAElDU,KAAM,SACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,YAC3DkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,UAAWl6J,KAAM,WAC9C,CAAEU,KAAM,MAAOw5J,aAAc,UAAWl6J,KAAM,YAElDU,KAAM,UACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,YAC3DkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,KAAMw5J,aAAc,UAAWl6J,KAAM,WAC7C,CAAEU,KAAM,SAAUw5J,aAAc,cAAel6J,KAAM,UAEzDU,KAAM,QACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,YAC3DkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,WAC/C,CAAEU,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,YAEnDU,KAAM,OACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,WAAYl6J,KAAM,YAC5DkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,UAAWl6J,KAAM,WAC9C,CAAEU,KAAM,MAAOw5J,aAAc,UAAWl6J,KAAM,YAElDU,KAAM,MACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,QAASl6J,KAAM,YACzDkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,WAC/C,CAAEU,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,YAEnDU,KAAM,MACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,QAASl6J,KAAM,YACzDkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,WAC/C,CAAEU,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,YAEnDU,KAAM,MACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,QAASl6J,KAAM,YACzDkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,UAAWw5J,aAAc,QAASl6J,KAAM,WAChD,CAAEU,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CAAEU,KAAM,UAAWw5J,aAAc,UAAWl6J,KAAM,YAEtDU,KAAM,cACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,YAC3DkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,WAC/C,CAAEU,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,YAEnDU,KAAM,MACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,QAASl6J,KAAM,YACzDkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,WAC/C,CAAEU,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,YAEnDU,KAAM,MACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,QAASl6J,KAAM,YACzDkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,WAC/C,CAAEU,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,YAEnDU,KAAM,OACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,WAAYl6J,KAAM,YAC5DkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,WAC/C,CAAEU,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,YAEnDU,KAAM,OACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,WAAYl6J,KAAM,YAC5DkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,WAC/C,CAAEU,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,YAEnDU,KAAM,OACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,WAAYl6J,KAAM,YAC5DkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,UAAWl6J,KAAM,WAC9C,CAAEU,KAAM,MAAOw5J,aAAc,UAAWl6J,KAAM,YAElDU,KAAM,MACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,QAASl6J,KAAM,YACzDkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,UAAWw5J,aAAc,QAASl6J,KAAM,YACzDU,KAAM,OACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,QAASl6J,KAAM,YACzDkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,WAAYw5J,aAAc,cAAel6J,KAAM,UAChEU,KAAM,QACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,YAC3DkiE,gBAAiB,WAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,aAAcw5J,aAAc,UAAWl6J,KAAM,WACrD,CAAEU,KAAM,WAAYw5J,aAAc,cAAel6J,KAAM,UAE3DU,KAAM,eACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,YAC3DkiE,gBAAiB,WAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,WAC/C,CAAEU,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,YAEnDU,KAAM,OACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,WAAYl6J,KAAM,YAC5DkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,WAC/C,CAAEU,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,YAEnDU,KAAM,QACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,WAAYl6J,KAAM,YAC5DkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,WAC/C,CAAEU,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,YAEnDU,KAAM,QACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,WAAYl6J,KAAM,YAC5DkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,WAC/C,CAAEU,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,YAEnDU,KAAM,OACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,WAAYl6J,KAAM,YAC5DkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,WAC/C,CAAEU,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,YAEnDU,KAAM,OACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,WAAYl6J,KAAM,YAC5DkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,WAC/C,CAAEU,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,YAEnDU,KAAM,OACNyhE,QAAS,CAAC,CAAEzhE,KAAM,SAAUw5J,aAAc,WAAYl6J,KAAM,YAC5DkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,kBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,SACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,kBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,SAAUl6J,KAAM,WACpDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,UACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,SAAUl6J,KAAM,WACpDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,iBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,KAAMw5J,aAAc,YAAal6J,KAAM,SAC/C,CAAEU,KAAM,aAAcw5J,aAAc,cAAel6J,KAAM,SACzD,CAAEU,KAAM,eAAgBw5J,aAAc,QAASl6J,KAAM,UAEzDU,KAAM,oBACNyhE,QAAS,CACL,CAAEzhE,KAAM,kBAAmBw5J,aAAc,UAAWl6J,KAAM,YAE9DkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,iBAAkBw5J,aAAc,UAAWl6J,KAAM,WACzD,CAAEU,KAAM,aAAcw5J,aAAc,cAAel6J,KAAM,UAE7DU,KAAM,0BACNyhE,QAAS,CACL,CAAEzhE,KAAM,kBAAmBw5J,aAAc,UAAWl6J,KAAM,YAE9DkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,aACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,SAAUl6J,KAAM,WACpDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,mBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,SAAUl6J,KAAM,WACpDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,eACNyhE,QAAS,CACL,CAAEzhE,KAAM,GAAIw5J,aAAc,yBAA0Bl6J,KAAM,YAE9DkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,QAASw5J,aAAc,UAAWl6J,KAAM,YACzDU,KAAM,aACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CAAEU,KAAM,UAAWw5J,aAAc,UAAWl6J,KAAM,YAEtDU,KAAM,YACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,OAAQl6J,KAAM,SAClDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,YAC1DU,KAAM,aACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,OAAQl6J,KAAM,SAClDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,eACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,QAASl6J,KAAM,UACnDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,eACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,QAASl6J,KAAM,UACnDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,QAASw5J,aAAc,QAASl6J,KAAM,SAC9C,CAAEU,KAAM,OAAQw5J,aAAc,UAAWl6J,KAAM,YAEnDU,KAAM,cACNyhE,QAAS,CAAC,CAAEzhE,KAAM,WAAYw5J,aAAc,WAAYl6J,KAAM,YAC9DkiE,gBAAiB,WAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,QAASw5J,aAAc,QAASl6J,KAAM,SAC9C,CAAEU,KAAM,OAAQw5J,aAAc,UAAWl6J,KAAM,YAEnDU,KAAM,WACNyhE,QAAS,CAAC,CAAEzhE,KAAM,WAAYw5J,aAAc,QAASl6J,KAAM,YAC3DkiE,gBAAiB,WAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,QAASw5J,aAAc,QAASl6J,KAAM,SAC9C,CAAEU,KAAM,OAAQw5J,aAAc,UAAWl6J,KAAM,YAEnDU,KAAM,cACNyhE,QAAS,CAAC,CAAEzhE,KAAM,WAAYw5J,aAAc,WAAYl6J,KAAM,YAC9DkiE,gBAAiB,WAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,QACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,eACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,QAASl6J,KAAM,UACnDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CAAEU,KAAM,UAAWw5J,aAAc,UAAWl6J,KAAM,YAEtDU,KAAM,iBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,OAAQl6J,KAAM,SAClDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,gBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,oBACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,YAC1DU,KAAM,SACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,OACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,WAAYw5J,aAAc,UAAWl6J,KAAM,YAC5DU,KAAM,oBACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,oBAAqBw5J,aAAc,UAAWl6J,KAAM,WAC5D,CAAEU,KAAM,OAAQw5J,aAAc,QAASl6J,KAAM,UAEjDU,KAAM,mBACNyhE,QAAS,GACTD,gBAAiB,WAErB,CACIliE,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,SACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,SAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CAAEn2E,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CACIn2E,KAAM,SACNw5J,aAAc,WACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,QAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,UAAWl6J,KAAM,UAAW62E,SAAS,GAClE,CAAEn2E,KAAM,MAAOw5J,aAAc,UAAWl6J,KAAM,UAAW62E,SAAS,GAClE,CACIn2E,KAAM,SACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,WAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,UAAWl6J,KAAM,UAAW62E,SAAS,GAClE,CAAEn2E,KAAM,MAAOw5J,aAAc,UAAWl6J,KAAM,UAAW62E,SAAS,GAClE,CACIn2E,KAAM,SACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,UAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,UAAWl6J,KAAM,UAAW62E,SAAS,GAClE,CAAEn2E,KAAM,MAAOw5J,aAAc,UAAWl6J,KAAM,UAAW62E,SAAS,GAClE,CACIn2E,KAAM,SACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,WAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,KAAMw5J,aAAc,UAAWl6J,KAAM,UAAW62E,SAAS,GACjE,CAAEn2E,KAAM,SAAUw5J,aAAc,QAASl6J,KAAM,QAAS62E,SAAS,GACjE,CACIn2E,KAAM,SACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,SAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CAAEn2E,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CACIn2E,KAAM,SACNw5J,aAAc,WACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,QAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,UAAWl6J,KAAM,UAAW62E,SAAS,GAClE,CAAEn2E,KAAM,MAAOw5J,aAAc,UAAWl6J,KAAM,UAAW62E,SAAS,GAClE,CAAEn2E,KAAM,SAAUw5J,aAAc,QAASl6J,KAAM,UAAW62E,SAAS,GACnE,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,OAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CAAEn2E,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CAAEn2E,KAAM,SAAUw5J,aAAc,QAASl6J,KAAM,UAAW62E,SAAS,GACnE,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,OAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CAAEn2E,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CAAEn2E,KAAM,SAAUw5J,aAAc,QAASl6J,KAAM,UAAW62E,SAAS,GACnE,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,OAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,UACNw5J,aAAc,QACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,SACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,SACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,eAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CAAEn2E,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CAAEn2E,KAAM,SAAUw5J,aAAc,QAASl6J,KAAM,UAAW62E,SAAS,GACnE,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,OAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CAAEn2E,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CAAEn2E,KAAM,SAAUw5J,aAAc,QAASl6J,KAAM,UAAW62E,SAAS,GACnE,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,OAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CAAEn2E,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CACIn2E,KAAM,SACNw5J,aAAc,WACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,QAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CAAEn2E,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CACIn2E,KAAM,SACNw5J,aAAc,WACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,QAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CAAEn2E,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CACIn2E,KAAM,SACNw5J,aAAc,WACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,QAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,UAAWl6J,KAAM,UAAW62E,SAAS,GAClE,CAAEn2E,KAAM,MAAOw5J,aAAc,UAAWl6J,KAAM,UAAW62E,SAAS,GAClE,CAAEn2E,KAAM,SAAUw5J,aAAc,QAASl6J,KAAM,UAAW62E,SAAS,GACnE,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,OAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,UACNw5J,aAAc,QACdl6J,KAAM,UACN62E,SAAS,GAEb,CAAEn2E,KAAM,SAAUw5J,aAAc,QAASl6J,KAAM,UAAW62E,SAAS,GACnE,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,QAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,WACNw5J,aAAc,cACdl6J,KAAM,QACN62E,SAAS,GAEb,CACIn2E,KAAM,SACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,SAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,WACNw5J,aAAc,cACdl6J,KAAM,QACN62E,SAAS,GAEb,CACIn2E,KAAM,aACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,SACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,gBAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CAAEn2E,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CACIn2E,KAAM,SACNw5J,aAAc,WACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,QAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CAAEn2E,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CACIn2E,KAAM,SACNw5J,aAAc,WACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,SAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CAAEn2E,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CACIn2E,KAAM,SACNw5J,aAAc,WACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,SAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CAAEn2E,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CACIn2E,KAAM,SACNw5J,aAAc,WACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,QAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CAAEn2E,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CACIn2E,KAAM,SACNw5J,aAAc,WACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,QAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CAAEvhE,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CAAEn2E,KAAM,MAAOw5J,aAAc,WAAYl6J,KAAM,UAAW62E,SAAS,GACnE,CACIn2E,KAAM,SACNw5J,aAAc,WACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,QAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,UACNw5J,aAAc,SACdl6J,KAAM,SACN62E,SAAS,IAGjBn2E,KAAM,eAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,SACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,kBACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CAAEn2E,KAAM,OAAQw5J,aAAc,UAAWl6J,KAAM,UAAW62E,SAAS,GACnE,CACIn2E,KAAM,aACNw5J,aAAc,QACdl6J,KAAM,QACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,YAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,gBACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,WACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,wBAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,SACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,UAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,SACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,iBACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,aACNw5J,aAAc,cACdl6J,KAAM,QACN62E,SAAS,GAEb,CACIn2E,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,kBAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,iBACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,YAEV,CACIV,KAAM,QACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,YAC1DU,KAAM,oBAEV,CACIV,KAAM,QACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,iBAAkBw5J,aAAc,UAAWl6J,KAAM,YAE7DU,KAAM,gCAEV,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,qBACnC,CACIV,KAAM,QACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,iBAAkBw5J,aAAc,UAAWl6J,KAAM,WACzD,CAAEU,KAAM,iBAAkBw5J,aAAc,UAAWl6J,KAAM,WACzD,CAAEU,KAAM,UAAWw5J,aAAc,UAAWl6J,KAAM,WAClD,CAAEU,KAAM,aAAcw5J,aAAc,UAAWl6J,KAAM,WACrD,CAAEU,KAAM,cAAew5J,aAAc,UAAWl6J,KAAM,WACtD,CAAEU,KAAM,kBAAmBw5J,aAAc,UAAWl6J,KAAM,YAE9DU,KAAM,4CAEV,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,cACnC,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,cACnC,CACIV,KAAM,QACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,YAC1DU,KAAM,uBAEV,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,yBACnC,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,sBACnC,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,mBACnC,CACIV,KAAM,QACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,QAASw5J,aAAc,UAAWl6J,KAAM,YACzDU,KAAM,uBAEV,CACIV,KAAM,QACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,UAAWw5J,aAAc,UAAWl6J,KAAM,YAC3DU,KAAM,8BAEV,CACIV,KAAM,QACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,oBAAqBw5J,aAAc,UAAWl6J,KAAM,WAC5D,CAAEU,KAAM,eAAgBw5J,aAAc,SAAUl6J,KAAM,UACtD,CAAEU,KAAM,UAAWw5J,aAAc,QAASl6J,KAAM,UAEpDU,KAAM,2BAEV,CACIV,KAAM,QACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CAAEU,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,YAErDU,KAAM,6BAEV,CACIV,KAAM,QACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,MAAOw5J,aAAc,SAAUl6J,KAAM,WACtDU,KAAM,iBAEV,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,+BACnC,CACIV,KAAM,QACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,OAAQw5J,aAAc,UAAWl6J,KAAM,YACxDU,KAAM,gCAEV,CACIV,KAAM,QACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,SAAUw5J,aAAc,cAAel6J,KAAM,SACrD,CAAEU,KAAM,gBAAiBw5J,aAAc,UAAWl6J,KAAM,YAE5DU,KAAM,kBAEV,CACIV,KAAM,QACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,SAAUw5J,aAAc,cAAel6J,KAAM,UAC9DU,KAAM,oBAMD6lP,EAAqB,CAC9B,CACIvmP,KAAM,cACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,OAAQw5J,aAAc,UAAWl6J,KAAM,YACxDkiE,gBAAiB,cAErB,CAAEliE,KAAM,WAAYkiE,gBAAiB,cACrC,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,4BACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,SAAUl6J,KAAM,WACpDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,WAC3C,CAAEU,KAAM,UAAWw5J,aAAc,UAAWl6J,KAAM,WAClD,CAAEU,KAAM,gBAAiBw5J,aAAc,QAASl6J,KAAM,SACtD,CAAEU,KAAM,GAAIw5J,aAAc,QAASl6J,KAAM,UAE7CU,KAAM,gBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,kBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,SAAUl6J,KAAM,WACpDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,UACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,SAAUl6J,KAAM,WACpDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,aACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,SAAUl6J,KAAM,WACpDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,mBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,SAAUl6J,KAAM,WACpDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,QAASw5J,aAAc,UAAWl6J,KAAM,YACzDU,KAAM,aACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,eACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,QAASl6J,KAAM,UACnDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,eACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,QAASl6J,KAAM,UACnDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,QACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,eACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,QAASl6J,KAAM,UACnDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,gBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,oBACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,OACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,WAAYw5J,aAAc,UAAWl6J,KAAM,YAC5DU,KAAM,oBACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,oBAAqBw5J,aAAc,UAAWl6J,KAAM,WAC5D,CAAEU,KAAM,OAAQw5J,aAAc,QAASl6J,KAAM,UAEjDU,KAAM,mBACNyhE,QAAS,GACTD,gBAAiB,WAErB,CACIliE,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,UACNw5J,aAAc,SACdl6J,KAAM,SACN62E,SAAS,IAGjBn2E,KAAM,eAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,gBACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,WACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,wBAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,iBACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,YAEV,CACIV,KAAM,QACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,YAC1DU,KAAM,oBAEV,CACIV,KAAM,QACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,iBAAkBw5J,aAAc,UAAWl6J,KAAM,YAE7DU,KAAM,gCAEV,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,qBACnC,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,cACnC,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,yBACnC,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,sBACnC,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,mBACnC,CACIV,KAAM,QACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,QAASw5J,aAAc,UAAWl6J,KAAM,YACzDU,KAAM,uBAEV,CACIV,KAAM,QACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,UAAWw5J,aAAc,UAAWl6J,KAAM,YAC3DU,KAAM,8BAEV,CACIV,KAAM,QACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,MAAOw5J,aAAc,SAAUl6J,KAAM,WACtDU,KAAM,iBAEV,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,+BACnC,CACIV,KAAM,QACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,OAAQw5J,aAAc,UAAWl6J,KAAM,YACxDU,KAAM,gC,wBCpiDd5C,EAAOC,QAAUM,OAAOga,wB,0GCEI,KACZ,KAeS,KASH,KAzBf,MAiCM5V,EAAM,KAQNk0G,EAAe,KASflB,EAAS,KAOTiB,EAAS,KAcTQ,GAPW,KAOI,MAcf5wF,GAPa,KAOL,K,wBCvFrBxoB,EAAOC,QAAUyoP,S,4BCEV,SAASx8F,EAAyBzuI,GAAQ,OAAE2B,IAC/C,MAAMupO,EAAa,CAAC,EAMpB,MAL8B,aAA1BlrO,EAAOq8I,UAAU53J,MACjBub,EAAOq8I,UAAUyF,aAAa,EAAGngJ,OAAQwpO,EAASjlI,SAAU1hG,EAAIjb,SAAQ8yJ,gBACrD,YAAX9yJ,GAAwBoY,IAAWwpO,IACnCD,EAAW1mO,GAAM63I,EAAU76I,WAE9BgD,GAAO0mO,EAAW1mO,IAAOxE,EAAOwB,OAC7C,C,+BCbA,IAAIhhB,EAAS,gBACT4qP,EAAS5qP,EAAOK,MAAM,GAAI,GAW9B,SAASmvJ,EAAWn9I,GAClB,IAAIoU,EAAMzmB,EAAOqB,YAAY,IAK7B,OAJAolB,EAAIkJ,cAActd,EAAI,KAAO,EAAG,GAChCoU,EAAIkJ,cAActd,EAAI,KAAO,EAAG,GAChCoU,EAAIkJ,cAActd,EAAI,KAAO,EAAG,GAChCoU,EAAIkJ,cAActd,EAAI,KAAO,EAAG,IACzBoU,CACT,CAEA,SAASstK,EAAOvzL,GACdE,KAAKoB,EAAItB,EACTE,KAAK6L,MAAQvM,EAAOK,MAAM,GAAI,GAC9BK,KAAKob,MAAQ9b,EAAOqB,YAAY,EAClC,CAIA0yL,EAAMryL,UAAUyyL,MAAQ,SAAUpoL,GAEhC,IADA,IAAIvK,GAAK,IACAA,EAAIuK,EAAMhL,QACjBL,KAAK6L,MAAM/K,IAAMuK,EAAMvK,GAEzBd,KAAKmqP,WACP,EAEA92D,EAAMryL,UAAUmpP,UAAY,WAK1B,IAJA,IAnCgBpkO,EAqCZza,EAAO8+O,EAFPC,EAlCG,EADStkO,EAmCC/lB,KAAKoB,GAjChBuuL,aAAa,GACjB5pK,EAAI4pK,aAAa,GACjB5pK,EAAI4pK,aAAa,GACjB5pK,EAAI4pK,aAAa,KA+Bf26D,EAAK,CAAC,EAAG,EAAG,EAAG,GAEfxpP,GAAK,IACAA,EAAI,KAAK,CAchB,OAbMd,KAAK6L,SAAS/K,EAAI,IAAO,GAAM,EAAKA,EAAI,KAG5CwpP,EAAG,IAAMD,EAAG,GACZC,EAAG,IAAMD,EAAG,GACZC,EAAG,IAAMD,EAAG,GACZC,EAAG,IAAMD,EAAG,IAIdD,KAAiB,EAARC,EAAG,IAGP/+O,EAAI,EAAGA,EAAI,EAAGA,IACjB++O,EAAG/+O,GAAM++O,EAAG/+O,KAAO,GAAmB,EAAZ++O,EAAG/+O,EAAI,KAAW,GAE9C++O,EAAG,GAAKA,EAAG,KAAO,EAGdD,IACFC,EAAG,GAAKA,EAAG,GAAM,KAAQ,GAE7B,CACArqP,KAAK6L,MAAQijJ,EAAUw7F,EACzB,EAEAj3D,EAAMryL,UAAUV,OAAS,SAAUylB,GAEjC,IAAIjb,EACJ,IAFA9K,KAAKob,MAAQ9b,EAAOkB,OAAO,CAACR,KAAKob,MAAO2K,IAEjC/lB,KAAKob,MAAM/a,QAAU,IAC1ByK,EAAQ9K,KAAKob,MAAM/W,MAAM,EAAG,IAC5BrE,KAAKob,MAAQpb,KAAKob,MAAM/W,MAAM,IAC9BrE,KAAKyzL,MAAM3oL,EAEf,EAEAuoL,EAAMryL,UAAU6P,MAAQ,SAAU05O,EAAKx5N,GAMrC,OALI/wB,KAAKob,MAAM/a,QACbL,KAAKyzL,MAAMn0L,EAAOkB,OAAO,CAACR,KAAKob,MAAO8uO,GAAS,KAGjDlqP,KAAKyzL,MAAM3kC,EAAU,CAAC,EAAGy7F,EAAK,EAAGx5N,KAC1B/wB,KAAK6L,KACd,EAEAxK,EAAOC,QAAU+xL,C,mHCpFjB,MAAM/tL,EAAW,oCCDV,SAASujH,EAAmB9pG,GAC/B,MAAM,KAAE3K,GAAS2K,GACX,IAAEimD,EAAG,aAAEE,GACqB,IAA1BnmD,EAAWimD,IAAI3kE,QACf0e,EAAWmmD,cAAc1gE,WAAW,MAC7Bua,EDHZ,SAAmCA,GACtC,MAAM,IAAEimD,EAAG,KAAE5wD,EAAI,aAAE8wD,GAAiBnmD,EACpC,IAAIumD,EAAUN,EAAI,GAClB,GAAIE,EAAc,CACd,MAAM1vB,GAAO,EAAAugJ,EAAA,IAAW,CACpB/wH,MACA5wD,OACAnQ,KAAMihE,IAEV,IAAK1vB,EACD,MAAM,IAAI,KAAyB0vB,EAAc,CAAE5/D,aACvDggE,EAAU9vB,CACd,CACA,GAAqB,aAAjB8vB,EAAQ/hE,KACR,MAAM,IAAI,UAAyBkI,EAAW,CAAEnG,aACpD,MAAO,CACH0/D,IAAK,CAACM,GACNJ,cAAc,EAAA6O,EAAA,IAAmB,EAAAxO,EAAA,GAAcD,IAEvD,CCfeklL,CAA0BzrO,GAE/BumD,EAAUN,EAAI,GACd7mC,EAAY+mC,EACZhkE,EAAO,WAAYokE,GAAWA,EAAQE,QACtC,EAAA0+B,EAAA,GAAoB5+B,EAAQE,OAAQpxD,GAAQ,SAC5C3I,EACN,OAAO,EAAAjL,EAAA,IAAU,CAAC29B,EAAWj9B,GAAQ,MACzC,C,4BCfA,IAAIupP,EAAS,EAAQ,OAGrBppP,EAAOC,QAAU,SAAckmB,GAC9B,OAAIijO,EAAOjjO,IAAsB,IAAXA,EACdA,EAEDA,EAAS,GAAK,EAAI,CAC1B,C,8qFCTO,MAAMkjO,EACXh9O,KACA8gK,QAAS,EACT,WAAAt6J,CAAYxG,GACV1N,KAAK0N,KAAOA,CACd,CACA,IAAA3B,CAAKnE,GACH,OAAO5H,KAAKwuK,OAAS,CACnBzsK,MAAO6F,EACPonC,MAAM,IACHhvC,KAAKwuK,QAAS,EAAM,CACvBzsK,MAAO/B,KAAK0N,KACZshC,MAAM,GAEV,CACA,OAAOpnC,GACL,MAAO,CACL7F,MAAO6F,EACPonC,MAAM,EAEV,CACA,MAAMhlC,GACJ,MAAMA,CACR,CACA,CAAC6H,OAAO0J,YACN,OAAO,IAAImvO,EAAc1qP,KAAK0N,KAChC,ECQK,MAAMu3C,EAAU,CAAC0lM,EAAiBC,KACvC,MAAMhpN,EAAS,IAAIipN,EAAgB,WAGnC,OAFAjpN,EAAO+Y,sBAAwBgwM,EAC/B/oN,EAAOwY,sBAAwBwwM,EACxBhpN,GAKIkpN,EAAkBH,IAC7B,MAAM/oN,EAAS,IAAIipN,EAAgB,cAEnC,OADAjpN,EAAO+Y,sBAAwBgwM,EACxB/oN,GAGIo+C,EAA4BnuE,OAAOwP,IAAI,iBAE7C,MAAM0pO,EACXvgO,MACAoY,GACAa,IAAM,KACN,WAAAvvB,CAAYsW,EAAOoY,GACjB5iC,KAAKwqB,MAAQA,EACbxqB,KAAK4iC,GAAKA,CACZ,EAEF,MAAMioN,EACJpnN,IACAkX,2BAAwBlvC,EACxB2uC,2BAAwB3uC,EACxB6uC,2BAAwB7uC,EACxBu3D,WAAQv3D,EACR,CAACu0E,GAAgB,KACjB,WAAA9rE,CAAYuvB,GACVzjC,KAAKyjC,IAAMA,CACb,CACA,CAACoqG,EAAA,IAAcr2H,GACb,OAAOxX,OAASwX,CAClB,CACA,CAACsE,EAAA,MACC,OAAOA,EAAA,GAAY9b,KAAM8b,EAAA,GAAY9b,MACvC,CACA,IAAAiS,GACE,OAAO,QAAcjS,KAAM4W,UAC7B,CACA,MAAAqhB,GACE,MAAO,CACLyL,IAAK,SACLD,IAAKzjC,KAAKyjC,IACVkX,uBAAuB,QAAO36C,KAAK26C,uBACnCP,uBAAuB,QAAOp6C,KAAKo6C,uBACnCE,uBAAuB,QAAOt6C,KAAKs6C,uBAEvC,CACA,QAAA/xC,GACE,OAAO,QAAOvI,KAAKi4B,SACrB,CACA,CAAC,QACC,OAAOj4B,KAAKi4B,QACd,CACA,CAACpmB,OAAO0J,YACN,OAAO,IAAImvO,EAAc,IAAI,KAAU1qP,MACzC,EAGF,MAAMgrP,EACJvnN,IACAkX,2BAAwBlvC,EACxB2uC,2BAAwB3uC,EACxB6uC,2BAAwB7uC,EACxBu3D,WAAQv3D,EACR,CAACu0E,GAAgB,KACjB,WAAA9rE,CAAYuvB,GACVzjC,KAAKyjC,IAAMA,EAEXzjC,KAAKmiB,KAAOshB,CACd,CACA,CAACoqG,EAAA,IAAcr2H,GACb,OAAOyzO,GAAWzzO,IAAsB,YAAbA,EAAKisB,KAEhCoqG,EAAA,GAAa7tI,KAAK26C,sBAAuBnjC,EAAKmjC,sBAChD,CACA,CAAC7+B,EAAA,MACC,OAAO,QAEPA,EAAA,GAAY9b,KAAKmiB,MAEjBrG,EAAA,GAAaA,EAAA,GAAU9b,KAAK26C,wBAAyB7+B,EAAA,GAAY9b,MACnE,CACA,SAAIsU,GACF,OAAOtU,KAAK26C,qBACd,CACA,IAAA1oC,GACE,OAAO,QAAcjS,KAAM4W,UAC7B,CACA,MAAAqhB,GACE,MAAO,CACLyL,IAAK,OACLvhB,KAAMniB,KAAKyjC,IACXnvB,MAAOtU,KAAKsU,MAAM2jB,SAEtB,CACA,QAAA1vB,GACE,OAAO,QAAOvI,KAAKi4B,SACrB,CACA,CAAC,QACC,OAAOj4B,KAAKi4B,QACd,CACA,CAACpmB,OAAO0J,YACN,OAAO,IAAImvO,EAAc,IAAI,KAAU1qP,MACzC,EAGF,MAAMkrP,EACJznN,IACAkX,2BAAwBlvC,EACxB2uC,2BAAwB3uC,EACxB6uC,2BAAwB7uC,EACxBu3D,WAAQv3D,EACR,CAACu0E,GAAgB,KACjB,WAAA9rE,CAAYuvB,GACVzjC,KAAKyjC,IAAMA,EAEXzjC,KAAKmiB,KAAOshB,CACd,CACA,CAACoqG,EAAA,IAAcr2H,GACb,OAAOyzO,GAAWzzO,IAAsB,YAAbA,EAAKisB,KAEhCoqG,EAAA,GAAa7tI,KAAK26C,sBAAuBnjC,EAAKmjC,sBAChD,CACA,CAAC7+B,EAAA,MACC,OAAO,QAEPA,EAAA,GAAY9b,KAAKmiB,MAEjBrG,EAAA,GAAaA,EAAA,GAAU9b,KAAK26C,wBAAyB7+B,EAAA,GAAY9b,MACnE,CACA,SAAI+B,GACF,OAAO/B,KAAK26C,qBACd,CACA,IAAA1oC,GACE,OAAO,QAAcjS,KAAM4W,UAC7B,CACA,MAAAqhB,GACE,MAAO,CACLyL,IAAK,OACLvhB,KAAMniB,KAAKyjC,IACX1hC,OAAO,QAAO/B,KAAK+B,OAEvB,CACA,QAAAwG,GACE,OAAO,QAAOvI,KAAKi4B,SACrB,CACA,CAAC,QACC,OAAOj4B,KAAKi4B,QACd,CACA,CAACpmB,OAAO0J,YACN,OAAO,IAAImvO,EAAc,IAAI,KAAU1qP,MACzC,EAGK,MAAMyoD,EAAW5zB,IAAK,QAAYA,EAAGmrD,GAE/BmrK,EAAmBC,IAC9B,MAAMxpN,EAAS,IAAIipN,EAAgB,MAEnC,OADAjpN,EAAO+Y,sBAAwBywM,EACxBxpN,GAGIypN,GAAiC,QAAK,EAAG,CAACC,EAASluL,EAAKmuL,IAAY9kN,GAAoBC,GAAWtE,GAAQkpN,EAAS1jP,GAAKw6B,GAAQL,GAAKypN,GAAQ,IAAM9kN,EAAQ02B,EAAIx1D,MAAOm6B,GAC3KypN,GAAQ,IAAMD,EAAQ3jP,EAAGm6B,IAAO9vB,KAAKo0B,GAAiB,CAC3DG,UAAWlyB,IACT,OAAQytB,EAAK5f,MACX,KAAK,KACH,OAAOuiB,GAAU,KAAyB3C,EAAK4Y,sBAAuBrmC,IACxE,KAAK,KACH,OAAOowB,GAAUpwB,KAGvB2wB,UAAW,IAAMlD,SAIR0hB,GAAkB,QAAK,EAAG,CAAC/1C,EAAM3L,IAAUqgC,GAAQ10B,EAAM,IAAM82B,GAAQziC,KAEvE0pP,EAAS/9O,GAAQ+1C,EAAG/1C,OAAM,GAE1Bk3E,EAAS,WACpB,MAAM8mK,EAAU,IAAIb,EAAgB,MACpC,OAAQj0O,UAAUvW,QAChB,KAAK,EAEDqrP,EAAQ/wM,sBAAwB/jC,UAAU,GAC1C80O,EAAQhqO,OAAS9K,UAAU,GAC3B,MAEJ,KAAK,EAED80O,EAAQ/wM,sBAAwB/jC,UAAU,GAC1C80O,EAAQtxM,sBAAwBxjC,UAAU,GAC1C80O,EAAQhqO,OAAS9K,UAAU,GAC3B,MAEJ,KAAK,EAED80O,EAAQ/wM,sBAAwB/jC,UAAU,GAC1C80O,EAAQtxM,sBAAwBxjC,UAAU,GAC1C80O,EAAQpxM,sBAAwB1jC,UAAU,GAC1C80O,EAAQhqO,OAAS9K,UAAU,GAC3B,MAEJ,QAEI,MAAM,IAAIxP,OAAM,OAAmB,uCAGzC,OAAOskP,CACT,EAEaC,EAAc,CAACv1M,EAAU3W,EAAamsN,EAAA,MACjD,MAAMhqN,EAAS,IAAIipN,EAAgB,MACnC,IAAIgB,EAKJ,OAJAjqN,EAAO+Y,sBAAwB5Q,IAC7B8hN,EAAcz1M,EAASrM,IAEzBnI,EAAOwY,sBAAwB3a,EACxBknB,GAAY/kB,EAAQn9B,GAAKgkD,EAASojM,GAAeA,EAAc9mN,KAG3D+mN,EAAiB,CAAC11M,EAAU3W,EAAamsN,EAAA,KAAiBJ,GAAQ,IAAMG,EAAYv1M,EAAU3W,IACrGssN,EAAS,CAAChiN,EAAQtK,EAAamsN,EAAA,KAC5BhnK,EAAO76C,EAAQ,WACpB,IAAIiiN,EACAC,EACJ,SAASC,EAAYtqN,GACfoqN,EACFA,EAAcpqN,QACan2B,IAAlBwgP,IACTA,EAAgBrqN,EAEpB,CACA,MAAMA,EAAS,IAAIipN,EAAgB,MAQnC,IAAIgB,EACAM,EAOJ,OAfAvqN,EAAO+Y,sBAAwB5Q,IAC7BiiN,EAAgBjiN,EACZkiN,GACFliN,EAAOkiN,IAGXrqN,EAAOwY,sBAAwB3a,EAGW,IAAtCz/B,KAAK26C,sBAAsBt6C,QAC7B8rP,EAAgB,IAAIlrF,gBACpB4qF,GAAc,QAAa,IAAM7rP,KAAK26C,sBAAsBuxM,EAAaC,EAAchrM,UAEvF0qM,GAAc,QAAa,IAAM7rP,KAAK26C,sBAAsBuxM,IAEvDL,GAAeM,EAAgBxlM,GAAY/kB,EAAQn9B,IACpD0nP,GACFA,EAAc9qM,QAETwqM,GAAe9mN,KACnBnD,CACP,GAKWwqN,GAA6B,QAAK,EAAG,CAAC1+O,EAAM2P,KACvD,MAAMukB,EAAS,IAAIipN,EAAgB,MAGnC,OAFAjpN,EAAO+Y,sBAAwBjtC,EAC/Bk0B,EAAOwY,sBAAwB/8B,EACxBukB,IAGIyqN,GAAwB,QAAK,EAAG,CAAC3+O,EAAM2P,IAAMivO,GAAY5+O,EAAM,CAC1E84B,UAAWnpB,EACX4nB,UAAWT,MAGA+nN,GAAuB,QAAK,EAAG,CAAC7+O,EAAMi1F,EAAWtlF,IAAM+uO,EAAc1+O,EAAM4G,IACtF,MAAMkwI,EAAS,KAA6BlwI,GAC5C,OAAQkwI,EAAOriI,MACb,IAAK,OACH,OAAOwgF,EAAU6hD,EAAOj6H,MAAQlN,EAAEmnI,EAAOj6H,MAAQma,GAAUpwB,GAC7D,IAAK,QACH,OAAOowB,GAAU8/G,EAAO75H,WAIjB6hO,GAAyB,QAAK,EAAG,CAAC9+O,EAAMuU,IAAOmqO,EAAc1+O,EAAM4G,IAC9E,MAAMkwI,EAAS,KAA6BlwI,GAC5C,OAAQkwI,EAAOriI,MACb,IAAK,OACH,OAAO,QAAKF,EAAGuiI,EAAOj6H,MAAO,KAAiB,IAAMma,GAAUpwB,KAChE,IAAK,QACH,OAAOowB,GAAU8/G,EAAO75H,WAIjB8hO,EAAqBpvO,GAAK8tO,EAAiB,CAAC1mP,EAAG4D,IAAWgV,EAAEkiB,EAAA,GAA2Bl3B,EAAOk3B,gBACrGmtN,EAA8B76O,OAAOwP,IAAI,6BAElCsrO,EAAmBz6O,IAC1B,QAAYA,EAAKw6O,GAEZx6O,EAAIw6O,GAENx6O,EAGIimI,GAAU,CAACjmI,EAAKs6B,IACvB,KAAcA,GACT,IAAIwyC,MAAM9sE,EAAK,CACpBnM,IAAG,CAACgQ,EAAQuc,IACHA,IAAM,MAA4BA,IAAMo6N,GAAkBp6N,KAAKvc,EAExE/P,IAAG,CAAC+P,EAAQuc,IACNA,IAAM,KACDka,EAAKzqC,MAEVuwB,IAAMo6N,EACDx6O,EAGF6D,EAAOuc,KAIbpgB,EAGIkxJ,GAAM7iI,IAAU,QAASA,MAAa,QAA4BA,GAAU4qN,EAAiB1mN,GAASC,GAAU,KAAkByzG,GAAQ53G,EAAQqsN,GAAqBnoN,OAAaC,GAAU,KAAkBnE,IAEhNssN,GAAat4O,GAAWu4O,GAAc,IAAM,KAAkB,IAAIC,GAAiBx4O,KAEnFy4O,GAAUvrN,GAAYW,GAAQjzB,GAAKsyB,GAAW2hI,IAE9C5e,GAAS92I,GAAQ4+O,GAAY5+O,EAAM,CAC9C84B,UAAWx8B,GAAKw6B,GAAQ+/H,EAAA,GAAYv6J,IACpCi7B,UAAWr9B,GAAK48B,GAAQ+/H,EAAA,GAAa38J,MAG1Bm6B,GAAOr0B,GAAQu/O,GAAWv/O,EAAM,CAC3C84B,UAAWpB,GACXH,UAAWE,KAGAqqC,GAAOvkE,IAAS,QAASA,MAAY,QAA4BA,GAASkgP,EAAiB1mN,GAASC,GAAU,KAAmByzG,GAAQltI,EAAO2hP,GAAqBnoN,OAAaC,GAAU,KAAmBz5B,IAE/MiiP,GAAWzrN,GAAYW,GAAQjzB,GAAKsyB,GAAW+tC,IAE/C9qC,GAAYpwB,IACvB,MAAMstB,EAAS,IAAIopN,EAAuB,MAE1C,OADAppN,EAAO+Y,sBAAwBrmC,EACxBstB,GAGIkrN,GAAgBrrN,GAAYW,GAAQjzB,GAAKsyB,GAAWiD,IAEpDwF,GAAuBihN,EAAiBt/O,GAAS24B,GAAQ34B,EAAMyX,OAE/D6pO,GAAc9vO,GAAK8tO,EAAiBt/O,GAASwR,EAAExR,EAAMyX,OAErD8e,IAAuB,QAAK,EAAG,CAAC10B,EAAM2P,KACjD,MAAMukB,EAAS,IAAIipN,EAAgB,MAGnC,OAFAjpN,EAAO+Y,sBAAwBjtC,EAC/Bk0B,EAAOwY,sBAAwB/8B,EACxBukB,IAGI07H,IAAuB,QAAK,EAAG,CAAC5vJ,EAAM2P,IAAM+kB,GAAQ10B,EAAM9F,IACrE,MAAMC,EAAiB,mBAANwV,EAAmBA,EAAEzV,GAAKyV,EAC3C,OAAIorC,EAAS5gD,GACJA,GACE,QAAcA,GAChB8jP,EAAY5hN,IACjBliC,EAAE8Y,KAAK/Y,GAAKmiC,EAAOvF,GAAQ58B,IAAKoC,GAAK+/B,EAAOylC,GAAK,IAAI49K,GAAiBpjP,EAAG,oDAGtEw6B,GAAQ38B,MAGJmwB,GAAOtqB,IAClB,MAAMk0B,EAAS,IAAIipN,EAAgB,UAEnC,OADAjpN,EAAO+Y,sBAAwBjtC,EACxBk0B,GAGIm1G,GAAUrpI,GAAQ00B,GAAQ10B,EAAM,MAEhC2/O,GAAO3/O,GAAQ4+O,GAAY5+O,EAAM,CAC5C84B,UAAWhC,GACXS,UAAWuqC,KAGAy9K,IAA0B,QAAK,EAAG,CAACv/O,EAAM9H,IAAYygC,GAAiB34B,EAAM,CACvF84B,UAAWlyB,GAASkwB,GAAQ5+B,EAAQ4gC,UAAUlyB,IAC9C2wB,UAAWr9B,GAAK48B,GAAQ5+B,EAAQq/B,UAAUr9B,OAG/By+B,IAAgC,QAAK,EAAG,CAAC34B,EAAM9H,KAC1D,MAAMg8B,EAAS,IAAIipN,EAAgB,MAInC,OAHAjpN,EAAO+Y,sBAAwBjtC,EAC/Bk0B,EAAOwY,sBAAwBx0C,EAAQ4gC,UACvC5E,EAAO0Y,sBAAwB10C,EAAQq/B,UAChCrD,IAGI0qN,IAA2B,QAAK,EAAG,CAAC5+O,EAAM9H,IAAYygC,GAAiB34B,EAAM,CACxF84B,UAAWlyB,IAET,GADgB,KAAsBA,GAC1BjU,OAAS,EACnB,OAAOqkC,GAAU,KAA4BpwB,IAE/C,MAAM8vJ,EAAW,KAAuB9vJ,GACxC,OAAI8vJ,EAAS/jK,OAAS,EACbuF,EAAQ4gC,UAAU,KAAiB49H,IAErC1/H,GAAUpwB,IAEnB2wB,UAAWr/B,EAAQq/B,aAGRqoN,IAAiC,QAAK,EAAG,CAAC5/O,EAAM2P,IAAMmuO,GAAQ,KACzE,MAAM1yO,EAAM,KAAiBpL,GACvByE,EAAM,KAAa2G,EAAIzY,QAC7B,IAAIS,EAAI,EACR,OAAO2iD,EAAG8pM,GAAU,CAClBvuM,MAAO,IAAMl+C,EAAIgY,EAAIzY,OACrB0+C,KAAM,IAAM1hC,EAAEvE,EAAIhY,GAAIA,GACtBk3B,KAAMnwB,IACJsK,EAAIrR,KAAO+G,KAEXsK,MAGOq7O,IAAwC,QAAK,EAAG,CAAC9/O,EAAM2P,IAAMmuO,GAAQ,KAChF,MAAM1yO,EAAM,KAAiBpL,GAC7B,IAAI5M,EAAI,EACR,OAAOysP,GAAU,CACfvuM,MAAO,IAAMl+C,EAAIgY,EAAIzY,OACrB0+C,KAAM,IAAM1hC,EAAEvE,EAAIhY,GAAIA,GACtBk3B,KAAM,KACJl3B,UAKO2sP,IAAmB,QAAKr5O,GAA2B,kBAAZA,EAAK,IAAoBq0C,EAASr0C,EAAK,IAAK,CAAC1G,EAAM9H,IAAY6iD,EAAS/6C,GAAQ00B,GAAQ10B,EAAM7F,GAAKA,EAAIjC,EAAQ8nP,SAAW9nP,EAAQ+nP,WAAajgP,EAAO9H,EAAQ8nP,SAAW9nP,EAAQ+nP,WAExNtqF,GAAyBjhI,GAAQ8H,GAASA,GAAW0jN,GAAc1jN,IAEnE0jN,GAAgB1jN,GAAWxF,GAAU,IAAwBwF,IAE7DpJ,GAAgBpzB,IAC3B,MAAMk0B,EAAS,IAAIipN,EAAgB,MAGnC,OAFAjpN,EAAO+Y,sBAAwByC,EAAA,GAAyB7d,EAAA,IACxDqC,EAAOwY,sBAAwB,IAAM1sC,EAC9Bk0B,GAGIisN,GAAoBxwO,GAAKunE,EAAOvnE,EAAG,WAC9C,MAAMukB,EAAS,IAAIipN,EAAgB,MAGnC,OAFAjpN,EAAO+Y,sBAAwByC,EAAA,GAAyB7d,EAAA,IACxDqC,EAAOwY,sBAAwB0zM,GAAYvuN,EAAA,GAA2BuuN,IAAY,QAAa,IAAM9tP,KAAK26C,sBAAsB7Z,MAAkB,QAAa,IAAM9gC,KAAK26C,sBAAsBozM,KACzLnsN,CACT,GAEaosN,IAA4B,QAAK,EAAG,CAACtgP,EAAM+5B,IAAahB,GAAoBC,GAAWtE,GAAQL,GAAK2E,EAAQh5B,IAAQq0B,GAAQksN,GAAaxmN,EAAU1F,MAEnJrgC,IAAmB,QAAK,EAAG,CAACgM,EAAM2P,IAAM+kB,GAAQ10B,EAAM9F,GAAKuH,GAAK,IAAMkO,EAAEzV,MAExEihP,IAAuB,QAAK,EAAG,CAACn7O,EAAM9H,IAAY0mP,GAAY5+O,EAAM,CAC/E84B,UAAWx8B,GAAKkjP,GAAS,IAAMtnP,EAAQ4gC,UAAUx8B,IACjDi7B,UAAWr9B,GAAKuH,GAAK,IAAMvJ,EAAQq/B,UAAUr9B,OAGlCsmP,IAAwB,QAAK,EAAG,CAACxgP,EAAM2P,IAAMgpB,GAAiB34B,EAAM,CAC/E84B,UAAWlyB,IACT,MAAMkwI,EAAS,KAA6BlwI,GAC5C,OAAQkwI,EAAOriI,MACb,IAAK,OAED,OAAO+qO,GAAS,IAAM7vO,EAAEmnI,EAAOj6H,OAEnC,IAAK,QAED,OAAOma,GAAU8/G,EAAO75H,SAIhCsa,UAAWT,MAGAu2H,IAAuB,QAAK,EAAG,CAACrtJ,EAAMs5C,IAAY/gB,GAAOv4B,EAAMq0B,GAAQosN,GAAcpsN,GAAQgD,GAAQiiB,EAAQjlB,EAAK4Y,yBAElH1U,IAAsB,QAAK,EAAG,CAACv4B,EAAMs5C,IAAYvgB,GAAoBC,GAAWL,GAAiBK,EAAQh5B,GAAO,CAC3H84B,UAAW4nN,IACT,MAAMnoP,EAASm/B,GAAcgpN,GAC7B,OAAO/nN,GAAiB2gB,EAAQ/gD,GAAS,CACvCugC,UAAW6nN,GAAUjpN,GAAc,KAAyBgpN,EAAQC,IACpEppN,UAAW,IAAMh/B,KAGrBg/B,UAAW+jF,IACT,MAAM/iH,EAASk/B,GAAY6jF,GAC3B,OAAOslI,GAAStnM,EAAQ/gD,GAASA,QAIxB0gD,IAA2B,QAAK,EAAG,CAACj5C,EAAMs5C,IAAY/gB,GAAOv4B,EAAM6gP,GAAU,CACxF/nN,UAAWlyB,GAAS,KAAgCA,GAASm3O,EAAOzkM,EAAQ,KAA2B1yC,KAAWywB,GAClHE,UAAW,IAAMF,OAGNs7B,IAAsB,QAAK,EAAG,CAAC3yD,EAAM8J,IAASg3O,GAAc9gP,EAAM8J,EAAMgtB,KAExEiqN,GAAQ/gP,GAAQ8yI,GAAU9yI,EAAM,MAEhC8yI,IAAyB,QAAK,EAAG,CAAC9yI,EAAM2P,IAAMivO,GAAY5+O,EAAM,CAC3E84B,UAAWx8B,GAAKo5J,GAAI/lJ,EAAErT,IACtBi7B,UAAWT,MAGAkqN,GAAe,KAEf,GAA4BvD,EAAiB,CAAC1mP,EAAG4D,IAAWm8B,GAAQn8B,EAAOk3B,eAE3EiF,GAAUziC,IACrB,MAAM6/B,EAAS,IAAIspN,EAAuB,MAE1C,OADAtpN,EAAO+Y,sBAAwB54C,EACxB6/B,GAGI4pN,GAAU/pN,IACrB,MAAMG,EAAS,IAAIipN,EAAgB,MAEnC,OADAjpN,EAAOlgB,OAAS+f,EACTG,GAGIzyB,GAAOw/O,IAClB,MAAM/sN,EAAS,IAAIipN,EAAgB,MAEnC,OADAjpN,EAAO+Y,sBAAwBg0M,EACxB/sN,GAGIgtN,IAAmB,QAAKx6O,GAAwB,IAAhBA,EAAK/T,QAAgC,IAAhB+T,EAAK/T,WAAkB,QAAS+T,EAAK,KAAO,eAAgBA,EAAK,IAAK,CAAC1G,EAAM2P,IAAM+kB,GAAQ10B,EAAM9F,IACjK,MAAMC,EAAiB,mBAANwV,EAAmBA,EAAEzV,GAAKyV,EAC3C,OAAIorC,EAAS5gD,GACJ47C,EAAG57C,EAAGD,IACJ,QAAcC,GAChB8jP,EAAY5hN,IACjBliC,EAAE8Y,KAAKlc,GAAKslC,EAAOvF,GAAQ58B,IAAKoC,GAAK+/B,EAAOylC,GAAK,IAAI49K,GAAiBpjP,EAAG,gDAGtEw6B,GAAQ58B,MAGJinP,GAAaxxO,GAAK8tO,EAAiBt/O,IAC9C,MAAM85C,EAAgB95C,EAAMy7B,YAAYwnN,IAClCxyM,GAAQ,QAAKqJ,EAAe,KAAiB,IAAM95C,EAAMywC,UAC/D,OAAOj/B,EAAE0xO,GAAgBD,GAA0B,KAAYxyM,OAGpDkyM,IAA6B,QAAK,EAAG,CAAC9gP,EAAM8J,EAAMytB,IAAcoB,GAAiB34B,EAAM,CAClG84B,UAAWlyB,GACO,KAAsBA,GAC1BjU,OAAS,EACZqkC,GAAU,KAAkB,KAA0CpwB,KAExEkD,IAETytB,eAGW8oN,GAAkBrgP,IAC7B,MAAMk0B,EAAS,IAAIipN,EAAgB,MAGnC,OAFAjpN,EAAO+Y,sBAAwByC,EAAA,GAA0B7d,EAAA,IACzDqC,EAAOwY,sBAAwB,IAAM1sC,EAC9Bk0B,GAGI6E,GAAsBppB,GAAKunE,EAAOvnE,EAAG,WAChD,MAAMukB,EAAS,IAAIipN,EAAgB,MAGnC,OAFAjpN,EAAO+Y,sBAAwByC,EAAA,GAA0B7d,EAAA,IACzDqC,EAAOwY,sBAAwB0zM,GAAYvuN,EAAA,GAA2BuuN,IAAY,QAAa,IAAM9tP,KAAK26C,sBAAsB7Z,MAAkB,QAAa,IAAM9gC,KAAK26C,sBAAsBozM,KACzLnsN,CACT,GACMmD,GAAqBP,QAAQ,GAItBwqN,GAAqBxkO,IAChC,MAAMoX,EAAS,IAAIipN,EAAgB,MAGnC,OAFAjpN,EAAO+Y,sBAAwBnwB,EAC/BoX,EAAOwY,2BAAwB,EACxBxY,GAGIqtN,IAA0B,QAAK,EAAG,CAACvhP,EAAM8uG,IAAcp6E,GAAQo6E,EAAW30G,GACjFA,GACK,QAAK6F,EAAMhM,GAAI,OAEjB8iC,GAAQ,UAGJ+oN,GAAY3nP,IACvB,MAAMg8B,EAAS,IAAIipN,EAAgB,MAInC,OAHAjpN,EAAO+Y,sBAAwB/0C,EAAQo5C,MACvCpd,EAAOwY,sBAAwBx0C,EAAQm5C,KACvCnd,EAAO0Y,sBAAwB10C,EAAQoyB,KAChC4J,GAGIstN,GAAe3zO,GAAYiwO,GAAQ,KAC9C,MAAM5pN,EAAS,IAAIipN,EAAgB,MAEnC,OADAjpN,EAAO+Y,sBAAwBp/B,IACxBqmB,IAGI3b,GAAM,WACjB,MAAM5I,EAAyB,IAArBzG,UAAUvW,OAAeuW,UAAU,GAAKA,UAAU,GAAG/C,KAAK+C,UAAU,IAC9E,OAAOs4O,GAAa,IAAM7xO,EAAE,MAC9B,EAEa8xO,GAAa,CAACpwM,KAASqwM,IAAcxtP,OAAOgQ,eAAoC,IAArBw9O,EAAU/uP,OAAe,YAAa+T,GAC5G,OAAO86O,GAAa,IAAMnwM,EAAKjpC,MAAM9V,KAAMoU,GAC7C,EAAI,YAAaA,GACf,IAAIwtB,EAASstN,GAAa,IAAMnwM,EAAKjpC,MAAM9V,KAAMoU,IACjD,IAAK,MAAMV,KAAK07O,EACdxtN,EAASluB,EAAEkuB,KAAWxtB,GAExB,OAAOwtB,CACT,EAAG,SAAU,CACX7/B,MAAOg9C,EAAK1+C,OACZuU,cAAc,IAGHy6O,IAA+B,QAAK,EAAG,CAAC3hP,EAAM07B,IAAgB2lN,GAAgBrhP,EAAM4hP,GAAoBlmN,IAExGmmN,IAAmC,QAAK,EAAG,CAAC7hP,EAAM8hP,IAAoBT,GAAgBrhP,EAAM+hP,GAAwBD,IAEpHE,IAAgC,QAAK,EAAG,CAAChiP,EAAMpN,KAC1D,MAAMshC,EAAS,IAAIipN,EAAgB,MAGnC,OAFAjpN,EAAO+Y,sBAAwBr6C,EAC/BshC,EAAOwY,sBAAwB,IAAM1sC,EAC9Bk0B,IAGI+tN,IAAiC,QAAK,EAAG,CAAC/tN,EAAQw8F,IAAY2wH,GAAgBntN,EAAQguN,GAAsBxxH,IAE5GyxH,IAAgC,QAAK,EAAG,CAACjuN,EAAQw8F,IAAY2wH,GAAgBntN,EAAQkuN,GAA4B1xH,IAEjH37F,GAAW78B,IACtB,MAAMg8B,EAAS,IAAIipN,EAAgB,MACnC,YAAoC,IAAtBjlP,GAASkhC,SAA2BipN,GAAuBnuN,EAAQh8B,EAAQkhC,UAAYlF,GAG1FmW,IAAmB,QAAK,EAAG,CAACrqC,EAAM8J,IAAS4qB,GAAQ10B,EAAM9F,GAAKlG,GAAI8V,EAAM3P,GAAK,CAACD,EAAGC,MAIjFmoP,IAAuB,QAAK,EAAG,CAACtiP,EAAM8J,IAAS4qB,GAAQ10B,EAAM9F,GAAK67C,EAAGjsC,EAAM5P,KAE3E0mP,IAAwB,QAAK,EAAG,CAAC5gP,EAAM8J,IAAS4qB,GAAQ10B,EAAM,IAAM8J,IAEpEy4O,IAAuB,QAAK,EAAG,CAACviP,EAAM8J,EAAM6F,IAAM+kB,GAAQ10B,EAAM9F,GAAKlG,GAAI8V,EAAM3P,GAAKwV,EAAEzV,EAAGC,MAEzFqoP,GAAqBpE,EAAe,KAC/C,MAAMhtH,EAAWqxH,YAAY,OAE1B,GAAK,GAAK,GACb,OAAOhhP,GAAK,IAAMihP,cAActxH,MAMrBuxH,GAAiB3iP,GAAQ00B,GAAQ8H,GAASA,IAAW,QAAKx8B,EAAM4iP,GAAiBpmN,KAEjFomN,IAAgC,QAAK,EAAG,CAAC5iP,EAAMw8B,IAAY9H,GAAQ10B,EAAK4vC,gBAAgBpT,GAAU,IAAMx8B,EAAKs9B,QAK7GulN,GAAc,CACzBpuO,KAAM,MACNquO,OAAQ,EACRvkN,MAAO,MACPyoI,QAAS9vK,OAAO6rP,iBAChB,IAAAx+O,GACE,OAAO,QAAcjS,KAAM4W,UAC7B,GAGW85O,GAAgB,CAC3BvuO,KAAM,QACNquO,OAAQ,EACRvkN,MAAO,QACPyoI,QAAS,IACT,IAAAziK,GACE,OAAO,QAAcjS,KAAM4W,UAC7B,GAGW+5O,GAAgB,CAC3BxuO,KAAM,QACNquO,OAAQ,EACRvkN,MAAO,QACPyoI,QAAS,IACT,IAAAziK,GACE,OAAO,QAAcjS,KAAM4W,UAC7B,GAGWg6O,GAAkB,CAC7BzuO,KAAM,UACNquO,OAAQ,EACRvkN,MAAO,OACPyoI,QAAS,IACT,IAAAziK,GACE,OAAO,QAAcjS,KAAM4W,UAC7B,GAGWi6O,GAAe,CAC1B1uO,KAAM,OACNquO,OAAQ,EACRvkN,MAAO,OACPyoI,QAAS,IACT,IAAAziK,GACE,OAAO,QAAcjS,KAAM4W,UAC7B,GAGWk6O,GAAgB,CAC3B3uO,KAAM,QACNquO,OAAQ,EACRvkN,MAAO,QACPyoI,QAAS,IACT,IAAAziK,GACE,OAAO,QAAcjS,KAAM4W,UAC7B,GAGWm6O,GAAgB,CAC3B5uO,KAAM,QACNquO,OAAQ,EACRvkN,MAAO,QACPyoI,QAAS,EACT,IAAAziK,GACE,OAAO,QAAcjS,KAAM4W,UAC7B,GAGWo6O,GAAe,CAC1B7uO,KAAM,OACNquO,OAAQ,EACRvkN,MAAO,MACPyoI,QAAS9vK,OAAOo+E,iBAChB,IAAA/wE,GACE,OAAO,QAAcjS,KAAM4W,UAC7B,GAGWq6O,GAAe,CAACV,GAAaQ,GAAeD,GAAeD,GAAcD,GAAiBD,GAAeD,GAAeM,IAOxHE,GAA8Br/O,OAAOwP,IAFxB,mBAGpB8vO,GAAmB,CAEvB5vO,GAAI9c,GAAKA,GAGE2sP,GAAc1jP,GAAQy9O,EAAiB1mN,GAASU,GAAYV,EAAM6C,YAAY55B,KAQ9E2jP,IAA+B,QAAK,EAAG,CAAC3jP,EAAM2P,IAAM+kB,GAAQgvN,GAAY1jP,GAAO2P,IAE/Ei0O,IAA2B,QAAK,EAAG,CAAC5jP,EAAM3L,IAAUwvP,GAAe7jP,EAAM,IAAM,MAAC,EAAQ3L,KASxFwvP,IAA8B,QAAK,EAAG,CAAC7jP,EAAM2P,IAAM8tO,EAAiBt/O,IAC/E,MAAOhE,EAAGD,GAAKyV,EAAExR,EAAMy7B,YAAY55B,IAEnC,OADA7B,EAAM6xC,YAAYhwC,EAAM9F,GACjB48B,GAAQ38B,MAsCdiU,EAAA,GAGA+xH,EAAA,GAWI,MAaMkhH,IAA+B,QAAK,EAAG,CAAC3xL,EAAK1vD,EAAM3L,IAAUspP,EAAkB2E,GAAQoB,GAAY1jP,GAAO4jP,GAAY5jP,EAAM3L,IAAS,IAAMq7D,EAAKhzC,GAAYknO,GAAY5jP,EAAM0c,KAE9KonO,IAAmC,QAAK,EAAG,CAACp0L,EAAK1vD,EAAM2P,IAAMg0O,GAAgB3jP,EAAM9F,GAAKmnP,GAAgB3xL,EAAK1vD,EAAM2P,EAAEzV,MAErH6pP,GAAqB,CAAC3zM,EAASl4C,IAAY8rP,GAAwB5zM,EAAS,CACvF/xB,OAAQ,OACRq6B,KAAMxgD,GAASwgD,MAAQ,KACvBzxC,KAAM/O,GAAS+O,OAGJg9O,GAA4B7zM,IACvC,MAAM/xB,EAAS,OACf,OAAO2lO,GAAwB5zM,EAAS,CACtC/xB,SACAq6B,KAAMr6B,EAAOlC,SAYJ+nO,GAA4B9zM,IACvC,MAAM/xB,EAAS,OACf,OAAO2lO,GAAwB5zM,EAAS,CACtC/xB,SACAq6B,KAAMr6B,EAAOlC,SAIJ6nO,GAA0B,CAAC5zM,EAASl4C,KAC7B,IACb,KACH,CAACsrP,IAAiBC,GAClBrzM,UACA,MAAAp8B,GACE,OAAO0vO,GAAYpxP,KACrB,EACAmqB,KAAM,CAACC,EAAUC,IAAazkB,EAAQmmB,OAAO5B,KAAKC,EAAUC,GAC5DS,QAAS,CAACC,EAAOC,IAAWplB,EAAQmmB,OAAOjB,QAAQC,EAAOC,GAC1DR,MAAOA,GAASJ,GAAYxkB,EAAQmmB,OAAOvB,MAAMA,EAAOJ,GACxDg8B,KAAMxgD,EAAQwgD,KACdzxC,KAAM/O,EAAQ+O,MAAQ,EAAElQ,EAAGyU,IAAMA,KAKxB24O,GAAiC/zM,GAAW4zM,GAAwB5zM,EAAS,CACxF/xB,OAAQwT,EAAA,GACR6mB,KAAM7mB,EAAA,GAAqB1V,QAGhBmyB,IAA8B,OAAyBnqC,OAAOwP,IAAI,kCAAmC,IAAMuwO,GAA0B3oH,EAAA,OAErI6oH,IAAyC,OAAyBjgP,OAAOwP,IAAI,6CAA8C,IAAMowO,GAAmB,IAEpJM,IAAwC,OAAyBlgP,OAAOwP,IAAI,4CAA6C,IAAMowO,GAAmB,OAElJO,IAAqC,OAAyBngP,OAAOwP,IAAI,wCAAyC,IAAMowO,GAAmB7yG,EAAA,OAE3IqzG,IAA+B,OAAyBpgP,OAAOwP,IAAI,mCAAoC,IAAMowO,GAAmBZ,KAEhIqB,IAA8B,OAAyBrgP,OAAOwP,IAAI,kCAAmC,IAAMowO,GAAmBlvG,EAAA,OAE9HwtG,IAAsC,QAAK,EAAG,CAACriP,EAAMwzC,IAAc6tM,GAAgBrhP,EAAMokP,GAA2B5wM,IAEpHixM,IAAqC,QAAK,EAAG,CAACzkP,EAAMwzC,IAAc6tM,GAAgBrhP,EAAMqkP,GAA0B7wM,IAElHouM,IAAkC,OAAyBz9O,OAAOwP,IAAI,sCAAuC,IAAMowO,GAAmB,cAItIhC,IAAsC,OAAyB59O,OAAOwP,IAAI,0CAA2C,IAAMowO,IAAmB,IAE9IW,IAA6C,OAAyBvgP,OAAOwP,IAAI,iDAAkD,IAAMowO,GAAmB,KAAYX,MAExKuB,IAAmD,OAAyBxgP,OAAOwP,IAAI,gDAAiD,IAAMowO,GAAmB,KAAYb,MAE7K0B,IAA0C,QAAK,EAAG,CAAC5kP,EAAM0xC,IAAU2vM,GAAgBrhP,EAAM0kP,GAA+BhzM,IAExHmzM,IAAmC,OAAyB1gP,OAAOwP,IAAI,uCAAwC,IAlE7Ey8B,KAC7C,MAAM/xB,EAAS,KAA6B,QAC5C,OAAO2lO,GAAwB5zM,EAAS,CACtC/xB,SACAq6B,KAAMr6B,EAAOlC,SA8DiH2oO,CAAgC,SAErJC,GAA4BrB,GAAYmB,IAExCzD,IAAwC,OAAyBj9O,OAAOwP,IAAI,4CAA6C,IAAMowO,GAAmB,OAAe,CAC5KrrM,KAAM,IAAM,OACZzxC,KAAM,CAAC61B,EAAQ/lC,IAAM+lC,KAGVkoN,IAAuC,OAAyB7gP,OAAOwP,IAAI,2CAA4C,IAAMowO,GAAmB,KAAqB,CAChLrrM,KAAM,IAAM,KACZzxC,KAAM,CAAC61B,EAAQ/lC,IAAM+lC,KAGVolN,IAAoC,OAAyB/9O,OAAOwP,IAAI,wCAAyC,IAAMowO,IAAmB,IAE1I3B,IAA0C,OAAyBj+O,OAAOwP,IAAI,uCAAwC,IAAMowO,IAAmB,IAE/IkB,IAA4C,OAAyB9gP,OAAOwP,IAAI,gDAAiD,IAAMowO,GAAmB7yG,EAAA,OAE1Jg0G,IAAsC,OAAyB/gP,OAAOwP,IAAI,0CAA2C,IAAMowO,GAAmB,SAK9IoB,GAA2BhhP,OAAOwP,IAAI,gBAEtCyxO,GAAoCjhP,OAAOwP,IAAI,yBAE/C0xO,GAAoB,CAACrlP,EAAMslP,IAActlP,EAAK+4C,aAAa,IAAMglM,EAAOuH,IAExEC,GAAwB,CAACvlP,EAAMslP,IAActlP,EAAK+4C,aAAausM,GAE/DE,GAAa,CAACxlP,EAAMq0B,IAASr0B,EAAK64C,MAAMxkB,GAExCoxN,GAAY,CAACzlP,EAAMo4C,IAAap4C,EAAK04C,KAAKN,GAK1CstM,GAAc1lP,GAClB2lP,GAAgB,KAAhBA,CAA0B3lP,GAGtB2lP,IAA+B,QAAK,EAAG,CAAC3lP,EAAM2P,KACzD,MAAM6E,GAAS,QAAKxU,EAAM,KAA6B,KAAW2P,IAClE,OAAQ6E,EAAOC,MACb,IAAK,OAED,OAAO,QAAK,KAAsBzU,GAAO,KAAY,KAAa,CAChE+U,OAAQ,KACN,MAAM6wO,EAAa,KAAiB,KAA2B5lP,IAAO00B,QAAQ8H,GAAW,KAAiB0hN,EAAA,GAAY1hN,IAAUxoC,IAAI4hB,GAAM,IAAIA,MAC9I,OAAO,IAAIiwO,GAAqBD,EAAa,0BAA0BA,EAAW3+O,KAAK,aAAU,IAEnG+N,OAAQ,QAGd,IAAK,OAED,OAAOR,EAAOngB,SAQTyxP,GAA8B,WACzC,MAAMA,UAAuBxzN,WAAW54B,MACtC,MAAAsa,GACE,OAAO8tD,GAAKxvE,KACd,CACA,MAAAi4B,GACE,MAAM/lB,EAAM,IACPlS,MAIL,OAFIA,KAAKuU,UAASrC,EAAIqC,QAAUvU,KAAKuU,SACjCvU,KAAKsU,QAAOpC,EAAIoC,MAAQtU,KAAKsU,OAC1BpC,CACT,CACA,CAAC,QACC,OAAIlS,KAAKuI,WAAay3B,WAAW54B,MAAMpG,UAAUuH,SACxCvI,KAAKogC,MAAQ,GAAGpgC,KAAKuI,eAAevI,KAAKogC,MAAM17B,MAAM,MAAML,MAAM,GAAGsQ,KAAK,QAAU3U,KAAKuI,WACtF,QAASy3B,WACX,KAAqB,KAAmBhgC,MAAO,CACpDusC,kBAAkB,IAGfvsC,IACT,EAIF,OADA4B,OAAO+nB,OAAO6pO,EAAexyP,UAAW,MACjCwyP,CACT,CA3B2C,GA4BrCC,GAAgB,CAAClnJ,EAAO/tE,KAC5B,MAAMn/B,UAAam0P,GACjBrxO,KAAOqc,EAIT,OAFA58B,OAAO+nB,OAAOtqB,EAAK2B,UAAWurG,GAC9BltG,EAAK2B,UAAUiD,KAAOu6B,EACfn/B,GAGIq0P,GAAsC7hP,OAAOwP,IAAI,wCAEjD0rO,GAAgC0G,GAAc,CACzD,CAACC,IAAyBA,IACzB,oBAEUC,GAAqB9+N,IAAK,QAAYA,EAAG6+N,IAEzCE,GAA0C/hP,OAAOwP,IAAI,4CAErDkyO,GAAoCE,GAAc,CAC7D,CAACG,IAA6BA,IAC7B,wBAEUC,GAAyBh/N,IAAK,QAAYA,EAAG++N,IAE7CE,GAA8CjiP,OAAOwP,IAAI,uCAEzDs0K,GAAwC89D,GAAc,CACjE,CAACK,IAAiCA,IACjC,4BAEUC,GAA6Bl/N,IAAK,QAAYA,EAAGi/N,IAEjDE,GAA4CniP,OAAOwP,IAAI,qCAEvD4yO,GAAsCR,GAAc,CAC/D,CAACO,IAA+BA,IAC/B,0BAEUE,GAA2Br/N,IAAK,QAAYA,EAAGm/N,IAE/CG,GAAoDtiP,OAAOwP,IAAI,sDAM/D+yO,GAA+CviP,OAAOwP,IAAI,iDAE1DgzO,GAAyCZ,GAAc,CAClE,CAACW,IAAkCA,IAClC,6BAEUE,GAA8Bz/N,IAAK,QAAYA,EAAGu/N,IAIlDG,GAAsC1iP,OAAOwP,IAAI,+BAEjDmzO,GAAgCf,GAAc,CACzD,CAACc,IAAyBA,IACzB,oBAEUE,GAA+B90G,GAAY,IAAI60G,GAAiB,8BAA8BxvG,EAAA,GAAgBrF,OAE9G+0G,GAAqB7/N,IAAK,QAAYA,EAAG0/N,IAEzCI,GAAsC9iP,OAAOwP,IAAI,wCAEjD+rO,GAAgC,WAC3C,MAAMA,UAAyBoG,GAC7BrxO,KAAO,mBACPlX,MACA,WAAAiJ,CAAYI,EAAOC,GACjBE,MAAMF,GAAW,4BAA6B,CAC5CD,UAEFtU,KAAKiL,MAAQqJ,CACf,EAMF,OAJA1S,OAAO+nB,OAAOyjO,EAAiBpsP,UAAW,CACxC,CAAC2zP,IAAyBA,GAC1B1wP,KAAM,qBAEDmpP,CACT,CAhB6C,GAkBhCwH,GAAqB//N,IAAK,QAAYA,EAAG8/N,IAKzC1J,GAAap2N,GAAK4zB,EAAS5zB,IAAM,SAAUA,IAAiB,YAAXA,EAAE1S,MAAiC,YAAX0S,EAAE1S,MAE3E0yO,GAAgBnnP,GAAsB,YAAdA,EAAKyU,KAE7BgsO,GAAgBzgP,GAAsB,YAAdA,EAAKyU,KAE7B2yO,GAAoBpnP,IAC/B,OAAQA,EAAKyU,MACX,KAAK,KACH,OAAO,KAA4BzU,EAAKitC,uBAC1C,KAAK,KACH,OAAO,IAIAo6M,IAAsB,QAAK,EAAG,CAACrnP,EAAM3L,KAChD,OAAQ2L,EAAKyU,MACX,KAAK,KAED,OAAOijB,GAAc13B,EAAKitC,uBAE9B,KAAK,KAED,OAAOxV,GAAYpjC,MAKdizP,GAAatnP,GAAQqnP,GAAOrnP,OAAM,GAElCunP,GAAkBvnP,IAC7B,OAAQA,EAAKyU,MACX,KAAK,KACH,OAAO,KAAYzU,EAAKitC,uBAC1B,KAAK,KACH,OAAO,SAIAu6M,GAAiB,CAAC9wM,EAAOx+C,IAAYuvP,GAAuB/wM,EAAOx+C,GAASkiC,SAAW,KAAyB,MAEhHpF,GAAUnC,GAAU6E,GAAc,KAAkB7E,IAEpD60N,IAA0B,QAAK,EAAG,CAAC1nP,EAAM+hD,KACpD,OAAQ/hD,EAAKyU,MACX,KAAK,KACH,OAAO,EACT,KAAK,KACH,OAAOstC,EAAW/hD,EAAKitC,0BAIhB06M,GAAWpqP,GAASm6B,GAAc,KAAmBn6B,IAErDm6B,GAAgB9wB,IAC3B,MAAMstB,EAAS,IAAIopN,EAAuB,MAE1C,OADAppN,EAAO+Y,sBAAwBrmC,EACxBstB,GAGI0zN,IAA2B,QAAK,EAAG,CAAC5nP,EAAM2P,KACrD,OAAQ3P,EAAKyU,MACX,KAAK,KAED,OAAOijB,GAAc13B,EAAKitC,uBAE9B,KAAK,KAED,OAAOt9B,EAAE3P,EAAKitC,0BAKT46M,IAAiC,QAAK,EAAG,CAAC7nP,EAAM2P,KAC3D,OAAQ3P,EAAKyU,MACX,KAAK,KAED,OAAOqiB,GAAQY,GAAc13B,EAAKitC,wBAEtC,KAAK,KAED,OAAOt9B,EAAE3P,EAAKitC,0BAKT66M,GAAc9nP,IAAQ,QAAKA,EAAM4nP,GAAY,OAE7CG,IAAiC,QAAK,EAAG,CAAC/nP,EAAM2P,KAC3D,OAAQ3P,EAAKyU,MACX,KAAK,KAED,OAAOqiB,GAAQY,GAAc13B,EAAKitC,wBAEtC,KAAK,KAED,OAAO5Y,GAAK1kB,EAAE3P,EAAKitC,2BAKd+6M,GAAiBlxG,IAC5B,OAAQA,EAAOriI,MACb,IAAK,OACH,OAAOkzO,GAAS7wG,EAAOj6H,MACzB,IAAK,QACH,OAAO4a,GAAYq/G,EAAO75H,SAInBgrO,GAAiBzzO,IAC5B,OAAQA,EAAOC,MACb,IAAK,OACH,OAAOkzO,QAAS,GAClB,IAAK,OACH,OAAOlwN,GAAYjjB,EAAOngB,SAInB6zP,IAA6B,QAAK,EAAG,CAACloP,EAAM2yD,KACvD,OAAQ3yD,EAAKyU,MACX,KAAK,KACH,OAAOk+C,EAAO3yD,EAAKitC,uBACrB,KAAK,KACH,OAAOjtC,EAAKitC,yBAILjZ,GAAgBwI,GAAW9E,GAAc,IAAwB8E,IAEjE2rN,IAAuB,QAAK,EAAG,CAACnoP,EAAM2P,KACjD,OAAQ3P,EAAKyU,MACX,KAAK,KACH,OAAOijB,GAAc13B,EAAKitC,uBAC5B,KAAK,KACH,OAAOxV,GAAY9nB,EAAE3P,EAAKitC,2BAInBm7M,IAA2B,QAAK,EAAG,CAACpoP,GAC/C84B,YACAvB,gBAEA,OAAQv3B,EAAKyU,MACX,KAAK,KACH,OAAOijB,IAAc,QAAK13B,EAAKitC,sBAAuB,KAAkBnU,KAC1E,KAAK,KACH,OAAOrB,GAAYF,EAAUv3B,EAAKitC,2BAI3Bo7M,IAA4B,QAAK,EAAG,CAACroP,EAAM2P,KACtD,OAAQ3P,EAAKyU,MACX,KAAK,KACH,OAAOijB,IAAc,QAAK13B,EAAKitC,sBAAuB,KAAkBt9B,KAC1E,KAAK,KACH,OAAO8nB,GAAYz3B,EAAKitC,0BAIjBq7M,IAAiC,QAAK,EAAG,CAACtoP,EAAM2P,KAC3D,OAAQ3P,EAAKyU,MACX,KAAK,KACH,OAAOijB,GAAc/nB,EAAE3P,EAAKitC,wBAC9B,KAAK,KACH,OAAOxV,GAAYz3B,EAAKitC,0BAIjB4zM,IAAyB,QAAK,EAAG,CAAC7gP,GAC7C84B,YACAvB,gBAEA,OAAQv3B,EAAKyU,MACX,KAAK,KACH,OAAOqkB,EAAU94B,EAAKitC,uBACxB,KAAK,KACH,OAAO1V,EAAUv3B,EAAKitC,0BAIfs7M,IAA+B,QAAK,EAAG,CAACvoP,GACnD84B,YACAvB,gBAEA,OAAQv3B,EAAKyU,MACX,KAAK,KACH,OAAOqkB,EAAU94B,EAAKitC,uBACxB,KAAK,KACH,OAAO1V,EAAUv3B,EAAKitC,0BAIfxV,GAAcpjC,IACzB,MAAM6/B,EAAS,IAAIspN,EAAuB,MAE1C,OADAtpN,EAAO+Y,sBAAwB54C,EACxB6/B,GAGIiD,GAAwBM,QAAY,GAEpC+wN,IAAuB,QAAK,EAAG,CAACxoP,EAAM8J,IAAS2+O,GAAYzoP,EAAM8J,EAAM,CAClFytB,UAAW,CAACr9B,EAAG2sB,IAAO,CAAC3sB,EAAG2sB,GAC1BiS,UAAW,QAGA4vN,IAA2B,QAAK,EAAG,CAAC1oP,EAAM8J,IAAS2+O,GAAYzoP,EAAM8J,EAAM,CACtFytB,UAAW,CAACr9B,EAAGnD,IAAMmD,EACrB4+B,UAAW,QAGA6vN,IAA4B,QAAK,EAAG,CAAC3oP,EAAM8J,IAAS2+O,GAAYzoP,EAAM8J,EAAM,CACvFytB,UAAW,CAACxgC,EAAG8vB,IAAOA,EACtBiS,UAAW,QAGA8vN,IAA0B,QAAK,EAAG,CAAC5oP,EAAM8J,IAAS2+O,GAAYzoP,EAAM8J,EAAM,CACrFytB,UAAW,CAACr9B,EAAG2sB,IAAO,CAAC3sB,EAAG2sB,GAC1BiS,UAAW,QAGA+vN,IAA8B,QAAK,EAAG,CAAC7oP,EAAM8J,IAAS2+O,GAAYzoP,EAAM8J,EAAM,CACzFytB,UAAW,CAACr9B,EAAGnD,IAAMmD,EACrB4+B,UAAW,QAGAgwN,IAA+B,QAAK,EAAG,CAAC9oP,EAAM8J,IAAS2+O,GAAYzoP,EAAM8J,EAAM,CAC1FytB,UAAW,CAACxgC,EAAG8vB,IAAOA,EACtBiS,UAAW,QAGA2vN,IAA2B,QAAK,EAAG,CAACzoP,EAAM8J,GACrDgvB,YACAvB,gBAEA,OAAQv3B,EAAKyU,MACX,KAAK,KAED,OAAQ3K,EAAK2K,MACX,KAAK,KACH,OAAOijB,GAAc13B,EAAKitC,uBAC5B,KAAK,KAED,OAAOvV,GAAcoB,EAAU94B,EAAKitC,sBAAuBnjC,EAAKmjC,wBAI1E,KAAK,KAED,OAAQnjC,EAAK2K,MACX,KAAK,KACH,OAAOgjB,GAAYF,EAAUv3B,EAAKitC,sBAAuBnjC,EAAKmjC,wBAChE,KAAK,KACH,OAAOvV,GAAc5tB,EAAKmjC,2BAKhCw6M,GAAyB,CAAC/wM,EAAOqyM,KACrC,MAAMv8O,EAAO,KAAmBkqC,GAChC,OAAK,KAAiBlqC,IAGf,QAAK,KAAmBA,GAAO,MAAW,QAAK,KAAmBA,GAAO27O,GAAQ,OAAY,CAACtwF,EAAa7zJ,KAAY,QAAK6zJ,EAAa4wF,GAAYzkP,EAAS,CACnKuzB,UAAW,CAAC/qB,EAAMnY,KAAU,QAAKmY,EAAM,KAAcnY,IACrDykC,UAAWiwN,MACPZ,GAAQ,MAAgBA,GAAQ/qP,GAAS,KAAsBA,IAAS,MALrE,QAWE4rP,GAAqBxsN,IACd,IACb,KACH,CAACzC,EAAA,IAA0BA,EAAA,GAC3B57B,MAAO8qP,EAAA,GAAgBlvN,EAAA,GAAiB,KACxC,MAAA/lB,GACE,OAAOk1O,GAAc52P,KACvB,EACAy/B,WAAYyK,IAKH2sN,GAAe,IAAMz0N,GAAQ8H,GAAS5mB,GAAMwzO,GAAexzO,IAE3DwzO,GAAiB5sN,GAAW/6B,GAAK,IAAMunP,GAAmBxsN,IAE1D0sN,GAAgBlpP,GAAQo+O,EAAe/hN,IAClD,MAAMl+B,EAAQ8qP,EAAA,GAAejpP,EAAK7B,OAClC,OAAQA,EAAMsW,MACZ,KAAK,IAED,OAAO4nB,EAAOl+B,EAAM+1B,QAExB,KAAK,IAID,OADA/1B,EAAM2rG,QAAQn0G,KAAK0mC,GACZgtN,GAAwBrpP,EAAMq8B,KAG1Cr8B,EAAK+xB,YAEKu3N,IAAgC,QAAK,EAAG,CAACtpP,EAAMk0B,IAAWosN,GAAapsN,EAAQl0B,IAE/EupP,IAAoC,QAAK,EAAG,CAACvpP,EAAMk0B,IAAWzyB,GAAK,KAC9E,MAAMtD,EAAQ8qP,EAAA,GAAejpP,EAAK7B,OAClC,OAAQA,EAAMsW,MACZ,KAAK,IAED,OAAO,EAEX,KAAK,IAEDw0O,EAAA,GAAejpP,EAAK7B,MAAO47B,EAAA,GAAc7F,IACzC,IAAK,IAAI9gC,EAAI,EAAGiH,EAAM8D,EAAM2rG,QAAQn3G,OAAQS,EAAIiH,EAAKjH,IACnD+K,EAAM2rG,QAAQ12G,GAAG8gC,GAEnB,OAAO,MAKFqsN,IAA4B,QAAK,EAAG,CAACvgP,EAAMq0B,IAASk1N,GAAqBvpP,EAAMq0B,IAE/Em1N,IAA4B,QAAK,EAAG,CAACxpP,EAAMzC,IAAUgsP,GAAqBvpP,EAAM8hE,GAAKvkE,KAErFksP,IAAgC,QAAK,EAAG,CAACzpP,EAAM+zB,IAAaw1N,GAAqBvpP,EAAMw/O,GAASzrN,KAEhG21N,IAAiC,QAAK,EAAG,CAAC1pP,EAAM4G,IAAU2iP,GAAqBvpP,EAAMg3B,GAAUpwB,KAE/F+iP,IAAqC,QAAK,EAAG,CAAC3pP,EAAM+zB,IAAaw1N,GAAqBvpP,EAAMo/O,GAAcrrN,KAE1G61N,IAA2B,QAAK,EAAG,CAAC5pP,EAAM6yB,IAAW02N,GAAqBvpP,EAAM01J,GAAI7iI,KAEpFg3N,IAA+B,QAAK,EAAG,CAAC7pP,EAAM+zB,IAAaw1N,GAAqBvpP,EAAMs/O,GAAQvrN,KAE9F+1N,GAAoB9pP,GAAQ00B,GAAQ8H,GAASA,GAAW+sN,GAAqBvpP,EAAMkgP,GAAc1jN,KAEjGutN,IAAqC,QAAK,EAAG,CAAC/pP,EAAMw8B,IAAY+sN,GAAqBvpP,EAAMkgP,GAAc1jN,KAEzGwtN,GAAiBhqP,GAAQyB,GAAK,IAAMwnP,EAAA,GAAejpP,EAAK7B,OAAOsW,OAAS,KAExEw1O,GAAejqP,GAAQyB,GAAK,KACvC,MAAMtD,EAAQ8qP,EAAA,GAAejpP,EAAK7B,OAClC,OAAQA,EAAMsW,MACZ,KAAK,IAED,OAAO,KAAYtW,EAAM+1B,QAE7B,KAAK,IAED,OAAO,UAKFg2N,IAA+B,QAAK,EAAG,CAAClqP,EAAM3L,IAAUk1P,GAAqBvpP,EAAM82B,GAAQziC,KAE3F81P,IAA4B,QAAK,EAAG,CAACnqP,EAAM+zB,IAAaw1N,GAAqBvpP,EAAMyB,GAAKsyB,KAExFq2N,GAAqB,CAACpqP,EAAMk0B,KACvC,MAAM/1B,EAAQ8qP,EAAA,GAAejpP,EAAK7B,OAClC,GAAIA,EAAMsW,OAAS,IAAkC,CACnDw0O,EAAA,GAAejpP,EAAK7B,MAAO47B,EAAA,GAAc7F,IACzC,IAAK,IAAI9gC,EAAI,EAAGiH,EAAM8D,EAAM2rG,QAAQn3G,OAAQS,EAAIiH,EAAKjH,IACnD+K,EAAM2rG,QAAQ12G,GAAG8gC,EAErB,GAEIm1N,GAA0B,CAACrpP,EAAMqqP,IAAW5oP,GAAK,KACrD,MAAMtD,EAAQ8qP,EAAA,GAAejpP,EAAK7B,OAClC,GAAIA,EAAMsW,OAAS,IAAkC,CACnD,MAAM7H,EAAQzO,EAAM2rG,QAAQ5qG,QAAQmrP,GAChCz9O,GAAS,GAEXzO,EAAM2rG,QAAQl2E,OAAOhnB,EAAO,EAEhC,IAKI09O,GAA4B7M,EAAiB1mN,GAASU,GAAYV,EAAMuX,iBAEjEniC,GAAU,IAAMm+O,GAIhBC,GAAoB56O,GAAK+kB,GAAQvoB,KAAWwD,GAE5C6oB,IAA8B,QAAK,EAAG,CAACx4B,EAAMmM,IAAYk1O,GAAgB/yM,GAAgBniC,EAAhCk1O,CAAyCrhP,IAElGwqP,IAAkC,QAAK,EAAG,CAACxqP,EAAMmM,IAAY23O,GAAoBx1M,GAAgBxR,GAAUy+F,EAAA,GAAcz+F,EAAQ3wB,GAApE23O,CAA8E9jP,IAE3IyqP,IAA+B,QAAK,EAAG,CAACzqP,EAAM2P,IAAM46O,GAAkBp+O,GAAWqsB,GAAex4B,EAAM2P,EAAExD,MAKxGu+O,IAAkC,QAAK,EAAG,CAAC1qP,EAAM9H,IAAYw8B,GAAQ10B,EAAM9F,GAAKw6B,GAAQx8B,EAAQ+8F,UAAU/6F,GAAIywP,GAAQA,EAAO7zN,GAAQ58B,GAAKhC,EAAQy6D,OAAOz4D,MAEzJ0wP,IAAkC,QAAK,EAAG,CAAC5qP,EAAM9H,IAAYwyP,GAAmB1qP,EAAM,CACjGi1F,UAAW/8F,EAAQ+8F,UACnBtiC,OAAQz4D,GAAK4nE,GAAK5pE,EAAQg7I,WAAWh5I,OAM1BglP,GAAuBnoN,IAClC,MAAM+H,EAAO/H,EAAMsX,YACnB,YAAgBtwC,IAAT+gC,GAAoC,SAAdA,EAAKrqB,KAAkB,KAAYqqB,GAAQ,QAEpE+rN,GAAgB,CACpBp2O,KAAM,OACNgmF,OAAQ,OACRC,QAAS,OACTC,SAAS,EACThgG,OAAQ,CACN8Z,KAAM,QACN+lF,UAAwB52D,OAAO,GAC/Bi3D,QAAsBj3D,OAAO,GAC7BvP,KAAM8C,IAERke,WAAyB,IAAIx2B,IAC7B+7E,MAAO,GACPh/C,KAAM,WACN,SAAAk/C,GAAa,EACb,KAAAxlD,GAAS,EACT,GAAA/vC,GAAO,EACP,QAAAw1F,GAAY,GAGD+vJ,GAAW5yP,GAAWhE,OAAO+nB,OAAO/nB,OAAOsL,OAAOqrP,IAAgB3yP,E,4BCpkD/E,IAAItG,EAAS,gBACT2N,EAAO,EAAQ,OAEnB,SAAS43E,EAAWlP,EAAK5/D,EAAQpR,GAC/BgxE,EAAIx8D,KAAKpD,EAAQpR,EACnB,CAEAtD,EAAOC,QAAU,WACf,SAASwjF,KAVX,SAAyBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIzyE,UAAU,oCAAwC,CAWpJ0yE,CAAgBjlF,KAAM8kF,GAEtB9kF,KAAKmrB,KAAO,KACZnrB,KAAKorB,KAAO,KACZprB,KAAKK,OAAS,CAChB,CAmDA,OAjDAykF,EAAW9jF,UAAUqC,KAAO,SAAcyxB,GACxC,IAAI9oB,EAAQ,CAAE9K,KAAM4zB,EAAG/oB,KAAM,MACzB/L,KAAKK,OAAS,EAAGL,KAAKorB,KAAKrf,KAAOC,EAAWhM,KAAKmrB,KAAOnf,EAC7DhM,KAAKorB,KAAOpf,IACVhM,KAAKK,MACT,EAEAykF,EAAW9jF,UAAUgX,QAAU,SAAiB8c,GAC9C,IAAI9oB,EAAQ,CAAE9K,KAAM4zB,EAAG/oB,KAAM/L,KAAKmrB,MACd,IAAhBnrB,KAAKK,SAAcL,KAAKorB,KAAOpf,GACnChM,KAAKmrB,KAAOnf,IACVhM,KAAKK,MACT,EAEAykF,EAAW9jF,UAAUqZ,MAAQ,WAC3B,GAAoB,IAAhBra,KAAKK,OAAT,CACA,IAAI8R,EAAMnS,KAAKmrB,KAAKjqB,KAGpB,OAFoB,IAAhBlB,KAAKK,OAAcL,KAAKmrB,KAAOnrB,KAAKorB,KAAO,KAAUprB,KAAKmrB,KAAOnrB,KAAKmrB,KAAKpf,OAC7E/L,KAAKK,OACA8R,CAJsB,CAK/B,EAEA2yE,EAAW9jF,UAAUy7G,MAAQ,WAC3Bz8G,KAAKmrB,KAAOnrB,KAAKorB,KAAO,KACxBprB,KAAKK,OAAS,CAChB,EAEAykF,EAAW9jF,UAAU2T,KAAO,SAAc4b,GACxC,GAAoB,IAAhBvwB,KAAKK,OAAc,MAAO,GAG9B,IAFA,IAAIiyB,EAAItyB,KAAKmrB,KACThZ,EAAM,GAAKmgB,EAAEpxB,KACVoxB,EAAIA,EAAEvmB,MACXoG,GAAOoe,EAAI+B,EAAEpxB,KACd,OAAOiR,CACV,EAEA2yE,EAAW9jF,UAAUR,OAAS,SAAgB0Y,GAC5C,GAAoB,IAAhBlZ,KAAKK,OAAc,OAAOf,EAAOK,MAAM,GAI3C,IAHA,IAAIwS,EAAM7S,EAAOqB,YAAYuY,IAAM,GAC/BoZ,EAAItyB,KAAKmrB,KACTrqB,EAAI,EACDwxB,GACLuyD,EAAWvyD,EAAEpxB,KAAMiR,EAAKrR,GACxBA,GAAKwxB,EAAEpxB,KAAKb,OACZiyB,EAAIA,EAAEvmB,KAER,OAAOoG,CACT,EAEO2yE,CACT,CA3DiB,GA6Db73E,GAAQA,EAAKmrB,SAAWnrB,EAAKmrB,QAAQwsD,SACvCvjF,EAAOC,QAAQN,UAAUiM,EAAKmrB,QAAQwsD,QAAU,WAC9C,IAAI1yE,EAAMjF,EAAKmrB,QAAQ,CAAE/3B,OAAQL,KAAKK,SACtC,OAAOL,KAAKkU,YAAYjQ,KAAO,IAAMiO,CACvC,E,4DCnBK,SAASumP,EAAMC,GAClB,MAAO,CACH/yP,QAAS+yP,EAAW/yP,QACpBgzP,OAAQC,EAAA,GAAeF,EAAWC,QAClCr+O,MAAOs+O,EAAA,GAAeF,EAAWp+O,OACjCu+O,eAAgBD,EAAA,GAAeF,EAAWG,gBAElD,CCwBO,SAAS,EAAM5xI,GAClB,MAAO,IACyC,iBAAjCA,EAAe5kD,eAA8B,CACpDA,cAAeu2L,EAAA,GAAe3xI,EAAe5kD,mBAEP,iBAA/B4kD,EAAe6xI,aAA4B,CAClDA,YAAaF,EAAA,GAAe3xI,EAAe6xI,iBAEJ,iBAAhC7xI,EAAe8xI,cAA6B,CACnDA,aAAc9xI,EAAe8xI,iBAEM,iBAA5B9xI,EAAexkD,UAAyB,CAC/CA,SAAUm2L,EAAA,GAAe3xI,EAAexkD,cAEP,iBAA1BwkD,EAAez/F,QAAuB,CAC7CA,OAAQoxO,EAAA,GAAe3xI,EAAez/F,YAED,iBAA9By/F,EAAe+xI,YAA2B,CACjDA,WAAYJ,EAAA,GAAe3xI,EAAe+xI,gBAEX,iBAAxB/xI,EAAe5qD,MAAqB,CAC3CA,KAAMu8L,EAAA,GAAe3xI,EAAe5qD,UAEpC4qD,EAAegyI,aAAe,CAC9BA,YAAahyI,EAAegyI,YAAYv3P,IAAI,IAGxD,C,2CC1FIiK,EAAM,EAAQ,OAGlBtK,EAAOC,QAAU2lD,EAGjB,IAIIz6C,EAJAxD,EAAU,EAAQ,OAOtBi+C,EAAS0gH,cAAgBA,EAGhB,qBAAT,IAEIC,EAAkB,SAAUpxJ,EAASjT,GACvC,OAAOiT,EAAQsD,UAAUvW,GAAMlD,MACjC,EAIIiN,EAAS,EAAQ,MAKjBhO,EAAS,gBACTiO,QAAmC,IAAX,EAAAC,EAAyB,EAAAA,EAA2B,oBAAXC,OAAyBA,OAAyB,oBAATC,KAAuBA,KAAO,CAAC,GAAGC,YAAc,WAAa,EAWvKV,EAAOrL,OAAOsL,OAAO,EAAQ,OACjCD,EAAK9N,SAAW,EAAQ,OAIxB,IAAI0oK,EAAY,EAAQ,OACpBlrD,OAAQ,EAEVA,EADEkrD,GAAaA,EAAUC,SACjBD,EAAUC,SAAS,UAEnB,WAAa,EAIvB,IAEI3oC,EAFAr6C,EAAa,EAAQ,OACrBl3E,EAAc,EAAQ,OAG1BX,EAAK9N,SAAS8nD,EAAU35C,GAExB,IAAIy6J,EAAe,CAAC,QAAS,QAAS,UAAW,QAAS,UAc1D,SAASJ,EAAc/hK,EAASkI,GAG9BlI,EAAUA,GAAW,CAAC,EAOtB,IAAImI,EAAWD,aATftB,EAASA,GAAU,EAAQ,QAa3BxM,KAAKgO,aAAepI,EAAQoI,WAExBD,IAAU/N,KAAKgO,WAAahO,KAAKgO,cAAgBpI,EAAQoiK,oBAI7D,IAAI95J,EAAMtI,EAAQuI,cACd85J,EAAcriK,EAAQsiK,sBACtB55J,EAAatO,KAAKgO,WAAa,GAAK,MAElBhO,KAAKmO,cAAvBD,GAAe,IAARA,EAAgCA,EAAaH,IAAak6J,GAA+B,IAAhBA,GAAyCA,EAAsC35J,EAGnKtO,KAAKmO,cAAgBnG,KAAKuG,MAAMvO,KAAKmO,eAKrCnO,KAAKiR,OAAS,IAAI6zE,EAClB9kF,KAAKK,OAAS,EACdL,KAAKmoK,MAAQ,KACbnoK,KAAKooK,WAAa,EAClBpoK,KAAKqoK,QAAU,KACfroK,KAAK2O,OAAQ,EACb3O,KAAKw9F,YAAa,EAClBx9F,KAAK0hG,SAAU,EAMf1hG,KAAKmP,MAAO,EAIZnP,KAAK2hG,cAAe,EACpB3hG,KAAKsoK,iBAAkB,EACvBtoK,KAAKuoK,mBAAoB,EACzBvoK,KAAKwoK,iBAAkB,EAGvBxoK,KAAK6O,WAAY,EAKjB7O,KAAKgP,gBAAkBpJ,EAAQoJ,iBAAmB,OAGlDhP,KAAKyoK,WAAa,EAGlBzoK,KAAK0oK,aAAc,EAEnB1oK,KAAKiqG,QAAU,KACfjqG,KAAK+K,SAAW,KACZnF,EAAQmF,WACLo0H,IAAeA,EAAgB,YACpCn/H,KAAKiqG,QAAU,IAAIk1B,EAAcv5H,EAAQmF,UACzC/K,KAAK+K,SAAWnF,EAAQmF,SAE5B,CAEA,SAASk8C,EAASrhD,GAGhB,GAFA4G,EAASA,GAAU,EAAQ,SAErBxM,gBAAgBinD,GAAW,OAAO,IAAIA,EAASrhD,GAErD5F,KAAKu9F,eAAiB,IAAIoqE,EAAc/hK,EAAS5F,MAGjDA,KAAK69E,UAAW,EAEZj4E,IAC0B,mBAAjBA,EAAQm5E,OAAqB/+E,KAAK4hG,MAAQh8F,EAAQm5E,MAE9B,mBAApBn5E,EAAQ+K,UAAwB3Q,KAAK4Q,SAAWhL,EAAQ+K,UAGrErD,EAAOvN,KAAKC,KACd,CA0DA,SAAS2oK,EAAiB76J,EAAQhD,EAAOC,EAAU69J,EAAYC,GAC7D,IAKMv5J,EALFzD,EAAQiC,EAAOyvF,eAgCnB,OA/Bc,OAAVzyF,GACFe,EAAM61F,SAAU,EA0NpB,SAAoB5zF,EAAQjC,GAC1B,IAAIA,EAAM8C,MAAV,CACA,GAAI9C,EAAMo+F,QAAS,CACjB,IAAIn/F,EAAQe,EAAMo+F,QAAQh3F,MACtBnI,GAASA,EAAMzK,SACjBwL,EAAMoF,OAAO5N,KAAKyH,GAClBe,EAAMxL,QAAUwL,EAAMmC,WAAa,EAAIlD,EAAMzK,OAEjD,CACAwL,EAAM8C,OAAQ,EAGdm6J,EAAah7J,EAXU,CAYzB,CAtOIi7J,CAAWj7J,EAAQjC,KAGdg9J,IAAgBv5J,EA2CzB,SAAsBzD,EAAOf,GAC3B,IAAIwE,EApPiB4C,EAwPrB,OAxPqBA,EAqPFpH,EApPZxL,EAAO6K,SAAS+H,IAAQA,aAAe3E,GAoPA,iBAAVzC,QAAgCW,IAAVX,GAAwBe,EAAMmC,aACtFsB,EAAK,IAAIiD,UAAU,oCAEdjD,CACT,CAjD8B05J,CAAan9J,EAAOf,IAC1CwE,EACFxB,EAAO+B,KAAK,QAASP,GACZzD,EAAMmC,YAAclD,GAASA,EAAMzK,OAAS,GAChC,iBAAVyK,GAAuBe,EAAMmC,YAAcpM,OAAO6X,eAAe3O,KAAWxL,EAAO0B,YAC5F8J,EAhNR,SAA6BA,GAC3B,OAAOxL,EAAOW,KAAK6K,EACrB,CA8MgBsH,CAAoBtH,IAG1B89J,EACE/8J,EAAM2xF,WAAY1vF,EAAO+B,KAAK,QAAS,IAAIzI,MAAM,qCAA0C6hK,EAASn7J,EAAQjC,EAAOf,GAAO,GACrHe,EAAM8C,MACfb,EAAO+B,KAAK,QAAS,IAAIzI,MAAM,6BAE/ByE,EAAM61F,SAAU,EACZ71F,EAAMo+F,UAAYl/F,GACpBD,EAAQe,EAAMo+F,QAAQ15F,MAAMzF,GACxBe,EAAMmC,YAA+B,IAAjBlD,EAAMzK,OAAc4oK,EAASn7J,EAAQjC,EAAOf,GAAO,GAAYo+J,EAAcp7J,EAAQjC,IAE7Go9J,EAASn7J,EAAQjC,EAAOf,GAAO,KAGzB89J,IACV/8J,EAAM61F,SAAU,IAoCtB,SAAsB71F,GACpB,OAAQA,EAAM8C,QAAU9C,EAAM81F,cAAgB91F,EAAMxL,OAASwL,EAAMsC,eAAkC,IAAjBtC,EAAMxL,OAC5F,CAlCS8oK,CAAat9J,EACtB,CAEA,SAASo9J,EAASn7J,EAAQjC,EAAOf,EAAO89J,GAClC/8J,EAAMw8J,SAA4B,IAAjBx8J,EAAMxL,SAAiBwL,EAAMsD,MAChDrB,EAAO+B,KAAK,OAAQ/E,GACpBgD,EAAOixE,KAAK,KAGZlzE,EAAMxL,QAAUwL,EAAMmC,WAAa,EAAIlD,EAAMzK,OACzCuoK,EAAY/8J,EAAMoF,OAAO+G,QAAQlN,GAAYe,EAAMoF,OAAO5N,KAAKyH,GAE/De,EAAM81F,cAAcmnE,EAAah7J,IAEvCo7J,EAAcp7J,EAAQjC,EACxB,CAxGAjK,OAAOgQ,eAAeq1C,EAASjmD,UAAW,YAAa,CACrDgF,IAAK,WACH,YAA4ByF,IAAxBzL,KAAKu9F,gBAGFv9F,KAAKu9F,eAAe1uF,SAC7B,EACA1I,IAAK,SAAUpE,GAGR/B,KAAKu9F,iBAMVv9F,KAAKu9F,eAAe1uF,UAAY9M,EAClC,IAGFklD,EAASjmD,UAAU2P,QAAU/C,EAAY+C,QACzCs2C,EAASjmD,UAAUoS,WAAaxF,EAAYyF,UAC5C4zC,EAASjmD,UAAU4P,SAAW,SAAU1F,EAAKiB,GAC3CnM,KAAKqD,KAAK,MACV8I,EAAGjB,EACL,EAMA+7C,EAASjmD,UAAUqC,KAAO,SAAUyH,EAAOC,GACzC,IACI89J,EADAh9J,EAAQ7L,KAAKu9F,eAgBjB,OAbK1xF,EAAMmC,WAUT66J,GAAiB,EATI,iBAAV/9J,KACTC,EAAWA,GAAYc,EAAMmD,mBACZnD,EAAMd,WACrBD,EAAQxL,EAAOW,KAAK6K,EAAOC,GAC3BA,EAAW,IAEb89J,GAAiB,GAMdF,EAAiB3oK,KAAM8K,EAAOC,GAAU,EAAO89J,EACxD,EAGA5hH,EAASjmD,UAAUgX,QAAU,SAAUlN,GACrC,OAAO69J,EAAiB3oK,KAAM8K,EAAO,MAAM,GAAM,EACnD,EAuEAm8C,EAASjmD,UAAUooK,SAAW,WAC5B,OAAuC,IAAhCppK,KAAKu9F,eAAe8qE,OAC7B,EAGAphH,EAASjmD,UAAUqoK,YAAc,SAAUziK,GAIzC,OAHKu4H,IAAeA,EAAgB,YACpCn/H,KAAKu9F,eAAe0M,QAAU,IAAIk1B,EAAcv4H,GAChD5G,KAAKu9F,eAAexyF,SAAWnE,EACxB5G,IACT,EAGA,IAAIspK,EAAU,QAoBd,SAASC,EAAcrwJ,EAAGrN,GACxB,OAAIqN,GAAK,GAAsB,IAAjBrN,EAAMxL,QAAgBwL,EAAM8C,MAAc,EACpD9C,EAAMmC,WAAmB,EACzBkL,GAAMA,EAEJrN,EAAMw8J,SAAWx8J,EAAMxL,OAAewL,EAAMoF,OAAOka,KAAKjqB,KAAKb,OAAmBwL,EAAMxL,QAGxF6Y,EAAIrN,EAAMsC,gBAAetC,EAAMsC,cA3BrC,SAAiC+K,GAc/B,OAbIA,GAAKowJ,EACPpwJ,EAAIowJ,GAIJpwJ,IACAA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,GACXA,KAEKA,CACT,CAYqDswJ,CAAwBtwJ,IACvEA,GAAKrN,EAAMxL,OAAe6Y,EAEzBrN,EAAM8C,MAIJ9C,EAAMxL,QAHXwL,EAAM81F,cAAe,EACd,GAGX,CAyHA,SAASmnE,EAAah7J,GACpB,IAAIjC,EAAQiC,EAAOyvF,eACnB1xF,EAAM81F,cAAe,EAChB91F,EAAMy8J,kBACT3rD,EAAM,eAAgB9wG,EAAMw8J,SAC5Bx8J,EAAMy8J,iBAAkB,EACpBz8J,EAAMsD,KAAMxD,EAAIoB,SAAS08J,EAAe37J,GAAa27J,EAAc37J,GAE3E,CAEA,SAAS27J,EAAc37J,GACrB6uG,EAAM,iBACN7uG,EAAO+B,KAAK,YACZ65J,EAAK57J,EACP,CAQA,SAASo7J,EAAcp7J,EAAQjC,GACxBA,EAAM68J,cACT78J,EAAM68J,aAAc,EACpB/8J,EAAIoB,SAAS48J,EAAgB77J,EAAQjC,GAEzC,CAEA,SAAS89J,EAAe77J,EAAQjC,GAE9B,IADA,IAAI9D,EAAM8D,EAAMxL,QACRwL,EAAM61F,UAAY71F,EAAMw8J,UAAYx8J,EAAM8C,OAAS9C,EAAMxL,OAASwL,EAAMsC,gBAC9EwuG,EAAM,wBACN7uG,EAAOixE,KAAK,GACRh3E,IAAQ8D,EAAMxL,SAEL0H,EAAM8D,EAAMxL,OAE3BwL,EAAM68J,aAAc,CACtB,CAwOA,SAASkB,EAAiBl8J,GACxBivG,EAAM,4BACNjvG,EAAKqxE,KAAK,EACZ,CAqBA,SAAS8qF,EAAQ/7J,EAAQjC,GAClBA,EAAM61F,UACTib,EAAM,iBACN7uG,EAAOixE,KAAK,IAGdlzE,EAAM28J,iBAAkB,EACxB38J,EAAM48J,WAAa,EACnB36J,EAAO+B,KAAK,UACZ65J,EAAK57J,GACDjC,EAAMw8J,UAAYx8J,EAAM61F,SAAS5zF,EAAOixE,KAAK,EACnD,CAYA,SAAS2qF,EAAK57J,GACZ,IAAIjC,EAAQiC,EAAOyvF,eAEnB,IADAof,EAAM,OAAQ9wG,EAAMw8J,SACbx8J,EAAMw8J,SAA6B,OAAlBv6J,EAAOixE,SACjC,CAkFA,SAAS+qF,EAAS5wJ,EAAGrN,GAEnB,OAAqB,IAAjBA,EAAMxL,OAAqB,MAG3BwL,EAAMmC,WAAYmE,EAAMtG,EAAMoF,OAAOoJ,SAAkBnB,GAAKA,GAAKrN,EAAMxL,QAEtD8R,EAAftG,EAAMo+F,QAAep+F,EAAMoF,OAAO0D,KAAK,IAAqC,IAAxB9I,EAAMoF,OAAO5Q,OAAoBwL,EAAMoF,OAAOka,KAAKjqB,KAAgB2K,EAAMoF,OAAOzQ,OAAOqL,EAAMxL,QACrJwL,EAAMoF,OAAOwrG,SAGbtqG,EASJ,SAAyB+G,EAAGgB,EAAMirE,GAChC,IAAIhzE,EAYJ,OAXI+G,EAAIgB,EAAKiR,KAAKjqB,KAAKb,QAErB8R,EAAM+H,EAAKiR,KAAKjqB,KAAKmD,MAAM,EAAG6U,GAC9BgB,EAAKiR,KAAKjqB,KAAOgZ,EAAKiR,KAAKjqB,KAAKmD,MAAM6U,IAGtC/G,EAFS+G,IAAMgB,EAAKiR,KAAKjqB,KAAKb,OAExB6Z,EAAKG,QAGL8qE,EASV,SAA8BjsE,EAAGgB,GAC/B,IAAIoY,EAAIpY,EAAKiR,KACT/N,EAAI,EACJjL,EAAMmgB,EAAEpxB,KAEZ,IADAgY,GAAK/G,EAAI9R,OACFiyB,EAAIA,EAAEvmB,MAAM,CACjB,IAAIu5E,EAAMhzD,EAAEpxB,KACRqkF,EAAKrsE,EAAIosE,EAAIjlF,OAASilF,EAAIjlF,OAAS6Y,EAGvC,GAFIqsE,IAAOD,EAAIjlF,OAAQ8R,GAAOmzE,EAASnzE,GAAOmzE,EAAIjhF,MAAM,EAAG6U,GAEjD,KADVA,GAAKqsE,GACQ,CACPA,IAAOD,EAAIjlF,UACX+c,EACEkV,EAAEvmB,KAAMmO,EAAKiR,KAAOmH,EAAEvmB,KAAUmO,EAAKiR,KAAOjR,EAAKkR,KAAO,OAE5DlR,EAAKiR,KAAOmH,EACZA,EAAEpxB,KAAOokF,EAAIjhF,MAAMkhF,IAErB,KACF,GACEnoE,CACJ,CAEA,OADAlD,EAAK7Z,QAAU+c,EACRjL,CACT,CAjCuB43J,CAAqB7wJ,EAAGgB,GAsC/C,SAAwBhB,EAAGgB,GACzB,IAAI/H,EAAM7S,EAAOqB,YAAYuY,GACzBoZ,EAAIpY,EAAKiR,KACT/N,EAAI,EAGR,IAFAkV,EAAEpxB,KAAKiY,KAAKhH,GACZ+G,GAAKoZ,EAAEpxB,KAAKb,OACLiyB,EAAIA,EAAEvmB,MAAM,CACjB,IAAIga,EAAMuM,EAAEpxB,KACRqkF,EAAKrsE,EAAI6M,EAAI1lB,OAAS0lB,EAAI1lB,OAAS6Y,EAGvC,GAFA6M,EAAI5M,KAAKhH,EAAKA,EAAI9R,OAAS6Y,EAAG,EAAGqsE,GAEvB,KADVrsE,GAAKqsE,GACQ,CACPA,IAAOx/D,EAAI1lB,UACX+c,EACEkV,EAAEvmB,KAAMmO,EAAKiR,KAAOmH,EAAEvmB,KAAUmO,EAAKiR,KAAOjR,EAAKkR,KAAO,OAE5DlR,EAAKiR,KAAOmH,EACZA,EAAEpxB,KAAO6kB,EAAI1hB,MAAMkhF,IAErB,KACF,GACEnoE,CACJ,CAEA,OADAlD,EAAK7Z,QAAU+c,EACRjL,CACT,CA/DuD63J,CAAe9wJ,EAAGgB,GAEhE/H,CACT,CAvBU83J,CAAgB/wJ,EAAGrN,EAAMoF,OAAQpF,EAAMo+F,SAGxC93F,GAVP,IAAIA,CAWN,CAiFA,SAAS+3J,EAAYp8J,GACnB,IAAIjC,EAAQiC,EAAOyvF,eAInB,GAAI1xF,EAAMxL,OAAS,EAAG,MAAM,IAAI+G,MAAM,8CAEjCyE,EAAM2xF,aACT3xF,EAAM8C,OAAQ,EACdhD,EAAIoB,SAASo9J,EAAet+J,EAAOiC,GAEvC,CAEA,SAASq8J,EAAct+J,EAAOiC,GAEvBjC,EAAM2xF,YAA+B,IAAjB3xF,EAAMxL,SAC7BwL,EAAM2xF,YAAa,EACnB1vF,EAAO+vE,UAAW,EAClB/vE,EAAO+B,KAAK,OAEhB,CAEA,SAASjD,EAAQ+tI,EAAIjnI,GACnB,IAAK,IAAI5S,EAAI,EAAGkQ,EAAI2pI,EAAGt6I,OAAQS,EAAIkQ,EAAGlQ,IACpC,GAAI65I,EAAG75I,KAAO4S,EAAG,OAAO5S,EAE1B,OAAQ,CACV,CAroBAmmD,EAASjmD,UAAU+9E,KAAO,SAAU7lE,GAClCyjG,EAAM,OAAQzjG,GACdA,EAAIrU,SAASqU,EAAG,IAChB,IAAIrN,EAAQ7L,KAAKu9F,eACb6sE,EAAQlxJ,EAOZ,GALU,IAANA,IAASrN,EAAMy8J,iBAAkB,GAK3B,IAANpvJ,GAAWrN,EAAM81F,eAAiB91F,EAAMxL,QAAUwL,EAAMsC,eAAiBtC,EAAM8C,OAGjF,OAFAguG,EAAM,qBAAsB9wG,EAAMxL,OAAQwL,EAAM8C,OAC3B,IAAjB9C,EAAMxL,QAAgBwL,EAAM8C,MAAOu7J,EAAYlqK,MAAW8oK,EAAa9oK,MACpE,KAMT,GAAU,KAHVkZ,EAAIqwJ,EAAcrwJ,EAAGrN,KAGNA,EAAM8C,MAEnB,OADqB,IAAjB9C,EAAMxL,QAAc6pK,EAAYlqK,MAC7B,KA0BT,IA4BImS,EA5BAk4J,EAASx+J,EAAM81F,aAiDnB,OAhDAgb,EAAM,gBAAiB0tD,IAGF,IAAjBx+J,EAAMxL,QAAgBwL,EAAMxL,OAAS6Y,EAAIrN,EAAMsC,gBAEjDwuG,EAAM,6BADN0tD,GAAS,GAMPx+J,EAAM8C,OAAS9C,EAAM61F,QAEvBib,EAAM,mBADN0tD,GAAS,GAEAA,IACT1tD,EAAM,WACN9wG,EAAM61F,SAAU,EAChB71F,EAAMsD,MAAO,EAEQ,IAAjBtD,EAAMxL,SAAcwL,EAAM81F,cAAe,GAE7C3hG,KAAK4hG,MAAM/1F,EAAMsC,eACjBtC,EAAMsD,MAAO,EAGRtD,EAAM61F,UAASxoF,EAAIqwJ,EAAca,EAAOv+J,KAMnC,QAFDsG,EAAP+G,EAAI,EAAS4wJ,EAAS5wJ,EAAGrN,GAAkB,OAG7CA,EAAM81F,cAAe,EACrBzoF,EAAI,GAEJrN,EAAMxL,QAAU6Y,EAGG,IAAjBrN,EAAMxL,SAGHwL,EAAM8C,QAAO9C,EAAM81F,cAAe,GAGnCyoE,IAAUlxJ,GAAKrN,EAAM8C,OAAOu7J,EAAYlqK,OAGlC,OAARmS,GAAcnS,KAAK6P,KAAK,OAAQsC,GAE7BA,CACT,EAiEA80C,EAASjmD,UAAU4gG,MAAQ,SAAU1oF,GACnClZ,KAAK6P,KAAK,QAAS,IAAIzI,MAAM,8BAC/B,EAEA6/C,EAASjmD,UAAUiR,KAAO,SAAU4jE,EAAMy0F,GACxC,IAAI30F,EAAM31E,KACN6L,EAAQ7L,KAAKu9F,eAEjB,OAAQ1xF,EAAMu8J,YACZ,KAAK,EACHv8J,EAAMs8J,MAAQtyF,EACd,MACF,KAAK,EACHhqE,EAAMs8J,MAAQ,CAACt8J,EAAMs8J,MAAOtyF,GAC5B,MACF,QACEhqE,EAAMs8J,MAAM9kK,KAAKwyE,GAGrBhqE,EAAMu8J,YAAc,EACpBzrD,EAAM,wBAAyB9wG,EAAMu8J,WAAYkC,GAEjD,IAEIC,EAFUD,IAA6B,IAAjBA,EAASr3J,KAAkB4iE,IAASnpE,EAAQmgC,QAAUgpC,IAASnpE,EAAQ89J,OAErEC,EAAR1sF,EAcpB,SAASA,IACP4+B,EAAM,SACN9mC,EAAK5iE,KACP,CAhBIpH,EAAM2xF,WAAY7xF,EAAIoB,SAASw9J,GAAY50F,EAAIziE,KAAK,MAAOq3J,GAE/D10F,EAAK9+D,GAAG,SACR,SAAS2zJ,EAAS7sF,EAAU8sF,GAC1BhuD,EAAM,YACF9+B,IAAalI,GACXg1F,IAAwC,IAA1BA,EAAWC,aAC3BD,EAAWC,YAAa,EAoB5BjuD,EAAM,WAEN9mC,EAAKn/D,eAAe,QAASsnE,GAC7BnI,EAAKn/D,eAAe,SAAUm0J,GAC9Bh1F,EAAKn/D,eAAe,QAASknE,GAC7B/H,EAAKn/D,eAAe,QAASwnE,GAC7BrI,EAAKn/D,eAAe,SAAUg0J,GAC9B/0F,EAAIj/D,eAAe,MAAOqnE,GAC1BpI,EAAIj/D,eAAe,MAAO+zJ,GAC1B90F,EAAIj/D,eAAe,OAAQgnE,GAE3BotF,GAAY,GAORj/J,EAAM48J,YAAgB5yF,EAAKtmE,iBAAkBsmE,EAAKtmE,eAAed,WAAYmvE,IAlCnF,GAWA,IAAIA,EA4FN,SAAqBjI,GACnB,OAAO,WACL,IAAI9pE,EAAQ8pE,EAAI4nB,eAChBof,EAAM,cAAe9wG,EAAM48J,YACvB58J,EAAM48J,YAAY58J,EAAM48J,aACH,IAArB58J,EAAM48J,YAAoBb,EAAgBjyF,EAAK,UACjD9pE,EAAMw8J,SAAU,EAChBqB,EAAK/zF,GAET,CACF,CAtGgBo1F,CAAYp1F,GAC1BE,EAAK9+D,GAAG,QAAS6mE,GAEjB,IAAIktF,GAAY,EA2BZE,GAAsB,EAE1B,SAASttF,EAAO5yE,GACd6xG,EAAM,UACNquD,GAAsB,GAElB,IADMn1F,EAAKtlE,MAAMzF,IACCkgK,KAKM,IAArBn/J,EAAMu8J,YAAoBv8J,EAAMs8J,QAAUtyF,GAAQhqE,EAAMu8J,WAAa,IAAqC,IAAhCx7J,EAAQf,EAAMs8J,MAAOtyF,MAAkBi1F,IACpHnuD,EAAM,8BAA+B9wG,EAAM48J,YAC3C58J,EAAM48J,aACNuC,GAAsB,GAExBr1F,EAAIgI,QAER,CAIA,SAASO,EAAQ5uE,GACfqtG,EAAM,UAAWrtG,GACjBm7J,IACA50F,EAAKn/D,eAAe,QAASwnE,GACU,IAAnC0pF,EAAgB/xF,EAAM,UAAgBA,EAAKhmE,KAAK,QAASP,EAC/D,CAMA,SAAS0uE,IACPnI,EAAKn/D,eAAe,SAAUm0J,GAC9BJ,GACF,CAEA,SAASI,IACPluD,EAAM,YACN9mC,EAAKn/D,eAAe,QAASsnE,GAC7BysF,GACF,CAGA,SAASA,IACP9tD,EAAM,UACNhnC,EAAI80F,OAAO50F,EACb,CAWA,OA1DAF,EAAI5+D,GAAG,OAAQ2mE,GA9gBjB,SAAyBlnE,EAASwsC,EAAOluC,GAGvC,GAAuC,mBAA5B0B,EAAQwD,gBAAgC,OAAOxD,EAAQwD,gBAAgBgpC,EAAOluC,GAMpF0B,EAAQS,SAAYT,EAAQS,QAAQ+rC,GAAuCh6C,EAAQwN,EAAQS,QAAQ+rC,IAASxsC,EAAQS,QAAQ+rC,GAAOhrC,QAAQlD,GAAS0B,EAAQS,QAAQ+rC,GAAS,CAACluC,EAAI0B,EAAQS,QAAQ+rC,IAAtJxsC,EAAQO,GAAGisC,EAAOluC,EACrE,CAiiBEkF,CAAgB67D,EAAM,QAASqI,GAO/BrI,EAAK3iE,KAAK,QAAS8qE,GAMnBnI,EAAK3iE,KAAK,SAAU23J,GAQpBh1F,EAAKhmE,KAAK,OAAQ8lE,GAGb9pE,EAAMw8J,UACT1rD,EAAM,eACNhnC,EAAI5rC,UAGC8rC,CACT,EAcA5uB,EAASjmD,UAAUypK,OAAS,SAAU50F,GACpC,IAAIhqE,EAAQ7L,KAAKu9F,eACbotE,EAAa,CAAEC,YAAY,GAG/B,GAAyB,IAArB/+J,EAAMu8J,WAAkB,OAAOpoK,KAGnC,GAAyB,IAArB6L,EAAMu8J,WAER,OAAIvyF,GAAQA,IAAShqE,EAAMs8J,QAEtBtyF,IAAMA,EAAOhqE,EAAMs8J,OAGxBt8J,EAAMs8J,MAAQ,KACdt8J,EAAMu8J,WAAa,EACnBv8J,EAAMw8J,SAAU,EACZxyF,GAAMA,EAAKhmE,KAAK,SAAU7P,KAAM2qK,IARK3qK,KAc3C,IAAK61E,EAAM,CAET,IAAIo1F,EAAQp/J,EAAMs8J,MACdpgK,EAAM8D,EAAMu8J,WAChBv8J,EAAMs8J,MAAQ,KACdt8J,EAAMu8J,WAAa,EACnBv8J,EAAMw8J,SAAU,EAEhB,IAAK,IAAIvnK,EAAI,EAAGA,EAAIiH,EAAKjH,IACvBmqK,EAAMnqK,GAAG+O,KAAK,SAAU7P,KAAM,CAAE4qK,YAAY,IAC7C,OAAO5qK,IACV,CAGA,IAAIsa,EAAQ1N,EAAQf,EAAMs8J,MAAOtyF,GACjC,OAAe,IAAXv7D,IAEJzO,EAAMs8J,MAAM7mI,OAAOhnB,EAAO,GAC1BzO,EAAMu8J,YAAc,EACK,IAArBv8J,EAAMu8J,aAAkBv8J,EAAMs8J,MAAQt8J,EAAMs8J,MAAM,IAEtDtyF,EAAKhmE,KAAK,SAAU7P,KAAM2qK,IAND3qK,IAS3B,EAIAinD,EAASjmD,UAAU+V,GAAK,SAAUm0J,EAAIp2J,GACpC,IAAInT,EAAM2L,EAAOtM,UAAU+V,GAAGhX,KAAKC,KAAMkrK,EAAIp2J,GAE7C,GAAW,SAAPo2J,GAEkC,IAAhClrK,KAAKu9F,eAAe8qE,SAAmBroK,KAAK+pC,cAC3C,GAAW,aAAPmhI,EAAmB,CAC5B,IAAIr/J,EAAQ7L,KAAKu9F,eACZ1xF,EAAM2xF,YAAe3xF,EAAM08J,oBAC9B18J,EAAM08J,kBAAoB18J,EAAM81F,cAAe,EAC/C91F,EAAMy8J,iBAAkB,EACnBz8J,EAAM61F,QAEA71F,EAAMxL,QACfyoK,EAAa9oK,MAFb2L,EAAIoB,SAAS68J,EAAkB5pK,MAKrC,CAEA,OAAO2B,CACT,EACAslD,EAASjmD,UAAU+Y,YAAcktC,EAASjmD,UAAU+V,GASpDkwC,EAASjmD,UAAU+oC,OAAS,WAC1B,IAAIl+B,EAAQ7L,KAAKu9F,eAMjB,OALK1xF,EAAMw8J,UACT1rD,EAAM,UACN9wG,EAAMw8J,SAAU,EAMpB,SAAgBv6J,EAAQjC,GACjBA,EAAM28J,kBACT38J,EAAM28J,iBAAkB,EACxB78J,EAAIoB,SAAS88J,EAAS/7J,EAAQjC,GAElC,CAVIk+B,CAAO/pC,KAAM6L,IAER7L,IACT,EAsBAinD,EAASjmD,UAAU28E,MAAQ,WAOzB,OANAg/B,EAAM,wBAAyB38G,KAAKu9F,eAAe8qE,UAC/C,IAAUroK,KAAKu9F,eAAe8qE,UAChC1rD,EAAM,SACN38G,KAAKu9F,eAAe8qE,SAAU,EAC9BroK,KAAK6P,KAAK,UAEL7P,IACT,EAWAinD,EAASjmD,UAAUmjE,KAAO,SAAUr2D,GAClC,IAAIhC,EAAQ9L,KAER6L,EAAQ7L,KAAKu9F,eACb4tE,GAAS,EA4Bb,IAAK,IAAIrqK,KA1BTgN,EAAOiJ,GAAG,MAAO,WAEf,GADA4lG,EAAM,eACF9wG,EAAMo+F,UAAYp+F,EAAM8C,MAAO,CACjC,IAAI7D,EAAQe,EAAMo+F,QAAQh3F,MACtBnI,GAASA,EAAMzK,QAAQyL,EAAMzI,KAAKyH,EACxC,CAEAgB,EAAMzI,KAAK,KACb,GAEAyK,EAAOiJ,GAAG,OAAQ,SAAUjM,GAC1B6xG,EAAM,gBACF9wG,EAAMo+F,UAASn/F,EAAQe,EAAMo+F,QAAQ15F,MAAMzF,IAG3Ce,EAAMmC,YAAc,MAAClD,IAAyDe,EAAMmC,YAAgBlD,GAAUA,EAAMzK,UAE9GyL,EAAMzI,KAAKyH,KAEnBqgK,GAAS,EACTr9J,EAAO6vE,SAEX,GAIc7vE,OACIrC,IAAZzL,KAAKc,IAAyC,mBAAdgN,EAAOhN,KACzCd,KAAKc,GAAK,SAAU2f,GAClB,OAAO,WACL,OAAO3S,EAAO2S,GAAQ3K,MAAMhI,EAAQ8I,UACtC,CACF,CAJU,CAIR9V,IAKN,IAAK,IAAIoY,EAAI,EAAGA,EAAI6uJ,EAAa1nK,OAAQ6Y,IACvCpL,EAAOiJ,GAAGgxJ,EAAa7uJ,GAAIlZ,KAAK6P,KAAKgE,KAAK7T,KAAM+nK,EAAa7uJ,KAa/D,OARAlZ,KAAK4hG,MAAQ,SAAU1oF,GACrByjG,EAAM,gBAAiBzjG,GACnBiyJ,IACFA,GAAS,EACTr9J,EAAOi8B,SAEX,EAEO/pC,IACT,EAEA4B,OAAOgQ,eAAeq1C,EAASjmD,UAAW,wBAAyB,CAIjEgS,YAAY,EACZhN,IAAK,WACH,OAAOhG,KAAKu9F,eAAepvF,aAC7B,IAIF84C,EAASmkH,UAAYtB,C,eCz3BrBxoK,EAAQwrE,cAAgB,EAAxB,MACAxrE,EAAQ2rE,eAAiB,EAAzB,KAEA3rE,EAAQyrE,eAAiB,SAAyBjtE,EAAKimB,GACrD,OAAOzkB,EAAQwrE,cAAchtE,EAAKimB,GAAK,EACzC,EAEAzkB,EAAQ0rE,cAAgB,SAAwBltE,EAAKimB,GACnD,OAAOzkB,EAAQ2rE,eAAentE,EAAKimB,GAAK,EAC1C,C,4BCPAzkB,EAAQqwB,MAAQ,EAAhB,OACArwB,EAAQsc,OAAS,EAAjB,OACAtc,EAAQuc,IAAM,EAAd,OACAvc,EAAQ0gF,IAAM,EAAd,OACA1gF,EAAQ8c,IAAM,EAAd,K,oJCLO,SAAS86O,GAAsB,QAAE5zL,EAAO,KAAElxD,EAAI,oBAAE+kP,GAAsB,EAAI,YAAEh2E,GAAc,IAC7F,GAAM,SAAU79G,GAEV,WAAYA,GAEbA,EAAQE,OAEb,MAAO,GAAG2zL,EAAsB7zL,EAAQrhE,KAAO,MAAMqhE,EAAQE,OACxD9jE,IAAI,CAAC+0C,EAAO31C,IAAM,GAAGqiL,GAAe1sI,EAAMxyC,KAAO,GAAGwyC,EAAMxyC,SAAW,KAAwB,iBAAZmQ,EAAKtT,IAAkB,EAAA2H,EAAA,GAAU2L,EAAKtT,IAAMsT,EAAKtT,MAClI6T,KAAK,QACd,C,2FCEO,MAAMykP,UAA2B,IACpC,WAAAllP,CAAYI,GAAS0K,QAASC,EAAQ,SAAE3Z,EAAQ,MAAE4Z,EAAK,KAAEhe,EAAI,IAAEoe,EAAG,SAAEC,EAAQ,aAAEE,EAAY,qBAAEC,EAAoB,MAAEC,EAAK,GAAEE,EAAE,MAAE9d,EAAK,cAAEslH,IAChI,MAAMroG,EAAUC,GAAW,EAAAqoG,EAAA,GAAaroG,QAAYxT,EACpD,IAAI49O,GAAa,QAAY,CACzBppP,KAAM+e,GAASrZ,QACfka,KACA9d,WAAwB,IAAVA,GACV,IAAG,EAAA0tI,EAAA,GAAY1tI,MAAUmd,GAAOqE,gBAAgBE,QAAU,QAC9DviB,OACAoe,MACAC,cAA8B,IAAbA,GAA4B,IAAG,EAAA6uJ,EAAA,GAAW7uJ,UAC3DE,kBAAsC,IAAjBA,GACjB,IAAG,EAAA2uJ,EAAA,GAAW3uJ,UAClBC,0BAAsD,IAAzBA,GACzB,IAAG,EAAA0uJ,EAAA,GAAW1uJ,UAClBC,UAEA0nG,IACAgiI,GAAc,MAAK,QAAoBhiI,MAE3C5yG,MAAMH,EAAMH,aAAc,CACtBG,QACAhP,WACAoP,aAAc,IACNJ,EAAMI,aAAe,IAAIJ,EAAMI,aAAc,KAAO,GACxD,sBACA20O,GACF5rM,OAAOh7C,SACTwB,KAAM,uBAEVrC,OAAOgQ,eAAe5R,KAAM,QAAS,CACjCgT,YAAY,EACZ4B,cAAc,EACdtE,UAAU,EACVvO,WAAO,IAEX/B,KAAKsU,MAAQA,CACjB,EAEG,MAAM+kP,UAAuC,IAChD,WAAAnlP,CAAYI,GAAO,IAAE0wD,EAAG,KAAE5wD,EAAI,gBAAEgP,EAAe,SAAE9d,EAAQ,aAAE4/D,EAAY,OAAE5B,IACrE,MAAMgC,GAAU,EAAAywH,EAAA,IAAW,CAAE/wH,MAAK5wD,OAAMnQ,KAAMihE,IACxCo0L,EAAgBh0L,EAChB4zL,EAAsB,CACpB5zL,UACAlxD,OACA+kP,qBAAqB,EACrBh2E,aAAa,SAEf13K,EACA8tP,EAAqBj0L,GACrB,EAAAC,EAAA,GAAcD,EAAS,CAAE69G,aAAa,SACtC13K,EACA49O,GAAa,QAAY,CAC3B1jP,QAASyd,IAAmB,OAAmBA,GAC/CinG,SAAUkvI,EACVnlP,KAAMklP,GACgB,OAAlBA,GACA,GAAG,IAAIpwP,MAAMg8D,GAAc7kE,QAAU,GAAGwB,QACnCH,IAAI,IAAM,KACViT,KAAK,MAAM2kP,IACpBh2L,WAEJ7uD,MAAMH,EAAMH,cACR,oEAAoE+wD,MAAkB,CACtF5wD,QACAhP,WACAoP,aAAc,IACNJ,EAAMI,aAAe,IAAIJ,EAAMI,aAAc,KAAO,GACxD20O,GAAc,iBACdA,GACF5rM,OAAOh7C,SACTwB,KAAM,mCAEVrC,OAAOgQ,eAAe5R,KAAM,MAAO,CAC/BgT,YAAY,EACZ4B,cAAc,EACdtE,UAAU,EACVvO,WAAO,IAEXH,OAAOgQ,eAAe5R,KAAM,OAAQ,CAChCgT,YAAY,EACZ4B,cAAc,EACdtE,UAAU,EACVvO,WAAO,IAEXH,OAAOgQ,eAAe5R,KAAM,QAAS,CACjCgT,YAAY,EACZ4B,cAAc,EACdtE,UAAU,EACVvO,WAAO,IAEXH,OAAOgQ,eAAe5R,KAAM,kBAAmB,CAC3CgT,YAAY,EACZ4B,cAAc,EACdtE,UAAU,EACVvO,WAAO,IAEXH,OAAOgQ,eAAe5R,KAAM,gBAAiB,CACzCgT,YAAY,EACZ4B,cAAc,EACdtE,UAAU,EACVvO,WAAO,IAEXH,OAAOgQ,eAAe5R,KAAM,eAAgB,CACxCgT,YAAY,EACZ4B,cAAc,EACdtE,UAAU,EACVvO,WAAO,IAEXH,OAAOgQ,eAAe5R,KAAM,SAAU,CAClCgT,YAAY,EACZ4B,cAAc,EACdtE,UAAU,EACVvO,WAAO,IAEX/B,KAAKglE,IAAMA,EACXhlE,KAAKoU,KAAOA,EACZpU,KAAKsU,MAAQA,EACbtU,KAAKojB,gBAAkBA,EACvBpjB,KAAKklE,aAAeA,EACpBllE,KAAKsjE,OAASA,CAClB,EAEG,MAAMk2L,UAAsC,IAC/C,WAAAtlP,EAAY,IAAE8wD,EAAG,KAAE9jE,EAAI,aAAEgkE,EAAY,QAAE3wD,IACnC,IAAID,EACAouJ,EACAhuJ,EACA8xF,EAwCAroE,EAvCJ,GAAIj9B,GAAiB,OAATA,EACR,IACIwhK,GAAc,EAAArmB,EAAA,GAAkB,CAAEr3E,MAAK9jE,SACvC,MAAM,QAAEokE,EAAO,UAAEokF,EAAWt1I,KAAMqlP,GAAc/2F,EAChD,GAAkB,UAAdhZ,EACAljD,EAASizJ,EAAU,QAElB,GAAkB,UAAd/vG,EAAuB,CAC5B,MAAOgwG,GAAYD,EACnBjzJ,EAAS,KAAakzJ,EAC1B,KACK,CACD,MAAMC,EAAkBr0L,GAClB,EAAAC,EAAA,GAAcD,EAAS,CAAE69G,aAAa,SACtC13K,EACA6tP,EAAgBh0L,GAAWm0L,EAC3BP,EAAsB,CACpB5zL,UACAlxD,KAAMqlP,EACNN,qBAAqB,EACrBh2E,aAAa,SAEf13K,EACNiJ,EAAe,CACXilP,EAAkB,UAAUA,IAAoB,GAChDL,GAAmC,OAAlBA,EACX,UAAU,IAAIpwP,MAAMwgJ,GAAWrpJ,QAAU,GAAGwB,QACzCH,IAAI,IAAM,KACViT,KAAK,MAAM2kP,IACd,GAEd,CACJ,CACA,MAAOpuP,GACHoJ,EAAQpJ,CACZ,MAEKqJ,IACLiyF,EAASjyF,GAETD,aAAiB,OACjB6pB,EAAY7pB,EAAM6pB,UAClBzpB,EAAe,CACX,+BAA+BypB,8CAC/B,2EACA,sFAAsFA,OAG9F1pB,MAAO+xF,GAAqB,uBAAXA,GAAoCroE,EAC/C,CACE,0BAA0B+mC,kCAA6C/mC,EAAY,YAAc,YACjGqoE,GAAUroE,GACZxpB,KAAK,MACL,0BAA0BuwD,eAA2B,CACvD5wD,QACAI,eACAzQ,KAAM,kCAEVrC,OAAOgQ,eAAe5R,KAAM,OAAQ,CAChCgT,YAAY,EACZ4B,cAAc,EACdtE,UAAU,EACVvO,WAAO,IAEXH,OAAOgQ,eAAe5R,KAAM,MAAO,CAC/BgT,YAAY,EACZ4B,cAAc,EACdtE,UAAU,EACVvO,WAAO,IAEXH,OAAOgQ,eAAe5R,KAAM,SAAU,CAClCgT,YAAY,EACZ4B,cAAc,EACdtE,UAAU,EACVvO,WAAO,IAEXH,OAAOgQ,eAAe5R,KAAM,YAAa,CACrCgT,YAAY,EACZ4B,cAAc,EACdtE,UAAU,EACVvO,WAAO,IAEX/B,KAAKkB,KAAOwhK,EACZ1iK,KAAKqrD,IAAMnqD,EACXlB,KAAKwmG,OAASA,EACdxmG,KAAKm+B,UAAYA,CACrB,EAEG,MAAMy7N,UAAsC,IAC/C,WAAA1lP,EAAY,aAAEgxD,IACVzwD,MAAM,0BAA0BywD,8BAA0C,CACtExwD,aAAc,CACV,6CACA,gDAAgDwwD,MAChD,wEACA,sCAEJjhE,KAAM,iCAEd,EAEG,MAAM41P,UAA4C,IACrD,WAAA3lP,EAAY,QAAEizG,IACV1yG,MAAM,sDAAqD0yG,EAAU,iBAAiBA,MAAc,IAAM,CACtGzyG,aAAc,CACV,iBACA,uGACA,yGAEJzQ,KAAM,uCAEd,EAEG,MAAM61P,UAAyB,IAClC,WAAA5lP,EAAY,KAAEhT,EAAI,QAAEqT,IAChBE,MAAMF,GAAW,GAAI,CAAEtQ,KAAM,qBAC7BrC,OAAOgQ,eAAe5R,KAAM,OAAQ,CAChCgT,YAAY,EACZ4B,cAAc,EACdtE,UAAU,EACVvO,MAAO,IAEXH,OAAOgQ,eAAe5R,KAAM,OAAQ,CAChCgT,YAAY,EACZ4B,cAAc,EACdtE,UAAU,EACVvO,WAAO,IAEX/B,KAAKkB,KAAOA,CAChB,E,8FC3QJ,MAAM64P,EAAuB,qBAEhBC,EAAiCnoP,OAAOwP,IAAI04O,GAEzD,MAAME,EACJn6P,IACAiC,MACA,CAACi4P,GAAqBA,EACtBj5P,MACA,WAAAmT,CAAYpU,EAAKiC,GACf/B,KAAKF,IAAMA,EACXE,KAAK+B,MAAQA,EACb/B,KAAKe,MAAQ,KAAYg5P,EAAuB/5P,KAAKF,IAAME,KAAK+B,MAClE,CACA,CAAC,QACC,OAAO/B,KAAKe,KACd,CACA,CAAC,MAAcyW,GACb,OAAO0iP,EAAc1iP,IAASxX,KAAKF,MAAQ0X,EAAK1X,KAAOE,KAAK+B,QAAUyV,EAAKzV,KAC7E,CACA,IAAAkQ,GACE,OAAO,QAAcjS,KAAM4W,UAC7B,EAGK,MAAMiL,EAAO,CAAC/hB,EAAKiC,IACjB,IAAIk4P,EAAgBn6P,EAAKiC,GAGrBm4P,EAAgBrlO,IAAK,QAAYA,EAAGmlO,E,kLC7BlC,KAKU,KALzB,MAYanwO,EAAQ,KAcR2rD,GAPO,KAOQ,MAOflG,EAAU,KAQVtpE,EAAM,KAsDNG,GA/CU,KAQE,KAON,KAQI,KAiBF,KAOF,MAONtE,EAAO,KA0CPO,GA5BS,KAcC,KAcH,MAmCPqkH,GAlBU,KAMM,KAMF,KAML,MAWTioB,EAAW,KAgCXp/F,GAnBa,KAMJ,KAMD,KAOC,MAaT5tC,GAPa,KAOP,MAgBNI,GAPU,KAOA,MAOVojD,EAAS,KAOA,KAOC,KAQE,KAQA,KAOL,KAUC,I,qPClTd,MAEMi1M,EAAe,EAEfC,EAAgB,EAEhBC,EAAiB,EAEjBC,EAAW,GAEXC,EAAsB,GAEtBC,EAAW,CAZJ,EAYWL,EAAcC,EAAeC,EAAgBC,EAAUC,GAChFE,EAAQz9F,IACZ,OAAQA,GACN,KAAKu9F,EAED,MAAO,sBAEX,KAAKD,EAED,MAAO,WAEX,KAAKD,EAED,MAAO,iBAEX,KAAKD,EAED,MAAO,gBAEX,KAAKD,EAED,MAAO,eAEX,KAnCgB,EAqCZ,MAAO,SAKFO,EAAsBhtP,GAAQyvJ,EAAUzvJ,EAAM6sP,GAE9Ct9F,GAAuB,QAAK,EAAG,CAACvvJ,EAAMsvJ,IAAStvJ,GAAQsvJ,GAIvDD,GAAsB,QAAK,EAAG,CAACrvJ,EAAMsvJ,IAAStvJ,EAAOsvJ,GAIrDl8H,EAAgBpzB,GAAQ2yC,EAAa3yC,KAAUitP,EAASjtP,GAExD2yC,EAAe3yC,GAAQyvJ,EAAUzvJ,EAAMysP,GAIvCh9F,GAAyB,QAAK,EAAG,CAACzvJ,EAAMsvJ,IAA2B,KAAjBtvJ,EAAOsvJ,IAEzDn7I,EAAO,IAAIzI,IAAUA,EAAM8rC,OAAO,CAACt9C,EAAGC,IAAMD,EAAIC,EAAG,GAEnDqwG,EAAoBr2F,EA9Db,GA4EP+4O,EAAiBltP,GAAQyvJ,EAAUzvJ,EAAM2sP,GAEzCxhN,EAAQnrC,GAAQ,IAAIu1B,IAAIu3N,EAAS/8M,OAAOu/G,GAAQG,EAAUzvJ,EAAMsvJ,KAChE29F,EAAWjtP,GAAQyvJ,EAAUzvJ,EAAM4sP,GAGnCO,EAAantP,GAAQmrC,EAAM,KAAyBnrC,GAAQ,KAA0BA,IAEtFotP,EAAcptP,GAAQmrC,EAAM,KAAyBnrC,IAAS,KAA0BA,IAExFyc,GAAoB,QAAK,EAAG,CAACzc,EAAM8J,IAAS,KAAuB9J,EAAO8J,EAAMA,IAEhFgT,GAAqB,QAAK,EAAG,CAAC9c,EAAM8c,IAAU9c,GAAQ,KAAyB,KAAyB8c,IAAU,KAA0BA,IAAU,KAAyBA,GAAS,KAA0BA,IAElNuwO,EAAcrtP,GAGlB,gCAFSxE,MAAMjJ,KAAK46P,EAAWntP,IAAOhM,IAAIs7J,GAAQy9F,EAAMz9F,IAAOroJ,KAAK,uBAC1DzL,MAAMjJ,KAAK66P,EAAYptP,IAAOhM,IAAIs7J,GAAQy9F,EAAMz9F,IAAOroJ,KAAK,UAIlEoX,EAAsB,KAAoB,CACrDlC,MAAO,KACPM,KAAM,CAACC,EAAUC,IAAaF,EAAKC,EAAUC,GAC7CS,QAAS,CAACC,EAAOC,IAAW,KAA0BA,EAA1B,CAAkCD,GAC9DP,MAAO,CAACwwO,EAAQ5wO,IAAaI,EAAMJ,EAAU4wO,I,wBCpG/C,IACIluJ,EAAQlrG,OAAOZ,UAAUuH,SACzBsgB,EAAM7gB,KAAK6gB,IAGXoyO,EAAW,SAAkBrzP,EAAGC,GAGhC,IAFA,IAAIiR,EAAM,GAEDhY,EAAI,EAAGA,EAAI8G,EAAEvH,OAAQS,GAAK,EAC/BgY,EAAIhY,GAAK8G,EAAE9G,GAEf,IAAK,IAAIwK,EAAI,EAAGA,EAAIzD,EAAExH,OAAQiL,GAAK,EAC/BwN,EAAIxN,EAAI1D,EAAEvH,QAAUwH,EAAEyD,GAG1B,OAAOwN,CACX,EAqBAzX,EAAOC,QAAU,SAAckW,GAC3B,IAAIzB,EAAS/V,KACb,GAAsB,mBAAX+V,GApCA,sBAoCyB+2F,EAAMh3F,MAAMC,GAC5C,MAAM,IAAIxD,UAxCE,kDAwCwBwD,GAyBxC,IAvBA,IAEImlP,EAFA9mP,EAxBI,SAAe+mP,GAEvB,IADA,IAAIriP,EAAM,GACDhY,EAsBmB,EAtBFwK,EAAI,EAAGxK,EAAIq6P,EAAQ96P,OAAQS,GAAK,EAAGwK,GAAK,EAC9DwN,EAAIxN,GAAK6vP,EAAQr6P,GAErB,OAAOgY,CACX,CAkBesiP,CAAMxkP,WAqBbykP,EAAcxyO,EAAI,EAAG9S,EAAO1V,OAAS+T,EAAK/T,QAC1Ci7P,EAAY,GACPx6P,EAAI,EAAGA,EAAIu6P,EAAav6P,IAC7Bw6P,EAAUx6P,GAAK,IAAMA,EAKzB,GAFAo6P,EAAQnpP,SAAS,SAAU,oBA3CnB,SAAU+G,GAElB,IADA,IAAIwsE,EAAM,GACDxkF,EAAI,EAAGA,EAAIgY,EAAIzY,OAAQS,GAAK,EACjCwkF,GAAOxsE,EAAIhY,GACPA,EAAI,EAAIgY,EAAIzY,SACZilF,GAsC0D,KAnClE,OAAOA,CACX,CAkCqDi2K,CAAMD,GAAkB,4CAAjEvpP,CAxBK,WACT,GAAI/R,gBAAgBk7P,EAAO,CACvB,IAAIj1P,EAAS8P,EAAOD,MAChB9V,KACAi7P,EAAS7mP,EAAMwC,YAEnB,OAAIhV,OAAOqE,KAAYA,EACZA,EAEJjG,IACX,CACA,OAAO+V,EAAOD,MACV0B,EACAyjP,EAAS7mP,EAAMwC,WAGvB,GAUIb,EAAO/U,UAAW,CAClB,IAAIw6P,EAAQ,WAAkB,EAC9BA,EAAMx6P,UAAY+U,EAAO/U,UACzBk6P,EAAMl6P,UAAY,IAAIw6P,EACtBA,EAAMx6P,UAAY,IACtB,CAEA,OAAOk6P,CACX,C,6ICvEO,MAAMr5O,EAAOozD,GAAgB,CAACvnE,EAAM8J,IAAS9J,IAAS8J,GAAQy9D,EAAavnE,EAAM8J,GAClFikP,EAAqB,CAAC/nP,EAAG0I,IAAM1I,IAAM0I,EAO9BvW,EAAS,IAAM41P,EAKfl0O,EAAsB1hB,IAKtB2hB,EAAsB3hB,IAKtB4hB,EAAuB5hB,IAKvB6hB,EAAsB7hB,IAoCtB8hB,GAAwB,QAAK,EAAG,CAACja,EAAM2P,IAAMwE,EAAK,CAACnO,EAAG0I,IAAM1O,EAAK2P,EAAE3J,GAAI2J,EAAEjB,MAKzEw5B,EAAoBjuB,EAASH,EAAQskB,GAAQA,EAAKW,WA+ClD3kB,EAAQ,IAAIC,KAAaC,OArCnBC,EAqCuBF,EApCjClG,EAAK,CAACnO,EAAG0I,KACd,MAAMrU,EAAMC,KAAKC,IAAIyL,EAAErT,OAAQ+b,EAAE/b,QACjC,IAAI6nB,EAAmB,EACvB,IAAK,MAAMy/J,KAAe1/J,EAAY,CACpC,GAAIC,GAAoBngB,EACtB,MAEF,IAAK4/K,EAAYj0K,EAAEwU,GAAmB9L,EAAE8L,IACtC,OAAO,EAETA,GACF,CACA,OAAO,IAbQD,OA4CNG,EAAQotB,GAAQ3zB,EAAK,CAACnU,EAAM8J,KACvC,GAAI9J,EAAKrN,SAAWmX,EAAKnX,OACvB,OAAO,EAET,IAAK,IAAIS,EAAI,EAAGA,EAAI4M,EAAKrN,OAAQS,IAE/B,IADa00C,EAAK9nC,EAAK5M,GAAI0W,EAAK1W,IAE9B,OAAO,EAGX,OAAO,IASIynB,EAASC,IACpB,MAAM3mB,EAAOD,OAAOC,KAAK2mB,GACzB,OAAO3G,EAAK,CAACnU,EAAM8J,KACjB,IAAK,MAAM1X,KAAO+B,EAChB,IAAK2mB,EAAO1oB,GAAK4N,EAAK5N,GAAM0X,EAAK1X,IAC/B,OAAO,EAGX,OAAO,I,4BChKX,IAAI83K,EAAU,EAAQ,OAGtBv2K,EAAOC,QAAUs2K,EAAQn+J,gBAAkB,I,4BCH3CpY,EAAOC,QAAU,EAAjB,M,sECDO,SAAS0uE,EAAIrgD,GAAY,IAAE1qB,EAAG,KAAE7C,EAAO,IAAO,CAAC,GAClD,MAA0B,iBAAfutB,EACA+rO,EAAO/rO,EAAY,CAAE1qB,MAAK7C,SAelC,SAAkBF,GAAO,IAAE+C,EAAG,KAAE7C,EAAO,IAAO,CAAC,GAClD,GAAa,OAATA,EACA,OAAOF,EACX,GAAIA,EAAM7B,OAAS+B,EACf,MAAM,IAAI,KAA4B,CAClCA,KAAMF,EAAM7B,OACZ6vE,WAAY9tE,EACZmB,KAAM,UAEd,MAAM+rJ,EAAc,IAAI3hJ,WAAWvL,GACnC,IAAK,IAAItB,EAAI,EAAGA,EAAIsB,EAAMtB,IAAK,CAC3B,MAAMi9F,EAAiB,UAAR94F,EACfqqJ,EAAYvxD,EAASj9F,EAAIsB,EAAOtB,EAAI,GAChCoB,EAAM67F,EAASj9F,EAAIoB,EAAM7B,OAASS,EAAI,EAC9C,CACA,OAAOwuJ,CACX,CA9BWqsG,CAAShsO,EAAY,CAAE1qB,MAAK7C,QACvC,CACO,SAASs5P,EAAOzrL,GAAM,IAAEhrE,EAAG,KAAE7C,EAAO,IAAO,CAAC,GAC/C,GAAa,OAATA,EACA,OAAO6tE,EACX,MAAM5tE,EAAM4tE,EAAKrgD,QAAQ,KAAM,IAC/B,GAAIvtB,EAAIhC,OAAgB,EAAP+B,EACb,MAAM,IAAI,KAA4B,CAClCA,KAAM4F,KAAKu1B,KAAKl7B,EAAIhC,OAAS,GAC7B6vE,WAAY9tE,EACZmB,KAAM,QAEd,MAAO,KAAKlB,EAAY,UAAR4C,EAAkB,SAAW,YAAmB,EAAP7C,EAAU,MACvE,C,0OCDO,MAAMw5P,EAAoB,CAC7B,sBACA,UACA,OACA,MACA,QACA,QAGSC,EAAoC,IAAItvO,IAExCuvO,EAAwC,IAAI,IAAO,KAyCzDl9O,eAAes5I,EAA0Bp5I,EAAQ1K,GACpD,IAAIkM,EAAUlM,EACdkM,EAAQtB,UAAYF,EAAOE,QAC3BsB,EAAQvB,aAAe68O,EACvB,MAAQ58O,QAASC,EAAQ,MAAEC,EAAQJ,EAAOI,MAAK,aAAE4B,EAAY,WAAE/B,GAAgBuB,EACzE43I,EAC8C,mBAArCh5I,GAAOg5I,0BACP,CACHpjJ,GAAIoK,EAAMg5I,0BACV6jG,MAAO,CAAC,0BAEZ7yP,MAAMF,QAAQkW,GAAOg5I,2BACd,CACHpjJ,GAAIoK,EAAMg5I,0BAA0B,GACpC6jG,MAAO78O,EAAMg5I,0BAA0B,GAAG6jG,YAHlD,EAOJ,IAAI/7O,EACJpB,eAAei2I,IACX,GAAI70I,EACA,OAAOA,EACX,QAA+B,IAApBM,EAAQN,QACf,OAAOM,EAAQN,QACnB,GAAId,EACA,OAAOA,EAAMoE,GACjB,MAAM04O,QAAiB,OAAUl9O,EAAQ,IAAa,aAA/B,CAA6C,CAAC,GAErE,OADAkB,EAAUg8O,EACHh8O,CACX,CACA,MAAMhB,EAAUC,GAAW,OAAaA,GAAYA,EACpD,IAAIU,EAAQW,EAAQX,MACpB,GAAIZ,EAAW2lD,SAAS,eACH,IAAV/kD,GACPX,GACA8B,EAAc,CACd,MAAMd,QAAgB60I,IACtBl1I,QAAcmB,EAAaknI,QAAQ,CAC/BriJ,QAASqZ,EAAQrZ,QACjBqa,UACAlB,UAER,CACIo5I,GAA2BpjJ,IAC3BojJ,EAA0B6jG,OAAOr3L,SAAS,2BAC1CpkD,QAAgB43I,EAA0BpjJ,GAAG,IAAKwL,EAASpB,SAAS,CAChE+8O,MAAO,0BAEXt8O,IAAUW,EAAQX,OAEtB,MA6BMu8O,GA3BGn9O,EAAW2lD,SAAS,wBACrB3lD,EAAW2lD,SAAS,cACpBpkD,EAAQyD,KACRzD,EAAQjB,QAGoC,IAA5Cy8O,EAAwB91P,IAAI8Y,EAAO0B,OAIjB,CAAC,OAAQ,OAAOxc,KAAM6pD,GAAc9uC,EAAW2lD,SAAS7W,OAI1E9uC,EAAW2lD,SAAS,YAAyC,iBAApBpkD,EAAQN,SAEjDjB,EAAW2lD,SAAS,UAA6B,iBAAV/kD,GAEvCZ,EAAW2lD,SAAS,SACQ,iBAArBpkD,EAAQf,WACkB,iBAAzBe,EAAQb,cAC4B,iBAAjCa,EAAQZ,uBAEnBX,EAAW2lD,SAAS,QAAiC,iBAAhBpkD,EAAQhB,KA0C/CgB,QArCM,OAAUxB,EAAQ,IAAiB,kBAAnC,CAAsD,IAAKwB,EAASX,UACvEgB,KAAM1a,IACP,MAAM,QAAE+Z,EAAO,KAAE/f,EAAI,IAAEqf,EAAG,SAAEC,EAAQ,MAAEI,EAAK,iBAAEH,EAAgB,aAAEC,EAAY,qBAAEC,EAAoB,KAAEnc,KAASqc,GAAS3Z,EAAOgb,YAE5H,OADA66O,EAAwB31P,IAAI2Y,EAAO0B,KAAK,GACjC,IACAF,KACCrgB,EAAO,CAAEA,QAAS,CAAC,KACnBsD,EAAO,CAAEA,QAAS,CAAC,UACA,IAAZyc,EAA0B,CAAEA,WAAY,CAAC,UACjC,IAARV,EAAsB,CAAEA,OAAQ,CAAC,UACpB,IAAbC,EAA2B,CAAEA,YAAa,CAAC,UACjC,IAAVI,EAAwB,CAAEA,SAAU,CAAC,UAChB,IAArBH,EACL,CAAEA,oBACF,CAAC,UACqB,IAAjBC,EAA+B,CAAEA,gBAAiB,CAAC,UAC1B,IAAzBC,EACL,CAAEA,wBACF,CAAC,KACH,aAAcE,QAAiC,IAAlBA,EAAKu8O,SAChC,CAAEA,SAAUv8O,EAAKu8O,UACjB,CAAC,KAGVp8O,MAAO/V,IACR,MAAMiB,EAAQjB,EACd,GAAmB,8BAAfiB,EAAMhH,KACN,OAAOqc,EACX,MAAM87O,EAAcnxP,EAAM4J,OAAQ7K,IAC9B,MAAMiB,EAAQjB,EACd,MAAuB,2BAAfiB,EAAMhH,MACK,+BAAfgH,EAAMhH,OAId,OAFIm4P,GACAN,EAAwB31P,IAAI2Y,EAAO0B,KAAK,GACrCF,IAGfX,IAAUu8O,EAAWv8O,MACrBW,EAAU,IACH47O,KACCl9O,EAAU,CAAE/e,KAAM+e,GAASrZ,SAAY,CAAC,KACxCga,EAAQ,CAAEA,SAAU,CAAC,GAE7B,MAAM,MAAEN,EAAK,IAAEC,EAAG,IAAEyE,EAAG,KAAExgB,GAAS+c,EAOlC,IAAIjV,EACJuT,eAAekpD,IACX,OAAIz8D,IAEJA,QAAc,OAAUyT,EAAQ,EAAAtR,EAAW,WAA7B,CAAyC,CAAE41D,SAAU,WAC5D/3D,EACX,CASA,GArBI6sJ,GAA2BpjJ,IAC3BojJ,EAA0B6jG,OAAOr3L,SAAS,0BAC1CpkD,QAAgB43I,EAA0BpjJ,GAAG,IAAKwL,EAASpB,SAAS,CAChE+8O,MAAO,0BAUXl9O,EAAW2lD,SAAS,eACH,IAAV/kD,GACPX,IACC8B,IACDR,EAAQX,YAAc,OAAUb,EAAQ,IAAqB,sBAAvC,CAA8D,CAChFnZ,QAASqZ,EAAQrZ,QACjBy9D,SAAU,cAEbrkD,EAAW2lD,SAAS,wBACrB3lD,EAAW2lD,SAAS,cACpBrlD,GACA0E,EAAK,CACL,MAAMC,GAAc,OAAmB,CAAE3E,QAAO0E,QAChD,GAAIhF,EAAW2lD,SAAS,uBAAwB,CAC5C,MAAM23L,GAAkB,OAA6B,CACjDr4O,cACAnE,GAAI,QAERS,EAAQqxF,oBAAsB0qJ,CAClC,CACA,GAAIt9O,EAAW2lD,SAAS,YAAa,CACjC,MAAMzgD,GAAS,OAAc,CAAE5E,QAAO2E,cAAaD,QAC7C40D,GAAW,OAAe,CAC5Bt5D,QACA2E,cACAC,SACApE,GAAI,QAERS,EAAQq4D,SAAWA,CACvB,CACJ,CAGA,GAFI55D,EAAW2lD,SAAS,aACpBpkD,EAAQN,cAAgB60I,MACvB91I,EAAW2lD,SAAS,SAAW3lD,EAAW2lD,SAAS,eACpC,IAATnhE,EACP,IACI+c,EAAQ/c,MAAO,OAAmB+c,EACtC,CACA,MACI,IAAIg8O,EAAmBT,EAAoB71P,IAAI8Y,EAAO0B,KACtD,QAAgC,IAArB87O,EAAkC,CACzC,MAAMjxP,QAAcy8D,IACpBw0L,EAAmD,iBAAzBjxP,GAAOg3D,cACjCw5L,EAAoB11P,IAAI2Y,EAAO0B,IAAK87O,EACxC,CACAh8O,EAAQ/c,KAAO+4P,EAAmB,UAAY,QAClD,CAEJ,GAAIv9O,EAAW2lD,SAAS,QAEpB,GAAqB,WAAjBpkD,EAAQ/c,MAAsC,YAAjB+c,EAAQ/c,MAErC,QAAoC,IAAzB+c,EAAQb,mBACyB,IAAjCa,EAAQZ,qBAAsC,CACrD,MAAMrU,QAAcy8D,KACd,aAAEroD,EAAY,qBAAEC,SAA+B,OAA4BZ,EAAQ,CACrFzT,MAAOA,EACP6T,QACAoB,QAASA,IAEb,QAA4C,IAAjCA,EAAQZ,sBACfY,EAAQb,cACRa,EAAQb,aAAeC,EACvB,MAAM,IAAI,KAAwB,CAC9BA,yBAERY,EAAQZ,qBAAuBA,EAC/BY,EAAQb,aAAeA,CAC3B,MAEC,CAED,QAAoC,IAAzBa,EAAQb,mBACyB,IAAjCa,EAAQZ,qBACf,MAAM,IAAI,KACd,QAAgC,IAArBY,EAAQf,SAA0B,CACzC,MAAMlU,QAAcy8D,KACZvoD,SAAUg9O,SAAoB,OAA4Bz9O,EAAQ,CACtEzT,MAAOA,EACP6T,QACAoB,QAASA,EACT/c,KAAM,WAEV+c,EAAQf,SAAWg9O,CACvB,CACJ,CAeJ,OAbIx9O,EAAW2lD,SAAS,aAAyB,IAARplD,IACrCgB,EAAQhB,UAAY,OAAUR,EAAQ,IAAa,cAA/B,CAA8C,IAC3DwB,EACHtB,UACAixI,QAA2B,UAAlBjxI,GAASzb,KAAmB,GAAK,CAAC,0BAE/C20J,GAA2BpjJ,IAC3BojJ,EAA0B6jG,OAAOr3L,SAAS,yBAC1CpkD,QAAgB43I,EAA0BpjJ,GAAG,IAAKwL,EAASpB,SAAS,CAChE+8O,MAAO,0BAEf,OAAc37O,UACPA,EAAQvB,WACRuB,CACX,C,gECnTO,MAAMuwI,EAAa,qBAGbrhI,EAAa,uCAGbC,EAAe,gI,+ECLrB,MAAM+sO,UAA4B,IACrC,WAAAtoP,EAAY,UAAEiqB,IACV1pB,MAAM,4BAA6B,CAC/BJ,QAAS,gBAAgBzL,KAAKH,UAAU01B,EAAW,KAAM,MACzD74B,SAAU,8BAEd1D,OAAOgQ,eAAe5R,KAAM,OAAQ,CAChCgT,YAAY,EACZ4B,cAAc,EACdtE,UAAU,EACVvO,MAAO,uBAEf,EAEG,MAAM06P,UAAyB,IAClC,WAAAvoP,EAAY,KAAE3Q,IACVkR,MAAM,gBAAiB,CACnBC,aAAc,CACV,SAASnR,mFAGjB3B,OAAOgQ,eAAe5R,KAAM,OAAQ,CAChCgT,YAAY,EACZ4B,cAAc,EACdtE,UAAU,EACVvO,MAAO,oBAEf,EAEG,MAAM26P,UAAiC,IAC1C,WAAAxoP,EAAY,KAAE3Q,IACVkR,MAAM,gBAAiB,CACnBC,aAAc,CAAC,SAASnR,iCAE5B3B,OAAOgQ,eAAe5R,KAAM,OAAQ,CAChCgT,YAAY,EACZ4B,cAAc,EACdtE,UAAU,EACVvO,MAAO,4BAEf,E,4BCvCJ,IAAI4vB,EAAQrwB,EACRiF,EAAK,EAAQ,OACbo2P,EAAY,EAAQ,OACpBC,EAAW,EAAQ,OAEvBjrO,EAAMhU,OAASg/O,EACfhrO,EAAM3L,QAAU42O,EAAS52O,QACzB2L,EAAMoxJ,MAAQ65E,EAAS75E,MACvBpxJ,EAAMsmD,MAAQ2kL,EAAS3kL,MACvBtmD,EAAMq+B,OAAS4sM,EAAS5sM,OAgCxBr+B,EAAM82C,OA7BN,SAAgBttD,EAAKjD,EAAG8tE,GACtB,IACIllF,EADA+2B,EAAM,IAAI3uB,MAAMlB,KAAK6gB,IAAI1N,EAAIyZ,YAAaoxD,GAAQ,GAEtD,IAAKllF,EAAI,EAAGA,EAAI+2B,EAAIx3B,OAAQS,GAAK,EAC/B+2B,EAAI/2B,GAAK,EAGX,IAAIsxF,EAAK,GAAMl6E,EAAI,EACflR,EAAImU,EAAI4Z,QAEZ,IAAKj0B,EAAI,EAAGA,EAAI+2B,EAAIx3B,OAAQS,IAAK,CAC/B,IAAIub,EACAkK,EAAMvf,EAAEgjF,MAAMoI,EAAK,GACnBprF,EAAEyvB,SAEFpa,EADEkK,GAAO6rE,GAAM,GAAK,GACfA,GAAM,GAAK7rE,EAEZA,EACNvf,EAAE8sF,MAAMz3E,IAERA,EAAI,EAGNwb,EAAI/2B,GAAKub,EACTrV,EAAEijF,OAAO,EACX,CAEA,OAAOpyD,CACT,EA0DAlG,EAAM+2C,OAtDN,SAAgB1qD,EAAIC,GAClB,IAAI4rD,EAAM,CACR,GACA,IAGF7rD,EAAKA,EAAG+W,QACR9W,EAAKA,EAAG8W,QAIR,IAHA,IAEI8nO,EAFAC,EAAK,EACLC,EAAK,EAEF/+O,EAAGmU,MAAM2qO,GAAM,GAAK7+O,EAAGkU,MAAM4qO,GAAM,GAAG,CAE3C,IAMIljO,EAYAC,EAlBAkjO,EAAOh/O,EAAGgsE,MAAM,GAAK8yK,EAAM,EAC3BG,EAAOh/O,EAAG+rE,MAAM,GAAK+yK,EAAM,EACnB,IAARC,IACFA,GAAO,GACG,IAARC,IACFA,GAAO,GASLpjO,EAPO,EAANmjO,EAIS,IADZH,EAAM7+O,EAAGgsE,MAAM,GAAK8yK,EAAM,IACF,IAAPD,GAAqB,IAARI,EAGvBD,GAFCA,EAJH,EAQPnzL,EAAI,GAAGxmE,KAAKw2B,GAURC,EAPO,EAANmjO,EAIS,IADZJ,EAAM5+O,EAAG+rE,MAAM,GAAK+yK,EAAM,IACF,IAAPF,GAAqB,IAARG,EAGvBC,GAFCA,EAJH,EAQPpzL,EAAI,GAAGxmE,KAAKy2B,GAGR,EAAIgjO,IAAOjjO,EAAK,IAClBijO,EAAK,EAAIA,GACP,EAAIC,IAAOjjO,EAAK,IAClBijO,EAAK,EAAIA,GACX/+O,EAAGisE,OAAO,GACVhsE,EAAGgsE,OAAO,EACZ,CAEA,OAAOpgB,CACT,EAUAl4C,EAAMkpF,eAPN,SAAwB3oG,EAAKjO,EAAMi5P,GACjC,IAAIp9P,EAAM,IAAMmE,EAChBiO,EAAIlR,UAAUiD,GAAQ,WACpB,YAAqBwH,IAAdzL,KAAKF,GAAqBE,KAAKF,GACpCE,KAAKF,GAAOo9P,EAASn9P,KAAKC,KAC9B,CACF,EAOA2xB,EAAMuoC,WAJN,SAAoBh4D,GAClB,MAAwB,iBAAVA,EAAqByvB,EAAM3L,QAAQ9jB,EAAO,OACtDA,CACJ,EAMAyvB,EAAM6pC,UAHN,SAAmBt5D,GACjB,OAAO,IAAIqE,EAAGrE,EAAO,MAAO,KAC9B,C,2CC1FI2uK,EAAajvK,OAAOC,MAAQ,SAAUqQ,GACxC,IAAIrQ,EAAO,GACX,IAAK,IAAI/B,KAAOoS,EAAKrQ,EAAKwB,KAAKvD,GAC/B,OAAO+B,CACT,EAGAR,EAAOC,QAAUkL,EACjB,IAAIy6C,EAAW,EAAQ,OACnB16C,EAAW,EAAQ,OACvB,EAAQ,MAAR,CAAoBC,EAAQy6C,GAI1B,IADA,IAAIplD,EAAOgvK,EAAWtkK,EAASvL,WACtB8zB,EAAI,EAAGA,EAAIjzB,EAAKxB,OAAQy0B,IAAK,CACpC,IAAIrU,EAAS5e,EAAKizB,GACbtoB,EAAOxL,UAAUyf,KAASjU,EAAOxL,UAAUyf,GAAUlU,EAASvL,UAAUyf,GAC/E,CAEF,SAASjU,EAAO5G,GACd,KAAM5F,gBAAgBwM,GAAS,OAAO,IAAIA,EAAO5G,GACjDqhD,EAASlnD,KAAKC,KAAM4F,GACpB2G,EAASxM,KAAKC,KAAM4F,GACpB5F,KAAK8wK,eAAgB,EACjBlrK,KACuB,IAArBA,EAAQi4E,WAAoB79E,KAAK69E,UAAW,IACvB,IAArBj4E,EAAQ0K,WAAoBtQ,KAAKsQ,UAAW,IAClB,IAA1B1K,EAAQkrK,gBACV9wK,KAAK8wK,eAAgB,EACrB9wK,KAAKkT,KAAK,MAAO6qE,IAGvB,CA8BA,SAASA,IAEH/9E,KAAKuP,eAAeZ,OAIxBjC,EAAQK,SAASgkK,EAAS/wK,KAC5B,CACA,SAAS+wK,EAAQrjK,GACfA,EAAKuF,KACP,CAvCArR,OAAOgQ,eAAepF,EAAOxL,UAAW,wBAAyB,CAI/DgS,YAAY,EACZhN,IAAK,WACH,OAAOhG,KAAKuP,eAAepB,aAC7B,IAEFvM,OAAOgQ,eAAepF,EAAOxL,UAAW,iBAAkB,CAIxDgS,YAAY,EACZhN,IAAK,WACH,OAAOhG,KAAKuP,gBAAkBvP,KAAKuP,eAAekC,WACpD,IAEF7P,OAAOgQ,eAAepF,EAAOxL,UAAW,iBAAkB,CAIxDgS,YAAY,EACZhN,IAAK,WACH,OAAOhG,KAAKuP,eAAelP,MAC7B,IAeFuB,OAAOgQ,eAAepF,EAAOxL,UAAW,YAAa,CAInDgS,YAAY,EACZhN,IAAK,WACH,YAA4ByF,IAAxBzL,KAAKu9F,qBAAwD9xF,IAAxBzL,KAAKuP,gBAGvCvP,KAAKu9F,eAAe1uF,WAAa7O,KAAKuP,eAAeV,SAC9D,EACA1I,IAAK,SAAapE,QAGY0J,IAAxBzL,KAAKu9F,qBAAwD9xF,IAAxBzL,KAAKuP,iBAM9CvP,KAAKu9F,eAAe1uF,UAAY9M,EAChC/B,KAAKuP,eAAeV,UAAY9M,EAClC,G,6HCxHK,MAAMo7P,UAAkC,IAC3C,WAAAjpP,CAAYI,GAAO,QAAE0K,EAAO,SAAE1Z,EAAQ,MAAE4Z,EAAK,KAAEhe,EAAI,IAAEoe,EAAG,SAAEC,EAAQ,aAAEE,EAAY,qBAAEC,EAAoB,MAAEC,EAAK,GAAEE,EAAE,MAAE9d,IAC/G,MAAMsnP,GAAa,QAAY,CAC3BppP,KAAM+e,GAASrZ,QACfka,KACA9d,WAAwB,IAAVA,GACV,IAAG,EAAA0tI,EAAA,GAAY1tI,MAAUmd,GAAOqE,gBAAgBE,QAAU,QAC9DviB,OACAoe,MACAC,cAA8B,IAAbA,GAA4B,IAAG,EAAA6uJ,EAAA,GAAW7uJ,UAC3DE,kBAAsC,IAAjBA,GACjB,IAAG,EAAA2uJ,EAAA,GAAW3uJ,UAClBC,0BAAsD,IAAzBA,GACzB,IAAG,EAAA0uJ,EAAA,GAAW1uJ,UAClBC,UAEJlL,MAAMH,EAAMH,aAAc,CACtBG,QACAhP,WACAoP,aAAc,IACNJ,EAAMI,aAAe,IAAIJ,EAAMI,aAAc,KAAO,GACxD,0BACA20O,GACF5rM,OAAOh7C,SACTwB,KAAM,8BAEVrC,OAAOgQ,eAAe5R,KAAM,QAAS,CACjCgT,YAAY,EACZ4B,cAAc,EACdtE,UAAU,EACVvO,WAAO,IAEX/B,KAAKsU,MAAQA,CACjB,E,iFCFGsK,eAAe8gE,EAAY5gE,EAAQ1K,GACtC,MAAQ4K,QAASC,EAAWH,EAAOE,QAAO,QAAEixI,GAAU,GAAS77I,EACzD4K,EAAUC,GAAW,EAAAqoG,EAAA,GAAaroG,QAAYxT,EAC9CsT,EACE7V,MAAMF,QAAQinJ,GACPA,EAGW,UAAlBjxI,GAASzb,KACF,CAAC,4BADZ,EAIJ,IACI,MAAMsc,OAAW,UAETzL,EAAKyL,GACEzL,EAAKyL,GAGZzL,EAAKgL,mBAAqBhL,EAAKgL,kBAAkB/e,OAAS,QAC7C,EAAAszJ,EAAA,GAA4B,CACrC7zI,cAAe1L,EAAKgL,kBAAkB,KACvCW,MAAM,KACL,MAAM,IAAI,IAAU,qEAJ5B,EANa,IAeX,WAAEZ,EAAU,kBAAEC,EAAiB,MAAEC,EAAK,oBAAEsyF,EAAmB,YAAExuC,EAAW,SAAEC,EAAQ,KAAEliE,EAAI,IAAEoe,EAAG,SAAEC,EAAQ,iBAAEC,EAAgB,aAAEC,EAAY,qBAAEC,EAAoB,MAAEC,EAAK,MAAE5d,EAAK,cAAEslH,KAAkBznG,GAASqwI,QACjM,EAAAiI,EAAA,IAA0Bp5I,EAAQ,IACpC1K,EACH2K,aACAc,OAEFzL,EAKN,GAAIkL,GAAOlL,EAAKkL,MAAQA,EACpB,OAAOA,EACX,MACMjU,GADwC,iBAAhB83D,GAA2B,QAAYA,QAAe13D,IACpD23D,EAC1B4kD,GAAmB,QAAuBX,IAChD,EAAA/E,EAAA,GAAcluG,GACd,MAAM8L,EAAcpB,EAAOI,OAAOiB,YAAYC,oBAAoBC,OAE5DC,GADSJ,GAAe,MACP,KAEhB,EAAA+nG,EAAA,GAAQroG,EAAM,CAAES,OAAQH,IAC3BlB,UACAG,aACAC,oBACAC,QACAsyF,sBACAzwG,OACAqe,WACAC,mBACAC,eACAC,uBACAC,QACAE,KACA9d,SACD,eACH,OAAOuvC,aAAaxyB,EAAOwB,QAAQ,CAC/BG,OAAQ,kBACR7d,OAAQolH,EACF,CACE1nG,EACAjV,GAASyT,EAAOipD,uBAAyB,SACzCigD,GAEF38G,EACI,CAACiV,EAASjV,GACV,CAACiV,KAEnB,CACA,MAAOpV,GACH,MC9GD,SAA6BA,GAAK,SAAE5F,KAAa8O,IACpD,MAAME,EAAQ,MACV,MAAMA,GAAQ,EAAA+5I,EAAA,GAAanjJ,EAAKkJ,GAChC,OAAIE,aAAiB,KACVpJ,EACJoJ,CACV,EALa,GAMd,OAAO,IAAI6oP,EAA0B7oP,EAAO,CACxChP,cACG8O,GAEX,CDmGcgpP,CAAoBlyP,EAAK,IACxBkJ,EACH4K,UACAE,MAAOJ,EAAOI,OAEtB,CACJ,C,0BE5GA,SAAS7b,EAAKg6P,EAAMjxH,GAClB,IAAI9xH,EAAQ+iP,EAAKh9P,OACjBg9P,EAAKh6P,KAAK+oI,GACVxkI,EAAG,KAAO,EAAI0S,GAAS,CACrB,IAAIgjP,EAAehjP,EAAQ,IAAO,EAChCkwB,EAAS6yN,EAAKC,GAChB,KAAI,EAAIp1P,EAAQsiC,EAAQ4hG,IAEnB,MAAMxkI,EADRy1P,EAAKC,GAAelxH,EAAQixH,EAAK/iP,GAASkwB,EAAUlwB,EAAQgjP,CAEjE,CACF,CACA,SAASC,EAAKF,GACZ,OAAO,IAAMA,EAAKh9P,OAAS,KAAOg9P,EAAK,EACzC,CACA,SAAS9iP,EAAI8iP,GACX,GAAI,IAAMA,EAAKh9P,OAAQ,OAAO,KAC9B,IAAI0qB,EAAQsyO,EAAK,GACf1qP,EAAO0qP,EAAK9iP,MACd,GAAI5H,IAASoY,EAAO,CAClBsyO,EAAK,GAAK1qP,EACV/K,EAAG,IACD,IAAI0S,EAAQ,EAAGja,EAASg9P,EAAKh9P,OAAQm9P,EAAan9P,IAAW,EAC7Dia,EAAQkjP,GAER,CACA,IAAIC,EAAY,GAAKnjP,EAAQ,GAAK,EAChCiQ,EAAO8yO,EAAKI,GACZC,EAAaD,EAAY,EACzB9yO,EAAQ0yO,EAAKK,GACf,GAAI,EAAIx1P,EAAQqiB,EAAM5X,GACpB+qP,EAAar9P,GAAU,EAAI6H,EAAQyiB,EAAOJ,IACpC8yO,EAAK/iP,GAASqQ,EACf0yO,EAAKK,GAAc/qP,EACnB2H,EAAQojP,IACPL,EAAK/iP,GAASiQ,EACf8yO,EAAKI,GAAa9qP,EAClB2H,EAAQmjP,OACV,MAAIC,EAAar9P,GAAU,EAAI6H,EAAQyiB,EAAOhY,IAE9C,MAAM/K,EADRy1P,EAAK/iP,GAASqQ,EAAS0yO,EAAKK,GAAc/qP,EAAQ2H,EAAQojP,CACjD,CACd,CACF,CACA,OAAO3yO,CACT,CACA,SAAS7iB,EAAQN,EAAGC,GAClB,IAAIsiB,EAAOviB,EAAE+1P,UAAY91P,EAAE81P,UAC3B,OAAO,IAAMxzO,EAAOA,EAAOviB,EAAE0b,GAAKzb,EAAEyb,EACtC,CAEA,GADAhiB,EAAQw6L,kBAAe,EACnB,iBAAoBjb,aAAe,mBAAsBA,YAAYtrI,IAAK,CAC5E,IAAIqoN,EAAmB/8E,YACvBv/K,EAAQw6L,aAAe,WACrB,OAAO8hE,EAAiBroN,KAC1B,CACF,KAAO,CACL,IAAIsoN,EAAYjoN,KACdkoN,EAAcD,EAAUtoN,MAC1Bj0C,EAAQw6L,aAAe,WACrB,OAAO+hE,EAAUtoN,MAAQuoN,CAC3B,CACF,CACA,IAAIC,EAAY,GACdC,EAAa,GACbC,EAAgB,EAChBC,EAAc,KACdC,EAAuB,EACvBC,GAAmB,EACnBC,GAA0B,EAC1BC,GAAyB,EACzBC,GAAa,EACbC,EAAkB,mBAAsBl5N,WAAaA,WAAa,KAClEm5N,EAAoB,mBAAsB57I,aAAeA,aAAe,KACxE67I,EAAoB,oBAAuB5xP,aAAeA,aAAe,KAC3E,SAAS6xP,EAActgE,GACrB,IAAK,IAAI5xB,EAAQ8wF,EAAKS,GAAa,OAASvxF,GAAS,CACnD,GAAI,OAASA,EAAMzhK,SAAUuP,EAAIyjP,OAC5B,MAAIvxF,EAAMvkE,WAAam2F,GAIvB,MAHH9jL,EAAIyjP,GACDvxF,EAAMkxF,UAAYlxF,EAAMtS,eACzB92J,EAAK06P,EAAWtxF,EACV,CACVA,EAAQ8wF,EAAKS,EACf,CACF,CACA,SAASY,EAAcvgE,GAGrB,GAFAigE,GAAyB,EACzBK,EAActgE,IACTggE,EACH,GAAI,OAASd,EAAKQ,GACfM,GAA0B,EACzBQ,IACIA,GAAuB,EAAKC,SAC/B,CACH,IAAIC,EAAaxB,EAAKS,GACtB,OAASe,GACPC,EAAmBJ,EAAeG,EAAW72J,UAAYm2F,EAC7D,CACJ,CACA,IAkFIygE,EAlFAD,GAAuB,EACzBI,GAAiB,EACjBC,EAAgB,EAChBh3J,GAAa,EACf,SAASi3J,IACP,SAAOZ,GAEHj9P,EAAQw6L,eAAiB5zF,EAAYg3J,EAG3C,CACA,SAASE,IAEP,GADAb,GAAa,EACTM,EAAsB,CACxB,IAAIxgE,EAAc/8L,EAAQw6L,eAC1B5zF,EAAYm2F,EACZ,IAAIghE,GAAc,EAClB,IACEz3P,EAAG,CACDy2P,GAA0B,EAC1BC,IACIA,GAAyB,EAC3BG,EAAkBQ,GACjBA,GAAiB,GACpBb,GAAmB,EACnB,IAAIkB,EAAwBnB,EAC5B,IACEt2P,EAAG,CAED,IADA82P,EAActgE,GAEZ6/D,EAAcX,EAAKQ,GACnB,OAASG,KAEPA,EAAY/jG,eAAiBkkC,GAAe8gE,MAG9C,CACA,IAAIn0P,EAAWkzP,EAAYlzP,SAC3B,GAAI,mBAAsBA,EAAU,CAClCkzP,EAAYlzP,SAAW,KACvBmzP,EAAuBD,EAAYqB,cACnC,IAAIC,EAAuBx0P,EACzBkzP,EAAY/jG,gBAAkBkkC,GAGhC,GADAA,EAAc/8L,EAAQw6L,eAClB,mBAAsB0jE,EAAsB,CAC9CtB,EAAYlzP,SAAWw0P,EACvBb,EAActgE,GACdghE,GAAc,EACd,MAAMx3P,CACR,CACAq2P,IAAgBX,EAAKQ,IAAcxjP,EAAIwjP,GACvCY,EAActgE,EAChB,MAAO9jL,EAAIwjP,GACXG,EAAcX,EAAKQ,EACrB,CACA,GAAI,OAASG,EAAamB,GAAc,MACnC,CACH,IAAIN,EAAaxB,EAAKS,GACtB,OAASe,GACPC,EACEJ,EACAG,EAAW72J,UAAYm2F,GAE3BghE,GAAc,CAChB,CACF,CACA,MAAMz3P,CACR,CAAE,QACCs2P,EAAc,KACZC,EAAuBmB,EACvBlB,GAAmB,CACxB,CACAiB,OAAc,CAChB,CACF,CAAE,QACAA,EACIP,IACCD,GAAuB,CAC9B,CACF,CACF,CAEA,GAAI,mBAAsBH,EACxBI,EAAmC,WACjCJ,EAAkBU,EACpB,OACG,GAAI,oBAAuBK,eAAgB,CAC9C,IAAIC,EAAU,IAAID,eAChBE,EAAOD,EAAQE,MACjBF,EAAQG,MAAMC,UAAYV,EAC1BN,EAAmC,WACjCa,EAAKI,YAAY,KACnB,CACF,MACEjB,EAAmC,WACjCN,EAAgBY,EAA0B,EAC5C,EACF,SAASJ,EAAmBh0P,EAAUo1K,GACpC6+E,EAAgBT,EAAgB,WAC9BxzP,EAAS1J,EAAQw6L,eACnB,EAAG1b,EACL,CACA9+K,EAAQo7L,sBAAwB,EAChCp7L,EAAQ46L,2BAA6B,EACrC56L,EAAQk7L,qBAAuB,EAC/Bl7L,EAAQg7L,wBAA0B,EAClCh7L,EAAQ0+P,mBAAqB,KAC7B1+P,EAAQ86L,8BAAgC,EACxC96L,EAAQo6L,wBAA0B,SAAUh2J,GAC1CA,EAAK16B,SAAW,IAClB,EACA1J,EAAQ2+P,wBAA0B,SAAUC,GAC1C,EAAIA,GAAO,IAAMA,EACb9nP,QAAQnN,MACN,mHAEDi0P,EAAgB,EAAIgB,EAAMl4P,KAAKuG,MAAM,IAAM2xP,GAAO,CACzD,EACA5+P,EAAQ06L,iCAAmC,WACzC,OAAOmiE,CACT,EACA78P,EAAQ6+P,cAAgB,SAAUC,GAChC,OAAQjC,GACN,KAAK,EACL,KAAK,EACL,KAAK,EACH,IAAIoB,EAAgB,EACpB,MACF,QACEA,EAAgBpB,EAEpB,IAAImB,EAAwBnB,EAC5BA,EAAuBoB,EACvB,IACE,OAAOa,GACT,CAAE,QACAjC,EAAuBmB,CACzB,CACF,EACAh+P,EAAQu6L,sBAAwB,WAC9B0iE,GAAa,CACf,EACAj9P,EAAQ++P,yBAA2B,SAAUd,EAAea,GAC1D,OAAQb,GACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,MACF,QACEA,EAAgB,EAEpB,IAAID,EAAwBnB,EAC5BA,EAAuBoB,EACvB,IACE,OAAOa,GACT,CAAE,QACAjC,EAAuBmB,CACzB,CACF,EACAh+P,EAAQk6L,0BAA4B,SAClC+jE,EACAv0P,EACApF,GAEA,IAAIy4L,EAAc/8L,EAAQw6L,eAQ1B,OALKl2L,EAFL,iBAAoBA,GAAW,OAASA,GAGlC,iBAFAA,EAAUA,EAAQm0I,QAEa,EAAIn0I,EAC/By4L,EAAcz4L,EAETy4L,EACPkhE,GACN,KAAK,EACH,IAAI3kJ,GAAW,EACf,MACF,KAAK,EACHA,EAAU,IACV,MACF,KAAK,EACHA,EAAU,WACV,MACF,KAAK,EACHA,EAAU,IACV,MACF,QACEA,EAAU,IA2Bd,OAxBA2kJ,EAAgB,CACdj8O,GAAI26O,IACJjzP,SAAUA,EACVu0P,cAAeA,EACfr3J,UAAWtiG,EACXu0J,eANFv/C,EAAUh1G,EAAUg1G,EAOlB+iJ,WAAY,GAEd/3P,EAAUy4L,GACJkhE,EAAc5B,UAAY/3P,EAC5BvC,EAAK26P,EAAYuB,GACjB,OAAShC,EAAKQ,IACZwB,IAAkBhC,EAAKS,KACtBM,GACIG,EAAkBQ,GAAiBA,GAAiB,GACpDX,GAAyB,EAC9BU,EAAmBJ,EAAeh5P,EAAUy4L,MAC5CkhE,EAAc5B,UAAY/iJ,EAC5Bv3G,EAAK06P,EAAWwB,GAChBlB,GACED,IACEC,GAA0B,EAC5BQ,IACIA,GAAuB,EAAKC,OAC/BS,CACT,EACAj+P,EAAQq6L,qBAAuBwjE,EAC/B79P,EAAQg/P,sBAAwB,SAAUt1P,GACxC,IAAIu1P,EAAsBpC,EAC1B,OAAO,WACL,IAAImB,EAAwBnB,EAC5BA,EAAuBoC,EACvB,IACE,OAAOv1P,EAAS8K,MAAM9V,KAAM4W,UAC9B,CAAE,QACAunP,EAAuBmB,CACzB,CACF,CACF,C,8EClVO,MAAM57K,UAAoC,IAC7C,WAAAxvE,EAAY,OAAEvP,EAAM,SAAEwV,EAAQ,KAAE/X,IAC5BqS,MAAM,SAAsB,UAAb0F,EAAuB,WAAa,uBAAuBxV,8BAAmCvC,MAAU,CAAE6B,KAAM,+BACnI,EAEG,MAAM0/E,UAAoC,IAC7C,WAAAzvE,EAAY,KAAE9R,EAAI,WAAE8tE,EAAU,KAAE3sE,IAC5BkR,MAAM,GAAGlR,EAAKqgF,OAAO,GAAGC,gBAAgBtgF,EACnCc,MAAM,GACN9C,uBAAuBa,4BAA+B8tE,MAAgB,CAAEjsE,KAAM,+BACvF,EAEG,MAAMu8P,UAAgC,IACzC,WAAAtsP,EAAY,KAAE9R,EAAI,WAAE8tE,EAAU,KAAE3sE,IAC5BkR,MAAM,GAAGlR,EAAKqgF,OAAO,GAAGC,gBAAgBtgF,EACnCc,MAAM,GACN9C,mCAAmC2uE,KAAc3sE,kBAAqBnB,KAAQmB,UAAc,CAAEU,KAAM,2BAC7G,E,+ECbwB,KAKA,KAKF,KAKG,KAftB,MAoBMo8E,EAAkB,KAKlBY,EAAkB,KAMzB5hF,GADmC,KAC5B,MACU,KAKhB,MAAMohQ,UAAcphQ,G,8ECzCpB,MAAMqhQ,UAAkC,IAC3C,WAAAxsP,EAAY,QAAEvO,IACV8O,MAAM,sBAAsB9O,4BAAmC,CAC3D1B,KAAM,6BAEd,EAEG,MAAM08P,UAAqC,IAC9C,WAAAzsP,GACIO,MAAM,mDAAoD,CACtDxQ,KAAM,gCAEd,EAGG,SAAS28P,EAAmBtuF,GAC/B,OAAOA,EAAaptH,OAAO,CAACi+G,GAAU3L,OAAMz1J,WACjC,GAAGohK,YAAiB3L,MAASz1J,MACrC,GACP,CACO,SAAS8+P,EAAoBx5I,GAChC,OAAOA,EACFniE,OAAO,CAACi+G,GAAUx9J,aAAYkG,MAC/B,IAAIswD,EAAM,GAAGgnG,QAAax9J,OAe1B,OAdIkG,EAAM8T,QACNw8C,GAAO,gBAAgBtwD,EAAM8T,WAC7B9T,EAAM2oJ,UACNr4F,GAAO,kBAAkBtwD,EAAM2oJ,aAC/B3oJ,EAAM4xF,OACNthC,GAAO,eAAetwD,EAAM4xF,UAC5B5xF,EAAMA,QACNswD,GAAO,iBACPA,GAAOykM,EAAmB/0P,EAAMA,QAEhCA,EAAM2mK,YACNr2G,GAAO,qBACPA,GAAOykM,EAAmB/0P,EAAM2mK,YAE7Br2G,GACR,uBACE93D,MAAM,GAAI,EACnB,C,6HCnCA,MAEay8P,EAA4BjvP,OAAOwP,IAFxB,iBAIX0/O,EAAyB,KAAmB,iBAEzD,MAAMC,EACJt5P,KACA,CAACo5P,GAAgBA,EACjBG,KACA,WAAA/sP,CAAYxM,GACV1H,KAAK0H,KAAOA,EACZ1H,KAAKihQ,KAAO,IAAI,KAAoBv5P,EACtC,CACA,QAAIqE,GACF,OAAO,MAAU,IAAM/L,KAAKihQ,KAAKz5O,SACnC,CACA,eAAI05O,GACF,OAAO,MAASlhQ,KAAK+L,KAAMmN,GAAKA,EAAI,GACtC,CACA,WAAIioP,GACF,OAAO,MAAU,IAAMnhQ,KAAKihQ,KAAKrjK,QAAQh5F,OAAOo+E,kBAClD,CACA,SAAAo+K,CAAUn5P,EAAK4gB,GACb,OAAO,MAAS7oB,KAAK+L,KAAMmN,IAAM2P,EAAM5gB,GAAOiR,EAAIjR,EACpD,CACA,cAAAo5P,CAAep5P,EAAK4gB,GAClB,OAAO,MAAU,IAAM7oB,KAAKihQ,KAAKrjK,QAAQ/0E,EAAM5gB,GAAOA,EACxD,CACA,OAAAq5P,CAAQv5O,GACN,OAAOw5O,EAAYx5O,EAAU7O,GAAKlZ,KAAKqhQ,eAAe,EAAGnoP,GAC3D,EAEF,MAAMqoP,EAAc,CAACx5O,EAAUy5O,IACtB,MAAa,KAAM,QAAK,MAAU,IAAMt4P,MAAMjJ,KAAK8nB,IAAY,MAAa9W,IACjF,MAAMwwP,EAAU,GAChB,IAAK,IAAI3gQ,EAAImQ,EAAO5Q,OAAQS,GAAK,EAAGA,GAAQ,EAC1C2gQ,EAAQp+P,KAAKvC,GAEf,OAAO,QAAK2gQ,EAAS,MAA8BvoP,IAAK,QAAKsoP,EAAetoP,GAAI,MAASlS,GAAK6kL,EAAK56K,EAAQiI,EAAI,EAAGlS,MAAO,KAAQ,KAAmBiK,SAGlJ46K,EAAO,CAAC56K,EAAQywP,EAAQC,KAC5B,MAAM33L,EAAM/4D,EAAOywP,GAGnB,OAFAzwP,EAAOywP,GAAUzwP,EAAO0wP,GACxB1wP,EAAO0wP,GAAU33L,EACV/4D,GAEI4Q,EAAOna,GAAQ,IAAIs5P,EAAW,KAAUt5P,G,qKCjDrD,MAAMpC,EAAW,mCACV,SAASs8P,EAAkB7iP,GAC9B,MAAM,IAAEimD,EAAG,UAAE0kF,EAAS,KAAEt1I,GAAS2K,EACjC,IAAIumD,EAAUN,EAAI,GAClB,GAAI0kF,EAAW,CACX,MAAMl0G,GAAO,EAAAugJ,EAAA,IAAW,CAAE/wH,MAAK5wD,OAAMnQ,KAAMylJ,IAC3C,IAAKl0G,EACD,MAAM,IAAI,KAAsBk0G,EAAW,CAAEpkJ,aACjDggE,EAAU9vB,CACd,CACA,GAAqB,UAAjB8vB,EAAQ/hE,KACR,MAAM,IAAI,UAAsBkI,EAAW,CAAEnG,aACjD,MAAMi1O,GAAa,EAAAh1K,EAAA,GAAcD,GAC3BnnC,GAAY,EAAA41C,EAAA,GAAmBwmK,GACrC,IAAIr5O,EAAO,KACX,GAAIkT,GAAQA,EAAK/T,OAAS,EAAG,CACzB,IAAKilE,EAAQE,OACT,MAAM,IAAI,KAA4BF,EAAQrhE,KAAM,CAAEqB,aAC1DpE,GAAO,EAAAgjG,EAAA,GAAoB5+B,EAAQE,OAAQpxD,EAC/C,CACA,OAAO,EAAA5T,EAAA,IAAU,CAAC29B,EAAWj9B,GACjC,CCxBA,MAAM,EAAW,sCCEJ2gQ,EAAuB,uBAC7BjjP,eAAe69H,EAAyB19H,GAC3C,MAAM,KAAE7d,EAAI,YAAEq7I,GAAgBx9H,GACtB3K,MAAO0tP,ICHZ,SAA4B/iP,GAC/B,MAAM,IAAEimD,EAAG,KAAE9jE,GAAS6d,EAChBof,GAAY,EAAA95B,EAAA,IAAMnD,EAAM,EAAG,GAC3BotC,EAAc02B,EAAIsa,KAAM5rE,GAAiB,aAAXA,EAAEnQ,MAClC46B,KAAc,EAAA41C,EAAA,IAAmB,EAAAxO,EAAA,GAAc7xD,KACnD,IAAK46B,EACD,MAAM,IAAI,KAAkCnQ,EAAW,CACnD74B,SAAU,sCAElB,MAAO,CACH4/D,aAAc52B,EAAYrqC,KAC1BmQ,KAAO,WAAYk6B,GACfA,EAAYk3B,QACZl3B,EAAYk3B,OAAOnlE,OAAS,GAC1B,EAAAsC,EAAA,GAAoB2rC,EAAYk3B,QAAQ,EAAAnhE,EAAA,IAAMnD,EAAM,SACpDuK,EAEd,CDdiCs2P,CAAmB,CAAE/8L,IAAK,KAAiB9jE,SAClEkjK,EAAW,GACX49F,EAAY,GAalB,aAZM7sP,QAAQ6S,IAAI85O,EAAQpgQ,IAAIkd,MAAOqjP,EAAOnhQ,KACxC,IACIkhQ,EAAUlhQ,GAAKmhQ,EAAMhmH,KAAKv3E,SAASm9L,SACvBplH,EAAyB,CAAEv7I,KAAM+gQ,EAAM/gQ,KAAMq7I,sBAC7CA,EAAY0lH,GACxB79F,EAAStjK,IAAK,CAClB,CACA,MAAOoK,GACHk5J,EAAStjK,IAAK,EACdkhQ,EAAUlhQ,GAUC,sBADFmK,EATkBC,GAUzBjH,MAA+BgH,EAAM5C,OACpCu5P,EAAkB,CACrB58L,IAAK,KACL0kF,UAAW,YACXt1I,KAAM,CAACnJ,EAAM5C,OAAQ4C,EAAMkJ,gBAE5BytP,EAAkB,CACrB58L,IAAK,CAACk9L,EAAA,IACNx4G,UAAW,QACXt1I,KAAM,CAAC,iBAAkBnJ,EAAQA,EAAMkJ,aAAelJ,EAAMsJ,UAlB5D,CAQR,IAAqBtJ,KDzBd,SAA8B8T,GACjC,MAAM,IAAEimD,EAAG,aAAEE,EAAY,OAAEj/D,GAAW8Y,EACtC,IAAIumD,EAAUN,EAAI,GAClB,GAAIE,EAAc,CACd,MAAM1vB,GAAO,EAAAugJ,EAAA,IAAW,CAAE/wH,MAAK/gE,KAAMihE,IACrC,IAAK1vB,EACD,MAAM,IAAI,KAAyB0vB,EAAc,CAAE5/D,SAAQ,IAC/DggE,EAAU9vB,CACd,CACA,GAAqB,aAAjB8vB,EAAQ/hE,KACR,MAAM,IAAI,UAAyBkI,EAAW,CAAEnG,SAAQ,IAC5D,IAAKggE,EAAQI,QACT,MAAM,IAAI,KAAgCJ,EAAQrhE,KAAM,CAAEqB,SAAQ,IACtE,MAAMvC,EAAS,MACX,GAA+B,IAA3BuiE,EAAQI,QAAQrlE,OAChB,MAAO,GACX,GAA+B,IAA3BilE,EAAQI,QAAQrlE,OAChB,MAAO,CAAC4F,GACZ,GAAIiD,MAAMF,QAAQ/C,GACd,OAAOA,EACX,MAAM,IAAI,KAAkBA,EAC/B,EARc,GASf,OAAO,EAAAi+F,EAAA,GAAoB5+B,EAAQI,QAAS3iE,EAChD,CCJWo/P,CAAqB,CACxBn9L,IAAK,KACLE,aAAc,QACdj/D,OAAQ,CAACm+J,EAAU49F,IAE3B,C,4DEhBO,MAEMrsM,E,SAAS,G,0BCKf,SAASysM,EAA0BrjP,GACtC,MAAM,WAAEoF,EAAU,QAAEtX,EAAU,GAAMkS,EAC9Bc,EAAKd,EAAWc,KAA6B,iBAAfsE,EAA0B,MAAQ,SAChEk+O,EClBH,SAAgBtgQ,GACnB,MACMG,EAAQ,GAAa,EAAA21E,EAAA,GAAM91E,EAAO,CAAE8D,QAAQ,KAAW,EAAAy7G,EAAA,IAAQv/G,GAASA,GAC9E,OACWG,CAEf,CDY0B,CAAOiiB,GAE7B,OADAk+O,EAAcl8P,IAAI,CAAC0G,GAAU,GACd,UAAPgT,EAAiBwiP,GAAgB,QAAWA,EACxD,CEPO,SAASxwJ,EAA6B9yF,GACzC,MAAM,YAAEiF,EAAW,QAAEnX,GAAYkS,EAC3Bc,EAAKd,EAAWc,KAAiC,iBAAnBmE,EAAY,GAAkB,MAAQ,SACpEwnD,EAAS,GACf,IAAK,MAAMrnD,KAAcH,EACrBwnD,EAAOnoE,KAAK++P,EAA0B,CAClCj+O,aACAtE,KACAhT,aAGR,OAAO2+D,CACX,C,yIC2CG35D,OAAO0J,SAQH,MAAMmvO,EACXh9O,KACA8gK,QAAS,EACT,WAAAt6J,CAAYxG,GACV1N,KAAK0N,KAAOA,CACd,CAIA,IAAA3B,CAAKnE,GACH,OAAO5H,KAAKwuK,OAAS,CACnBzsK,MAAO6F,EACPonC,MAAM,IACHhvC,KAAKwuK,QAAS,EAAM,CACvBzsK,MAAO/B,KAAK0N,KACZshC,MAAM,GAEV,CAIA,OAAOpnC,GACL,MAAO,CACL7F,MAAO6F,EACPonC,MAAM,EAEV,CAIA,MAAMhlC,GACJ,MAAMA,CACR,CAIA,CAAC6H,OAAO0J,YACN,OAAO,IAAImvO,EAAc1qP,KAAK0N,KAChC,EAgCK,MAAM40P,EACXC,OACA,WAAAruP,CAAYsuP,EAAQC,EAAQC,EAAOC,GAmBjC,OAlBI,QAAWF,KAAW,QAAWD,IACnCC,EAAyB,WAAhBz6P,KAAKggG,WAA0B,EACxCw6J,EAAS,IACA,QAAWC,KACpBA,EAASD,EACTA,EAAS,IAEP,QAAWG,KAAU,QAAWD,IAClCC,EAAQ3iQ,KAAKuiQ,OAASviQ,KAAKuiQ,OAAO,GAxBnB,WAyBfG,EAAQ1iQ,KAAKuiQ,OAASviQ,KAAKuiQ,OAAO,GA1BnB,YA2BN,QAAWI,KACpBA,EAAQD,EACRA,EAAQ,GAEV1iQ,KAAKuiQ,OAAS,IAAIK,WAAW,CAAC,EAAG,EAAGF,IAAU,GAAmB,GAAdC,GAAS,MAAY,IACxE3iQ,KAAK6iQ,QACLC,EAAM9iQ,KAAKuiQ,OAAQviQ,KAAKuiQ,OAAO,GAAIviQ,KAAKuiQ,OAAO,GAAIC,IAAW,EAAGC,IAAW,GAC5EziQ,KAAK6iQ,QACE7iQ,IACT,CAQA,QAAA62O,GACE,MAAO,CAAC72O,KAAKuiQ,OAAO,GAAIviQ,KAAKuiQ,OAAO,GAAIviQ,KAAKuiQ,OAAO,GAAIviQ,KAAKuiQ,OAAO,GACtE,CAMA,QAAAr+H,CAASr4H,GACP7L,KAAKuiQ,OAAO,GAAK12P,EAAM,GACvB7L,KAAKuiQ,OAAO,GAAK12P,EAAM,GACvB7L,KAAKuiQ,OAAO,GAAK12P,EAAM,GACvB7L,KAAKuiQ,OAAO,GAAgB,EAAX12P,EAAM,EACzB,CAOA,OAAA+xF,CAAQ/0E,GACN,OAAO7gB,KAAKqqF,MAAMryF,KAAKwnB,SAAW5iB,OAAOo+E,kBAAoBn6D,CAC/D,CAQA,MAAArB,GAGE,OAFyC,GAAd,SAAfxnB,KAAK6iQ,SAtEN,UAuE8B,GAAd,UAAf7iQ,KAAK6iQ,UAxEN,gBA0Eb,CAEA,KAAAA,GAEE,MAAME,EAAQ/iQ,KAAKuiQ,OAAO,KAAO,EAC3BS,EAAQhjQ,KAAKuiQ,OAAO,KAAO,GAiBrC,SAAe5wP,EAAKsxP,EAAKC,EAAKC,EAAKC,GACjC,IAAIttO,EAAoB,OAAdotO,IAAQ,MAAyB,EACvCG,EAAsB,OAAV,MAANH,KAAiC,EACvC75K,EAAsB,OAAV,MAAN65K,KAAmC,EACzC74K,EAAoB,OAAd64K,IAAQ,MAAuBG,IAAO,KAAOvtO,IAAO,OAAS,EACvEutO,EAAKA,GAAM,KAAO,EAClBh6K,EAAKA,EAAKg6K,IAAO,EACbh6K,IAAO,EAAIg6K,IAAO,IACpBh5K,EAAKA,EAAK,IAAM,GAElBv0D,EAAKA,GAAM,KAAO,EAClBuzD,EAAKA,EAAKvzD,IAAO,EACbuzD,IAAO,EAAIvzD,IAAO,IACpBu0D,EAAKA,EAAK,IAAM,GAElBA,EAAKA,EAAKriF,KAAK85D,KAAKohM,EAjHP,cAiHqB,EAClC74K,EAAKA,EAAKriF,KAAK85D,KAAKmhM,EAAKG,KAAS,EAClCzxP,EAAI,GAAK04E,EACT14E,EAAI,GAAK03E,CACX,CAlCIi6K,CAAMtjQ,KAAKuiQ,OAAQQ,EAAOC,EAnFf,EACA,YAmFXF,EAAM9iQ,KAAKuiQ,OAAQviQ,KAAKuiQ,OAAO,GAAIviQ,KAAKuiQ,OAAO,GAAIviQ,KAAKuiQ,OAAO,GAAIviQ,KAAKuiQ,OAAO,IAE/E,IAAIgB,EAAOR,IAAU,GACjBS,GAAQR,IAAU,GAAKD,GAAS,MAAQ,EAC5CQ,GAAQA,EAAOR,KAAW,EAC1BS,GAAQA,EAAOR,KAAW,EAC1B,MAAMS,GAAcD,IAAS,GAAKD,GAAQ,KAAO,EAG3CG,EAAMX,IAAU,GAEtB,OAAQU,IAAeC,EAAMD,MADdC,IAAQ,EAAI,MAAQ,MACkB,CACvD,EAuBF,SAASZ,EAAMnxP,EAAKsxP,EAAKC,EAAKC,EAAKC,GACjC,IAAI/4K,EAAK44K,EAAME,IAAQ,EACvB,MAAM95K,EAAK65K,EAAME,IAAQ,EACrB/5K,IAAO,EAAI65K,IAAQ,IACrB74K,EAAKA,EAAK,EAAI,GAEhB14E,EAAI,GAAK04E,EACT14E,EAAI,GAAK03E,CACX,CAIO,MAAMs6K,EAA+B9xP,OAAOwP,IAAI,0BAIhD,MAAMuiP,EAIX,GACA,WAAA1vP,CAAYnS,GACV/B,MAAK,EAAS+B,CAChB,CAIA,CAAC4hQ,KACC,OAAO3jQ,MAAK,CACd,EAKK,SAAS6jQ,EAAan2P,GAC3B,GAAoB,iBAATA,GAA8B,OAATA,GAAiBi2P,KAAmBj2P,EAClE,OAAOA,EAAKi2P,KAEd,MAAM,IAAIv8P,OAAM,OAAmB,gBACrC,CAQO,MAAM08P,GAAqC,OAAY,kCAAmC,KAAM,CACrG1lI,SAAS,EACTopD,YAAQ/7K,KAuBJs4P,EAAW,CACfC,yBAA0BjlN,GACjBA,KAkBEklN,GANgI,IAArGF,EAASC,yBAAyB,KAAM,IAAI58P,OAAQg5B,QAAQskC,SAAS,4BAM5Dq/L,EAASC,yBAd9BjlN,IACxB,IACE,OAAOA,GACT,CAAE,QAEF,E,6CCpVG,MAAMmlN,EAA0B,C,4BCCvC,IAAIz4P,EAEAmsK,EAAU,EAAQ,OAElBusF,EAAS,EAAQ,OACjBC,EAAa,EAAQ,OACrBC,EAAc,EAAQ,OACtBC,EAAkB,EAAQ,OAC1Bj6L,EAAe,EAAQ,OACvB/2D,EAAa,EAAQ,MACrBixP,EAAY,EAAQ,OAEpBrxN,EAAM,EAAQ,OACd3kC,EAAQ,EAAQ,OAChBsa,EAAM,EAAQ,OACd5gB,EAAM,EAAQ,MACdqyB,EAAM,EAAQ,OACd+3D,EAAQ,EAAQ,OAChBj9B,EAAO,EAAQ,OAEfovM,EAAYzyP,SAGZ0yP,EAAwB,SAAUC,GACrC,IACC,OAAOF,EAAU,yBAA2BE,EAAmB,iBAAxDF,EACR,CAAE,MAAOx6P,GAAI,CACd,EAEIkpL,EAAQ,EAAQ,OAChBrwK,EAAkB,EAAQ,OAE1B8hP,EAAiB,WACpB,MAAM,IAAIrxP,CACX,EACIsxP,EAAiB1xE,EACjB,WACF,IAGC,OAAOyxE,CACR,CAAE,MAAOE,GACR,IAEC,OAAO3xE,EAAMt8K,UAAW,UAAU5Q,GACnC,CAAE,MAAO8+P,GACR,OAAOH,CACR,CACD,CACD,CAbE,GAcAA,EAECtmM,EAAa,EAAQ,MAAR,GAEb0tC,EAAW,EAAQ,OACnBg5J,EAAa,EAAQ,OACrBC,EAAc,EAAQ,OAEtB35O,EAAS,EAAQ,OACjBC,EAAQ,EAAQ,OAEhB25O,EAAY,CAAC,EAEbC,EAAmC,oBAAfv3P,YAA+Bo+F,EAAuBA,EAASp+F,YAArBlC,EAE9D05P,EAAa,CAChB94J,UAAW,KACX,mBAA8C,oBAAnB+4J,eAAiC35P,EAAY25P,eACxE,UAAWl8P,MACX,gBAAwC,oBAAhBsM,YAA8B/J,EAAY+J,YAClE,2BAA4B6oD,GAAc0tC,EAAWA,EAAS,GAAGl6F,OAAO0J,aAAe9P,EACvF,mCAAoCA,EACpC,kBAAmBw5P,EACnB,mBAAoBA,EACpB,2BAA4BA,EAC5B,2BAA4BA,EAC5B,YAAgC,oBAAZI,QAA0B55P,EAAY45P,QAC1D,WAA8B,oBAAX/zN,OAAyB7lC,EAAY6lC,OACxD,kBAA4C,oBAAlBg0N,cAAgC75P,EAAY65P,cACtE,mBAA8C,oBAAnBC,eAAiC95P,EAAY85P,eACxE,YAAa9iQ,QACb,aAAkC,oBAAb4pB,SAA2B5gB,EAAY4gB,SAC5D,SAAUupB,KACV,cAAe4vN,UACf,uBAAwBC,mBACxB,cAAeC,UACf,uBAAwB9qF,mBACxB,UAAWupF,EACX,SAAUrgO,KACV,cAAesgO,EACf,iBAA0C,oBAAjBuB,aAA+Bl6P,EAAYk6P,aACpE,iBAA0C,oBAAjBC,aAA+Bn6P,EAAYm6P,aACpE,iBAA0C,oBAAjBhxN,aAA+BnpC,EAAYmpC,aACpE,yBAA0D,oBAAzBixN,qBAAuCp6P,EAAYo6P,qBACpF,aAAcrB,EACd,sBAAuBS,EACvB,cAAoC,oBAAda,UAA4Br6P,EAAYq6P,UAC9D,eAAsC,oBAAfC,WAA6Bt6P,EAAYs6P,WAChE,eAAsC,oBAAfnD,WAA6Bn3P,EAAYm3P,WAChE,aAAcllJ,SACd,UAAWrnG,MACX,sBAAuBgoD,GAAc0tC,EAAWA,EAASA,EAAS,GAAGl6F,OAAO0J,cAAgB9P,EAC5F,SAA0B,iBAAT7C,KAAoBA,KAAO6C,EAC5C,QAAwB,oBAAR8gB,IAAsB9gB,EAAY8gB,IAClD,yBAAyC,oBAARA,KAAwB8xC,GAAe0tC,EAAuBA,GAAS,IAAIx/E,KAAM1a,OAAO0J,aAAtC9P,EACnF,SAAUzD,KACV,WAAYpD,OACZ,WAAYgzK,EACZ,oCAAqCsb,EACrC,eAAgB8yE,WAChB,aAAcnhQ,SACd,YAAgC,oBAAZsQ,QAA0B1J,EAAY0J,QAC1D,UAA4B,oBAAV6pE,MAAwBvzE,EAAYuzE,MACtD,eAAgBqlL,EAChB,mBAAoBC,EACpB,YAAgC,oBAAZ1uP,QAA0BnK,EAAYmK,QAC1D,WAAY8iI,OACZ,QAAwB,oBAARz1G,IAAsBx3B,EAAYw3B,IAClD,yBAAyC,oBAARA,KAAwBo7B,GAAe0tC,EAAuBA,GAAS,IAAI9oE,KAAMpxB,OAAO0J,aAAtC9P,EACnF,sBAAoD,oBAAtBs/K,kBAAoCt/K,EAAYs/K,kBAC9E,WAAY5yK,OACZ,4BAA6BkmD,GAAc0tC,EAAWA,EAAS,GAAGl6F,OAAO0J,aAAe9P,EACxF,WAAY4yD,EAAaxsD,OAASpG,EAClC,gBAAiB4+D,EACjB,mBAAoBu6L,EACpB,eAAgBM,EAChB,cAAe5xP,EACf,eAAsC,oBAAf3F,WAA6BlC,EAAYkC,WAChE,sBAAoD,oBAAtBs4P,kBAAoCx6P,EAAYw6P,kBAC9E,gBAAwC,oBAAhBC,YAA8Bz6P,EAAYy6P,YAClE,gBAAwC,oBAAhBvxN,YAA8BlpC,EAAYkpC,YAClE,aAAc4vN,EACd,YAAgC,oBAAZ/tN,QAA0B/qC,EAAY+qC,QAC1D,YAAgC,oBAAZ2vN,QAA0B16P,EAAY06P,QAC1D,YAAgC,oBAAZpiM,QAA0Bt4D,EAAYs4D,QAE1D,4BAA6Bz4C,EAC7B,6BAA8BD,EAC9B,0BAA2BxI,EAC3B,0BAA2BkiP,EAC3B,aAAc7xN,EACd,eAAgB3kC,EAChB,aAAcsa,EACd,aAAc5gB,EACd,aAAcqyB,EACd,eAAgB+3D,EAChB,cAAej9B,EACf,2BAA4B4vM,GAG7B,GAAIj5J,EACH,IACC,KAAK9gG,KACN,CAAE,MAAOjB,GAER,IAAIo8P,EAAar6J,EAASA,EAAS/hG,IACnCm7P,EAAW,qBAAuBiB,CACnC,CAGD,IAAIC,EAAS,SAASA,EAAOpiQ,GAC5B,IAAIlC,EACJ,GAAa,oBAATkC,EACHlC,EAAQ0iQ,EAAsB,6BACxB,GAAa,wBAATxgQ,EACVlC,EAAQ0iQ,EAAsB,wBACxB,GAAa,6BAATxgQ,EACVlC,EAAQ0iQ,EAAsB,8BACxB,GAAa,qBAATxgQ,EAA6B,CACvC,IAAI6Q,EAAKuxP,EAAO,4BACZvxP,IACH/S,EAAQ+S,EAAG9T,UAEb,MAAO,GAAa,6BAATiD,EAAqC,CAC/C,IAAIgiB,EAAMogP,EAAO,oBACbpgP,GAAO8lF,IACVhqG,EAAQgqG,EAAS9lF,EAAIjlB,WAEvB,CAIA,OAFAmkQ,EAAWlhQ,GAAQlC,EAEZA,CACR,EAEIukQ,EAAiB,CACpBj6J,UAAW,KACX,yBAA0B,CAAC,cAAe,aAC1C,mBAAoB,CAAC,QAAS,aAC9B,uBAAwB,CAAC,QAAS,YAAa,WAC/C,uBAAwB,CAAC,QAAS,YAAa,WAC/C,oBAAqB,CAAC,QAAS,YAAa,QAC5C,sBAAuB,CAAC,QAAS,YAAa,UAC9C,2BAA4B,CAAC,gBAAiB,aAC9C,mBAAoB,CAAC,yBAA0B,aAC/C,4BAA6B,CAAC,yBAA0B,YAAa,aACrE,qBAAsB,CAAC,UAAW,aAClC,sBAAuB,CAAC,WAAY,aACpC,kBAAmB,CAAC,OAAQ,aAC5B,mBAAoB,CAAC,QAAS,aAC9B,uBAAwB,CAAC,YAAa,aACtC,0BAA2B,CAAC,eAAgB,aAC5C,0BAA2B,CAAC,eAAgB,aAC5C,sBAAuB,CAAC,WAAY,aACpC,cAAe,CAAC,oBAAqB,aACrC,uBAAwB,CAAC,oBAAqB,YAAa,aAC3D,uBAAwB,CAAC,YAAa,aACtC,wBAAyB,CAAC,aAAc,aACxC,wBAAyB,CAAC,aAAc,aACxC,cAAe,CAAC,OAAQ,SACxB,kBAAmB,CAAC,OAAQ,aAC5B,iBAAkB,CAAC,MAAO,aAC1B,oBAAqB,CAAC,SAAU,aAChC,oBAAqB,CAAC,SAAU,aAChC,sBAAuB,CAAC,SAAU,YAAa,YAC/C,qBAAsB,CAAC,SAAU,YAAa,WAC9C,qBAAsB,CAAC,UAAW,aAClC,sBAAuB,CAAC,UAAW,YAAa,QAChD,gBAAiB,CAAC,UAAW,OAC7B,mBAAoB,CAAC,UAAW,UAChC,oBAAqB,CAAC,UAAW,WACjC,wBAAyB,CAAC,aAAc,aACxC,4BAA6B,CAAC,iBAAkB,aAChD,oBAAqB,CAAC,SAAU,aAChC,iBAAkB,CAAC,MAAO,aAC1B,+BAAgC,CAAC,oBAAqB,aACtD,oBAAqB,CAAC,SAAU,aAChC,oBAAqB,CAAC,SAAU,aAChC,yBAA0B,CAAC,cAAe,aAC1C,wBAAyB,CAAC,aAAc,aACxC,uBAAwB,CAAC,YAAa,aACtC,wBAAyB,CAAC,aAAc,aACxC,+BAAgC,CAAC,oBAAqB,aACtD,yBAA0B,CAAC,cAAe,aAC1C,yBAA0B,CAAC,cAAe,aAC1C,sBAAuB,CAAC,WAAY,aACpC,qBAAsB,CAAC,UAAW,aAClC,qBAAsB,CAAC,UAAW,cAG/Bx4F,EAAO,EAAQ,OACf24I,EAAS,EAAQ,MACjB+5G,EAAU1yP,EAAK9T,KAAKurB,EAAOpiB,MAAMlI,UAAUR,QAC3CgmQ,EAAe3yP,EAAK9T,KAAKsrB,EAAQniB,MAAMlI,UAAUsgC,QACjDmlO,EAAW5yP,EAAK9T,KAAKurB,EAAOnT,OAAOnX,UAAU4uB,SAC7C82O,EAAY7yP,EAAK9T,KAAKurB,EAAOnT,OAAOnX,UAAUqD,OAC9CsiQ,EAAQ9yP,EAAK9T,KAAKurB,EAAOotH,OAAO13I,UAAUsuB,MAG1Cs3O,EAAa,qGACbC,EAAe,WAiBfC,EAAmB,SAA0B7iQ,EAAMy6O,GACtD,IACIqoB,EADAC,EAAgB/iQ,EAOpB,GALIuoJ,EAAO85G,EAAgBU,KAE1BA,EAAgB,KADhBD,EAAQT,EAAeU,IACK,GAAK,KAG9Bx6G,EAAO24G,EAAY6B,GAAgB,CACtC,IAAIjlQ,EAAQojQ,EAAW6B,GAIvB,GAHIjlQ,IAAUkjQ,IACbljQ,EAAQskQ,EAAOW,SAEK,IAAVjlQ,IAA0B28O,EACpC,MAAM,IAAIprO,EAAW,aAAerP,EAAO,wDAG5C,MAAO,CACN8iQ,MAAOA,EACP9iQ,KAAM+iQ,EACNjlQ,MAAOA,EAET,CAEA,MAAM,IAAIsoE,EAAa,aAAepmE,EAAO,mBAC9C,EAEA5C,EAAOC,QAAU,SAAsB2C,EAAMy6O,GAC5C,GAAoB,iBAATz6O,GAAqC,IAAhBA,EAAK5D,OACpC,MAAM,IAAIiT,EAAW,6CAEtB,GAAIsD,UAAUvW,OAAS,GAA6B,kBAAjBq+O,EAClC,MAAM,IAAIprO,EAAW,6CAGtB,GAAmC,OAA/BqzP,EAAM,cAAe1iQ,GACxB,MAAM,IAAIomE,EAAa,sFAExB,IAAIgS,EAtDc,SAAsB90D,GACxC,IAAIwD,EAAQ27O,EAAUn/O,EAAQ,EAAG,GAC7B5U,EAAO+zP,EAAUn/O,GAAS,GAC9B,GAAc,MAAVwD,GAA0B,MAATpY,EACpB,MAAM,IAAI03D,EAAa,kDACjB,GAAa,MAAT13D,GAA0B,MAAVoY,EAC1B,MAAM,IAAIs/C,EAAa,kDAExB,IAAIpkE,EAAS,GAIb,OAHAwgQ,EAASl/O,EAAQq/O,EAAY,SAAUv3O,EAAO7H,EAAQy/O,EAAOC,GAC5DjhQ,EAAOA,EAAO5F,QAAU4mQ,EAAQR,EAASS,EAAWL,EAAc,MAAQr/O,GAAU6H,CACrF,GACOppB,CACR,CAyCakhQ,CAAaljQ,GACrBmjQ,EAAoB/qL,EAAMh8E,OAAS,EAAIg8E,EAAM,GAAK,GAElDsiK,EAAYmoB,EAAiB,IAAMM,EAAoB,IAAK1oB,GAC5D2oB,EAAoB1oB,EAAU16O,KAC9BlC,EAAQ48O,EAAU58O,MAClBulQ,GAAqB,EAErBP,EAAQpoB,EAAUooB,MAClBA,IACHK,EAAoBL,EAAM,GAC1BP,EAAanqL,EAAOkqL,EAAQ,CAAC,EAAG,GAAIQ,KAGrC,IAAK,IAAIjmQ,EAAI,EAAGymQ,GAAQ,EAAMzmQ,EAAIu7E,EAAMh8E,OAAQS,GAAK,EAAG,CACvD,IAAI0mQ,EAAOnrL,EAAMv7E,GACbiqB,EAAQ27O,EAAUc,EAAM,EAAG,GAC3B70P,EAAO+zP,EAAUc,GAAO,GAC5B,IAEa,MAAVz8O,GAA2B,MAAVA,GAA2B,MAAVA,GACtB,MAATpY,GAAyB,MAATA,GAAyB,MAATA,IAElCoY,IAAUpY,EAEb,MAAM,IAAI03D,EAAa,wDASxB,GAPa,gBAATm9L,GAA2BD,IAC9BD,GAAqB,GAMlB96G,EAAO24G,EAFXkC,EAAoB,KADpBD,GAAqB,IAAMI,GACmB,KAG7CzlQ,EAAQojQ,EAAWkC,QACb,GAAa,MAATtlQ,EAAe,CACzB,KAAMylQ,KAAQzlQ,GAAQ,CACrB,IAAK28O,EACJ,MAAM,IAAIprO,EAAW,sBAAwBrP,EAAO,+CAErD,MACD,CACA,GAAIivL,GAAUpyL,EAAI,GAAMu7E,EAAMh8E,OAAQ,CACrC,IAAI2zD,EAAOk/H,EAAMnxL,EAAOylQ,GAWvBzlQ,GAVDwlQ,IAAUvzM,IASG,QAASA,KAAU,kBAAmBA,EAAKhuD,KAC/CguD,EAAKhuD,IAELjE,EAAMylQ,EAEhB,MACCD,EAAQ/6G,EAAOzqJ,EAAOylQ,GACtBzlQ,EAAQA,EAAMylQ,GAGXD,IAAUD,IACbnC,EAAWkC,GAAqBtlQ,EAElC,CACD,CACA,OAAOA,CACR,C,kFChWO6c,eAAey1I,EAA0Bv1I,EAAQC,GACpD,MAAM,QAAEpZ,EAAO,IAAEq/D,EAAG,KAAE5wD,EAAI,UAAEgrE,EAAS,UAAEgwD,EAAS,OAAEvpI,EAAM,QAAEwpI,GAAYtwH,EAChEuuI,GAAa,OAAyBxuI,EAAQ,CAChD2B,OAAQ,kBAENglG,EAASrmC,GACT,OAAkB,CAChBpa,MACA5wD,OACAgrE,mBAEF3zE,EACA6X,QAAWxE,EAAOwB,QAAQ,CAC5BG,OAAQ,gBACR7d,OAAQ,CACJ,CACI+C,UACAypI,UAAgC,iBAAdA,GAAyB,QAAYA,GAAaA,EACpEC,QAA4B,iBAAZA,GAAuB,QAAYA,GAAWA,EAC9D5pB,aAIZ,MAAO,CACHzgD,MACA5wD,OACAgrE,YACA97D,KACAhD,QAASgtI,EAAWhqI,GACpBzd,OAAQpD,QAAQoD,GAChBtC,KAAM,QAEd,C,4BCvDA,IAAIgD,EAAK,EAAQ,OACbpH,EAAW,EAAQ,OACnBE,EAAO,EAAQ,OAEfsyB,EAAQ,EAAQ,OAEpB,SAAS81O,EAAU51O,GACjBxyB,EAAKU,KAAKC,KAAM,OAAQ6xB,GAExB7xB,KAAK4H,EAAI,IAAIrB,EAAGsrB,EAAKjqB,EAAG,IAAIgf,MAAM5mB,KAAK8xB,KACvC9xB,KAAK6H,EAAI,IAAItB,EAAGsrB,EAAKhqB,EAAG,IAAI+e,MAAM5mB,KAAK8xB,KACvC9xB,KAAK0nQ,GAAK,IAAInhQ,EAAG,GAAGqgB,MAAM5mB,KAAK8xB,KAAKG,UACpCjyB,KAAKgyB,IAAM,IAAIzrB,EAAG,GAAGqgB,MAAM5mB,KAAK8xB,KAChC9xB,KAAK2nQ,IAAM3nQ,KAAK0nQ,GAAG/zO,OAAO3zB,KAAK4H,EAAEssB,OAAOl0B,KAAKgyB,KAC/C,CAaA,SAASW,EAAMC,EAAOlf,EAAG2I,GACvBhd,EAAKyzB,UAAU/yB,KAAKC,KAAM4yB,EAAO,cACvB,OAANlf,GAAoB,OAAN2I,GAChBrc,KAAK0T,EAAI1T,KAAK4yB,MAAMM,IACpBlzB,KAAKqc,EAAIrc,KAAK4yB,MAAM4D,OAEpBx2B,KAAK0T,EAAI,IAAInN,EAAGmN,EAAG,IACnB1T,KAAKqc,EAAI,IAAI9V,EAAG8V,EAAG,IACdrc,KAAK0T,EAAEoe,MACV9xB,KAAK0T,EAAI1T,KAAK0T,EAAEkT,MAAM5mB,KAAK4yB,MAAMd,MAC9B9xB,KAAKqc,EAAEyV,MACV9xB,KAAKqc,EAAIrc,KAAKqc,EAAEuK,MAAM5mB,KAAK4yB,MAAMd,MAEvC,CAzBA3yB,EAASsoQ,EAAWpoQ,GACpBgC,EAAOC,QAAUmmQ,EAEjBA,EAAUzmQ,UAAU21B,SAAW,SAAkBD,GAC/C,IAAIhjB,EAAIgjB,EAAM+4E,YAAY/7F,EACtBwhB,EAAKxhB,EAAE4iB,SACPO,EAAM3B,EAAGvB,OAAOjgB,GAAGwgB,OAAOgB,EAAGvB,OAAO3zB,KAAK4H,IAAIssB,OAAOxgB,GAGxD,OAA+B,IAFvBmjB,EAAI5C,UAEHqC,SAASnvB,IAAI0vB,EACxB,EAgBA13B,EAASwzB,EAAOtzB,EAAKyzB,WAErB20O,EAAUzmQ,UAAU26D,YAAc,SAAqBz5D,EAAO0E,GAC5D,OAAO5G,KAAK02B,MAAM/E,EAAM3L,QAAQ9jB,EAAO0E,GAAM,EAC/C,EAEA6gQ,EAAUzmQ,UAAU01B,MAAQ,SAAehjB,EAAG2I,GAC5C,OAAO,IAAIsW,EAAM3yB,KAAM0T,EAAG2I,EAC5B,EAEAorP,EAAUzmQ,UAAUw2B,cAAgB,SAAuBtlB,GACzD,OAAOygB,EAAM8E,SAASz3B,KAAMkS,EAC9B,EAEAygB,EAAM3xB,UAAUs5D,WAAa,WAE7B,EAEA3nC,EAAM3xB,UAAUkpE,QAAU,WACxB,OAAOlqE,KAAK44B,OAAO5S,QAAQ,KAAMhmB,KAAK4yB,MAAMN,EAAEprB,aAChD,EAEAyrB,EAAM8E,SAAW,SAAkB7E,EAAO1gB,GACxC,OAAO,IAAIygB,EAAMC,EAAO1gB,EAAI,GAAIA,EAAI,IAAM0gB,EAAMM,IAClD,EAEAP,EAAM3xB,UAAUo3B,QAAU,WACxB,OAAIp4B,KAAKq4B,aACA,sBACF,gBAAkBr4B,KAAK0T,EAAEoT,UAAUve,SAAS,GAAI,GACnD,OAASvI,KAAKqc,EAAEyK,UAAUve,SAAS,GAAI,GAAK,GAClD,EAEAoqB,EAAM3xB,UAAUq3B,WAAa,WAE3B,OAA0B,IAAnBr4B,KAAKqc,EAAE8V,KAAK,EACrB,EAEAQ,EAAM3xB,UAAUu3B,IAAM,WAKpB,IAEIqvO,EAFI5nQ,KAAK0T,EAAEwgB,OAAOl0B,KAAKqc,GAEhBia,SAIPuxO,EAFI7nQ,KAAK0T,EAAEygB,OAAOn0B,KAAKqc,GAEhBia,SAEPlZ,EAAIwqP,EAAGzzO,OAAO0zO,GAEdrvO,EAAKovO,EAAGj0O,OAAOk0O,GAEf1tO,EAAK/c,EAAEuW,OAAOk0O,EAAG3zO,OAAOl0B,KAAK4yB,MAAM+0O,IAAIh0O,OAAOvW,KAClD,OAAOpd,KAAK4yB,MAAM8D,MAAM8B,EAAI2B,EAC9B,EAEAxH,EAAM3xB,UAAUy0B,IAAM,WACpB,MAAM,IAAIruB,MAAM,oCAClB,EAEAurB,EAAM3xB,UAAU8mQ,QAAU,SAAiBx1O,EAAGnI,GAK5C,IAAIviB,EAAI5H,KAAK0T,EAAEwgB,OAAOl0B,KAAKqc,GAEvBxU,EAAI7H,KAAK0T,EAAEygB,OAAOn0B,KAAKqc,GAEvBe,EAAIkV,EAAE5e,EAAEwgB,OAAO5B,EAAEjW,GAIjB0rP,EAFIz1O,EAAE5e,EAAEygB,OAAO7B,EAAEjW,GAEVsX,OAAO/rB,GAEduE,EAAKiR,EAAEuW,OAAO9rB,GAEd2wB,EAAKrO,EAAK9N,EAAEsX,OAAOo0O,EAAG7zO,OAAO/nB,GAAImqB,UAEjC6D,EAAKhQ,EAAKzW,EAAEigB,OAAOo0O,EAAGjxO,QAAQ3qB,GAAImqB,UACtC,OAAOt2B,KAAK4yB,MAAM8D,MAAM8B,EAAI2B,EAC9B,EAEAxH,EAAM3xB,UAAU0yB,IAAM,SAAa1sB,GAMjC,IALA,IAAIkoB,EAAIloB,EAAE+tB,QACNntB,EAAI5H,KACJ6H,EAAI7H,KAAK4yB,MAAM8D,MAAM,KAAM,MAGtBsvD,EAAO,GAAkB,IAAd92D,EAAEiD,KAAK,GAAUjD,EAAE+6D,OAAO,GAC5CjE,EAAK3iF,KAAK6rB,EAAE86D,MAAM,IAEpB,IAAK,IAAIlpF,EAAIklF,EAAK3lF,OAAS,EAAGS,GAAK,EAAGA,IACpB,IAAZklF,EAAKllF,IAEP8G,EAAIA,EAAEkgQ,QAAQjgQ,EARV7H,MAUJ6H,EAAIA,EAAE0wB,QAGN1wB,EAAID,EAAEkgQ,QAAQjgQ,EAbV7H,MAeJ4H,EAAIA,EAAE2wB,OAGV,OAAO1wB,CACT,EAEA8qB,EAAM3xB,UAAUi4B,OAAS,WACvB,MAAM,IAAI7xB,MAAM,oCAClB,EAEAurB,EAAM3xB,UAAUgnQ,QAAU,WACxB,MAAM,IAAI5gQ,MAAM,oCAClB,EAEAurB,EAAM3xB,UAAUs3B,GAAK,SAAYrR,GAC/B,OAAyC,IAAlCjnB,KAAK44B,OAAOzxB,IAAI8f,EAAM2R,OAC/B,EAEAjG,EAAM3xB,UAAUyuG,UAAY,WAG1B,OAFAzvG,KAAK0T,EAAI1T,KAAK0T,EAAEigB,OAAO3zB,KAAKqc,EAAE4V,WAC9BjyB,KAAKqc,EAAIrc,KAAK4yB,MAAMM,IACblzB,IACT,EAEA2yB,EAAM3xB,UAAU43B,KAAO,WAIrB,OAFA54B,KAAKyvG,YAEEzvG,KAAK0T,EAAEoT,SAChB,C,4BCxJA,IAAIxnB,EAAS,gBAGT4/H,EAAa5/H,EAAO4/H,YAAc,SAAUn0H,GAE9C,QADAA,EAAW,GAAKA,IACIA,EAASxJ,eAC3B,IAAK,MAAM,IAAK,OAAO,IAAK,QAAQ,IAAK,QAAQ,IAAK,SAAS,IAAK,SAAS,IAAK,OAAO,IAAK,QAAQ,IAAK,UAAU,IAAK,WAAW,IAAK,MACxI,OAAO,EACT,QACE,OAAO,EAEb,EA0CA,SAAS49H,EAAcp0H,GAErB,IAAIw6E,EACJ,OAFAvlF,KAAK+K,SAXP,SAA2BnE,GACzB,IAAIw4H,EA/BN,SAA4Bx4H,GAC1B,IAAKA,EAAK,MAAO,OAEjB,IADA,IAAIy4H,IAEF,OAAQz4H,GACN,IAAK,OACL,IAAK,QACH,MAAO,OACT,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,MAAO,UACT,IAAK,SACL,IAAK,SACH,MAAO,SACT,IAAK,SACL,IAAK,QACL,IAAK,MACH,OAAOA,EACT,QACE,GAAIy4H,EAAS,OACbz4H,GAAO,GAAKA,GAAKrF,cACjB89H,GAAU,EAGlB,CAKaC,CAAmB14H,GAC9B,GAAoB,iBAATw4H,IAAsB9/H,EAAO4/H,aAAeA,IAAeA,EAAWt4H,IAAO,MAAM,IAAIQ,MAAM,qBAAuBR,GAC/H,OAAOw4H,GAAQx4H,CACjB,CAOkB24H,CAAkBx0H,GAE1B/K,KAAK+K,UACX,IAAK,UACH/K,KAAKw/H,KAAOC,EACZz/H,KAAKiT,IAAMysH,EACXn6C,EAAK,EACL,MACF,IAAK,OACHvlF,KAAK2/H,SAAWC,EAChBr6C,EAAK,EACL,MACF,IAAK,SACHvlF,KAAKw/H,KAAOK,EACZ7/H,KAAKiT,IAAM6sH,EACXv6C,EAAK,EACL,MACF,QAGE,OAFAvlF,KAAKuQ,MAAQwvH,OACb//H,KAAKiT,IAAM+sH,GAGfhgI,KAAKigI,SAAW,EAChBjgI,KAAKkgI,UAAY,EACjBlgI,KAAKmgI,SAAW7gI,EAAOqB,YAAY4kF,EACrC,CAmCA,SAAS66C,EAAcvyG,GACrB,OAAIA,GAAQ,IAAa,EAAWA,GAAQ,GAAM,EAAa,EAAWA,GAAQ,GAAM,GAAa,EAAWA,GAAQ,GAAM,GAAa,EACpIA,GAAQ,GAAM,GAAQ,GAAK,CACpC,CA0DA,SAAS+xG,EAAa75G,GACpB,IAAIuM,EAAItyB,KAAKkgI,UAAYlgI,KAAKigI,SAC1BxrG,EAtBN,SAA6B/mB,EAAMqY,GACjC,GAAwB,MAAV,IAATA,EAAI,IAEP,OADArY,EAAKuyH,SAAW,EACT,IAET,GAAIvyH,EAAKuyH,SAAW,GAAKl6G,EAAI1lB,OAAS,EAAG,CACvC,GAAwB,MAAV,IAAT0lB,EAAI,IAEP,OADArY,EAAKuyH,SAAW,EACT,IAET,GAAIvyH,EAAKuyH,SAAW,GAAKl6G,EAAI1lB,OAAS,GACZ,MAAV,IAAT0lB,EAAI,IAEP,OADArY,EAAKuyH,SAAW,EACT,GAGb,CACF,CAKUI,CAAoBrgI,KAAM+lB,GAClC,YAAUta,IAANgpB,EAAwBA,EACxBz0B,KAAKigI,UAAYl6G,EAAI1lB,QACvB0lB,EAAI5M,KAAKnZ,KAAKmgI,SAAU7tG,EAAG,EAAGtyB,KAAKigI,UAC5BjgI,KAAKmgI,SAAS53H,SAASvI,KAAK+K,SAAU,EAAG/K,KAAKkgI,aAEvDn6G,EAAI5M,KAAKnZ,KAAKmgI,SAAU7tG,EAAG,EAAGvM,EAAI1lB,aAClCL,KAAKigI,UAAYl6G,EAAI1lB,QACvB,CA0BA,SAASo/H,EAAU15G,EAAKjlB,GACtB,IAAKilB,EAAI1lB,OAASS,GAAK,GAAM,EAAG,CAC9B,IAAI2zB,EAAI1O,EAAIxd,SAAS,UAAWzH,GAChC,GAAI2zB,EAAG,CACL,IAAIrX,EAAIqX,EAAEwzD,WAAWxzD,EAAEp0B,OAAS,GAChC,GAAI+c,GAAK,OAAUA,GAAK,MAKtB,OAJApd,KAAKigI,SAAW,EAChBjgI,KAAKkgI,UAAY,EACjBlgI,KAAKmgI,SAAS,GAAKp6G,EAAIA,EAAI1lB,OAAS,GACpCL,KAAKmgI,SAAS,GAAKp6G,EAAIA,EAAI1lB,OAAS,GAC7Bo0B,EAAEpwB,MAAM,GAAI,EAEvB,CACA,OAAOowB,CACT,CAIA,OAHAz0B,KAAKigI,SAAW,EAChBjgI,KAAKkgI,UAAY,EACjBlgI,KAAKmgI,SAAS,GAAKp6G,EAAIA,EAAI1lB,OAAS,GAC7B0lB,EAAIxd,SAAS,UAAWzH,EAAGilB,EAAI1lB,OAAS,EACjD,CAIA,SAASq/H,EAAS35G,GAChB,IAAI0O,EAAI1O,GAAOA,EAAI1lB,OAASL,KAAKuQ,MAAMwV,GAAO,GAC9C,GAAI/lB,KAAKigI,SAAU,CACjB,IAAIhtH,EAAMjT,KAAKkgI,UAAYlgI,KAAKigI,SAChC,OAAOxrG,EAAIz0B,KAAKmgI,SAAS53H,SAAS,UAAW,EAAG0K,EAClD,CACA,OAAOwhB,CACT,CAEA,SAASorG,EAAW95G,EAAKjlB,GACvB,IAAIoY,GAAK6M,EAAI1lB,OAASS,GAAK,EAC3B,OAAU,IAANoY,EAAgB6M,EAAIxd,SAAS,SAAUzH,IAC3Cd,KAAKigI,SAAW,EAAI/mH,EACpBlZ,KAAKkgI,UAAY,EACP,IAANhnH,EACFlZ,KAAKmgI,SAAS,GAAKp6G,EAAIA,EAAI1lB,OAAS,IAEpCL,KAAKmgI,SAAS,GAAKp6G,EAAIA,EAAI1lB,OAAS,GACpCL,KAAKmgI,SAAS,GAAKp6G,EAAIA,EAAI1lB,OAAS,IAE/B0lB,EAAIxd,SAAS,SAAUzH,EAAGilB,EAAI1lB,OAAS6Y,GAChD,CAEA,SAAS4mH,EAAU/5G,GACjB,IAAI0O,EAAI1O,GAAOA,EAAI1lB,OAASL,KAAKuQ,MAAMwV,GAAO,GAC9C,OAAI/lB,KAAKigI,SAAiBxrG,EAAIz0B,KAAKmgI,SAAS53H,SAAS,SAAU,EAAG,EAAIvI,KAAKigI,UACpExrG,CACT,CAGA,SAASsrG,EAAYh6G,GACnB,OAAOA,EAAIxd,SAASvI,KAAK+K,SAC3B,CAEA,SAASi1H,EAAUj6G,GACjB,OAAOA,GAAOA,EAAI1lB,OAASL,KAAKuQ,MAAMwV,GAAO,EAC/C,CA1NAzkB,EAAQ,EAAgB69H,EA6BxBA,EAAcn+H,UAAUuP,MAAQ,SAAUwV,GACxC,GAAmB,IAAfA,EAAI1lB,OAAc,MAAO,GAC7B,IAAIo0B,EACA3zB,EACJ,GAAId,KAAKigI,SAAU,CAEjB,QAAUx0H,KADVgpB,EAAIz0B,KAAK2/H,SAAS55G,IACG,MAAO,GAC5BjlB,EAAId,KAAKigI,SACTjgI,KAAKigI,SAAW,CAClB,MACEn/H,EAAI,EAEN,OAAIA,EAAIilB,EAAI1lB,OAAeo0B,EAAIA,EAAIz0B,KAAKw/H,KAAKz5G,EAAKjlB,GAAKd,KAAKw/H,KAAKz5G,EAAKjlB,GAC/D2zB,GAAK,EACd,EAEA0qG,EAAcn+H,UAAUiS,IAwGxB,SAAiB8S,GACf,IAAI0O,EAAI1O,GAAOA,EAAI1lB,OAASL,KAAKuQ,MAAMwV,GAAO,GAC9C,OAAI/lB,KAAKigI,SAAiBxrG,EAAI,IACvBA,CACT,EAzGA0qG,EAAcn+H,UAAUw+H,KA0FxB,SAAkBz5G,EAAKjlB,GACrB,IAAI8nF,EArEN,SAA6Bl7E,EAAMqY,EAAKjlB,GACtC,IAAIwK,EAAIya,EAAI1lB,OAAS,EACrB,GAAIiL,EAAIxK,EAAG,OAAO,EAClB,IAAIykF,EAAK66C,EAAcr6G,EAAIza,IAC3B,OAAIi6E,GAAM,GACJA,EAAK,IAAG73E,EAAKuyH,SAAW16C,EAAK,GAC1BA,KAEHj6E,EAAIxK,IAAa,IAARykF,EAAkB,GACjCA,EAAK66C,EAAcr6G,EAAIza,MACb,GACJi6E,EAAK,IAAG73E,EAAKuyH,SAAW16C,EAAK,GAC1BA,KAEHj6E,EAAIxK,IAAa,IAARykF,EAAkB,GACjCA,EAAK66C,EAAcr6G,EAAIza,MACb,GACJi6E,EAAK,IACI,IAAPA,EAAUA,EAAK,EAAO73E,EAAKuyH,SAAW16C,EAAK,GAE1CA,GAEF,CACT,CA8Cc+6C,CAAoBtgI,KAAM+lB,EAAKjlB,GAC3C,IAAKd,KAAKigI,SAAU,OAAOl6G,EAAIxd,SAAS,OAAQzH,GAChDd,KAAKkgI,UAAYt3C,EACjB,IAAI31E,EAAM8S,EAAI1lB,QAAUuoF,EAAQ5oF,KAAKigI,UAErC,OADAl6G,EAAI5M,KAAKnZ,KAAKmgI,SAAU,EAAGltH,GACpB8S,EAAIxd,SAAS,OAAQzH,EAAGmS,EACjC,EA9FAksH,EAAcn+H,UAAU2+H,SAAW,SAAU55G,GAC3C,GAAI/lB,KAAKigI,UAAYl6G,EAAI1lB,OAEvB,OADA0lB,EAAI5M,KAAKnZ,KAAKmgI,SAAUngI,KAAKkgI,UAAYlgI,KAAKigI,SAAU,EAAGjgI,KAAKigI,UACzDjgI,KAAKmgI,SAAS53H,SAASvI,KAAK+K,SAAU,EAAG/K,KAAKkgI,WAEvDn6G,EAAI5M,KAAKnZ,KAAKmgI,SAAUngI,KAAKkgI,UAAYlgI,KAAKigI,SAAU,EAAGl6G,EAAI1lB,QAC/DL,KAAKigI,UAAYl6G,EAAI1lB,MACvB,C,4BCrIA,IAAIf,EAAS,gBACT8K,EAAW,EAAQ,OAGvB,SAAS0R,EAAKvR,EAAW09P,GACxBjoQ,KAAKwK,OAASlL,EAAOK,MAAM4K,GAC3BvK,KAAKkoQ,WAAaD,EAClBjoQ,KAAKyK,WAAaF,EAClBvK,KAAKyuK,KAAO,CACb,CAEA3yJ,EAAK9a,UAAUV,OAAS,SAAUY,EAAM0F,GAEvC1F,EAAOkJ,EAASlJ,EAAM0F,GAAO,QAO7B,IALA,IAAIyE,EAAQrL,KAAKwK,OACbD,EAAYvK,KAAKyK,WACjBpK,EAASa,EAAKb,OACd8nQ,EAAQnoQ,KAAKyuK,KAER9pK,EAAS,EAAGA,EAAStE,GAAS,CAItC,IAHA,IAAI+nQ,EAAWD,EAAQ59P,EACnB89P,EAAYrgQ,KAAKC,IAAI5H,EAASsE,EAAQ4F,EAAY69P,GAE7CtnQ,EAAI,EAAGA,EAAIunQ,EAAWvnQ,IAC9BuK,EAAM+8P,EAAWtnQ,GAAKI,EAAKyD,EAAS7D,GAIrC6D,GAAU0jQ,GADVF,GAASE,GAGI99P,IAAe,GAC3BvK,KAAKiB,QAAQoK,EAEf,CAGA,OADArL,KAAKyuK,MAAQpuK,EACNL,IACR,EAEA8b,EAAK9a,UAAUT,OAAS,SAAUqG,GACjC,IAAIsf,EAAMlmB,KAAKyuK,KAAOzuK,KAAKyK,WAE3BzK,KAAKwK,OAAO0b,GAAO,IAMnBlmB,KAAKwK,OAAOkB,KAAK,EAAGwa,EAAM,GAEtBA,GAAOlmB,KAAKkoQ,aACfloQ,KAAKiB,QAAQjB,KAAKwK,QAClBxK,KAAKwK,OAAOkB,KAAK,IAGlB,IAAIs6E,EAAmB,EAAZhmF,KAAKyuK,KAGhB,GAAIzoF,GAAQ,WACXhmF,KAAKwK,OAAOykB,cAAc+2D,EAAMhmF,KAAKyK,WAAa,OAG5C,CACN,IAAI69P,GAAkB,WAAPtiL,KAAuB,EAClCuiL,GAAYviL,EAAOsiL,GAAW,WAElCtoQ,KAAKwK,OAAOykB,cAAcs5O,EAAUvoQ,KAAKyK,WAAa,GACtDzK,KAAKwK,OAAOykB,cAAcq5O,EAAStoQ,KAAKyK,WAAa,EACtD,CAEAzK,KAAKiB,QAAQjB,KAAKwK,QAClB,IAAIoW,EAAO5gB,KAAKe,QAEhB,OAAO6F,EAAMga,EAAKrY,SAAS3B,GAAOga,CACnC,EAEA9E,EAAK9a,UAAUC,QAAU,WACxB,MAAM,IAAImG,MAAM,0CACjB,EAEA/F,EAAOC,QAAUwa,C,4BCjFjB,IAAI6B,EAAS,EAAQ,OACjBxe,EAAW,EAAQ,OAIvB,SAASqpQ,EAAgBzhQ,EAAKjG,GAC5B,OAAqC,QAAZ,MAApBiG,EAAIkhF,WAAWnnF,OAGhBA,EAAI,GAAKA,EAAI,GAAKiG,EAAI1G,SAGkB,QAAZ,MAAxB0G,EAAIkhF,WAAWnnF,EAAI,GAC7B,CAyDA,SAAS2nQ,EAAMvwP,GAKb,OAJWA,IAAM,GACLA,IAAM,EAAK,MACXA,GAAK,EAAK,UACN,IAAJA,IAAa,MACV,CACjB,CAeA,SAAS6qK,EAAM3uI,GACb,OAAoB,IAAhBA,EAAK/zC,OACA,IAAM+zC,EAENA,CACX,CAGA,SAASs0N,EAAMt0N,GACb,OAAoB,IAAhBA,EAAK/zC,OACA,IAAM+zC,EACU,IAAhBA,EAAK/zC,OACL,KAAO+zC,EACS,IAAhBA,EAAK/zC,OACL,MAAQ+zC,EACQ,IAAhBA,EAAK/zC,OACL,OAAS+zC,EACO,IAAhBA,EAAK/zC,OACL,QAAU+zC,EACM,IAAhBA,EAAK/zC,OACL,SAAW+zC,EACK,IAAhBA,EAAK/zC,OACL,UAAY+zC,EAEZA,CACX,CAjHA9yC,EAAQnC,SAAWA,EAyDnBmC,EAAQ0kB,QA7CR,SAAiBjf,EAAKH,GACpB,GAAIsC,MAAMF,QAAQjC,GAChB,OAAOA,EAAI1C,QACb,IAAK0C,EACH,MAAO,GACT,IAAIpF,EAAM,GACV,GAAmB,iBAARoF,EACT,GAAKH,GAyBE,GAAY,QAARA,EAIT,KAHAG,EAAMA,EAAI6oB,QAAQ,eAAgB,KAC1BvvB,OAAS,GAAM,IACrB0G,EAAM,IAAMA,GACTjG,EAAI,EAAGA,EAAIiG,EAAI1G,OAAQS,GAAK,EAC/Ba,EAAI0B,KAAKwB,SAASkC,EAAIjG,GAAKiG,EAAIjG,EAAI,GAAI,UAxBzC,IADA,IAAIwxB,EAAI,EACCxxB,EAAI,EAAGA,EAAIiG,EAAI1G,OAAQS,IAAK,CACnC,IAAIsc,EAAIrW,EAAIkhF,WAAWnnF,GACnBsc,EAAI,IACNzb,EAAI2wB,KAAOlV,EACFA,EAAI,MACbzb,EAAI2wB,KAAQlV,GAAK,EAAK,IACtBzb,EAAI2wB,KAAY,GAAJlV,EAAU,KACborP,EAAgBzhQ,EAAKjG,IAC9Bsc,EAAI,QAAgB,KAAJA,IAAe,KAA6B,KAAtBrW,EAAIkhF,aAAannF,IACvDa,EAAI2wB,KAAQlV,GAAK,GAAM,IACvBzb,EAAI2wB,KAASlV,GAAK,GAAM,GAAM,IAC9Bzb,EAAI2wB,KAASlV,GAAK,EAAK,GAAM,IAC7Bzb,EAAI2wB,KAAY,GAAJlV,EAAU,MAEtBzb,EAAI2wB,KAAQlV,GAAK,GAAM,IACvBzb,EAAI2wB,KAASlV,GAAK,EAAK,GAAM,IAC7Bzb,EAAI2wB,KAAY,GAAJlV,EAAU,IAE1B,MASF,IAAKtc,EAAI,EAAGA,EAAIiG,EAAI1G,OAAQS,IAC1Ba,EAAIb,GAAc,EAATiG,EAAIjG,GAEjB,OAAOa,CACT,EASAL,EAAQ22E,MANR,SAAelxE,GAEb,IADA,IAAIpF,EAAM,GACDb,EAAI,EAAGA,EAAIiG,EAAI1G,OAAQS,IAC9Ba,GAAOohL,EAAMh8K,EAAIjG,GAAGyH,SAAS,KAC/B,OAAO5G,CACT,EAUAL,EAAQmnQ,MAAQA,EAYhBnnQ,EAAQy3D,QAVR,SAAiBhyD,EAAK8gF,GAEpB,IADA,IAAIlmF,EAAM,GACDb,EAAI,EAAGA,EAAIiG,EAAI1G,OAAQS,IAAK,CACnC,IAAIoX,EAAInR,EAAIjG,GACG,WAAX+mF,IACF3vE,EAAIuwP,EAAMvwP,IACZvW,GAAO+mQ,EAAMxwP,EAAE3P,SAAS,IAC1B,CACA,OAAO5G,CACT,EASAL,EAAQyhL,MAAQA,EAoBhBzhL,EAAQonQ,MAAQA,EAgBhBpnQ,EAAQy9O,OAdR,SAAgBh4O,EAAKvD,EAAOyP,EAAK40E,GAC/B,IAAI9/E,EAAMkL,EAAMzP,EAChBma,EAAO5V,EAAM,GAAM,GAEnB,IADA,IAAIpG,EAAM,IAAIuH,MAAMnB,EAAM,GACjBjH,EAAI,EAAGkG,EAAIxD,EAAO1C,EAAIa,EAAItB,OAAQS,IAAKkG,GAAK,EAAG,CACtD,IAAIkR,EAEFA,EADa,QAAX2vE,EACG9gF,EAAIC,IAAM,GAAOD,EAAIC,EAAI,IAAM,GAAOD,EAAIC,EAAI,IAAM,EAAKD,EAAIC,EAAI,GAEjED,EAAIC,EAAI,IAAM,GAAOD,EAAIC,EAAI,IAAM,GAAOD,EAAIC,EAAI,IAAM,EAAKD,EAAIC,GACxErF,EAAIb,GAAKoX,IAAM,CACjB,CACA,OAAOvW,CACT,EAqBAL,EAAQ03D,QAlBR,SAAiBjyD,EAAK8gF,GAEpB,IADA,IAAIlmF,EAAM,IAAIuH,MAAmB,EAAbnC,EAAI1G,QACfS,EAAI,EAAGkG,EAAI,EAAGlG,EAAIiG,EAAI1G,OAAQS,IAAKkG,GAAK,EAAG,CAClD,IAAI2Q,EAAI5Q,EAAIjG,GACG,QAAX+mF,GACFlmF,EAAIqF,GAAK2Q,IAAM,GACfhW,EAAIqF,EAAI,GAAM2Q,IAAM,GAAM,IAC1BhW,EAAIqF,EAAI,GAAM2Q,IAAM,EAAK,IACzBhW,EAAIqF,EAAI,GAAS,IAAJ2Q,IAEbhW,EAAIqF,EAAI,GAAK2Q,IAAM,GACnBhW,EAAIqF,EAAI,GAAM2Q,IAAM,GAAM,IAC1BhW,EAAIqF,EAAI,GAAM2Q,IAAM,EAAK,IACzBhW,EAAIqF,GAAS,IAAJ2Q,EAEb,CACA,OAAOhW,CACT,EAMAL,EAAQ8+G,OAHR,SAAgBloG,EAAGrQ,GACjB,OAAQqQ,IAAMrQ,EAAMqQ,GAAM,GAAKrQ,CACjC,EAMAvG,EAAQ22F,OAHR,SAAgB//E,EAAGrQ,GACjB,OAAQqQ,GAAKrQ,EAAMqQ,IAAO,GAAKrQ,CACjC,EAMAvG,EAAQ42F,MAHR,SAAetwF,EAAGC,GAChB,OAAQD,EAAIC,IAAO,CACrB,EAMAvG,EAAQ62F,QAHR,SAAiBvwF,EAAGC,EAAGuV,GACrB,OAAQxV,EAAIC,EAAIuV,IAAO,CACzB,EAMA9b,EAAQ82F,QAHR,SAAiBxwF,EAAGC,EAAGuV,EAAGtT,GACxB,OAAQlC,EAAIC,EAAIuV,EAAItT,IAAO,CAC7B,EAMAxI,EAAQ69G,QAHR,SAAiBv3G,EAAGC,EAAGuV,EAAGtT,EAAGE,GAC3B,OAAQpC,EAAIC,EAAIuV,EAAItT,EAAIE,IAAO,CACjC,EAYA1I,EAAQwvE,MATR,SAAe/qD,EAAK+zE,EAAK7mB,EAAIniD,GAC3B,IAAIoiD,EAAKntD,EAAI+zE,GAGTzQ,EAAMv4D,EAFD/K,EAAI+zE,EAAM,KAEI,EACnBzP,GAAMhB,EAAKv4D,EAAK,EAAI,GAAKmiD,EAAKC,EAClCntD,EAAI+zE,GAAOzP,IAAO,EAClBtkE,EAAI+zE,EAAM,GAAKzQ,CACjB,EAQA/nF,EAAQyvE,SALR,SAAkBkC,EAAIniD,EAAIoiD,EAAIniD,GAG5B,OAFUD,EAAKC,IAAQ,EACRD,EAAK,EAAI,GAAKmiD,EAAKC,IACpB,CAChB,EAOA5xE,EAAQ0vE,SAJR,SAAkBiC,EAAIniD,EAAIoiD,EAAIniD,GAE5B,OADSD,EAAKC,IACA,CAChB,EAgBAzvB,EAAQ2vE,WAbR,SAAoBgC,EAAIniD,EAAIoiD,EAAIniD,EAAI5U,EAAI6U,EAAIm7C,EAAIl7C,GAC9C,IAAI1lB,EAAQ,EACR89E,EAAKv4D,EAST,OAPAvlB,IADA89E,EAAMA,EAAKt4D,IAAQ,GACLD,EAAK,EAAI,EAEvBvlB,IADA89E,EAAMA,EAAKr4D,IAAQ,GACLA,EAAK,EAAI,EAIdiiD,EAAKC,EAAK/2D,EAAKgwD,GAFxB5gE,IADA89E,EAAMA,EAAKp4D,IAAQ,GACLA,EAAK,EAAI,KAGT,CAChB,EAOA3vB,EAAQ4vE,WAJR,SAAoB+B,EAAIniD,EAAIoiD,EAAIniD,EAAI5U,EAAI6U,EAAIm7C,EAAIl7C,GAE9C,OADSH,EAAKC,EAAKC,EAAKC,IACV,CAChB,EAkBA3vB,EAAQ6vE,WAfR,SAAoB8B,EAAIniD,EAAIoiD,EAAIniD,EAAI5U,EAAI6U,EAAIm7C,EAAIl7C,EAAIkiD,EAAIjiD,GACtD,IAAI3lB,EAAQ,EACR89E,EAAKv4D,EAWT,OATAvlB,IADA89E,EAAMA,EAAKt4D,IAAQ,GACLD,EAAK,EAAI,EAEvBvlB,IADA89E,EAAMA,EAAKr4D,IAAQ,GACLA,EAAK,EAAI,EAEvBzlB,IADA89E,EAAMA,EAAKp4D,IAAQ,GACLA,EAAK,EAAI,EAIdgiD,EAAKC,EAAK/2D,EAAKgwD,EAAKgH,GAF7B5nE,IADA89E,EAAMA,EAAKn4D,IAAQ,GACLA,EAAK,EAAI,KAGT,CAChB,EAQA5vB,EAAQ8vE,WALR,SAAoB6B,EAAIniD,EAAIoiD,EAAIniD,EAAI5U,EAAI6U,EAAIm7C,EAAIl7C,EAAIkiD,EAAIjiD,GAGtD,OAFSJ,EAAKC,EAAKC,EAAKC,EAAKC,IAEf,CAChB,EAOA5vB,EAAQovE,UAJR,SAAmBuC,EAAIniD,EAAI3V,GAEzB,OADS2V,GAAO,GAAK3V,EAAS83D,IAAO93D,KACxB,CACf,EAOA7Z,EAAQqvE,UAJR,SAAmBsC,EAAIniD,EAAI3V,GAEzB,OADS83D,GAAO,GAAK93D,EAAS2V,IAAO3V,KACxB,CACf,EAMA7Z,EAAQsvE,SAHR,SAAkBqC,EAAIniD,EAAI3V,GACxB,OAAO83D,IAAO93D,CAChB,EAOA7Z,EAAQuvE,SAJR,SAAkBoC,EAAIniD,EAAI3V,GAExB,OADS83D,GAAO,GAAK93D,EAAS2V,IAAO3V,KACxB,CACf,C,4BClRA,IAAIwtP,EAAgB,EAAQ,OAExBn7P,EAA0B,oBAAfwyB,WAA6B,EAAAxyB,EAASwyB,WAGrD3+B,EAAOC,QAAU,WAEhB,IADA,IAA2DqQ,EAAM,GACxD7Q,EAAI,EAAGA,EAAI6nQ,EAActoQ,OAAQS,IACN,mBAAxB0M,EAAEm7P,EAAc7nQ,MAE1B6Q,EAAIA,EAAItR,QAAUsoQ,EAAc7nQ,IAGlC,OAAO6Q,CACR,C,4BCbEtQ,EAAOC,QAAU,EAAjB,M,qECDK,SAASk7I,EAAe50I,EAAGC,GAC9B,KAAK,OAAUD,EAAG,CAAE/B,QAAQ,IACxB,MAAM,IAAI,IAAoB,CAAEF,QAASiC,IAC7C,KAAK,OAAUC,EAAG,CAAEhC,QAAQ,IACxB,MAAM,IAAI,IAAoB,CAAEF,QAASkC,IAC7C,OAAOD,EAAErG,gBAAkBsG,EAAEtG,aACjC,C,gECPO,MAAMqnQ,EAAe,CACxB,EAAG,gCACH,GAAI,0DACJ,GAAI,yDACJ,GAAI,2CACJ,GAAI,wEACJ,GAAI,uCACJ,GAAI,gCACJ,GAAI,oEACJ,GAAI,4EAEKC,EAAgB,CACzBrjM,OAAQ,CACJ,CACIvhE,KAAM,UACNV,KAAM,WAGdU,KAAM,QACNV,KAAM,SAEGulQ,EAAgB,CACzBtjM,OAAQ,CACJ,CACIvhE,KAAM,SACNV,KAAM,YAGdU,KAAM,QACNV,KAAM,Q,4BC3BH,SAAS0kH,EAAQp/G,GAAQ,OAAEwX,IAC9B,IAAKA,EACD,MAAO,CAAC,EACZ,MAAMte,EAAQ,CAAC,EAcf,OAbA,SAASgnQ,EAASp4J,GACd,MAAM9uG,EAAOD,OAAOC,KAAK8uG,GACzB,IAAK,MAAM7wG,KAAO+B,EACV/B,KAAO+I,IACP9G,EAAMjC,GAAO+I,EAAO/I,IACpB6wG,EAAU7wG,IACgB,iBAAnB6wG,EAAU7wG,KAChBoJ,MAAMF,QAAQ2nG,EAAU7wG,KACzBipQ,EAASp4J,EAAU7wG,GAE/B,CAEAipQ,CADkB1oP,EAAOxX,GAAU,CAAC,IAE7B9G,CACX,C,6DClBO,MAAMinQ,EAAkB,CAC3B,CACIzlQ,KAAM,cACNiiE,OAAQ,CACJ,CACIvhE,KAAM,wBACNw5J,aAAc,UACdl6J,KAAM,YAGdkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,8BACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,+BACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,yBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,SAAUl6J,KAAM,WACpDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,4BACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,SAAUl6J,KAAM,WACpDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,6BACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CACIvhE,KAAM,gBACNw5J,aAAc,uBACdl6J,KAAM,QACNQ,WAAY,CACR,CAAEE,KAAM,gBAAiBw5J,aAAc,QAASl6J,KAAM,YAIlEU,KAAM,sBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CACIvhE,KAAM,UACNw5J,aAAc,0BACdl6J,KAAM,QACNQ,WAAY,CACR,CAAEE,KAAM,eAAgBw5J,aAAc,UAAWl6J,KAAM,WACvD,CACIU,KAAM,oBACNw5J,aAAc,UACdl6J,KAAM,WAEV,CAAEU,KAAM,eAAgBw5J,aAAc,SAAUl6J,KAAM,UACtD,CAAEU,KAAM,gBAAiBw5J,aAAc,QAASl6J,KAAM,YAIlEU,KAAM,yBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,kBAAmBw5J,aAAc,UAAWl6J,KAAM,YAE9DU,KAAM,uBACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,QAASw5J,aAAc,UAAWl6J,KAAM,YACzDU,KAAM,sBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CACIvhE,KAAM,kBACNw5J,aAAc,yBACdl6J,KAAM,QACNQ,WAAY,CACR,CAAEE,KAAM,eAAgBw5J,aAAc,QAASl6J,KAAM,YAIjEU,KAAM,wBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,OAAQw5J,aAAc,QAASl6J,KAAM,SAC7C,CAAEU,KAAM,QAASw5J,aAAc,QAASl6J,KAAM,SAC9C,CAAEU,KAAM,QAASw5J,aAAc,QAASl6J,KAAM,SAC9C,CAAEU,KAAM,QAASw5J,aAAc,QAASl6J,KAAM,UAElDU,KAAM,sBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CACIvhE,KAAM,aACNw5J,aAAc,+BACdl6J,KAAM,QACNQ,WAAY,CACR,CAAEE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CAAEU,KAAM,QAASw5J,aAAc,UAAWl6J,KAAM,cAI5DU,KAAM,8BACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,cACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,QAASl6J,KAAM,UACnDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,eACNyhE,QAAS,CACL,CAAEzhE,KAAM,SAAUw5J,aAAc,SAAUl6J,KAAM,UAChD,CAAEU,KAAM,OAAQw5J,aAAc,SAAUl6J,KAAM,UAC9C,CAAEU,KAAM,UAAWw5J,aAAc,SAAUl6J,KAAM,UACjD,CAAEU,KAAM,UAAWw5J,aAAc,UAAWl6J,KAAM,WAClD,CAAEU,KAAM,oBAAqBw5J,aAAc,UAAWl6J,KAAM,WAC5D,CAAEU,KAAM,OAAQw5J,aAAc,UAAWl6J,KAAM,WAC/C,CAAEU,KAAM,aAAcw5J,aAAc,YAAal6J,KAAM,cAE3DkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,UAAWw5J,aAAc,UAAWl6J,KAAM,YAC3DU,KAAM,gCACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,gBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,SAAUl6J,KAAM,WACpDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,mBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,SAAUl6J,KAAM,WACpDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,QAASw5J,aAAc,UAAWl6J,KAAM,YACzDU,KAAM,mBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,kBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,eACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,QAASw5J,aAAc,UAAWl6J,KAAM,WAChD,CAAEU,KAAM,OAAQw5J,aAAc,SAAUl6J,KAAM,UAC9C,CAAEU,KAAM,UAAWw5J,aAAc,SAAUl6J,KAAM,UACjD,CACIU,KAAM,gBACNw5J,aAAc,0BACdl6J,KAAM,YAGdU,KAAM,aACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CAAEU,KAAM,UAAWw5J,aAAc,UAAWl6J,KAAM,WAClD,CACIU,KAAM,QACNw5J,aAAc,wBACdl6J,KAAM,QACNQ,WAAY,CACR,CAAEE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CACIU,KAAM,UACNw5J,aAAc,0BACdl6J,KAAM,QACNQ,WAAY,CACR,CACIE,KAAM,eACNw5J,aAAc,UACdl6J,KAAM,WAEV,CACIU,KAAM,oBACNw5J,aAAc,UACdl6J,KAAM,WAEV,CAAEU,KAAM,eAAgBw5J,aAAc,SAAUl6J,KAAM,UACtD,CAAEU,KAAM,gBAAiBw5J,aAAc,QAASl6J,KAAM,WAG9D,CAAEU,KAAM,mBAAoBw5J,aAAc,QAASl6J,KAAM,SACzD,CAAEU,KAAM,mBAAoBw5J,aAAc,QAASl6J,KAAM,YAIrEU,KAAM,qBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,OAAQl6J,KAAM,SAClDkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,sBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,OAAQl6J,KAAM,SAClDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,gBAAiBw5J,aAAc,UAAWl6J,KAAM,YAE5DU,KAAM,WACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,OAAQl6J,KAAM,SAClDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CACIvhE,KAAM,aACNw5J,aAAc,+BACdl6J,KAAM,QACNQ,WAAY,CACR,CAAEE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CAAEU,KAAM,QAASw5J,aAAc,UAAWl6J,KAAM,aAGxD,CAAEU,KAAM,aAAcw5J,aAAc,UAAWl6J,KAAM,YAEzDU,KAAM,+BACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,OAAQl6J,KAAM,SAClDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CAAEU,KAAM,aAAcw5J,aAAc,UAAWl6J,KAAM,YAEzDU,KAAM,mBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,OAAQl6J,KAAM,SAClDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,QACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CACIvhE,KAAM,WACNw5J,aAAc,wBACdl6J,KAAM,QACNQ,WAAY,CACR,CAAEE,KAAM,YAAaw5J,aAAc,UAAWl6J,KAAM,WACpD,CAAEU,KAAM,SAAUw5J,aAAc,QAASl6J,KAAM,SAC/C,CAAEU,KAAM,eAAgBw5J,aAAc,QAASl6J,KAAM,SACrD,CAAEU,KAAM,iBAAkBw5J,aAAc,SAAUl6J,KAAM,UACxD,CAAEU,KAAM,eAAgBw5J,aAAc,SAAUl6J,KAAM,UACtD,CAAEU,KAAM,OAAQw5J,aAAc,SAAUl6J,KAAM,UAC9C,CAAEU,KAAM,OAAQw5J,aAAc,QAASl6J,KAAM,SAC7C,CAAEU,KAAM,aAAcw5J,aAAc,QAASl6J,KAAM,SACnD,CAAEU,KAAM,UAAWw5J,aAAc,QAASl6J,KAAM,SAChD,CAAEU,KAAM,gBAAiBw5J,aAAc,QAASl6J,KAAM,SACtD,CAAEU,KAAM,QAASw5J,aAAc,QAASl6J,KAAM,SAC9C,CAAEU,KAAM,QAASw5J,aAAc,QAASl6J,KAAM,SAC9C,CAAEU,KAAM,QAASw5J,aAAc,QAASl6J,KAAM,SAC9C,CAAEU,KAAM,QAASw5J,aAAc,QAASl6J,KAAM,SAC9C,CAAEU,KAAM,aAAcw5J,aAAc,QAASl6J,KAAM,YAI/DU,KAAM,cACNyhE,QAAS,CACL,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,WAC3C,CAAEU,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YAE/CkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,WAAYw5J,aAAc,QAASl6J,KAAM,UAC1DU,KAAM,sBACNyhE,QAAS,CACL,CACIzhE,KAAM,SACNw5J,aAAc,wBACdl6J,KAAM,QACNQ,WAAY,CACR,CAAEE,KAAM,YAAaw5J,aAAc,UAAWl6J,KAAM,WACpD,CAAEU,KAAM,SAAUw5J,aAAc,QAASl6J,KAAM,SAC/C,CAAEU,KAAM,eAAgBw5J,aAAc,QAASl6J,KAAM,SACrD,CAAEU,KAAM,iBAAkBw5J,aAAc,SAAUl6J,KAAM,UACxD,CAAEU,KAAM,eAAgBw5J,aAAc,SAAUl6J,KAAM,UACtD,CAAEU,KAAM,OAAQw5J,aAAc,SAAUl6J,KAAM,UAC9C,CAAEU,KAAM,OAAQw5J,aAAc,QAASl6J,KAAM,SAC7C,CAAEU,KAAM,aAAcw5J,aAAc,QAASl6J,KAAM,SACnD,CAAEU,KAAM,UAAWw5J,aAAc,QAASl6J,KAAM,SAChD,CAAEU,KAAM,gBAAiBw5J,aAAc,QAASl6J,KAAM,SACtD,CAAEU,KAAM,QAASw5J,aAAc,QAASl6J,KAAM,SAC9C,CAAEU,KAAM,QAASw5J,aAAc,QAASl6J,KAAM,SAC9C,CAAEU,KAAM,QAASw5J,aAAc,QAASl6J,KAAM,SAC9C,CAAEU,KAAM,QAASw5J,aAAc,QAASl6J,KAAM,SAC9C,CAAEU,KAAM,aAAcw5J,aAAc,QAASl6J,KAAM,YAI/DkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,gBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,gBACNyhE,QAAS,CACL,CAAEzhE,KAAM,GAAIw5J,aAAc,0BAA2Bl6J,KAAM,YAE/DkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,gBAAiBw5J,aAAc,UAAWl6J,KAAM,YAE5DU,KAAM,eACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,oBACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,eAAgBw5J,aAAc,UAAWl6J,KAAM,YAE3DU,KAAM,eACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,WAAYw5J,aAAc,UAAWl6J,KAAM,YAC5DU,KAAM,oBACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,mCACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CACIvhE,KAAM,gBACNw5J,aAAc,uBACdl6J,KAAM,QACNQ,WAAY,CACR,CAAEE,KAAM,gBAAiBw5J,aAAc,QAASl6J,KAAM,YAIlEU,KAAM,sBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,oBAAqBw5J,aAAc,UAAWl6J,KAAM,WAC5D,CAAEU,KAAM,OAAQw5J,aAAc,QAASl6J,KAAM,UAEjDU,KAAM,mBACNyhE,QAAS,GACTD,gBAAiB,WAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CACIvhE,KAAM,UACNw5J,aAAc,wBACdl6J,KAAM,QACNQ,WAAY,CACR,CAAEE,KAAM,aAAcw5J,aAAc,SAAUl6J,KAAM,UACpD,CAAEU,KAAM,YAAaw5J,aAAc,QAASl6J,KAAM,WAG1D,CACIU,KAAM,WACNw5J,aAAc,gCACdl6J,KAAM,QACNQ,WAAY,CACR,CAAEE,KAAM,cAAew5J,aAAc,SAAUl6J,KAAM,UACrD,CAAEU,KAAM,YAAaw5J,aAAc,QAASl6J,KAAM,YAI9DU,KAAM,mBACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,kBAAmBw5J,aAAc,UAAWl6J,KAAM,WAC1D,CACIU,KAAM,gBACNw5J,aAAc,uBACdl6J,KAAM,QACNQ,WAAY,CACR,CAAEE,KAAM,gBAAiBw5J,aAAc,QAASl6J,KAAM,WAG9D,CAAEU,KAAM,QAASw5J,aAAc,QAASl6J,KAAM,SAC9C,CAAEU,KAAM,YAAaw5J,aAAc,QAASl6J,KAAM,UAEtDU,KAAM,sBACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CACIvhE,KAAM,kBACNw5J,aAAc,yBACdl6J,KAAM,QACNQ,WAAY,CACR,CAAEE,KAAM,eAAgBw5J,aAAc,QAASl6J,KAAM,WAG7D,CAAEU,KAAM,QAASw5J,aAAc,QAASl6J,KAAM,SAC9C,CAAEU,KAAM,YAAaw5J,aAAc,QAASl6J,KAAM,UAEtDU,KAAM,wBACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,kBAAmBw5J,aAAc,UAAWl6J,KAAM,WAC1D,CACIU,KAAM,gBACNw5J,aAAc,uBACdl6J,KAAM,QACNQ,WAAY,CACR,CAAEE,KAAM,gBAAiBw5J,aAAc,QAASl6J,KAAM,WAG9D,CAAEU,KAAM,QAASw5J,aAAc,QAASl6J,KAAM,SAC9C,CAAEU,KAAM,YAAaw5J,aAAc,QAASl6J,KAAM,UAEtDU,KAAM,sBACNyhE,QAAS,GACTD,gBAAiB,cAErB,CACIliE,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,gBACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,0BAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,eACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,kBACNw5J,aAAc,yBACdl6J,KAAM,QACNQ,WAAY,CACR,CAAEE,KAAM,eAAgBw5J,aAAc,QAASl6J,KAAM,UAEzD62E,SAAS,IAGjBn2E,KAAM,0BAEV,CAAEV,KAAM,QAASsmP,WAAW,EAAOrkL,OAAQ,GAAIvhE,KAAM,uBACrD,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,UACNw5J,aAAc,SACdl6J,KAAM,SACN62E,SAAS,IAGjBn2E,KAAM,eAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,qBACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CAAEn2E,KAAM,QAASw5J,aAAc,QAASl6J,KAAM,QAAS62E,SAAS,IAEpEn2E,KAAM,uBAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,UACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,eACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,yBAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,gBACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,WACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,wBAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,gBACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,4BAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,YACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,eACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,uBAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,eACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,GAEb,CACIn2E,KAAM,eACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,oBAEV,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,iBACNw5J,aAAc,UACdl6J,KAAM,UACN62E,SAAS,IAGjBn2E,KAAM,YAEV,CACIV,KAAM,QACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,YAC1DU,KAAM,oBAEV,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,6BACnC,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,wBACnC,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,yBACnC,CACIV,KAAM,QACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,YAC1DU,KAAM,+BAEV,CACIV,KAAM,QACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,IAAKw5J,aAAc,UAAWl6J,KAAM,YACrDU,KAAM,0BAEV,CACIV,KAAM,QACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,iBAAkBw5J,aAAc,UAAWl6J,KAAM,YAE7DU,KAAM,gCAEV,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,qBACnC,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,iBACnC,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,gBACnC,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,cACnC,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,oBACnC,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,0BACnC,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,yBACnC,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,wBACnC,CACIV,KAAM,QACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,SAAUw5J,aAAc,SAAUl6J,KAAM,UAChD,CAAEU,KAAM,WAAYw5J,aAAc,SAAUl6J,KAAM,WAEtDU,KAAM,+BAEV,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,2BACnC,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,6BACnC,CACIV,KAAM,QACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,YAAaw5J,aAAc,UAAWl6J,KAAM,WACpD,CAAEU,KAAM,cAAew5J,aAAc,UAAWl6J,KAAM,YAE1DU,KAAM,oBAEV,CACIV,KAAM,QACNiiE,OAAQ,CACJ,CACIvhE,KAAM,uBACNw5J,aAAc,UACdl6J,KAAM,WAEV,CAAEU,KAAM,qBAAsBw5J,aAAc,UAAWl6J,KAAM,YAEjEU,KAAM,8BAEV,CACIV,KAAM,QACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CAAEU,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CAAEU,KAAM,YAAaw5J,aAAc,QAASl6J,KAAM,UAEtDU,KAAM,2BAEV,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,mBACnC,CACIV,KAAM,QACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,QAASw5J,aAAc,UAAWl6J,KAAM,YACzDU,KAAM,uBAEV,CACIV,KAAM,QACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,UAAWw5J,aAAc,UAAWl6J,KAAM,YAC3DU,KAAM,8BAEV,CACIV,KAAM,QACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CAAEU,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,YAErDU,KAAM,6BAEV,CACIV,KAAM,QACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,gBAAiBw5J,aAAc,UAAWl6J,KAAM,YAE5DU,KAAM,sBAEV,CACIV,KAAM,QACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,gBAAiBw5J,aAAc,UAAWl6J,KAAM,YAE5DU,KAAM,kBAEV,CACIV,KAAM,QACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,gBAAiBw5J,aAAc,UAAWl6J,KAAM,WACxD,CAAEU,KAAM,aAAcw5J,aAAc,UAAWl6J,KAAM,YAEzDU,KAAM,8BAEV,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,sBACnC,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,+BACnC,CACIV,KAAM,QACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,OAAQw5J,aAAc,UAAWl6J,KAAM,YACxDU,KAAM,gC,4BC3zBd,IAAI3E,EAAS,gBACT8K,EAAW,EAAQ,OAEnBkL,EAAsC,oBAAf3H,WAEvB4H,EADiBD,GAAwC,oBAAhBE,aACdA,YAAYD,OAE3ClU,EAAOC,QAAU,SAAUmU,EAAO1K,EAAU9G,GAC3C,GACkB,iBAAVwR,GACJnW,EAAO6K,SAASsL,IACfH,GAAiBG,aAAiB9H,YAClC4H,GAAUA,EAAOE,GAErB,OAAOrL,EAASqL,EAAO1K,GAExB,MAAM,IAAIwH,UAAUtO,EAAO,2DAC5B,C,gFCOyB,GAqBE,KAKN,KA1Bd,MA0CMglQ,EAAMv7P,IAASA,C,0BCpEf9L,OAAOgQ,eAAetQ,EAAtB,cAA4CS,OAAM,IAAOT,EAAiB,aAAE,EAAiHA,EAAiB,QAA3G,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,E,oSC2B9K,MAMao+B,EAAsB7tB,OAAOwP,IAAI,qBACxC6nP,EAAkB,CACtB,CAACxpO,GAASA,EACV,CAAC5jB,EAAA,MACC,MAAMqtP,EAAa15J,EAAUzvG,MAC7B,OAAO,QAAK8b,EAAA,GAAUqtP,EAAWpnQ,OAAQ+Z,EAAA,GAAaA,EAAA,GAAYqtP,EAAWC,QAASttP,EAAA,GAAY9b,MACpG,EACA,CAAC,MAAcwX,GACb,OAAO6xP,EAAa7xP,IAAS0vF,EAAOlnG,KAAMwX,EAC5C,EACA,QAAAjP,GACE,MAAO,cAAc8X,EAAOrgB,QAC9B,EACA,MAAAi4B,GACE,MAAO,CACLyL,IAAK,aACL3hC,MAAOoW,OAAOnY,KAAK+B,OACnBqnQ,MAAOppQ,KAAKopQ,MAEhB,EACA,CAAC,QACC,OAAOppQ,KAAKi4B,QACd,EACA,IAAAhmB,GACE,OAAO,QAAcjS,KAAM4W,UAC7B,GAQWyyP,EAAex0O,IAAK,QAAYA,EAAG6K,GAOnC7d,EAAO,CAAC9f,EAAOqnQ,KAC1B,MAAMrgQ,EAAInH,OAAOsL,OAAOg8P,GAGxB,OAFAngQ,EAAEhH,MAAQA,EACVgH,EAAEqgQ,MAAQA,EACHrgQ,GAOIugQ,EAAuB,CAACvnQ,EAAOqnQ,KAC1C,GAAIrnQ,IAAUsvC,GAAWtvC,EAAQwnQ,IAAal4N,EAC5C,MAAM,IAAI73B,WAAW,4BAEvB,MAAMzQ,EAAI8Y,EAAK9f,EAAOqnQ,GAEtB,OADArgQ,EAAEogQ,WAAapgQ,EACRA,GAEHsoC,EAAuBC,OAAO,GAE9Bi4N,EAAwBj4N,OAAO,IAC/B9a,EAAoB8yO,EAAqBj4N,EAAS,GAiB3Co+D,EAAY/hG,IACvB,QAAwBjC,IAApBiC,EAAKy7P,WACP,GAAIz7P,EAAK3L,QAAUsvC,EACjB3jC,EAAKy7P,WAAa3yO,MACb,CACL,MAAMgzO,EAAS,GAAG97P,EAAK3L,QACvB,IAAI0nQ,EAAQ,EACZ,IAAK,IAAI3oQ,EAAI0oQ,EAAOnpQ,OAAS,EAAGS,GAAK,GACjB,MAAd0oQ,EAAO1oQ,GAD2BA,IAEpC2oQ,IAKU,IAAVA,IACF/7P,EAAKy7P,WAAaz7P,GAEpB,MAAM3L,EAAQuvC,OAAOk4N,EAAOx5J,UAAU,EAAGw5J,EAAOnpQ,OAASopQ,IACnDL,EAAQ17P,EAAK07P,MAAQK,EAC3B/7P,EAAKy7P,WAAaG,EAAqBvnQ,EAAOqnQ,EAChD,CAEF,OAAO17P,EAAKy7P,YAWDC,GAAqB,QAAK,EAAG,CAAC17P,EAAM07P,IAC3CA,EAAQ17P,EAAK07P,MACRvnP,EAAKnU,EAAK3L,MAAQwnQ,GAAYj4N,OAAO83N,EAAQ17P,EAAK07P,OAAQA,GAE/DA,EAAQ17P,EAAK07P,MACRvnP,EAAKnU,EAAK3L,MAAQwnQ,GAAYj4N,OAAO5jC,EAAK07P,MAAQA,GAAQA,GAE5D17P,GAkdI,EAA2B,KAAiB,CAACA,EAAM8J,IAC1D9J,EAAK07P,MAAQ5xP,EAAK4xP,MACbA,EAAM5xP,EAAM9J,EAAK07P,OAAOrnQ,QAAU2L,EAAK3L,MAE5C2L,EAAK07P,MAAQ5xP,EAAK4xP,MACbA,EAAM17P,EAAM8J,EAAK4xP,OAAOrnQ,QAAUyV,EAAKzV,MAEzC2L,EAAK3L,QAAUyV,EAAKzV,OAQhBmlG,GAAsB,QAAK,EAAG,CAACx5F,EAAM8J,IAAS,EAAY9J,EAAM8J,IAsKhE6I,EAASnH,IACpB,MAAMiwP,EAAa15J,EAAUv2F,GAC7B,GAAIlR,KAAKkrC,IAAIi2N,EAAWC,QAAU,GAChC,OAAOM,EAAcP,GAEvB,MAAMzzO,EAAWyzO,EAAWpnQ,MAAQsvC,EAC9Bs4N,EAAWj0O,EAAW,GAAGyzO,EAAWpnQ,QAAQiuG,UAAU,GAAK,GAAGm5J,EAAWpnQ,QAC/E,IAAIq3N,EACAwwC,EACJ,GAAIT,EAAWC,OAASO,EAAStpQ,OAC/B+4N,EAAS,IACTwwC,EAAQ,IAAI3lM,OAAOklM,EAAWC,MAAQO,EAAStpQ,QAAUspQ,MACpD,CACL,MAAMliG,EAAWkiG,EAAStpQ,OAAS8oQ,EAAWC,MAC9C,GAAI3hG,EAAWkiG,EAAStpQ,OAAQ,CAC9B,MAAM4oF,EAAQw+E,EAAWkiG,EAAStpQ,OAClC+4N,EAAS,GAAGuwC,IAAW,IAAI1lM,OAAOglB,KAClC2gL,EAAQ,EACV,MACEA,EAAQD,EAAStlQ,MAAMojK,GACvB2xD,EAASuwC,EAAStlQ,MAAM,EAAGojK,EAE/B,CACA,MAAMvwH,EAAqB,KAAV0yN,EAAexwC,EAAS,GAAGA,KAAUwwC,IACtD,OAAOl0O,EAAW,IAAIwhB,IAAaA,GAgBxBwyN,EAAgBxwP,IAC3B,GAAIywE,EAAOzwE,GACT,MAAO,OAET,MAAMiwP,EAAa15J,EAAUv2F,GACvBswP,EAAS,GAzSEtwP,IAAKA,EAAEnX,MAAQsvC,EAAUxvB,GAAM3I,EAAEnX,MAAOmX,EAAEkwP,OAASlwP,EAySlDg6B,CAAIi2N,GAAYpnQ,QAC5BopB,EAAOq+O,EAAOnlQ,MAAM,EAAG,GACvB+mB,EAAOo+O,EAAOnlQ,MAAM,GAC1B,IAAI+kD,EAAS,GAAGygN,EAAWV,GAAc,IAAM,KAAKh+O,IACvC,KAATC,IACFg+B,GAAU,IAAIh+B,KAEhB,MAAM0+O,EAAM1+O,EAAK/qB,OAAS8oQ,EAAWC,MACrC,MAAO,GAAGhgN,KAAU0gN,GAAO,EAAI,IAAM,KAAKA,KAmD/BngL,EAASzwE,GAAKA,EAAEnX,QAAUsvC,EAiB1Bw4N,EAAa3wP,GAAKA,EAAEnX,MAAQsvC,E,cCv3BjB,KA0HG,IAKN,EAAAtoC,E,gFC/Id,MAAM,EAAsB8I,OAAOwP,IAAI,mBAEjC0oP,EAA8Bl4P,OAAOwP,IAAI,4BAChD8iB,EAAQ,CACZ,CAAC,GAAS,EACV,IAAAlyB,GACE,OAAO,QAAcjS,KAAM4W,UAC7B,EACA,CAAC,QACC,OAAO5W,KAAKuI,UACd,EACA,MAAA0vB,GACE,OAAO+xO,EAAUhqQ,MAAMi4B,QACzB,GAoGWgyO,GA/FVnuP,EAAA,GAGA,KAUAA,EAAA,GAGA,KASA,KAOAA,EAAA,GAGA,KAiBAA,EAAA,GAGA,KAwCuB+Y,GAAK,KAAsBA,EAAG,IAyO3Cm1O,GA5H4Bx5L,EAAA,GAEMA,EAAA,GA0HtB9iE,GAAQ,IAAIkoC,KAAKloC,EAAKw8P,c,uEC9UvB,KAKG,KAKN,KA8jBlBr4P,OAAO0J,SAWV,MCzlBaklD,GAAoB,QAAKrsD,GAAQ,KAAmBA,EAAK,IAAK,CAACmc,KAAM1uB,KAChF,MAAM8P,EAAM,CAAC,EACb,IAAK,MAAM3K,KAAKnF,EACVmF,KAAKupB,IACP5e,EAAI3K,GAAKupB,EAAEvpB,IAGf,OAAO2K,IAgBIivD,GAAoB,QAAKxsD,GAAQ,KAAmBA,EAAK,IAAK,CAACmc,KAAM1uB,KAChF,MAAM8P,EAAM,IACP4e,GAEL,IAAK,MAAMvpB,KAAKnF,SACP8P,EAAI3K,GAEb,OAAO2K,ICLI,GDoCiB,KAUN,KC9CWE,OAAOwP,IAAI,kBAKvC,SAAS,EAAK4nC,GACnB,OAAO,MACL,CAAC,GAAU5/B,EACX6tH,WAAajuF,EACb,kBAAOpd,CAAYA,GACjB,OAAO,EAAKs+N,EAAuBnqQ,KAAKipD,IAAKpd,GAC/C,CACA,WAAO55B,GACL,OAAO,QAAcjS,KAAM4W,UAC7B,CACA,eAAOrO,GACL,OAAO4P,OAAO8wC,EAChB,CACAiuF,YACAA,eACAA,eACAA,OAAQ,GAAU7tH,EAEtB,CACA,MAAMA,EAAW,CAEf9H,GAAI9c,GAAKA,EAET2lQ,GAAI3lQ,GAAKA,EAET6+B,GAAI7+B,GAAKA,GA0EL4lQ,EAAqB,CACzBC,gBAAiB,KACjBC,SAAU,KACVh2P,QAAS,KACTi2P,eAAgB,KAChBtnO,WAAY,KACZqgF,MAAO,KACPj1E,YAAa,KACbm8N,SAAU,KACV9mP,QAAS,KACT+mP,cAAe,KACfC,WAAY,KACZC,UAAW,KACXznG,OAAQ,KACRwkB,YAAa,KACbv+I,YAAa,KACb+Z,SAAU,KACVgP,gBAAiB,KACjB04M,aAAc,KACdC,iBAAkB,MAEdC,EAAmBl/N,IACvB,IAAKA,EACH,MAAO,CAAC,EAEV,MAAMl6B,EAAM,IACPk6B,GAEL,IAAK,MAAM/rC,KAAOuqQ,EACZvqQ,KAAO+rC,IAETl6B,EADW04P,EAAmBvqQ,IACpB+rC,EAAY/rC,UACf6R,EAAI7R,IAGf,OAAO6R,GAEHw4P,EAAyB,CAAClhN,EAAKpd,IAAgB,KAAgBod,EAAK8hN,EAAiBl/N,IA0N9Em/N,EAAWn2O,GAAK,KAAsBA,EAAG,IAAW,KAAmBA,EAAE,IAItF,SAASo2O,EAAiBh8M,EAAUhG,EAHpC,SAA8BgG,GAC5B,OAAO,KAAcA,GAAY,KAAUptC,KAAK,KAAeotC,EAAUxC,GAAW,IAAI,KAAYA,KAAa,IAAI,KAAYwC,EAAS,GAC5I,CAC0Ci8M,CAAqBj8M,IAC7D,OAAO,cAA2B,EAAKhG,IACrC,kBAAOpd,CAAYA,GACjB,OAAOo/N,EAAiBjrQ,KAAKivD,SAAUk7M,EAAuBnqQ,KAAKipD,IAAKpd,GAC1E,CACAqrG,gBAAkB,IAAIjoF,GAE1B,CACO,SAASokF,KAAWpkF,GACzB,OAAO,KAA+BA,GAAYg8M,EAAiBh8M,GAAYk8M,CACjF,CAmBO,MAwBM71H,EAAkB,KAAKnqH,KAASC,MAC3C,MAAM4gB,EAAQ,GACd,IAAI5qC,EAAI,GACJigG,EAAKj2E,EACL4/O,EAAS7/O,GACP,KAAcA,EAAK89B,KACrB7nD,EAAI+W,OAAOgT,EAAK89B,IAAIwD,SAEpB40C,EAAK,CAACl2E,KAASk2E,GAGjBjgG,EAAI+W,OAAOgT,GAEb,IAAK,IAAIrqB,EAAI,EAAGA,EAAIugG,EAAGhhG,OAAQS,IAAK,CAClC,MAAM00C,EAAO6rD,EAAGvgG,GAChB,GAAIkqQ,EAASx1N,GAAO,CAClB,GAAI10C,EAAIugG,EAAGhhG,OAAS,EAAG,CACrB,MAAM0L,EAAOs1F,EAAGvgG,EAAI,GACpB,IAAIkqQ,EAASj/P,GAMN,CACLigC,EAAM3oC,KAAK,IAAI,KAAwBmyC,EAAKyT,IAAK9wC,OAAOpM,KACxDjL,IACA,QACF,CATE,GAAI,KAAciL,EAAKk9C,KAAM,CAC3Bjd,EAAM3oC,KAAK,IAAI,KAAwBmyC,EAAKyT,IAAK9wC,OAAOpM,EAAKk9C,IAAIwD,WACjE3rD,IACA,QACF,CAMJ,CACAkrC,EAAM3oC,KAAK,IAAI,KAAwBmyC,EAAKyT,IAAK,IACnD,MACEjd,EAAM3oC,KAAK,IAAI,KAAwB,IAAI,KAAYmyC,GAAO,IAElE,CACA,OAAI,KAAuBxJ,GAClB,EAAK,IAAI,KAAoB5qC,EAAG4qC,IAEhC,EAAK,IAAI,KAAoB,GAAI,CAAC,IAAI,KAAwB,IAAI,KAAY5qC,GAAI,QA6JtF,MAAMgqQ,UAA+B,EAAK,QAKL,KAKA,KAKrC,MAAMD,UAA2B,EAAK,QAKE,KAKJ,KAKpC,MAAME,WAAoC,EAAK,QAKA,KAEtD,MAAMC,WAA6B,EAAK,QAEA,KAExC,MAAMC,WAA8B,EAAK,QAEzC,MAAMC,WAA6B,EAAK,QAuBxC,SAASC,GAAe37M,EAAS7G,EADN6G,IAAW,KAAUjuC,KAAKiuC,EAAQpuD,IAAIiW,GAAKA,EAAEsxC,MACjCyiN,CAAmB57M,IACxD,OAAO,cAAyB,EAAK7G,IACnC,kBAAOpd,CAAYA,GACjB,OAAO4/N,GAAezrQ,KAAK8vD,QAASq6M,EAAuBnqQ,KAAKipD,IAAKpd,GACvE,CACAqrG,eAAiB,IAAIpnF,GAEzB,CACO,SAASmnF,MAASnnF,GACvB,OAAO,KAAcA,GAAW27M,GAAe37M,GAAW,KAA+BA,GAAWA,EAAQ,GAAKq7M,CACnH,CAiDA,SAASQ,GAAmB5jP,EAAUnI,EAAMqpC,EADb,EAAClhC,EAAUnI,IAAS,IAAI,KAAcmI,EAASrmB,IAAIwvB,GAAM85O,EAAS95O,GAAM,IAAI,KAAiBA,EAAG+3B,KAAK,GAAS/3B,EAAG+3B,KAAMrpC,EAAKle,IAAIwvB,GAAM85O,EAAS95O,GAAM,IAAI,KAASA,EAAG+3B,KAAO/3B,EAAG+3B,MAAM,GAClK2iN,CAAuB7jP,EAAUnI,IACjF,OAAO,cAA6B,EAAKqpC,IACvC,kBAAOpd,CAAYA,GACjB,OAAO8/N,GAAmB3rQ,KAAK+nB,SAAU/nB,KAAK4f,KAAMuqP,EAAuBnqQ,KAAKipD,IAAKpd,GACvF,CACAqrG,gBAAkB,IAAInvH,GACtBmvH,YAAc,IAAIt3H,GAEtB,CAIA,SAASisP,GAAe9pQ,EAAOknD,GAC7B,OAAO,cAAyB0iN,GAAmB,GAAI,CAAC5pQ,GAAQknD,IAC9D,kBAAOpd,CAAYA,GACjB,OAAOggO,GAAe7rQ,KAAK+B,MAAOooQ,EAAuBnqQ,KAAKipD,IAAKpd,GACrE,CACAqrG,aAAen1I,EAEnB,CACA,MAAM+pQ,GAAS/pQ,GAAS8pQ,GAAe9pQ,GA0CjCgqQ,GAA+Bl/M,GAAcA,EAAa,OAAW,MAKpE,MAAMm/M,WAAqC,KAChDr2H,WACAvvG,aAIAjkB,KAAO,+BACP,WAAAjO,CAAY3Q,EAAMspD,EAAY8oF,EAAY9pG,EAAazF,GACrD3xB,MAAMlR,EAAMspD,EAAYhhB,GACxB7rC,KAAK21I,WAAaA,EAClB31I,KAAKomC,aAAeA,CACtB,CAIA,QAAA79B,GACE,MAAMoxJ,EAAQoyG,GAA6B/rQ,KAAK6sD,YAC1CtpD,EAAO4U,OAAOnY,KAAKuD,MACzB,MAAO,qBAAqBo2J,MAAUp2J,aAAgBo2J,MAAUp2J,IAClE,EAMyC,KAapC,MAAM0oQ,WAA4B,KACvCt2H,WACAvvG,aACA,WAAAlyB,CAAY3Q,EAAMspD,EAAY8oF,EAAY9pG,EAAazF,GACrD3xB,MAAMlR,EAAMspD,EAAYhhB,GACxB7rC,KAAK21I,WAAaA,EAClB31I,KAAKomC,aAAeA,CACtB,EAeK,MAAMyxG,GACX53I,KACA4f,GACA1a,OACA6qD,OAIA7tC,KAAO,kCACP,WAAAjO,CAAYjU,EAAM4f,EAAI1a,EAAQ6qD,GAC5BhwD,KAAKC,KAAOA,EACZD,KAAK6f,GAAKA,EACV7f,KAAKmF,OAASA,EACdnF,KAAKgwD,OAASA,CAChB,CAIA,QAAAznD,GACE,MAAO,qBAAqBwjQ,GAA6B/rQ,KAAK6f,GAAGgtC,gBAAgB7sD,KAAK6f,GAAGtc,SAhCnE+uB,EAgC8FtyB,KAAKC,KAAKisQ,aA/BtHzgQ,IAAN6mB,EACK,QAEL,KAAmBA,GACd1pB,KAAKH,UAAU6pB,GAEjBna,OAAOma,OAyB+Hy5O,GAA6B/rQ,KAAKC,KAAK4sD,gBAAgB7sD,KAAKC,KAAKsD,QAhCtL+uB,KAiCxB,EAEF,MAAM65O,GAA4B,CAACljN,EAAKpd,KACtC,OAAQod,EAAI9mC,MACV,IAAK,+BAED,OAAO,IAAI6pP,GAA6B/iN,EAAI1lD,KAAM0lD,EAAI4D,WAAY5D,EAAI0sF,WAAY,IAC7E1sF,EAAIpd,eACJA,GACFod,EAAI7iB,cAEX,IAAK,kCAED,OAAO,IAAIyxG,GAAgC5uF,EAAIhpD,KAAM,IAAIgsQ,GAAoBhjN,EAAIppC,GAAGtc,KAAM0lD,EAAIppC,GAAGgtC,WAAY5D,EAAIppC,GAAG81H,WAAY,IAC3H1sF,EAAIppC,GAAGgsB,eACPA,GACFod,EAAIppC,GAAGumB,cAAe6iB,EAAI9jD,OAAQ8jD,EAAI+G,UAQpCo8M,GAAuCv6P,OAAOwP,IAAI,4BAKlDgrP,GAAsBx3O,GAAK,KAAsBA,EAAGu3O,IACjE,MAAME,GACJrjN,IACA,CAAC,GACD,CAACmjN,IAA2B,KAC5BG,WACA/iP,KACAgjP,cACAC,YACA,WAAAv4P,CAAY+0C,GACVjpD,KAAKipD,IAAMA,CACb,CACA,IAAAh3C,GACE,OAAO,QAAcjS,KAAM4W,UAC7B,CACA,WAAAi1B,CAAYA,GACV,OAAO,IAAIygO,GAAsBH,GAA0BnsQ,KAAKipD,IAAK8hN,EAAiBl/N,IACxF,CACA,QAAAtjC,GACE,OAAO4P,OAAOnY,KAAKipD,IACrB,EAOF,MAAMyjN,WAAsCJ,GAC1CrsQ,KACA,WAAAiU,CAAY+0C,EAAKhpD,GACfwU,MAAMw0C,GACNjpD,KAAKC,KAAOA,CACd,CACA,WAAA4rC,CAAYA,GACV,OAAO,IAAI6gO,GAA8BP,GAA0BnsQ,KAAKipD,IAAK8hN,EAAiBl/N,IAAe7rC,KAAKC,KACpH,EAQK,MAyMMi9D,GAAWxvD,IACtB,MAAMu7C,EAAMv7C,EAAKu7C,MAAQ,MAAwBv7C,EAAKu7C,MAAQ,KAAmB,KA5cxDv7C,IAAQupI,GAAMvpI,EAAM09P,GA4c2DuB,CAAYj/P,GAAMu7C,IAC1H,OAAO,IAAIyjN,GAA8B,IAAIV,GAA6B/iN,GAAK,GAAM,EAAM,CAAC,OAAGx9C,GAAYiC,IASvGk/P,GAAgD,KAAoB,CAAC,OAwF3E,SAASC,GAAqBrkP,EAAQskP,EAAS7jN,EAvFd,EAACzgC,EAAQskP,KACxC,MAAM72P,EAAUL,QAAQK,QAAQuS,GAC1BouH,EAAM,GACZ,GAAI3gI,EAAQ5V,OAAS,EAAG,CACtB,MAAMJ,EAAO,GACP4f,EAAK,GACLktP,EAAkB,GACxB,IAAK,IAAIjsQ,EAAI,EAAGA,EAAImV,EAAQ5V,OAAQS,IAAK,CACvC,MAAMhB,EAAMmW,EAAQnV,GACd+7E,EAAQr0D,EAAO1oB,GACrB,GAAIusQ,GAAoBxvL,GAAQ,CAC9B,MAAM5zB,EAAM4zB,EAAM5zB,IAClB,OAAQA,EAAI9mC,MACV,IAAK,+BACH,CACE,MAAM5e,EAAO0lD,EAAI1lD,KACXspD,EAAa5D,EAAI4D,WACjBmgN,EAAgB/jN,EAAIpd,YAC1B5rC,EAAKoD,KAAK,IAAI,KAAsBvD,EAAKyD,EAAMspD,GAAY,EAAM+/M,GAAiC3jN,KAClGppC,EAAGxc,KAAK,IAAI,KAAsBvD,EAAK,KAAYyD,GAAOspD,GAAY,EAAMmgN,IAC5Ep2H,EAAIvzI,KAAK,IAAI,KAAsBvD,EAAKyD,EAAMspD,GAAY,EAAMmgN,IAChE,KACF,CACF,IAAK,kCACH,CACE,MAAMd,EAAUjjN,EAAIhpD,KAAKisQ,SAAWpsQ,EACpCG,EAAKoD,KAAK,IAAI,KAAsB6oQ,EAASjjN,EAAIhpD,KAAKsD,KAAM0lD,EAAIhpD,KAAK4sD,YAAY,EAAM5D,EAAIhpD,KAAK4rC,cAChGhsB,EAAGxc,KAAK,IAAI,KAAsBvD,EAAKmpD,EAAIppC,GAAGtc,KAAM0lD,EAAIppC,GAAGgtC,YAAY,EAAM5D,EAAIppC,GAAGgsB,cACpFkhO,EAAgB1pQ,KAAK,IAAI,KAAoC6oQ,EAASpsQ,EAAKmpD,EAAI9jD,OAAQ8jD,EAAI+G,SAC3F,KACF,EAEN,MACE/vD,EAAKoD,KAAK,IAAI,KAAsBvD,EAAK+8E,EAAM5zB,KAAK,GAAO,IAC3DppC,EAAGxc,KAAK,IAAI,KAAsBvD,EAAK,KAAY+8E,EAAM5zB,MAAM,GAAO,IACtE2tF,EAAIvzI,KAAK,IAAI,KAAsBvD,EAAK+8E,EAAM5zB,KAAK,GAAO,GAE9D,CACA,GAAI,KAA+B8jN,GAAkB,CACnD,MAAME,EAAU,GACVC,EAAQ,GACd,IAAK,MAAMz4O,KAAKq4O,EAAS,CACvB,MAAM,gBACJr/M,EAAe,mBACfD,GACE,KAAW/4B,EAAE30B,IAAImpD,IAAKx0B,EAAE1yB,MAAMknD,KAClCuE,EAAmB1rD,QAAQwG,IACzBrI,EAAKoD,KAAKiF,GACVuX,EAAGxc,KAAK,IAAI,KAAsBiF,EAAGrE,KAAM,KAAYqE,EAAG/E,MAAO+E,EAAGukD,WAAYvkD,EAAGqtI,WAAYrtI,EAAGujC,gBAEpG4hB,EAAgB3rD,QAAQ8rD,IACtBq/M,EAAQ5pQ,KAAKuqD,GACbs/M,EAAM7pQ,KAAK,IAAI,KAAmBuqD,EAAGC,UAAW,KAAYD,EAAGrqD,MAAOqqD,EAAG+nF,cAE7E,CACA,OAAO,IAAI,KAAmB,IAAI,KAAgB11I,EAAMgtQ,EAAS,CAC/D,CAAC,MAA4B,0BAC3B,IAAI,KAAgBptP,EAAIqtP,EAAO,CACjC,CAAC,MAA4B,uBAC3B,IAAI,KAA8BH,GACxC,CACF,CACA,MAAMp2H,EAAM,GACZ,IAAK,MAAMliH,KAAKq4O,EAAS,CACvB,MAAM,gBACJr/M,EAAe,mBACfD,GACE,KAAW/4B,EAAE30B,IAAImpD,IAAKx0B,EAAE1yB,MAAMknD,KAClCuE,EAAmB1rD,QAAQwG,GAAMsuI,EAAIvzI,KAAKiF,IAC1CmlD,EAAgB3rD,QAAQ8rD,GAAM+oF,EAAItzI,KAAKuqD,GACzC,CACA,OAAO,IAAI,KAAgBgpF,EAAKD,IAgBmBw2H,CAAyB3kP,EAAQskP,IACpF,OAAO,cAA+B,EAAK7jN,IACzC,kBAAOpd,CAAYA,GACjB,OAAOghO,GAAqB7sQ,KAAKwoB,OAAQxoB,KAAK8sQ,QAAS3C,EAAuBnqQ,KAAKipD,IAAKpd,GAC1F,CACAqrG,cAAgB,IACX1uH,GAEL0uH,eAAiB,IAAI41H,GACrB51H,YAAc,CAAC3yD,EAAO3+E,KACpB,MAAMwnQ,EAxBgB,EAAC5kP,EAAQ7W,KACnC,MAAMsE,EAAUL,QAAQK,QAAQuS,GAChC,IAAK,MAAM1oB,KAAOmW,EAAS,CACzB,MAAM4mE,EAAQr0D,EAAO1oB,GACrB,QAAiB2L,IAAbkG,EAAI7R,IAAsBusQ,GAAoBxvL,GAAQ,CACxD,MAAM5zB,EAAM4zB,EAAM5zB,IACZ7iB,EAA4B,iCAAb6iB,EAAI9mC,KAA0C8mC,EAAI7iB,aAAe6iB,EAAIppC,GAAGumB,kBACxE36B,IAAjB26B,IACFz0B,EAAI7R,GAAOsmC,IAEf,CACF,CACA,OAAOz0B,GAYuB07P,CAAoB7kP,EAAQ,IACjD+7D,IAEL,OAAO+oL,GAA+B1nQ,GAAWwnQ,EAAoB,KAAyBptQ,KAAzB,CAA+BotQ,IAEtG,WAAO3sM,IAAQ5+D,GACb,OAAO0rQ,GAAO,EAAa/kP,KAAW3mB,GACxC,CACA,WAAO++D,IAAQ/+D,GACb,OAAO0rQ,GAAO,EAAa/kP,KAAW3mB,GACxC,EAEJ,CACO,SAAS0rQ,GAAO/kP,KAAWskP,GAChC,OAAOD,GAAqBrkP,EAAQskP,EACtC,CAkDA,SAASU,GAAgB1tQ,EAAKiC,EAAOknD,GACnC,OAAO,cAA0B4jN,GAAqB,CAAC,EAAG,CAAC,CACzD/sQ,MACAiC,UACEknD,IACF,kBAAOpd,CAAYA,GACjB,OAAO2hO,GAAgB1tQ,EAAKiC,EAAOooQ,EAAuBnqQ,KAAKipD,IAAKpd,GACtE,CACAqrG,WAAap3I,EACbo3I,aAAen1I,EAEnB,CAKO,MAAM0rQ,GAAS7nQ,GAAW4nQ,GAAgB5nQ,EAAQ9F,IAAK8F,EAAQ7D,OAqDtE,SAAS2rQ,GAAeztQ,EAAMgpD,GAC5B,OAAO,cAAyB,EAAKA,IACnC,kBAAOpd,CAAYA,GACjB,OAAO6hO,GAAe1tQ,KAAKC,KAAMkqQ,EAAuBnqQ,KAAKipD,IAAKpd,GACpE,CACAqrG,YAAc,CAACtvI,EAAGhC,IACT0nQ,GAA+B1nQ,GAAWgC,EAAI,KAAyB5H,KAAzB,CAA+B4H,GAEtFsvI,YAAcj3I,EAElB,CAmBO,MAAM25I,GAAQ,CAACA,EAAO/tG,IAAgBn+B,IAC3C,MAAMiiD,EAAa,KAAc,KAAuBjiD,EAAKu7C,KAAM,CACjExmC,OAAQ,IAAM,CAACm3H,GACfl3H,OAAQi3H,GAAU,IAAIA,EAAQC,KAMhC,OAAO8zH,GAAehgQ,EAJV,KAAgBA,EAAKu7C,IAAK8hN,EAAiB,CACrD,CAAC,MAAwBp7M,KACtB9jB,OAsNM8hO,IAxK2D,KAwK7B97P,OAAOwP,IAAI,2BACtD,SAASusP,GAAgB3tQ,EAAMw9C,EAAQwL,GACrC,OAAO,cAA0B,EAAKA,IACpC,kBAAOpd,CAAYA,GACjB,OAAO+hO,GAAgB5tQ,KAAKC,KAAMD,KAAKy9C,OAAQ0sN,EAAuBnqQ,KAAKipD,IAAKpd,GAClF,CACAqrG,OAAQy2H,IAAkB1tQ,EAC1Bi3I,YAAcj3I,EACdi3I,cAAgBz5F,EAChBy5F,YAAc,CAACtvI,EAAGhC,IACT0nQ,GAA+B1nQ,GAAWgC,EAAI,KAAyB5H,KAAzB,CAA+B4H,GAG1F,CACA,MAAMimQ,GAAoC,CAACr4N,EAAMyT,EAAKxS,KACpD,GAAI,KAAoBjB,GACtB,OAAOA,EAAO,OAAiB,KAAa,IAAI,KAAiByT,EAAKxS,IAExE,GAAI,KAAmBjB,GACrB,OAAO,KAAa,IAAI,KAAiByT,EAAKxS,EAAOjB,IAEvD,QAAa/pC,IAAT+pC,EAAoB,CACtB,GAAI,SAAUA,EACZ,OAAO,KAAaA,GAEtB,MAAMsT,EAAQ,IAAI,KAAiBG,EAAKxS,EAAOjB,EAAKjhC,SACpD,OAAO,KAAa,KAA+BihC,EAAKoT,MAAQ,IAAI,KAAoBpT,EAAKoT,KAAMnS,EAAOqS,GAASA,EACrH,CACA,OAAO,QAcF,SAASrL,GAAOklD,EAAW92D,GAChC,OAAOn+B,IACL,SAAS+vC,EAAOhH,EAAO7wC,EAASqjD,GAC9B,MAfqB,EAACt3C,EAAKs3C,EAAKxS,KACpC,GAAIxpC,EAAA,GAAe0E,GACjB,OAAOk8P,GAAkCl8P,EAAKs3C,EAAKxS,GAErD,GAAI,KAA+B9kC,GAAM,CACvC,MAAMw3C,EAAS,KAAiBx3C,EAAKm3C,GAAS+kN,GAAkC/kN,EAAOG,EAAKxS,IAC5F,GAAI,KAA+B0S,GACjC,OAAO,KAA+B,IAAlBA,EAAO9oD,OAAe8oD,EAAO,GAAK,IAAI,KAAsBF,EAAKxS,EAAO0S,GAEhG,CACA,OAAO,QAKI2kN,CAAmBnrK,EAAUlsD,EAAO7wC,EAASqjD,GAAMA,EAAKxS,EACjE,CAEA,OAAOm3N,GAAgBlgQ,EAAM+vC,EADjB,IAAI,KAAe/vC,EAAKu7C,IAAKxL,EAAQstN,EAAiBl/N,KAGtE,CAaA,SAASkiO,GAAwB9tQ,EAAM4f,EAAIopC,GACzC,OAAO,cAAkC,EAAKA,IAC5C,kBAAOpd,CAAYA,GACjB,OAAOkiO,GAAwB/tQ,KAAKC,KAAMD,KAAK6f,GAAIsqP,EAAuBnqQ,KAAKipD,IAAKpd,GACtF,CACAqrG,YAAcj3I,EACdi3I,UAAYr3H,EAEhB,CAQO,MAAMmuP,IAA+B,QAAK55P,GAAQ42P,EAAS52P,EAAK,KAAO42P,EAAS52P,EAAK,IAAK,CAACnU,EAAM4f,EAAIja,IAAYmoQ,GAAwB9tQ,EAAM4f,EAAI,IAAI,KAAmB5f,EAAKgpD,IAAKppC,EAAGopC,IAAK,IAAI,KAAwBrjD,EAAQT,OAAQS,EAAQoqD,WAumB9LquE,IA4hBzD,MAAM4vI,WAA6BD,GAAgB1C,GAAQz/N,YAAY,CACrEyC,YAAa,yCACX+8N,GAAgB,CAClBxlQ,QAAQ,EACRV,OAAQ,CAACrE,EAAG2D,EAAGwkD,IAAQ,KJz3EC14B,KACxB,IACE,MAAoB,KAAbA,EAAE/tB,OAAgB,OAAgB,KAAY8uC,OAAO/gB,GAC9D,CAAE,MACA,OAAO,MACT,GIo3E8C,CAAmBzvB,GAAI,IAAM,IAAI,KAAiBmoD,EAAKnoD,EAAG,oBAAoB8H,KAAKH,UAAU3H,qBAC3IkvD,OAAQpoD,GAAK,KAAoBuQ,OAAOvQ,MACvCikC,YAAY,CACb3I,WAAY,aA6H6C,KA4OE,KA6iD7D,SAASoqO,GAA+B1nQ,GACtC,OAAO,KAAoBA,GAAWA,EAAUA,GAASsoQ,oBAAqB,CAChF,CAxrCuD,KAq5CG,KAosBM,I,eCnrLhE,IAAI/uQ,EAAW,EAAQ,OACnBG,EAAS,gBAET0pG,EAAO,EAAQ,OACf95B,EAAO85B,EAAK95B,KAGZltE,EAAMgnG,EAAKxnG,UAAUQ,IAEzB,SAASu4I,EAAWpxC,GAClBnpG,KAAK4G,IAAM,MACX5G,KAAKiE,KAAOklG,EAAOllG,KACnBjE,KAAKmpG,OAASA,EAGdnpG,KAAK0wD,KAAO,IAAI04C,EAChBppG,KAAK0wD,KAAK8C,MAAM21C,EAAOpqD,KACzB,CASA,SAASqqD,EAAQ5+D,GACf0kC,EAAKm6B,KAAKtpG,KAAKC,KAAM,MAAOwqC,EAC9B,CAkHA,SAASxY,EAAI7W,GACX,OAAIA,EAAM,GACD,IAAMA,EAENA,CACX,CAjIA9Z,EAAOC,QAAUi5I,EAEjBA,EAAWv5I,UAAUgvD,OAAS,SAAgB9uD,EAAMkuE,GAClD,OAAOpvE,KAAK0wD,KAAKwZ,QAAQhpE,EAAMkuE,GAAUz6D,MAC3C,EAOAxV,EAASiqG,EAASl6B,EAAKm6B,MAEvBD,EAAQpoG,UAAUwoL,iBAAmB,SAAyBhrJ,EACA8H,EACAijE,EACAgoE,GAC5D,IAgBI48F,EAhBAC,EA2ON,SAAmB5vO,EAAK8H,EAAWijE,EAAKn6B,GACtC,IAAIztE,EAOJ,GALY,UAAR68B,EACFA,EAAM,MACS,UAARA,IACPA,EAAM,OAEJx8B,EAAI89E,UAAUlsE,eAAe4qB,GAC/B78B,EAAMK,EAAI89E,UAAUthD,OACjB,IAAmB,iBAARA,IAA2B,EAANA,KAAaA,EAGhD,OAAO4wC,EAASnkE,MAAM,gBAAkBuzB,GAFxC78B,EAAM68B,CAEsC,CAE9C,OAAI78B,GAAO,GACFytE,EAASnkE,MAAM,yCAEnBq7B,IACH3kC,GAAO,IAETA,GAAQK,EAAI69E,eAAe0pB,GAAO,cAAgB,EAGpD,CAnQmB8kK,CAAU7vO,EAAK8H,EAAWijE,EAAKvpG,KAAKovE,UAGrD,GAAImiG,EAAQlxK,OAAS,IAInB,OAHI8tQ,EAAS,IAAI7uQ,EAAO,IACjB,GAAK8uQ,EACZD,EAAO,GAAK58F,EAAQlxK,OACbL,KAAKmpL,qBAAqB,CAAEglF,EAAQ58F,IAM7C,IADA,IAAI+8F,EAAY,EACPxtQ,EAAIywK,EAAQlxK,OAAQS,GAAK,IAAOA,IAAM,EAC7CwtQ,KAEEH,EAAS,IAAI7uQ,EAAO,EAAQgvQ,IACzB,GAAKF,EACZD,EAAO,GAAK,IAAOG,EAEVxtQ,EAAI,EAAIwtQ,EAAjB,IAAK,IAAuBhjQ,EAAIimK,EAAQlxK,OAAQiL,EAAI,EAAGxK,IAAKwK,IAAM,EAChE6iQ,EAAOrtQ,GAAS,IAAJwK,EAEd,OAAOtL,KAAKmpL,qBAAqB,CAAEglF,EAAQ58F,GAC7C,EAEAnoE,EAAQpoG,UAAUyoL,WAAa,SAAmBnkG,EAAK9mD,GACrD,GAAY,WAARA,EACF,OAAOx+B,KAAKmpL,qBAAqB,CAAe,EAAb7jG,EAAI8kB,OAAY9kB,EAAIpkF,OAClD,GAAY,WAARs9B,EAAkB,CAE3B,IADA,IAAIzY,EAAM,IAAIzmB,EAAoB,EAAbgmF,EAAIjlF,QAChBS,EAAI,EAAGA,EAAIwkF,EAAIjlF,OAAQS,IAC9BilB,EAAIqrK,cAAc9rG,EAAI2C,WAAWnnF,GAAQ,EAAJA,GAEvC,OAAOd,KAAKmpL,qBAAqBpjK,EACnC,CAAO,MAAY,WAARyY,EACJx+B,KAAKwqG,UAAUllB,GAIbtlF,KAAKmpL,qBAAqB7jG,GAHxBtlF,KAAKovE,SAASnkE,MAAM,kEAIZ,aAARuzB,EACJx+B,KAAK0qG,YAAYplB,GAQftlF,KAAKmpL,qBAAqB7jG,GAPxBtlF,KAAKovE,SAASnkE,MAAM,qNAQpB,OAAO/E,KAAKs4B,IAEJ,YAARA,EADFx+B,KAAKmpL,qBAAqB7jG,GAI1BtlF,KAAKovE,SAASnkE,MAAM,4BAA8BuzB,EAC9B,eAE/B,EAEA4qE,EAAQpoG,UAAU0oL,aAAe,SAAqBpmK,EAAIvgB,EAAQ6nG,GAChE,GAAkB,iBAAPtnF,EAAiB,CAC1B,IAAKvgB,EACH,OAAO/C,KAAKovE,SAASnkE,MAAM,+CAC7B,IAAKlI,EAAO6Q,eAAe0P,GACzB,OAAOtjB,KAAKovE,SAASnkE,MAAM,iCAC7BqY,EAAKvgB,EAAOugB,GAAI5e,MAAM,YACtB,IAAK,IAAI5D,EAAI,EAAGA,EAAIwiB,EAAGjjB,OAAQS,IAC7BwiB,EAAGxiB,IAAM,CACb,MAAO,GAAIoI,MAAMF,QAAQsa,GAEvB,IADAA,EAAKA,EAAGjf,QACCvD,EAAI,EAAGA,EAAIwiB,EAAGjjB,OAAQS,IAC7BwiB,EAAGxiB,IAAM,EAGb,IAAKoI,MAAMF,QAAQsa,GACjB,OAAOtjB,KAAKovE,SAASnkE,MAAM,kDACUrC,KAAKH,UAAU6a,IAGtD,IAAKsnF,EAAU,CACb,GAAItnF,EAAG,IAAM,GACX,OAAOtjB,KAAKovE,SAASnkE,MAAM,+BAC7BqY,EAAGge,OAAO,EAAG,EAAW,GAARhe,EAAG,GAAUA,EAAG,GAClC,CAGA,IAAIlhB,EAAO,EACX,IAAStB,EAAI,EAAGA,EAAIwiB,EAAGjjB,OAAQS,IAAK,CAClC,IAAIgqG,EAAQxnF,EAAGxiB,GACf,IAAKsB,IAAQ0oG,GAAS,IAAMA,IAAU,EACpC1oG,GACJ,CAEA,IAAI26D,EAAQ,IAAIz9D,EAAO8C,GACnBuC,EAASo4D,EAAM18D,OAAS,EAC5B,IAASS,EAAIwiB,EAAGjjB,OAAS,EAAGS,GAAK,EAAGA,IAGlC,IAFIgqG,EAAQxnF,EAAGxiB,GACfi8D,EAAMp4D,KAAoB,IAARmmG,GACVA,IAAU,GAAK,GACrB/tC,EAAMp4D,KAAY,IAAgB,IAARmmG,EAG9B,OAAO9qG,KAAKmpL,qBAAqBpsH,EACnC,EASAqsC,EAAQpoG,UAAU2oL,YAAc,SAAoBttH,EAAM79B,GACxD,IAAI8mD,EACAx5C,EAAO,IAAI8J,KAAKymB,GA0BpB,MAxBY,YAAR79B,EACF8mD,EAAM,CACJtzD,EAAI8Z,EAAKyiO,eACTv8O,EAAI8Z,EAAK0iO,cAAgB,GACzBx8O,EAAI8Z,EAAK2iO,cACTz8O,EAAI8Z,EAAK4iO,eACT18O,EAAI8Z,EAAK6iO,iBACT38O,EAAI8Z,EAAK8iO,iBACT,KACAj6P,KAAK,IACU,YAAR6pB,EACT8mD,EAAM,CACJtzD,EAAI8Z,EAAKyiO,cAAgB,KACzBv8O,EAAI8Z,EAAK0iO,cAAgB,GACzBx8O,EAAI8Z,EAAK2iO,cACTz8O,EAAI8Z,EAAK4iO,eACT18O,EAAI8Z,EAAK6iO,iBACT38O,EAAI8Z,EAAK8iO,iBACT,KACAj6P,KAAK,IAEP3U,KAAKovE,SAASnkE,MAAM,YAAcuzB,EAAM,8BAGnCx+B,KAAKypL,WAAWnkG,EAAK,SAC9B,EAEA8jB,EAAQpoG,UAAU4oL,YAAc,WAC9B,OAAO5pL,KAAKmpL,qBAAqB,GACnC,EAEA//E,EAAQpoG,UAAU6oL,WAAa,SAAmB1uK,EAAKpY,GACrD,GAAmB,iBAARoY,EAAkB,CAC3B,IAAKpY,EACH,OAAO/C,KAAKovE,SAASnkE,MAAM,+CAC7B,IAAKlI,EAAO6Q,eAAeuH,GACzB,OAAOnb,KAAKovE,SAASnkE,MAAM,+BACArC,KAAKH,UAAU0S,IAE5CA,EAAMpY,EAAOoY,EACf,CAGA,GAAmB,iBAARA,IAAqB7b,EAAO6K,SAASgR,GAAM,CACpD,IAAI0zP,EAAW1zP,EAAI6K,WACd7K,EAAIi6C,MAAsB,IAAdy5M,EAAS,IACxBA,EAAS72P,QAAQ,GAEnBmD,EAAM,IAAI7b,EAAOuvQ,EACnB,CAEA,GAAIvvQ,EAAO6K,SAASgR,GAAM,CACxB,IAAI/Y,EAAO+Y,EAAI9a,OACI,IAAf8a,EAAI9a,QACN+B,IAEF,IAAIuP,EAAM,IAAIrS,EAAO8C,GAIrB,OAHA+Y,EAAIhC,KAAKxH,GACU,IAAfwJ,EAAI9a,SACNsR,EAAI,GAAK,GACJ3R,KAAKmpL,qBAAqBx3K,EACnC,CAEA,GAAIwJ,EAAM,IACR,OAAOnb,KAAKmpL,qBAAqBhuK,GAEnC,GAAIA,EAAM,IACR,OAAOnb,KAAKmpL,qBAAqB,CAAC,EAAGhuK,IAEnC/Y,EAAO,EACX,IADA,IACStB,EAAIqa,EAAKra,GAAK,IAAOA,IAAM,EAClCsB,IAGF,IAAStB,GADL6Q,EAAM,IAAIzI,MAAM9G,IACH/B,OAAS,EAAGS,GAAK,EAAGA,IACnC6Q,EAAI7Q,GAAW,IAANqa,EACTA,IAAQ,EAMV,OAJY,IAATxJ,EAAI,IACLA,EAAIqG,QAAQ,GAGPhY,KAAKmpL,qBAAqB,IAAI7pL,EAAOqS,GAC9C,EAEAy3F,EAAQpoG,UAAU8oL,YAAc,SAAoB/nL,GAClD,OAAO/B,KAAKmpL,qBAAqBpnL,EAAQ,IAAO,EAClD,EAEAqnG,EAAQpoG,UAAU0qG,KAAO,SAAavC,EAAQj3F,GAG5C,MAFsB,mBAAXi3F,IACTA,EAASA,EAAOj3F,IACXi3F,EAAO0zD,YAAY,OAAOnsG,IACnC,EAEA04C,EAAQpoG,UAAUqoL,aAAe,SAAqBj+K,EAAYgkE,EAAU5kC,GAC1E,IACI1pC,EADA+K,EAAQ7L,KAAK+nL,WAEjB,GAAyB,OAArBl8K,EAAe,QACjB,OAAO,EAET,IAAI3K,EAAOkK,EAAWuJ,OAItB,QAH4BlJ,IAAxBI,EAAMijQ,gBACRjjQ,EAAMijQ,cAAgB9uQ,KAAKopL,aAAav9K,EAAe,QAAGujE,EAAU5kC,GAAQ71B,QAE1EzT,EAAKb,SAAWwL,EAAMijQ,cAAczuQ,OACtC,OAAO,EAET,IAAKS,EAAE,EAAGA,EAAII,EAAKb,OAAQS,IACzB,GAAII,EAAKJ,KAAO+K,EAAMijQ,cAAchuQ,GAClC,OAAO,EAEX,OAAO,CACT,C,4BCzMAO,EAAOC,QAAU+I,EAEjB,IAAImC,EAAS,EAAQ,OAGjBS,EAAOrL,OAAOsL,OAAO,EAAQ,OAMjC,SAASk0F,EAAe9xF,EAAIpO,GAC1B,IAAImgG,EAAKrhG,KAAKshG,gBACdD,EAAGE,cAAe,EAElB,IAAIp1F,EAAKk1F,EAAG7xF,QAEZ,IAAKrD,EACH,OAAOnM,KAAK6P,KAAK,QAAS,IAAIzI,MAAM,yCAGtCi6F,EAAGG,WAAa,KAChBH,EAAG7xF,QAAU,KAED,MAARtO,GACFlB,KAAKqD,KAAKnC,GAEZiL,EAAGmD,GAEH,IAAImyF,EAAKzhG,KAAKu9F,eACdkE,EAAGC,SAAU,GACTD,EAAGE,cAAgBF,EAAGphG,OAASohG,EAAGtzF,gBACpCnO,KAAK4hG,MAAMH,EAAGtzF,cAElB,CAEA,SAAS9D,EAAUzE,GACjB,KAAM5F,gBAAgBqK,GAAY,OAAO,IAAIA,EAAUzE,GAEvD4G,EAAOzM,KAAKC,KAAM4F,GAElB5F,KAAKshG,gBAAkB,CACrBF,eAAgBA,EAAevtF,KAAK7T,MACpC6hG,eAAe,EACfN,cAAc,EACd/xF,QAAS,KACTgyF,WAAY,KACZM,cAAe,MAIjB9hG,KAAKu9F,eAAeoE,cAAe,EAKnC3hG,KAAKu9F,eAAepuF,MAAO,EAEvBvJ,IAC+B,mBAAtBA,EAAQumD,YAA0BnsD,KAAK6K,WAAajF,EAAQumD,WAE1C,mBAAlBvmD,EAAQmgC,QAAsB/lC,KAAKmL,OAASvF,EAAQmgC,QAIjE/lC,KAAK+W,GAAG,YAAavF,EACvB,CAEA,SAASA,IACP,IAAI1F,EAAQ9L,KAEe,mBAAhBA,KAAKmL,OACdnL,KAAKmL,OAAO,SAAUmE,EAAIpO,GACxB8tC,EAAKljC,EAAOwD,EAAIpO,EAClB,GAEA8tC,EAAKhvC,KAAM,KAAM,KAErB,CAyDA,SAASgvC,EAAKlhC,EAAQwB,EAAIpO,GACxB,GAAIoO,EAAI,OAAOxB,EAAO+B,KAAK,QAASP,GAOpC,GALY,MAARpO,GACF4M,EAAOzK,KAAKnC,GAIV4M,EAAOyB,eAAelP,OAAQ,MAAM,IAAI+G,MAAM,8CAElD,GAAI0G,EAAOwzF,gBAAgBC,aAAc,MAAM,IAAIn6F,MAAM,kDAEzD,OAAO0G,EAAOzK,KAAK,KACrB,CA9IA4J,EAAK9N,SAAW,EAAQ,OAGxB8N,EAAK9N,SAASkL,EAAWmC,GAuEzBnC,EAAUrJ,UAAUqC,KAAO,SAAUyH,EAAOC,GAE1C,OADA/K,KAAKshG,gBAAgBO,eAAgB,EAC9Br1F,EAAOxL,UAAUqC,KAAKtD,KAAKC,KAAM8K,EAAOC,EACjD,EAYAV,EAAUrJ,UAAU6J,WAAa,SAAUC,EAAOC,EAAUoB,GAC1D,MAAM,IAAI/E,MAAM,kCAClB,EAEAiD,EAAUrJ,UAAUwP,OAAS,SAAU1F,EAAOC,EAAUoB,GACtD,IAAIk1F,EAAKrhG,KAAKshG,gBAId,GAHAD,EAAG7xF,QAAUrD,EACbk1F,EAAGG,WAAa12F,EAChBu2F,EAAGS,cAAgB/2F,GACds2F,EAAGE,aAAc,CACpB,IAAIE,EAAKzhG,KAAKu9F,gBACV8D,EAAGQ,eAAiBJ,EAAGE,cAAgBF,EAAGphG,OAASohG,EAAGtzF,gBAAenO,KAAK4hG,MAAMH,EAAGtzF,cACzF,CACF,EAKA9D,EAAUrJ,UAAU4gG,MAAQ,SAAU1oF,GACpC,IAAImoF,EAAKrhG,KAAKshG,gBAEQ,OAAlBD,EAAGG,YAAuBH,EAAG7xF,UAAY6xF,EAAGE,cAC9CF,EAAGE,cAAe,EAClBvhG,KAAK6K,WAAWw2F,EAAGG,WAAYH,EAAGS,cAAeT,EAAGD,iBAIpDC,EAAGQ,eAAgB,CAEvB,EAEAx3F,EAAUrJ,UAAU4P,SAAW,SAAU1F,EAAKiB,GAC5C,IAAIkxF,EAASr9F,KAEbwM,EAAOxL,UAAU4P,SAAS7Q,KAAKC,KAAMkL,EAAK,SAAU62F,GAClD51F,EAAG41F,GACH1E,EAAOxtF,KAAK,QACd,EACF,C,qJClMO,MAAMsQ,EAAa,CACtB9U,OAAqB,OAAY,CAC7B,MAAAgV,CAAOjM,GACH,MAAMguD,EAAehuD,EAAKguD,cAAc1gE,IAAKuf,IACzC,GAA2B,iBAAhBA,EACP,OAAOA,EACX,MAAM0vF,GAAY,QAAkB1vF,GASpC,MAR0B,SAAtB0vF,EAAUkwB,UACVlwB,EAAUo+J,WAAa9tP,EAAY8tP,WACnCp+J,EAAUq+J,KAAO/tP,EAAY+tP,MACvB,QAAY/tP,EAAY+tP,WACxBvjQ,EACNklG,EAAUs+J,WAAahuP,EAAYguP,WACnCt+J,EAAUptG,KAAO,WAEdotG,IAEX,MAAO,CACHvuC,eACA8sM,UAAW96P,EAAK86P,UAExB,IAEJjuP,aAA2B,QAAkB,CACzC,MAAAZ,CAAOjM,GACH,MAAM6M,EAAc,CAAC,EAOrB,MANkB,SAAd7M,EAAK7Q,OACL0d,EAAY8tP,WAAa36P,EAAK26P,WAC9B9tP,EAAY+tP,KAAO56P,EAAK46P,MAAO,QAAY56P,EAAK46P,WAAQvjQ,EACxDwV,EAAYguP,WAAa76P,EAAK66P,WAC9BhuP,EAAY1d,KAAO,WAEhB0d,CACX,IAEJsxC,oBAAkC,QAAyB,CACvDlyC,OAAOjM,IACI,CACH+6P,WAAY/6P,EAAK+6P,YAAa,QAAY/6P,EAAK+6P,YAAc,KAC7DC,UAAWh7P,EAAKg7P,WAAY,QAAYh7P,EAAKg7P,WAAa,KAC1DC,MAAOj7P,EAAKi7P,OAAQ,QAAYj7P,EAAKi7P,OAAS,KAC9CC,YAAal7P,EAAKk7P,YAAc1qQ,OAAOwP,EAAKk7P,aAAe,U,oEC1CpE,MAAMC,EAAc,CACvB1iG,UAAW,IACXvmF,UCDqB,CACrBkpL,eAAgB,CAAE7pQ,QAAS,8CAC3B8pQ,QAAS,CAAE9pQ,QAAS,8CACpB+pQ,uBAAwB,CACpB/pQ,QAAS,8CAEbgqQ,eAAgB,CAAEhqQ,QAAS,8CAC3BiqQ,iBAAkB,CAAEjqQ,QAAS,8CAC7BkqQ,oBAAqB,CACjBlqQ,QAAS,+CDPbwa,WAAU,EACVa,YEIuB,CACvBC,YANG,SAA8BA,EAAakd,GAC9C,OAyBJ,SAAmBld,GACf,MAAyB,YAArBA,EAAY1d,WAEsB,IAA3B0d,EAAYguP,UAG3B,CA/BQa,CAAU7uP,GAOlB,SAAqCA,IAyB9B,SAAkCA,GACrC,MAAM,KAAEhhB,EAAI,GAAE4f,GAAOoB,EACrB,GAAIhhB,KAAS,EAAAyF,EAAA,GAAUzF,GACnB,MAAM,IAAI,IAAoB,CAAE0F,QAAS1F,IAC7C,GAAI4f,KAAO,EAAAna,EAAA,GAAUma,GACjB,MAAM,IAAI,IAAoB,CAAEla,QAASka,GACjD,CA9BIkwP,CAAyB9uP,GACzB,MAAM,WAAEguP,EAAU,KAAE/tQ,EAAI,KAAEjB,EAAI,IAAEqf,EAAG,WAAEyvP,EAAU,KAAEC,EAAI,GAAEnvP,EAAE,MAAE9d,GAAUkf,EAC/DC,EAAwB,CAC1B+tP,EACAhvQ,EACA4f,GAAM,KACNmvP,GAAO,EAAA/2L,EAAA,IAAM+2L,GAAQ,KACrBjtQ,GAAQ,EAAAk2E,EAAA,IAAMl2E,GAAS,KACvBud,GAAM,EAAA24D,EAAA,IAAM34D,GAAO,KACnByvP,EAAa,MAAQ,KACrB7tQ,GAAQ,MAEZ,OAAO,EAAAV,EAAA,IAAU,CACb,QACA,EAAA+wG,EAAA,IAAMrwF,IAEd,CAvBe8uP,CAA4B/uP,IAChC,EAAAw3D,EAAA,GAAsBx3D,EAAakd,EAC9C,I,eCRA,MAAM8xO,EAAW,SACJC,GAA4B,EAAAvwJ,EAAA,GAAY,IAC9C4vJ,EACHjsP,GAAI,MACJ6sP,QAAS,eACTlsQ,KAAM,eACNsf,eAAgB,CAAEtf,KAAM,gBAAiBwf,OAAQ,MAAOD,SAAU,IAClEE,QAAS,CACLC,QAAS,CACLC,KAAM,CAAC,8BAGfspJ,eAAgB,CACZvpJ,QAAS,CACL1f,KAAM,WACNwqE,IAAK,+BACL2hM,OAAQ,yCAGhB9pL,UAAW,IACJipL,EAAYjpL,UACf+pL,mBAAoB,CAChB,CAACJ,GAAW,CACRtqQ,QAAS,+CAGjB2qQ,eAAgB,CACZ,CAACL,GAAW,CACRtqQ,QAAS,+CAGjB0xM,OAAQ,CACJ,CAAC44D,GAAW,CACRtqQ,QAAS,6CACT4gF,aAAc,UAGtBgqL,iBAAkB,CACd,CAACN,GAAW,CACRtqQ,QAAS,6CACT4gF,aAAc,UAGtB8sE,WAAY,CACR1tJ,QAAS,6CACT4gF,aAAc,UAGtBiqL,SAAS,EACTP,aClCG,SAASQ,EAAUxnQ,EAAK4hD,GAK3B,QAJ0B,OAAR5hD,GACA,iBAAPA,KACP,cAAeA,IACS,iBAAjBA,EAAIynQ,gBAIAjlQ,IAAXo/C,GAGGA,EAAO8lN,WAAa1nQ,EAAIynQ,UACnC,CCXO,IAAI,EACAE,ECwBJ,SAASC,IACZ,IAAIvI,EAAU,EACVC,EAAW,EACf,IAAK,IAAIluP,EAAQ,EAAGA,EAAQ,GAAIA,GAAS,EAAG,CACxC,IAAIxS,EAAI7H,KAAK+lB,IAAI/lB,KAAK85F,OAEtB,GADAwuK,IAAgB,IAAJzgQ,IAAawS,IAChB,IAAJxS,GAED,OADA7H,KAAK8wQ,eACE,CAACxI,EAASC,EAEzB,CACA,IAAIwI,EAAa/wQ,KAAK+lB,IAAI/lB,KAAK85F,OAK/B,GAHAwuK,IAAyB,GAAbyI,IAAsB,GAElCxI,GAAyB,IAAbwI,IAAsB,IAChB,IAAbA,GAED,OADA/wQ,KAAK8wQ,eACE,CAACxI,EAASC,GAErB,IAAK,IAAIluP,EAAQ,EAAGA,GAAS,GAAIA,GAAS,EAAG,CACzC,IAAIxS,EAAI7H,KAAK+lB,IAAI/lB,KAAK85F,OAEtB,GADAyuK,IAAiB,IAAJ1gQ,IAAawS,IACjB,IAAJxS,GAED,OADA7H,KAAK8wQ,eACE,CAACxI,EAASC,EAEzB,CACA,MAAM,IAAInhQ,MAAM,iBACpB,CAQO,SAAS4pQ,EAAc3nL,EAAIgB,EAAInoF,GAClC,IAAK,IAAIpB,EAAI,EAAGA,EAAI,GAAIA,GAAQ,EAAG,CAC/B,MAAMuZ,EAAQgvE,IAAOvoF,EACfmwQ,IAAY52P,IAAU,GAAK,GAAW,GAANgwE,GAChCx8D,EAA0C,KAAlCojP,EAAkB,IAAR52P,EAAeA,GAEvC,GADAnY,EAAMmB,KAAKwqB,IACNojP,EACD,MAER,CACA,MAAMC,EAAc7nL,IAAO,GAAM,IAAe,EAALgB,IAAc,EACnD8mL,KAAgB9mL,GAAM,GAE5B,GADAnoF,EAAMmB,KAAoD,KAA9C8tQ,EAA0B,IAAZD,EAAmBA,IACxCC,EAAL,CAGA,IAAK,IAAIrwQ,EAAI,EAAGA,EAAI,GAAIA,GAAQ,EAAG,CAC/B,MAAMuZ,EAAQgwE,IAAOvpF,EACfmwQ,IAAY52P,IAAU,GAAK,GAC3BwT,EAA0C,KAAlCojP,EAAkB,IAAR52P,EAAeA,GAEvC,GADAnY,EAAMmB,KAAKwqB,IACNojP,EACD,MAER,CACA/uQ,EAAMmB,KAAMgnF,IAAO,GAAM,EAVzB,CAWJ,EDvFWumL,EA8BR,IAAe,EAAa,CAAC,IA3BjBA,EAAmB,OAAI,GAAK,SACvCA,EAAWA,EAAkB,MAAI,GAAK,QAGtCA,EAAWA,EAAkB,MAAI,GAAK,QACtCA,EAAWA,EAAmB,OAAI,GAAK,SAGvCA,EAAWA,EAAkB,MAAI,GAAK,QACtCA,EAAWA,EAAoB,QAAI,GAAK,UACxCA,EAAWA,EAAoB,QAAI,GAAK,UACxCA,EAAWA,EAAiB,KAAI,GAAK,OACrCA,EAAWA,EAAmB,OAAI,GAAK,SAQvCA,EAAWA,EAAkB,MAAI,IAAM,QACvCA,EAAWA,EAAmB,OAAI,IAAM,SAExCA,EAAWA,EAAqB,SAAI,IAAM,WAC1CA,EAAWA,EAAqB,SAAI,IAAM,WAC1CA,EAAWA,EAAmB,OAAI,IAAM,SACxCA,EAAWA,EAAmB,OAAI,IAAM,SC4D5C,MAAMQ,EAAiB,WAQhB,SAASC,EAAgBC,GAE5B,MAAMC,EAAmB,MAAXD,EAAI,GACdC,IACAD,EAAMA,EAAIjtQ,MAAM,IAKpB,MAAM6qE,EAAO,IACb,IAAIo5L,EAAU,EACVC,EAAW,EACf,SAASiJ,EAAYC,EAAOx+P,GAExB,MAAMy+P,EAAW9sQ,OAAO0sQ,EAAIjtQ,MAAMotQ,EAAOx+P,IACzCs1P,GAAYr5L,EACZo5L,EAAUA,EAAUp5L,EAAOwiM,EAEvBpJ,GAAW8I,IACX7I,GAAwBD,EAAU8I,EAAkB,EACpD9I,GAAoB8I,EAE5B,CAKA,OAJAI,GAAa,IAAK,IAClBA,GAAa,IAAK,IAClBA,GAAa,IAAK,GAClBA,GAAa,GACND,EAAQn4O,EAAOkvO,EAASC,GAAYoJ,EAAQrJ,EAASC,EAChE,CA4BO,SAASqJ,EAAevoL,EAAIgB,GAQ/B,KAPGhB,KAAIgB,MA6CX,SAAoBhB,EAAIgB,GACpB,MAAO,CAAEhB,GAAIA,IAAO,EAAGgB,GAAIA,IAAO,EACtC,CA/CkBwnL,CAAWxoL,EAAIgB,IAOzBA,GAAM,QACN,OAAOlyE,OAAOi5P,EAAiB/mL,EAAKhB,GAWxC,MACMt0C,EAAkC,UAA1Bs0C,IAAO,GAAOgB,GAAM,GAC5BynL,EAAQznL,GAAM,GAAM,MAI1B,IAAI0nL,GANa,SAAL1oL,GAMa,QAANt0C,EAAuB,QAAP+8N,EAC/BE,EAASj9N,EAAa,QAAP+8N,EACfG,EAAgB,EAAPH,EAEb,MAAM5iM,EAAO,IAYb,OAXI6iM,GAAU7iM,IACV8iM,GAAUhqQ,KAAKuG,MAAMwjQ,EAAS7iM,GAC9B6iM,GAAU7iM,GAEV8iM,GAAU9iM,IACV+iM,GAAUjqQ,KAAKuG,MAAMyjQ,EAAS9iM,GAC9B8iM,GAAU9iM,GAKN+iM,EAAO1pQ,WACX2pQ,EAA+BF,GAC/BE,EAA+BH,EACvC,CAIA,SAASJ,EAAQtoL,EAAIgB,GACjB,MAAO,CAAEhB,GAAS,EAALA,EAAQgB,GAAS,EAALA,EAC7B,CAKA,SAASjxD,EAAOkvO,EAASC,GAWrB,OAVAA,GAAYA,EACRD,EACAA,EAAqB,GAAVA,EAMXC,GAAY,EAEToJ,EAAQrJ,EAASC,EAC5B,CAIA,MAAM2J,EAAkCC,IACpC,MAAMz8E,EAAUv9K,OAAOg6P,GACvB,MAAO,UAAU9tQ,MAAMqxL,EAAQr1L,QAAUq1L,GAStC,SAAS08E,EAAcrwQ,EAAOG,GACjC,GAAIH,GAAS,EAAG,CAEZ,KAAOA,EAAQ,KACXG,EAAMmB,KAAc,IAARtB,EAAgB,KAC5BA,KAAkB,EAEtBG,EAAMmB,KAAKtB,EACf,KACK,CACD,IAAK,IAAIjB,EAAI,EAAGA,EAAI,EAAGA,IACnBoB,EAAMmB,KAAc,IAARtB,EAAe,KAC3BA,IAAiB,EAErBG,EAAMmB,KAAK,EACf,CACJ,CAMO,SAASgvQ,IACZ,IAAIxqQ,EAAI7H,KAAK+lB,IAAI/lB,KAAK85F,OAClB7zF,EAAa,IAAJ4B,EACb,KAAS,IAAJA,GAED,OADA7H,KAAK8wQ,eACE7qQ,EAIX,GAFA4B,EAAI7H,KAAK+lB,IAAI/lB,KAAK85F,OAClB7zF,IAAe,IAAJ4B,IAAa,IACf,IAAJA,GAED,OADA7H,KAAK8wQ,eACE7qQ,EAIX,GAFA4B,EAAI7H,KAAK+lB,IAAI/lB,KAAK85F,OAClB7zF,IAAe,IAAJ4B,IAAa,KACf,IAAJA,GAED,OADA7H,KAAK8wQ,eACE7qQ,EAIX,GAFA4B,EAAI7H,KAAK+lB,IAAI/lB,KAAK85F,OAClB7zF,IAAe,IAAJ4B,IAAa,KACf,IAAJA,GAED,OADA7H,KAAK8wQ,eACE7qQ,EAGX4B,EAAI7H,KAAK+lB,IAAI/lB,KAAK85F,OAClB7zF,IAAe,GAAJ4B,IAAa,GACxB,IAAK,IAAIpE,EAAY,EAAQ,IAAJoE,GAAmBpE,EAAY,GAAIA,IACxDoE,EAAI7H,KAAK+lB,IAAI/lB,KAAK85F,OACtB,GAAS,IAAJjyF,EACD,MAAM,IAAIT,MAAM,kBAGpB,OAFApH,KAAK8wQ,eAEE7qQ,IAAW,CACtB,C,eCvSO,MAAMqsQ,EAA2BC,IACxC,SAASA,IACL,MAAMC,EAAK,IAAInmP,SAAS,IAAI7W,YAAY,IAWxC,GAT6B,mBAAX87B,QACY,mBAAnBkhO,EAAGC,aACiB,mBAApBD,EAAGE,cACgB,mBAAnBF,EAAGG,aACiB,mBAApBH,EAAGr4K,eACPn6D,WAAW4yO,MACQ,iBAAXlmQ,GACe,iBAAfA,EAAQwc,KACoB,MAAnCxc,EAAQwc,IAAI2pP,oBACZ,CACJ,MAAMC,EAAMxhO,OAAO,wBACbyhO,EAAMzhO,OAAO,uBACb0hO,EAAO1hO,OAAO,KACd2hO,EAAO3hO,OAAO,wBACpB,MAAO,CACH9a,KAAM8a,OAAO,GACb4hO,WAAW,EACX,KAAAh7O,CAAMn2B,GACF,MAAMoxQ,EAAqB,iBAATpxQ,EAAoBA,EAAQuvC,OAAOvvC,GACrD,GAAIoxQ,EAAKJ,GAAOI,EAAKL,EACjB,MAAM,IAAI1rQ,MAAM,kBAAkBrF,KAEtC,OAAOoxQ,CACX,EACA,MAAAC,CAAOrxQ,GACH,MAAMoxQ,EAAqB,iBAATpxQ,EAAoBA,EAAQuvC,OAAOvvC,GACrD,GAAIoxQ,EAAKF,GAAQE,EAAKH,EAClB,MAAM,IAAI5rQ,MAAM,mBAAmBrF,KAEvC,OAAOoxQ,CACX,EACA,GAAAvsQ,CAAI7E,GAEA,OADAywQ,EAAGG,YAAY,EAAG3yQ,KAAKk4B,MAAMn2B,IAAQ,GAC9B,CACHsnF,GAAImpL,EAAGa,SAAS,GAAG,GACnBhpL,GAAImoL,EAAGa,SAAS,GAAG,GAE3B,EACA,IAAAC,CAAKvxQ,GAED,OADAywQ,EAAGG,YAAY,EAAG3yQ,KAAKozQ,OAAOrxQ,IAAQ,GAC/B,CACHsnF,GAAImpL,EAAGa,SAAS,GAAG,GACnBhpL,GAAImoL,EAAGa,SAAS,GAAG,GAE3B,EACA/B,IAAG,CAACjoL,EAAIgB,KACJmoL,EAAGe,SAAS,EAAGlqL,GAAI,GACnBmpL,EAAGe,SAAS,EAAGlpL,GAAI,GACZmoL,EAAGC,YAAY,GAAG,IAE7Be,KAAI,CAACnqL,EAAIgB,KACLmoL,EAAGe,SAAS,EAAGlqL,GAAI,GACnBmpL,EAAGe,SAAS,EAAGlpL,GAAI,GACZmoL,EAAGE,aAAa,GAAG,IAGtC,CACA,MAAO,CACHl8O,KAAM,IACN08O,WAAW,EACXh7O,MAAMn2B,IACkB,iBAATA,IACPA,EAAQA,EAAMwG,YAElBkrQ,EAAkB1xQ,GACXA,GAEXqxQ,OAAOrxQ,IACiB,iBAATA,IACPA,EAAQA,EAAMwG,YAElBmrQ,EAAmB3xQ,GACZA,GAEX6E,IAAI7E,IACoB,iBAATA,IACPA,EAAQA,EAAMwG,YAElBkrQ,EAAkB1xQ,GACXsvQ,EAAgBtvQ,IAE3BuxQ,KAAKvxQ,IACmB,iBAATA,IACPA,EAAQA,EAAMwG,YAElBmrQ,EAAmB3xQ,GACZsvQ,EAAgBtvQ,IAE3BuvQ,IAAG,CAACjoL,EAAIgB,ID4CT,SAAuBhB,EAAIgB,GAC9B,IAAIrE,EAAO2rL,EAAQtoL,EAAIgB,GAGvB,MAAM30D,EAAqB,WAAVswD,EAAKqE,GAClB30D,IACAswD,EAAO5sD,EAAO4sD,EAAKqD,GAAIrD,EAAKqE,KAEhC,MAAMpkF,EAAS2rQ,EAAe5rL,EAAKqD,GAAIrD,EAAKqE,IAC5C,OAAO30D,EAAW,IAAMzvB,EAASA,CACrC,CCrDmB0tQ,CAActqL,EAAIgB,GAE7BmpL,KAAI,CAACnqL,EAAIgB,IACEunL,EAAevoL,EAAIgB,GAGtC,CACA,SAASopL,EAAkB1xQ,GACvB,IAAK,aAAamE,KAAKnE,GACnB,MAAM,IAAIqF,MAAM,kBAAoBrF,EAE5C,CACA,SAAS2xQ,EAAmB3xQ,GACxB,IAAK,WAAWmE,KAAKnE,GACjB,MAAM,IAAIqF,MAAM,mBAAqBrF,EAE7C,CCvEO,SAAS6xQ,EAAgBrwQ,EAAMswQ,GAClC,OAAQtwQ,GACJ,KAAK,EAAWuwQ,OACZ,MAAO,GACX,KAAK,EAAWC,KACZ,OAAO,EACX,KAAK,EAAWC,OAChB,KAAK,EAAWC,MACZ,OAAO,EACX,KAAK,EAAWC,MAChB,KAAK,EAAWC,OAChB,KAAK,EAAWC,SAChB,KAAK,EAAWC,QAChB,KAAK,EAAWC,OACZ,OAAQT,EAAe,IAAMvB,EAAW97O,KAC5C,KAAK,EAAW62F,MACZ,OAAO,IAAI1/G,WAAW,GAC1B,QAGI,OAAO,EAEnB,CC9DA,MACa4mQ,EAAc1iQ,OAAOwP,IAAI,wBAM/B,SAASmzP,EAEhBz+P,EAAQ0+P,GACJ,MAAMr3P,EAAIrH,EAAO0+P,EAAMC,WAAWC,KAClC,YAAUlpQ,IAAN2R,EACOA,EAEJq3P,EAAMjsP,OAAO82D,KAAMjiE,GAAMA,EAAEq3P,YAAct3P,EACpD,CAqCO,SAASw3P,EAAoB7+P,EAAQ2+P,GACxC,OAAQ9yQ,OAAOZ,UAAU4S,eAAe7T,KAAKgW,EAAQ2+P,SAC3BjpQ,IAAtBsK,EAAO2+P,EACf,CAMO,SAAS10M,EAAUjqD,EAAQ8mE,GAC9B,GAAIA,EAAM43L,MAAO,CACb,MAAMA,EAAQ1+P,EAAO8mE,EAAM43L,MAAMC,WACjC,OAAID,EAAME,OAAS93L,EAAM63L,UACdD,EAAM1yQ,WAEjB,CACJ,CACA,OAAOgU,EAAO8mE,EAAM63L,UACxB,CAMO,SAASG,EAAU9+P,EAAQ8mE,EAAO96E,GACjC86E,EAAM43L,MACN1+P,EAAO8mE,EAAM43L,MAAMC,WAAa,CAC5BC,KAAM93L,EAAM63L,UACZ3yQ,MAAOA,GAIXgU,EAAO8mE,EAAM63L,WAAa3yQ,CAElC,CCvFO,SAAS6H,EAASX,GACrB,OAAe,OAARA,GAA8B,iBAAPA,IAAoBC,MAAMF,QAAQC,EACpE,CASO,SAAS6rQ,EAAc7rQ,EAAK4zE,GAC/B,IAAIlgE,EAAIC,EAAIC,EAAIC,EAChB,GAAIlT,EAASX,IACTsrQ,KAAetrQ,GACf,QAASA,GACT,UAAWA,GACS,mBAAbA,EAAI4zE,MAAqB,CAChC,QAAcpxE,IAAVoxE,EAAqB,CACrB,MAAMj1E,EAAIi1E,EACJh1E,EAAIoB,EAAI4zE,QACd,OAAQj1E,EAAEmtQ,UAAYltQ,EAAEktQ,UACpBntQ,EAAEuoH,SAAWtoH,EAAEsoH,SACO,QAApBxzG,EAAK/U,EAAE2M,eAA4B,IAAPoI,OAAgB,EAASA,EAAGg0P,aAAoC,QAApB/zP,EAAK/U,EAAE0M,eAA4B,IAAPqI,OAAgB,EAASA,EAAG+zP,YAC/G,QAAjB9zP,EAAKjV,EAAEotQ,YAAyB,IAAPn4P,OAAgB,EAASA,EAAG8zP,aAAiC,QAAjB7zP,EAAKjV,EAAEmtQ,YAAyB,IAAPl4P,OAAgB,EAASA,EAAG6zP,SACpI,CACA,OAAO,CACX,CACA,OAAO,CACX,CACO,SAASsE,EAAahsQ,EAAK4zE,GAC9B,IAAIlgE,EAAIC,EAAIC,EAAIC,EAChB,GAAIlT,EAASX,IACTsrQ,KAAetrQ,GACf,QAASA,GACT,UAAWA,GACS,mBAAbA,EAAI4zE,MAAqB,CAChC,QAAcpxE,IAAVoxE,EAAqB,CACrB,MAAMj1E,EAAIi1E,EAAOh1E,EAAIoB,EAAI4zE,QACzB,OAAQj1E,EAAEstQ,SAAWrtQ,EAAEqtQ,QACnBttQ,EAAEutQ,SAAWttQ,EAAEstQ,SACfvtQ,EAAEuoH,SAAWtoH,EAAEsoH,SACO,QAApBxzG,EAAK/U,EAAE2M,eAA4B,IAAPoI,OAAgB,EAASA,EAAGg0P,aAAoC,QAApB/zP,EAAK/U,EAAE0M,eAA4B,IAAPqI,OAAgB,EAASA,EAAG+zP,YAC/G,QAAjB9zP,EAAKjV,EAAEotQ,YAAyB,IAAPn4P,OAAgB,EAASA,EAAG8zP,aAAiC,QAAjB7zP,EAAKjV,EAAEmtQ,YAAyB,IAAPl4P,OAAgB,EAASA,EAAG6zP,SACpI,CACA,OAAO,CACX,CACA,OAAO,CACX,CACO,SAASyE,EAAiBnsQ,EAAKosQ,GAClC,OAAQzrQ,EAASX,IACbsrQ,KAAetrQ,GACf,SAAUA,GACVW,EAASX,EAAI+qD,OACK,YAAlB/qD,EAAI+qD,KAAK1K,YACQ79C,IAAhB4pQ,GAA6BpsQ,EAAI+qD,KAAK28M,UAAY0E,EAAY1E,SACvE,CCtDO,SAAS2E,EAAcD,GAC1B,MAAMh4P,EAAIg4P,EAAY7sP,OAAO,GAC7B,OAAQ+sP,EAAkBF,EAAY1E,gBAC5BllQ,IAAN4R,GACe,UAAfA,EAAEm4P,WACQ,SAAVn4P,EAAEpZ,MACU,GAAZoZ,EAAEmK,MACV,CACA,SAAS+tP,EAAkBtxQ,GACvB,OAAQA,EAAKO,WAAW,qBACpB,CACI,cACA,aACA,aACA,cACA,aACA,cACA,YACA,cACA,cACFkgE,SAASzgE,EAAK+rG,UAAU,IAClC,CCNO,SAAS,EAAOnlD,EAAQt0C,GAC3B,GAAIk6P,EAAUl6P,EAAMs0C,GAChB,OAAOt0C,EAEX,MAAMhC,EA+GV,SAA2By/C,GACvB,IAAIjtD,EACJ,GAkEJ,SAA6BitD,GACzB,OAAQA,EAAKyhN,KAAKC,SACd,KApMe,IAsMX,OAAO,EACX,KArMe,IAuMX,OAAO,EACX,QAII,OAAO1hN,EAAKxrC,OAAOxkB,KAAMqZ,GA1MpB,GA0M0BA,EAAEs4P,UAAuC,WAAft4P,EAAEm4P,YAA2Bn4P,EAAEo3P,OAEpG,CAhFSmB,CAAoB5hN,GAUpB,CAED,MAAM2qE,EAASk3I,GAAkB7vQ,IAAIguD,GACrC,IAAIhzD,EACA8uD,EACJ,GAAI6uE,IACG39H,YAAW8uD,WAAY6uE,OAEzB,CACD39H,EAAY,CAAC,EACb8uD,EAAU,IAAI7sB,IACd,IAAK,MAAM8sB,KAAUiE,EAAKlE,QACH,SAAfC,EAAOzG,OAKa,UAApByG,EAAOylN,WAA6C,QAApBzlN,EAAOylN,WAvJ1C,GA4JGzlN,EAAO4lN,WAKX7lN,EAAQr6B,IAAIs6B,GACZ/uD,EAAU+uD,EAAO2kN,WAAaoB,GAAgB/lN,KAElD8lN,GAAkB1vQ,IAAI6tD,EAAM,CAAEhzD,YAAW8uD,WAC7C,CACA/oD,EAAMnF,OAAOsL,OAAOlM,GACpB+F,EAAI2pQ,UAAY18M,EAAK28M,SACrB,IAAK,MAAM5gN,KAAUiE,EAAKlE,QACtB,IAAIA,EAAQ/pD,IAAIgqD,GAAhB,CAGA,GAAmB,SAAfA,EAAOzG,KAAiB,CACxB,GAAwB,WAApByG,EAAOylN,UACP,SAEJ,IAAwB,UAApBzlN,EAAOylN,WAA6C,QAApBzlN,EAAOylN,YAhL1C,GAiLOzlN,EAAO4lN,SACP,QAGZ,CACA5uQ,EAAIgpD,EAAO2kN,WAAaoB,GAAgB/lN,EAXxC,CAaR,KA5DgC,CAC5BhpD,EAAM,CACF2pQ,UAAW18M,EAAK28M,UAEpB,IAAK,MAAM5gN,KAAUiE,EAAKlE,QACH,SAAfC,EAAOzG,MAjIN,GAiIyByG,EAAO4lN,WACjC5uQ,EAAIgpD,EAAO2kN,WAAaoB,GAAgB/lN,GAGpD,CAoDA,OAAOhpD,CACX,CA/KoBgvQ,CAAkBlrN,GAIlC,YAHap/C,IAAT8K,GAQR,SAAqB8+P,EAAa9gQ,EAASgC,GACvC,IAAK,MAAMw5C,KAAUslN,EAAYvlN,QAAS,CACtC,IAKI+sB,EALA96E,EAAQwU,EAAKw5C,EAAO2kN,WACxB,GAAa,MAAT3yQ,EAAJ,CAKA,GAAmB,SAAfguD,EAAOzG,KAAiB,CACxB,MAAM0sN,EAAaxB,EAAgBj+P,EAAMw5C,GACzC,IAAKimN,EACD,SAEJn5L,EAAQm5L,EACRj0Q,EAAQi+D,EAAUzpD,EAAMy/P,EAC5B,MAEIn5L,EAAQ9sB,EAEZ,OAAQ8sB,EAAM24L,WACV,IAAK,UACDzzQ,EAAQk0Q,GAAUp5L,EAAO96E,GACzB,MACJ,IAAK,SACDA,EAAQm0Q,GAAWr5L,EAAO96E,GAC1B,MACJ,IAAK,OACDA,EAAQo0Q,GAASt5L,EAAO96E,GACxB,MACJ,IAAK,MACDA,EAAQq0Q,GAAQv5L,EAAO96E,GAG/B8yQ,EAAUtgQ,EAASsoE,EAAO96E,EA3B1B,CA4BJ,CAEJ,CA3CQs0Q,CAAYxrN,EAAQt2C,EAASgC,GAE1BhC,CACX,CAyCA,SAAS2hQ,GAAWr5L,EAAO96E,GACvB,OAAI86E,EAAMszC,QAAU,EAAW9C,MACpBipJ,GAAQv0Q,GAEZA,CACX,CACA,SAASq0Q,GAAQv5L,EAAO96E,GACpB,GAAI6H,EAAS7H,GAAQ,CACjB,GAAI86E,EAAMszC,QAAU,EAAW9C,MAC3B,OAAOkpJ,GAAoBx0Q,EAAOu0Q,IAEtC,GAAqB,WAAjBz5L,EAAMs4L,QACN,OAAOoB,GAAoBx0Q,EAAQo6D,GAAQ85M,GAAUp5L,EAAO1gB,GAEpE,CACA,OAAOp6D,CACX,CACA,SAASo0Q,GAASt5L,EAAO96E,GACrB,GAAImH,MAAMF,QAAQjH,GAAQ,CACtB,GAAI86E,EAAMszC,QAAU,EAAW9C,MAC3B,OAAOtrH,EAAML,IAAI40Q,IAErB,GAAsB,WAAlBz5L,EAAMk4L,SACN,OAAOhzQ,EAAML,IAAK8zC,GAASygO,GAAUp5L,EAAOrnC,GAEpD,CACA,OAAOzzC,CACX,CACA,SAASk0Q,GAAUp5L,EAAO96E,GACtB,GAAuB,WAAnB86E,EAAM24L,YACL34L,EAAM43L,OACPa,EAAcz4L,EAAMtoE,SAGpB,OAAO2hQ,GAAWr5L,EAAMtoE,QAAQiU,OAAO,GAAIzmB,GAE/C,GAAI6H,EAAS7H,GAAQ,CACjB,GAA8B,0BAA1B86E,EAAMtoE,QAAQo8P,UACY,0BAA1B9zL,EAAMryC,OAAOmmO,SAGb,OAAO5uQ,EAEX,IAAK0uQ,EAAU1uQ,EAAO86E,EAAMtoE,SACxB,OAAO,EAAOsoE,EAAMtoE,QAASxS,EAErC,CACA,OAAOA,CACX,CAEA,SAASu0Q,GAAQv0Q,GACb,OAAOmH,MAAMF,QAAQjH,GAAS,IAAI4L,WAAW5L,GAASA,CAC1D,CACA,SAASw0Q,GAAoBrkQ,EAAK4C,GAC9B,MAAM3C,EAAM,CAAC,EACb,IAAK,MAAMnG,KAASpK,OAAO6uC,QAAQv+B,GAC/BC,EAAInG,EAAM,IAAM8I,EAAG9I,EAAM,IAE7B,OAAOmG,CACX,CACA,MAAMqkQ,GAAwB3kQ,SACxBgkQ,GAAoB,IAAIr/N,QA2F9B,SAASs/N,GAAgBj5L,GACrB,GAAkB,SAAdA,EAAMvzB,KACN,MAAO,CAAEqrN,UAAMlpQ,GAEnB,GAAuB,QAAnBoxE,EAAM24L,UACN,MAAO,GAEX,GAAuB,OAAnB34L,EAAM24L,UACN,MAAO,CAAC,EAEZ,GAAuB,WAAnB34L,EAAM24L,UACN,OAAOgB,GAEX,MAAMpwO,EAAey2C,EAAM/c,kBAC3B,YAAqBr0D,IAAjB26B,EAC0B,UAAnBy2C,EAAM24L,WAAyB34L,EAAMg3L,aACtCztO,EAAa79B,WACb69B,EAEgB,UAAnBy2C,EAAM24L,UACP5B,EAAgB/2L,EAAMszC,OAAQtzC,EAAMg3L,cACpCh3L,EAAMm4L,KAAKjyQ,OAAO,GAAGykB,MAC/B,C,4EC1PO,MAAMivP,GAAoB,CAC7B3iK,QAAS,MAAYA,QACrBE,SAAU,MAAYA,SACtBC,SAAU,MAAYA,SACtBR,MAAO,MAAYA,OAEjBijK,GAAwB90Q,OAAOC,KAAK40Q,IAG7B,IAFuBniK,GAAA,OAAkBoiK,IAEtBpiK,GAAA,OAAkB1yG,OAAOmB,OAAO0zQ,MAYnDE,GAAmBriK,GAAA,IAVrB,GAWEsiK,GAAatiK,GAAA,IAAc,CACpC2lD,OAAQ08G,GACRpzQ,KAAM,GACNxB,MAAO,QAYE80Q,IAVwBviK,GAAA,IAAc,CAC/C77C,WAAYm+M,GACZ/8P,QAAS,QAEgBy6F,GAAA,IAAc,CACvC77C,WAAYm+M,GACZ/8P,QAAS,MACTw7F,UAAW,MACXT,OAAQ,QAEaN,GAAA,IAAaA,GAAA,IAAc,CAChD2lD,OAAQ08G,GACRpzQ,KAAM+wG,GAAA,IAAe,MAAYR,QAAS,MAAYE,SAAU,MAAYC,UAC5ElyG,MAAOuyG,GAAA,MACPA,GAAA,IAAc,CACd2lD,OAAQ08G,GACRpzQ,KAAM+wG,GAAA,IAAe,MAAYb,OACjC1xG,MAAOuyG,GAAA,QAMJ,SAASwiK,GAAkB78G,EAAQ12J,EAAMwzQ,GAC5C,OAAQxzQ,GACJ,KAAK,MAAYuwG,QACjB,KAAK,MAAYE,SACjB,KAAK,MAAYC,SACb,MAAO,CACHgmD,SACA12J,OACAxB,MAAOg1Q,GAEf,KAAK,MAAYtjK,MACb,MAAO,CACHwmD,SACA12J,OACAxB,MAAiB,KAAVg1Q,GAEf,QACI3+P,QAAQC,KAAK,yDAAyD9U,KAE9E,MAAM,IAAI6D,MAAM,uCAAuC7D,IAC3D,CAxBoC+wG,GAAA,IAAc,CAC9C38C,UAAWk/M,GACXh9P,QAAS,QA4Bb,MAAMm9P,GAAqB,CACvB,CAAE/yQ,KAAM,SAAUV,KAAM,WACxB,CAAEU,KAAM,aAAcV,KAAM,UAMzB,SAAS0zQ,GAAsBriK,EAAQn8C,GAC1C,OAAO,EAAAyrC,GAAA,GAAoB8yK,GAAoB,CAACpiK,EAAQn8C,GAC5D,CAcO,SAASy+M,GAAiBv/M,GAC7B,OAAO,SAdJ,SAA2BA,GAC9B,OAAQA,EAAUp0D,MACd,KAAK,MAAYuwG,QACjB,KAAK,MAAYE,SACjB,KAAK,MAAYC,SACb,OAAOt8C,EAAU51D,MACrB,KAAK,MAAY0xG,MACb,OAAO97C,EAAU51D,MAAQ,GAAK,GAE1C,CAKyBo1Q,CAAkBx/M,GAC3C,CCxGO,MAAMy/M,GAAe,CACxB,CACI7zQ,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,aACNyhE,QAAS,CACL,CACIzhE,KAAM,GACNw5J,aAAc,iBACdl6J,KAAM,QACNQ,WAAY,CACR,CAAEE,KAAM,YAAaw5J,aAAc,UAAWl6J,KAAM,WACpD,CAAEU,KAAM,YAAaw5J,aAAc,UAAWl6J,KAAM,cAIhEkiE,gBAAiB,SAMZ,GAA2B,CACpC,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CACIvhE,KAAM,UACNw5J,aAAc,0BACdl6J,KAAM,QACNQ,WAAY,CACR,CAAEE,KAAM,eAAgBw5J,aAAc,UAAWl6J,KAAM,WACvD,CACIU,KAAM,oBACNw5J,aAAc,UACdl6J,KAAM,WAEV,CAAEU,KAAM,eAAgBw5J,aAAc,SAAUl6J,KAAM,UACtD,CAAEU,KAAM,gBAAiBw5J,aAAc,QAASl6J,KAAM,YAIlEU,KAAM,yBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,eACNyhE,QAAS,CACL,CAAEzhE,KAAM,SAAUw5J,aAAc,SAAUl6J,KAAM,UAChD,CAAEU,KAAM,OAAQw5J,aAAc,SAAUl6J,KAAM,UAC9C,CAAEU,KAAM,UAAWw5J,aAAc,SAAUl6J,KAAM,UACjD,CAAEU,KAAM,UAAWw5J,aAAc,UAAWl6J,KAAM,WAClD,CAAEU,KAAM,oBAAqBw5J,aAAc,UAAWl6J,KAAM,WAC5D,CAAEU,KAAM,OAAQw5J,aAAc,UAAWl6J,KAAM,WAC/C,CAAEU,KAAM,aAAcw5J,aAAc,YAAal6J,KAAM,cAE3DkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CAAC,CAAEvhE,KAAM,UAAWw5J,aAAc,UAAWl6J,KAAM,YAC3DU,KAAM,gCACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,UAAWl6J,KAAM,YACrDkiE,gBAAiB,QAErB,CACIliE,KAAM,WACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CAAEU,KAAM,UAAWw5J,aAAc,UAAWl6J,KAAM,WAClD,CACIU,KAAM,QACNw5J,aAAc,wBACdl6J,KAAM,QACNQ,WAAY,CACR,CAAEE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CACIU,KAAM,UACNw5J,aAAc,0BACdl6J,KAAM,QACNQ,WAAY,CACR,CACIE,KAAM,eACNw5J,aAAc,UACdl6J,KAAM,WAEV,CACIU,KAAM,oBACNw5J,aAAc,UACdl6J,KAAM,WAEV,CAAEU,KAAM,eAAgBw5J,aAAc,SAAUl6J,KAAM,UACtD,CAAEU,KAAM,gBAAiBw5J,aAAc,QAASl6J,KAAM,WAG9D,CAAEU,KAAM,mBAAoBw5J,aAAc,QAASl6J,KAAM,SACzD,CAAEU,KAAM,mBAAoBw5J,aAAc,QAASl6J,KAAM,YAIrEU,KAAM,qBACNyhE,QAAS,CAAC,CAAEzhE,KAAM,GAAIw5J,aAAc,OAAQl6J,KAAM,SAClDkiE,gBAAiB,cAErB,CACIliE,KAAM,WACNiiE,OAAQ,GACRvhE,KAAM,mCACNyhE,QAAS,GACTD,gBAAiB,cAErB,CAAEliE,KAAM,QAASsmP,WAAW,EAAOrkL,OAAQ,GAAIvhE,KAAM,uBACrD,CACIV,KAAM,QACNsmP,WAAW,EACXrkL,OAAQ,CACJ,CACIvhE,KAAM,UACNw5J,aAAc,SACdl6J,KAAM,SACN62E,SAAS,IAGjBn2E,KAAM,eAEV,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,yBACnC,CACIV,KAAM,QACNiiE,OAAQ,CACJ,CACIvhE,KAAM,uBACNw5J,aAAc,UACdl6J,KAAM,WAEV,CAAEU,KAAM,qBAAsBw5J,aAAc,UAAWl6J,KAAM,YAEjEU,KAAM,8BAEV,CACIV,KAAM,QACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CAAEU,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CAAEU,KAAM,YAAaw5J,aAAc,QAASl6J,KAAM,UAEtDU,KAAM,2BAEV,CAAEV,KAAM,QAASiiE,OAAQ,GAAIvhE,KAAM,mBACnC,CACIV,KAAM,QACNiiE,OAAQ,CACJ,CAAEvhE,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,WACjD,CAAEU,KAAM,SAAUw5J,aAAc,UAAWl6J,KAAM,YAErDU,KAAM,8B,4BCxIP,SAAS,GAAaozQ,GACzB,MAAMn6J,EAmHV,WACI,IAAKo6J,GAAa,CACdA,GAAc,GACd,MAAMC,EAAcC,GAAe,OACnC,IAAK,IAAI12Q,EAAI,EAAGA,EAAIy2Q,EAAYl3Q,OAAQS,IACpCw2Q,GAAYC,EAAYz2Q,GAAGmnF,WAAW,IAAMnnF,EAEhDw2Q,GAAY,IAAIrvL,WAAW,IAAMsvL,EAAY3qQ,QAAQ,KACrD0qQ,GAAY,IAAIrvL,WAAW,IAAMsvL,EAAY3qQ,QAAQ,IACzD,CACA,OAAO0qQ,EACX,CA9HkBG,GAEd,IAAIzqN,EAAyB,EAAnBqqN,EAAUh3Q,OAAc,EACK,KAAnCg3Q,EAAUA,EAAUh3Q,OAAS,GAC7B2sD,GAAM,EACkC,KAAnCqqN,EAAUA,EAAUh3Q,OAAS,KAClC2sD,GAAM,GACV,IAEAnlD,EAFI3F,EAAQ,IAAIyL,WAAWq/C,GAAK0qN,EAAU,EAC1CC,EAAW,EAEXrlP,EAAI,EACJ,IAAK,IAAIxxB,EAAI,EAAGA,EAAIu2Q,EAAUh3Q,OAAQS,IAAK,CAEvC,GADA+G,EAAIq1G,EAAMm6J,EAAUpvL,WAAWnnF,SACrB2K,IAAN5D,EACA,OAAQwvQ,EAAUv2Q,IAEd,IAAK,IACD62Q,EAAW,EACf,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,IACD,SACJ,QACI,MAAMvwQ,MAAM,yBAGxB,OAAQuwQ,GACJ,KAAK,EACDrlP,EAAIzqB,EACJ8vQ,EAAW,EACX,MACJ,KAAK,EACDz1Q,EAAMw1Q,KAAcplP,GAAK,GAAW,GAAJzqB,IAAW,EAC3CyqB,EAAIzqB,EACJ8vQ,EAAW,EACX,MACJ,KAAK,EACDz1Q,EAAMw1Q,MAAmB,GAAJplP,IAAW,GAAW,GAAJzqB,IAAW,EAClDyqB,EAAIzqB,EACJ8vQ,EAAW,EACX,MACJ,KAAK,EACDz1Q,EAAMw1Q,MAAmB,EAAJplP,IAAU,EAAKzqB,EACpC8vQ,EAAW,EAGvB,CACA,GAAgB,GAAZA,EACA,MAAMvwQ,MAAM,yBAChB,OAAOlF,EAAMkrB,SAAS,EAAGsqP,EAC7B,CAWO,SAAS,GAAax1Q,EAAO6I,EAAW,OAC3C,MAAMmyG,EAAQs6J,GAAezsQ,GACvBilE,EAAkB,OAAZjlE,EACZ,IACAlD,EADIo3G,EAAS,GAAI04J,EAAW,EAE5BrlP,EAAI,EACJ,IAAK,IAAIxxB,EAAI,EAAGA,EAAIoB,EAAM7B,OAAQS,IAE9B,OADA+G,EAAI3F,EAAMpB,GACF62Q,GACJ,KAAK,EACD14J,GAAU/B,EAAMr1G,GAAK,GACrByqB,GAAS,EAAJzqB,IAAU,EACf8vQ,EAAW,EACX,MACJ,KAAK,EACD14J,GAAU/B,EAAM5qF,EAAKzqB,GAAK,GAC1ByqB,GAAS,GAAJzqB,IAAW,EAChB8vQ,EAAW,EACX,MACJ,KAAK,EACD14J,GAAU/B,EAAM5qF,EAAKzqB,GAAK,GAC1Bo3G,GAAU/B,EAAU,GAAJr1G,GAChB8vQ,EAAW,EAavB,OARIA,IACA14J,GAAU/B,EAAM5qF,GACZ09C,IACAivC,GAAU,IACM,GAAZ04J,IACA14J,GAAU,OAGfA,CACX,CAEA,IAAI24J,GACAC,GAEAP,GACJ,SAASE,GAAezsQ,GAMpB,OALK6sQ,KACDA,GACI,mEAAmElzQ,MAAM,IAC7EmzQ,GAAiBD,GAAevzQ,MAAM,GAAI,GAAG7D,OAAO,IAAK,MAE1C,OAAZuK,EAEC8sQ,GACFD,EACV,CC/FO,SAASE,GAAeC,GAC3B,IAAIC,GAAU,EACd,MAAMnwQ,EAAI,GACV,IAAK,IAAI/G,EAAI,EAAGA,EAAIi3Q,EAAU13Q,OAAQS,IAAK,CACvC,IAAIsc,EAAI26P,EAAUn0L,OAAO9iF,GACzB,OAAQsc,GACJ,IAAK,IACD46P,GAAU,EACV,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACDnwQ,EAAExE,KAAK+Z,GACP46P,GAAU,EACV,MACJ,QACQA,IACAA,GAAU,EACV56P,EAAIA,EAAEymE,eAEVh8E,EAAExE,KAAK+Z,GAGnB,CACA,OAAOvV,EAAE8M,KAAK,GAClB,CAKA,MAAMsjQ,GAA2B,IAAIh1O,IAAI,CAErC,cACA,WACA,SACA,YAOG,SAASi1O,GAAmBj0Q,GAC/B,OAAOg0Q,GAAyBlyQ,IAAI9B,GAAQA,EAAO,IAAMA,CAC7D,CC7EO,SAASk0Q,GAAiB5jQ,GAC7B,IAAK,MAAM8I,KAAK9I,EAAQsoE,MACf+3L,EAAoBv3P,EAAG,cACxBA,EAAE+6P,SAAWN,GAAez6P,EAAEpZ,OAGtCsQ,EAAQ8jQ,WAAWv2Q,QAAQq2Q,GAC/B,CCRO,SAAUG,GAAYtkN,GACzB,OAAQA,EAAK1K,MACT,IAAK,OACD,IAAK,MAAM/0C,KAAWy/C,EAAK1nB,eACjB/3B,QACC+jQ,GAAY/jQ,SAEhBy/C,EAAKtH,YACLsH,EAAKrR,eACLqR,EAAKihG,WACZ,MACJ,IAAK,UACD,IAAK,MAAM1gJ,KAAWy/C,EAAKukN,qBACjBhkQ,QACC+jQ,GAAY/jQ,SAEhBy/C,EAAKwkN,kBACLxkN,EAAKykN,iBAGxB,CCQO,SAASC,MAAsBtkQ,GAClC,MAAMukQ,EAsDV,WACI,MAAM9pN,EAAQ,IAAItiC,IACZqsP,EAAY,IAAIrsP,IAChBssP,EAAQ,IAAItsP,IAClB,MAAO,CACH+8B,KAAM,WACNuF,QACA+pN,YACA,CAAC/mQ,OAAO0J,UAAS,IACNszC,EAAM9rD,SAEjB,SAAI81Q,GACA,OAAOA,EAAM91Q,QACjB,EACA,OAAA+1Q,CAAQrD,EAAMsD,EAAWC,GAErB,GADAH,EAAM1yQ,IAAIsvQ,EAAKlpK,MAAMtoG,KAAMwxQ,IACtBsD,EACD,IAAK,MAAMx1Q,KAAQ+0Q,GAAY7C,GAC3Bz1Q,KAAKy1B,IAAIlyB,GAGjB,GAAIy1Q,EACA,IAAK,MAAM37P,KAAKo4P,EAAKl0E,aACjBvhM,KAAK84Q,QAAQz7P,EAAG07P,EAAWC,EAGvC,EACA,GAAAvjP,CAAIu+B,GACA,GAAiB,aAAbA,EAAK1K,KAAqB,CAC1B,IAAI2vN,EAAcL,EAAU5yQ,IAAIguD,EAAKklN,SAASvI,UACzCsI,GACDL,EAAUzyQ,IAAI6tD,EAAKklN,SAASvI,SAE3BsI,EAAc,IAAI1sP,KAEvB0sP,EAAY9yQ,IAAI6tD,EAAKxsC,OAAQwsC,EACjC,CACAnF,EAAM1oD,IAAI6tD,EAAK28M,SAAU38M,EAC7B,EACAhuD,IAAI2qQ,GACO9hN,EAAM7oD,IAAI2qQ,GAErBwI,QAAQC,GACGP,EAAM7yQ,IAAIozQ,GAErB,UAAA/nN,CAAWs/M,GACP,MAAMzhP,EAAI2/B,EAAM7oD,IAAI2qQ,GACpB,MAAyD,YAAjDzhP,aAA6B,EAASA,EAAEo6B,MAAqBp6B,OAAIzjB,CAC7E,EACA,OAAA4tQ,CAAQ1I,GACJ,MAAMzhP,EAAI2/B,EAAM7oD,IAAI2qQ,GACpB,MAAyD,SAAjDzhP,aAA6B,EAASA,EAAEo6B,MAAkBp6B,OAAIzjB,CAC1E,EACA,YAAA6tQ,CAAa3I,GACT,MAAMzhP,EAAI2/B,EAAM7oD,IAAI2qQ,GACpB,MAAyD,cAAjDzhP,aAA6B,EAASA,EAAEo6B,MAAuBp6B,OAAIzjB,CAC/E,EACA,eAAA8tQ,CAAgBL,EAAUtsJ,GACtB,IAAIjwG,EACJ,OAAmD,QAA3CA,EAAKi8P,EAAU5yQ,IAAIkzQ,EAASvI,iBAA8B,IAAPh0P,OAAgB,EAASA,EAAG3W,IAAI4mH,EAC/F,EACA,UAAAm5B,CAAW4qH,GACP,MAAMzhP,EAAI2/B,EAAM7oD,IAAI2qQ,GACpB,MAAyD,YAAjDzhP,aAA6B,EAASA,EAAEo6B,MAAqBp6B,OAAIzjB,CAC7E,EAER,CAxHqB+tQ,GACjB,IAAKplQ,EAAK/T,OACN,OAAOs4Q,EAEX,GAAI,cAAevkQ,EAAK,IACC,qCAArBA,EAAK,GAAGs8P,UAAkD,CAC1D,IAAK,MAAM+E,KAAQrhQ,EAAK,GAAGqhQ,KACvBqD,GAAQrD,EAAMkD,GAElB,OAAOA,CACX,CACA,GAAI,cAAevkQ,EAAK,GAAI,CACxB,MAAMqiC,EAAQriC,EAAK,GACbY,EAAUZ,EAAK,GACf0vD,EAAO,IAAI7gC,IACjB,SAASw2O,EAAYhE,GACjB,MAAMv4L,EAAO,GACb,IAAK,MAAMw8L,KAAiBjE,EAAKl6D,WAAY,CACzC,GAAuC9vM,MAAnCktQ,EAASQ,QAAQO,GACjB,SAEJ,GAAI51M,EAAK/9D,IAAI2zQ,GACT,SAEJ,MAAMC,EAAM3kQ,EAAQ0kQ,GACpB,IAAKC,EACD,MAAM,IAAIvyQ,MAAM,qBAAqBsyQ,kBAA8BjE,EAAKxxQ,QAExE,SAAU01Q,EACVhB,EAASG,QAAQa,GAAK,GAAO,IAG7B71M,EAAKruC,IAAIkkP,EAAI11Q,MACbi5E,EAAK75E,KAAKs2Q,GAElB,CACA,OAAOz8L,EAAK18E,UAAU08E,EAAKx7E,IAAI+3Q,GACnC,CACA,IAAK,MAAMhE,IAAQ,CAACh/N,KAAUgjO,EAAYhjO,IAAQ5vC,UAC9CiyQ,GAAQrD,EAAMkD,EAEtB,MAEI,IAAK,MAAMiB,KAAWxlQ,EAClB,IAAK,MAAMqhQ,KAAQmE,EAAQf,MACvBF,EAASG,QAAQrD,GAI7B,OAAOkD,CACX,CA8FA,MAqCMkB,GAAkB,CAEpB,IAAK,CACDC,cAAe,EACfC,SAAU,EACVC,sBAAuB,EACvBC,eAAgB,EAChBC,gBAAiB,EACjBC,WAAY,EACZC,mBAAoB,EACpBC,wBAAyB,GAG7B,IAAK,CACDP,cAAe,EACfC,SAAU,EACVC,sBAAuB,EACvBC,eAAgB,EAChBC,gBAAiB,EACjBC,WAAY,EACZC,mBAAoB,EACpBC,wBAAyB,GAG7B,IAAM,CACFP,cAAe,EACfC,SAAU,EACVC,sBAAuB,EACvBC,eAAgB,EAChBC,gBAAiB,EACjBC,WAAY,EACZC,mBAAoB,EACpBC,wBAAyB,GAG7B,KAAM,CACFP,cAAe,EACfC,SAAU,EACVC,sBAAuB,EACvBC,eAAgB,EAChBC,gBAAiB,EACjBC,WAAY,EACZC,mBAAoB,EACpBC,wBAAyB,IAMjC,SAASvB,GAAQvsK,EAAO+tK,GACpB,IAAI39P,EAAIC,EACR,MAAM64P,EAAO,CACTnsN,KAAM,OACNijD,QACAguK,WAA+F,QAAlF39P,EAA8B,QAAxBD,EAAK4vF,EAAM3mG,eAA4B,IAAP+W,OAAgB,EAASA,EAAG49P,kBAA+B,IAAP39P,GAAgBA,EACvH84P,QAAS8E,GAAejuK,GACxBtoG,KAAMsoG,EAAMtoG,KAAK2rB,QAAQ,WAAY,IACrC2xK,aAAck5E,GAAqBluK,EAAO+tK,GAC1C5tN,MAAO,GACPpgB,SAAU,GACV2oH,WAAY,GACZtyG,SAAU,GACVp6C,SAAQ,IAEG,QAAQgkG,EAAMtoG,QAGvBy2Q,EAAkB,IAAInuP,IACtBouP,EAAa,CACf30Q,IAAI2qQ,GACO+J,EAAgB10Q,IAAI2qQ,GAE/B,GAAAl7O,CAAIu+B,GACA,IAAIr3C,EACJgB,IAAwF,KAAlD,QAA7BhB,EAAKq3C,EAAKu4C,MAAM3mG,eAA4B,IAAP+W,OAAgB,EAASA,EAAGi+P,WAC1EF,EAAgBv0Q,IAAI6tD,EAAK28M,SAAU38M,EACvC,GAEJ,IAAK,MAAM6mN,KAAatuK,EAAMwtK,SAC1Be,GAAQD,EAAWpF,OAAMhqQ,EAAW6uQ,GAExC,IAAK,MAAMS,KAAgBxuK,EAAMyuK,YAC7BC,GAAWF,EAActF,OAAMhqQ,EAAW6uQ,EAAKK,GAEnD,IAAK,MAAMO,KAAgB3uK,EAAM3sC,QAC7Bu7M,GAAWD,EAAczF,EAAM6E,GAEnCc,GAAc3F,EAAM6E,GACpB,IAAK,MAAMM,KAAYF,EAAgB33Q,SAEnCs4Q,GAAUT,EAAUN,EAAKK,GAE7B,IAAK,MAAMpmQ,KAAWkhQ,EAAKnpO,SACvB+uO,GAAU9mQ,EAAS+lQ,EAAKK,GACxBS,GAAc7mQ,EAAS+lQ,GAE3BA,EAAIxB,QAAQrD,GAAM,EACtB,CAMA,SAAS2F,GAAcpnN,EAAMsmN,GACzB,OAAQtmN,EAAK1K,MACT,IAAK,OACD,IAAK,MAAMijD,KAASv4C,EAAKu4C,MAAM+uK,UAAW,CACtC,MAAM/sF,EAAMgtF,GAAShvK,EAAOv4C,EAAMsmN,GAClCtmN,EAAKihG,WAAW5xJ,KAAKkrL,GACrB+rF,EAAI7kP,IAAI84J,EACZ,CACA,MACJ,IAAK,UACD,IAAK,MAAMhiF,KAASv4C,EAAKu4C,MAAM+uK,UAAW,CACtC,MAAM/sF,EAAMgtF,GAAShvK,EAAOv4C,EAAMsmN,GAClCtmN,EAAKykN,iBAAiBp1Q,KAAKkrL,GAC3B+rF,EAAI7kP,IAAI84J,EACZ,CACA,IAAK,MAAMh6K,KAAWy/C,EAAKukN,eACvB6C,GAAc7mQ,EAAS+lQ,GAIvC,CAKA,SAASe,GAAU9mQ,EAAS+lQ,EAAKK,GAC7B,MAAMa,EAAYjnQ,EAAQg4F,MAAMkvK,UAAU/5Q,IAAK6qG,GAqLnD,SAAkBA,EAAO/hE,GACrB,MAAO,CACH8e,KAAM,QACNijD,QACAguK,YAAY,EACZ/vO,SACAhiB,OAAQ,GACRvkB,KAAMsoG,EAAMtoG,KACZywQ,UAAWwD,GAAmBJ,GAAevrK,EAAMtoG,OACnD,QAAAsE,GACI,MAAO,SAASiiC,EAAOmmO,YAAY3wQ,KAAKiE,MAC5C,EAER,CAlM6Dy3Q,CAASnvK,EAAOh4F,IACnEonQ,EAAa,IAAI14O,IACvB,IAAK,MAAMspE,KAASh4F,EAAQg4F,MAAM1vB,MAAO,CACrC,MAAM43L,EAAQmH,GAAUrvK,EAAOivK,GACzB3+L,EAAQ0+L,GAAShvK,EAAOh4F,EAAS+lQ,EAAK7F,EAAOkG,GACnDpmQ,EAAQiU,OAAOnlB,KAAKw5E,GACpBtoE,EAAQsoE,MAAMA,EAAM63L,WAAa73L,OACnBpxE,IAAVgpQ,EACAlgQ,EAAQu7C,QAAQzsD,KAAKw5E,IAGrB43L,EAAMjsP,OAAOnlB,KAAKw5E,GACb8+L,EAAW51Q,IAAI0uQ,KAChBkH,EAAWlmP,IAAIg/O,GACflgQ,EAAQu7C,QAAQzsD,KAAKoxQ,IAGjC,CACA,IAAK,MAAMA,KAAS+G,EAAU/9N,OAAQ10C,GAAM4yQ,EAAW51Q,IAAIgD,IACvDwL,EAAQsnQ,OAAOx4Q,KAAKoxQ,GAExB,IAAK,MAAMpqO,KAAS91B,EAAQgkQ,eACxB8C,GAAUhxO,EAAOiwO,EAAKK,EAE9B,CAKA,SAASG,GAAQvuK,EAAOkpK,EAAMjrO,EAAQ8vO,GAClC,IAAI39P,EAAIC,EAAIC,EAAIC,EAAIC,EACpB,MAAM++P,EAyUV,SAA8BC,EAAUh5Q,GACpC,MAAMm1H,IAoBgB8jJ,EApBUD,GAqBlB/rK,UAAU,EAAG,GAAKgsK,EAAMhsK,UAAU,GAAGpgF,QAAQ,SAAWxS,GAAM,IAAMA,IAAI7b,cArB1C,IAoBhD,IAA0By6Q,EAnBtB,IAAK,MAAMj6Q,KAASgB,EAAQ,CACxB,IAAKhB,EAAMkC,KAAK1C,cAAciD,WAAW0zH,GACrC,OAEJ,MAAM+jJ,EAAYl6Q,EAAMkC,KAAK+rG,UAAUkoB,EAAO73H,QAC9C,GAAwB,GAApB47Q,EAAU57Q,OACV,OAEJ,GAAI,MAAM6F,KAAK+1Q,GAEX,MAER,CACA,OAAO/jJ,CACX,CAzVyBgkJ,CAAqB3vK,EAAMtoG,KAAMsoG,EAAMxqG,OACtDiyD,EAAO,CACT1K,KAAM,OACNijD,QACAguK,WAA+F,QAAlF39P,EAA8B,QAAxBD,EAAK4vF,EAAM3mG,eAA4B,IAAP+W,OAAgB,EAASA,EAAG49P,kBAA+B,IAAP39P,GAAgBA,EACvH64P,OACAjrO,SACA2xO,MAAM,EACNl4Q,KAAMsoG,EAAMtoG,KACZ0sQ,SAAUyL,GAAa7vK,EAAO/hE,EAAQirO,GACtC1zQ,MAAO,CAAC,EACRgB,OAAQ,GACR+4Q,eACA,QAAAvzQ,GACI,MAAO,QAAQvI,KAAK2wQ,UACxB,GAEJ38M,EAAKmoN,KA6cT,SAAoBnoN,GAChB,IAAIr3C,EACJ,OAroBS,GAsoBL0/P,GAAe,WAAY,CACvB9vK,MAAOv4C,EAAKu4C,MACZ/hE,OAA+B,QAAtB7tB,EAAKq3C,EAAKxpB,cAA2B,IAAP7tB,EAAgBA,EAAKq3C,EAAKyhN,MAE7E,CApdgB6G,CAAWtoN,GACvBsmN,EAAI7kP,IAAIu+B,GACR,IAAK,MAAM1hC,KAAKi6E,EAAMxqG,MAAO,CACzB,MAAMkC,EAAOquB,EAAEruB,KACf+vD,EAAKjxD,OAAOM,KAEX2wD,EAAKjyD,MAAMuwB,EAAE9K,QAAU,CACpB8hC,KAAM,aACNijD,MAAOj6E,EACPioP,WAA2F,QAA9Ez9P,EAA0B,QAApBD,EAAKyV,EAAE1sB,eAA4B,IAAPiX,OAAgB,EAASA,EAAG09P,kBAA+B,IAAPz9P,GAAgBA,EACnH0tB,OAAQwpB,EACR/vD,OACAywQ,UAAWwD,GAAmCzsQ,MAAhBqwQ,EACxB73Q,EACAA,EAAK+rG,UAAU8rK,EAAaz7Q,SAClCmnB,OAAQ8K,EAAE9K,OACVjf,SAAQ,IACG,cAAcyrD,EAAK28M,YAAY1sQ,KAGlD,EAC+E,QAA7E8Y,EAAKytB,aAAuC,EAASA,EAAOguO,mBAAgC,IAAPz7P,EAAgBA,EAAK04P,EAAK/oN,OAAOrpD,KAAK2wD,EACjI,CAKA,SAASinN,GAAW1uK,EAAOkpK,EAAMjrO,EAAQ8vO,EAAKK,GAC1C,IAAIh+P,EAAIC,EAAIC,EAAIC,EAChB,MAAMk3C,EAAO,CACT1K,KAAM,UACNijD,QACAguK,WAA+F,QAAlF39P,EAA8B,QAAxBD,EAAK4vF,EAAM3mG,eAA4B,IAAP+W,OAAgB,EAASA,EAAG49P,kBAA+B,IAAP39P,GAAgBA,EACvH64P,OACAjrO,SACAvmC,KAAMsoG,EAAMtoG,KACZ0sQ,SAAUyL,GAAa7vK,EAAO/hE,EAAQirO,GACtCjtP,OAAQ,GACRq0D,MAAO,CAAC,EACRg/L,OAAQ,GACR/rN,QAAS,GACT0oN,YAAa,GACbD,eAAgB,GAChBE,iBAAkB,GAClB,QAAAlwQ,GACI,MAAO,WAAWvI,KAAK2wQ,UAC3B,IAE4E,KAAlD,QAAxB9zP,EAAK0vF,EAAM3mG,eAA4B,IAAPiX,OAAgB,EAASA,EAAG+9P,UAC9DD,EAAWllP,IAAIu+B,KAGmE,QAAhFl3C,EAAK0tB,aAAuC,EAASA,EAAO+tO,sBAAmC,IAAPz7P,EAAgBA,EAAK24P,EAAKnpO,UAAUjpC,KAAK2wD,GACnIsmN,EAAI7kP,IAAIu+B,IAEZ,IAAK,MAAM6mN,KAAatuK,EAAMwtK,SAC1Be,GAAQD,EAAWpF,EAAMzhN,EAAMsmN,GAEnC,IAAK,MAAMS,KAAgBxuK,EAAM8rK,WAC7B4C,GAAWF,EAActF,EAAMzhN,EAAMsmN,EAAKK,EAElD,CAKA,SAASQ,GAAW5uK,EAAOkpK,EAAM6E,GAC7B,IAAI39P,EAAIC,EACR,MAAMo3C,EAAO,CACT1K,KAAM,UACNijD,QACAguK,WAA+F,QAAlF39P,EAA8B,QAAxBD,EAAK4vF,EAAM3mG,eAA4B,IAAP+W,OAAgB,EAASA,EAAG49P,kBAA+B,IAAP39P,GAAgBA,EACvH64P,OACAxxQ,KAAMsoG,EAAMtoG,KACZ0sQ,SAAUyL,GAAa7vK,OAAO9gG,EAAWgqQ,GACzC71G,QAAS,GACTn/I,OAAQ,CAAC,EACT,QAAAlY,GACI,MAAO,WAAWvI,KAAK2wQ,UAC3B,GAEJ8E,EAAK9yN,SAASt/C,KAAK2wD,GACnBsmN,EAAI7kP,IAAIu+B,GACR,IAAK,MAAMuoN,KAAehwK,EAAM9rF,OAAQ,CACpC,MAAMA,EAAS+7P,GAAUD,EAAavoN,EAAMsmN,GAC5CtmN,EAAK4rG,QAAQv8J,KAAKod,GAClBuzC,EAAKvzC,OAAOA,EAAOi0P,WAAaj0P,CACpC,CACJ,CAIA,SAAS+7P,GAAUjwK,EAAO/hE,EAAQ8vO,GAC9B,IAAI39P,EAAIC,EAAIC,EAAIC,EAChB,IAAI2/P,EAEAA,EADAlwK,EAAMmwK,iBAAmBnwK,EAAMowK,gBAClB,iBAERpwK,EAAMmwK,gBACE,mBAERnwK,EAAMowK,gBACE,mBAGA,QAEjB,MAAMlmO,EAAQ6jO,EAAIjpN,WAAWurN,GAAerwK,EAAMswK,YAC5CzzN,EAASkxN,EAAIjpN,WAAWurN,GAAerwK,EAAMuwK,aACnDn/P,GAAO84B,EAAO,6CAA6C81D,EAAMswK,uBACjEl/P,GAAOyrC,EAAQ,8CAA8CmjD,EAAMswK,uBACnE,MAAM54Q,EAAOsoG,EAAMtoG,KACnB,MAAO,CACHqlD,KAAM,MACNijD,QACAguK,WAA+F,QAAlF39P,EAA8B,QAAxBD,EAAK4vF,EAAM3mG,eAA4B,IAAP+W,OAAgB,EAASA,EAAG49P,kBAA+B,IAAP39P,GAAgBA,EACvH4tB,SACAvmC,OACAywQ,UAAWwD,GAAmBj0Q,EAAK5D,OAC7B63Q,GAAmBj0Q,EAAK,GAAG1C,cAAgB0C,EAAK+rG,UAAU,IAC1D/rG,GACNw4Q,aACAhmO,QACA2S,SACA2zN,YAAsG,QAAxFjgQ,EAA8B,QAAxBD,EAAK0vF,EAAM3mG,eAA4B,IAAPiX,OAAgB,EAASA,EAAGmgQ,wBAAqC,IAAPlgQ,EAAgBA,EA9T1G,EA+TpBvU,SAAQ,IACG,OAAOiiC,EAAOmmO,YAAY1sQ,IAG7C,CAkBA,SAASs3Q,GAAShvK,EAAO0wK,EAAc3C,EAAK7F,EAAOkG,GAC/C,IAAIh+P,EAAIC,EAAIC,EACZ,MAAMqgQ,OAA6BzxQ,IAAfkvQ,EACd99L,EAAQ,CACVvzB,KAAM,QACNijD,QACAguK,WAA+F,QAAlF39P,EAA8B,QAAxBD,EAAK4vF,EAAM3mG,eAA4B,IAAP+W,OAAgB,EAASA,EAAG49P,kBAA+B,IAAP39P,GAAgBA,EACvH3Y,KAAMsoG,EAAMtoG,KACZujB,OAAQ+kF,EAAM/kF,OACd2oG,YAAQ1kH,EACR8I,aAAS9I,EACTupQ,UAAMvpQ,EACNkqQ,SAAUwH,GAAiB5wK,EAAOkoK,EAAOyI,EAAaD,GACtDlI,cAAUtpQ,EACV0pQ,aAAS1pQ,EACTypQ,YAAQzpQ,EACR2xQ,uBAAmB3xQ,EACnB6pG,YAAQ7pG,EACRooQ,cAAc,EACd/zM,qBAAiBr0D,GAErB,GAAIyxQ,EAAa,CAEb,MAAMzH,EAA4B,QAArBwH,EAAa3zN,KAAiB2zN,EAAeA,EAAaxH,KACjEjrO,EAA8B,QAArByyO,EAAa3zN,UAAiB79C,EAAYwxQ,EACnDtM,EAAWyL,GAAa7vK,EAAO/hE,EAAQirO,GAC7C54L,EAAMvzB,KAAO,YACbuzB,EAAM44L,KAAOA,EACb54L,EAAMryC,OAASA,EACfqyC,EAAM43L,WAAQhpQ,EACdoxE,EAAM8zL,SAAWA,EACjB9zL,EAAMu7L,SAAW,IAAIzH,KACrB9zL,EAAMt0E,SAAW,IAAM,aAAaooQ,IACpC,MAAMuI,EAAWoB,EAAIjpN,WAAWurN,GAAerwK,EAAM2sK,WACrDv7P,GAAOu7P,EAAU,0CAA0C3sK,EAAM2sK,sBACjEr8L,EAAMq8L,SAAWA,CACrB,KACK,CAED,MAAM1uO,EAASyyO,EACft/P,GAAsB,WAAf6sB,EAAO8e,MACduzB,EAAMryC,OAASA,EACfqyC,EAAM43L,MAAQA,EACd53L,EAAM63L,UAAYD,EACZqD,GAAevrK,EAAMtoG,MACrBi0Q,GAAmBJ,GAAevrK,EAAMtoG,OAC9C44E,EAAMu7L,SAAW7rK,EAAM6rK,SACvBv7L,EAAMt0E,SAAW,IAAM,SAASiiC,EAAOmmO,YAAYpkK,EAAMtoG,MAC7D,CACA,MAAMgoC,EAAQsgE,EAAMtgE,MACd1oC,EAAOgpG,EAAMhpG,KACb85Q,EAAkC,QAAxBxgQ,EAAK0vF,EAAM3mG,eAA4B,IAAPiX,OAAgB,EAASA,EAAGwgQ,OAC5E,GA/YmB,IA+YfpxO,EAA0B,CAE1B,MAAM2uO,EAvZO,IAuZIr3Q,EACXo3Q,aAA+C,EAASA,EAAW30Q,IAAI42Q,GAAerwK,EAAMokK,gBAC5FllQ,EACN,GAAImvQ,EAAU,CAEV/9L,EAAM24L,UAAY,MAClB,MAAM,IAAE11Q,EAAG,MAAEiC,GA6OzB,SAA4B64Q,GACxB,MAAM96Q,EAAM86Q,EAASpyP,OAAO82D,KAAMjiE,GAAmB,IAAbA,EAAEmK,QACpCzlB,EAAQ64Q,EAASpyP,OAAO82D,KAAMjiE,GAAmB,IAAbA,EAAEmK,QAS5C,OARA7J,GAAO7d,GACc,UAAjBA,EAAI01Q,WACJ11Q,EAAIqwH,QAAU,EAAW9C,OACzBvtH,EAAIqwH,QAAU,EAAW8jJ,OACzBn0Q,EAAIqwH,QAAU,EAAW6jJ,QACzBjyQ,GACmB,QAAnBA,EAAMyzQ,WACa,OAAnBzzQ,EAAMyzQ,WACH,CAAE11Q,MAAKiC,QAClB,CAzPmCu7Q,CAAmB1C,GAO1C,OANA/9L,EAAMq4L,OAASp1Q,EAAIqwH,OACnBtzC,EAAMs4L,QAAUpzQ,EAAMyzQ,UACtB34L,EAAMtoE,QAAUxS,EAAMwS,QACtBsoE,EAAMugM,mBAAoB,EAC1BvgM,EAAMm4L,KAAOjzQ,EAAMizQ,KACnBn4L,EAAMszC,OAASpuH,EAAMouH,OACdtzC,CACX,CAGA,OADAA,EAAM24L,UAAY,OACVjyQ,GACJ,KAzaS,GA0aT,KA5aO,GA6aHs5E,EAAMk4L,SAAW,UACjBl4L,EAAMtoE,QAAU+lQ,EAAIjpN,WAAWurN,GAAerwK,EAAMokK,WACpDhzP,GAAOk/D,EAAMtoE,SACbsoE,EAAMugM,kBAAoBG,GAAoBhxK,EAAO0wK,GACrD,MACJ,KA5aM,GA6aFpgM,EAAMk4L,SAAW,OACjBl4L,EAAMm4L,KAAOsF,EAAIjB,QAAQuD,GAAerwK,EAAMokK,WAC9ChzP,GAAOk/D,EAAMm4L,MACb,MACJ,QACIn4L,EAAMk4L,SAAW,SACjBl4L,EAAMszC,OAAS5sH,EACfs5E,EAAMg3L,aA9aJ,GA8amBwJ,EAI7B,OADAxgM,EAAMy4B,OAqLd,SAAuB/I,EAAO/hE,GAC1B,GA3mBmB,GA2mBf+hE,EAAMtgE,MACN,OAAO,EAEX,OAAQsgE,EAAMhpG,MACV,KAznBY,EA0nBZ,KApnBW,GAqnBX,KAznBW,GA0nBX,KAxnBa,GA0nBT,OAAO,EAEf,MAAMwF,EAAIwjG,EAAM3mG,QAChB,OAAImD,GAAK6rQ,EAAoB7rQ,EAAG,UAErBA,EAAEusG,OA3mBF,GA8mBP+mK,GAAe,wBAAyB,CACpC9vK,QACA/hE,UAEZ,CA3MuBgzO,CAAcjxK,EAAO0wK,GAC7BpgM,CACX,CAEA,OAAQt5E,GACJ,KAhca,GAicb,KAncW,GAocPs5E,EAAM24L,UAAY,UAClB34L,EAAMtoE,QAAU+lQ,EAAIjpN,WAAWurN,GAAerwK,EAAMokK,WACpDhzP,GAAOk/D,EAAMtoE,QAAS,2CAA2Cg4F,EAAMokK,sBACvE9zL,EAAMugM,kBAAoBG,GAAoBhxK,EAAO0wK,GACrDpgM,EAAM/c,gBAAkB,OACxB,MACJ,KApcU,GAocM,CACZ,MAAM29M,EAAcnD,EAAIjB,QAAQuD,GAAerwK,EAAMokK,WACrDhzP,QAAuBlS,IAAhBgyQ,EAA2B,2CAA2ClxK,EAAMokK,sBACnF9zL,EAAM24L,UAAY,OAClB34L,EAAMm4L,KAAOsF,EAAIjB,QAAQuD,GAAerwK,EAAMokK,WAC9C9zL,EAAM/c,gBAAkB,IACb80M,EAAoBroK,EAAO,gBChoB3C,SAAkCmxK,EAAU37Q,GAC/C,MAAM47Q,EAAYD,EAAS36Q,OAAOu8E,KAAMxqD,GAAMA,EAAE7wB,OAASlC,GACzD,IAAK47Q,EACD,MAAM,IAAIv2Q,MAAM,gBAAgBs2Q,oBAA2B37Q,KAE/D,OAAO47Q,EAAUn2P,MACrB,CD2nBsBo2P,CAAyBH,EAAalxK,EAAMnmE,mBAC5C36B,EAEV,KACJ,CACA,QACIoxE,EAAM24L,UAAY,SAClB34L,EAAMszC,OAAS5sH,EACfs5E,EAAMg3L,aA7cA,GA6cewJ,EACrBxgM,EAAM/c,gBAAkB,IACb80M,EAAoBroK,EAAO,gBC/nB3C,SAAoChpG,EAAMxB,GAC7C,OAAQwB,GACJ,KAAK,EAAWuwQ,OACZ,OAAO/xQ,EACX,KAAK,EAAWsrH,MAAO,CACnB,MAAMx4F,EAsClB,SAAmCywD,GAC/B,MAAMz9E,EAAI,GACJ4uC,EAAQ,CACVrrB,KAAMk6D,EACNloE,EAAG,GACH,IAAArR,GACI,OAAwB,GAApB/L,KAAKorB,KAAK/qB,SAGdL,KAAKod,EAAIpd,KAAKorB,KAAK,GACnBprB,KAAKorB,KAAOprB,KAAKorB,KAAK4kF,UAAU,IACzB,EACX,EACA,IAAAhW,CAAK9gF,GACD,GAAIlZ,KAAKorB,KAAK/qB,QAAU6Y,EAAG,CACvB,MAAMub,EAAIz0B,KAAKorB,KAAK4kF,UAAU,EAAG92F,GAEjC,OADAlZ,KAAKorB,KAAOprB,KAAKorB,KAAK4kF,UAAU92F,GACzBub,CACX,CACA,OAAO,CACX,GAEJ,KAAOgiB,EAAM1qC,QACT,GACS,OADD0qC,EAAMr5B,GAEN,GAAIq5B,EAAM1qC,OACN,OAAQ0qC,EAAMr5B,GACV,IAAK,KACDvV,EAAExE,KAAKozC,EAAMr5B,EAAE6qE,WAAW,IAC1B,MACJ,IAAK,IACDpgF,EAAExE,KAAK,GACP,MACJ,IAAK,IACDwE,EAAExE,KAAK,IACP,MACJ,IAAK,IACDwE,EAAExE,KAAK,IACP,MACJ,IAAK,IACDwE,EAAExE,KAAK,IACP,MACJ,IAAK,IACDwE,EAAExE,KAAK,GACP,MACJ,IAAK,IACDwE,EAAExE,KAAK,IACP,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IAAK,CACN,MAAMktB,EAAIkmB,EAAMr5B,EACV8R,EAAIunB,EAAMujD,KAAK,GACrB,IAAU,IAAN9qE,EACA,OAAO,EAEX,MAAMhW,EAAIrU,SAAS0rB,EAAIrB,EAAG,GAC1B,GAAItqB,OAAOyR,MAAM6C,GACb,OAAO,EAEXrR,EAAExE,KAAK6V,GACP,KACJ,CACA,IAAK,IAAK,CACN,MAAMqX,EAAIkmB,EAAMr5B,EACV8R,EAAIunB,EAAMujD,KAAK,GACrB,IAAU,IAAN9qE,EACA,OAAO,EAEX,MAAMhW,EAAIrU,SAAS0rB,EAAIrB,EAAG,IAC1B,GAAItqB,OAAOyR,MAAM6C,GACb,OAAO,EAEXrR,EAAExE,KAAK6V,GACP,KACJ,CACA,IAAK,IAAK,CACN,MAAMqX,EAAIkmB,EAAMr5B,EACV8R,EAAIunB,EAAMujD,KAAK,GACrB,IAAU,IAAN9qE,EACA,OAAO,EAEX,MAAMhW,EAAIrU,SAAS0rB,EAAIrB,EAAG,IAC1B,GAAItqB,OAAOyR,MAAM6C,GACb,OAAO,EAEX,MAAMpO,EAAQ,IAAI6C,WAAW,GAChB,IAAI0e,SAASvhB,EAAMmG,QAC3BsiQ,SAAS,EAAGr6P,GAAG,GACpBrR,EAAExE,KAAKyH,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,IAC3C,KACJ,CACA,IAAK,IAAK,CACN,MAAMylB,EAAIkmB,EAAMr5B,EACV8R,EAAIunB,EAAMujD,KAAK,GACrB,IAAU,IAAN9qE,EACA,OAAO,EAEX,MAAM2uP,EAAKvL,EAAWgB,KAAK/iP,EAAIrB,GACzBpkB,EAAQ,IAAI6C,WAAW,GACvBosF,EAAO,IAAI1tE,SAASvhB,EAAMmG,QAChC8oF,EAAKw5K,SAAS,EAAGsK,EAAGx0L,IAAI,GACxB0Q,EAAKw5K,SAAS,EAAGsK,EAAGxzL,IAAI,GACxBxiF,EAAExE,KAAKyH,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,IACnF,KACJ,QAKRjD,EAAExE,KAAKozC,EAAMr5B,EAAE6qE,WAAW,IAGtC,OAAO,IAAIt6E,WAAW9F,EAC1B,CA7JsBi2Q,CAA0B/7Q,GACpC,IAAU,IAAN8yB,EACA,MAAM,IAAIztB,MAAM,gBAAgB,EAAW7D,qBAAwBxB,KAEvE,OAAO8yB,CACX,CACA,KAAK,EAAWq/O,MAChB,KAAK,EAAWE,SAChB,KAAK,EAAWE,OACZ,OAAOhC,EAAWp6O,MAAMn2B,GAC5B,KAAK,EAAWoyQ,OAChB,KAAK,EAAWE,QACZ,OAAO/B,EAAWc,OAAOrxQ,GAC7B,KAAK,EAAWiyQ,OAChB,KAAK,EAAWC,MACZ,OAAQlyQ,GACJ,IAAK,MACD,OAAO6C,OAAO8nB,kBAClB,IAAK,OACD,OAAO9nB,OAAOm5Q,kBAClB,IAAK,MACD,OAAOn5Q,OAAOmhG,IAClB,QACI,OAAOigK,WAAWjkQ,GAE9B,KAAK,EAAWgyQ,KACZ,MAAiB,SAAVhyQ,EACX,KAAK,EAAWi8Q,MAChB,KAAK,EAAWC,OAChB,KAAK,EAAWC,OAChB,KAAK,EAAWC,QAChB,KAAK,EAAWC,SACZ,OAAOv5Q,SAAS9C,EAAO,IAEnC,CDylBsBs8Q,CAA2B96Q,EAAMgpG,EAAMnmE,mBACvC36B,EAKlB,OAAOoxE,CACX,CAKA,SAAS29L,GAAejuK,GACpB,OAAQA,EAAM+xK,QACV,IAAK,GACL,IAAK,SACD,OAlfW,IAmff,IAAK,SACD,OAlfW,IAmff,IAAK,WACD,GAAI/xK,EAAMmpK,WAAWmE,GACjB,OAAOttK,EAAMmpK,QAEjB,MAAM,IAAItuQ,MAAM,GAAGmlG,EAAMtoG,6BAC7B,QACI,MAAM,IAAImD,MAAM,GAAGmlG,EAAMtoG,6BAA6BsoG,EAAM+xK,WAExE,CAIA,SAAS7D,GAAqBluK,EAAO+tK,GACjC,OAAO/tK,EAAMgvG,WAAW75M,IAAK68Q,IACzB,MAAM5E,EAAMW,EAAInB,QAAQoF,GACxB,IAAK5E,EACD,MAAM,IAAIvyQ,MAAM,eAAem3Q,kBAAyBhyK,EAAMtoG,QAElE,OAAO01Q,GAEf,CA6CA,SAASyC,GAAa7vK,EAAO/hE,EAAQirO,GACjC,IAAI9E,EAUJ,OARIA,EADAnmO,EACW,GAAGA,EAAOmmO,YAAYpkK,EAAMtoG,OAElCwxQ,EAAKlpK,MAAMiyK,QAAQn+Q,OAAS,EACtB,GAAGo1Q,EAAKlpK,MAAMiyK,WAAWjyK,EAAMtoG,OAG/B,GAAGsoG,EAAMtoG,OAEjB0sQ,CACX,CAIA,SAASiM,GAAejM,GACpB,OAAOA,EAASnsQ,WAAW,KAAOmsQ,EAAS3gK,UAAU,GAAK2gK,CAC9D,CAKA,SAASiL,GAAUrvK,EAAOivK,GACtB,IAAK5G,EAAoBroK,EAAO,cAC5B,OAEJ,GAAIA,EAAMkyK,eACN,OAEJ,MAAMhK,EAAQ+G,EAAUjvK,EAAMmyK,YAE9B,OADA/gQ,GAAO82P,EAAO,wCAAwCloK,EAAMmyK,yBAAyBnyK,EAAM/kF,oBACpFitP,CACX,CAKA,SAAS0I,GAAiB5wK,EAAOkoK,EAAOyI,EAAa1yO,GACjD,GA7kBmB,GA6kBf+hE,EAAMtgE,MAEN,OArkBgB,EAukBpB,GAnlBmB,GAmlBfsgE,EAAMtgE,MAEN,OA3kBS,EA6kBb,GAAMwoO,GAASloK,EAAMkyK,eAEjB,OAjlBS,EAmlBb,GAAIvB,EAEA,OArlBS,EAulBb,MAAMrrO,EAAWwqO,GAAe,gBAAiB,CAAE9vK,QAAO/hE,WAC1D,OAtlBa,GAslBTqH,GAtmBa,IAumBZ06D,EAAMhpG,MAzmBI,IAymBoBgpG,EAAMhpG,KAIlCsuC,EA7lBM,CA8lBjB,CA2DA,SAAS0rO,GAAoBhxK,EAAO/hE,GAChC,OA1qBe,IA0qBX+hE,EAAMhpG,MAlpBI,GAspBV84Q,GAAe,kBAAmB,CAC9B9vK,QACA/hE,UAEZ,CACA,SAAS6xO,GAAep4Q,EAAMwd,GAC1B,IAAI9E,EAAIC,EACR,MAAM+hQ,EAA0C,QAA5BhiQ,EAAK8E,EAAI8qF,MAAM3mG,eAA4B,IAAP+W,OAAgB,EAASA,EAAGiiQ,SACpF,GAAID,EAAY,CACZ,MAAMxiN,EAAMwiN,EAAW16Q,GACvB,GAAW,GAAPk4D,EACA,OAAOA,CAEf,CACA,GAAI,SAAU16C,EAAK,CACf,GAAgB,WAAZA,EAAI6nC,KACJ,OAAO+yN,GAAep4Q,EAA4B,QAArB2Y,EAAK6E,EAAI+oB,cAA2B,IAAP5tB,EAAgBA,EAAK6E,EAAIg0P,MAEvF,MAAMoJ,EAAkBhF,GAAgBp4P,EAAIi0P,SAC5C,IAAKmJ,EACD,MAAM,IAAIz3Q,MAAM,+BAA+Bqa,EAAIi0P,qBAEvD,OAAOmJ,EAAgB56Q,EAC3B,CACA,OAAOo4Q,GAAep4Q,EAAMwd,EAAI+oB,OACpC,CAIA,SAAS7sB,GAAO6+F,EAAWz1G,GACvB,IAAKy1G,EACD,MAAM,IAAIp1G,MAAML,EAExB,CE53BO,SAAS+3Q,GAAKA,GACjB,MAAMnzJ,EAaH,SAAiCp1G,GACpC,MAAMg2F,EAAQ3qG,OAAOsL,OAAO,CACxBoxQ,OAAQ,GACR5I,QAAS,IAEb,OAAO9zQ,OAAO+nB,OAAO4iF,EAAO3qG,OAAO+nB,OAAO/nB,OAAO+nB,OAAO,CAAE+mP,UAAW,sCAAuCn1D,WAAY,GAAIwjE,iBAAkB,GAAIC,eAAgB,GAAIC,iBAAkB,GAAIr/M,QAAS,GAAI07M,UAAW,IAAM/kQ,GAAO,CAAEykQ,YAAazkQ,EAAKykQ,YAAYt5Q,IAAIw9Q,IAAsBnF,SAAUxjQ,EAAKwjQ,SAASr4Q,IAAIy9Q,MAC3T,CAnBiBC,CAAwBN,GAIrC,OAHAnzJ,EAAKqvJ,YAAYl5Q,QAAQq2Q,IACbO,GAAmB/sJ,EAAM,QAE1BwtJ,QAAQxtJ,EAAK1nH,KAC5B,CAeA,SAASi7Q,GAAoB3oQ,GACzB,IAAIoG,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAChC,MAAMqvF,EAAQ3qG,OAAOsL,OAAO,CACxBmyQ,WAAY,IAEhB,OAAOz9Q,OAAO+nB,OAAO4iF,EAAO,CACxBmkK,UAAW,kCACXzsQ,KAAMsS,EAAKtS,KACX44E,MAA0G,QAAlGjgE,EAA2B,QAArBD,EAAKpG,EAAKsmE,aAA0B,IAAPlgE,OAAgB,EAASA,EAAGjb,IAAI49Q,WAA8C,IAAP1iQ,EAAgBA,EAAK,GACvI0+P,UAAW,GACXjD,WAA+G,QAAlGv7P,EAAgC,QAA1BD,EAAKtG,EAAK8hQ,kBAA+B,IAAPx7P,OAAgB,EAASA,EAAGnb,IAAIw9Q,WAAyC,IAAPpiQ,EAAgBA,EAAK,GAC5Ii9P,SAA+G,QAApG/8P,EAA8B,QAAxBD,EAAKxG,EAAKwjQ,gBAA6B,IAAPh9P,OAAgB,EAASA,EAAGrb,IAAIy9Q,WAA6C,IAAPniQ,EAAgBA,EAAK,GAC5IuiQ,eAA8L,QAA7KriQ,EAAoC,QAA9BD,EAAK1G,EAAKgpQ,sBAAmC,IAAPtiQ,OAAgB,EAASA,EAAGvb,IAAKsI,GAAOpI,OAAO+nB,OAAO,CAAE+mP,UAAW,kDAAoD1mQ,WAAyB,IAAPkT,EAAgBA,EAAK,GAC3Nu+P,UAAW,GACX+D,cAAe,GACfC,aAAc,IAEtB,CACA,SAASH,GAAyB/oQ,GAC9B,MAAMg2F,EAAQ3qG,OAAOsL,OAAO,CACxB++B,MAAO,EACP0kO,SAAU,GACVuI,SAAU,GACV9yO,aAAc,GACds4O,WAAY,EACZtG,SAAU,GACVqG,gBAAgB,IAEpB,OAAO78Q,OAAO+nB,OAAO4iF,EAAO3qG,OAAO+nB,OAAO/nB,OAAO+nB,OAAO,CAAE+mP,UAAW,wCAA0Cn6P,GAAO,CAAE3Q,QAAS2Q,EAAK3Q,QAAU85Q,GAAiBnpQ,EAAK3Q,cAAW6F,IACrL,CACA,SAASi0Q,GAAiBnpQ,GACtB,IAAIoG,EAAIC,EAAIC,EACZ,MAAM0vF,EAAQ3qG,OAAOsL,OAAO,CACxByyQ,MAAO,EACPrqK,QAAQ,EACR+nK,OAAQ,EACRl1I,MAAM,EACNy3I,gBAAgB,EAChBrF,YAAY,EACZsF,MAAM,EACNC,aAAa,EACbC,UAAW,IAEf,OAAOn+Q,OAAO+nB,OAAO4iF,EAAO3qG,OAAO+nB,OAAO/nB,OAAO+nB,OAAO,CAAE+mP,UAAW,gCAAkCn6P,GAAO,CAAEypQ,QAAiC,QAAvBrjQ,EAAKpG,EAAKypQ,eAA4B,IAAPrjQ,EAAgBA,EAAK,GAAIkiQ,gBAA6L,QAA3KhiQ,EAAqC,QAA/BD,EAAKrG,EAAKsoQ,uBAAoC,IAAPjiQ,OAAgB,EAASA,EAAGlb,IAAKsI,GAAOpI,OAAO+nB,OAAO,CAAE+mP,UAAW,+CAAiD1mQ,WAAyB,IAAP6S,EAAgBA,EAAK,GAAIojQ,oBAAqB,KACza,CACA,SAASd,GAAwB5oQ,GAC7B,MAAMg2F,EAAQ3qG,OAAOsL,OAAO,CACxBmyQ,WAAY,IAEhB,OAAOz9Q,OAAO+nB,OAAO4iF,EAAO,CACxBmkK,UAAW,sCACXzsQ,KAAMsS,EAAKtS,KACXw7Q,aAAc,GACdD,cAAe,GACfz9Q,MAAOwU,EAAKxU,MAAML,IAAKsI,GAAOpI,OAAO+nB,OAAO,CAAE+mP,UAAW,4CAA8C1mQ,KAE/G,CClFO,SAAS,GAAYyrQ,EAAM7sN,KAASs3N,GACvC,OAAOA,EAAMh7N,OAAO,CAACukB,EAAKpuD,IAAQouD,EAAI8uM,eAAel9P,GAAMo6P,EAAKnpO,SAASsc,GAC7E,CCDO,MAUMu3N,GAA0C,GAVMrB,GAAK,CAAE,KAAQ,mCAAoC,QAAW,kBAAmB,YAAe,CAAC,CAAE,KAAQ,oBAAqB,MAAS,CAAC,CAAE,KAAQ,OAAQ,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,yCAA2C,eAAkB,CAAC,CAAE,MAAS,MAAW,IAAO,aAAgB,CAAE,KAAQ,sBAAuB,MAAS,CAAC,CAAE,KAAQ,OAAQ,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,UAAW,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,aAAc,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,oBAAqB,OAAU,GAAI,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,kBAAmB,OAAU,GAAI,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,oBAAqB,OAAU,GAAI,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,eAAgB,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,oCAAsC,CAAE,KAAQ,YAAa,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,wCAA0C,CAAE,KAAQ,UAAW,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,2CAA6C,CAAE,KAAQ,YAAa,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,yCAA2C,CAAE,KAAQ,UAAW,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,gCAAkC,CAAE,KAAQ,mBAAoB,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,mCAAqC,CAAE,KAAQ,SAAU,OAAU,GAAI,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,UAAW,OAAU,GAAI,KAAQ,GAAI,MAAS,EAAG,SAAY,8BAAiC,CAAE,KAAQ,kBAAmB,MAAS,CAAC,CAAE,KAAQ,OAAQ,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,QAAS,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,yCAA2C,CAAE,KAAQ,YAAa,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,yCAA2C,CAAE,KAAQ,cAAe,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,oCAAsC,CAAE,KAAQ,YAAa,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,wCAA0C,CAAE,KAAQ,kBAAmB,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,mDAAqD,CAAE,KAAQ,aAAc,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,yCAA2C,CAAE,KAAQ,UAAW,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,mCAAqC,CAAE,KAAQ,iBAAkB,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,kDAAoD,CAAE,KAAQ,gBAAiB,OAAU,GAAI,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,aAAc,OAAU,GAAI,KAAQ,GAAI,MAAS,EAAG,SAAY,sCAAwC,WAAc,CAAC,CAAE,KAAQ,iBAAkB,MAAS,CAAC,CAAE,KAAQ,QAAS,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,MAAO,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,UAAW,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,4CAA+C,CAAE,KAAQ,gBAAiB,MAAS,CAAC,CAAE,KAAQ,QAAS,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,MAAO,OAAU,EAAG,KAAQ,EAAG,MAAS,OAAW,CAAE,KAAQ,wBAAyB,MAAS,CAAC,CAAE,KAAQ,uBAAwB,OAAU,IAAK,KAAQ,GAAI,MAAS,EAAG,SAAY,wCAA0C,CAAE,KAAQ,cAAe,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,qDAAsD,QAAW,CAAE,UAAa,IAAO,CAAE,KAAQ,WAAY,OAAU,GAAI,KAAQ,GAAI,MAAS,EAAG,SAAY,+BAAiC,CAAE,KAAQ,eAAgB,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,2DAA4D,aAAgB,aAAc,QAAW,CAAE,UAAa,KAAQ,WAAc,CAAC,CAAE,KAAQ,cAAe,MAAS,CAAC,CAAE,KAAQ,SAAU,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,YAAa,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,OAAQ,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,WAAY,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,WAAY,OAAU,EAAG,KAAQ,EAAG,MAAS,MAAS,SAAY,CAAC,CAAE,KAAQ,oBAAqB,MAAS,CAAC,CAAE,KAAQ,cAAe,OAAU,GAAK,CAAE,KAAQ,aAAc,OAAU,MAAS,eAAkB,CAAC,CAAE,MAAS,IAAM,IAAO,aAAgB,CAAE,KAAQ,uBAAwB,MAAS,CAAC,CAAE,KAAQ,OAAQ,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,SAAU,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,QAAS,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,+CAAiD,CAAE,KAAQ,OAAQ,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,8CAAgD,CAAE,KAAQ,YAAa,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,WAAY,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,gBAAiB,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,cAAe,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,YAAa,OAAU,GAAI,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,UAAW,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,iCAAmC,CAAE,KAAQ,kBAAmB,OAAU,GAAI,KAAQ,EAAG,MAAS,IAAM,SAAY,CAAC,CAAE,KAAQ,OAAQ,MAAS,CAAC,CAAE,KAAQ,cAAe,OAAU,GAAK,CAAE,KAAQ,aAAc,OAAU,GAAK,CAAE,KAAQ,aAAc,OAAU,GAAK,CAAE,KAAQ,cAAe,OAAU,GAAK,CAAE,KAAQ,aAAc,OAAU,GAAK,CAAE,KAAQ,eAAgB,OAAU,GAAK,CAAE,KAAQ,eAAgB,OAAU,GAAK,CAAE,KAAQ,YAAa,OAAU,GAAK,CAAE,KAAQ,cAAe,OAAU,GAAK,CAAE,KAAQ,aAAc,OAAU,IAAM,CAAE,KAAQ,eAAgB,OAAU,IAAM,CAAE,KAAQ,aAAc,OAAU,IAAM,CAAE,KAAQ,cAAe,OAAU,IAAM,CAAE,KAAQ,YAAa,OAAU,IAAM,CAAE,KAAQ,gBAAiB,OAAU,IAAM,CAAE,KAAQ,gBAAiB,OAAU,IAAM,CAAE,KAAQ,cAAe,OAAU,IAAM,CAAE,KAAQ,cAAe,OAAU,MAAS,CAAE,KAAQ,QAAS,MAAS,CAAC,CAAE,KAAQ,iBAAkB,OAAU,GAAK,CAAE,KAAQ,iBAAkB,OAAU,GAAK,CAAE,KAAQ,iBAAkB,OAAU,OAAW,CAAE,KAAQ,uBAAwB,MAAS,CAAC,CAAE,KAAQ,OAAQ,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,UAAW,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,mCAAsC,CAAE,KAAQ,sBAAuB,MAAS,CAAC,CAAE,KAAQ,OAAQ,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,QAAS,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,6CAA+C,CAAE,KAAQ,UAAW,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,gCAAkC,CAAE,KAAQ,iBAAkB,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,0DAA4D,CAAE,KAAQ,gBAAiB,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,aAAc,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,sCAAwC,WAAc,CAAC,CAAE,KAAQ,oBAAqB,MAAS,CAAC,CAAE,KAAQ,QAAS,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,MAAO,OAAU,EAAG,KAAQ,EAAG,MAAS,OAAW,CAAE,KAAQ,2BAA4B,MAAS,CAAC,CAAE,KAAQ,OAAQ,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,SAAU,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,UAAW,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,uCAA0C,CAAE,KAAQ,yBAA0B,MAAS,CAAC,CAAE,KAAQ,OAAQ,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,SAAU,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,0CAA4C,CAAE,KAAQ,UAAW,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,qCAAwC,CAAE,KAAQ,wBAAyB,MAAS,CAAC,CAAE,KAAQ,OAAQ,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,aAAc,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,cAAe,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,UAAW,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,kCAAoC,CAAE,KAAQ,mBAAoB,OAAU,EAAG,KAAQ,EAAG,MAAS,EAAG,aAAgB,SAAW,CAAE,KAAQ,mBAAoB,OAAU,EAAG,KAAQ,EAAG,MAAS,EAAG,aAAgB,WAAc,CAAE,KAAQ,cAAe,MAAS,CAAC,CAAE,KAAQ,eAAgB,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,uBAAwB,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,sBAAuB,OAAU,GAAI,KAAQ,EAAG,MAAS,EAAG,aAAgB,SAAW,CAAE,KAAQ,gCAAiC,OAAU,GAAI,KAAQ,EAAG,MAAS,EAAG,QAAW,CAAE,YAAc,IAAU,CAAE,KAAQ,yBAA0B,OAAU,GAAI,KAAQ,EAAG,MAAS,EAAG,aAAgB,SAAW,CAAE,KAAQ,eAAgB,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,4CAA6C,aAAgB,SAAW,CAAE,KAAQ,aAAc,OAAU,GAAI,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,sBAAuB,OAAU,GAAI,KAAQ,EAAG,MAAS,EAAG,aAAgB,SAAW,CAAE,KAAQ,wBAAyB,OAAU,GAAI,KAAQ,EAAG,MAAS,EAAG,aAAgB,SAAW,CAAE,KAAQ,sBAAuB,OAAU,GAAI,KAAQ,EAAG,MAAS,EAAG,aAAgB,SAAW,CAAE,KAAQ,aAAc,OAAU,GAAI,KAAQ,EAAG,MAAS,EAAG,aAAgB,SAAW,CAAE,KAAQ,mBAAoB,OAAU,GAAI,KAAQ,EAAG,MAAS,EAAG,aAAgB,QAAU,CAAE,KAAQ,oBAAqB,OAAU,GAAI,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,mBAAoB,OAAU,GAAI,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,eAAgB,OAAU,GAAI,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,mBAAoB,OAAU,GAAI,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,gBAAiB,OAAU,GAAI,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,yBAA0B,OAAU,GAAI,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,eAAgB,OAAU,GAAI,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,WAAY,OAAU,GAAI,KAAQ,GAAI,MAAS,EAAG,SAAY,+BAAiC,CAAE,KAAQ,uBAAwB,OAAU,IAAK,KAAQ,GAAI,MAAS,EAAG,SAAY,yCAA2C,SAAY,CAAC,CAAE,KAAQ,eAAgB,MAAS,CAAC,CAAE,KAAQ,QAAS,OAAU,GAAK,CAAE,KAAQ,YAAa,OAAU,GAAK,CAAE,KAAQ,eAAgB,OAAU,MAAS,eAAkB,CAAC,CAAE,MAAS,IAAM,IAAO,aAAgB,CAAE,KAAQ,iBAAkB,MAAS,CAAC,CAAE,KAAQ,0BAA2B,OAAU,EAAG,KAAQ,EAAG,MAAS,EAAG,aAAgB,SAAW,CAAE,KAAQ,kCAAmC,OAAU,EAAG,KAAQ,EAAG,MAAS,EAAG,aAAgB,SAAW,CAAE,KAAQ,aAAc,OAAU,EAAG,KAAQ,EAAG,MAAS,EAAG,aAAgB,SAAW,CAAE,KAAQ,YAAa,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,yCAA0C,OAAU,GAAI,KAAQ,EAAG,MAAS,EAAG,QAAW,CAAE,YAAc,IAAU,CAAE,KAAQ,WAAY,OAAU,GAAI,KAAQ,GAAI,MAAS,EAAG,SAAY,+BAAiC,CAAE,KAAQ,uBAAwB,OAAU,IAAK,KAAQ,GAAI,MAAS,EAAG,SAAY,yCAA2C,eAAkB,CAAC,CAAE,MAAS,IAAM,IAAO,aAAgB,CAAE,KAAQ,eAAgB,MAAS,CAAC,CAAE,KAAQ,QAAS,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,sCAAuC,aAAgB,UAAY,CAAE,KAAQ,SAAU,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,SAAU,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,uCAAwC,aAAgB,aAAe,CAAE,KAAQ,OAAQ,OAAU,EAAG,KAAQ,EAAG,MAAS,EAAG,aAAgB,SAAW,CAAE,KAAQ,kBAAmB,OAAU,GAAI,KAAQ,EAAG,MAAS,EAAG,aAAgB,SAAW,CAAE,KAAQ,aAAc,OAAU,EAAG,KAAQ,EAAG,MAAS,EAAG,aAAgB,SAAW,CAAE,KAAQ,OAAQ,OAAU,GAAI,KAAQ,EAAG,MAAS,EAAG,aAAgB,QAAS,QAAW,CAAE,YAAc,IAAU,CAAE,KAAQ,eAAgB,OAAU,GAAI,KAAQ,EAAG,MAAS,EAAG,aAAgB,SAAW,CAAE,KAAQ,YAAa,OAAU,GAAI,KAAQ,GAAI,MAAS,EAAG,SAAY,iDAAmD,CAAE,KAAQ,UAAW,OAAU,GAAI,KAAQ,GAAI,MAAS,EAAG,SAAY,kDAAoD,CAAE,KAAQ,mBAAoB,OAAU,GAAI,KAAQ,GAAI,MAAS,EAAG,SAAY,gDAAkD,CAAE,KAAQ,WAAY,OAAU,GAAI,KAAQ,GAAI,MAAS,EAAG,SAAY,+BAAiC,CAAE,KAAQ,kBAAmB,OAAU,GAAI,KAAQ,GAAI,MAAS,EAAG,SAAY,gDAAkD,CAAE,KAAQ,uBAAwB,OAAU,IAAK,KAAQ,GAAI,MAAS,EAAG,SAAY,yCAA2C,WAAc,CAAC,CAAE,KAAQ,iBAAkB,MAAS,CAAC,CAAE,KAAQ,UAAW,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,4BAA8B,CAAE,KAAQ,QAAS,OAAU,EAAG,KAAQ,EAAG,MAAS,KAAQ,CAAE,KAAQ,iBAAkB,MAAS,CAAC,CAAE,KAAQ,qBAAsB,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,4BAA8B,CAAE,KAAQ,qBAAsB,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,4BAA8B,CAAE,KAAQ,sBAAuB,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,kBAAmB,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,+BAAkC,SAAY,CAAC,CAAE,KAAQ,QAAS,MAAS,CAAC,CAAE,KAAQ,SAAU,OAAU,GAAK,CAAE,KAAQ,OAAQ,OAAU,GAAK,CAAE,KAAQ,eAAgB,OAAU,KAAQ,CAAE,KAAQ,SAAU,MAAS,CAAC,CAAE,KAAQ,YAAa,OAAU,GAAK,CAAE,KAAQ,YAAa,OAAU,GAAK,CAAE,KAAQ,YAAa,OAAU,KAAQ,CAAE,KAAQ,kBAAmB,MAAS,CAAC,CAAE,KAAQ,oBAAqB,OAAU,GAAK,CAAE,KAAQ,oBAAqB,OAAU,GAAK,CAAE,KAAQ,mBAAoB,OAAU,KAAQ,CAAE,KAAQ,mBAAoB,MAAS,CAAC,CAAE,KAAQ,sBAAuB,OAAU,GAAK,CAAE,KAAQ,mBAAoB,OAAU,GAAK,CAAE,KAAQ,8BAA+B,OAAU,GAAK,CAAE,KAAQ,sBAAuB,OAAU,GAAK,CAAE,KAAQ,oBAAqB,OAAU,GAAK,CAAE,KAAQ,oBAAqB,OAAU,GAAK,CAAE,KAAQ,mBAAoB,OAAU,GAAK,CAAE,KAAQ,yBAA0B,OAAU,GAAK,CAAE,KAAQ,sBAAuB,OAAU,GAAK,CAAE,KAAQ,qBAAsB,OAAU,MAAS,eAAkB,CAAC,CAAE,MAAS,IAAM,IAAO,aAAgB,CAAE,KAAQ,eAAgB,MAAS,CAAC,CAAE,KAAQ,WAAY,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,+BAAiC,CAAE,KAAQ,uBAAwB,OAAU,IAAK,KAAQ,GAAI,MAAS,EAAG,SAAY,yCAA2C,eAAkB,CAAC,CAAE,MAAS,IAAM,IAAO,aAAgB,CAAE,KAAQ,cAAe,MAAS,CAAC,CAAE,KAAQ,cAAe,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,aAAc,OAAU,EAAG,KAAQ,EAAG,MAAS,EAAG,aAAgB,SAAW,CAAE,KAAQ,yCAA0C,OAAU,EAAG,KAAQ,EAAG,MAAS,EAAG,QAAW,CAAE,YAAc,IAAU,CAAE,KAAQ,WAAY,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,+BAAiC,CAAE,KAAQ,uBAAwB,OAAU,IAAK,KAAQ,GAAI,MAAS,EAAG,SAAY,yCAA2C,eAAkB,CAAC,CAAE,MAAS,IAAM,IAAO,aAAgB,CAAE,KAAQ,mBAAoB,MAAS,CAAC,CAAE,KAAQ,aAAc,OAAU,EAAG,KAAQ,EAAG,MAAS,EAAG,aAAgB,SAAW,CAAE,KAAQ,WAAY,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,+BAAiC,CAAE,KAAQ,eAAgB,OAAU,EAAG,KAAQ,EAAG,MAAS,EAAG,aAAgB,SAAW,CAAE,KAAQ,kBAAmB,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,gDAAkD,CAAE,KAAQ,uBAAwB,OAAU,IAAK,KAAQ,GAAI,MAAS,EAAG,SAAY,yCAA2C,eAAkB,CAAC,CAAE,MAAS,IAAM,IAAO,aAAgB,CAAE,KAAQ,iBAAkB,MAAS,CAAC,CAAE,KAAQ,WAAY,OAAU,GAAI,KAAQ,GAAI,MAAS,EAAG,SAAY,+BAAiC,CAAE,KAAQ,aAAc,OAAU,GAAI,KAAQ,EAAG,MAAS,EAAG,aAAgB,SAAW,CAAE,KAAQ,uBAAwB,OAAU,IAAK,KAAQ,GAAI,MAAS,EAAG,SAAY,yCAA2C,eAAkB,CAAC,CAAE,MAAS,IAAM,IAAO,aAAgB,CAAE,KAAQ,gBAAiB,MAAS,CAAC,CAAE,KAAQ,aAAc,OAAU,GAAI,KAAQ,EAAG,MAAS,EAAG,aAAgB,SAAW,CAAE,KAAQ,oBAAqB,OAAU,GAAI,KAAQ,GAAI,MAAS,EAAG,SAAY,kDAAmD,aAAgB,uBAAyB,CAAE,KAAQ,WAAY,OAAU,GAAI,KAAQ,GAAI,MAAS,EAAG,SAAY,+BAAiC,CAAE,KAAQ,uBAAwB,OAAU,IAAK,KAAQ,GAAI,MAAS,EAAG,SAAY,yCAA2C,SAAY,CAAC,CAAE,KAAQ,mBAAoB,MAAS,CAAC,CAAE,KAAQ,sBAAuB,OAAU,GAAK,CAAE,KAAQ,kBAAmB,OAAU,GAAK,CAAE,KAAQ,aAAc,OAAU,MAAS,eAAkB,CAAC,CAAE,MAAS,IAAM,IAAO,aAAgB,CAAE,KAAQ,sBAAuB,MAAS,CAAC,CAAE,KAAQ,OAAQ,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,iDAAmD,CAAE,KAAQ,mBAAoB,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,qBAAsB,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,qBAAsB,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,eAAgB,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,eAAgB,OAAU,EAAG,KAAQ,GAAI,MAAS,GAAK,CAAE,KAAQ,kBAAmB,OAAU,EAAG,KAAQ,EAAG,MAAS,IAAM,WAAc,CAAC,CAAE,KAAQ,WAAY,MAAS,CAAC,CAAE,KAAQ,YAAa,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,eAAgB,OAAU,EAAG,KAAQ,EAAG,MAAS,OAAW,CAAE,KAAQ,aAAc,MAAS,CAAC,CAAE,KAAQ,iBAAkB,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,4CAA6C,QAAW,CAAE,UAAa,EAAG,QAAW,CAAC,EAAG,GAAI,gBAAmB,CAAC,CAAE,MAAS,WAAY,QAAW,KAAO,CAAE,MAAS,WAAY,QAAW,KAAO,CAAE,MAAS,WAAY,QAAW,QAAa,CAAE,KAAQ,YAAa,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,uCAAwC,QAAW,CAAE,UAAa,EAAG,QAAW,CAAC,EAAG,GAAI,gBAAmB,CAAC,CAAE,MAAS,SAAU,QAAW,KAAO,CAAE,MAAS,OAAQ,QAAW,QAAY,CAAE,KAAQ,0BAA2B,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,oDAAqD,QAAW,CAAE,UAAa,EAAG,QAAW,CAAC,EAAG,GAAI,gBAAmB,CAAC,CAAE,MAAS,WAAY,QAAW,KAAO,CAAE,MAAS,SAAU,QAAW,QAAY,CAAE,KAAQ,kBAAmB,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,6CAA8C,QAAW,CAAE,UAAa,EAAG,QAAW,CAAC,EAAG,GAAI,gBAAmB,CAAC,CAAE,MAAS,OAAQ,QAAW,KAAO,CAAE,MAAS,SAAU,QAAW,QAAY,CAAE,KAAQ,mBAAoB,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,8CAA+C,QAAW,CAAE,UAAa,EAAG,QAAW,CAAC,EAAG,GAAI,gBAAmB,CAAC,CAAE,MAAS,kBAAmB,QAAW,QAAY,CAAE,KAAQ,cAAe,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,yCAA0C,QAAW,CAAE,UAAa,EAAG,QAAW,CAAC,EAAG,EAAG,GAAI,gBAAmB,CAAC,CAAE,MAAS,qBAAsB,QAAW,KAAO,CAAE,MAAS,QAAS,QAAW,QAAY,CAAE,KAAQ,uBAAwB,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,iDAAkD,QAAW,CAAE,UAAa,EAAG,QAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,gBAAmB,CAAC,CAAE,MAAS,eAAgB,QAAW,KAAO,CAAE,MAAS,YAAa,QAAW,SAAa,CAAE,KAAQ,4BAA6B,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,wEAAyE,QAAW,CAAE,UAAa,EAAG,QAAW,CAAC,GAAI,gBAAmB,CAAC,CAAE,MAAS,aAAc,QAAW,KAAO,CAAE,MAAS,mBAAoB,QAAW,UAAc,WAAc,CAAC,CAAE,KAAQ,oBAAqB,SAAY,CAAC,CAAE,KAAQ,0BAA2B,MAAS,CAAC,CAAE,KAAQ,oCAAqC,OAAU,GAAK,CAAE,KAAQ,aAAc,OAAU,GAAK,CAAE,KAAQ,mBAAoB,OAAU,GAAK,CAAE,KAAQ,YAAa,OAAU,GAAK,CAAE,KAAQ,SAAU,OAAU,QAAY,SAAY,CAAC,CAAE,KAAQ,gBAAiB,MAAS,CAAC,CAAE,KAAQ,yBAA0B,OAAU,GAAK,CAAE,KAAQ,WAAY,OAAU,GAAK,CAAE,KAAQ,WAAY,OAAU,GAAK,CAAE,KAAQ,kBAAmB,OAAU,KAAQ,CAAE,KAAQ,WAAY,MAAS,CAAC,CAAE,KAAQ,oBAAqB,OAAU,GAAK,CAAE,KAAQ,OAAQ,OAAU,GAAK,CAAE,KAAQ,SAAU,OAAU,KAAQ,CAAE,KAAQ,wBAAyB,MAAS,CAAC,CAAE,KAAQ,kCAAmC,OAAU,GAAK,CAAE,KAAQ,SAAU,OAAU,GAAK,CAAE,KAAQ,WAAY,OAAU,KAAQ,CAAE,KAAQ,iBAAkB,MAAS,CAAC,CAAE,KAAQ,0BAA2B,OAAU,GAAK,CAAE,KAAQ,SAAU,OAAU,GAAK,CAAE,KAAQ,OAAQ,OAAU,KAAQ,CAAE,KAAQ,kBAAmB,MAAS,CAAC,CAAE,KAAQ,2BAA4B,OAAU,GAAK,CAAE,KAAQ,kBAAmB,OAAU,GAAK,CAAE,KAAQ,YAAa,OAAU,KAAQ,CAAE,KAAQ,aAAc,MAAS,CAAC,CAAE,KAAQ,sBAAuB,OAAU,GAAK,CAAE,KAAQ,QAAS,OAAU,GAAK,CAAE,KAAQ,qBAAsB,OAAU,KAAQ,CAAE,KAAQ,qBAAsB,MAAS,CAAC,CAAE,KAAQ,+BAAgC,OAAU,GAAK,CAAE,KAAQ,YAAa,OAAU,GAAK,CAAE,KAAQ,eAAgB,OAAU,MAAS,eAAkB,CAAC,CAAE,MAAS,IAAM,IAAO,MAAQ,CAAE,MAAS,KAAM,IAAO,KAAS,CAAE,MAAS,IAAO,IAAO,SAAY,CAAE,KAAQ,qBAAsB,MAAS,CAAC,CAAE,KAAQ,WAAY,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,gEAAkE,CAAE,KAAQ,kBAAmB,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,4BAA8B,CAAE,KAAQ,kBAAmB,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,6BAA+B,WAAc,CAAC,CAAE,KAAQ,2BAA4B,MAAS,CAAC,CAAE,KAAQ,UAAW,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,4BAA8B,CAAE,KAAQ,uBAAwB,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,+BAAiC,CAAE,KAAQ,iBAAkB,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,mCAAuC,CAAE,KAAQ,iBAAkB,MAAS,CAAC,CAAE,KAAQ,WAAY,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,6CAA+C,WAAc,CAAC,CAAE,KAAQ,WAAY,MAAS,CAAC,CAAE,KAAQ,OAAQ,OAAU,EAAG,KAAQ,EAAG,MAAS,EAAG,QAAW,CAAE,QAAU,IAAU,CAAE,KAAQ,OAAQ,OAAU,EAAG,KAAQ,EAAG,MAAS,EAAG,QAAW,CAAE,QAAU,IAAU,CAAE,KAAQ,mBAAoB,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,oBAAqB,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,4BAA6B,OAAU,EAAG,KAAQ,EAAG,MAAS,MAAS,eAAkB,CAAC,CAAE,MAAS,MAAW,IAAO,aAAgB,CAAE,KAAQ,oBAAqB,MAAS,CAAC,CAAE,KAAQ,aAAc,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,kDAAoD,WAAc,CAAC,CAAE,KAAQ,aAAc,MAAS,CAAC,CAAE,KAAQ,OAAQ,OAAU,EAAG,KAAQ,EAAG,MAAS,EAAG,QAAW,CAAE,QAAU,IAAU,CAAE,KAAQ,cAAe,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,QAAS,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,MAAO,OAAU,EAAG,KAAQ,EAAG,MAAS,GAAK,CAAE,KAAQ,WAAY,OAAU,EAAG,KAAQ,GAAI,MAAS,EAAG,SAAY,2DAA6D,SAAY,CAAC,CAAE,KAAQ,WAAY,MAAS,CAAC,CAAE,KAAQ,OAAQ,OAAU,GAAK,CAAE,KAAQ,MAAO,OAAU,GAAK,CAAE,KAAQ,QAAS,OAAU,UAAe,SAAY,CAAC,CAAE,KAAQ,UAAW,MAAS,CAAC,CAAE,KAAQ,kBAAmB,OAAU,GAAK,CAAE,KAAQ,iBAAkB,OAAU,KAAO,CAAE,KAAQ,iBAAkB,OAAU,KAAO,CAAE,KAAQ,iBAAkB,OAAU,KAAO,CAAE,KAAQ,eAAgB,OAAU,KAAQ,CAAE,KAAQ,eAAgB,OAAU,MAAQ,CAAE,KAAQ,mBAAoB,OAAU,MAAQ,CAAE,KAAQ,sBAAuB,OAAU,GAAK,CAAE,KAAQ,sBAAuB,OAAU,GAAK,CAAE,KAAQ,0BAA2B,OAAU,OAAS,CAAE,KAAQ,0BAA2B,OAAU,OAAS,CAAE,KAAQ,0BAA2B,OAAU,OAAS,CAAE,KAAQ,cAAe,OAAU,cAAiB,CAAE,KAAQ,mBAAoB,MAAS,CAAC,CAAE,KAAQ,mBAAoB,OAAU,GAAK,CAAE,KAAQ,mBAAoB,OAAU,GAAK,CAAE,KAAQ,oBAAqB,OAAU,QAUvixB,GA+B7F,IAAIsB,GAyBAC,GAyGAC,GAiEAC,GAkDAC,GA+BAC,GA8BAC,GA0BAC,GA+EAC,GA8CAC,GAwCAC,GA0BAC,GAsBAC,GAsBAC,GAsBAC,GAsBAC,GAsBAC,GAuDAC,GA8BAC,GA2FAC,IAxyBX,SAAWnB,GAMPA,EAAwCA,EAAqD,YAAI,GAAK,cAItGA,EAAwCA,EAAoD,WAAI,GAAK,YACxG,CAXD,CAWGA,KAA4CA,GAA0C,CAAC,IAc1F,SAAWC,GAOPA,EAA0BA,EAAkC,OAAI,GAAK,SAIrEA,EAA0BA,EAAiC,MAAI,GAAK,QAOpEA,EAA0BA,EAAiC,MAAI,GAAK,QAIpEA,EAA0BA,EAAkC,OAAI,GAAK,SAOrEA,EAA0BA,EAAiC,MAAI,GAAK,QAIpEA,EAA0BA,EAAmC,QAAI,GAAK,UAItEA,EAA0BA,EAAmC,QAAI,GAAK,UAItEA,EAA0BA,EAAgC,KAAI,GAAK,OAInEA,EAA0BA,EAAkC,OAAI,GAAK,SAUrEA,EAA0BA,EAAiC,MAAI,IAAM,QAMrEA,EAA0BA,EAAmC,QAAI,IAAM,UAMvEA,EAA0BA,EAAiC,MAAI,IAAM,QAIrEA,EAA0BA,EAAkC,OAAI,IAAM,SAItEA,EAA0BA,EAAgC,KAAI,IAAM,OAIpEA,EAA0BA,EAAoC,SAAI,IAAM,WAIxEA,EAA0BA,EAAoC,SAAI,IAAM,WAMxEA,EAA0BA,EAAkC,OAAI,IAAM,SAMtEA,EAA0BA,EAAkC,OAAI,IAAM,QACzE,CAhGD,CAgGGA,KAA8BA,GAA4B,CAAC,IAS9D,SAAWC,GAMPA,EAA2BA,EAAqC,SAAI,GAAK,WAIzEA,EAA2BA,EAAqC,SAAI,GAAK,WAQzEA,EAA2BA,EAAqC,SAAI,GAAK,UAC5E,CAnBD,CAmBGA,KAA+BA,GAA6B,CAAC,IA8ChE,SAAWC,GAMPA,EAAyBA,EAAgC,MAAI,GAAK,QAQlEA,EAAyBA,EAAoC,UAAI,GAAK,YAMtEA,EAAyBA,EAAuC,aAAI,GAAK,cAC5E,CArBD,CAqBGA,KAA6BA,GAA2B,CAAC,IA6B5D,SAAWC,GAMPA,EAAmBA,EAA2B,OAAI,GAAK,SAWvDA,EAAmBA,EAAyB,KAAI,GAAK,OAIrDA,EAAmBA,EAAiC,aAAI,GAAK,cAChE,CAtBD,CAsBGA,KAAuBA,GAAqB,CAAC,IAShD,SAAWC,GAMPA,EAAoBA,EAA+B,UAAI,GAAK,YAM5DA,EAAoBA,EAA+B,UAAI,GAAK,YAM5DA,EAAoBA,EAA+B,UAAI,GAAK,WAC/D,CAnBD,CAmBGA,KAAwBA,GAAsB,CAAC,IAWlD,SAAWC,GAIPA,EAA6BA,EAAgD,kBAAI,GAAK,oBAItFA,EAA6BA,EAAgD,kBAAI,GAAK,oBAItFA,EAA6BA,EAA+C,iBAAI,GAAK,kBACxF,CAbD,CAaGA,KAAiCA,GAA+B,CAAC,IAapE,SAAWC,GAIPA,EAA8BA,EAAmD,oBAAI,GAAK,sBAI1FA,EAA8BA,EAAgD,iBAAI,GAAK,mBAIvFA,EAA8BA,EAA2D,4BAAI,GAAK,8BAIlGA,EAA8BA,EAAmD,oBAAI,GAAK,sBAI1FA,EAA8BA,EAAiD,kBAAI,GAAK,oBAIxFA,EAA8BA,EAAiD,kBAAI,GAAK,oBAIxFA,EAA8BA,EAAgD,iBAAI,GAAK,mBAIvFA,EAA8BA,EAAsD,uBAAI,GAAK,yBAI7FA,EAA8BA,EAAmD,oBAAI,GAAK,sBAI1FA,EAA8BA,EAAkD,mBAAI,GAAK,oBAC5F,CAzCD,CAyCGA,KAAkCA,GAAgC,CAAC,IAsCtE,SAAWC,GAIPA,EAA+BA,EAAoD,oBAAI,GAAK,sBAM5FA,EAA+BA,EAAgD,gBAAI,GAAK,kBAMxFA,EAA+BA,EAA2C,WAAI,GAAK,YACtF,CAjBD,CAiBGA,KAAmCA,GAAiC,CAAC,IA6BxE,SAAWC,GAIPA,EAAqDA,EAAwF,kCAAI,GAAK,oCAMtJA,EAAqDA,EAAiE,WAAI,GAAK,aAM/HA,EAAqDA,EAAuE,iBAAI,GAAK,mBAMrIA,EAAqDA,EAAgE,UAAI,GAAK,YAQ9HA,EAAqDA,EAA6D,OAAI,GAAK,QAC9H,CA/BD,CA+BGA,KAAyDA,GAAuD,CAAC,IASpH,SAAWC,GAIPA,EAAyBA,EAAiD,uBAAI,GAAK,yBAInFA,EAAyBA,EAAmC,SAAI,GAAK,WAIrEA,EAAyBA,EAAmC,SAAI,GAAK,WAIrEA,EAAyBA,EAA0C,gBAAI,GAAK,iBAC/E,CAjBD,CAiBGA,KAA6BA,GAA2B,CAAC,IAS5D,SAAWC,GAIPA,EAAoBA,EAAuC,kBAAI,GAAK,oBAIpEA,EAAoBA,EAA0B,KAAI,GAAK,OAIvDA,EAAoBA,EAA4B,OAAI,GAAK,QAC5D,CAbD,CAaGA,KAAwBA,GAAsB,CAAC,IASlD,SAAWC,GAIPA,EAAiCA,EAAkE,gCAAI,GAAK,kCAI5GA,EAAiCA,EAAyC,OAAI,GAAK,SAInFA,EAAiCA,EAA2C,SAAI,GAAK,UACxF,CAbD,CAaGA,KAAqCA,GAAmC,CAAC,IAS5E,SAAWC,GAIPA,EAA0BA,EAAmD,wBAAI,GAAK,0BAItFA,EAA0BA,EAAkC,OAAI,GAAK,SAIrEA,EAA0BA,EAAgC,KAAI,GAAK,MACtE,CAbD,CAaGA,KAA8BA,GAA4B,CAAC,IAS9D,SAAWC,GAIPA,EAA2BA,EAAqD,yBAAI,GAAK,2BAIzFA,EAA2BA,EAA4C,gBAAI,GAAK,kBAIhFA,EAA2BA,EAAsC,UAAI,GAAK,WAC7E,CAbD,CAaGA,KAA+BA,GAA6B,CAAC,IAShE,SAAWC,GAIPA,EAAsBA,EAA2C,oBAAI,GAAK,sBAI1EA,EAAsBA,EAA6B,MAAI,GAAK,QAI5DA,EAAsBA,EAA0C,mBAAI,GAAK,oBAC5E,CAbD,CAaGA,KAA0BA,GAAwB,CAAC,IAStD,SAAWC,GAIPA,EAA8BA,EAA4D,6BAAI,GAAK,+BAInGA,EAA8BA,EAAyC,UAAI,GAAK,YAIhFA,EAA8BA,EAA4C,aAAI,GAAK,cACtF,CAbD,CAaGA,KAAkCA,GAAgC,CAAC,IA0CtE,SAAWC,GAMPA,EAAsCA,EAA4C,KAAI,GAAK,OAM3FA,EAAsCA,EAA2C,IAAI,GAAK,MAM1FA,EAAsCA,EAA6C,MAAI,GAAK,OAC/F,CAnBD,CAmBGA,KAA0CA,GAAwC,CAAC,IAWtF,SAAWC,GAMPA,EAAQA,EAAyB,gBAAI,GAAK,kBAO1CA,EAAQA,EAAwB,eAAI,KAAO,iBAS3CA,EAAQA,EAAwB,eAAI,KAAO,iBAI3CA,EAAQA,EAAwB,eAAI,KAAO,iBAQ3CA,EAAQA,EAAsB,aAAI,KAAQ,eAI1CA,EAAQA,EAAsB,aAAI,MAAQ,eAM1CA,EAAQA,EAA0B,iBAAI,MAAQ,mBAO9CA,EAAQA,EAA6B,oBAAI,GAAK,sBAI9CA,EAAQA,EAA6B,oBAAI,GAAK,sBAI9CA,EAAQA,EAAiC,wBAAI,OAAS,0BAItDA,EAAQA,EAAiC,wBAAI,OAAS,0BAItDA,EAAQA,EAAiC,wBAAI,OAAS,0BAQtDA,EAAQA,EAAqB,YAAI,YAAc,aAClD,CA5ED,CA4EGA,KAAYA,GAAU,CAAC,IAe1B,SAAWC,GAIPA,EAAiBA,EAAmC,iBAAI,GAAK,mBAI7DA,EAAiBA,EAAmC,iBAAI,GAAK,mBAI7DA,EAAiBA,EAAoC,kBAAI,GAAK,mBACjE,CAbD,CAaGA,KAAqBA,GAAmB,CAAC,IAIrC,MC12BDC,GAAa,CACf,yBACA,sBACA,qBAEG,MAAMC,WAAmBr6Q,MAC5B,WAAA8M,CAAYwtQ,EAAcntQ,EAAStQ,EAAO,0BACtCwQ,MAAMF,GACNvU,KAAKiE,KAAOA,EACZjE,KAAK68E,MAAQ,IAAM6kM,CACvB,ECVJ,MAAMj+P,GAAS5R,OAAOwP,IAAI,oCAanB,SAASsgQ,KACZ,GAA0Bl2Q,MAAtBu0B,WAAWvc,IAAsB,CACjC,MAAM0pC,EAAK,IAAIntB,WAAWsiD,YACpBs/L,EAAK,IAAI5hP,WAAW96B,YAC1B86B,WAAWvc,IAAU,CACjBo+P,WAAWriJ,GACAryE,EAAG6C,OAAOwvE,GAErBsiJ,WAAW5/Q,GACA0/Q,EAAGz8Q,OAAOjD,GAErB,SAAA6/Q,CAAUviJ,GACN,IAEI,OADAo7C,mBAAmBp7C,IACZ,CACX,CACA,MAAO/6H,GACH,OAAO,CACX,CACJ,EAER,CACA,OAAOu7B,WAAWvc,GACtB,CCzBO,IAAIu+P,IACX,SAAWA,GAIPA,EAASA,EAAiB,OAAI,GAAK,SAKnCA,EAASA,EAAgB,MAAI,GAAK,QAQlCA,EAASA,EAA0B,gBAAI,GAAK,kBAK5CA,EAASA,EAAqB,WAAI,GAAK,aAIvCA,EAASA,EAAmB,SAAI,GAAK,WAKrCA,EAASA,EAAgB,MAAI,GAAK,OACrC,CAhCD,CAgCGA,KAAaA,GAAW,CAAC,IAIrB,MAAMC,GAAc,qBAIdC,IAAe,qBAIfC,GAAa,WAIbC,GAAY,WAIZC,IAAa,WACnB,MAAMC,GACT,WAAApuQ,CAAY2tQ,EAAaF,KAAkBE,YACvC7hR,KAAK6hR,WAAaA,EAIlB7hR,KAAKogC,MAAQ,GACbpgC,KAAKuiR,OAAS,GACdviR,KAAK+lB,IAAM,EACf,CAIA,MAAA9Z,GACQjM,KAAK+lB,IAAI1lB,SACTL,KAAKuiR,OAAOl/Q,KAAK,IAAIsK,WAAW3N,KAAK+lB,MACrC/lB,KAAK+lB,IAAM,IAEf,IAAIhe,EAAM,EACV,IAAK,IAAIjH,EAAI,EAAGA,EAAId,KAAKuiR,OAAOliR,OAAQS,IACpCiH,GAAO/H,KAAKuiR,OAAOzhR,GAAGT,OAC1B,IAAI6B,EAAQ,IAAIyL,WAAW5F,GACvBpD,EAAS,EACb,IAAK,IAAI7D,EAAI,EAAGA,EAAId,KAAKuiR,OAAOliR,OAAQS,IACpCoB,EAAMiE,IAAInG,KAAKuiR,OAAOzhR,GAAI6D,GAC1BA,GAAU3E,KAAKuiR,OAAOzhR,GAAGT,OAG7B,OADAL,KAAKuiR,OAAS,GACPrgR,CACX,CAOA,IAAAkkD,GAII,OAHApmD,KAAKogC,MAAM/8B,KAAK,CAAEk/Q,OAAQviR,KAAKuiR,OAAQx8P,IAAK/lB,KAAK+lB,MACjD/lB,KAAKuiR,OAAS,GACdviR,KAAK+lB,IAAM,GACJ/lB,IACX,CAKA,IAAA2U,GAEI,IAAI7J,EAAQ9K,KAAKiM,SAEbu2B,EAAOxiC,KAAKogC,MAAM7lB,MACtB,IAAKioB,EACD,MAAM,IAAIp7B,MAAM,mCAKpB,OAJApH,KAAKuiR,OAAS//O,EAAK+/O,OACnBviR,KAAK+lB,IAAMyc,EAAKzc,IAEhB/lB,KAAKwiR,OAAO13Q,EAAM5D,YACXlH,KAAKqrD,IAAIvgD,EACpB,CAQA,GAAA0zB,CAAIikP,EAASl/Q,GACT,OAAOvD,KAAKwiR,QAASC,GAAW,EAAKl/Q,KAAU,EACnD,CAIA,GAAA8nD,CAAIvgD,GAMA,OALI9K,KAAK+lB,IAAI1lB,SACTL,KAAKuiR,OAAOl/Q,KAAK,IAAIsK,WAAW3N,KAAK+lB,MACrC/lB,KAAK+lB,IAAM,IAEf/lB,KAAKuiR,OAAOl/Q,KAAKyH,GACV9K,IACX,CAIA,MAAAwiR,CAAOzgR,GAGH,IAFA2gR,GAAa3gR,GAENA,EAAQ,KACX/B,KAAK+lB,IAAI1iB,KAAc,IAARtB,EAAgB,KAC/BA,KAAkB,EAGtB,OADA/B,KAAK+lB,IAAI1iB,KAAKtB,GACP/B,IACX,CAIA,KAAA2iR,CAAM5gR,GAGF,OAFA6gR,GAAY7gR,GACZqwQ,EAAcrwQ,EAAO/B,KAAK+lB,KACnB/lB,IACX,CAIA,IAAA89D,CAAK/7D,GAED,OADA/B,KAAK+lB,IAAI1iB,KAAKtB,EAAQ,EAAI,GACnB/B,IACX,CAIA,KAAAkC,CAAMH,GAEF,OADA/B,KAAKwiR,OAAOzgR,EAAMmF,YACXlH,KAAKqrD,IAAItpD,EACpB,CAIA,MAAAwlB,CAAOxlB,GACH,IAAI+I,EAAQ9K,KAAK6hR,WAAW9/Q,GAE5B,OADA/B,KAAKwiR,OAAO13Q,EAAM5D,YACXlH,KAAKqrD,IAAIvgD,EACpB,CAIA,KAAA+3Q,CAAM9gR,IAmSV,SAAuBkH,GACnB,GAAkB,iBAAPA,EAAiB,CACxB,MAAMF,EAAIE,EAEV,GADAA,EAAMrE,OAAOqE,GACTrE,OAAOyR,MAAMpN,IAAc,QAANF,EACrB,MAAM,IAAI3B,MAAM,oBAAsB2B,EAE9C,MACK,GAAkB,iBAAPE,EACZ,MAAM,IAAI7B,MAAM,2BAA6B6B,GAEjD,GAAIrE,OAAO84G,SAASz0G,KACfA,EAAMg5Q,IAAeh5Q,EAAMi5Q,IAC5B,MAAM,IAAI96Q,MAAM,oBAAsB6B,EAC9C,CAhTQ65Q,CAAc/gR,GACd,IAAI+I,EAAQ,IAAI6C,WAAW,GAE3B,OADA,IAAI0e,SAASvhB,EAAMmG,QAAQ8xQ,WAAW,EAAGhhR,GAAO,GACzC/B,KAAKqrD,IAAIvgD,EACpB,CAIA,MAAAwlH,CAAOvuH,GACH,IAAI+I,EAAQ,IAAI6C,WAAW,GAE3B,OADA,IAAI0e,SAASvhB,EAAMmG,QAAQ+xQ,WAAW,EAAGjhR,GAAO,GACzC/B,KAAKqrD,IAAIvgD,EACpB,CAIA,OAAAm4Q,CAAQlhR,GACJ2gR,GAAa3gR,GACb,IAAI+I,EAAQ,IAAI6C,WAAW,GAE3B,OADA,IAAI0e,SAASvhB,EAAMmG,QAAQod,UAAU,EAAGtsB,GAAO,GACxC/B,KAAKqrD,IAAIvgD,EACpB,CAIA,QAAAo4Q,CAASnhR,GACL6gR,GAAY7gR,GACZ,IAAI+I,EAAQ,IAAI6C,WAAW,GAE3B,OADA,IAAI0e,SAASvhB,EAAMmG,QAAQsiQ,SAAS,EAAGxxQ,GAAO,GACvC/B,KAAKqrD,IAAIvgD,EACpB,CAIA,MAAAq4Q,CAAOphR,GAKH,OAJA6gR,GAAY7gR,GAGZqwQ,EADArwQ,GAAUA,GAAS,EAAMA,GAAS,MAAS,EACtB/B,KAAK+lB,KACnB/lB,IACX,CAIA,QAAAojR,CAASrhR,GACL,IAAI+I,EAAQ,IAAI6C,WAAW,GAAIosF,EAAO,IAAI1tE,SAASvhB,EAAMmG,QAAS4sQ,EAAKvL,EAAW1rQ,IAAI7E,GAGtF,OAFAg4F,EAAKw5K,SAAS,EAAGsK,EAAGx0L,IAAI,GACxB0Q,EAAKw5K,SAAS,EAAGsK,EAAGxzL,IAAI,GACjBrqF,KAAKqrD,IAAIvgD,EACpB,CAIA,OAAAu4Q,CAAQthR,GACJ,IAAI+I,EAAQ,IAAI6C,WAAW,GAAIosF,EAAO,IAAI1tE,SAASvhB,EAAMmG,QAAS4sQ,EAAKvL,EAAWgB,KAAKvxQ,GAGvF,OAFAg4F,EAAKw5K,SAAS,EAAGsK,EAAGx0L,IAAI,GACxB0Q,EAAKw5K,SAAS,EAAGsK,EAAGxzL,IAAI,GACjBrqF,KAAKqrD,IAAIvgD,EACpB,CAIA,KAAAw4Q,CAAMvhR,GACF,IAAI87Q,EAAKvL,EAAW1rQ,IAAI7E,GAExB,OADAivQ,EAAc6M,EAAGx0L,GAAIw0L,EAAGxzL,GAAIrqF,KAAK+lB,KAC1B/lB,IACX,CAIA,MAAAujR,CAAOxhR,GACH,MAAM87Q,EAAKvL,EAAW1rQ,IAAI7E,GAE1BqzD,EAAOyoN,EAAGxzL,IAAM,GAEhB,OADA2mL,EAD0B6M,EAAGx0L,IAAM,EAAKj0B,GAAayoN,EAAGxzL,IAAM,EAAMwzL,EAAGx0L,KAAO,IAAOj0B,EAC/Dp1D,KAAK+lB,KACpB/lB,IACX,CAIA,MAAAwjR,CAAOzhR,GACH,MAAM87Q,EAAKvL,EAAWgB,KAAKvxQ,GAE3B,OADAivQ,EAAc6M,EAAGx0L,GAAIw0L,EAAGxzL,GAAIrqF,KAAK+lB,KAC1B/lB,IACX,EAEG,MAAM,GACT,WAAAkU,CAAY6R,EAAK+7P,EAAaH,KAAkBG,YAC5C9hR,KAAK8hR,WAAaA,EAClB9hR,KAAKyjR,SAAW5S,EAIhB7wQ,KAAKwiR,OAASnQ,EACdryQ,KAAK+lB,IAAMA,EACX/lB,KAAK+H,IAAMge,EAAI1lB,OACfL,KAAK85F,IAAM,EACX95F,KAAK+5F,KAAO,IAAI1tE,SAAStG,EAAI9U,OAAQ8U,EAAIgJ,WAAYhJ,EAAI7e,WAC7D,CAIA,GAAAs3B,GACI,IAAIA,EAAMx+B,KAAKwiR,SAAUC,EAAUjkP,IAAQ,EAAGklP,EAAiB,EAANllP,EACzD,GAAIikP,GAAW,GAAKiB,EAAW,GAAKA,EAAW,EAC3C,MAAM,IAAIt8Q,MAAM,yBAA2Bq7Q,EAAU,cAAgBiB,GACzE,MAAO,CAACjB,EAASiB,EACrB,CAOA,IAAAj0M,CAAKi0M,EAAUjB,GACX,IAAIj/Q,EAAQxD,KAAK85F,IACjB,OAAQ4pL,GACJ,KAAK1B,GAAS2B,OACV,KAA8B,IAAvB3jR,KAAK+lB,IAAI/lB,KAAK85F,SAGrB,MAEJ,KAAKkoL,GAAS4B,MACV5jR,KAAK85F,KAAO,EAChB,KAAKkoL,GAAS6B,MACV7jR,KAAK85F,KAAO,EACZ,MACJ,KAAKkoL,GAAS8B,gBACV,IAAI/7Q,EAAM/H,KAAKwiR,SACfxiR,KAAK85F,KAAO/xF,EACZ,MACJ,KAAKi6Q,GAAS+B,WACV,OAAS,CACL,MAAOjvQ,EAAIkvQ,GAAMhkR,KAAKw+B,MACtB,GAAIwlP,IAAOhC,GAASiC,SAAU,CAC1B,QAAgBx4Q,IAAZg3Q,GAAyB3tQ,IAAO2tQ,EAChC,MAAM,IAAIr7Q,MAAM,yBAEpB,KACJ,CACApH,KAAKyvE,KAAKu0M,EAAIlvQ,EAClB,CACA,MACJ,QACI,MAAM,IAAI1N,MAAM,uBAAyBs8Q,GAGjD,OADA1jR,KAAK8wQ,eACE9wQ,KAAK+lB,IAAIqH,SAAS5pB,EAAOxD,KAAK85F,IACzC,CAIA,YAAAg3K,GACI,GAAI9wQ,KAAK85F,IAAM95F,KAAK+H,IAChB,MAAM,IAAIyR,WAAW,gBAC7B,CAIA,KAAAmpQ,GACI,OAAuB,EAAhB3iR,KAAKwiR,QAChB,CAIA,MAAAW,GACI,IAAIe,EAAMlkR,KAAKwiR,SAEf,OAAQ0B,IAAQ,IAAa,EAANA,EAC3B,CAIA,KAAAZ,GACI,OAAOhR,EAAWhB,OAAOtxQ,KAAKyjR,WAClC,CAIA,MAAAD,GACI,OAAOlR,EAAWkB,QAAQxzQ,KAAKyjR,WACnC,CAIA,MAAAF,GACI,IAAKl6L,EAAIgB,GAAMrqF,KAAKyjR,WAEhBlzP,IAAW,EAAL84D,GAGV,OAFAA,GAAOA,IAAO,GAAY,EAALgB,IAAW,IAAO95D,EACvC85D,EAAMA,IAAO,EAAK95D,EACX+hP,EAAWhB,IAAIjoL,EAAIgB,EAC9B,CAIA,IAAAvsB,GACI,IAAKurB,EAAIgB,GAAMrqF,KAAKyjR,WACpB,OAAc,IAAPp6L,GAAmB,IAAPgB,CACvB,CAIA,OAAA44L,GAEI,OAAOjjR,KAAK+5F,KAAKpsE,WAAW3tB,KAAK85F,KAAO,GAAK,GAAG,EACpD,CAIA,QAAAopL,GAEI,OAAOljR,KAAK+5F,KAAKs5K,UAAUrzQ,KAAK85F,KAAO,GAAK,GAAG,EACnD,CAIA,OAAAupL,GACI,OAAO/Q,EAAWkB,KAAKxzQ,KAAKkjR,WAAYljR,KAAKkjR,WACjD,CAIA,QAAAE,GACI,OAAO9Q,EAAWhB,IAAItxQ,KAAKkjR,WAAYljR,KAAKkjR,WAChD,CAIA,KAAAL,GAEI,OAAO7iR,KAAK+5F,KAAKoqL,YAAYnkR,KAAK85F,KAAO,GAAK,GAAG,EACrD,CAIA,MAAAw2B,GAEI,OAAOtwH,KAAK+5F,KAAKqqL,YAAYpkR,KAAK85F,KAAO,GAAK,GAAG,EACrD,CAIA,KAAA53F,GACI,IAAI6F,EAAM/H,KAAKwiR,SAAUh/Q,EAAQxD,KAAK85F,IAGtC,OAFA95F,KAAK85F,KAAO/xF,EACZ/H,KAAK8wQ,eACE9wQ,KAAK+lB,IAAIqH,SAAS5pB,EAAOA,EAAQuE,EAC5C,CAIA,MAAAwf,GACI,OAAOvnB,KAAK8hR,WAAW9hR,KAAKkC,QAChC,EAKJ,SAAS0gR,GAAY35Q,GACjB,GAAkB,iBAAPA,EACPA,EAAMrE,OAAOqE,QAEZ,GAAkB,iBAAPA,EACZ,MAAM,IAAI7B,MAAM,yBAA2B6B,GAE/C,IAAKrE,OAAO4wG,UAAUvsG,IAClBA,EAAMm5Q,IACNn5Q,EAAMo5Q,GACN,MAAM,IAAIj7Q,MAAM,kBAAoB6B,EAC5C,CAIA,SAASy5Q,GAAaz5Q,GAClB,GAAkB,iBAAPA,EACPA,EAAMrE,OAAOqE,QAEZ,GAAkB,iBAAPA,EACZ,MAAM,IAAI7B,MAAM,0BAA4B6B,GAEhD,IAAKrE,OAAO4wG,UAAUvsG,IAClBA,EAAMk5Q,IACNl5Q,EAAM,EACN,MAAM,IAAI7B,MAAM,mBAAqB6B,EAC7C,CCpdO,SAAS2hH,GAAW/tC,EAAO96E,GAC9B,MAAMwgD,EAA2B,QAAnBs6B,EAAM24L,UACdV,EAAc/yQ,EAAO86E,GACF,OAAnBA,EAAM24L,UACFP,EAAalzQ,EAAO86E,GACpBwnM,GAAcxnM,EAAO96E,GAC/B,IAAc,IAAVwgD,EACA,OAEJ,IAAIikD,EACJ,OAAQ3pB,EAAM24L,WACV,IAAK,OACDhvK,EAAS,YAAY89K,GAAkBznM,WAAe,GAAU96E,KAChE,MACJ,IAAK,MACDykG,EAAS,YAAY+9K,GAAiB1nM,WAAe,GAAU96E,KAC/D,MACJ,QACIykG,EAASg+K,GAAe3nM,EAAO96E,EAAOwgD,GAG9C,OAAO,IAAIk/N,GAAW5kM,EAAO2pB,EACjC,CAIO,SAASi+K,GAAc5nM,EAAOviE,EAAOvY,GACxC,MAAMwgD,EAAQ8hO,GAAcxnM,EAAO96E,GACnC,IAAc,IAAVwgD,EACA,OAAO,IAAIk/N,GAAW5kM,EAAO,cAAcviE,EAAQ,MAAMkqQ,GAAe3nM,EAAO96E,EAAOwgD,KAG9F,CAeA,SAAS8hO,GAAcxnM,EAAO96E,GAC1B,YAAqB0J,IAAjBoxE,EAAMszC,OACCu0J,GAAiB3iR,EAAO86E,EAAMszC,aAEtB1kH,IAAfoxE,EAAMm4L,KACFn4L,EAAMm4L,KAAKmH,KACJv3Q,OAAO4wG,UAAUzzG,GAErB86E,EAAMm4L,KAAKjyQ,OAAOiB,KAAM8wB,GAAMA,EAAEtN,SAAWzlB,GAE/CqzQ,EAAiBrzQ,EAAO86E,EAAMtoE,QACzC,CACA,SAASmwQ,GAAiB3iR,EAAOouH,GAC7B,OAAQA,GACJ,KAAK,EAAW6jJ,OACZ,MAAuB,iBAATjyQ,EAClB,KAAK,EAAWkyQ,MACZ,MAAoB,iBAATlyQ,OAGP6C,OAAOyR,MAAMtU,IAAW6C,OAAO84G,SAAS37G,OAGxCA,EAAQkgR,IAAelgR,EAAQmgR,KACxB,GAAGngR,EAAM4iR,0BAGxB,KAAK,EAAW3G,MAChB,KAAK,EAAWI,SAChB,KAAK,EAAWF,OAEZ,QAAqB,iBAAVn8Q,IAAuB6C,OAAO4wG,UAAUzzG,QAG/CA,EAAQqgR,IAAargR,EAAQsgR,KACtB,GAAGtgR,EAAM4iR,0BAGxB,KAAK,EAAWxG,QAChB,KAAK,EAAWF,OAEZ,QAAqB,iBAAVl8Q,IAAuB6C,OAAO4wG,UAAUzzG,QAG/CA,EAAQogR,IAAcpgR,EAAQ,IACvB,GAAGA,EAAM4iR,0BAGxB,KAAK,EAAW5Q,KACZ,MAAuB,kBAAThyQ,EAClB,KAAK,EAAW+xQ,OACZ,MAAoB,iBAAT/xQ,IAGJ4/Q,KAAkBI,UAAUhgR,IAAU,gBACjD,KAAK,EAAWsrH,MACZ,OAAOtrH,aAAiB4L,WAC5B,KAAK,EAAWumQ,MAChB,KAAK,EAAWE,SAChB,KAAK,EAAWE,OAEZ,GAAoB,iBAATvyQ,GACS,iBAATA,GACU,iBAATA,GAAqBA,EAAM1B,OAAS,EAC5C,IAEI,OADAiyQ,EAAWp6O,MAAMn2B,IACV,CACX,CACA,MAAO0C,GACH,MAAO,GAAG1C,gBACd,CAEJ,OAAO,EACX,KAAK,EAAWsyQ,QAChB,KAAK,EAAWF,OAEZ,GAAoB,iBAATpyQ,GACS,iBAATA,GACU,iBAATA,GAAqBA,EAAM1B,OAAS,EAC5C,IAEI,OADAiyQ,EAAWc,OAAOrxQ,IACX,CACX,CACA,MAAO0C,GACH,MAAO,GAAG1C,gBACd,CAEJ,OAAO,EAEnB,CACA,SAASyiR,GAAe3nM,EAAO1gB,EAAK9nD,GAGhC,OAFAA,EACsB,iBAAXA,EAAsB,KAAKA,IAAY,SAAS,GAAU8nD,UAChD1wD,IAAjBoxE,EAAMszC,OACC,YAoEf,SAA+BA,GAC3B,OAAQA,GACJ,KAAK,EAAW2jJ,OACZ,MAAO,SACX,KAAK,EAAWC,KACZ,MAAO,UACX,KAAK,EAAWG,MAChB,KAAK,EAAWI,OAChB,KAAK,EAAWF,SACZ,MAAO,iBACX,KAAK,EAAWD,OAChB,KAAK,EAAWE,QACZ,MAAO,kBACX,KAAK,EAAWhnJ,MACZ,MAAO,aACX,KAAK,EAAW2mJ,OACZ,MAAO,mBACX,KAAK,EAAWC,MACZ,MAAO,mBACX,KAAK,EAAWkK,QAChB,KAAK,EAAWF,OACZ,MAAO,kBACX,KAAK,EAAWD,MAChB,KAAK,EAAWI,SAChB,KAAK,EAAWF,OACZ,MAAO,iBAEnB,CA/F2B0G,CAAsB/nM,EAAMszC,UAAY97G,OAE5C5I,IAAfoxE,EAAMm4L,KACC,YAAYn4L,EAAMm4L,KAAKzsQ,aAAe8L,EAE1C,YAAYwwQ,GAAqBhoM,EAAMtoE,WAAaF,CAC/D,CACO,SAAS,GAAU8nD,GACtB,cAAeA,GACX,IAAK,SACD,OAAY,OAARA,EACO,OAEPA,aAAexuD,WACR,cAAcwuD,EAAI97D,UAEzB6I,MAAMF,QAAQmzD,GACP,SAASA,EAAI97D,UAEpBy0Q,EAAc34M,GACPmoN,GAAkBnoN,EAAI0gB,SAE7Bo4L,EAAa94M,GACNooN,GAAiBpoN,EAAI0gB,SAE5Bu4L,EAAiBj5M,GACV0oN,GAAqB1oN,EAAInI,MAEhCy8M,EAAUt0M,GACH,WAAWA,EAAIu0M,YAEnB,SACX,IAAK,SACD,OAAOv0M,EAAI97D,OAAS,GAAK,SAAW,IAAI87D,EAAIz3D,MAAM,KAAKiQ,KAAK,UAChE,IAAK,UAEL,IAAK,SACD,OAAOwD,OAAOgkD,GAClB,IAAK,SACD,OAAOhkD,OAAOgkD,GAAO,IACzB,QAEI,cAAcA,EAE1B,CACA,SAAS0oN,GAAqB7wN,GAC1B,MAAO,mBAAmBA,EAAK28M,WACnC,CACA,SAAS2T,GAAkBznM,GACvB,OAAQA,EAAMk4L,UACV,IAAK,UACD,MAAO,gBAAgBl4L,EAAMtoE,QAAQhM,cACzC,IAAK,OACD,MAAO,gBAAgBs0E,EAAMm4L,KAAKzsQ,cACtC,IAAK,SACD,MAAO,gBAAgB,EAAWs0E,EAAMszC,WAEpD,CACA,SAASo0J,GAAiB1nM,GACtB,OAAQA,EAAMs4L,SACV,IAAK,UACD,MAAO,eAAe,EAAWt4L,EAAMq4L,YAAYr4L,EAAMtoE,QAAQhM,cACrE,IAAK,OACD,MAAO,eAAe,EAAWs0E,EAAMq4L,YAAYr4L,EAAMm4L,KAAKzsQ,cAClE,IAAK,SACD,MAAO,eAAe,EAAWs0E,EAAMq4L,YAAY,EAAWr4L,EAAMszC,WAEhF,CC9MO,SAAS,GAAQklJ,EAAa9gQ,EAQrCguC,GAAQ,GACJ,OAAO,IAAIuiO,GAAmBzP,EAAa9gQ,EAASguC,EACxD,CACA,MAAMwiO,GAAsB,IAAIvuO,QAChC,MAAMsuO,GACF,gBAAIE,GACA,MAAMrmJ,EAASomJ,GAAoB/+Q,IAAIhG,KAAKg0D,MAC5C,GAAI2qE,EACA,OAAOA,EAEX,MAAMqmJ,EAAehlR,KAAKg0D,KAAKxrC,OAC1BhoB,SACA6jD,KAAK,CAACz8C,EAAGC,IAAMD,EAAE4f,OAAS3f,EAAE2f,QAEjC,OADAu9P,GAAoB5+Q,IAAInG,KAAKg0D,KAAMgxN,GAC5BA,CACX,CACA,WAAA9wQ,CAAYmhQ,EAAa9gQ,EAASguC,GAAQ,GACtCviD,KAAKilR,MAAQ,IAAI14P,IACjBvsB,KAAKklR,KAAO,IAAI34P,IAChBvsB,KAAKuiD,MAAQA,EACbviD,KAAKg0D,KAAOqhN,EACZr1Q,KAAKuU,QAAUvU,KAAKu0Q,GAAehgQ,QAAyCA,EAAU,EAAO8gQ,GAC7Fr1Q,KAAKwoB,OAAS6sP,EAAY7sP,OAC1BxoB,KAAK67Q,OAASxG,EAAYwG,OAC1B77Q,KAAK8vD,QAAUulN,EAAYvlN,OAC/B,CACA,UAAAq1N,CAAW39P,GAIP,OAHKxnB,KAAKolR,kBACNplR,KAAKolR,gBAAkB,IAAI74P,IAAIvsB,KAAKg0D,KAAKxrC,OAAO9mB,IAAK2b,GAAM,CAACA,EAAEmK,OAAQnK,MAEnErd,KAAKolR,gBAAgBp/Q,IAAIwhB,EACpC,CACA,SAAA69P,CAAU5Q,GAEN,OADA6Q,GAAUtlR,KAAKuU,QAASkgQ,GACjBD,EAAgBx0Q,KAAKuU,QAASkgQ,EACzC,CACA,KAAA8Q,CAAM1oM,GAEF,OADAyoM,GAAUtlR,KAAKuU,QAASsoE,GnBlCzB,SAEP9mE,EAAQ8mE,GACJ,MAAM54E,EAAO44E,EAAM63L,UACnB,GAAI73L,EAAM43L,MACN,OAAO1+P,EAAO8mE,EAAM43L,MAAMC,WAAWC,OAAS1wQ,EAElD,GA5Ba,GA4BT44E,EAAM84L,SAGN,YAAyBlqQ,IAAjBsK,EAAO9R,IACXrC,OAAOZ,UAAU4S,eAAe7T,KAAKgW,EAAQ9R,GAErD,OAAQ44E,EAAM24L,WACV,IAAK,OACD,OAAOz/P,EAAO9R,GAAM5D,OAAS,EACjC,IAAK,MACD,OAAOuB,OAAOC,KAAKkU,EAAO9R,IAAO5D,OAAS,EAC9C,IAAK,SACD,OD8BL,SAA2BkD,EAAMxB,GACpC,OAAQwB,GACJ,KAAK,EAAWwwQ,KACZ,OAAiB,IAAVhyQ,EACX,KAAK,EAAW+xQ,OACZ,MAAiB,KAAV/xQ,EACX,KAAK,EAAWsrH,MACZ,OAAOtrH,aAAiB4L,aAAe5L,EAAMmF,WACjD,QACI,OAAgB,GAATnF,EAEnB,CCzCoByjR,CAAkB3oM,EAAMszC,OAAQp6G,EAAO9R,IACnD,IAAK,OACD,OAAO8R,EAAO9R,KAAU44E,EAAMm4L,KAAKjyQ,OAAO,GAAGykB,OAErD,MAAM,IAAIpgB,MAAM,uCACpB,CmBWeq+Q,CAAYzlR,KAAKuU,QAASsoE,EACrC,CACA,KAAA4/B,CAAM5/B,GACFyoM,GAAUtlR,KAAKuU,QAASsoE,GnBiCzB,SAEP9mE,EAAQ8mE,GACJ,MAAM54E,EAAO44E,EAAM63L,UACnB,GAAI73L,EAAM43L,MAAO,CACb,MAAMiR,EAAiB7oM,EAAM43L,MAAMC,UAC/B3+P,EAAO2vQ,GAAgB/Q,OAAS1wQ,IAChC8R,EAAO2vQ,GAAkB,CAAE/Q,UAAMlpQ,GAEzC,MACK,GAtGQ,GAsGJoxE,EAAM84L,gBAIJ5/P,EAAO9R,QAGd,OAAQ44E,EAAM24L,WACV,IAAK,MACDz/P,EAAO9R,GAAQ,CAAC,EAChB,MACJ,IAAK,OACD8R,EAAO9R,GAAQ,GACf,MACJ,IAAK,OACD8R,EAAO9R,GAAQ44E,EAAMm4L,KAAKjyQ,OAAO,GAAGykB,OACpC,MACJ,IAAK,SACDzR,EAAO9R,GAAQ2vQ,EAAgB/2L,EAAMszC,OAAQtzC,EAAMg3L,cAInE,CmBhEQ8R,CAAY3lR,KAAKuU,QAASsoE,EAC9B,CACA,GAAA72E,CAAI62E,GACAyoM,GAAUtlR,KAAKuU,QAASsoE,GACxB,MAAM96E,EAAQi+D,EAAUhgE,KAAKuU,QAASsoE,GACtC,OAAQA,EAAM24L,WACV,IAAK,OAED,IAAIt7P,EAAOla,KAAKilR,MAAMj/Q,IAAI62E,GAM1B,OALK3iE,GAAQA,EAAKq6P,KAAiBxyQ,GAC/B/B,KAAKilR,MAAM9+Q,IAAI02E,EAEd3iE,EAAO,IAAI0rQ,GAAgB/oM,EAAO96E,EAAO/B,KAAKuiD,QAE5CroC,EACX,IAAK,MACD,IAAIxY,EAAM1B,KAAKklR,KAAKl/Q,IAAI62E,GAMxB,OALKn7E,GAAOA,EAAI6yQ,KAAiBxyQ,GAC7B/B,KAAKklR,KAAK/+Q,IAAI02E,EAEbn7E,EAAM,IAAImkR,GAAehpM,EAAO96E,EAAO/B,KAAKuiD,QAE1C7gD,EACX,IAAK,UACD,OAAOokR,GAAiBjpM,EAAO96E,EAAO/B,KAAKuiD,OAC/C,IAAK,SACD,YAAkB92C,IAAV1J,EACF6xQ,EAAgB/2L,EAAMszC,QAAQ,GAC9B41J,GAAclpM,EAAO96E,GAC/B,IAAK,OACD,OAAQA,QAAqCA,EAAQ86E,EAAMm4L,KAAKjyQ,OAAO,GAAGykB,OAEtF,CACA,GAAArhB,CAAI02E,EAAO96E,GAEP,GADAujR,GAAUtlR,KAAKuU,QAASsoE,GACpB78E,KAAKuiD,MAAO,CACZ,MAAMr3C,EAAM0/G,GAAW/tC,EAAO96E,GAC9B,GAAImJ,EACA,MAAMA,CAEd,CACA,IAAI86Q,EAEAA,EADmB,WAAnBnpM,EAAM24L,UACEyQ,GAAeppM,EAAO96E,GAEzBkzQ,EAAalzQ,IAAU+yQ,EAAc/yQ,GAClCA,EAAMwyQ,GAGN2R,GAAYrpM,EAAO96E,GAE/B8yQ,EAAU70Q,KAAKuU,QAASsoE,EAAOmpM,EACnC,CACA,UAAAG,GACI,OAAOnmR,KAAKuU,QAAQ6xQ,QACxB,CACA,UAAAC,CAAWtkR,GACP/B,KAAKuU,QAAQ6xQ,SAAWrkR,CAC5B,EAEJ,SAASujR,GAAU7uE,EAAO1mJ,GACtB,GAAIA,EAAOvlB,OAAOmmO,WAAal6D,EAAMi6D,UACjC,MAAM,IAAI+Q,GAAW1xN,EAAQ,cAAcA,EAAOxnD,2BAA2BkuM,EAAMi6D,YAAa,oBAExG,CAeA,MAAMkV,GACF,KAAA/oM,GACI,OAAO78E,KAAKsmR,MAChB,CACA,QAAIlkR,GACA,OAAOpC,KAAKouL,KAAK/tL,MACrB,CACA,WAAA6T,CAAY2oE,EAAO0pM,EAAahkO,GAC5BviD,KAAKsmR,OAASzpM,EACd78E,KAAKouL,KAAOpuL,KAAKu0Q,GAAegS,EAChCvmR,KAAKuiD,MAAQA,CACjB,CACA,GAAAv8C,CAAIsU,GACA,MAAMk7B,EAAOx1C,KAAKouL,KAAK9zK,GACvB,YAAgB7O,IAAT+pC,OACD/pC,EACA+6Q,GAAkBxmR,KAAKsmR,OAAQ9wO,EAAMx1C,KAAKuiD,MACpD,CACA,GAAAp8C,CAAImU,EAAOk7B,GACP,GAAIl7B,EAAQ,GAAKA,GAASta,KAAKouL,KAAK/tL,OAChC,MAAM,IAAIohR,GAAWzhR,KAAKsmR,OAAQ,cAAchsQ,EAAQ,mBAE5D,GAAIta,KAAKuiD,MAAO,CACZ,MAAMr3C,EAAMu5Q,GAAczkR,KAAKsmR,OAAQhsQ,EAAOk7B,GAC9C,GAAItqC,EACA,MAAMA,CAEd,CACAlL,KAAKouL,KAAK9zK,GAASmsQ,GAAgBzmR,KAAKsmR,OAAQ9wO,EACpD,CACA,GAAA/f,CAAI+f,GACA,GAAIx1C,KAAKuiD,MAAO,CACZ,MAAMr3C,EAAMu5Q,GAAczkR,KAAKsmR,OAAQtmR,KAAKouL,KAAK/tL,OAAQm1C,GACzD,GAAItqC,EACA,MAAMA,CAEd,CACAlL,KAAKouL,KAAK/qL,KAAKojR,GAAgBzmR,KAAKsmR,OAAQ9wO,GAEhD,CACA,KAAAinE,GACIz8G,KAAKouL,KAAK9sJ,OAAO,EAAGthC,KAAKouL,KAAK/tL,OAClC,CACA,CAACwR,OAAO0J,YACJ,OAAOvb,KAAK+C,QAChB,CACA,IAAAlB,GACI,OAAO7B,KAAKouL,KAAKvsL,MACrB,CACA,OAACkB,GACG,IAAK,MAAMyyC,KAAQx1C,KAAKouL,WACdo4F,GAAkBxmR,KAAKsmR,OAAQ9wO,EAAMx1C,KAAKuiD,MAExD,CACA,QAAC9R,GACG,IAAK,IAAI3vC,EAAI,EAAGA,EAAId,KAAKouL,KAAK/tL,OAAQS,SAC5B,CAACA,EAAG0lR,GAAkBxmR,KAAKsmR,OAAQtmR,KAAKouL,KAAKttL,GAAId,KAAKuiD,OAEpE,EAgBJ,MAAMsjO,GACF,WAAA3xQ,CAAY2oE,EAAO0pM,EAAahkO,GAAQ,GACpCviD,KAAKkS,IAAMlS,KAAKu0Q,GAAegS,QAAiDA,EAAc,CAAC,EAC/FvmR,KAAKuiD,MAAQA,EACbviD,KAAKsmR,OAASzpM,CAClB,CACA,KAAAA,GACI,OAAO78E,KAAKsmR,MAChB,CACA,GAAAngR,CAAIrG,EAAKiC,GACL,GAAI/B,KAAKuiD,MAAO,CACZ,MAAMr3C,EDpLX,SAAuB2xE,EAAO/8E,EAAKiC,GACtC,MAAM2kR,EAAWhC,GAAiB5kR,EAAK+8E,EAAMq4L,QAC7C,IAAiB,IAAbwR,EACA,OAAO,IAAIjF,GAAW5kM,EAAO,oBAAoB2nM,GAAe,CAAEr0J,OAAQtzC,EAAMq4L,QAAUp1Q,EAAK4mR,MAEnG,MAAM57J,EAAWu5J,GAAcxnM,EAAO96E,GACtC,OAAiB,IAAb+oH,EACO,IAAI22J,GAAW5kM,EAAO,aAAa,GAAU/8E,OAAS0kR,GAAe3nM,EAAO96E,EAAO+oH,WAD9F,CAIJ,CC0KwB67J,CAAc3mR,KAAKsmR,OAAQxmR,EAAKiC,GAC5C,GAAImJ,EACA,MAAMA,CAEd,CAEA,OADAlL,KAAKkS,IAAI00Q,GAAc9mR,IA6G/B,SAAyB+8E,EAAO96E,GAC5B,MAAqB,WAAjB86E,EAAMs4L,QACC8Q,GAAeppM,EAAO96E,GAE1BmkR,GAAYrpM,EAAO96E,EAC9B,CAlHuC8kR,CAAgB7mR,KAAKsmR,OAAQvkR,GACrD/B,IACX,CACA,OAAOF,GACH,MAAMkH,EAAI4/Q,GAAc9mR,GAClBiG,EAAMnE,OAAOZ,UAAU4S,eAAe7T,KAAKC,KAAKkS,IAAKlL,GAI3D,OAHIjB,UACO/F,KAAKkS,IAAIlL,GAEbjB,CACX,CACA,KAAA02G,GACI,IAAK,MAAM38G,KAAO8B,OAAOC,KAAK7B,KAAKkS,YACxBlS,KAAKkS,IAAIpS,EAExB,CACA,GAAAkG,CAAIlG,GACA,IAAIq8D,EAAMn8D,KAAKkS,IAAI00Q,GAAc9mR,IAIjC,YAHY2L,IAAR0wD,IACAA,EAAM2qN,GAAkB9mR,KAAKsmR,OAAQnqN,EAAKn8D,KAAKuiD,QAE5C4Z,CACX,CACA,GAAAp2D,CAAIjG,GACA,OAAO8B,OAAOZ,UAAU4S,eAAe7T,KAAKC,KAAKkS,IAAK00Q,GAAc9mR,GACxE,CACA,KAAC+B,GACG,IAAK,MAAMklR,KAAUnlR,OAAOC,KAAK7B,KAAKkS,WAC5B80Q,GAAgBD,EAAQ/mR,KAAKsmR,OAAOpR,OAElD,CACA,QAACzkO,GACG,IAAK,MAAMw2O,KAAYrlR,OAAO6uC,QAAQzwC,KAAKkS,UACjC,CACF80Q,GAAgBC,EAAS,GAAIjnR,KAAKsmR,OAAOpR,QACzC4R,GAAkB9mR,KAAKsmR,OAAQW,EAAS,GAAIjnR,KAAKuiD,OAG7D,CACA,CAAC1wC,OAAO0J,YACJ,OAAOvb,KAAKywC,SAChB,CACA,QAAIruC,GACA,OAAOR,OAAOC,KAAK7B,KAAKkS,KAAK7R,MACjC,CACA,OAAC0C,GACG,IAAK,MAAMo5D,KAAOv6D,OAAOmB,OAAO/C,KAAKkS,WAC3B40Q,GAAkB9mR,KAAKsmR,OAAQnqN,EAAKn8D,KAAKuiD,MAEvD,CACA,OAAAzgD,CAAQolR,EAAY9yN,GAChB,IAAK,MAAMwmN,KAAY56Q,KAAKywC,UACxBy2O,EAAWnnR,KAAKq0D,EAASwmN,EAAS,GAAIA,EAAS,GAAI56Q,KAE3D,EAEJ,SAASimR,GAAeppM,EAAO96E,GAC3B,OAAKqzQ,EAAiBrzQ,GjB/RfwzQ,EiBkSOxzQ,EAAMwS,QjBlSSm8P,aiBmSxB7zL,EAAM43L,OACY,WAAnB53L,EAAM24L,UAGCzzQ,EAAMwS,QAAQxS,MAEE,0BAAvBA,EAAMiyD,KAAK28M,UACc,yBAAzB9zL,EAAMryC,OAAOmmO,SAGNwW,GAAiBplR,EAAMwS,SAE3BxS,EAAMwS,QAfFxS,CAgBf,CACA,SAAS+jR,GAAiBjpM,EAAO96E,EAAOwgD,GAoBpC,YAnBc92C,IAAV1J,IACIuzQ,EAAcz4L,EAAMtoE,WACnBsoE,EAAM43L,OACY,WAAnB53L,EAAM24L,UAGNzzQ,EAAQ,CACJ2uQ,UAAW7zL,EAAMtoE,QAAQo8P,SACzB5uQ,MAAOgkR,GAAclpM,EAAMtoE,QAAQiU,OAAO,GAAIzmB,IAGnB,0BAA1B86E,EAAMtoE,QAAQo8P,UACM,yBAAzB9zL,EAAMryC,OAAOmmO,UACb/mQ,EAAS7H,KAGTA,EAAQqlR,GAAmBrlR,KAG5B,IAAI+iR,GAAmBjoM,EAAMtoE,QAASxS,EAAOwgD,EACxD,CACA,SAASkkO,GAAgB5pM,EAAO96E,GAC5B,MAAsB,WAAlB86E,EAAMk4L,SACCkR,GAAeppM,EAAO96E,GAE1BmkR,GAAYrpM,EAAO96E,EAC9B,CACA,SAASykR,GAAkB3pM,EAAO96E,EAAOwgD,GACrC,MAAsB,WAAlBs6B,EAAMk4L,SACC+Q,GAAiBjpM,EAAO96E,EAAOwgD,GAEnCwjO,GAAclpM,EAAO96E,EAChC,CAOA,SAAS+kR,GAAkBjqM,EAAO96E,EAAOwgD,GACrC,MAAqB,WAAjBs6B,EAAMs4L,QACC2Q,GAAiBjpM,EAAO96E,EAAOwgD,GAEnCxgD,CACX,CACA,SAAS6kR,GAAc9mR,GACnB,MAAqB,iBAAPA,GAAiC,iBAAPA,EAAkBA,EAAMqY,OAAOrY,EAC3E,CAMA,SAASknR,GAAgBlnR,EAAKyD,GAC1B,OAAQA,GACJ,KAAK,EAAWuwQ,OACZ,OAAOh0Q,EACX,KAAK,EAAWk+Q,MAChB,KAAK,EAAWG,QAChB,KAAK,EAAWF,OAChB,KAAK,EAAWG,SAChB,KAAK,EAAWF,OAAQ,CACpB,MAAMhlQ,EAAItU,OAAOC,SAAS/E,GAC1B,GAAI8E,OAAO84G,SAASxkG,GAChB,OAAOA,EAEX,KACJ,CACA,KAAK,EAAW66P,KACZ,OAAQj0Q,GACJ,IAAK,OACD,OAAO,EACX,IAAK,QACD,OAAO,EAEf,MACJ,KAAK,EAAWq0Q,OAChB,KAAK,EAAWE,QACZ,IACI,OAAO/B,EAAWc,OAAOtzQ,EAC7B,CACA,MAAO6c,GAEP,CACA,MACJ,QAEI,IACI,OAAO21P,EAAWp6O,MAAMp4B,EAC5B,CACA,MAAO8c,GAEP,EAGR,OAAO9c,CACX,CACA,SAASimR,GAAclpM,EAAO96E,GAC1B,OAAQ86E,EAAMszC,QACV,KAAK,EAAW+jJ,MAChB,KAAK,EAAWE,SAChB,KAAK,EAAWE,OACR,iBAAkBz3L,GAClBA,EAAMg3L,cACU,iBAAT9xQ,IACPA,EAAQuwQ,EAAWp6O,MAAMn2B,IAE7B,MACJ,KAAK,EAAWsyQ,QAChB,KAAK,EAAWF,OACR,iBAAkBt3L,GAClBA,EAAMg3L,cACU,iBAAT9xQ,IACPA,EAAQuwQ,EAAWc,OAAOrxQ,IAItC,OAAOA,CACX,CACA,SAASmkR,GAAYrpM,EAAO96E,GACxB,OAAQ86E,EAAMszC,QACV,KAAK,EAAW+jJ,MAChB,KAAK,EAAWE,SAChB,KAAK,EAAWE,OACR,iBAAkBz3L,GAASA,EAAMg3L,aACjC9xQ,EAAQoW,OAAOpW,GAEM,iBAATA,GAAqC,iBAATA,IACxCA,EAAQuwQ,EAAWp6O,MAAMn2B,IAE7B,MACJ,KAAK,EAAWsyQ,QAChB,KAAK,EAAWF,OACR,iBAAkBt3L,GAASA,EAAMg3L,aACjC9xQ,EAAQoW,OAAOpW,GAEM,iBAATA,GAAqC,iBAATA,IACxCA,EAAQuwQ,EAAWc,OAAOrxQ,IAItC,OAAOA,CACX,CACA,SAASqlR,GAAmBxqI,GACxB,MAAMr0H,EAAS,CACXmoP,UAAW,yBACXloP,OAAQ,CAAC,GAEb,GAAI5e,EAASgzI,GACT,IAAK,MAAO51I,EAAG8tB,KAAMlzB,OAAO6uC,QAAQmsG,GAChCr0H,EAAOC,OAAOxhB,GAAKqgR,GAAkBvyP,GAG7C,OAAOvM,CACX,CACA,SAAS4+P,GAAiBhrN,GACtB,MAAMygF,EAAO,CAAC,EACd,IAAK,MAAO51I,EAAG8tB,KAAMlzB,OAAO6uC,QAAQ0rB,EAAI3zC,QACpCo0H,EAAK51I,GAAKsgR,GAAgBxyP,GAE9B,OAAO8nH,CACX,CACA,SAAS0qI,GAAgBnrN,GACrB,OAAQA,EAAI7S,KAAKqrN,MACb,IAAK,cACD,OAAOwS,GAAiBhrN,EAAI7S,KAAKvnD,OACrC,IAAK,YACD,OAAOo6D,EAAI7S,KAAKvnD,MAAMgB,OAAOrB,IAAI4lR,IACrC,IAAK,YACL,UAAK77Q,EACD,OAAO,KACX,QACI,OAAO0wD,EAAI7S,KAAKvnD,MAE5B,CACA,SAASslR,GAAkBzqI,GACvB,MAAM76I,EAAQ,CACV2uQ,UAAW,wBACXpnN,KAAM,CAAEqrN,UAAMlpQ,IAElB,cAAemxI,GACX,IAAK,SACD76I,EAAMunD,KAAO,CAAEqrN,KAAM,cAAe5yQ,MAAO66I,GAC3C,MACJ,IAAK,SACD76I,EAAMunD,KAAO,CAAEqrN,KAAM,cAAe5yQ,MAAO66I,GAC3C,MACJ,IAAK,UACD76I,EAAMunD,KAAO,CAAEqrN,KAAM,YAAa5yQ,MAAO66I,GACzC,MACJ,IAAK,SACD,GAAa,OAATA,EAAe,CACf,MAAM2qI,EAAY,EAClBxlR,EAAMunD,KAAO,CAAEqrN,KAAM,YAAa5yQ,MAAOwlR,EAC7C,MACK,GAAIr+Q,MAAMF,QAAQ4zI,GAAO,CAC1B,MAAM4qI,EAAY,CACd9W,UAAW,4BACX3tQ,OAAQ,IAEZ,GAAImG,MAAMF,QAAQ4zI,GACd,IAAK,MAAM5yI,KAAK4yI,EACZ4qI,EAAUzkR,OAAOM,KAAKgkR,GAAkBr9Q,IAGhDjI,EAAMunD,KAAO,CACTqrN,KAAM,YACN5yQ,MAAOylR,EAEf,MAEIzlR,EAAMunD,KAAO,CACTqrN,KAAM,cACN5yQ,MAAOqlR,GAAmBxqI,IAK1C,OAAO76I,CACX,CCxgBA,MAAM0lR,GAAe,CACjBC,mBAAmB,GAQhB,SAAS,GAAW78N,EAAQ3oD,EAAO0D,GACtC,MAAMmB,EAAM,GAAQ8jD,OAAQp/C,GAAW,GAEvC,OADAk8Q,GAAY5gR,EAAK,IAAI,GAAa7E,GARtC,SAAyB0D,GACrB,OAAOA,EAAUhE,OAAO+nB,OAAO/nB,OAAO+nB,OAAO,CAAC,EAAG89P,IAAe7hR,GAAW6hR,EAC/E,CAM8CG,CAAgBhiR,IAAU,EAAO1D,EAAMgF,YAC1EH,EAAIwN,OACf,CAsBA,SAASozQ,GAAYpzQ,EAASszQ,EAAQjiR,EAASkiR,EAAWC,GACtD,IAAIprQ,EACJ,MAAM1J,EAAM60Q,EAAYD,EAAO9/Q,IAAM8/Q,EAAO/tL,IAAMiuL,EAClD,IAAItF,EACAiB,EACJ,MAAMsE,EAAgD,QAA/BrrQ,EAAKpI,EAAQ4xQ,oBAAiC,IAAPxpQ,EAAgBA,EAAK,GACnF,KAAOkrQ,EAAO/tL,IAAM7mF,KACfwvQ,EAASiB,GAAYmE,EAAOrpP,OACzBspP,GAAapE,GAAY1B,GAASiC,WAFjB,CAKrB,MAAMpnM,EAAQtoE,EAAQ4wQ,WAAW1C,GACjC,IAAK5lM,EAAO,CACR,MAAM37E,EAAO2mR,EAAOp4M,KAAKi0M,EAAUjB,GAC/B78Q,EAAQ8hR,mBACRM,EAAc3kR,KAAK,CAAEupH,GAAI61J,EAASiB,WAAUxiR,SAEhD,QACJ,CACA+mR,GAAU1zQ,EAASszQ,EAAQhrM,EAAO6mM,EAAU99Q,EAChD,CACA,GAAIkiR,IACIpE,GAAY1B,GAASiC,UAAYxB,IAAYsF,GAC7C,MAAM,IAAI3gR,MAAM,yBAGpB4gR,EAAc3nR,OAAS,GACvBkU,EAAQ8xQ,WAAW2B,EAE3B,CAIO,SAASC,GAAU1zQ,EAASszQ,EAAQhrM,EAAO6mM,EAAU99Q,GACxD,IAAI+W,EACJ,OAAQkgE,EAAM24L,WACV,IAAK,SACDjhQ,EAAQpO,IAAI02E,EAAOqrM,GAAWL,EAAQhrM,EAAMszC,SAC5C,MACJ,IAAK,OACD,MAAMh0D,EAAM+rN,GAAWL,EAAQ,EAAW7J,OAC1C,GAAInhM,EAAMm4L,KAAKmH,KACX5nQ,EAAQpO,IAAI02E,EAAO1gB,QAInB,GADW0gB,EAAMm4L,KAAKjyQ,OAAOiB,KAAM8wB,GAAMA,EAAEtN,SAAW20C,GAElD5nD,EAAQpO,IAAI02E,EAAO1gB,QAElB,GAAIv2D,EAAQ8hR,kBAAmB,CAChC,MAAMxlR,EAAQ,GACdkwQ,EAAcj2M,EAAKj6D,GACnB,MAAM8lR,EAAgD,QAA/BrrQ,EAAKpI,EAAQ4xQ,oBAAiC,IAAPxpQ,EAAgBA,EAAK,GACnFqrQ,EAAc3kR,KAAK,CACfupH,GAAI/vC,EAAMr1D,OACVk8P,WACAxiR,KAAM,IAAIyM,WAAWzL,KAEzBqS,EAAQ8xQ,WAAW2B,EACvB,CAEJ,MACJ,IAAK,UACDzzQ,EAAQpO,IAAI02E,EAAOsrM,GAAiBN,EAAQjiR,EAASi3E,EAAOtoE,EAAQvO,IAAI62E,KACxE,MACJ,IAAK,QAyDb,SAAuBgrM,EAAQnE,EAAUxpQ,EAAMtU,GAC3C,IAAI+W,EACJ,MAAMkgE,EAAQ3iE,EAAK2iE,QACnB,GAAuB,YAAnBA,EAAMk4L,SAEN,YADA76P,EAAKub,IAAI0yP,GAAiBN,EAAQjiR,EAASi3E,IAG/C,MAAMurM,EAAqC,QAAvBzrQ,EAAKkgE,EAAMszC,cAA2B,IAAPxzG,EAAgBA,EAAK,EAAWqhQ,MAInF,KAHe0F,GAAY1B,GAAS8B,iBAChCsE,GAAc,EAAWtU,QACzBsU,GAAc,EAAW/6J,OAGzB,YADAnzG,EAAKub,IAAIyyP,GAAWL,EAAQO,IAGhC,MAAMp+Q,EAAI69Q,EAAOrF,SAAWqF,EAAO/tL,IACnC,KAAO+tL,EAAO/tL,IAAM9vF,GAChBkQ,EAAKub,IAAIyyP,GAAWL,EAAQO,GAEpC,CA3EYC,CAAcR,EAAQnE,EAAUnvQ,EAAQvO,IAAI62E,GAAQj3E,GACpD,MACJ,IAAK,OAMb,SAAsBiiR,EAAQnmR,EAAKkE,GAC/B,MAAMi3E,EAAQn7E,EAAIm7E,QAClB,IAAI/8E,EACAq8D,EAEJ,MAAMp0D,EAAM8/Q,EAAOrF,SAGbvvQ,EAAM40Q,EAAO/tL,IAAM/xF,EACzB,KAAO8/Q,EAAO/tL,IAAM7mF,GAAK,CACrB,MAAOwvQ,GAAWoF,EAAOrpP,MACzB,OAAQikP,GACJ,KAAK,EACD3iR,EAAMooR,GAAWL,EAAQhrM,EAAMq4L,QAC/B,MACJ,KAAK,EACD,OAAQr4L,EAAMs4L,SACV,IAAK,SACDh5M,EAAM+rN,GAAWL,EAAQhrM,EAAMszC,QAC/B,MACJ,IAAK,OACDh0D,EAAM0rN,EAAOlF,QACb,MACJ,IAAK,UACDxmN,EAAMgsN,GAAiBN,EAAQjiR,EAASi3E,IAK5D,CAIA,QAHYpxE,IAAR3L,IACAA,EAAM8zQ,EAAgB/2L,EAAMq4L,QAAQ,SAE5BzpQ,IAAR0wD,EACA,OAAQ0gB,EAAMs4L,SACV,IAAK,SACDh5M,EAAMy3M,EAAgB/2L,EAAMszC,QAAQ,GACpC,MACJ,IAAK,OACDh0D,EAAM0gB,EAAMm4L,KAAKjyQ,OAAO,GAAGykB,OAC3B,MACJ,IAAK,UACD20C,EAAM,GAAQ0gB,EAAMtoE,aAAS9I,GAAW,GAIpD/J,EAAIyE,IAAIrG,EAAKq8D,EACjB,CApDYmsN,CAAaT,EAAQtzQ,EAAQvO,IAAI62E,GAAQj3E,GAGrD,CAsEA,SAASuiR,GAAiBN,EAAQjiR,EAASi3E,EAAO0rM,GAC9C,MAAMT,EAAYjrM,EAAMugM,kBAClB7oQ,EAAUg0Q,QAAmDA,EAAe,GAAQ1rM,EAAMtoE,aAAS9I,GAAW,GAEpH,OADAk8Q,GAAYpzQ,EAASszQ,EAAQjiR,EAASkiR,EAAWA,EAAYjrM,EAAMr1D,OAASqgQ,EAAOrF,UAC5EjuQ,CACX,CACA,SAAS2zQ,GAAWL,EAAQtkR,GACxB,OAAQA,GACJ,KAAK,EAAWuwQ,OACZ,OAAO+T,EAAOtgQ,SAClB,KAAK,EAAWwsP,KACZ,OAAO8T,EAAO/pN,OAClB,KAAK,EAAWk2M,OACZ,OAAO6T,EAAOv3J,SAClB,KAAK,EAAW2jJ,MACZ,OAAO4T,EAAOhF,QAClB,KAAK,EAAW7E,MACZ,OAAO6J,EAAOlF,QAClB,KAAK,EAAWzO,MACZ,OAAO2T,EAAOvE,QAClB,KAAK,EAAWnP,OACZ,OAAO0T,EAAOrE,SAClB,KAAK,EAAWnP,QACZ,OAAOwT,EAAOxE,UAClB,KAAK,EAAWh2J,MACZ,OAAOw6J,EAAO3lR,QAClB,KAAK,EAAWi8Q,QACZ,OAAO0J,EAAO5E,UAClB,KAAK,EAAW7E,SACZ,OAAOyJ,EAAO3E,WAClB,KAAK,EAAW9O,SACZ,OAAOyT,EAAOzE,WAClB,KAAK,EAAW9O,OACZ,OAAOuT,EAAOtE,SAClB,KAAK,EAAWtF,OACZ,OAAO4J,EAAOrF,SAClB,KAAK,EAAWtE,OACZ,OAAO2J,EAAO1E,SAE1B,CCpNO,SAASqF,GAASrnG,EAAKsnG,GAC1B,IAAI9rQ,EACJ,MAAMgvG,EAAO,GAAWw0J,GAA2B,GAAah/F,IAKhE,OAJAx1D,EAAKqvJ,YAAYl5Q,QAAQq2Q,IACzBxsJ,EAAK4vF,WAA2G,QAA7F5+L,EAAK8rQ,aAAyC,EAASA,EAAQ/mR,IAAK2b,GAAMA,EAAEkvF,MAAMtoG,aAA0B,IAAP0Y,EAAgBA,EAAK,GACjI+7P,GAAmB/sJ,EAAO+tJ,GAAkB+O,aAAyC,EAASA,EAAQnpM,KAAMjiE,GAAMA,EAAEkvF,MAAMtoG,OAASy1Q,IAEpIP,QAAQxtJ,EAAK1nH,KAC5B,CCbO,SAASykR,GAAYjT,EAAM7sN,KAASs3N,GACvC,GAAIA,EAAM7/Q,OAAS,EACf,MAAM,IAAI+G,MAEd,OAAOquQ,EAAK9yN,SAASiG,EACzB,CChBO,MAAM+/N,GAA4CH,GAAS,0hCAerDI,GAAsC,GAAYD,GAA6B,GAU/EE,GAAuC,GAAYF,GAA6B,GAKhFG,GAAqC,GAAYH,GAA6B,GAK9EI,GAA+C,GAAYJ,GAA6B,GClCxFK,GAAkDR,GAAS,+hFAAgiF,CAACG,KAe5lFM,GAA6C,GAAYD,GAAmC,GAK5FE,GAA4C,GAAYF,GAAmC,GAK3FG,GAA6C,GAAYH,GAAmC,GAkClG,IAAII,IACX,SAAWA,GAIPA,EAAwBA,EAAiC,QAAI,GAAK,UAIlEA,EAAwBA,EAAiC,QAAI,GAAK,UAIlEA,EAAwBA,EAAiC,QAAI,GAAK,UAIlEA,EAAwBA,EAAiC,QAAI,GAAK,UAIlEA,EAAwBA,EAAiC,QAAI,GAAK,UAIlEA,EAAwBA,EAAqC,YAAI,GAAK,cAItEA,EAAwBA,EAAoC,WAAI,GAAK,aAIrEA,EAAwBA,EAAqC,YAAI,GAAK,cAItEA,EAAwBA,EAAiC,QAAI,GAAK,UAIlEA,EAAwBA,EAAiC,QAAI,GAAK,UAIlEA,EAAwBA,EAAkC,SAAI,IAAM,WAIpEA,EAAwBA,EAAkC,SAAI,IAAM,WAIpEA,EAAwBA,EAAgC,OAAI,IAAM,SAIlEA,EAAwBA,EAAgC,OAAI,IAAM,SAIlEA,EAAwBA,EAAgC,OAAI,IAAM,SAIlEA,EAAwBA,EAAgC,OAAI,IAAM,SAIlEA,EAAwBA,EAAgC,OAAI,IAAM,SAIlEA,EAAwBA,EAAgC,OAAI,IAAM,SAIlEA,EAAwBA,EAAiC,QAAI,IAAM,UAInEA,EAAwBA,EAAiC,QAAI,IAAM,SACtE,CAjFD,CAiFGA,KAA4BA,GAA0B,CAAC,IAInD,MAOMC,GAA2BX,GAAYM,GAAmC,G,2BC/IvF,MAEMM,GAAgB,CAClBC,oBAAoB,GAKjB,SAAS,GAAS1+N,EAAQt2C,EAAS3O,GACtC,OAAO4jR,GAAY,IAAIlH,GAJ3B,SAA0B18Q,GACtB,OAAOA,EAAUhE,OAAO+nB,OAAO/nB,OAAO+nB,OAAO,CAAC,EAAG2/P,IAAgB1jR,GAAW0jR,EAChF,CAE2CG,CAAiB7jR,GAAU,GAAQilD,EAAQt2C,IAAUtI,QAChG,CACA,SAASu9Q,GAAYE,EAAQvnR,EAAM4E,GAC/B,IAAI4V,EACJ,IAAK,MAAMU,KAAKtW,EAAIi+Q,aAChB,GAAKj+Q,EAAIw+Q,MAAMloQ,GAMfssQ,GAAWD,EAAQvnR,EAAM4E,EAAKsW,QAL1B,GAfY,GAeRA,EAAEs4P,SACF,MAAM,IAAIvuQ,MAAM,iBAAiBiW,uCAM7C,GAAIlb,EAAKonR,mBACL,IAAK,MAAM,GAAE38J,EAAE,SAAE82J,EAAQ,KAAExiR,KAAsC,QAA3Byb,EAAK5V,EAAIo/Q,oBAAiC,IAAPxpQ,EAAgBA,EAAK,GAC1F+sQ,EAAOlrP,IAAIouF,EAAI82J,GAAUr4N,IAAInqD,GAGrC,OAAOwoR,CACX,CAIO,SAASC,GAAWD,EAAQvnR,EAAM4E,EAAK81E,GAC1C,IAAIlgE,EACJ,OAAQkgE,EAAM24L,WACV,IAAK,SACL,IAAK,OACDoU,GAAYF,EAAQ3iR,EAAIitD,KAAK28M,SAAU9zL,EAAM54E,KAA8B,QAAvB0Y,EAAKkgE,EAAMszC,cAA2B,IAAPxzG,EAAgBA,EAAK,EAAWqhQ,MAAOnhM,EAAMr1D,OAAQzgB,EAAIf,IAAI62E,IAChJ,MACJ,IAAK,QAwBb,SAAwB6sM,EAAQvnR,EAAM06E,EAAO3iE,GACzC,IAAIyC,EACJ,GAAsB,WAAlBkgE,EAAMk4L,SAAuB,CAC7B,IAAK,MAAMv/N,KAAQt7B,EACf2vQ,GAAkBH,EAAQvnR,EAAM06E,EAAOrnC,GAE3C,MACJ,CACA,MAAM4yO,EAAqC,QAAvBzrQ,EAAKkgE,EAAMszC,cAA2B,IAAPxzG,EAAgBA,EAAK,EAAWqhQ,MACnF,GAAInhM,EAAMy4B,OAAV,CACI,IAAKp7F,EAAK9X,KACN,OAEJsnR,EAAOlrP,IAAIq+C,EAAMr1D,OAAQw6P,GAAS8B,iBAAiB19N,OACnD,IAAK,MAAM5Q,KAAQt7B,EACf4vQ,GAAiBJ,EAAQ7sM,EAAMryC,OAAOmmO,SAAU9zL,EAAM54E,KAAMmkR,EAAY5yO,GAE5Ek0O,EAAO/0Q,MAEX,MACA,IAAK,MAAM6gC,KAAQt7B,EACf0vQ,GAAYF,EAAQ7sM,EAAMryC,OAAOmmO,SAAU9zL,EAAM54E,KAAMmkR,EAAYvrM,EAAMr1D,OAAQguB,EAEzF,CA9CYu0O,CAAeL,EAAQvnR,EAAM06E,EAAO91E,EAAIf,IAAI62E,IAC5C,MACJ,IAAK,UACDgtM,GAAkBH,EAAQvnR,EAAM06E,EAAO91E,EAAIf,IAAI62E,IAC/C,MACJ,IAAK,MACD,IAAK,MAAO/8E,EAAKq8D,KAAQp1D,EAAIf,IAAI62E,GAC7BmtM,GAAcN,EAAQvnR,EAAM06E,EAAO/8E,EAAKq8D,GAIxD,CACA,SAASytN,GAAYF,EAAQO,EAASp/J,EAAWu9J,EAAY3F,EAAS1gR,GAClE+nR,GAAiBJ,EAAOlrP,IAAIikP,EA4GhC,SAA2Bl/Q,GACvB,OAAQA,GACJ,KAAK,EAAW8pH,MAChB,KAAK,EAAWymJ,OACZ,OAAOkO,GAAS8B,gBACpB,KAAK,EAAW9P,OAChB,KAAK,EAAWK,QAChB,KAAK,EAAWD,SACZ,OAAO4N,GAAS4B,MACpB,KAAK,EAAWzF,QAChB,KAAK,EAAWC,SAChB,KAAK,EAAWnK,MACZ,OAAO+N,GAAS6B,MACpB,QACI,OAAO7B,GAAS2B,OAE5B,CA5HyCuG,CAAkB9B,IAAc6B,EAASp/J,EAAWu9J,EAAYrmR,EACzG,CACA,SAAS8nR,GAAkBH,EAAQvnR,EAAM06E,EAAOtoE,GACxCsoE,EAAMugM,kBACNoM,GAAYE,EAAOlrP,IAAIq+C,EAAMr1D,OAAQw6P,GAAS+B,YAAa5hR,EAAMoS,GAASiqB,IAAIq+C,EAAMr1D,OAAQw6P,GAASiC,UAGrGuF,GAAYE,EAAOlrP,IAAIq+C,EAAMr1D,OAAQw6P,GAAS8B,iBAAiB19N,OAAQjkD,EAAMoS,GAASI,MAE9F,CAyBA,SAASq1Q,GAAcN,EAAQvnR,EAAM06E,EAAO/8E,EAAKiC,GAC7C,IAAI4a,EAKJ,OAJA+sQ,EAAOlrP,IAAIq+C,EAAMr1D,OAAQw6P,GAAS8B,iBAAiB19N,OAEnDwjO,GAAYF,EAAQ7sM,EAAMryC,OAAOmmO,SAAU9zL,EAAM54E,KAAM44E,EAAMq4L,OAAQ,EAAGp1Q,GAEhE+8E,EAAMs4L,SACV,IAAK,SACL,IAAK,OACDyU,GAAYF,EAAQ7sM,EAAMryC,OAAOmmO,SAAU9zL,EAAM54E,KAA8B,QAAvB0Y,EAAKkgE,EAAMszC,cAA2B,IAAPxzG,EAAgBA,EAAK,EAAWqhQ,MAAO,EAAGj8Q,GACjI,MACJ,IAAK,UACDynR,GAAYE,EAAOlrP,IAAI,EAAGwjP,GAAS8B,iBAAiB19N,OAAQjkD,EAAMJ,GAAO4S,OAGjF+0Q,EAAO/0Q,MACX,CACA,SAASm1Q,GAAiBJ,EAAQO,EAASp/J,EAAWtnH,EAAMxB,GACxD,IACI,OAAQwB,GACJ,KAAK,EAAWuwQ,OACZ4V,EAAOniQ,OAAOxlB,GACd,MACJ,KAAK,EAAWgyQ,KACZ2V,EAAO5rN,KAAK/7D,GACZ,MACJ,KAAK,EAAWiyQ,OACZ0V,EAAOp5J,OAAOvuH,GACd,MACJ,KAAK,EAAWkyQ,MACZyV,EAAO7G,MAAM9gR,GACb,MACJ,KAAK,EAAWi8Q,MACZ0L,EAAO/G,MAAM5gR,GACb,MACJ,KAAK,EAAWmyQ,MACZwV,EAAOpG,MAAMvhR,GACb,MACJ,KAAK,EAAWoyQ,OACZuV,EAAOlG,OAAOzhR,GACd,MACJ,KAAK,EAAWsyQ,QACZqV,EAAOrG,QAAQthR,GACf,MACJ,KAAK,EAAWsrH,MACZq8J,EAAOxnR,MAAMH,GACb,MACJ,KAAK,EAAWo8Q,QACZuL,EAAOzG,QAAQlhR,GACf,MACJ,KAAK,EAAWq8Q,SACZsL,EAAOxG,SAASnhR,GAChB,MACJ,KAAK,EAAWqyQ,SACZsV,EAAOtG,SAASrhR,GAChB,MACJ,KAAK,EAAWuyQ,OACZoV,EAAOnG,OAAOxhR,GACd,MACJ,KAAK,EAAWk8Q,OACZyL,EAAOlH,OAAOzgR,GACd,MACJ,KAAK,EAAWm8Q,OACZwL,EAAOvG,OAAOphR,GAG1B,CACA,MAAOiI,GACH,GAAIA,aAAa5C,MACb,MAAM,IAAIA,MAAM,uBAAuB6iR,KAAWp/J,gBAAwB7gH,EAAEuK,WAEhF,MAAMvK,CACV,CACJ,CC1KO,MAAMmgR,GAAuD3B,GAAS,o6BAehE,GAAmC,GAAY2B,GAAwC,GAUvFC,GAA6B,GAAYD,GAAwC,G,uBCzB9F,MAAMxyM,GAAY,IAAIskB,GAAA,GAAe,aAe9B,SAASouL,KACZ,MAVO,CACHpwH,OvBEG,EuBDHlsD,GAH2BA,EAWLp2B,GAAU41B,aAPhC+8K,gBAAe,IACJ,IAAI38Q,WAAWogG,EAAG14C,YAAYrF,OAAO,SAAS,KAL1D,IAA4B+9C,CAYnC,CAkFOnvF,eAAeo2C,GAAQu1N,EAAU9xN,GACpC,MAAM+xN,EAAiBD,EAASx8K,GAAGtH,aAAa1kC,YAAYziE,GAAQ,KAAM,IACpEmrR,QAAW,cAAaD,EAAgBlrR,GAAOW,KAAKw4D,IAC1D,OAAO,IAAI9qD,WAAW88Q,EAC1B,CClFO,SAASC,IAAoB,QAAE1qQ,EAAO,YAAEm8D,EAAW,kBAAEwuM,EAAiB,QAAEp2Q,EAAO,kBAAEygJ,EAAiB,WAAE41H,EAAU,cAAEC,IACnH,MAAMh8N,EAAQ,CAEVutB,aAAc,CACV,CAAEn4E,KAAM,OAAQV,KAAM,UACtB,CAAEU,KAAM,UAAWV,KAAM,UACzB,CAAEU,KAAM,UAAWV,KAAM,YAG7B,CAAC44E,GAAcwuM,GAEf31H,GACAnmG,EAAMutB,aAAa/4E,KAAK,CAAEY,KAAM,oBAAqBV,KAAM,YAG/D,MAAMunR,EAAclpR,OAAOC,KAAK0S,GAC1Bw2Q,EAAwBJ,EAAkBjpR,IAAKm7E,GAAUA,EAAM54E,MACrE,GAAI6mR,EAAYzqR,SAAW0qR,EAAsB1qR,OAC7C,MAAM,IAAI+G,MAAM,oDAEpB,IAAK,MAAMtH,KAAOgrR,EACd,IAAKC,EAAsBrmN,SAAS5kE,GAChC,MAAM,IAAIsH,MAAM,eAAetH,0CAqBvC,MAlBkB,CACd+uD,QAKAstB,cACAD,OAAQ,CAEJj4E,KAAM2mR,EAEN/9Q,QAASg+Q,EAET7qQ,UACAg1I,qBAEJzgJ,UAGR,CApEmB+/F,GAAA,IAAc,CAC7Bp4B,OAAQo4B,GAAA,IAAc,CAClBt0F,QAASs0F,GAAA,IACTrwG,KAAMqwG,GAAA,IACNznG,QAASynG,GAAA,IACT0gD,kBAAmB1gD,GAAA,IAAgB,SAIvCn4B,YAAam4B,GAAA,IACbzlD,MAAOylD,GAAA,IAAc,CACjBx0G,IAAKw0G,GAAA,IACLvyG,MAAOuyG,GAAA,IAAaA,GAAA,IAAc,CAC9BrwG,KAAMqwG,GAAA,IACN/wG,KAAM+wG,GAAA,WCfX,MAAM02K,WAA6B5jR,MACtCkN,MACA,WAAAJ,CAAYK,EAASD,GACjBG,MAAMF,GACNvU,KAAKsU,MAAQA,EACbtU,KAAKiE,KAAO,sBAChB,ECGG,MAAMgnR,GAA+B,sBAarCrsQ,eAAessQ,IAAgB,QAAEC,EAAO,cAAEC,EAAa,aAAE9sM,EAAY,QAAEt+D,EAAO,gBAAEqrQ,EAAe,iBAAEC,EAAgB,gBAAEC,EAAe,gBAAEC,IACvI,IACIL,EAAQrpR,QAAQ2pR,IAChB,MAAMC,QAiEd9sQ,eAAkChc,GAC9B,MAAM+oR,QAA4BC,GAAyBhpR,EAAO4oR,gBAhFf,IAgFyE5oR,EAAO07E,cACnI,OAAOosM,GAAoB,CACvB1qQ,QAASsxB,OAAO1uC,EAAOod,SACvBm8D,YAAa,yBACbwuM,kBAAmB,CACf,CAAE1mR,KAAM,UAAWV,KAAM,aACzB,CAAEU,KAAM,YAAaV,KAAM,UAE/BgR,QAAS,CACL42Q,QAASvoR,EAAOuoR,QAChBrwQ,WAAW,QAAWlY,EAAOyoR,gBAAkBzoR,EAAOyoR,gBAAkB,IAAI19Q,aAEhFi9Q,WAAYK,GACZJ,cAAec,GAEvB,CAjFoCE,CAAmB,CAC3CL,qBACIltM,EAAe,CAAEA,gBAAiB,CAAC,EACvCt+D,UACAmrQ,kBACwB1/Q,IAApB4/Q,EAAgC,CAAEA,mBAAoB,CAAC,IAE/D,IAAIrmK,EACJ,GAAI1mC,EAAc,CACd,MAAMwtM,QAyElBltQ,eAA0B0/D,EAAcotM,GACpC,aAAaptM,EAAajG,cAAcqzM,EAC5C,CA3E6CK,CAAWztM,EAAcotM,GACpDM,EA2ElB,SAAgCb,GAC5B,OAAOA,EAAQzpR,IAAKkzG,GACT,EAAOg0K,GAAuB,CACjCh0K,OAAQA,EACRq3K,SAAU,CACNrtL,MAAO,CACH+1K,KAAM,wBACN5yQ,MAAO,CAAC,MAK5B,CAvFsCmqR,CAAuBf,GAC3CgB,GAuFmBvpR,EAvFkC,CACvD8xG,YAAap2B,EAAat/D,QAAQrZ,QAClCqmR,oBACAI,iBAAiB,QAAWN,WACJrgR,IAApB4/Q,EAAgC,CAAEA,mBAAoB,CAAC,GAoFhE,EAAOpC,GAA8B,CACxCv0K,YAAa9xG,EAAO8xG,YACpBs3K,kBAAmBppR,EAAOopR,kBAC1BI,gBAAiBxpR,EAAOwpR,gBACxBf,gBAAiBzoR,EAAOyoR,gBAClBzoR,EAAOyoR,gBACP,IAAI19Q,cAtFNq3G,QAAiBumK,EAAgBL,gBAAgBiB,EAAwBf,QAEjD3/Q,IAApB4/Q,GAAiCC,IACjCtmK,QAAiBqnK,GAA6BrnK,EAAUsmK,GAEhE,KACK,CACD,MAAMgB,EAAwB,EAAOpD,GAA6B,CAC9DiC,QAASA,IAEbnmK,QAAiBumK,EAAgBgB,eAAeD,EAAuBlB,EAC3E,CACA,OAAOpmK,CACX,CACA,MAAO/5G,GACH,GAAIA,aAAiB+/Q,GACjB,MAAM//Q,EAEV,MAAM,IAAI+/Q,GAAqB,4BAA6B//Q,EAChE,CA4DJ,IAAqCrI,CA3DrC,CAEOgc,eAAegtQ,GAAyBJ,EAAiBgB,EAAgBluM,GAC5E,IAAIqtM,EACJ,GAAIrtM,GACAktM,GAxDoB,mBAyDpBltM,EAAa68E,UAAU1sF,IAAsB,CAC7C,MAAMg+M,GAAY,QAAY,CAC1B9mR,QAAS6lR,EACTxmN,IAAK,KACLlmD,OAAQw/D,IAENouM,QAA4BD,EAAU1tM,KAAK4tM,eAC3CC,GAAW,QAAY,CACzBjnR,QAAS+mR,EACT1nN,IAAK,KACLlmD,OAAQw/D,IAEZqtM,QAA4BiB,EAAS7tM,KAAK8tM,kBAC9C,MAEIlB,EAAsBa,EAE1B,OAAOb,CACX,CA6CO/sQ,eAAeytQ,GAA6BS,EAAcxB,GAC7D,OAAOn2Q,QAAQ6S,IAAI8kQ,EAAaprR,IAAIkd,MAAOmuQ,IAEvC,GAAI,cAAeA,QAAyBthR,IAAlBshR,EAAIp1N,UAC1B,OAAOo1N,EAGX,GAAI,uBAAwBA,QAAkCthR,IAA3BshR,EAAIC,mBAAkC,CACrE,MAAMC,EAAeF,EACfG,GAAK,QAAWD,EAAaD,mBAAmBv0N,WAAW12D,OAC3DorR,QAAuBn4N,GAAQs2N,EAAkB4B,GACjDE,GAAc,SAAcD,GAC5Bt4K,GAAa,SAAco4K,EAAar4K,QAGxCy4K,QAA4Bl4Q,QAAQ6S,IAAIilQ,EAAaK,oBAAoB5rR,IAAIkd,MAAO2uQ,SACzEv4N,GAAQs2N,EAAkBiC,KAE3C,MAAO,CACH34K,OAAQq4K,EAAar4K,OACrBj9C,UAAWm/M,G1B5IhB,E0B4I2DjiK,EAAYu4K,GAClEI,sBAAuBH,EAE/B,CACA,MAAM,IAAIrC,GAAqB,oDAEvC,CAMO,SAASS,GAAe72K,GAC3B,IAAKA,EAAOpwG,WAAW,OAA2B,KAAlBowG,EAAOv0G,OACnC,MAAM,IAAI2qR,GAAqB,qEAEvC,CCzJQ5B,GAAwBqE,OACxBrE,GAAwBsE,OACxBtE,GAAwBuE,OACxBvE,GAAwBwE,OACxBxE,GAAwByE,OACxBzE,GAAwB0E,OASzB,MAAMC,WAA6B3mR,MACtCkN,MACA,WAAAJ,CAAYK,EAASD,GACjBG,MAAMF,GACNvU,KAAKsU,MAAQA,EACbtU,KAAKiE,KAAO,sBAChB,EChCG,MAAM+pR,GAA+B,sBAErCpvQ,eAAeqvQ,IAAgB,gBAAEzC,EAAe,UAAE0C,EAAS,GAAEtrP,EAAE,aAAEurP,EAAY,cAAE/C,EAAa,aAAE9sM,EAAY,gBAAEitM,EAAe,QAAEvrQ,EAAO,gBAAEqrQ,EAAe,iBAAEC,IAC1J,IACIG,GAAeyC,GACf,MAAME,EAA0C,kBAAjBD,EACzBA,EACI,GACA,GACJ78O,OAAO68O,GACPxC,QAA4BC,GAAyBJ,EATZ,IASsEltM,GAE/GotM,EAAgBhB,GAAoB,CACtC1qQ,QAASsxB,OAAOtxB,GAChBm8D,YAAa,yBACbwuM,kBAAmB,CACf,CAAE1mR,KAAM,KAAMV,KAAM,SACpB,CAAEU,KAAM,YAAaV,KAAM,WAC3B,CAAEU,KAAM,eAAgBV,KAAM,WAC9B,CAAEU,KAAM,YAAaV,KAAM,UAE/BgR,QAAS,CACLquB,GAAIA,EACJsrP,UAAWA,EACXC,cAAc,QAAgBC,GAC9BtzQ,WAAW,QAAWuwQ,GAAoC,IAAI19Q,aAElEi9Q,WAAYoD,GACZnD,cAAec,IAGbS,QAAwB9tM,EAAajG,cAAcqzM,GACnD2C,EAAyB,EAAOlF,GAA8B,CAChEz0K,YAAap2B,EAAat/D,QAAQrZ,QAClC0lR,gBAAiBA,GAAoC,IAAI19Q,WACzDi1B,GAAIA,EACJsrP,UAAWA,EACXC,aAAcC,EAAgB7lR,SAAS,IACvC6jR,iBAAiB,QAAWA,GAC5BH,SAAU,CACNrtL,MAAO,CACH+1K,KAAM,wBACN5yQ,MAAO,CAAC,MAIpB,IAAIusR,QAA8B/C,EAAgB0C,gBAAgBI,EAAwBjD,GAC1F,GAAIC,GAAmBC,EAAkB,CACrC,MAAOiD,SAA8BlC,GAA6B,CAACiC,GAAwBhD,GAC3F,OAAOiD,CACX,CACA,OAAOD,CACX,CACA,MAAOrjR,GACH,GAAIA,aAAiB8iR,GACjB,MAAM9iR,EAEV,MAAM,IAAI8iR,GAAqB,qCAAsC9iR,EACzE,CACJ,CCkBO2T,eAAe4vQ,IAA0B,UAAEN,EAAS,GAAEtrP,EAAE,aAAEurP,EAAY,cAAE/C,EAAa,QAAEprQ,EAAO,gBAAEurQ,EAAe,iBAAEkD,EAAgB,wBAAEC,EAAuB,UAAEC,EAAS,gBAAEnD,EAAe,gBAAEH,EAAe,iBAAEC,IAC5M,MAAMsD,GAAmB,EAAA52M,GAAA,GAAoB,KAAKy2M,EAAiB1gL,GAAGtH,WAAW,UAC3E2nL,EAAkB98O,OAAO68O,GAEzBxC,GADgB7U,G7BvEf,G6BuE0D,SAAcoX,GAAYE,SACzDxC,GAAyBJ,EDhFR,ICgFkEmD,IAG/GjD,EAAgBhB,GAAoB,CACtC1qQ,QAASsxB,OAAOtxB,GAChBm8D,YAAa,yBACbwuM,kBAAmB,CACf,CAAE1mR,KAAM,KAAMV,KAAM,SACpB,CAAEU,KAAM,YAAaV,KAAM,WAC3B,CAAEU,KAAM,eAAgBV,KAAM,WAC9B,CAAEU,KAAM,YAAaV,KAAM,UAE/BgR,QAAS,CACLquB,GAAIA,EACJsrP,UAAWA,EACXC,cAAc,QAAgBC,GAC9BtzQ,WAAW,QAAWuwQ,GAAoC,IAAI19Q,aAElEi9Q,WAAYoD,GACZnD,cAAec,IAIbS,QAAwBwC,EAAiBv2M,cAAcqzM,GACvD2C,EAAyB,EAAOlF,GAA8B,CAChEz0K,YAAak6K,EAAiBjpR,QAC9B0lR,gBAAiBA,GAAoC,IAAI19Q,WACzDi1B,GAAIA,EACJsrP,UAAWA,EACXC,aAAcC,EAAgB7lR,SAAS,IACvC6jR,iBAAiB,QAAWA,GAC5BH,SAAU,CACNrtL,MAAO,CACH+1K,KAAM,2BACN5yQ,MAAO,EAAOgnR,GAAgC,CAC1C8F,eAAgB,EAAO/F,GAAsB,CACzCgG,OAAQJ,EAAwBI,OAChCC,QAAS,EAAOlG,GAAwB,CACpCmG,cAAc,QAAWN,EAAwBK,QAAQC,cACzDh6H,kBAAmB05H,EAAwBK,QAAQ/5H,kBACnDi6H,cAAc,QAAWP,EAAwBK,QAAQE,cACzDC,eAAe,QAAWR,EAAwBK,QAAQG,iBAE9DC,kBAAkB,QAAWT,EAAwBS,kBAErDC,iBAAkB,IAAIzhR,mBAM1C,IAAIq3G,QAAiBumK,EAAgB0C,gBAAgBI,EAAwBjD,GAE7E,GAAIC,GAAmBC,EAAkB,CACrC,MAAOiD,SAA8BlC,GAA6B,CAACrnK,GAAWsmK,GAC9E,OAAOiD,CACX,CACA,OAAOvpK,CACX,CA+BOpmG,eAAeywQ,IAA0B,QAAErvQ,EAAO,gBAAEurQ,EAAe,QAAEJ,EAAO,iBAAEsD,EAAgB,wBAAEC,EAAuB,cAAEtD,EAAa,gBAAEC,EAAe,iBAAEC,EAAgB,UAAEqD,EAAS,gBAAEnD,IACzL,MAAMoD,GAAmB,EAAA52M,GAAA,GAAoB,KAAKy2M,EAAiB1gL,GAAGtH,WAAW,UAC3EklL,QAA4BC,GAAyBJ,EHrKR,IGqKkEmD,GAG/GjD,EAAgBhB,GAAoB,CACtC1qQ,QAASsxB,OAAOtxB,GAChBm8D,YAAa,yBACbwuM,kBAAmB,CACf,CAAE1mR,KAAM,UAAWV,KAAM,aACzB,CAAEU,KAAM,YAAaV,KAAM,UAE/BgR,QAAS,CACL42Q,QAASA,EACTrwQ,WAAW,QAAWuwQ,GAAoC19Q,WAAW1N,KAAK,MAE9E2qR,WAAYK,GACZJ,cAAec,IAIbS,QAAwBwC,EAAiBv2M,cAAcqzM,GACvDM,EAAoBb,EAAQzpR,IAAKkzG,GAC5B,EAAOg0K,GAAuB,CACjCh0K,OAAQA,EACRq3K,SAAU,CACNrtL,MAAO,CACH+1K,KAAM,2BACN5yQ,MAAO,EAAOgnR,GAAgC,CAC1C8F,eAAgB,EAAO/F,GAAsB,CACzCgG,OAAQJ,EAAwBI,OAChCC,QAAS,EAAOlG,GAAwB,CACpCmG,cAAc,QAAWN,EAAwBK,QAAQC,cACzDh6H,kBAAmB05H,EAAwBK,QAAQ/5H,kBACnDi6H,cAAc,QAAWP,EAAwBK,QAAQE,cACzDC,eAAe,QAAWR,EAAwBK,QAAQG,iBAE9DC,kBAAkB,QAAWT,EAAwBS,kBACrDC,iBAAkB,IAAIzhR,oBAOxCw+Q,EAAyB,EAAOlD,GAA8B,CAChEv0K,YAAak6K,EAAiBjpR,QAC9BqmR,kBAAmBA,EACnBI,iBAAiB,QAAWA,GAC5Bf,gBAAiBA,GAAoC19Q,WAAW1N,KAAK,MAEzE,IAAI+kH,QAAiBumK,EAAgBL,gBAAgBiB,EAAwBf,GAK7E,YAHwB3/Q,IAApB4/Q,GAAiCC,IACjCtmK,QAAiBqnK,GAA6BrnK,EAAUsmK,IAErDtmK,CACX,CAIA,SAASsqK,KAGL,MAAMC,EAAyB,GAAyBjwM,KAAM9pC,GAAuB,2BAAdA,EAAKvxC,MAC5E,IAAKsrR,EACD,MAAM,IAAInoR,MAAM,oCAGpB,MAAMooR,EAAwBD,EAAuB/pN,OAAO8Z,KAAM7oC,GAAiC,4BAAvBA,EAAMgnH,cAClF,IAAK+xH,EACD,MAAM,IAAIpoR,MAAM,mCAEpB,OAAOooR,EAAsBzrR,UACjC,CAsCA6a,eAAe6wQ,GAAgBC,EAAiBpxM,GAC5C,MAAMqxM,EARV,SAA0BD,EAAiBpxM,GACvC,OAAO,QAAY,CACf34E,QAAS+pR,EACT1qN,IAAK,KACLlmD,OAAQw/D,GAEhB,CAEqBsxM,CAAiBF,EAAiBpxM,GAC7CouM,QAA4BiD,EAAS5wM,KAAK4tM,eAChD,OAAO,QAAY,CACfhnR,QAAS+mR,EACT1nN,IAAK,KACLlmD,OAAQw/D,GAEhB,CCzSO,MAAMuxM,GAAuB,CAChC,CACI,KAAQ,wCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,UACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,MACX,UAAa,eACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,EACT,UAAa,aAEjB,YAAe,SACf,WAAc,2BACd,OAAU,2BACV,QAAU,EACV,yBAA2B,GAE/B,CACI,KAAQ,wCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,UACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,MACX,UAAa,eACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,EACT,UAAa,aAEjB,YAAe,SACf,WAAc,2BACd,OAAU,yBACV,QAAU,EACV,yBAA2B,GAE/B,CACI,KAAQ,wCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,WACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,MACX,UAAa,eACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,EACT,UAAa,aAEjB,YAAe,SACf,WAAc,2BACd,OAAU,4BACV,QAAU,EACV,yBAA2B,GAE/B,CACI,KAAQ,wCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,SACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,KACX,UAAa,iBACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,EACT,UAAa,aAEjB,YAAe,QACf,WAAc,2BACd,OAAU,eACV,QAAU,EACV,yBAA2B,GAE/B,CACI,KAAQ,wCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,SACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,MACX,UAAa,eACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,EACT,UAAa,aAEjB,YAAe,SACf,WAAc,2BACd,OAAU,2BACV,QAAU,EACV,yBAA2B,GAE/B,CACI,KAAQ,wCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,WACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,MACX,UAAa,eACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,EACT,UAAa,aAEjB,YAAe,SACf,WAAc,2BACd,OAAU,4BACV,QAAU,EACV,yBAA2B,GAE/B,CACI,KAAQ,wCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,WACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,MACX,UAAa,eACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,EACT,UAAa,aAEjB,YAAe,SACf,WAAc,2BACd,OAAU,sBACV,QAAU,GAEd,CACI,KAAQ,wCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,SACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,KACX,UAAa,iBACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,EACT,UAAa,aAEjB,YAAe,QACf,WAAc,2BACd,OAAU,2BACV,QAAU,GAEd,CACI,KAAQ,wCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,SACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,KACX,UAAa,iBACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,EACT,UAAa,aAEjB,YAAe,QACf,WAAc,2BACd,OAAU,2BACV,QAAU,GAEd,CACI,KAAQ,iCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,UACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,MACX,UAAa,eACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,EACT,UAAa,aAEjB,YAAe,SACf,WAAc,2BACd,OAAU,uBACV,QAAU,GAEd,CACI,KAAQ,kCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,UACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,MACX,UAAa,gBACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,GACT,UAAa,aAEjB,YAAe,SACf,WAAc,2BACd,OAAU,wBACV,QAAU,GAEd,CACI,KAAQ,kCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,UACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,MACX,UAAa,eACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,GACT,UAAa,aAEjB,YAAe,SACf,WAAc,2BACd,OAAU,wBACV,QAAU,GAEd,CACI,KAAQ,iCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,UACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,MACX,UAAa,eACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,EACT,UAAa,aAEjB,YAAe,SACf,WAAc,2BACd,OAAU,wBACV,QAAU,GAEd,CACI,KAAQ,kCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,UACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,MACX,UAAa,eACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,GACT,UAAa,aAEjB,YAAe,SACf,WAAc,2BACd,OAAU,KACV,QAAU,GAEd,CACI,KAAQ,wCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,WACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,MACX,UAAa,eACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,EACT,UAAa,aAEjB,YAAe,SACf,WAAc,2BACd,OAAU,wBACV,QAAU,GAEd,CACI,KAAQ,wCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,WACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,MACX,UAAa,eACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,EACT,UAAa,aAEjB,YAAe,SACf,WAAc,2BACd,OAAU,wBACV,QAAU,GAEd,CACI,KAAQ,wCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,SACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,KACX,UAAa,iBACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,EACT,UAAa,aAEjB,YAAe,QACf,WAAc,2BACd,OAAU,uBACV,QAAU,GAEd,CACI,KAAQ,iCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,SACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,KACX,UAAa,iBACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,EACT,UAAa,aAEjB,YAAe,QACf,WAAc,2BACd,OAAU,uBACV,QAAU,GAEd,CACI,KAAQ,wCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,SACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,KACX,UAAa,sBACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,EACT,UAAa,aAEjB,YAAe,SACf,WAAc,2BACd,OAAU,6BACV,QAAU,GAEd,CACI,KAAQ,iCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,SACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,MACX,UAAa,eACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,EACT,UAAa,aAEjB,YAAe,SACf,WAAc,2BACd,OAAU,uBACV,QAAU,GAEd,CACI,KAAQ,kCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,SACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,MACX,UAAa,gBACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,GACT,UAAa,aAEjB,YAAe,SACf,WAAc,2BACd,OAAU,wBACV,QAAU,GAEd,CACI,KAAQ,kCACR,aAAgB,EAChB,SAAY,6CACZ,OAAU,SACV,gBAAmB,6CACnB,KAAQ,qEACR,QAAW,MACX,UAAa,eACb,QAAW,CACP,MAAS,EACT,MAAS,EACT,MAAS,GACT,UAAa,aAEjB,YAAe,SACf,WAAc,2BACd,OAAU,wBACV,QAAU,IC7bLC,GAA2B,CACpC,QAAW,CACP,gBAAmB,6CACnB,QAAW,MACX,gBAAmB,CACf,0BAEJ,QAAW,CACP,8CAEJ,gBAAmB,wBACnB,iBAAoB,sEAExB,OAAU,CACN,gBAAmB,6CACnB,QAAW,MACX,gBAAmB,CACf,0BAEJ,QAAW,CACP,8CAEJ,gBAAmB,wBACnB,iBAAoB,sEAExB,SAAY,CACR,gBAAmB,6CACnB,QAAW,MACX,gBAAmB,CACf,0BAEJ,QAAW,CACP,8CAEJ,gBAAmB,wBACnB,iBAAoB,sEAExB,QAAW,CACP,gBAAmB,6CACnB,QAAW,MACX,gBAAmB,CACf,0BAEJ,QAAW,CACP,8CAEJ,gBAAmB,wBACnB,iBAAoB,uEC9CfC,IAAwB,EAAApwK,EAAA,GAAY,CAC7Cr8F,GAAI,SACJrf,KAAM,UACNsf,eAAgB,CAAEtf,KAAM,gBAAiBwf,OAAQ,MAAOD,SAAU,IAClEE,QAAS,CACLC,QAAS,CACLC,KAAM,CAAC,uCAGfspJ,eAAgB,CACZvpJ,QAAS,CACL1f,KAAM,YACNwqE,IAAK,+BACL2hM,OAAQ,yCAGhB9pL,UAAW,CACP+sE,WAAY,CACR1tJ,QAAS,6CACT4gF,aAAc,QAElBypM,qBAAsB,CAClBrqR,QAAS,6CACT4gF,aAAc,UAGtBiqL,SAAS,IC1BAyf,IAA6B,EAAAtwK,EAAA,GAAY,CAClDr8F,GAAI,MACJrf,KAAM,gBACN4oK,UAAW,IACXtpJ,eAAgB,CACZtf,KAAM,oBACNwf,OAAQ,MACRD,SAAU,IAEdE,QAAS,CACLC,QAAS,CACLC,KAAM,CAAC,mCAGfspJ,eAAgB,CACZvpJ,QAAS,CACL1f,KAAM,yBACNwqE,IAAK,sCAGb6X,UAAW,CACP+sE,WAAY,CACR1tJ,QAAS,6CACT4gF,aAAc,SAGtBiqL,SAAS,IC1BA0f,IAA8B,EAAAvwK,EAAA,GAAY,CACnDr8F,GAAI,KACJrf,KAAM,iBACNsf,eAAgB,CACZtf,KAAM,iBACNwf,OAAQ,MACRD,SAAU,IAEdE,QAAS,CACLC,QAAS,CACLC,KAAM,CAAC,mCAGfspJ,eAAgB,CACZvpJ,QAAS,CACL1f,KAAM,YACNwqE,IAAK,kCAGb6X,UAAW,CACP+sE,WAAY,CACR1tJ,QAAS,6CACT4gF,aAAc,IAGtBiqL,SAAS,I,eCxBb,MAAM,GAAW,SACJ2f,IAAkC,EAAAxwK,EAAA,GAAY,IACpD4vJ,EACHjsP,GAAI,KACJrf,KAAM,sBACNksQ,QAAS,qBACT5sP,eAAgB,CAAEtf,KAAM,QAASwf,OAAQ,MAAOD,SAAU,IAC1DE,QAAS,CACLC,QAAS,CAAEC,KAAM,CAAC,qDAEtBspJ,eAAgB,CACZvpJ,QAAS,CACL1f,KAAM,oBACNwqE,IAAK,gCACL2hM,OAAQ,yCAEZggB,WAAY,CACRnsR,KAAM,aACNwqE,IAAK,kDACL2hM,OAAQ,wDAGhB9pL,UAAW,IACJipL,EAAYjpL,UACf+sE,WAAY,CACR1tJ,QAAS,6CACT4gF,aAAc,GAElB8pL,mBAAoB,CAChB,CAAC,IAAW,CACR1qQ,QAAS,+CAGjB2qQ,eAAgB,CACZ,CAAC,IAAW,CACR3qQ,QAAS,+CAGjB0xM,OAAQ,CACJ,CAAC,IAAW,CACR1xM,QAAS,+CAGjB4qQ,iBAAkB,CACd,CAAC,IAAW,CACR5qQ,QAAS,gDAIrB6qQ,SAAS,EACTP,SAAQ,KChDCogB,GAAkB,CAC3BngB,YAAa,MACb6f,QAAS,SACTE,aAAc,MACdC,cAAe,KACfC,kBAAmB,KACnB9sQ,MAAO,OCREitQ,GAAS,CAClBP,QAAO,GACP7f,YAAW,EACX+f,aAAY,GACZC,cAAa,GACb7sQ,MAAK,KACL8sQ,kBAAiB,IAEd,SAASI,GAAaC,GACzB,MAAM,KAAEvsR,GDML,SAA2BusR,GAC9B,MAAM/jL,EAA4B,iBAAb+jL,GAA6C,iBAAbA,EAC/C5uR,OAAO6uC,QAAQ4/O,IAAiB/wM,KAAK,EAAE,CAAEh8D,KAAQA,IAAO1e,OAAO4rR,IAC3C,iBAAbA,EACH5uR,OAAO6uC,QAAQ4/O,IAAiB/wM,KAAK,EAAE,CAAEh8D,KAAQA,IAAO1e,OAAO4rR,EAASltQ,KACxE1hB,OAAO6uC,QAAQ4/O,IAAiB/wM,KAAK,EAAE28L,KAAeA,IAAcuU,GAC9E,IAAK/jL,EACD,MAAM,IAAIrlG,MAAM,mBAAmBopR,eAEvC,MAAOvsR,EAAMqf,GAAMmpF,EACnB,MAAO,CAAExoG,KAAMA,EAAMqf,KACzB,CCjBqBmtQ,CAAkBD,GAC7BtxQ,EAAQoxQ,GAAOrsR,GACrB,IAAKib,EACD,MAAM,IAAI9X,MAAM,6BAA6BnD,KAEjD,OAAOib,CACX,CCKO,IAAI,GCHJ,SAAS,GAAand,GACzB,MAAMkC,EAAO,GAAKlC,GAClB,MAAmB,iBAARkC,EACAlC,EAAMwG,WAETtE,EAAK,GAAG1C,cACZ0C,EAAK+rG,UAAU,GAAGpgF,QAAQ,SAAWxS,GAAM,IAAMA,EAAE7b,cAC3D,CACA,IAAImvR,GDJJ,IAAWC,OAiER,KAAS,GAAO,CAAC,IA7DXA,GAAe,SAAI,GAAK,WAI7BA,GAAKA,GAAc,QAAI,GAAK,UAI5BA,GAAKA,GAAsB,gBAAI,GAAK,kBAIpCA,GAAKA,GAAuB,iBAAI,GAAK,mBAIrCA,GAAKA,GAAe,SAAI,GAAK,WAI7BA,GAAKA,GAAoB,cAAI,GAAK,gBAIlCA,GAAKA,GAAuB,iBAAI,GAAK,mBAIrCA,GAAKA,GAAwB,kBAAI,GAAK,oBAItCA,GAAKA,GAAyB,mBAAI,GAAK,qBAIvCA,GAAKA,GAAc,QAAI,IAAM,UAI7BA,GAAKA,GAAiB,WAAI,IAAM,aAIhCA,GAAKA,GAAoB,cAAI,IAAM,gBAInCA,GAAKA,GAAe,SAAI,IAAM,WAI9BA,GAAKA,GAAkB,YAAI,IAAM,cAIjCA,GAAKA,GAAe,SAAI,IAAM,WAI9BA,GAAKA,GAAsB,gBAAI,IAAM,kBE1DlC,MAAM,WAAqBvpR,MAQ9B,WAAA8M,CAAYK,EAASkpF,EAAO,GAAKmzL,QAASC,EAAUC,EAAiBx8Q,GACjEG,MAuFR,SAAuBF,EAASkpF,GAC5B,OAAOlpF,EAAQlU,OACT,IAAI,GAAao9F,OAAUlpF,IAC3B,IAAI,GAAakpF,KAC3B,CA3FcszL,CAAcx8Q,EAASkpF,IAC7Bz9F,KAAKiE,KAAO,eAEZrC,OAAOu9D,eAAen/D,gBAAiBgB,WACvChB,KAAKgxR,WAAaz8Q,EAClBvU,KAAKy9F,KAAOA,EACZz9F,KAAK6wR,SAAW,IAAII,QAAQJ,QAA2CA,EAAW,CAAC,GACnF7wR,KAAKqU,QAAUy8Q,QAAyDA,EAAkB,GAC1F9wR,KAAKsU,MAAQA,CACjB,CAaA,WAAOrU,CAAKumG,EAAQ/I,EAAO,GAAKmzL,SAC5B,OAAIpqL,aAAkB,GACXA,EAEPA,aAAkBp/F,MACC,cAAfo/F,EAAOviG,MAAuC,gBAAfuiG,EAAOviG,KAG/B,IAAI,GAAauiG,EAAOjyF,QAAS,GAAK28Q,UAE1C,IAAI,GAAa1qL,EAAOjyF,QAASkpF,OAAMhyF,OAAWA,EAAW+6F,GAEjE,IAAI,GAAaruF,OAAOquF,GAAS/I,OAAMhyF,OAAWA,EAAW+6F,EACxE,CACA,OAAQ30F,OAAOC,aAAagjB,GACxB,OAAMA,aAAa1tB,QAGfxF,OAAO6X,eAAeqb,KAAO,GAAa9zB,WAG3B,iBAAX8zB,EAAE7wB,MACN,SAAU6wB,GACQ,iBAAXA,EAAE2oE,MACT,aAAc3oE,GACd,YAAaA,GACb5rB,MAAMF,QAAQ8rB,EAAEzgB,UAChB,eAAgBygB,GACO,iBAAhBA,EAAEk8P,YACT,UAAWl8P,EACnB,CACA,WAAAq8P,CAAYC,GACR,MAAMzY,EAAmC,YAAxByY,EAAe9nO,KAC1B,CACE+H,WAAas/M,GAAaA,IAAaygB,EAAezgB,SAAWygB,OAAiB3lR,GAEpF2lR,EACA/8Q,EAAU,GAChB,IAAK,MAAMnT,KAAQlB,KAAKqU,QAAS,CAC7B,GAAI,SAAUnT,EAAM,CACZy3Q,EAAStnN,WAAWnwD,EAAK8yD,KAAK28M,WAC9Bt8P,EAAQhR,KAAK,EAAOnC,EAAK8yD,KAAM9yD,EAAKa,QAExC,QACJ,CACA,MAAMiyD,EAAO2kN,EAAStnN,WAAWnwD,EAAKqC,MACtC,GAAIywD,EACA,IACI3/C,EAAQhR,KAAK,GAAW2wD,EAAM9yD,EAAKa,OACvC,CACA,MAAO0C,GAMP,CAER,CACA,OAAO4P,CACX,EC3GJ,IAOIg9Q,GAAoC,SAAUv8P,GAAK,OAAO90B,gBAAgBqxR,IAAWrxR,KAAK80B,EAAIA,EAAG90B,MAAQ,IAAIqxR,GAAQv8P,EAAI,ECPzH,GAAgD,SAAU/rB,GAC1D,IAAK8I,OAAOurF,cAAe,MAAM,IAAI7qF,UAAU,wCAC/C,IAAiCzR,EAA7B6W,EAAI5O,EAAE8I,OAAOurF,eACjB,OAAOzlF,EAAIA,EAAE5X,KAAKgJ,IAAMA,EAAwB,mBAAbuoR,SAA0BA,SAASvoR,GAAKA,EAAE8I,OAAO0J,YAAaza,EAAI,CAAC,EAAGg0D,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAWh0D,EAAE+Q,OAAOurF,eAAiB,WAAc,OAAOp9F,IAAM,EAAGc,GAC9M,SAASg0D,EAAK57C,GAAKpY,EAAEoY,GAAKnQ,EAAEmQ,IAAM,SAAU4b,GAAK,OAAO,IAAI3f,QAAQ,SAAUH,EAASC,IACvF,SAAgBD,EAASC,EAAQnL,EAAGgrB,GAAK3f,QAAQH,QAAQ8f,GAAGnU,KAAK,SAASmU,GAAK9f,EAAQ,CAAEjT,MAAO+yB,EAAGka,KAAMllC,GAAM,EAAGmL,EAAS,CADbs8Q,CAAOv8Q,EAASC,GAA7B6f,EAAI/rB,EAAEmQ,GAAG4b,IAA8Bka,KAAMla,EAAE/yB,MAAQ,EAAI,CAAG,CAEnK,EACI,GAAoC,SAAU+yB,GAAK,OAAO90B,gBAAgB,IAAWA,KAAK80B,EAAIA,EAAG90B,MAAQ,IAAI,GAAQ80B,EAAI,EA0BtH,SAAS0nI,GAAa58F,EAASu7F,GAClC,OC3BG,SAAuBv7F,EAAS4xN,GACnC,MAAM1yQ,EAAS,CAAC,EAChB,IAAK,MAAMk1C,KAAQ4L,EAAQggG,QAAS,CAChC,MAAMn/I,EAAS+wQ,EAAax9N,GACd,MAAVvzC,IACA3B,EAAOk1C,EAAK0gN,WAAaj0P,EAEjC,CACA,OAAO3B,CACX,CDkBW2yQ,CAAc7xN,EAAUn/C,IAC3B,OAAQA,EAAOg8P,YACX,IAAK,QACD,OAYT,SAAuBthH,EAAW16I,GACrC,OAAO7B,MAAO63B,EAAO7wC,KACjB,IAAI+W,EAAIC,EACR,MAAMooG,QAAiBm2C,EAAUu2H,MAAMjxQ,EAAQ7a,aAAyC,EAASA,EAAQu7C,OAAQv7C,aAAyC,EAASA,EAAQ+rR,UAAW/rR,aAAyC,EAASA,EAAQ82I,QAASjmG,EAAO7wC,aAAyC,EAASA,EAAQgsR,eAG1T,OAF8E,QAA7Ej1Q,EAAK/W,aAAyC,EAASA,EAAQisR,gBAA6B,IAAPl1Q,GAAyBA,EAAG5c,KAAK6F,EAASo/G,EAASmpJ,QAC1D,QAA9EvxP,EAAKhX,aAAyC,EAASA,EAAQksR,iBAA8B,IAAPl1Q,GAAyBA,EAAG7c,KAAK6F,EAASo/G,EAAS+sK,SACnI/sK,EAASzwG,QAExB,CApBuBy9Q,CAAc72H,EAAW16I,GACpC,IAAK,mBACD,OAmBT,SAAiC06I,EAAW16I,GAC/C,MAAO,CAACg2B,EAAO7wC,IAAYqsR,GAAqB92H,EAAUrtJ,OAAO2S,EAAQ7a,aAAyC,EAASA,EAAQu7C,OAAQv7C,aAAyC,EAASA,EAAQ+rR,UAAW/rR,aAAyC,EAASA,EAAQ82I,QD8yBvQ,SAA6Bw1I,GAChC,OAl2BsD,SAAU99N,EAASC,EAAYhvC,GACrF,IAAKxT,OAAOurF,cAAe,MAAM,IAAI7qF,UAAU,wCAC/C,IAAoDzR,EAAhD0M,EAAI6X,EAAUvP,MAAMs+C,EAASC,GAAc,IAAQj/B,EAAI,GAC3D,OAAOt0B,EAAIc,OAAOsL,QAAiC,mBAAlBilR,cAA+BA,cAAgBvwR,QAAQZ,WAAY8zD,EAAK,QAASA,EAAK,SAAUA,EAAK,SACtI,SAAqBz3C,GAAK,OAAO,SAAUyX,GAAK,OAAO3f,QAAQH,QAAQ8f,GAAGnU,KAAKtD,EAAGpI,EAAS,CAAG,GADgEnU,EAAE+Q,OAAOurF,eAAiB,WAAc,OAAOp9F,IAAM,EAAGc,EAEtN,SAASg0D,EAAK57C,EAAGmE,GAAS7P,EAAE0L,KAAMpY,EAAEoY,GAAK,SAAU4b,GAAK,OAAO,IAAI3f,QAAQ,SAAUvN,EAAGC,GAAKutB,EAAE/xB,KAAK,CAAC6V,EAAG4b,EAAGltB,EAAGC,IAAM,GAAKkiC,EAAO7wB,EAAG4b,EAAI,EAAI,EAAOzX,IAAGvc,EAAEoY,GAAKmE,EAAEvc,EAAEoY,KAAO,CACvK,SAAS6wB,EAAO7wB,EAAG4b,GAAK,KACVL,EADqBjnB,EAAE0L,GAAG4b,IACnB/yB,iBAAiBsvR,GAAUl8Q,QAAQH,QAAQyf,EAAE1yB,MAAM+yB,GAAGnU,KAAKyxQ,EAASn9Q,GAAUs8Q,EAAOn8P,EAAE,GAAG,GAAIX,EADtE,CAAE,MAAOzqB,GAAKunR,EAAOn8P,EAAE,GAAG,GAAIprB,EAAI,CAC/E,IAAcyqB,CADmE,CAEjF,SAAS29P,EAAQrwR,GAASgoC,EAAO,OAAQhoC,EAAQ,CACjD,SAASkT,EAAOlT,GAASgoC,EAAO,QAAShoC,EAAQ,CACjD,SAASwvR,EAAOl0Q,EAAGyX,GAASzX,EAAEyX,GAAIM,EAAE/a,QAAS+a,EAAE/0B,QAAQ0pC,EAAO3U,EAAE,GAAG,GAAIA,EAAE,GAAG,GAAK,CACrF,CAu1BWi9P,CAAiBryR,KAAM4W,UAAW,kBAC/By6Q,SAv1B4C,SAAUtoR,GAChE,IAAIjI,EAAGwxB,EACP,OAAOxxB,EAAI,CAAC,EAAGg0D,EAAK,QAASA,EAAK,QAAS,SAAU9qD,GAAK,MAAMA,CAAG,GAAI8qD,EAAK,UAAWh0D,EAAE+Q,OAAO0J,UAAY,WAAc,OAAOvb,IAAM,EAAGc,EAC1I,SAASg0D,EAAK57C,EAAGmE,GAAKvc,EAAEoY,GAAKnQ,EAAEmQ,GAAK,SAAU4b,GAAK,OAAQxC,GAAKA,GAAK,CAAEvwB,MAAOsvR,GAAQtoR,EAAEmQ,GAAG4b,IAAKka,MAAM,GAAU3xB,EAAIA,EAAEyX,GAAKA,CAAG,EAAIzX,CAAG,CACzI,CAm1B6Bi1Q,CA32BuB,SAAUvpR,GAC1D,IAAK8I,OAAOurF,cAAe,MAAM,IAAI7qF,UAAU,wCAC/C,IAAiCzR,EAA7B6W,EAAI5O,EAAE8I,OAAOurF,eACjB,OAAOzlF,EAAIA,EAAE5X,KAAKgJ,IAAMA,EAAwB,mBAAbuoR,SAA0BA,SAASvoR,GAAKA,EAAE8I,OAAO0J,YAAaza,EAAI,CAAC,EAAGg0D,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAWh0D,EAAE+Q,OAAOurF,eAAiB,WAAc,OAAOp9F,IAAM,EAAGc,GAC9M,SAASg0D,EAAK57C,GAAKpY,EAAEoY,GAAKnQ,EAAEmQ,IAAM,SAAU4b,GAAK,OAAO,IAAI3f,QAAQ,SAAUH,EAASC,IACvF,SAAgBD,EAASC,EAAQnL,EAAGgrB,GAAK3f,QAAQH,QAAQ8f,GAAGnU,KAAK,SAASmU,GAAK9f,EAAQ,CAAEjT,MAAO+yB,EAAGka,KAAMllC,GAAM,EAAGmL,EAAS,CADbs8Q,CAAOv8Q,EAASC,GAA7B6f,EAAI/rB,EAAEmQ,GAAG4b,IAA8Bka,KAAMla,EAAE/yB,MAAQ,EAAI,CAAG,CAEnK,CAq2B8CwwR,CAAcL,IACxD,EACJ,CClzBuRM,CAAoB,CAAC/7O,IAAS7wC,aAAyC,EAASA,EAAQgsR,eAAgBhsR,EAC/X,CArBuB6sR,CAAwBt3H,EAAW16I,GAC9C,IAAK,mBACD,OAoBT,SAAiC06I,EAAW16I,GAC/C,OAAO7B,MAAO0B,EAAS1a,KACnB,IAAI+W,EAAI+1Q,EAAK91Q,EAAIC,EACbC,EAAIC,EACR,MAAMioG,QAAiBm2C,EAAUrtJ,OAAO2S,EAAQ7a,aAAyC,EAASA,EAAQu7C,OAAQv7C,aAAyC,EAASA,EAAQ+rR,UAAW/rR,aAAyC,EAASA,EAAQ82I,QAASp8H,EAAS1a,aAAyC,EAASA,EAAQgsR,eAE7T,IAAIe,EAD0E,QAA7E71Q,EAAKlX,aAAyC,EAASA,EAAQisR,gBAA6B,IAAP/0Q,GAAyBA,EAAG/c,KAAK6F,EAASo/G,EAASmpJ,QAEzI,IAAIh9P,EAAQ,EACZ,IACI,IAAK,IAAqD+L,EAAjDF,GAAK,EAAMC,EAAK,GAAc+nG,EAASzwG,WAAoCoI,GAAtBO,QAAWD,EAAGlR,QAAgBijC,MAAWhyB,GAAK,EACxGH,EAAKK,EAAGnb,MACRib,GAAK,EAEL21Q,EADgB91Q,EAEhB1L,GAER,CACA,MAAOyhR,GAASF,EAAM,CAAEznR,MAAO2nR,EAAS,CACxC,QACI,IACS51Q,GAAOL,KAAOC,EAAKK,EAAG26K,eAAeh7K,EAAG7c,KAAKkd,EACtD,CACA,QAAU,GAAIy1Q,EAAK,MAAMA,EAAIznR,KAAO,CACxC,CACA,IAAK0nR,EACD,MAAM,IAAI,GAAa,2CAA4C,GAAKE,eAE5E,GAAI1hR,EAAQ,EACR,MAAM,IAAI,GAAa,sEAAuE,GAAK0hR,eAGvG,OAD+E,QAA9E91Q,EAAKnX,aAAyC,EAASA,EAAQksR,iBAA8B,IAAP/0Q,GAAyBA,EAAGhd,KAAK6F,EAASo/G,EAAS+sK,SACnIY,EAEf,CArDuBG,CAAwB33H,EAAW16I,GAC9C,IAAK,iBACD,OAoDT,SAA+B06I,EAAW16I,GAC7C,MAAO,CAACH,EAAS1a,IAAYqsR,GAAqB92H,EAAUrtJ,OAAO2S,EAAQ7a,aAAyC,EAASA,EAAQu7C,OAAQv7C,aAAyC,EAASA,EAAQ+rR,UAAW/rR,aAAyC,EAASA,EAAQ82I,QAASp8H,EAAS1a,aAAyC,EAASA,EAAQgsR,eAAgBhsR,EAC5W,CAtDuBmtR,CAAsB53H,EAAW16I,GAC5C,QACI,OAAO,OAGvB,CAkDA,SAASwxQ,GAAqBnkR,EAAQlI,GAClC,MAAMi5C,EAAK,WACP,OAvFkD,SAAUuV,EAASC,EAAYhvC,GACrF,IAAKxT,OAAOurF,cAAe,MAAM,IAAI7qF,UAAU,wCAC/C,IAAoDzR,EAAhD0M,EAAI6X,EAAUvP,MAAMs+C,EAASC,GAAc,IAAQj/B,EAAI,GAC3D,OAAOt0B,EAAIc,OAAOsL,QAAiC,mBAAlBilR,cAA+BA,cAAgBvwR,QAAQZ,WAAY8zD,EAAK,QAASA,EAAK,SAAUA,EAAK,SACtI,SAAqBz3C,GAAK,OAAO,SAAUyX,GAAK,OAAO3f,QAAQH,QAAQ8f,GAAGnU,KAAKtD,EAAGpI,EAAS,CAAG,GADgEnU,EAAE+Q,OAAOurF,eAAiB,WAAc,OAAOp9F,IAAM,EAAGc,EAEtN,SAASg0D,EAAK57C,EAAGmE,GAAS7P,EAAE0L,KAAMpY,EAAEoY,GAAK,SAAU4b,GAAK,OAAO,IAAI3f,QAAQ,SAAUvN,EAAGC,GAAKutB,EAAE/xB,KAAK,CAAC6V,EAAG4b,EAAGltB,EAAGC,IAAM,GAAKkiC,EAAO7wB,EAAG4b,EAAI,EAAI,EAAOzX,IAAGvc,EAAEoY,GAAKmE,EAAEvc,EAAEoY,KAAO,CACvK,SAAS6wB,EAAO7wB,EAAG4b,GAAK,KACVL,EADqBjnB,EAAE0L,GAAG4b,IACnB/yB,iBAAiB,GAAUoT,QAAQH,QAAQyf,EAAE1yB,MAAM+yB,GAAGnU,KAAKyxQ,EAASn9Q,GAAUs8Q,EAAOn8P,EAAE,GAAG,GAAIX,EADtE,CAAE,MAAOzqB,GAAKunR,EAAOn8P,EAAE,GAAG,GAAIprB,EAAI,CAC/E,IAAcyqB,CADmE,CAEjF,SAAS29P,EAAQrwR,GAASgoC,EAAO,OAAQhoC,EAAQ,CACjD,SAASkT,EAAOlT,GAASgoC,EAAO,QAAShoC,EAAQ,CACjD,SAASwvR,EAAOl0Q,EAAGyX,GAASzX,EAAEyX,GAAIM,EAAE/a,QAAS+a,EAAE/0B,QAAQ0pC,EAAO3U,EAAE,GAAG,GAAIA,EAAE,GAAG,GAAK,CACrF,CA4Ee,CAAiBp1B,KAAM4W,UAAW,YACrC,IAAI+F,EAAIC,EACR,MAAMooG,QAAiB,GAAQl3G,GAC+C,QAA7E6O,EAAK/W,aAAyC,EAASA,EAAQisR,gBAA6B,IAAPl1Q,GAAyBA,EAAG5c,KAAK6F,EAASo/G,EAASmpJ,cACnI,SAhGwC,SAAUplQ,GAChE,IAAIjI,EAAGwxB,EACP,OAAOxxB,EAAI,CAAC,EAAGg0D,EAAK,QAASA,EAAK,QAAS,SAAU9qD,GAAK,MAAMA,CAAG,GAAI8qD,EAAK,UAAWh0D,EAAE+Q,OAAO0J,UAAY,WAAc,OAAOvb,IAAM,EAAGc,EAC1I,SAASg0D,EAAK57C,EAAGmE,GAAKvc,EAAEoY,GAAKnQ,EAAEmQ,GAAK,SAAU4b,GAAK,OAAQxC,GAAKA,GAAK,CAAEvwB,MAAO,GAAQgH,EAAEmQ,GAAG4b,IAAKka,MAAM,GAAU3xB,EAAIA,EAAEyX,GAAKA,CAAG,EAAIzX,CAAG,CACzI,CA4FiC,CAAiB,GAAc2nG,EAASzwG,WACkB,QAA9EqI,EAAKhX,aAAyC,EAASA,EAAQksR,iBAA8B,IAAPl1Q,GAAyBA,EAAG7c,KAAK6F,EAASo/G,EAAS+sK,QAC9I,EACH,CARU,GAQNlgR,OAAOurF,iBAEZ,MAAO,CACH,CAACvrF,OAAOurF,eAAgB,KAAM,CAC1BrxF,KAAM,IAAM8yC,EAAG9yC,SAG3B,CE7GO,MAKMinR,GAA0B,GALexK,GAAS,+RAKc,GCsC7E,SAASyK,GAAcxkN,GACnB,MAAMykN,EAAQzkN,EAAI4O,YAAY,KACxBp5E,EAAOivR,GAAS,EAAIzkN,EAAIuhC,UAAUkjL,EAAQ,GAAKzkN,EACrD,IAAKxqE,EAAK5D,OACN,MAAM,IAAI+G,MAAM,qBAAqBqnE,KAEzC,OAAOxqE,CACX,CCjDO,MAAMkvR,GAA4C3K,GAAS,u1BAKrD4K,GAA6B,GAAYD,GAA6B,GAKtEE,GAA4B,GAAYF,GAA6B,GAKrEG,GAAgC,GAAYH,GAA6B,GAS/E,IAAII,GCTJ,SAASja,GAAa/kQ,EAAS+mQ,GAClCkY,GAAelY,EAAW/mQ,GAC1B,MAAMk/Q,EAgFV,SAA6BzL,EAAe1M,GACxC,QAAsB7vQ,IAAlBu8Q,EACA,MAAO,GACX,GAA4B,SAAxB1M,EAAU9F,WAAgD,WAAxB8F,EAAU9F,UAAwB,CAEpE,IAAK,IAAI10Q,EAAIknR,EAAc3nR,OAAS,EAAGS,GAAK,IAAKA,EAC7C,GAAIknR,EAAclnR,GAAG8rH,IAAM0uJ,EAAU9zP,OACjC,MAAO,CAACwgQ,EAAclnR,IAG9B,MAAO,EACX,CACA,OAAOknR,EAAcvqO,OAAQi2O,GAAOA,EAAG9mK,KAAO0uJ,EAAU9zP,OAC5D,CA7FgBmsQ,CAAoBp/Q,EAAQ6xQ,SAAU9K,IAC3CngG,EAAWt+F,EAAO72E,GAAO4tR,GAAyBtY,GACzD,IAAK,MAAMoY,KAAMD,EACbxL,GAAU9sG,EAAW,IAAI,GAAau4G,EAAGxyR,MAAO27E,EAAO62M,EAAGhQ,SAAU,CAChEgE,mBAAmB,IAG3B,OAAO1hR,GACX,CAOO,SAAS6tR,GAAat/Q,EAAS+mQ,EAAWv5Q,GAC7C,IAAI4a,EACJ62Q,GAAelY,EAAW/mQ,GAC1B,MAAMk/Q,GAAmC,QAA3B92Q,EAAKpI,EAAQ6xQ,gBAA6B,IAAPzpQ,EAAgBA,EAAK,IAAI8gC,OAAQi2O,GAAOA,EAAG9mK,KAAO0uJ,EAAU9zP,SACtG2zJ,EAAWt+F,GAAS+2M,GAAyBtY,EAAWv5Q,GACzD2nR,EAAS,IAAIpH,GACnBqH,GAAWD,EAAQ,CAAEH,oBAAoB,GAAQpuG,EAAWt+F,GAC5D,MAAMgrM,EAAS,IAAI,GAAa6B,EAAOz9Q,UACvC,KAAO47Q,EAAO/tL,IAAM+tL,EAAO9/Q,KAAK,CAC5B,MAAO6kH,EAAI82J,GAAYmE,EAAOrpP,MACxBt9B,EAAO2mR,EAAOp4M,KAAKi0M,EAAU92J,GACnC6mK,EAAIpwR,KAAK,CAAEupH,KAAI82J,WAAUxiR,QAC7B,CACAqT,EAAQ6xQ,SAAWqN,CACvB,CAoEO,SAASG,GAAyBtY,EAAWv5Q,GAChD,MAAM2yQ,EAAY4G,EAAU3K,SACtB9zL,EAAQj7E,OAAO+nB,OAAO/nB,OAAO+nB,OAAO,CAAC,EAAG2xP,GAAY,CAAEhyN,KAAM,QAAS9e,OAAQ8wO,EAAUpC,SAAUxE,cACjG1gN,EAAOpyD,OAAO+nB,OAAO/nB,OAAO+nB,OAAO,CAAC,EAAG2xP,EAAUpC,UAAW,CAAE1wP,OAAQ,CAACq0D,GAAQ/sB,QAAS,CAAC+sB,GAAQg/L,OAAQ,KACzG1gG,EAAY,EAAOnnH,OAAgBvoD,IAAV1J,EAAsB,CAAE,CAAC2yQ,GAAY3yQ,QAAU0J,GAC9E,MAAO,CACH,GAAQuoD,EAAMmnH,GACdt+F,EACA,KACI,MAAM96E,EAAQo5K,EAAUu5F,GACxB,QAAcjpQ,IAAV1J,EAAqB,CAErB,MAAMiyD,EAAOsnN,EAAU/mQ,QACvB,OAAI+gQ,EAActhN,GACP4/M,EAAgB5/M,EAAKxrC,OAAO,GAAG2nG,OAAQn8D,EAAKxrC,OAAO,GAAGqrP,cAE1D,EAAO7/M,EAClB,CACA,OAAOjyD,GAGnB,CACA,SAASyxR,GAAelY,EAAW/mQ,GAC/B,GAAI+mQ,EAAUpC,SAASvI,UAAYp8P,EAAQm8P,UACvC,MAAM,IAAItpQ,MAAM,aAAak0Q,EAAU3K,2CAA2C2K,EAAUpC,SAASvI,WAE7G,EDnHA,SAAW4iB,GAMPA,EAAUA,EAAsB,WAAI,GAAK,YAC5C,CAPD,CAOGA,KAAcA,GAAY,CAAC,IE3B9B,MAAMO,GAAmB,CACrBC,qBAAqB,GA0BlB,SAASC,GAASnpO,EAAQ+xF,EAAMh3I,GACnC,MAAMmB,EAAM,GAAQ8jD,GACpB,IACI,GAAY9jD,EAAK61I,EA3BzB,SAAyBh3I,GACrB,OAAOA,EAAUhE,OAAO+nB,OAAO/nB,OAAO+nB,OAAO,CAAC,EAAGmqQ,IAAmBluR,GAAWkuR,EACnF,CAyB+B,CAAgBluR,GAC3C,CACA,MAAOoE,GACH,IrChCqBf,EqCgCJe,arC/BE5C,OACnBo6Q,GAAW98M,SAASz7D,EAAIhF,OACxB,UAAWgF,GACS,mBAAbA,EAAI4zE,MqC8BP,MAAM,IAAIz1E,MAAM,iBAAiB4C,EAAE6yE,sBAAsB7yE,EAAEuK,UAAW,CAClED,MAAOtK,IAGf,MAAMA,CACV,CrCvCG,IAAsBf,EqCwCzB,OAAOlC,EAAIwN,OACf,CAyCA,SAAS,GAAYxN,EAAK61I,EAAMz6I,GAC5B,IAAIwa,EACJ,GA+TJ,SAAwB5V,EAAKktR,EAAW9xR,GACpC,IAAK4E,EAAIitD,KAAK28M,SAASnsQ,WAAW,oBAC9B,OAAO,EAEX,OAAQuC,EAAIitD,KAAK28M,UACb,IAAK,sBAED,OAiCZ,SAAqB3zM,EAAK4/E,EAAMz6I,GAC5B,IAAIwa,EACJ,GAAa,OAATigI,GAAiB1zI,MAAMF,QAAQ4zI,IAAwB,iBAARA,EAC/C,MAAM,IAAIx1I,MAAM,yBAAyB41D,EAAI0zM,gDAAgD,GAAU9zH,MAE3G,GAAgC,GAA5Bh7I,OAAOC,KAAK+6I,GAAMv8I,OAClB,OAEJ,MAAM6zR,EAAUt3I,EAAK,SACrB,GAAsB,iBAAXs3I,GAAkC,IAAXA,EAC9B,MAAM,IAAI9sR,MAAM,yBAAyB41D,EAAI0zM,yCAEjD,MAAMC,EAAWujB,EAAQxvN,SAAS,KAC5BwvN,EAAQlkL,UAAUkkL,EAAQ72M,YAAY,KAAO,GAC7C62M,EACN,IAAKvjB,EAAStwQ,OACV,MAAM,IAAI+G,MAAM,yBAAyB41D,EAAI0zM,2CAEjD,MAAM18M,EAAgC,QAAxBr3C,EAAKxa,EAAKw2Q,gBAA6B,IAAPh8P,OAAgB,EAASA,EAAG00C,WAAWs/M,GACrF,IAAK38M,EACD,MAAM,IAAI5sD,MAAM,yBAAyB41D,EAAI0zM,wBAAwBwjB,iCAEzE,MAAMntR,EAAM,GAAQitD,GACpB,GAAI28M,EAASnsQ,WAAW,qBACpB5C,OAAOZ,UAAU4S,eAAe7T,KAAK68I,EAAM,SAE3C,GAAY71I,EADE61I,EAAK76I,MACKI,OAEvB,CACD,MAAMgX,EAAOvX,OAAO+nB,OAAO,CAAC,EAAGizH,UAExBzjI,EAAK,SACZ,GAAYpS,EAAKoS,EAAMhX,EAC3B,EHpeG,SAAiB0oD,EAAQt2C,EAAS4/Q,GACrC,IAAIhiR,GAAM,EACLgiR,IACDA,EAAO,EAAOnB,KAGlBmB,EAAKpyR,MAAQ,GAAS8oD,EAAQt2C,GAC9B4/Q,EAAKD,QAmCE,uBAnCsB3/Q,EAAQm8P,WAEzC,CG4dI0jB,CAAQrtR,EAAIitD,KAAMjtD,EAAIwN,QAASyoD,EACnC,CArEYq3N,CAAYttR,EAAIwN,QAAS0/Q,EAAW9xR,IAC7B,EACX,IAAK,4BAED,OAkEZ,SAA2BwzC,EAAWinG,GAClC,GAAoB,iBAATA,EACP,MAAM,IAAIx1I,MAAM,yBAAyBuuC,EAAU+6N,wBAAwB,GAAU9zH,MAEzF,MAAM/2C,EAAU+2C,EAAKvtH,MAAM,2HAC3B,IAAKw2E,EACD,MAAM,IAAIz+F,MAAM,yBAAyBuuC,EAAU+6N,gDAEvD,MAAMtwF,EAAKxqI,KAAK1d,MAEhB2tE,EAAQ,GAAK,IAAMA,EAAQ,GAAK,IAAMA,EAAQ,GAAK,IAAMA,EAAQ,GAAK,IAAMA,EAAQ,GAAK,IAAMA,EAAQ,IAAMA,EAAQ,GAAKA,EAAQ,GAAK,MACvI,GAAIjhG,OAAOyR,MAAM+pK,GACb,MAAM,IAAIh5K,MAAM,yBAAyBuuC,EAAU+6N,gDAEvD,GAAItwF,EAAKxqI,KAAK1d,MAAM,yBAChBkoJ,EAAKxqI,KAAK1d,MAAM,wBAChB,MAAM,IAAI9wB,MAAM,yBAAyBuuC,EAAU+6N,4FAEvD/6N,EAAUqpI,QAAUszF,EAAWp6O,MAAMkoJ,EAAK,KAC1CzqI,EAAUovG,MAAQ,EACdl/C,EAAQ,KACRlwD,EAAUovG,MACNlgJ,SAAS,IAAMghG,EAAQ,GAAK,IAAI5hC,OAAO,EAAI4hC,EAAQ,GAAGxlG,SAClD,IAEhB,CA5FYi0R,CAAkBvtR,EAAIwN,QAAS0/Q,IACxB,EACX,IAAK,2BAED,OAyFZ,SAA0Bt0I,EAAU/C,GAChC,GAAoB,iBAATA,EACP,MAAM,IAAIx1I,MAAM,yBAAyBu4I,EAAS+wH,wBAAwB,GAAU9zH,MAExF,MAAMvtH,EAAQutH,EAAKvtH,MAAM,+BACzB,GAAc,OAAVA,EACA,MAAM,IAAIjoB,MAAM,yBAAyBu4I,EAAS+wH,wBAAwB,GAAU9zH,MAExF,MAAM23I,EAAc3vR,OAAOyqB,EAAM,IACjC,GAAIklQ,EAAc,UAAgBA,GAAe,SAC7C,MAAM,IAAIntR,MAAM,yBAAyBu4I,EAAS+wH,wBAAwB,GAAU9zH,MAGxF,GADA+C,EAASq/B,QAAUszF,EAAWp6O,MAAMq8P,GACZ,iBAAbllQ,EAAM,GACb,OAEJ,MAAMmlQ,EAAWnlQ,EAAM,GAAK,IAAI40C,OAAO,EAAI50C,EAAM,GAAGhvB,QACpDs/I,EAASoF,MAAQlgJ,SAAS2vR,IACtBD,EAAc,GAAK3yR,OAAOgsD,GAAG2mO,GAAc,MAC3C50I,EAASoF,OAASpF,EAASoF,MAEnC,CA/GY0vI,CAAiB1tR,EAAIwN,QAAS0/Q,IACvB,EACX,IAAK,4BAED,OA4GZ,SAA2BS,EAAW93I,GAClC,GAAoB,iBAATA,EACP,MAAM,IAAIx1I,MAAM,yBAAyBstR,EAAUhkB,wBAAwB,GAAU9zH,MAE5E,KAATA,IAUJ83I,EAAUxU,MAAQtjI,EAAKl4I,MAAM,KAAKhD,IAPlC,SAAsB4jF,GAClB,GAAIA,EAAI5gB,SAAS,KACb,MAAM,IAAIt9D,MAAM,yBAAyBstR,EAAUhkB,0DAEvD,MAAM16I,EAAK1wC,EAAI11D,QAAQ,SAAW+kQ,GAAW,IAAMA,EAAOpzR,eAC1D,MAAiB,MAAVy0H,EAAG,GAAaA,EAAGhmB,UAAU,GAAKgmB,CAC7C,GAEJ,CA5HY4+J,CAAkB7tR,EAAIwN,QAAS0/Q,IACxB,EACX,IAAK,yBAED,OADAY,GAAe9tR,EAAIwN,QAAS0/Q,IACrB,EACX,IAAK,wBAED,OADAa,GAAc/tR,EAAIwN,QAAS0/Q,IACpB,EACX,IAAK,4BAED,OADAc,GAAkBhuR,EAAIwN,QAAS0/Q,IACxB,EACX,QACI,GAAI3e,EAAcvuQ,EAAIitD,MAAO,CACzB,MAAMwuI,EAAaz7L,EAAIitD,KAAKxrC,OAAO,GAOnC,OANkB,OAAdyrQ,EACAltR,EAAI01G,MAAM+lF,GAGVz7L,EAAIZ,IAAIq8L,EAAYwyF,GAAexyF,EAAYyxF,GAAW,KAEvD,CACX,CACA,OAAO,EAEnB,CAtWQgB,CAAeluR,EAAK61I,EAAMz6I,GAC1B,OAEJ,GAAY,MAARy6I,GAAgB1zI,MAAMF,QAAQ4zI,IAAwB,iBAARA,EAC9C,MAAM,IAAIx1I,MAAM,iBAAiBL,EAAIitD,mBAAmB,GAAU4oF,MAEtE,MAAMs4I,EAAY,IAAI3oQ,IAChB4oQ,EAAY,IAAI5oQ,IACtB,IAAK,MAAMswD,KAAS91E,EAAIitD,KAAKxrC,OACzB2sQ,EAAUhvR,IAAI02E,EAAM54E,KAAM44E,GAAO12E,IAAI02E,EAAMu7L,SAAUv7L,GAEzD,IAAK,MAAOu4M,EAASnB,KAAcryR,OAAO6uC,QAAQmsG,GAAO,CACrD,MAAM//D,EAAQs4M,EAAUnvR,IAAIovR,GAC5B,GAAIv4M,EAAO,CACP,GAAIA,EAAM43L,MAAO,CACb,GAAkB,OAAdwf,GAAyC,UAAnBp3M,EAAM24L,UAE5B,SAEJ,MAAM1xM,EAAOoxN,EAAUlvR,IAAI62E,EAAM43L,OACjC,QAAahpQ,IAATq4D,EACA,MAAM,IAAI29M,GAAW5kM,EAAM43L,MAAO,+BAA+B3wM,EAAK7/D,YAAY44E,EAAM54E,QAE5FixR,EAAU/uR,IAAI02E,EAAM43L,MAAO53L,EAC/B,CACA,GAAU91E,EAAK81E,EAAOo3M,EAAW9xR,EACrC,KACK,CACD,IAAIm5Q,EACJ,GAAI8Z,EAAQ5wR,WAAW,MACnB4wR,EAAQ7vR,SAAS,OAEhB+1Q,EAAqC,QAAxB3+P,EAAKxa,EAAKw2Q,gBAA6B,IAAPh8P,OAAgB,EAASA,EAAG28P,aAAa8b,EAAQplL,UAAU,EAAGolL,EAAQ/0R,OAAS,MAC7Hi7Q,EAAUpC,SAASvI,WAAa5pQ,EAAIitD,KAAK28M,SAAU,CACnD,MAAOx1F,EAAWt+F,EAAO72E,GAAO4tR,GAAyBtY,GACzD,GAAUngG,EAAWt+F,EAAOo3M,EAAW9xR,GACvC0xR,GAAa9sR,EAAIwN,QAAS+mQ,EAAWt1Q,IACzC,CACA,IAAKs1Q,IAAcn5Q,EAAK4xR,oBACpB,MAAM,IAAI3sR,MAAM,iBAAiBL,EAAIitD,wBAAwBohO,gBAErE,CACJ,CACJ,CACA,SAAS,GAAUruR,EAAK81E,EAAO+/D,EAAMz6I,GACjC,OAAQ06E,EAAM24L,WACV,IAAK,UAuGb,SAAyBzuQ,EAAK81E,EAAO+/D,GACjC,MAAMy4I,EAAcL,GAAen4M,EAAO+/D,GAAM,GAC5Cy4I,IAAgBC,GAChBvuR,EAAI01G,MAAM5/B,GAGV91E,EAAIZ,IAAI02E,EAAOw4M,EAEvB,CA9GYE,CAAgBxuR,EAAK81E,EAAO+/D,GAC5B,MACJ,IAAK,QA2Fb,SAAuB71I,EAAK81E,EAAO+/D,EAAMz6I,GACrC,MAAMw7Q,EAAY6X,GAAS34M,EAAMm4L,KAAMp4H,EAAMz6I,EAAK4xR,qBAAqB,GACnEpW,IAAc2X,GACdvuR,EAAI01G,MAAM5/B,GAEL8gM,IAAc8X,IACnB1uR,EAAIZ,IAAI02E,EAAO8gM,EAEvB,CAlGY+X,CAAc3uR,EAAK81E,EAAO+/D,EAAMz6I,GAChC,MACJ,IAAK,WA+Eb,SAA0B4E,EAAK81E,EAAO+/D,EAAMz6I,GACxC,GAAa,OAATy6I,GAA2C,yBAA1B//D,EAAMtoE,QAAQo8P,SAE/B,YADA5pQ,EAAI01G,MAAM5/B,GAGd,MAAM84M,EAAW5uR,EAAIw+Q,MAAM1oM,GAAS91E,EAAIf,IAAI62E,GAAS,GAAQA,EAAMtoE,SACnE,GAAYohR,EAAU/4I,EAAMz6I,GAC5B4E,EAAIZ,IAAI02E,EAAO84M,EACnB,CAtFY,CAAiB5uR,EAAK81E,EAAO+/D,EAAMz6I,GACnC,MACJ,IAAK,QAyCb,SAAuB+X,EAAM0iI,EAAMz6I,GAC/B,GAAa,OAATy6I,EACA,OAEJ,MAAM//D,EAAQ3iE,EAAK2iE,QACnB,IAAK3zE,MAAMF,QAAQ4zI,GACf,MAAM,IAAI6kI,GAAW5kM,EAAO,uBAAyB,GAAU+/D,IAEnE,IAAK,MAAMg5I,KAAYh5I,EAAM,CACzB,GAAiB,OAAbg5I,IAAsBC,GAA2Bh5M,GACjD,MAAM,IAAI4kM,GAAW5kM,EAAO,8BAEhC,OAAQA,EAAMk4L,UACV,IAAK,UACD,MAAM4gB,EAAW,GAAQ94M,EAAMtoE,SAC/B,GAAYohR,EAAUC,EAAUzzR,GAChC+X,EAAKub,IAAIkgQ,GACT,MACJ,IAAK,OACD,MAAMhY,EAAY6X,GAAS34M,EAAMm4L,KAAM4gB,EAAUzzR,EAAK4xR,qBAAqB,GACvEpW,IAAc8X,IACdv7Q,EAAKub,IAAIkoP,GAEb,MACJ,IAAK,SACDzjQ,EAAKub,IAAIu/P,GAAen4M,EAAO+4M,GAAU,IAGrD,CACJ,CArEY,CAAc7uR,EAAIf,IAAI62E,GAAQ+/D,EAAMz6I,GACpC,MACJ,IAAK,OAKb,SAAsBT,EAAKk7I,EAAMz6I,GAC7B,GAAa,OAATy6I,EACA,OAEJ,MAAM//D,EAAQn7E,EAAIm7E,QAClB,GAAmB,iBAAR+/D,GAAoB1zI,MAAMF,QAAQ4zI,GACzC,MAAM,IAAI6kI,GAAW5kM,EAAO,wBAA0B,GAAU+/D,IAEpE,IAAK,MAAOk5I,EAAYC,KAAiBn0R,OAAO6uC,QAAQmsG,GAAO,CAC3D,GAAqB,OAAjBm5I,IAA0BF,GAA2Bh5M,GACrD,MAAM,IAAI4kM,GAAW5kM,EAAO,8BAEhC,IAAI96E,EACJ,OAAQ86E,EAAMs4L,SACV,IAAK,UACD,MAAMwgB,EAAW,GAAQ94M,EAAMtoE,SAC/B,GAAYohR,EAAUI,EAAc5zR,GACpCJ,EAAQ4zR,EACR,MACJ,IAAK,OAED,GADA5zR,EAAQyzR,GAAS34M,EAAMm4L,KAAM+gB,EAAc5zR,EAAK4xR,qBAAqB,GACjEhyR,IAAU0zR,GACV,OAEJ,MACJ,IAAK,SACD1zR,EAAQizR,GAAen4M,EAAOk5M,GAAc,GAGpD,MAAMj2R,EAAMk2R,GAAen5M,EAAMq4L,OAAQ4gB,GACzCp0R,EAAIyE,IAAIrG,EAAKiC,EACjB,CACJ,CApCYk0R,CAAalvR,EAAIf,IAAI62E,GAAQ+/D,EAAMz6I,GAG/C,CAgEA,SAAS0zR,GAA2Bh5M,GAChC,IAAIlgE,EAAIC,EACR,MAAmF,0BAAjD,QAAxBD,EAAKkgE,EAAMtoE,eAA4B,IAAPoI,OAAgB,EAASA,EAAGg0P,WACM,8BAAjD,QAArB/zP,EAAKigE,EAAMm4L,YAAyB,IAAPp4P,OAAgB,EAASA,EAAG+zP,SACnE,CA4BA,MAAM8kB,GAA0B5jR,SAChC,SAAS2jR,GAASxhO,EAAM4oF,EAAMm3I,EAAqBmC,GAC/C,GAAa,OAATt5I,EACA,MAAqB,6BAAjB5oF,EAAK28M,SACE,EAEJulB,EAAkBliO,EAAKjxD,OAAO,GAAGykB,OAAS8tQ,GAErD,cAAe14I,GACX,IAAK,SACD,GAAIh4I,OAAO4wG,UAAUonC,GACjB,OAAOA,EAEX,MACJ,IAAK,SACD,MAAM76I,EAAQiyD,EAAKjxD,OAAOu8E,KAAM4rF,GAAOA,EAAGjnK,OAAS24I,GACnD,QAAcnxI,IAAV1J,EACA,OAAOA,EAAMylB,OAEjB,GAAIusQ,EACA,OAAO0B,GAInB,MAAM,IAAIruR,MAAM,iBAAiB4sD,gBAAmB,GAAU4oF,KAClE,CACA,MAAM04I,GAAYzjR,SAClB,SAASmjR,GAAen4M,EAAO+/D,EAAMs5I,GACjC,GAAa,OAATt5I,EACA,OAAIs5I,EACOtiB,EAAgB/2L,EAAMszC,QAAQ,GAElCmlK,GAIX,OAAQz4M,EAAMszC,QAGV,KAAK,EAAW6jJ,OAChB,KAAK,EAAWC,MACZ,GAAa,QAATr3H,EACA,OAAO72C,IACX,GAAa,aAAT62C,EACA,OAAOh4I,OAAO8nB,kBAClB,GAAa,cAATkwH,EACA,OAAOh4I,OAAOm5Q,kBAClB,GAAmB,iBAARnhI,EAAkB,CACzB,GAAIh4I,OAAOyR,MAAMumI,GAEb,MAAM,IAAI6kI,GAAW5kM,EAAO,yBAEhC,IAAKj4E,OAAO84G,SAASk/B,GAEjB,MAAM,IAAI6kI,GAAW5kM,EAAO,8BAEhC,KACJ,CACA,GAAmB,iBAAR+/D,EAAkB,CACzB,GAAa,KAATA,EAEA,MAEJ,GAAIA,EAAKp6I,OAAOnC,SAAWu8I,EAAKv8I,OAE5B,MAEJ,MAAMwiR,EAAQj+Q,OAAOg4I,GACrB,IAAKh4I,OAAO84G,SAASmlK,GAEjB,MAEJ,OAAOA,CACX,CACA,MAEJ,KAAK,EAAW7E,MAChB,KAAK,EAAWG,QAChB,KAAK,EAAWC,SAChB,KAAK,EAAWF,OAChB,KAAK,EAAWD,OACZ,OAAOkY,GAAcv5I,GAGzB,KAAK,EAAWvvB,MACZ,GAAmB,iBAARuvB,EAAkB,CACzB,GAAa,KAATA,EACA,OAAO,IAAIjvI,WAAW,GAE1B,IACI,OAAO,GAAaivI,EACxB,CACA,MAAO5yI,GACH,MAAMuK,EAAUvK,aAAa5C,MAAQ4C,EAAEuK,QAAU4D,OAAOnO,GACxD,MAAM,IAAIy3Q,GAAW5kM,EAAOtoE,EAChC,CACJ,EAGR,OAAOqoI,CACX,CAMA,SAASo5I,GAAezyR,EAAMq5I,GAC1B,OAAQr5I,GACJ,KAAK,EAAWwwQ,KACZ,OAAQn3H,GACJ,IAAK,OACD,OAAO,EACX,IAAK,QACD,OAAO,EAEf,OAAOA,EACX,KAAK,EAAWohI,MAChB,KAAK,EAAWG,QAChB,KAAK,EAAWF,OAChB,KAAK,EAAWG,SAChB,KAAK,EAAWF,OACZ,OAAOiY,GAAcv5I,GACzB,QACI,OAAOA,EAEnB,CAMA,SAASu5I,GAAcv5I,GACnB,GAAmB,iBAARA,EAAkB,CACzB,GAAa,KAATA,EAEA,OAAOA,EAEX,GAAIA,EAAKp6I,OAAOnC,SAAWu8I,EAAKv8I,OAE5B,OAAOu8I,EAEX,MAAMzhI,EAAMvW,OAAOg4I,GACnB,OAAIh4I,OAAOyR,MAAM8E,GAENyhI,EAEJzhI,CACX,CACA,OAAOyhI,CACX,CAwJA,SAASi4I,GAAetsQ,EAAQq0H,GAC5B,GAAmB,iBAARA,GAA4B,MAARA,GAAgB1zI,MAAMF,QAAQ4zI,GACzD,MAAM,IAAIx1I,MAAM,yBAAyBmhB,EAAOmoP,uBAAuB,GAAU9zH,MAErF,IAAK,MAAO51I,EAAG8tB,KAAMlzB,OAAO6uC,QAAQmsG,GAAO,CACvC,MAAMw5I,EAAU,EAAO/C,IACvByB,GAAcsB,EAASthQ,GACvBvM,EAAOC,OAAOxhB,GAAKovR,CACvB,CACJ,CACA,SAAStB,GAAc/yR,EAAO66I,GAC1B,cAAeA,GACX,IAAK,SACD76I,EAAMunD,KAAO,CAAEqrN,KAAM,cAAe5yQ,MAAO66I,GAC3C,MACJ,IAAK,SACD76I,EAAMunD,KAAO,CAAEqrN,KAAM,cAAe5yQ,MAAO66I,GAC3C,MACJ,IAAK,UACD76I,EAAMunD,KAAO,CAAEqrN,KAAM,YAAa5yQ,MAAO66I,GACzC,MACJ,IAAK,SACD,GAAa,OAATA,EACA76I,EAAMunD,KAAO,CAAEqrN,KAAM,YAAa5yQ,MAAOwxR,GAAU8C,iBAElD,GAAIntR,MAAMF,QAAQ4zI,GAAO,CAC1B,MAAM4qI,EAAY,EAAO8L,IACzByB,GAAkBvN,EAAW5qI,GAC7B76I,EAAMunD,KAAO,CAAEqrN,KAAM,YAAa5yQ,MAAOylR,EAC7C,KACK,CACD,MAAMj/P,EAAS,EAAO6qQ,IACtByB,GAAetsQ,EAAQq0H,GACvB76I,EAAMunD,KAAO,CAAEqrN,KAAM,cAAe5yQ,MAAOwmB,EAC/C,CACA,MACJ,QACI,MAAM,IAAInhB,MAAM,yBAAyBrF,EAAM2uQ,uBAAuB,GAAU9zH,MAExF,OAAO76I,CACX,CACA,SAASgzR,GAAkBvN,EAAW5qI,GAClC,IAAK1zI,MAAMF,QAAQ4zI,GACf,MAAM,IAAIx1I,MAAM,yBAAyBogR,EAAU9W,uBAAuB,GAAU9zH,MAExF,IAAK,MAAM5yI,KAAK4yI,EAAM,CAClB,MAAM76I,EAAQ,EAAOsxR,IACrByB,GAAc/yR,EAAOiI,GACrBw9Q,EAAUzkR,OAAOM,KAAKtB,EAC1B,CACJ,CC1lBO,SAASu0R,KACZ,MAAO,CACH,GAAAtwR,CAAIlG,GACA,OAAOA,EAAIwjB,MAAMtjB,KAAOA,KAAKF,EAAIwjB,IAAMxjB,EAAIsmC,YAC/C,EACA,GAAAjgC,CAAIrG,EAAKiC,GAEL,OADA/B,KAAKF,EAAIwjB,IAAMvhB,EACR/B,IACX,EACA,OAAOF,GAEH,cADOE,KAAKF,EAAIwjB,IACTtjB,IACX,EAER,CCRA,MAIMu2R,GAAoB,CACtBC,oBAAoB,EACpBC,eAAe,EACfC,mBAAmB,GAkCvB,SAASC,GAAc5vR,EAAK5E,GACxB,IAAIwa,EACJ,MAAMi6Q,EA+KV,SAAsB7vR,EAAK5E,GA+E3B,IAAyBg6D,EA9ErB,GAAKp1D,EAAIitD,KAAK28M,SAASnsQ,WAAW,oBAGlC,OAAQuC,EAAIitD,KAAK28M,UACb,IAAK,sBACD,OAqBZ,SAAmBx0M,EAAKh6D,GACpB,GAAoB,KAAhBg6D,EAAI+3N,QACJ,MAAO,CAAC,EAEZ,MAAM,SAAEvb,GAAax2Q,EACrB,IAAIoS,EACAy/C,EAOJ,GANI2kN,IACApkQ,EL9OD,SAAmByoD,EAAK65N,GAC3B,GAAoB,KAAhB75N,EAAIk3N,QACJ,OAEJ,MAAMlgO,EAAqC,WAA9B6iO,EAAsBvtO,KAC7ButO,EACAA,EAAsBxlO,WAAW4hO,GAAcj2N,EAAIk3N,UACzD,OAAKlgO,GAjBF,SAAegJ,EAAK85N,GACvB,MAAoB,KAAhB95N,EAAIk3N,UAG8B,iBAAlB4C,EACdA,EACAA,EAAenmB,YACTsiB,GAAcj2N,EAAIk3N,QAElC,CAQkB6C,CAAM/5N,EAAKhJ,GAGlB,GAAWA,EAAMgJ,EAAIj7D,YAH5B,CAIJ,CKmOkBi1R,CAAU76N,EAAKw8M,GACrBpkQ,IACAy/C,EAAO2kN,EAAStnN,WAAW98C,EAAQm8P,cAGtC18M,IAASz/C,EACV,MAAM,IAAInN,MAAM,yBAAyB+0D,EAAIu0M,uBAAuBv0M,EAAI+3N,wCAE5E,IAAIt3I,EAAO+5I,GAAc,GAAQ3iO,EAAMz/C,GAAUpS,GAQjD,OAPI6xD,EAAK28M,SAASnsQ,WAAW,qBAChB,OAATo4I,GACA1zI,MAAMF,QAAQ4zI,IACE,iBAATA,KACPA,EAAO,CAAE76I,MAAO66I,IAEpBA,EAAK,SAAWzgF,EAAI+3N,QACbt3I,CACX,CA9CmBq6I,CAAUlwR,EAAIwN,QAASpS,GAClC,IAAK,4BACD,OAkHZ,SAAyBg6D,GACrB,MAAMikH,EAA2B,IAAtBx7K,OAAOu3D,EAAI6iH,SACtB,GAAIoB,EAAKxqI,KAAK1d,MAAM,yBAChBkoJ,EAAKxqI,KAAK1d,MAAM,wBAChB,MAAM,IAAI9wB,MAAM,yBAAyB+0D,EAAIu0M,0FAEjD,GAAIv0M,EAAI4oF,MAAQ,EACZ,MAAM,IAAI39I,MAAM,yBAAyB+0D,EAAIu0M,iDAEjD,GAAIv0M,EAAI4oF,MAAQ,UACZ,MAAM,IAAI39I,MAAM,yBAAyB+0D,EAAIu0M,8DAEjD,IAAIr0P,EAAI,IACR,GAAI8/C,EAAI4oF,MAAQ,EAAG,CACf,MAAMyvI,GAAYr4N,EAAI4oF,MAAQ,KAAYx8I,WAAWynG,UAAU,GAE3D3zF,EAD0B,WAA1Bm4Q,EAASxkL,UAAU,GACf,IAAMwkL,EAASxkL,UAAU,EAAG,GAAK,IAEN,QAA1BwkL,EAASxkL,UAAU,GACpB,IAAMwkL,EAASxkL,UAAU,EAAG,GAAK,IAGjC,IAAMwkL,EAAW,GAE7B,CACA,OAAO,IAAI5+O,KAAKwqI,GAAI/zI,cAAczc,QAAQ,QAASvT,EACvD,CA5ImB66Q,CAAgBnwR,EAAIwN,SAC/B,IAAK,2BACD,OA2CZ,SAAwB4nD,GACpB,MAAM6iH,EAAUp6K,OAAOu3D,EAAI6iH,SACrBj6B,EAAQ5oF,EAAI4oF,MAClB,GAAIi6B,EAAU,UAAgBA,GAAW,SACrC,MAAM,IAAI53K,MAAM,yBAAyB+0D,EAAIu0M,yCAEjD,GAAK1xF,EAAU,GAAKj6B,EAAQ,GAAOi6B,EAAU,GAAKj6B,EAAQ,EACtD,MAAM,IAAI39I,MAAM,yBAAyB+0D,EAAIu0M,yDAEjD,IAAIlxI,EAAOrjE,EAAI6iH,QAAQz2K,WACvB,GAAc,IAAVw8I,EAAa,CACb,IAAIyvI,EAAWxsR,KAAKkrC,IAAI6xG,GAAOx8I,WAC/BisR,EAAW,IAAIvwN,OAAO,EAAIuwN,EAASn0R,QAAUm0R,EACf,WAA1BA,EAASxkL,UAAU,GACnBwkL,EAAWA,EAASxkL,UAAU,EAAG,GAEF,QAA1BwkL,EAASxkL,UAAU,KACxBwkL,EAAWA,EAASxkL,UAAU,EAAG,IAErCwvB,GAAQ,IAAMg1J,EACVzvI,EAAQ,GAAgB,GAAXi6B,IACbx/C,EAAO,IAAMA,EAErB,CACA,OAAOA,EAAO,GAClB,CApEmB23J,CAAepwR,EAAIwN,SAC9B,IAAK,4BACD,OAmEa4nD,EAnEUp1D,EAAIwN,SAoExB2rQ,MACNx+Q,IAAK4wB,IACN,GAAIA,EAAEjD,MAAM,cAAgBiD,EAAEjD,MAAM,UAChC,MAAM,IAAIjoB,MAAM,yBAAyB+0D,EAAIu0M,mDACzCp+O,EACA,qBAER,OAAOwlP,GAAexlP,KAErB3d,KAAK,KA5EN,IAAK,yBACD,OAAOyiR,GAAarwR,EAAIwN,SAC5B,IAAK,wBACD,OAAO8iR,GAAYtwR,EAAIwN,SAC3B,IAAK,4BACD,OAAO+iR,GAAgBvwR,EAAIwN,SAC/B,QACI,GAAI+gQ,EAAcvuQ,EAAIitD,MAAO,CACzB,MAAMwuI,EAAaz7L,EAAIitD,KAAKxrC,OAAO,GACnC,OAAO+uQ,GAAa/0F,EAAYz7L,EAAIf,IAAIw8L,GAC5C,CACA,OAEZ,CAzMoBg1F,CAAazwR,EAAK5E,GAClC,QAAgBsJ,IAAZmrR,EACA,OAAOA,EACX,MAAMh6I,EAAO,CAAC,EACd,IAAK,MAAMv/H,KAAKtW,EAAIi+Q,aAAc,CAC9B,IAAKj+Q,EAAIw+Q,MAAMloQ,GAAI,CACf,GAjDY,GAiDRA,EAAEs4P,SACF,MAAM,IAAIvuQ,MAAM,iBAAiBiW,qCAErC,IAAKlb,EAAKq0R,oBAlDL,IAkD2Bn5Q,EAAEs4P,SAE9B,QAER,CACA,MAAMse,EAAYwD,GAAYp6Q,EAAGtW,EAAIf,IAAIqX,GAAIlb,QAC3BsJ,IAAdwoR,IACAr3I,EAAKw7H,GAAS/6P,EAAGlb,IAAS8xR,EAElC,CACA,GAAI9xR,EAAKw2Q,SAAU,CACf,MAAM+e,EAAU,IAAIz0P,IACpB,IAAK,MAAM,GAAE2pF,KAAoC,QAA3BjwG,EAAK5V,EAAIo/Q,oBAAiC,IAAPxpQ,EAAgBA,EAAK,GAG1E,IAAK+6Q,EAAQ3xR,IAAI6mH,GAAK,CAClB8qK,EAAQjiQ,IAAIm3F,GACZ,MAAM0uJ,EAAYn5Q,EAAKw2Q,SAASY,gBAAgBxyQ,EAAIitD,KAAM44D,GAC1D,IAAK0uJ,EACD,SAEJ,MAAMv5Q,EAAQu3Q,GAAavyQ,EAAIwN,QAAS+mQ,IACjCngG,EAAWt+F,GAAS+2M,GAAyBtY,EAAWv5Q,GACzDkyR,EAAYwD,GAAY56M,EAAOs+F,EAAUn1K,IAAI62E,GAAQ16E,QACzCsJ,IAAdwoR,IACAr3I,EAAK0+H,EAAUlD,UAAY6b,EAEnC,CAER,CACA,OAAOr3I,CACX,CACA,SAAS66I,GAAYp6Q,EAAG8+C,EAAKh6D,GACzB,OAAQkb,EAAEm4P,WACN,IAAK,SACD,OAAO+hB,GAAal6Q,EAAG8+C,GAC3B,IAAK,UACD,OAAOw6N,GAAcx6N,EAAKh6D,GAC9B,IAAK,OACD,OAAOw1R,GAAmBt6Q,EAAE23P,KAAM74M,EAAKh6D,EAAKs0R,eAChD,IAAK,OACD,OA2BZ,SAAoBv8Q,EAAM/X,GACtB,MAAMkb,EAAInD,EAAK2iE,QACT+6M,EAAU,GAChB,OAAQv6Q,EAAE03P,UACN,IAAK,SACD,IAAK,MAAMv/N,KAAQt7B,EACf09Q,EAAQv0R,KAAKk0R,GAAal6Q,EAAGm4B,IAEjC,MACJ,IAAK,OACD,IAAK,MAAMA,KAAQt7B,EACf09Q,EAAQv0R,KAAKs0R,GAAmBt6Q,EAAE23P,KAAMx/N,EAAMrzC,EAAKs0R,gBAEvD,MACJ,IAAK,UACD,IAAK,MAAMjhP,KAAQt7B,EACf09Q,EAAQv0R,KAAKszR,GAAcnhP,EAAMrzC,IAI7C,OAAOA,EAAKq0R,oBAAsBoB,EAAQv3R,OAAS,EAAIu3R,OAAUnsR,CACrE,CAhDmBosR,CAAW17N,EAAKh6D,GAC3B,IAAK,MACD,OAGZ,SAAmBT,EAAKS,GACpB,MAAMkb,EAAI3b,EAAIm7E,QACRi7M,EAAU,CAAC,EACjB,OAAQz6Q,EAAE83P,SACN,IAAK,SACD,IAAK,MAAO4iB,EAAUC,KAAet2R,EACjCo2R,EAAQC,GAAYR,GAAal6Q,EAAG26Q,GAExC,MACJ,IAAK,UACD,IAAK,MAAOD,EAAUC,KAAet2R,EACjCo2R,EAAQC,GAAYpB,GAAcqB,EAAY71R,GAElD,MACJ,IAAK,OACD,IAAK,MAAO41R,EAAUC,KAAet2R,EACjCo2R,EAAQC,GAAYJ,GAAmBt6Q,EAAE23P,KAAMgjB,EAAY71R,EAAKs0R,eAI5E,OAAOt0R,EAAKq0R,oBAAsB90R,EAAIU,KAAO,EAAI01R,OAAUrsR,CAC/D,CAxBmBwsR,CAAU97N,EAAKh6D,GAElC,CA6CA,SAASw1R,GAAmB3jO,EAAMjyD,EAAO00R,GACrC,IAAI95Q,EACJ,GAAoB,iBAAT5a,EACP,MAAM,IAAIqF,MAAM,iBAAiB4sD,mCAAsC,GAAUjyD,MAErF,GAAqB,6BAAjBiyD,EAAK28M,SACL,OAAO,KAEX,GAAI8lB,EACA,OAAO10R,EAEX,MAAMo6D,EAAMnI,EAAKjyD,MAAMA,GACvB,OAAqE,QAA7D4a,EAAKw/C,aAAiC,EAASA,EAAIl4D,YAAyB,IAAP0Y,EAAgBA,EAAK5a,CACtG,CACA,SAASw1R,GAAa16M,EAAO96E,GACzB,IAAI4a,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EACxB,OAAQ6/D,EAAMszC,QAEV,KAAK,EAAW6tJ,MAChB,KAAK,EAAWI,SAChB,KAAK,EAAWF,OAChB,KAAK,EAAWC,QAChB,KAAK,EAAWF,OACZ,GAAoB,iBAATl8Q,EACP,MAAM,IAAIqF,MAAM,iBAAiBy1E,cAAsD,QAAnClgE,EAAKiuG,GAAW/tC,EAAO96E,UAA2B,IAAP4a,OAAgB,EAASA,EAAGpI,WAE/H,OAAOxS,EAGX,KAAK,EAAWkyQ,MAChB,KAAK,EAAWD,OACZ,GAAoB,iBAATjyQ,EACP,MAAM,IAAIqF,MAAM,iBAAiBy1E,cAAsD,QAAnCjgE,EAAKguG,GAAW/tC,EAAO96E,UAA2B,IAAP6a,OAAgB,EAASA,EAAGrI,WAE/H,OAAI3P,OAAOyR,MAAMtU,GACN,MACPA,IAAU6C,OAAO8nB,kBACV,WACP3qB,IAAU6C,OAAOm5Q,kBACV,YACJh8Q,EAEX,KAAK,EAAW+xQ,OACZ,GAAoB,iBAAT/xQ,EACP,MAAM,IAAIqF,MAAM,iBAAiBy1E,cAAsD,QAAnChgE,EAAK+tG,GAAW/tC,EAAO96E,UAA2B,IAAP8a,OAAgB,EAASA,EAAGtI,WAE/H,OAAOxS,EAEX,KAAK,EAAWgyQ,KACZ,GAAoB,kBAAThyQ,EACP,MAAM,IAAIqF,MAAM,iBAAiBy1E,cAAsD,QAAnC//D,EAAK8tG,GAAW/tC,EAAO96E,UAA2B,IAAP+a,OAAgB,EAASA,EAAGvI,WAE/H,OAAOxS,EAEX,KAAK,EAAWoyQ,OAChB,KAAK,EAAWE,QAChB,KAAK,EAAWH,MAChB,KAAK,EAAWE,SAChB,KAAK,EAAWE,OACZ,GAAoB,iBAATvyQ,GAAqC,iBAATA,EACnC,MAAM,IAAIqF,MAAM,iBAAiBy1E,cAAsD,QAAnC9/D,EAAK6tG,GAAW/tC,EAAO96E,UAA2B,IAAPgb,OAAgB,EAASA,EAAGxI,WAE/H,OAAOxS,EAAMwG,WAGjB,KAAK,EAAW8kH,MACZ,GAAItrH,aAAiB4L,WACjB,OAAO,GAAa5L,GAExB,MAAM,IAAIqF,MAAM,iBAAiBy1E,cAAsD,QAAnC7/D,EAAK4tG,GAAW/tC,EAAO96E,UAA2B,IAAPib,OAAgB,EAASA,EAAGzI,WAEvI,CACA,SAAS6jQ,GAAS/6P,EAAGlb,GACjB,OAAOA,EAAKu0R,kBAAoBr5Q,EAAEpZ,KAAOoZ,EAAE+6P,QAC/C,CA6FA,SAASgf,GAAaj7N,GAClB,MAAMygF,EAAO,CAAC,EACd,IAAK,MAAO51I,EAAG8tB,KAAMlzB,OAAO6uC,QAAQ0rB,EAAI3zC,QACpCo0H,EAAK51I,GAAKqwR,GAAYviQ,GAE1B,OAAO8nH,CACX,CACA,SAASy6I,GAAYl7N,GACjB,OAAQA,EAAI7S,KAAKqrN,MACb,IAAK,YACD,OAAO,KACX,IAAK,cACD,IAAK/vQ,OAAO84G,SAASvhD,EAAI7S,KAAKvnD,OAC1B,MAAM,IAAIqF,MAAM,GAAG+0D,EAAIu0M,uCAE3B,OAAOv0M,EAAI7S,KAAKvnD,MACpB,IAAK,YAEL,IAAK,cACD,OAAOo6D,EAAI7S,KAAKvnD,MACpB,IAAK,cACD,OAAOq1R,GAAaj7N,EAAI7S,KAAKvnD,OACjC,IAAK,YACD,OAAOu1R,GAAgBn7N,EAAI7S,KAAKvnD,OACpC,QACI,MAAM,IAAIqF,MAAM,GAAG+0D,EAAIu0M,+BAEnC,CACA,SAAS4mB,GAAgBn7N,GACrB,OAAOA,EAAIp5D,OAAOrB,IAAI21R,GAC1B,CCjVO,SAASa,GAAetyR,GAC3B,IAAI+W,EACJ,MAAM5T,EAAInH,OAAO+nB,OAAO,CAAC,EAAG/jB,GAE5B,OADiC,QAAhC+W,EAAK5T,EAAEgrR,2BAAwC,IAAPp3Q,IAAsB5T,EAAEgrR,qBAAsB,GAChFhrR,CACX,CA2BO,SAASovR,GAA8B13Q,EAAQ23Q,EAAiBC,EAAaC,GAChF,MAAM7hP,EAAQ2hP,EACRG,GAA0B93Q,EAAOg2B,MAAO6hP,GACxCE,GAAwB/3Q,EAAOg2B,MAAO4hP,GAI5C,MAAO,CAAEngQ,OAHMkgQ,EACTG,GAA0B93Q,EAAO2oC,OAAQkvO,GACzCE,GAAwB/3Q,EAAO2oC,OAAQivO,IACtBngQ,MAAOugQ,UAAWhiP,EAAMgiP,UACnD,CAuBO,SAASF,GAA0BvkO,EAAMpuD,GAC5C,MAAO,CACH,KAAAsyB,CAAMh3B,GACF,IACI,OAAO,GAAW8yD,EAAM9yD,EAAM0E,EAClC,CACA,MAAOoE,GACH,MAAM2N,EAAI3N,aAAa5C,MAAQ4C,EAAEuK,QAAU4D,OAAOnO,GAClD,MAAM,IAAI,GAAa,iBAAiB2N,IAAK,GAAK+gR,SACtD,CACJ,EACA,SAAAD,CAAUv3R,GACN,IACI,OAAO,GAAS8yD,EAAM9yD,EAAM0E,EAChC,CACA,MAAOoE,GACH,MAAM2N,EAAI3N,aAAa5C,MAAQ4C,EAAEuK,QAAU4D,OAAOnO,GAClD,MAAM,IAAI,GAAa,qBAAqB2N,IAAK,GAAK+gR,SAC1D,CACJ,EAER,CAOO,SAASF,GAAwBxkO,EAAMpuD,GAC1C,IAAI+W,EAAIC,EACR,MAAM+7Q,EAA+F,QAAhFh8Q,EAAK/W,aAAyC,EAASA,EAAQ+yR,mBAAgC,IAAPh8Q,EAAgBA,EAAK,IAAI2lE,YAChIs2M,EAA+F,QAAhFh8Q,EAAKhX,aAAyC,EAASA,EAAQgzR,mBAAgC,IAAPh8Q,EAAgBA,EAAK,IAAI1X,YAChI6D,EAAImvR,GAAetyR,GACzB,MAAO,CACH,KAAAsyB,CAAMh3B,GACF,IACI,MAAM07I,EAAOg8I,EAAYzzR,OAAOjE,GAChC,OH3FT,SAAwB2pD,EAAQ+xF,EAAMh3I,GACzC,OAAOouR,GAASnpO,EA+XpB,SAAyBguO,EAAYloB,GACjC,IACI,OAAO/nQ,KAAKsvB,MAAM2gQ,EACtB,CACA,MAAO7uR,GACH,MAAMuK,EAAUvK,aAAa5C,MAAQ4C,EAAEuK,QAAU4D,OAAOnO,GACxD,MAAM,IAAI5C,MAAM,yBAAyBupQ,gBAAuBp8P,IAEhE,CAAED,MAAOtK,GACb,CACJ,CAzY4B8uR,CAAgBl8I,EAAM/xF,EAAO8lN,UAAW/qQ,EACpE,CGyFuBmzR,CAAe/kO,EAAM4oF,EAAM7zI,EACtC,CACA,MAAOiB,GACH,MAAM,GAAa/J,KAAK+J,EAAG,GAAKgvR,gBACpC,CACJ,EACA,SAAAP,CAAUv3R,GACN,IACI,MAAM07I,EDxFf,SAAsB/xF,EAAQt2C,EAAS3O,GAC1C,IAAI+W,EACJ,MAAMs3Q,EARH,SAAgBppO,EAAQt2C,EAAS3O,GACpC,OAAO+wR,GAAc,GAAQ9rO,EAAQt2C,GARzC,SAA0B3O,GACtB,OAAOA,EAAUhE,OAAO+nB,OAAO/nB,OAAO+nB,OAAO,CAAC,EAAG4sQ,IAAoB3wR,GAAW2wR,EACpF,CAMmD,CAAiB3wR,GACpE,CAMsB,CAAOilD,EAAQt2C,EAAS3O,GAC1C,OAAOgD,KAAKH,UAAUwrR,EAAW,KAAwF,QAAjFt3Q,EAAK/W,aAAyC,EAASA,EAAQqzR,oBAAiC,IAAPt8Q,EAAgBA,EAAK,EAC1J,CCoF6Bu8Q,CAAallO,EAAM9yD,EAAM6H,GACtC,OAAO4vR,EAAY3oO,OAAO4sF,EAC9B,CACA,MAAO5yI,GACH,MAAM,GAAa/J,KAAK+J,EAAG,GAAK0uR,SACpC,CACJ,EAER,CC1HO,SAASS,GAAkBptR,EAAMqtR,GACpC,IAAKA,EACD,OAAOrtR,EAEX,IAAK,MAAMjL,KAAKs4R,EAAa54R,SAASqG,UAClCkF,EAAOjL,EAAEiL,GAEb,OAAOA,CACX,CCwDO,SAASstR,GAAqBl4O,GACjC,IAAKA,EAAOC,QACR,OAEJ,QAAsB31C,IAAlB01C,EAAOqlD,OACP,OAAOrlD,EAAOqlD,OAIlB,MAAMx8F,EAAI,IAAI5C,MAAM,8BAEpB,OADA4C,EAAE/F,KAAO,aACF+F,CACX,CC5EO,SAASylG,GAAUz7C,EAAMz/C,GAC5B,OAAO,EAAOy/C,EAAMz/C,EACxB,CAKO,SAAS+kR,GAAkBtlO,EAAMvd,GACpC,SAAS0V,EAAUlmD,GACf,OAAoB,IAAhBA,EAAO+oC,KACA/oC,EAEJ,CACH+oC,KAAM/oC,EAAO+oC,KACbjtC,MAAO0tG,GAAUz7C,EAAM/tD,EAAOlE,OAEtC,CACA,MAAO,CACH,CAAC8P,OAAOurF,iBACJ,MAAMv+C,EAAKpI,EAAM5kC,OAAOurF,iBAClBz7F,EAAM,CACRoK,KAAM,IAAM8yC,EAAG9yC,OAAO4U,KAAKwrC,IAQ/B,YANiB1gD,IAAbozC,EAAG06O,QACH53R,EAAI43R,MAASvvR,GAAM60C,EAAG06O,MAAMvvR,GAAG2W,KAAKwrC,SAEtB1gD,IAAdozC,EAAG+4I,SACHj2L,EAAIi2L,OAAU9iK,GAAM+pB,EAAG+4I,OAAO9iK,GAAGnU,KAAKwrC,IAEnCxqD,CACX,EAER,CC8CA,SAAS63R,GAAYC,GACjB,MAAM,OAAEt4O,EAAM,QAAE6F,GFzCb,SAA8B2qO,GACjC,MAAM3wH,EAAa,IAAIC,gBACjB3pJ,EAAW,KACb0pJ,EAAW3/G,MAAM,IAAI,GAAa,0BAA2B,GAAKq4O,oBAEtE,IAAI34H,EAOJ,YANkBt1J,IAAdkmR,IACIA,GAAa,EACbr6Q,IAEAypJ,EAAYz7H,WAAWhuB,EAAUq6Q,IAElC,CACHxwO,OAAQ6/G,EAAW7/G,OACnB6F,QAAS,IAAM67D,aAAak+C,GAEpC,CEyBgC44H,CAAqBF,EAAI9H,WAC/C3wH,EFxEH,YAAwC44H,GAC3C,MAAM54H,EAAa,IAAIC,gBACjB44H,EAAKD,EAAQn8O,OAAQltB,QAAY9kB,IAAN8kB,GAAiB/vB,OAAOwgK,EAAW7/G,QACpE,IAAK,MAAMA,KAAU04O,EAAI,CACrB,GAAI14O,EAAOC,QAAS,CAChB04O,EAAQhkR,MAAMqrC,GACd,KACJ,CACAA,EAAO9nC,iBAAiB,QAASygR,EACrC,CACA,SAASA,IACA94H,EAAW7/G,OAAOC,SACnB4/G,EAAW3/G,MAAMg4O,GAAqBr5R,OAE1C,IAAK,MAAMmhD,KAAU04O,EACjB14O,EAAO5nC,oBAAoB,QAASugR,EAE5C,CACA,OAAO94H,CACX,CEqDuB+4H,CAA4BN,EAAIt4O,OAAQA,GAC3D,MAAO,CACH6/G,EAAW7/G,OACX,SAAeqlD,GAGX,MAAMx8F,EAAI,GAAa/J,KAAKkhD,EAAOC,QAAUi4O,GAAqBl4O,GAAUqlD,GAG5E,OAFAw6D,EAAW3/G,MAAMr3C,GACjBg9C,IACO7xC,QAAQF,OAAOjL,EAC1B,EACA,WACIg9C,IACAg6G,EAAW3/G,OACf,EAER,CCtFO,SAAS24O,GAAgBC,EAASx5Q,GACrC,OAAOw5Q,EACF1xR,WACAqnB,QAAQ,OAAQ,IAAInP,EAAO+pB,OAAOmmO,YAAYlwP,EAAOxc,OAC9D,CCNA,MAAMi2R,GACF,WAAAhmR,CAAYimR,GACRn6R,KAAKm6R,aAAeA,EAEpBn6R,KAAKmuQ,OAAS,IAAIxgQ,WAAW,GAC7B3N,KAAKo6R,WAAa,IAAI/tQ,SAASrsB,KAAKmuQ,OAAOl9P,QAC3CjR,KAAK+lB,IAAM,EACf,CACA,cAAI7e,GACA,OAAOlH,KAAK+lB,IAAIm/B,OAAO,CAACt9C,EAAGC,IAAMD,EAAIC,EAAEX,WAAY,EACvD,CACA,MAAA/B,CAAO2F,GACH9K,KAAK+lB,IAAI1iB,KAAKyH,GACd,MAAMuvR,EAAO,GACb,OAAS,CACL,IAAInxQ,EAAMlpB,KAAKua,MACf,IAAK2O,EACD,MAEJmxQ,EAAKh3R,KAAK6lB,EACd,CACA,OAAOmxQ,CACX,CAEA,GAAA9/Q,GACI,IAAKva,KAAKkpB,MACNlpB,KAAKkpB,IAAMlpB,KAAKmrB,OACXnrB,KAAKkpB,OAIVlpB,KAAKooP,KAAKpoP,KAAKkpB,IAAIhoB,MAAO,CAC1B,MAAMgoB,EAAMlpB,KAAKkpB,IAEjB,OADAlpB,KAAKkpB,SAAMzd,EACJyd,CACX,CAEJ,CAEA,IAAAiC,GACI,IAAKnrB,KAAKooP,KAAKpoP,KAAKmuQ,QAChB,OAEJ,MAAM/0P,EAAQpZ,KAAKo6R,WAAW3sQ,SAAS,GACjCptB,EAASL,KAAKo6R,WAAWzsQ,UAAU,GAEzC,OCND,SAA4BwsQ,EAAcG,EAAWC,GAAiB,GACzE,GAAID,EAAYH,EAAc,CAC1B,IAAI5lR,EAAU,uDAAuD4lR,IAIrE,MAHII,IACAhmR,EAAU,gBAAgB+lR,4CAAoDH,KAE5E,IAAI,GAAa5lR,EAAS,GAAKimR,kBACzC,CACJ,CDHQ,CAAmBx6R,KAAKm6R,aAAc95R,GAAQ,GACvC,CACH+Y,QACAlY,KAAM,IAAIyM,WAAWtN,GAE7B,CAEA,IAAA+nP,CAAKryO,GACD,MAAM0kR,EAAa1kR,EAAO7O,WAC1B,GAAIlH,KAAKkH,WAAauzR,EAClB,OAAO,EAEX,IAAI91R,EAAS,EACb,KAAOA,EAAS81R,GAAY,CACxB,MAAM3vR,EAAQ9K,KAAK+lB,IAAI1L,QACnBvP,EAAM5D,WAAauzR,EAAa91R,GAChCoR,EAAO5P,IAAI2E,EAAMsiB,SAAS,EAAGqtQ,EAAa91R,GAASA,GACnD3E,KAAK+lB,IAAI/N,QAAQlN,EAAMsiB,SAASqtQ,EAAa91R,IAC7CA,GAAU81R,EAAa91R,IAGvBoR,EAAO5P,IAAI2E,EAAOnG,GAClBA,GAAUmG,EAAM5D,WAExB,CACA,OAAO,CACX,EEjFG,MAAMwzR,GAAoB,eAEpB,GAAsB,mBAKtB,GAAwB,2BACxBC,GAAkB,aCNlBC,GAAoB,uECG1B,SAASC,GAAcpe,EAAY2b,EAAiBzG,EAAWmJ,EAAqBC,GACvF,MAAM90R,EAAS,IAAIgrR,QAAQ6J,QAAiEA,EAAsB,CAAC,GAkBnH,YAjBkBrvR,IAAdkmR,GACA1rR,EAAOE,IFFc,qBEEK,GAAGwrR,KAEjC1rR,EAAOE,IAAIu0R,GAAiC,SAAdje,EACxB2b,EDI2B,oBACD,mBCF1BA,EDG4B,4BACD,4BCDjCnyR,EAAOE,IAAI,GCXgB,MDYtBF,EAAOF,IAAI40R,KAAoBI,GAIhC90R,EAAOE,IAAIw0R,GAAiB,oBAEzB10R,CACX,CEbO,SAAS+0R,GAAiBve,EAAY2b,EAAiB/vR,EAAQq0I,GAClE,MAAMu+I,EAAWv+I,EAAQ12I,IAAI00R,IACvBp9M,EHYH,SAA0BivE,GAC7B,MAAMl9H,EAAQk9H,aAAiD,EAASA,EAAYl9H,MAAMurQ,IAC1F,GAAKvrQ,EAKL,MAAO,CAAEvhB,SAFQuhB,EAAM,GAEN6rQ,SADA7rQ,EAAM,GAE3B,CGpBuB8rQ,CAAiBF,GACpC,GAAe,MAAX5yR,EAAgB,CAChB,MAAM+yR,EAAkB,IAAI,GAAa,QAAQ/yR,ICZlD,SAA4BgzR,GAC/B,OAAQA,GACJ,KAAK,IACD,OAAO,GAAK3C,SAChB,KAAK,IACD,OAAO,GAAK4C,gBAChB,KAAK,IACD,OAAO,GAAKC,iBAChB,KAAK,IACD,OAAO,GAAK1I,cAChB,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IACD,OAAO,GAAK2I,YAChB,QACI,OAAO,GAAK5K,QAExB,CDTmE6K,CAAmBpzR,GAASq0I,GAEvF,GAAkB,SAAd+/H,GAAyBn/L,IAAeA,EAAW49M,OACnD,MAAO,CAAEQ,cAAc,EAAMC,WAAYP,GAE7C,MAAMA,CACV,CACA,MAAMQ,EACMxD,EADNwD,EAEqB,UAAfnf,EAEZ,IAAKn/L,aAA+C,EAASA,EAAW49M,UAAYU,GAChFt+M,EAAWxvE,SAAW8tR,EACtB,MAAM,IAAI,GAAa,4BAA4BX,SAA2BxvR,IAAf6xE,EAA2B,GAAKszM,QAAU,GAAK8H,SAAUh8I,GAE5H,MAAO,CAAEg/I,cAAc,EAC3B,CEbO,SAASG,GAAc5H,EAAWpD,EAAUvuQ,GAC/C,IAAI3F,EAIJ,GAHIk0Q,GACA,IAAII,QAAQJ,GAAU/uR,QAAQ,CAACC,EAAOjC,IAAQwiB,EAASuuQ,SAASzkP,OAAOtsC,EAAKiC,IAEvD,iBAAdkyR,GACM,MAAbA,GACA/qR,MAAMF,QAAQirR,GACd,MAAM3xQ,EAEV,IAAIm7E,EAAOn7E,EAASm7E,KAChB,SAAUw2L,GAAuC,iBAAnBA,EAAUx2L,OACxCA,EAAiD,QAAzC9gF,E1BXT,SAAwB5a,GAC3B,IAAK2uR,GAAc,CACfA,GAAe,CAAC,EAChB,IAAK,MAAM3uR,KAASH,OAAOmB,OAAO,IACV,iBAAThB,IAGX2uR,GAAa,GAAa3uR,IAAUA,EAE5C,CACA,OAAO2uR,GAAa3uR,EACxB,C0BAqB+5R,CAAe7H,EAAUx2L,aAA0B,IAAP9gF,EAAgBA,EAAK8gF,GAElF,MAAMlpF,EAAU0/Q,EAAU1/Q,QAC1B,GAAe,MAAXA,GAAsC,iBAAZA,EAC1B,MAAM+N,EAEV,MAAMrX,EAAQ,IAAI,GAAasJ,QAAyCA,EAAU,GAAIkpF,EAAMozL,GAC5F,GAAI,YAAaoD,GAAa/qR,MAAMF,QAAQirR,EAAU5/Q,SAClD,IAAK,MAAM60L,KAAU+qF,EAAU5/Q,QAAS,CACpC,GAAe,OAAX60L,GACiB,iBAAVA,GACPhgM,MAAMF,QAAQkgM,IACQ,iBAAfA,EAAO3lM,MACS,iBAAhB2lM,EAAOnnM,MACd,MAAMugB,EAEV,IACIrX,EAAMoJ,QAAQhR,KAAK,CACfE,KAAM2lM,EAAO3lM,KACbxB,MAAO,GAAamnM,EAAOnnM,OAC3B46G,MAAOusF,EAAOvsF,OAEtB,CACA,MAAO3yG,GACH,MAAMsY,CACV,CACJ,CAEJ,OAAOrX,CACX,CCtDO,SAAS8wR,GAAa5tB,GACzB,MAAM/sQ,EAAI,IAAI6vR,QAAW/hQ,EAAI,IAAI+hQ,QASjC,OARA9iB,EAAOrsQ,QAAQ,CAACC,EAAOjC,KACfA,EAAIyB,cAAciD,WAAW,YAC7B0qB,EAAEkd,OAAOtsC,EAAIkwG,UAAU,GAAIjuG,GAG3BX,EAAEgrC,OAAOtsC,EAAKiC,KAGf,CAACX,EAAG8tB,EACf,CCHO,SAAS8sQ,GAAkB96R,GAC9B,MAAM+6R,EAAW,IAAI,GAAa,qBAAsB,GAAKrL,SAC7D,IAAIqD,EACJ,IAEIA,EAAYrrR,KAAKsvB,MAAqB,iBAARh3B,EAAmBA,GAAO,IAAIgE,aAAcC,OAAOjE,GACrF,CACA,MAAO8I,GACH,MAAMiyR,CACV,CACA,GAAwB,iBAAbhI,GACM,MAAbA,GACA/qR,MAAMF,QAAQirR,GACd,MAAMgI,EAEV,MAAMpL,EAAW,IAAII,QACrB,GAAI,aAAcgD,EAAW,CACzB,GAAiC,iBAAtBA,EAAUpD,UACK,MAAtBoD,EAAUpD,UACV3nR,MAAMF,QAAQirR,EAAUpD,UACxB,MAAMoL,EAEV,IAAK,MAAOn8R,EAAKiD,KAAWnB,OAAO6uC,QAAQwjP,EAAUpD,UAAW,CAC5D,IAAK3nR,MAAMF,QAAQjG,IACfA,EAAOiB,KAAMjC,GAA0B,iBAATA,GAC9B,MAAMk6R,EAEV,IAAK,MAAMl6R,KAASgB,EAChB8tR,EAASzkP,OAAOtsC,EAAKiC,EAE7B,CACJ,CAIA,MAAO,CAAE8uR,WAAU5lR,MAHL,UAAWgpR,GAAgC,MAAnBA,EAAUhpR,MAC1C4wR,GAAc5H,EAAUhpR,MAAO4lR,EAAUoL,QACzCxwR,EAEV,CCrDA,IAAI,GAAoC,SAAUqpB,GAAK,OAAO90B,gBAAgB,IAAWA,KAAK80B,EAAIA,EAAG90B,MAAQ,IAAI,GAAQ80B,EAAI,EAmB7H,MAAMsrI,GAAe,CACjB87H,SAAU,SAOP,SAASC,GAAuBv2R,GACnC,IAAI+W,GCzBD,WACH,IACI,IAAIs0Q,OACR,CACA,MAAOxsR,GACH,MAAM,IAAI2C,MAAM,0KACpB,CACJ,CDmBIg1R,GACA,MAAMhE,EAAqD,QAAlCz7Q,EAAK/W,EAAQwyR,uBAAoC,IAAPz7Q,GAAgBA,EACnF,MAAO,CACH,WAAM+0Q,CAAMjxQ,EAAQ0gC,EAAQwwO,EAAWxjB,EAAQ55P,EAASq9Q,GACpD,MAAM,UAAE6G,EAAS,MAAEvgQ,GAAUigQ,GAA8B13Q,EAAQ23Q,EAAiBxyR,EAAQyyR,YAAazyR,EAAQ0yR,eAOjH,OANA3G,OACkBlmR,IAAdkmR,EACM/rR,EAAQy2R,iBACR1K,GAAa,OACTlmR,EACAkmR,Qb/BnB,SAAsB8H,GACzB,MAAM1tR,EAAOotR,GAAkBM,EAAI1tR,KAAM0tR,EAAIL,eACtCj4O,EAAQE,EAAOrS,GAAQwqP,GAAYC,GAE1C,OAAO1tR,EADKnK,OAAO+nB,OAAO/nB,OAAO+nB,OAAO,CAAC,EAAG8vQ,EAAI3qH,KAAM,CAAEv6J,QAASk7F,GAAUgqL,EAAI3qH,IAAIruJ,OAAOg2B,MAAOgjP,EAAI3qH,IAAIv6J,SAAU4sC,YAClGxgC,KAAMhf,IACnBqtC,IACOrtC,GACR0/C,EACP,CawByBi7O,CAAa,CACtBlD,aAAcxzR,EAAQwzR,aACtBj4O,SACAwwO,YACA7iH,IAAK,CACDhhK,QAAQ,EACR8xD,QAASn/C,EAAO+pB,OAChB/pB,SACA87Q,cAAe,OACf9tN,IAAKurN,GAAgBp0R,EAAQq0R,QAASx5Q,GACtC0tP,OAAQ0sB,GAAcp6Q,EAAOg8P,WAAY2b,EAAiBzG,EAAWxjB,GAAQ,GAC7EyjB,cAAeA,QAAqDA,EAAgB0E,KACpF/hR,WAEJxI,KAAM6S,MAAOkwJ,IACT,IAAInyJ,EAIJ,IAAIoiC,EAAO,MAH2B,IAAvBn5C,EAAQ42R,YACnB/7Q,EAAOs8P,cACH6D,GAA+B6b,gBAGnC3tH,EEhDjB,SAA0CxuJ,EAAS/L,EAASmoR,GAC/D,IAAIz6B,EAAQ,cACZ,MAAM11G,EAAcjsI,EAAQ6tP,OAAOnoQ,IAAI00R,IACoE,KAAtGnuI,aAAiD,EAASA,EAAY3/I,QAbrD,mBAclBq1P,GACI,aACIrnF,mBAAmBruB,EAAYloJ,MAAMs4R,MAEjD,MAAMC,EAAct8Q,EAAQ6tP,OAAOnoQ,IAAI,IACnB,OAAhB42R,GAAwC,aAAhBA,IACxB36B,GAAS,gBAAkBrnF,mBAAmBgiH,GAE9CF,GAAY,GAEZA,IACAz6B,GAAS,aAEbA,GAAS,YA1Bb,SAA6B1tP,EAASmoR,GAClC,OAAIA,EACO,GAAanoR,EAAS,OAE1BqmK,oBAAmB,IAAI11K,aAAcC,OAAOoP,GACvD,CAqB2BsoR,CAAoBtoR,EAASmoR,GACpD,MAAMjuN,EAAMnuD,EAAQmuD,IAAMwzL,EACpBkM,EAAS,IAAI8iB,QAAQ3wQ,EAAQ6tP,QAEnC,IAAK,MAAM/sQ,IAAK,CACZ,GACAs5R,GXhCgC,iBWkChC,GX/BiC,mBWkCjCvsB,EAAO7jO,OAAOlpC,GAElB,OAAOQ,OAAO+nB,OAAO/nB,OAAO+nB,OAAO,CAAC,EAAGrJ,GAAU,CAAEi8Q,cAAe,MAAO9tN,MACrE0/L,UACR,CFgB8B2uB,CAAiChuH,EAAK2pH,EAAU3pH,EAAIv6J,SAAU6jR,GAGpEr5O,EAAO05O,EAAU3pH,EAAIv6J,SAEzB,MAAMooI,EAAiC,QAAxBhgI,EAAK/W,EAAQ+2I,aAA0B,IAAPhgI,EAAgBA,EAAKqjB,WAAW28G,MACzE33B,QAAiB23B,EAAMmyB,EAAIrgG,IAAK7sE,OAAO+nB,OAAO/nB,OAAO+nB,OAAO,CAAC,EAAGy2I,IAAe,CAAE3/I,OAAQquJ,EAAIytH,cAAe7/I,QAASoyB,EAAIq/F,OAAQhtN,OAAQ2tH,EAAI3tH,OAAQpC,WACrJ,aAAE28O,EAAY,WAAEC,GAAeX,GAAiBv6Q,EAAOg8P,WAAY2b,EAAiBpzK,EAAS38G,OAAQ28G,EAAS03B,SACpH,GAAIg/I,EACA,MAAMG,SAAqB72K,EAAS43B,OGlCrD,YAA0BF,GAC7B,MAAMt7I,EAAI,IAAI6vR,QACd,IAAK,MAAMjnR,KAAK0yI,EACZ1yI,EAAElI,QAAQ,CAACC,EAAOjC,KACdsB,EAAEgrC,OAAOtsC,EAAKiC,KAGtB,OAAOX,CACX,CH0BqE,IAAiB26R,GAAa/2K,EAAS03B,UAAWi/I,GAEnG,MAAOoB,EAAeC,GAAkBjB,GAAa/2K,EAAS03B,SAC9D,MAAO,CACH5uI,QAAQ,EACR8xD,QAASn/C,EAAO+pB,OAChB/pB,SACA0tP,OAAQ4uB,EACRxoR,QAAS6jR,EACHlgQ,EAAM,IAAIvqB,iBAAiBq3G,EAASi4K,gBACpCjJ,GAASvzQ,EAAO2oC,aAAe47D,EAAS43B,OAASs7I,GAAetyR,EAAQyyR,cAC9EtG,QAASiL,KAIzB,EACA,YAAMlvR,CAAO2S,EAAQ0gC,EAAQwwO,EAAWxjB,EAAQ13N,EAAOm7O,GACnD,MAAM,UAAE6G,EAAS,MAAEvgQ,GAAUigQ,GAA8B13Q,EAAQ23Q,EAAiBxyR,EAAQyyR,YAAazyR,EAAQ0yR,eACjH,SAAS4E,EAAkBn+O,EAAMo+O,EAAehvB,EAAQhtN,GACpD,OAxF0C,SAAUiT,EAASC,EAAYhvC,GACrF,IAAKxT,OAAOurF,cAAe,MAAM,IAAI7qF,UAAU,wCAC/C,IAAoDzR,EAAhD0M,EAAI6X,EAAUvP,MAAMs+C,EAASC,GAAc,IAAQj/B,EAAI,GAC3D,OAAOt0B,EAAIc,OAAOsL,QAAiC,mBAAlBilR,cAA+BA,cAAgBvwR,QAAQZ,WAAY8zD,EAAK,QAASA,EAAK,SAAUA,EAAK,SACtI,SAAqBz3C,GAAK,OAAO,SAAUyX,GAAK,OAAO3f,QAAQH,QAAQ8f,GAAGnU,KAAKtD,EAAGpI,EAAS,CAAG,GADgEnU,EAAE+Q,OAAOurF,eAAiB,WAAc,OAAOp9F,IAAM,EAAGc,EAEtN,SAASg0D,EAAK57C,EAAGmE,GAAS7P,EAAE0L,KAAMpY,EAAEoY,GAAK,SAAU4b,GAAK,OAAO,IAAI3f,QAAQ,SAAUvN,EAAGC,GAAKutB,EAAE/xB,KAAK,CAAC6V,EAAG4b,EAAGltB,EAAGC,IAAM,GAAKkiC,EAAO7wB,EAAG4b,EAAI,EAAI,EAAOzX,IAAGvc,EAAEoY,GAAKmE,EAAEvc,EAAEoY,KAAO,CACvK,SAAS6wB,EAAO7wB,EAAG4b,GAAK,KACVL,EADqBjnB,EAAE0L,GAAG4b,IACnB/yB,iBAAiB,GAAUoT,QAAQH,QAAQyf,EAAE1yB,MAAM+yB,GAAGnU,KAAKyxQ,EAASn9Q,GAAUs8Q,EAAOn8P,EAAE,GAAG,GAAIX,EADtE,CAAE,MAAOzqB,GAAKunR,EAAOn8P,EAAE,GAAG,GAAIprB,EAAI,CAC/E,IAAcyqB,CADmE,CAEjF,SAAS29P,EAAQrwR,GAASgoC,EAAO,OAAQhoC,EAAQ,CACjD,SAASkT,EAAOlT,GAASgoC,EAAO,QAAShoC,EAAQ,CACjD,SAASwvR,EAAOl0Q,EAAGyX,GAASzX,EAAEyX,GAAIM,EAAE/a,QAAS+a,EAAE/0B,QAAQ0pC,EAAO3U,EAAE,GAAG,GAAIA,EAAE,GAAG,GAAK,CACrF,CA6EuB,CAAiBp1B,KAAM4W,UAAW,YACrC,MAAMixQ,EXKnB,SAAsC/5Q,GACzC,IAAI+5Q,EACJ,MAAM52Q,EAtFC,IAAIipR,GAsF0B,YACrC,OAAO,IAAIkD,eAAe,CACtB,KAAA55R,GACIqkR,EAAS/5Q,EAAOuvR,WACpB,EACA,UAAMC,CAAKt8H,GACP,IAAIu8H,GAAe,EACnB,MAAQA,GAAc,CAClB,MAAMt3R,QAAe4hR,EAAO9oM,OAC5B,GAAI94E,EAAO+oC,KACH/9B,EAAO/J,WAAa,GACpB85J,EAAW/1J,MAAM,IAAI,GAAa,sCAAuC,GAAK+tR,kBAElFh4H,EAAWz6G,aAGX,IAAK,MAAMr9B,KAAOjY,EAAO9L,OAAOc,EAAOlE,OACnCi/J,EAAWw8H,QAAQt0Q,GACnBq0Q,GAAe,CAG3B,CACJ,GAER,CW/BmCE,CAA6B1+O,GAAMs+O,YAClD,IAAIK,GAAoB,EACxB,OAAS,CACL,MAAMz3R,QAAe,GAAQ4hR,EAAO9oM,QACpC,GAAI94E,EAAO+oC,KACP,MAEJ,MAAM,MAAE51B,EAAK,KAAElY,GAAS+E,EAAOlE,MAC/B,KIzFM,GJyFDqX,GACD,MAAM,IAAI,GAAa,yDAA0D,GAAKs/Q,UAE1F,KD3FK,GC2FAt/Q,GAA0C,CAC3CskR,GAAoB,EACpB,MAAMC,EAAY3B,GAAkB96R,GACpC,GAAIy8R,EAAU1yR,MAAO,CACjB,MAAMA,EAAQ0yR,EAAU1yR,MAIxB,MAHAkjQ,EAAOrsQ,QAAQ,CAACC,EAAOjC,KACnBmL,EAAM4lR,SAASzkP,OAAOtsC,EAAKiC,KAEzBkJ,CACV,CACA0yR,EAAU9M,SAAS/uR,QAAQ,CAACC,EAAOjC,IAAQq9R,EAAch3R,IAAIrG,EAAKiC,IAClE,QACJ,aACY,GAAQm2B,EAAMh3B,GAC9B,CAWA,GALI,mBAAoBigD,GAGpBA,EAAOy8O,kBAENF,EACD,KAAM,2BAEd,EACJ,CACA9+Q,eAAei/Q,EAAkBpnP,GAC7B,GAAyB,oBAArBh2B,EAAOg8P,WACP,KAAM,0DAEV,MAAMhoP,QAAUgiB,EAAM5kC,OAAOurF,iBAAiBrxF,OAC9C,GAAc,GAAV0oB,EAAEua,KACF,KAAM,0BAEV,OX4BT,SAAwB51B,EAAOlY,GAClC,MAAMgB,EAAQ,IAAIyL,WAAWzM,EAAKb,OAAS,GAC3C6B,EAAMiE,IAAIjF,EAAM,GAChB,MAAM4zB,EAAI,IAAIzI,SAASnqB,EAAM+O,OAAQ/O,EAAM6sB,WAAY7sB,EAAMgF,YAG7D,OAFA4tB,EAAE3G,SAAS,EWhCuB,GXiClC2G,EAAEzG,UAAU,EAAGntB,EAAKb,QACb6B,CACX,CWnCuB,CAAe,EAAGu2R,EAAUhkQ,EAAE1yB,OACzC,CAOA,OANA4vR,OACkBlmR,IAAdkmR,EACM/rR,EAAQy2R,iBACR1K,GAAa,OACTlmR,EACAkmR,Qb7HnB,SAA0B8H,GAC7B,MAAM1tR,EAAOotR,GAAkBM,EAAI1tR,KAAM0tR,EAAIL,eACtCj4O,EAAQE,EAAOrS,GAAQwqP,GAAYC,GACpC3qH,EAAMltK,OAAO+nB,OAAO/nB,OAAO+nB,OAAO,CAAC,EAAG8vQ,EAAI3qH,KAAM,CAAEv6J,QAAS+kR,GAAkBG,EAAI3qH,IAAIruJ,OAAOg2B,MAAOgjP,EAAI3qH,IAAIv6J,SAAU4sC,WAC3H,IAAI28O,GAAa,EAwBjB,OApBA38O,EAAO9nC,iBAAiB,QAAS,WAC7B,IAAIsD,EAAIC,EACR,MAAMiiC,EAAK46O,EAAI3qH,IAAIv6J,QAAQ1C,OAAOurF,iBAG7B0gM,GACmB,QAAnBnhR,EAAKkiC,EAAG06O,aAA0B,IAAP58Q,GAAyBA,EAAG5c,KAAK8+C,EAAI7+C,KAAKwmG,QAAQzmF,MAAM,QAOnE,QAApBnD,EAAKiiC,EAAG+4I,cAA2B,IAAPh7K,GAAyBA,EAAG7c,KAAK8+C,GAAI9+B,MAAM,OAM5E,GACOhU,EAAK+iK,GAAKnuJ,KAAMhf,GACZC,OAAO+nB,OAAO/nB,OAAO+nB,OAAO,CAAC,EAAGhoB,GAAM,CAAE4S,QAAS,CAChD,CAAC1C,OAAOurF,iBACJ,MAAMv+C,EAAKl9C,EAAI4S,QAAQ1C,OAAOurF,iBAC9B,MAAO,CACHrxF,KAAI,IACO8yC,EAAG9yC,OAAO4U,KAAM8T,IACL,GAAVA,EAAEua,OACF8uP,GAAa,EACb9uP,KAEGva,GACR4sB,GAIf,KAETA,EACP,Ca+EyB08O,CAAiB,CAC1B3E,aAAcxzR,EAAQwzR,aACtBzH,YACAxwO,SACA2tH,IAAK,CACDhhK,QAAQ,EACR8xD,QAASn/C,EAAO+pB,OAChB/pB,SACA87Q,cAAe,OACf9tN,IAAKurN,GAAgBp0R,EAAQq0R,QAASx5Q,GACtC0tP,OAAQ0sB,GAAcp6Q,EAAOg8P,WAAY2b,EAAiBzG,EAAWxjB,GAAQ,GAC7EyjB,cAAeA,QAAqDA,EAAgB0E,KACpF/hR,QAASkiC,GAEb1qC,KAAM6S,MAAOkwJ,IACT,IAAInyJ,EACJ,MAAMggI,EAAiC,QAAxBhgI,EAAK/W,EAAQ+2I,aAA0B,IAAPhgI,EAAgBA,EAAKqjB,WAAW28G,MACzEqhJ,QAAarhJ,EAAMmyB,EAAIrgG,IAAK7sE,OAAO+nB,OAAO/nB,OAAO+nB,OAAO,CAAC,EAAGy2I,IAAe,CAAE3/I,OAAQquJ,EAAIytH,cAAe7/I,QAASoyB,EAAIq/F,OAAQhtN,OAAQ2tH,EAAI3tH,OAAQpC,WAAY8+O,EAAkB/uH,EAAIv6J,YAEzL,GADAymR,GAAiBv6Q,EAAOg8P,WAAY2b,EAAiB4F,EAAK31R,OAAQ21R,EAAKthJ,SACrD,OAAdshJ,EAAKj/O,KACL,KAAM,wBAEV,MAAMgzO,EAAU,IAAId,QAEpB,OADYrvR,OAAO+nB,OAAO/nB,OAAO+nB,OAAO,CAAC,EAAGmlJ,GAAM,CAAEq/F,OAAQ6vB,EAAKthJ,QAASq1I,UAASx9Q,QAAS2oR,EAAkBc,EAAKj/O,KAAMgzO,EAASiM,EAAKthJ,QAASoyB,EAAI3tH,YAIhK,EAER,CKtLO,SAAS88O,GAAaC,EAA+BC,GACxD,GAA6C,iBAAlCD,EAA4C,CACnD,MAAM/iI,EAAYghI,GAAuB,CACrClC,QAASiE,IAEPp/Q,EAAS09I,GAAa6sH,GAAYluH,GACxC,OAAOv5J,OAAO+nB,OAAO7K,EAAQ,CAAEq/Q,iBACnC,CACA,OAAOv8R,OAAO+nB,OAAOu0Q,EAA+B,CAAEC,iBAC1D,CCVO,MAAMC,GACTC,KACAC,UAEA,WAAApqR,CAAYqqR,EAAoBD,GAC5B,GAAkC,IAA9BC,EAAmBl+R,OACnB,MAAM,IAAI+G,MAAM,mDAEpB,GAAIk3R,EAAY,GAAKA,EAAYC,EAAmBl+R,OAChD,MAAM,IAAI+G,MAAM,mCAAmCm3R,EAAmBl+R,UAG1E,GAAIk+R,EAAmBl+R,OAAS,GAC5B,oBAAqBk+R,EAAmB,GAAI,CAE5C,MAAMC,EAAaD,EACnBv+R,KAAKq+R,KAAOG,EAAW98R,IAAKod,IAAW,CACnCA,SACA2/Q,OAAQ3/Q,EAAOq/Q,gBAEvB,KACK,CAED,MAAMO,EAAYH,EAClBv+R,KAAKq+R,KAAOK,EAAUh9R,IAAKi9R,IAChB,CACH7/Q,OAAQm/Q,GAAaU,EAASlwN,IAAKkwN,EAASF,QAC5CA,OAAQE,EAASF,SAG7B,CACAz+R,KAAKs+R,UAAYA,CACrB,CAUA,eAAOM,CAAS3iJ,EAAM4iJ,EAASP,GAC3B,GAAoB,IAAhBriJ,EAAK57I,OACL,MAAM,IAAI+G,MAAM,gCAEpB,GAAIy3R,EAAQx+R,SAAW47I,EAAK57I,OACxB,MAAM,IAAI+G,MAAM,yBAAyBy3R,EAAQx+R,yCAAyC47I,EAAK57I,WAEnG,GAAIi+R,EAAY,GAAKA,EAAYriJ,EAAK57I,OAClC,MAAM,IAAI+G,MAAM,mCAAmC60I,EAAK57I,2BAE5D,MAAMq+R,EAAYziJ,EAAKv6I,IAAI,CAAC+sE,EAAKn0D,KACtB,CAAEm0D,MAAKgwN,OAAQI,EAAQvkR,MAElC,OAAO,IAAI8jR,GAAgBM,EAAWJ,EAC1C,CASA,qBAAOQ,CAAeN,EAAYF,GAC9B,GAA0B,IAAtBE,EAAWn+R,OACX,MAAM,IAAI+G,MAAM,uCAEpB,GAAIk3R,EAAY,GAAKA,EAAYE,EAAWn+R,OACxC,MAAM,IAAI+G,MAAM,mCAAmCo3R,EAAWn+R,kCAElE,OAAO,IAAI+9R,GAAgBI,EAAYF,EAC3C,CACA,qBAAMpT,CAAgB5qQ,EAAS8qQ,GAC3B,MAAM2T,QAAyB/+R,KAAKg/R,iCAAiCpgR,MAAOqgR,SAC3DA,EAAIngR,OAAOosQ,gBAAgB5qQ,GACzC8qQ,GAEG8T,EAAqBH,EAAiBr9R,IAAK+yB,GAAMA,EAAEuwF,UACnD65K,EAAUE,EAAiBr9R,IAAK+yB,GAAMA,EAAEgqQ,QAExChpI,EAAYz1J,KAAKm/R,0BAA0BD,GACjD,OAAOl/R,KAAKo/R,4BAA4B3pI,EAAWypI,EAAoBL,EAC3E,CACA,qBAAM5Q,CAAgB3tQ,EAAS8qQ,GAC3B,MAAM2T,QAAyB/+R,KAAKg/R,iCAAiCpgR,MAAOqgR,SAC3DA,EAAIngR,OAAOmvQ,gBAAgB3tQ,GACzC8qQ,GAEG8T,EAAqBH,EAAiBr9R,IAAK+yB,GAAMA,EAAEuwF,UACnD65K,EAAUE,EAAiBr9R,IAAK+yB,GAAMA,EAAEgqQ,QAExChpI,EAAYz1J,KAAKq/R,iCAAiCH,EAAoB5+Q,GAC5E,OAAOtgB,KAAKs/R,kCAAkC7pI,EAAWypI,EAAoBL,EACjF,CACA,oBAAMtS,CAAejsQ,EAAS8qQ,GAC1B,MAAM2T,QAAyB/+R,KAAKg/R,iCAAiCpgR,MAAOqgR,SAC3DA,EAAIngR,OAAOytQ,eAAejsQ,GACxC8qQ,GAEG8T,EAAqBH,EAAiBr9R,IAAK+yB,GAAMA,EAAEuwF,UACnD65K,EAAUE,EAAiBr9R,IAAK+yB,GAAMA,EAAEgqQ,QAExChpI,EAAYz1J,KAAKm/R,0BAA0BD,GACjD,OAAOl/R,KAAKo/R,4BAA4B3pI,EAAWypI,EAAoBL,EAC3E,CAKA,sCAAMG,CAAiCO,EAAWnU,GAG9C,MAAMt/G,EAAW9rK,KAAKq+R,KAAK38R,IAAIkd,MAAOqgR,EAAK3kR,KACvC,IAII,MAAO,CAAE0qG,eCvHlBpmG,eAAgC9J,GAAI,WAAE0qR,EAAa,GAAE,cAAEC,EAAgB,IAAI,cAAEC,EAAgB,IAAG,WAAEC,EAAa,IAAM,YAAgB,CAAC,GACzI,IAAIC,EACJ,IAAK,IAAIC,EAAU,EAAGA,EAAUL,EAAYK,IACxC,IACI,aAAa/qR,GACjB,CACA,MAAO7J,GAEH,GADA20R,EAAY30R,EAC2B,aAAnC00R,EAAWC,EAAWC,IACtBA,IAAYL,EAAa,EACzB,MAEJ,MACMM,EADQL,EAAgBz3R,KAAKsyB,IAAIolQ,EAAeG,IAC9B,GAAsB,GAAhB73R,KAAKggG,gBAC7B,IAAI7yF,QAASH,GAAYswB,WAAWtwB,EAAS8qR,GACvD,CAEJ,MAAMF,CACV,CDkGuCG,CAAiBnhR,eACvB2gR,EAAUN,GACxB7T,GACgBqT,OAAQQ,EAAIR,OACnC,CACA,MAAOxzR,GACH,MAAM,IAAI7D,MAAM,cAAckT,aAAiBrP,IACnD,IAEJ,aE7HD2T,eAAoCktJ,EAAUwyH,GACjD,GAAIA,EAAY,EACZ,MAAM,IAAIl3R,MAAM,gCAGpB,GAAkB,IAAdk3R,EACA,MAAO,GAEX,GAAwB,IAApBxyH,EAASzrK,QAAgBi+R,EAAY,EACrC,MAAM,IAAIl3R,MAAM,oDAEpB,GAAIk3R,EAAYxyH,EAASzrK,OACrB,MAAM,IAAI+G,MAAM,aAAak3R,gCAAwCxyH,EAASzrK,UAElF,MAAM0jD,EAAU,GAChB,IAAIqgH,EAAW,EACf,OAAO,IAAIjvJ,QAAQ,CAACH,EAASC,KACzB62J,EAAShqK,QAASoT,IACdA,EACKyL,KAAMqkG,IACHjhE,EAAQ1jD,OAASi+R,IACjBv6O,EAAQ1gD,KAAK2hH,GACTjhE,EAAQ1jD,SAAWi+R,GACnBtpR,EAAQ+uC,MAIfhkC,MAAO9U,IACRmN,QAAQnN,MAAM,4BAA4BA,KAC1Cm5J,IAI0B0H,EAASzrK,OAAS0jD,EAAQ1jD,OAAS+jK,EACrCk6H,EAAYv6O,EAAQ1jD,QAExC4U,EAAO,IAAI7N,MAAM,6BAA6Bk3R,mDAKlE,CFoFqB0B,CAAqBl0H,EAAU9rK,KAAKs+R,UACrD,CAKA,wBAAA2B,CAAyBl5M,EAAY83M,GACjC,MAAMqB,EAAwBn5M,EAAWrlF,IAAI,CAACy8B,EAAWgiQ,KAAQ,CAC7DhiQ,YACAsgQ,OAAQI,EAAQsB,MAapB,OAVAD,EAAsB77O,KAAK,CAACz8C,EAAGC,KAC3B,MAAMu4R,EAAU9uP,OAAO1pC,EAAE62R,QACnB4B,EAAU/uP,OAAOzpC,EAAE42R,QACzB,OAAI2B,EAAUC,GACF,EACRD,EAAUC,EACH,EACJ,IAGJH,EAAsBx+R,IAAK8zC,GAASA,EAAKrX,UACpD,CAIA,yBAAAmiQ,CAA0BhS,EAAuBd,GAC7C,IAAKc,EAAsBvsR,OACc,cAArCusR,EAAsBvsR,MAAM4yQ,KAC5B,MAAM,IAAIvtQ,MAAM,kCAEpB,MAAM+lR,EAAiBmB,EAAsBvsR,MAAMA,MAAMA,MACnD6yG,EAAS05K,EAAsB15K,OAIrC,MAAO,CACHA,SACAj9C,UAHcm/M,G1EvJf,G0EqJgB,SAAcliK,IACb,SAAcu4K,IAK9BK,wBAER,CACA,2BAAA4R,CAA4B3pI,EAAWypI,EAAoBL,GACvD,MAAM0B,EAAmB9qI,EAAU+qI,uBAAuBngS,OAC1D,OAAO,IAAI6I,MAAMq3R,GAAkB70R,UAAKD,GAAW/J,IAAI,CAAC+C,EAAG3D,KACvD,MAAM2/R,EAAShrI,EAAU+qI,uBAAuB1/R,GAChD,IAAK2/R,EAAO1+R,MACR,MAAM,IAAIqF,MAAM,2BAGpB,MAAM2/E,EAAam4M,EAAmBx9R,IAAK+jP,GAASA,EAAK+6C,uBAAuB1/R,GAAGq9B,WAC7EqvP,EAAwBxtR,KAAKigS,yBAAyBl5M,EAAY83M,GACxE,GAA0B,cAAtB4B,EAAO1+R,MAAM4yQ,KACb,OAAO30Q,KAAKsgS,0BAA0BG,EAAQjT,GAE7C,GAA0B,iBAAtBiT,EAAO1+R,MAAM4yQ,KAAyB,CAE3C,MAAM2Y,EAAsB4R,EAAmBx9R,IAAK+jP,IAChD,GAAkD,iBAA9CA,EAAK+6C,uBAAuB1/R,GAAGiB,MAAM4yQ,KAErC,OADqBlvB,EAAK+6C,uBAAuB1/R,GAAGiB,MAAMA,MACtC2+R,mBAGpB,MAAM,IAAIt5R,MAAM,mDAAmDq+O,EAAK+6C,uBAAuB1/R,GAAGiB,MAAM4yQ,WAG1GgsB,EAAiC3gS,KAAKigS,yBAAyB3S,EAAqBuR,GAEpF3R,EADeuT,EAAO1+R,MAAMA,MACV6+R,eAClBC,GAAU,UAAc,SAASJ,EAAO7rL,SAC9C,MAAO,CACHA,OAAQ6rL,EAAO7rL,OACfo4K,mBAAoB,CAChBv0N,WAAY,CACR12D,OAAO,SAAWmrR,GAClBjzH,OAAQ,EACR12J,KAAMs9R,IAGdvT,oBAAqBqT,EACrBnT,wBAER,CAEI,MAAM,IAAIpmR,MAAM,gCAAgCq5R,EAAO1+R,MAAM4yQ,iDAGzE,CACA,iCAAA2qB,CAAkC7pI,EAAWypI,EAAoBL,GAC7D,MAAM4B,EAAShrI,EAAU64H,sBACzB,IAAKmS,EACD,MAAM,IAAIr5R,MAAM,mDAEpB,IAAKq5R,EAAO1+R,MACR,MAAM,IAAIqF,MAAM,qCAIpB,MAAM2/E,EAAa,GACnB,IAAK,MAAM0+J,KAAQy5C,EAAoB,CACnC,MAAMnS,EAAMtnC,EAAK6oC,sBACbvB,GACAhmM,EAAW1jF,KAAK0pR,EAAI5uP,UAE5B,CACA,MAAMqvP,EAAwBxtR,KAAKigS,yBAAyBl5M,EAAY83M,GACxE,GAA0B,cAAtB4B,EAAO1+R,MAAM4yQ,KACb,OAAO30Q,KAAKsgS,0BAA0BG,EAAQjT,GAElD,GAA0B,iBAAtBiT,EAAO1+R,MAAM4yQ,KAAyB,CACtC,MACMuY,EADeuT,EAAO1+R,MAAMA,MACV6+R,eACxB,IAAK1T,EACD,MAAM,IAAI9lR,MAAM,iCAEpB,MAAMy5R,GAAU,UAAc,SAASJ,EAAO7rL,SAExC04K,EAAsB4R,EAAmBx9R,IAAK+jP,IAChD,GAA+C,iBAA3CA,EAAK6oC,uBAAuBvsR,MAAM4yQ,KAAyB,CAC3D,MAAMmsB,EAAer7C,EAAK6oC,uBAAuBvsR,MAAMA,MACvD,OAAO++R,EAAaJ,kBACxB,CAEI,MAAM,IAAIt5R,MAAM,mDAAmDq+O,EAAK6oC,uBAAuBvsR,MAAM4yQ,WAGvGgsB,EAAiC3gS,KAAKigS,yBAAyB3S,EAAqBuR,GAC1F,MAAO,CACHjqL,OAAQ6rL,EAAO7rL,OACfo4K,mBAAoB,CAChBv0N,WAAY,CACR12D,OAAO,SAAWmrR,GAClBjzH,OAAQ,EACR12J,KAAMs9R,IAGdvT,oBAAqBqT,EACrBnT,wBAER,CACA,MAAM,IAAIpmR,MAAM,gCAAgCq5R,EAAO1+R,MAAM4yQ,+CACjE,CACA,yBAAAwqB,CAA0BD,GACtB,GAAkC,IAA9BA,EAAmB7+R,OACnB,MAAM,IAAI+G,MAAM,oCAEpB,MAAMquJ,EAAYypI,EAAmB,GACrC,IAAK,IAAIzqQ,EAAI,EAAGA,EAAIyqQ,EAAmB7+R,OAAQo0B,IAC3C,GAAIyqQ,EAAmBzqQ,GAAG+rQ,uBAAuBngS,SAC7Co1J,EAAU+qI,uBAAuBngS,OACjC,MAAM,IAAI+G,MAAM,uEAGxB,IAAK,IAAItG,EAAI,EAAGA,EAAI20J,EAAU+qI,uBAAuBngS,OAAQS,IAAK,CAC9D,MAAM2/R,EAAShrI,EAAU+qI,uBAAuB1/R,GAChD,IAAK2/R,EAAO1+R,MACR,MAAM,IAAIqF,MAAM,qCAEpB,MAAM25R,EAAUN,EAAO1+R,MAAM4yQ,KAE7B,IAAK,IAAIlgP,EAAI,EAAGA,EAAIyqQ,EAAmB7+R,OAAQo0B,IAAK,CAChD,MAAMs4P,EAAMmS,EAAmBzqQ,GAAG+rQ,uBAAuB1/R,GACzD,IAAKisR,EAAIhrR,MACL,MAAM,IAAIqF,MAAM,2BAEpB,GAAI2lR,EAAIhrR,MAAM4yQ,OAASosB,EACnB,MAAM,IAAI35R,MAAM,kDAAkD25R,mBAAyBtsQ,UAAUs4P,EAAIhrR,MAAM4yQ,QAEvH,CAEA,GAAgB,cAAZosB,EACA/gS,KAAKghS,2BAA2BlgS,EAAG20J,EAAWypI,OAE7C,IAAgB,iBAAZ6B,EAIL,MAAM,IAAI35R,MAAM,gCAAgC25R,6CAHhD/gS,KAAKihS,4BAA4BngS,EAAG20J,EAAWypI,EAInD,CACJ,CACA,OAAOzpI,CACX,CACA,gCAAA4pI,CAAiCH,EAAoB5+Q,GACjD,GAAkC,IAA9B4+Q,EAAmB7+R,OACnB,MAAM,IAAI+G,MAAM,oCAEpB,MAAMquJ,EAAYypI,EAAmB,GAC/BuB,EAAShrI,EAAU64H,sBACzB,IAAKmS,EACD,MAAM,IAAIr5R,MAAM,mDAEpB,IAAKq5R,EAAO1+R,MACR,MAAM,IAAIqF,MAAM,qCAEpB,MAAM25R,EAAUN,EAAO1+R,MAAM4yQ,KAE7B,IAAIusB,EACAC,EACAC,EACAC,EACJ,GAAgB,cAAZN,EACAG,EAAWT,EAAO1+R,MAAMA,MAAMA,UAE7B,IAAgB,iBAAZg/R,EASL,MAAM,IAAI35R,MAAM,gCAAgC25R,6CANhD,GAFAI,EAAkBV,EAAO1+R,MAAMA,MAC/Bq/R,EAAQD,EAAgBP,gBACnBQ,EACD,MAAM,IAAIh6R,MAAM,2CAEpBi6R,GAAa,UAAc,SAASZ,EAAO7rL,QAI/C,CAEA,MAAM0sL,EAAqBhhR,GAAS+qQ,iBAAmB/qQ,EAAQ+qQ,gBAAgBhrR,OAAS,EACxF,GAAgB,iBAAZ0gS,IAA+BO,EAC/B,MAAM,IAAIl6R,MAAM,mEAGpB,IAAK,IAAIqtB,EAAI,EAAGA,EAAIyqQ,EAAmB7+R,OAAQo0B,IAAK,CAChD,MAAMs4P,EAAMmS,EAAmBzqQ,GAAG65P,sBAClC,IAAKvB,EACD,MAAM,IAAI3lR,MAAM,yCAEpB,IAAK2lR,EAAIhrR,MACL,MAAM,IAAIqF,MAAM,2BAEpB,GAAI2lR,EAAIhrR,MAAM4yQ,OAASosB,EACnB,MAAM,IAAI35R,MAAM,kDAAkD25R,mBAAyBtsQ,UAAUs4P,EAAIhrR,MAAM4yQ,SAGnH,GAAIoY,EAAIn4K,SAAW6rL,EAAO7rL,OACtB,MAAM,IAAIxtG,MAAM,uCAGpB,GAAgB,cAAZ25R,EAAyB,CACzB,IAAKG,EACD,MAAM,IAAI95R,MAAM,2CAEpB,GAAuB,cAAnB2lR,EAAIhrR,MAAM4yQ,KACV,MAAM,IAAIvtQ,MAAM,6DAEpB,MAAMlF,EAAQ6qR,EAAIhrR,MAAMA,MAAMA,MAC9B/B,KAAKuhS,gCAAgCL,EAAUh/R,EACnD,MACK,GAAgB,iBAAZ6+R,EAA4B,CACjC,IAAKK,IAAUC,EACX,MAAM,IAAIj6R,MAAM,6CAEpB,GAAuB,iBAAnB2lR,EAAIhrR,MAAM4yQ,KACV,MAAM,IAAIvtQ,MAAM,mEAEpB,MACM8lR,EADeH,EAAIhrR,MAAMA,MACP6+R,eACxB,IAAK1T,EACD,MAAM,IAAI9lR,MAAM,iCAIpB,IAFgB,UAAc,SAAS2lR,EAAIn4K,WAE3BysL,EACZ,MAAM,IAAIj6R,MAAM,yCAGpB,GAAIg6R,EAAM/gS,SAAW6sR,EAAG7sR,OACpB,MAAM,IAAI+G,MAAM,2CAEpB,IAAK,IAAIS,EAAI,EAAGA,EAAIu5R,EAAM/gS,OAAQwH,IAC9B,GAAIu5R,EAAMv5R,KAAOqlR,EAAGrlR,GAChB,MAAM,IAAIT,MAAM,0CAG5B,CACJ,CACA,OAAOquJ,CACX,CAIA,+BAAA8rI,CAAgCL,EAAUh/R,GACtC,GAAIg/R,EAAS7gS,SAAW6B,EAAM7B,OAC1B,MAAM,IAAI+G,MAAM,0CAEpB,IAAK,IAAIS,EAAI,EAAGA,EAAIq5R,EAAS7gS,OAAQwH,IACjC,GAAIq5R,EAASr5R,KAAO3F,EAAM2F,GACtB,MAAM,IAAIT,MAAM,yCAG5B,CACA,0BAAA45R,CAA2B1mR,EAAOm7I,EAAWypI,GACzC,MAAMuB,EAAShrI,EAAU+qI,uBAAuBlmR,GAChD,GAA2B,cAAvBmmR,EAAO1+R,OAAO4yQ,KACd,MAAM,IAAIvtQ,MAAM,kCAEpB,MAAM85R,EAAWT,EAAO1+R,MAAMA,MAAMA,MACpC,IAAK,IAAI0yB,EAAI,EAAGA,EAAIyqQ,EAAmB7+R,OAAQo0B,IAAK,CAChD,MAAMs4P,EAAMmS,EAAmBzqQ,GAAG+rQ,uBAAuBlmR,GACzD,GAAwB,cAApByyQ,EAAIhrR,OAAO4yQ,KACX,MAAM,IAAIvtQ,MAAM,6DAEpB,MAAMlF,EAAQ6qR,EAAIhrR,MAAMA,MAAMA,MAC9B/B,KAAKuhS,gCAAgCL,EAAUh/R,EACnD,CACJ,CACA,2BAAA++R,CAA4B3mR,EAAOm7I,EAAWypI,GAC1C,MAAMuB,EAAShrI,EAAU+qI,uBAAuBlmR,GAChD,GAA2B,iBAAvBmmR,EAAO1+R,OAAO4yQ,KACd,MAAM,IAAIvtQ,MAAM,qCAEpB,MACMg6R,EADkBX,EAAO1+R,MAAMA,MACP6+R,eAC9B,IAAKQ,EACD,MAAM,IAAIh6R,MAAM,2CAEpB,MAAMi6R,GAAa,UAAc,SAASZ,EAAO7rL,SACjD,IAAK,IAAIngF,EAAI,EAAGA,EAAIyqQ,EAAmB7+R,OAAQo0B,IAAK,CAChD,MAAMs4P,EAAMmS,EAAmBzqQ,GAAG+rQ,uBAAuBlmR,GACzD,GAAwB,iBAApByyQ,EAAIhrR,OAAO4yQ,KACX,MAAM,IAAIvtQ,MAAM,mEAEpB,MACM8lR,EADeH,EAAIhrR,MAAMA,MACP6+R,eACxB,IAAK1T,EACD,MAAM,IAAI9lR,MAAM,iCAIpB,IAFgB,UAAc,SAAS2lR,EAAIn4K,WAE3BysL,EACZ,MAAM,IAAIj6R,MAAM,yCAGpB,GAAIg6R,EAAM/gS,SAAW6sR,EAAG7sR,OACpB,MAAM,IAAI+G,MAAM,2CAEpB,IAAK,IAAIS,EAAI,EAAGA,EAAIu5R,EAAM/gS,OAAQwH,IAC9B,GAAIu5R,EAAMv5R,KAAOqlR,EAAGrlR,GAChB,MAAM,IAAIT,MAAM,0CAG5B,CACJ,E,2BGtdG,MAAMo6R,GAAeltL,GAAA,IAAc,CACtCmtL,iBAAkB,MAClBC,WAAYptL,GAAA,IACZqtL,iBAAkB,MAClBC,iBAAkB,MAClBC,eAAgB,MAChBC,mBAAoB,MACpBC,sBAAuBztL,GAAA,IAAgB,OACvC0tL,OAAQ1tL,GAAA,IACR2tL,8BAA+B,MAC/BC,uCAAwC,MACxCC,+BAAgC,MAChCC,0BAA2B9tL,GAAA,IAAgBA,GAAA,KAC3C+tL,gBAAiB/tL,GAAA,IAAgBA,GAAA,KACjCguL,+BAAgChuL,GAAA,IAAgBA,GAAA,O,4BCCpD,MAAMiuL,GAAgB,UACtB,SAASC,GAAmBzgS,GACxB,QAASA,GAA0B,iBAAVA,GAAsB,OAAQA,CAC3D,CAWO,MAAM0gS,GACTC,YACAC,gBACA9D,QACAP,UACAsE,YACApX,gBACAxrQ,QACAyuQ,iBACAlD,gBACAsX,UACA,WAAA3uR,CAAYwuR,EAAaC,EAAiB9D,EAASP,EAAWsE,GvDZ3D,IAAkCE,EuDajC9iS,KAAK0iS,YAAcA,EACnB1iS,KAAK2iS,gBAAkBA,EACvB3iS,KAAK6+R,QAAUA,EACf7+R,KAAKs+R,UAAYA,EACjBt+R,KAAK4iS,YAAcA,EACnB5iS,KAAKwrR,iBAAkB,SAAakX,EAAYlX,iBAChDxrR,KAAKggB,QAAUsxB,OAAOoxP,EAAY1iR,SAClChgB,KAAKyuR,iBAAmBpE,KACxBrqR,KAAK6iS,UvDiBN,UAA2B,QAAEE,EAAO,SAAEC,IACzC,MAAMC,EAAgB3jS,GAAOW,KAAK8iS,EAAQ/yO,OAAO,SAAS,IACpDkzO,EAAiBF,EAASj1L,GAAGtH,aAAa1kC,YAAYziE,GAAQ,KAAM,IAC1E,OAAOsf,OAAS+4C,YAAW99C,cACvB,GvBxDG,IuBwDC89C,EAAUsiG,OACV,MAAM,IAAI7yJ,MAAM,yBvBvDrB,SAAiC6yJ,GACpC,GAHO,IAGCA,EAEA,MAAO,QAEP,MAAM,IAAI7yJ,MAAM,8BAA8B6yJ,IAE1D,CuBgDqD,CAAwBtiG,EAAUsiG,0CAE/E,MAAMkpI,EAA8B7jS,GAAOW,KwDrE5C,UAAqB,UAAE03D,EAAS,QAAE99C,IACrC,MAAMgsH,EAAU,EAAO,GAAoB,CACvCu9J,aAAa,SAAiBvpR,GAC9B9W,OAAQ,CACJ,CACIhB,MAAO,CACH4yQ,KAAM,SACN5yQ,MAAO,EAAOqoR,GAAc,CACxB7mR,KAAMo0D,EAAUp0D,KAChBxB,MAAOm1Q,GAAiBv/M,UAM5C,OAAO,GAAS,GAAoBkuE,EACxC,CxDqDwDw9J,CAAY,CAAE1rO,YAAW99C,aACnEqzQ,QAAW,cAAa+V,EAAeE,EAA6B,CACtE/rO,gBAAiB8rO,IAEf7tL,GAAY,SAAiB,CAC/B58C,WAAYy0N,EACZr4K,WAAYl9C,EAAUp0D,KACtBwxG,YAAa,EACbC,cAAe,IAEbJ,GAAS,SAAc,CACzBS,YACAx7F,QAASA,IAGb,MAAO,CACHw7F,WAAW,SAAUA,GACrBT,QAAQ,SAAUA,GAClB/6F,UACA4+C,WAAY,CACRwhG,OvB/EL,EuBgFK12J,KAAMo0D,EAAUp0D,KAEhBxB,MAAOk1Q,IAAsB,SAAWriK,IAAS,SAAWs4K,MAI5E,CuDnDyBoW,CAAkB,CAC/BP,SvDtB6BD,GuDsBK,SAAW,QAAM,MAAW9iS,KAAK4iS,cvDrBpEjrN,GAAU1gB,cAAc6rO,EAAkB,SAASztO,auDsBlD2tO,SAAUhjS,KAAKyuR,mBAEnBzuR,KAAKurR,gBAAkB6S,GAAgBQ,SAAS5+R,KAAK2iS,gBAAiB3iS,KAAK6+R,QAAS7+R,KAAKs+R,UAC7F,CAIA,+BAAaiF,GACT,OAAOd,GAAUe,OAAO,UAAWtzB,EAAY5sP,GACnD,CAgBA,sBAAamgR,CAAUv6Q,GACnB,IAAKA,EAAK,CACN,MAAM45C,EAASgtN,GAAyByS,IACxC,OAAOE,GAAU79M,OAAO,IACjB9hB,EACH6/N,gBAAiB,IAAI7/N,EAAO6/N,iBAC5B9D,QAAS/7N,EAAO+7N,QAAQn9R,IAAK6uB,IAAM,SAAaA,KAExD,CACA,GAAmB,iBAARrH,EAAkB,CACzB,MAAM45C,EAASgtN,GAAyB5mQ,GACxC,OAAOu5Q,GAAU79M,OAAO,IACjB9hB,EACH6/N,gBAAiB,IAAI7/N,EAAO6/N,iBAC5B9D,QAAS/7N,EAAO+7N,QAAQn9R,IAAK6uB,IAAM,SAAaA,KAExD,CACA,MAAMsB,EAAOi+P,GAAyByS,IACtC,OAAOE,GAAU79M,OAAO,CAEpB5kE,QAASkJ,EAAIk5Q,0BACPx9R,OAAOskB,EAAIk5Q,2BACXvwQ,EAAK7R,QACX2iR,gBAAiBz5Q,EAAIm5Q,gBACfn5Q,EAAIm5Q,gBAAgB39R,MAAM,KAC1B,IAAImtB,EAAK8wQ,iBACf9D,QAAS31Q,EAAI64Q,sBACP74Q,EAAI64Q,sBAAsBr9R,MAAM,KAAKhD,IAAKiE,IAAY,SAAaA,IACnEksB,EAAKgtQ,QAAQn9R,IAAK6uB,IAAM,SAAaA,IAC3CmzQ,gBAAiBx6Q,EAAIo5Q,gCACjBzwQ,EAAK6xQ,iBACL,wBAEJlY,gBAAiBtiQ,EAAIy4Q,iBACrBgC,iBAAkBz6Q,EAAI44Q,oBAE9B,CAMA,6BAAa8B,CAAiB1rN,GAC1B,IAAI2rN,EACJ,IArG0B9hS,EAqGGm2E,IAnGZ,iBAAVn2E,GACP,aAAcA,GACY,iBAAnBA,EAAM+hS,SAiGyB,CAClC,QAAuB,IAAZ,KAA4B,GAAQrgL,UAAU2oB,KACrD,MAAM,IAAIhlI,MAAM,uFAEpB,MAAM,SAAE28R,SAAmB,oCAC3BF,QAAmBE,EAAS7rN,EAAO4rN,SACvC,MAEID,EAAa3rN,EA7GzB,IAAkCn2E,EA+G1B,MAAMmnB,EDhHP,SAAuB86Q,GAC1B,MAAMC,EAASD,EAOnB,SAAkBH,GACd,IAAI36Q,EAAM,CAAC,EACX,MAAM+2C,EAAQ4jO,EAAWn/R,MAAM,MAE/B,IAAK,MAAMw/R,KAAQjkO,EAAO,CACtB,MAAMkkO,EAAcD,EAAK1hS,OACzB,GAAI2hS,IAAgBA,EAAY3/R,WAAW,KAAM,CAC7C,MAAM4/R,EAAaD,EAAYv3R,QAAQ,KACvC,IAAoB,IAAhBw3R,EAAmB,CACnB,MAAMtkS,EAAMqkS,EAAYn0L,UAAU,EAAGo0L,GAAY5hS,OACjD,IAAIT,EAAQoiS,EAAYn0L,UAAUo0L,EAAa,GAAG5hS,QAE7CT,EAAMyC,WAAW,MAAQzC,EAAMwD,SAAS,MACxCxD,EAAMyC,WAAW,MAAQzC,EAAMwD,SAAS,QACzCxD,EAAQA,EAAMiuG,UAAU,EAAGjuG,EAAM1B,OAAS,IAE9C6oB,EAAIppB,GAAOiC,CACf,CACJ,CACJ,CAEA,IAAK,MAAOjC,EAAKiC,KAAUH,OAAO6uC,QAAQvnB,GACtCA,EAAIppB,GAAOiC,EAAM6tB,QAAQ,eAAgB,CAACnrB,EAAG4/R,IAClCn7Q,EAAIm7Q,IAAY,IAG/B,OAAOn7Q,CACX,CA9BWo7Q,CAJ+BN,EAIXz7R,YAJ2B,GAAQ2gB,IAC9D,OAAO,MAAyBs4Q,GAAzB,CAAuCyC,EAClD,CC6GoBM,CAAcV,GAC1B,aAAapB,GAAUgB,UAAUv6Q,EACrC,CAMA,eAAayiH,CAAGroH,GACZ,MAAMkhR,EAAaxkS,KAAKykS,WAAWnhR,GAC7BusQ,GAAqBvwM,KAAMx1E,GAAMA,EAAE7F,OAASqf,EAAGrf,MAAQ6F,EAAEkW,UAAYsD,EAAGtD,SACxE6vQ,GAAqBvwM,KAAMx1E,GAAMA,EAAE0hR,kBAAoBloQ,EAAGkoQ,iBACxD1hR,EAAEkW,UAAYsD,EAAGtD,SACzB,IAAKwkR,EACD,MAAM,IAAIp9R,MAAM,2BAA2BwB,KAAKH,UAAU6a,MAE9D,MAAMpE,EAAQqxQ,GAAa,CAAEjtQ,GAAIkhR,EAAWxkR,UACtClB,GAAS,EAAAy9I,EAAA,GAAmB,CAC9Br9I,QACAi8I,WAAW,EAAAv3I,EAAA,QAET,UAAE06Q,EAAS,QAAEO,EAAO,YAAE+D,SAAsBH,GAAUiC,eAAeF,EAAY1lR,GACvF,OAAO,IAAI2jR,GAAU+B,EAAY/B,GAAUkC,mBAAmBH,EAAYlG,GAAYO,EAASP,EAAWsE,EAC9G,CAOA,mBAAah+M,CAAO9hB,GAChB,MAAM5jD,EAAQqxQ,GAAa,CAAEjtQ,GAAIw/C,EAAO9iD,UAClClB,GAAS,EAAAy9I,EAAA,GAAmB,CAC9Br9I,QACAi8I,UAAWr4F,EAAO4gO,iBAAkB,EAAA9/Q,EAAA,GAAKk/C,EAAO4gO,kBAAmB,EAAA9/Q,EAAA,QAEjE,UAAE06Q,EAAS,QAAEO,EAAO,YAAE+D,SAAsBH,GAAUmC,2BAA2B9hO,EAAO0oN,gBAAiB1sQ,GAC/G,OAAO,IAAI2jR,GAAU3/N,EAAQA,EAAO6/N,gBAAiB9D,EAASP,EAAWsE,EAC7E,CAQA,uBAAOiC,CAAiBC,EAAQ9kR,GAE5B,MAAM+kR,EAAiBlV,GAAqBvwM,KAAMx1E,GAAMA,EAAEg7R,SAAWA,GAAUh7R,EAAEkW,UAAYA,GAC7F,IAAK+kR,EAGD,MAAM,IAAI39R,MAAM,kCAAkC09R,KAEtD,OAAOC,CACX,CASA,mBAAavB,CAAOsB,EAAQ9kR,GACxB,OAAOyiR,GAAU92J,GAAG82J,GAAUoC,iBAAiBC,EAAQ9kR,GAC3D,CAKA,cAAIwkR,GACA,MAAO,IAAKxkS,KAAK0iS,YACrB,CAaA,aAAMztO,CAAQlzD,GAAO,eAAEijS,EAAc,YAAEC,EAAW,WAAEpwL,IAChD,MAAM,WAAEp8C,SAAqBz4D,KAAK6iS,UAAU,CACxClrO,UAAW8qO,GAAUyC,mBAAmBnjS,EAAO8yG,GAC/Ch7F,QAAS,CACL26F,YAAax0G,KAAKggB,QAClBy0F,WAAYz0G,KAAKwrR,gBACjB92K,aAAa,SAAaswL,GAC1B5hR,iBAAiB,SAAa6hR,MAGtC,OAAOxsO,EAAW12D,KACtB,CAwBA,+BAAAojS,CAAgC7mN,EAAc8mN,EAAgBC,EAAWC,GACrE,OjD9ND1mR,gBAA+B,QAAEoB,EAAO,gBAAE0vQ,EAAe,+BAAE6V,EAA8B,eAAEH,EAAc,mBAAEI,EAAkB,UAAEH,IAClI,MAAMI,EAAU,CACZC,UAAWN,EACXC,UAAW/zP,OAAOtpC,KAAKuG,MAAM82R,EAAU54P,UAAY,OAEjDyiP,GAAgB,EAAAhrL,GAAA,GA2N1B,WACI,MAAMyhM,EAAavuB,GAAa93L,KAAM9pC,GAAS,SAAUA,GAAsB,eAAdA,EAAKvxC,MACtE,IAAK0hS,EACD,MAAM,IAAIv+R,MAAM,wBAEpB,MAAMq+R,EAAUE,EAAWjgO,QAAQ,GACnC,IAAK+/N,EACD,MAAM,IAAIr+R,MAAM,qBAEpB,OAAOq+R,EAAQ1hS,UACnB,CArO8C6hS,GAAiB,CACvDH,EAAQC,UACRD,EAAQJ,YAEN1Y,QAAqB8C,GAAgBC,EAAiB8V,GAStDK,QAAuBlZ,EAAa5tM,KAAK+mN,eACzCC,EAAmBF,EAAe,GAClCla,EAAsBka,EAAe,GACrC9W,QApCHnwQ,eAAsC8wQ,EAAiB8V,EAAoBxwI,EAAmBi6H,EAAcC,GAC/G,MAAMtC,QAAiB6C,GAAgBC,EAAiB8V,GAMxD,MAAO,CACHxW,mBAJuBpC,EAAS7tM,KAAKinN,8BAA8B,CACnER,EAAmBxmR,QAAQrZ,UAI3BqvJ,oBACAi6H,eACAC,gBAER,CAuB0B+W,CAAuBvW,EAAiB8V,EAG9DD,GAAgC,EAAAxxN,GAAA,GAoNpC,WACI,MAAMmyN,EAAgB,KAAmB5mN,KAAM9pC,GAAS,SAAUA,GAAsB,kBAAdA,EAAKvxC,MAC/E,IAAKiiS,EACD,MAAM,IAAI9+R,MAAM,2BAEpB,OAAO8+R,CACX,CA1NuDC,IAAwBjX,GACrExD,EAAgBhB,GAAoB,CACtC1qQ,UACAm8D,YAAa,mBACbwuM,kBAAmB2E,KACnB/6Q,QAASw6Q,EAGT/5H,kBAAmB23H,EAAahnR,QAChCilR,WAAYmb,EACZlb,cAAec,IAIbwD,QAAyBqW,EAAmBntN,cAAcqzM,GAChE,MAAO,CACHoD,OAAQ0W,EAAmBxmR,QAAQrZ,QACnCopR,UACAI,mBAER,CiDkLeiX,CAAgB,CACnBpmR,QAAShgB,KAAKggB,QACd0vQ,gBAAiB1vR,KAAKwrR,gBACtB+Z,gCAAgC,SAAaD,GAC7CF,gBAAgB,SAAaA,GAC7BI,mBAAoBlnN,EACpB+mN,aAER,CAUA,gCAAAgB,CAAiC/nN,GAC7B,OjDpMD1/D,eAAgD8wQ,EAAiB8V,GACpE,MAAM5Y,QAAiB6C,GAAgBC,EAAiB8V,GAExD,aADqB5Y,EAASr8Q,MAAM81R,kCAExC,CiDgMeA,CAAiCrmS,KAAKwrR,gBAAiBltM,EAClE,CACA,eAAA4sM,CAAgB5sM,EAAc6sM,EAASjpN,EAAMokO,EAAMC,GAC/C,GAAIrkO,aAAgBv0D,WAAY,CAC5B,MAAM09Q,EAAkBnpN,EACxB,IAAIopN,EACAF,EAQJ,OAPIkb,GAAQ9D,GAAmB8D,IAC3Bhb,EAAmBgb,EACnBlb,EAAgBmb,GAGhBnb,EAAgBkb,EAGTpb,GADPI,EACuB,CACnBH,UACAC,gBACAprQ,QAASpb,OAAO5E,KAAKggB,SACrBs+D,eACAitM,gBAAiBvrR,KAAKurR,gBACtBC,gBAAiBxrR,KAAKwrR,gBACtBH,kBACAC,oBAGe,CACnBE,gBAAiBxrR,KAAKwrR,gBACtBL,UACAC,gBACAprQ,QAASpb,OAAO5E,KAAKggB,SACrBs+D,eACAitM,gBAAiBvrR,KAAKurR,gBACtBF,mBAER,CACA,MAAMD,EAAgBlpN,EAChBopN,EAAmBjB,KACnBgB,EAAkBC,EAAiBhB,kBACzC,OAAOY,GAAgB,CACnBC,UACAC,gBACAprQ,QAASpb,OAAO5E,KAAKggB,SACrBs+D,eACAitM,gBAAiBvrR,KAAKurR,gBACtBC,gBAAiBxrR,KAAKwrR,gBACtBH,kBACAC,oBAER,CACA,0BAAAkb,CAA2B/X,EAAkBC,EAAyBC,EAAWxD,EAASmb,EAAMC,EAAME,GAClG,GAAIH,aAAgB34R,WAAY,CAC5B,MAAM09Q,EAAkBib,EACxB,IAAIhb,EACAF,EAQJ,OAPImb,GAAQ/D,GAAmB+D,IAC3Bjb,EAAmBib,EACnBnb,EAAgBqb,GAGhBrb,EAAgBmb,EAGTlX,GADP/D,EACiC,CAC7BF,gBACAprQ,QAASpb,OAAO5E,KAAKggB,SACrBurQ,gBAAiBvrR,KAAKurR,gBACtBkD,mBACAC,0BACAvD,UACAE,kBACAC,mBACAqD,YACAnD,gBAAiBxrR,KAAKwrR,iBAGG,CAC7BJ,gBACAprQ,QAASpb,OAAO5E,KAAKggB,SACrBurQ,gBAAiBvrR,KAAKurR,gBACtBkD,mBACAC,0BACAvD,UACAE,kBACAsD,YACAnD,gBAAiBxrR,KAAKwrR,iBAE9B,CACA,MAAMJ,EAAgBkb,EAChBhb,EAAmBjB,KACnBgB,EAAkBC,EAAiBhB,kBACzC,OAAO+E,GAA0B,CAC7BjE,gBACAprQ,QAASpb,OAAO5E,KAAKggB,SACrBurQ,gBAAiBvrR,KAAKurR,gBACtBkD,mBACAC,0BACAvD,UACAwD,YACAnD,gBAAiBxrR,KAAKwrR,gBACtBH,kBACAC,oBAER,CACA,eAAA2C,CAAgB3vM,EAAc4vM,EAAWtrP,EAAIurP,EAAcoY,EAAME,EAAMC,GAEnE,GAAIH,aAAgB54R,WAAY,CAC5B,MAAM09Q,EAAkBkb,EACxB,IAAIjb,EACAF,EAQJ,OAPIqb,GAAQjE,GAAmBiE,IAC3Bnb,EAAmBmb,EACnBrb,EAAgBsb,GAGhBtb,EAAgBqb,EAGT,GADPnb,EAC8B,CAC1BE,gBAAiBxrR,KAAKwrR,gBACtBltM,eACAitM,gBAAiBvrR,KAAKurR,gBACtBvrQ,QAASpb,OAAO5E,KAAKggB,SACrBkuQ,YACAtrP,KACAurP,eACA9C,kBACAC,mBACAF,iBAGsB,CAC1BI,gBAAiBxrR,KAAKwrR,gBACtBltM,eACAitM,gBAAiBvrR,KAAKurR,gBACtBvrQ,QAASpb,OAAO5E,KAAKggB,SACrBkuQ,YACAtrP,KACAurP,eACA9C,kBACAD,iBAER,CAEA,MAAMA,EAAgBmb,EAChBjb,EAAmBjB,KACnBgB,EAAkBC,EAAiBhB,kBACzC,OAAO,GAAuB,CAC1BkB,gBAAiBxrR,KAAKwrR,gBACtBltM,eACAitM,gBAAiBvrR,KAAKurR,gBACtBvrQ,QAASpb,OAAO5E,KAAKggB,SACrBkuQ,YACAtrP,KACAurP,eACA9C,kBACAC,mBACAF,iBAER,CACA,0BAAAub,CAA2BlY,EAAkBC,EAAyBC,EAAWT,EAAWtrP,EAAIurP,EAAcsY,EAAMC,EAAME,GAEtH,GAAIH,aAAgB94R,WAAY,CAC5B,MAAM09Q,EAAkBob,EACxB,IAAInb,EACAF,EAQJ,OAPIsb,GAAQlE,GAAmBkE,IAC3Bpb,EAAmBob,EACnBtb,EAAgBwb,GAGhBxb,EAAgBsb,EAGTlY,GADPlD,EACiC,CAC7BtrQ,QAASpb,OAAO5E,KAAKggB,SACrBurQ,gBAAiBvrR,KAAKurR,gBACtBkD,mBACAC,0BACAR,YACAtrP,KACAurP,eACAQ,YACAnD,gBAAiBxrR,KAAKwrR,gBACtBH,kBACAC,mBACAF,iBAGyB,CAC7BprQ,QAASpb,OAAO5E,KAAKggB,SACrBurQ,gBAAiBvrR,KAAKurR,gBACtBkD,mBACAC,0BACAR,YACAtrP,KACAurP,eACAQ,YACAnD,gBAAiBxrR,KAAKwrR,gBACtBH,kBACAD,iBAER,CAEA,MAAMA,EAAgBqb,EAChBnb,EAAmBjB,KACnBgB,EAAkBC,EAAiBhB,kBACzC,OAAOkE,GAA0B,CAC7BxuQ,QAASpb,OAAO5E,KAAKggB,SACrBurQ,gBAAiBvrR,KAAKurR,gBACtBkD,mBACAC,0BACAR,YACAtrP,KACAurP,eACAQ,YACAnD,gBAAiBxrR,KAAKwrR,gBACtBH,kBACAC,mBACAF,iBAER,CAcA,cAAAmB,CAAepB,EAASC,GACpB,OAAOF,GAAgB,CACnBM,gBAAiBxrR,KAAKwrR,gBACtBL,UACAC,gBACAprQ,QAASpb,OAAO5E,KAAKggB,SACrBurQ,gBAAiBvrR,KAAKurR,iBAE9B,CAIA,yBAAOoZ,CAAmBH,EAAYlG,GAClC,MAAM,gBAAE9S,EAAe,QAAExrQ,EAAO,OAAE8kR,GAAWN,EAC7C,OAAOt7R,MAAMjJ,KAAK,CAAEI,OAAQi+R,GAAa,CAAC75R,EAAG3D,IAE7C,WAAW0qR,EAAgBjqR,iBAAiBye,KAAW8kR,aAC3D,CACA,iBAAOL,CAAWnhR,GACd,YAAmB7X,IAAZ6X,EAAGrf,IACd,CACA,yBAAOihS,CAAmBnjS,EAAOwB,GAC7B,GAAqB,kBAAVxB,EACP,MAAO,CACHk4J,O9EpgBL,E8EqgBK12J,KAAM,MAAYkwG,MAClB1xG,MAAOA,GAGV,GAAqB,iBAAVA,GAAuC,iBAAVA,EACzC,MAAO,CACHk4J,O9E3gBL,E8E4gBK12J,KAAMA,GAAQ,MAAY0wG,SAC1BlyG,MAAOuvC,OAAOvvC,IAIlB,MAAM,IAAIqF,MAAM,2BAA2BrF,EAEnD,CACA,8BAAa8kS,CAAkB/nR,EAAQ0sQ,GACnC,MAAMmB,QAAqB8V,GAAUqE,wBAAwBhoR,EAAQ0sQ,GACrE,aAAamB,EAAa5tM,KAAKgoN,aACnC,CACA,oCAAaD,CAAwBhoR,EAAQ0sQ,GACzC,MAAMwb,GAAwB,QAAY,CACtChiO,IAAK,KACLr/D,QAAS6lR,EACT1sQ,WAEE4tQ,QAA4Bsa,EAAsBjoN,KAAK4tM,eACvDA,GAAe,QAAY,CAC7B3nN,IAAK,KACLr/D,QAAS+mR,EACT5tQ,WAIJ,OAFA1G,QAAQqzB,IAAI,gBAAiBu7P,EAAsBrhS,SACnDyS,QAAQqzB,IAAI,gBAAiBkhP,EAAahnR,SACnCgnR,CACX,CAQA,uCAAaiY,CAA2BpZ,EAAiB1sQ,GACrD,MAAM6tQ,QAAqB8V,GAAUqE,wBAAwBhoR,EAAQ0sQ,GAC/D8S,QAAkB3R,EAAa5tM,KAAKkoN,eACpCrE,QAAoBjW,EAAa5tM,KAAKgoN,cACtCG,QAAqBva,EAAa5tM,KAAKooN,kBACvCC,EAAkB,GACxB,IAAK,IAAItmS,EAAIwwC,OAAO,GAAIxwC,EAAIomS,EAAcpmS,IACtCsmS,EAAgB/jS,KAAKspR,EAAa5tM,KAAKsoN,iBAAiB,CAACvmS,KAE7D,MAAM+9R,QAAgB1pR,QAAQ6S,IAAIo/Q,GAClC,MAAO,CACH9I,UAAW15R,OAAO05R,GAClBO,QAASA,EAAQn9R,IAAI,OACrBkhS,cAER,CACA,2BAAa8B,CAAeF,EAAY1lR,GACpC,OAAI9e,KAAKsnS,2BAA2B9C,SACnBxkS,KAAK4kS,2BAA2BJ,EAAWhZ,gBAAiB1sQ,GAEtE9e,KAAKunS,+BAChB,CAEA,iCAAOD,CAA2B9C,GAE9B,IAAKA,EAAW33R,QACZ,MAAM,IAAIzF,MAAM,mCACpB,MAAM,MAAEogS,EAAK,MAAEC,GAAUjD,EAAW33R,QACpC,OAAO26R,EAAQ,GAAgB,IAAVA,GAAeC,GAAS,CACjD,CAIA,oCAAOF,GACH,MAAO,CACHjJ,UAAW,EACXO,QAAS,CAAC,KACV+D,YvD5lBsB,uEuD8lB9B,E,4BErmBJ,IAAIzjS,EAAW,EAAQ,OACnBG,EAAS,gBAETD,EAAO,EAAQ,OAEfK,EAAQJ,EAAOK,MAAM,KACrBO,EAAY,GAEhB,SAASN,EAAMC,EAAKC,GAClBT,EAAKU,KAAKC,KAAM,UACG,iBAARF,IACTA,EAAMR,EAAOW,KAAKH,IAGpBE,KAAKG,KAAON,EACZG,KAAKI,KAAON,EAERA,EAAIO,OAASH,EACfJ,EAAMD,EAAIC,GACDA,EAAIO,OAASH,IACtBJ,EAAMR,EAAOkB,OAAO,CAACV,EAAKJ,GAAQQ,IAMpC,IAHA,IAAIO,EAAOT,KAAKU,MAAQpB,EAAOqB,YAAYT,GACvCU,EAAOZ,KAAKa,MAAQvB,EAAOqB,YAAYT,GAElCY,EAAI,EAAGA,EAAIZ,EAAWY,IAC7BL,EAAKK,GAAc,GAAThB,EAAIgB,GACdF,EAAKE,GAAc,GAAThB,EAAIgB,GAGhBd,KAAKe,MAAQ,CAACN,EAChB,CAEAtB,EAASS,EAAMP,GAEfO,EAAKoB,UAAUC,QAAU,SAAUC,GACjClB,KAAKe,MAAMsC,KAAKnC,EAClB,EAEAtB,EAAKoB,UAAUG,OAAS,WACtB,IAAIC,EAAIpB,KAAKG,KAAKb,EAAOkB,OAAOR,KAAKe,QACrC,OAAOf,KAAKG,KAAKb,EAAOkB,OAAO,CAACR,KAAKa,MAAOO,IAC9C,EACAC,EAAOC,QAAU1B,C","sources":["webpack://react-example/../../../../node_modules/create-hmac/browser.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/constants/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/encoding/fromBytes.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/decodeAbiParameters.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/address/isAddress.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://react-example/../../../../node_modules/public-encrypt/privateDecrypt.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/stringify.js","webpack://react-example/../../../../node_modules/core-util-is/lib/util.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/index.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js","webpack://react-example/../../../../node_modules/typed-array-buffer/index.js","webpack://react-example/../../../../node_modules/hasown/index.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/version.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/base.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/promise/withResolvers.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/to-buffer.js","webpack://react-example/../../../../node_modules/events/events.js","webpack://react-example/../../../../node_modules/public-encrypt/publicEncrypt.js","webpack://react-example/../../../../node_modules/has-symbols/shams.js","webpack://react-example/../../../../node_modules/sha.js/sha256.js","webpack://react-example/../../../../node_modules/des.js/lib/des/ede.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/sendTransaction.js","webpack://react-example/../../../../node_modules/es-errors/type.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/ref.js","webpack://react-example/../../../../node_modules/call-bind/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/authorization/hashAuthorization.js","webpack://react-example/../../../../node_modules/viem/_esm/chains/definitions/anvil.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/blob/blobsToProofs.js","webpack://react-example/../../../../node_modules/diffie-hellman/lib/dh.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Order.js","webpack://react-example/../../../../node_modules/ecies-geth/dist/lib/src/typescript/index.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/differ/orPatch.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js","webpack://react-example/../../../../node_modules/call-bind-apply-helpers/actualApply.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/differ/chunkPatch.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/cursor.js","webpack://react-example/../../../../node_modules/public-encrypt/mgf.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/regex.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/data/trim.js","webpack://react-example/../../../../node_modules/ripemd160/index.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/curve/short.js","webpack://react-example/../../../../node_modules/miller-rabin/lib/mr.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/errors/signature.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Data.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/executionStrategy.js","webpack://react-example/../../../../node_modules/effect/dist/esm/ExecutionStrategy.js","webpack://react-example/../../../../node_modules/effect/dist/esm/FiberRefsPatch.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/fiberStatus.js","webpack://react-example/../../../../node_modules/effect/dist/esm/FiberStatus.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Micro.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Scheduler.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/blockedRequests.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/completedRequestMap.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/concurrency.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Exit.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/fiberMessage.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/fiberScope.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/fiber.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/logger.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/metric/keyType.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/metric/key.js","webpack://react-example/../../../../node_modules/effect/dist/esm/MutableHashMap.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/metric/state.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/metric/hook.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/metric/pair.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/metric/registry.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/metric.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/metric/boundaries.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/request.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/supervisor.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Differ.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/supervisor/patch.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/fiberRuntime.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/console.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/effect/circular.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Fiber.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Scope.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/runtime.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/schedule.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Deferred.js","webpack://react-example/../../../../node_modules/effect/dist/esm/MutableList.js","webpack://react-example/../../../../node_modules/effect/dist/esm/MutableQueue.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/cache.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Effect.js","webpack://react-example/../../../../node_modules/effect/dist/esm/ParseResult.js","webpack://react-example/../../../../node_modules/math-intrinsics/min.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getTransactionReceipt.js","webpack://react-example/../../../../node_modules/react-dom/client.js","webpack://react-example/../../../../node_modules/hmac-drbg/lib/hmac-drbg.js","webpack://react-example/../../../../node_modules/ecies-geth/dist/lib/src/typescript/node.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/sha/384.js","webpack://react-example/../../../../node_modules/browserify-aes/streamCipher.js","webpack://react-example/../../../../node_modules/md5.js/index.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/wait.js","webpack://react-example/../../../../node_modules/parse-asn1/certificate.js","webpack://react-example/../../../../node_modules/has-tostringtag/shams.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/context.js","webpack://react-example/../../../../node_modules/browserify-rsa/index.js","webpack://react-example/../../../../node_modules/process-nextick-args/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/formatters/block.js","webpack://react-example/../../../../node_modules/util-deprecate/browser.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getTransaction.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Inspectable.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/simulateContract.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/formatAbiItem.js","webpack://react-example/../../../../node_modules/sha.js/sha384.js","webpack://react-example/../../../../node_modules/sha3/sponge/permute/copy/index.js","webpack://react-example/../../../../node_modules/sha3/index.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getBlock.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/estimateMaxPriorityFeePerGas.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/curve/base.js","webpack://react-example/../../../../node_modules/define-data-property/index.js","webpack://react-example/../../../../node_modules/viem/_esm/constants/unit.js","webpack://react-example/../../../../node_modules/browserify-aes/modes/ecb.js","webpack://react-example/../../../../node_modules/crypto-browserify/index.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/account.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/utils.js","webpack://react-example/../../../../node_modules/brorand/index.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/base/buffer.js","webpack://react-example/../../../../node_modules/ox/_esm/core/internal/hex.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Clock.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/sha/512.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/hash/toFunctionSelector.js","webpack://react-example/../../../../node_modules/sha3/sponge/index.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/errors/abiParameter.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Readable.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Chunk.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/opCodes/effect.js","webpack://react-example/../../../../node_modules/viem/_esm/accounts/utils/sign.js","webpack://react-example/../../../../node_modules/viem/_esm/accounts/privateKeyToAccount.js","webpack://react-example/../../../../node_modules/viem/_esm/accounts/toAccount.js","webpack://react-example/../../../../node_modules/viem/_esm/accounts/utils/signAuthorization.js","webpack://react-example/../../../../node_modules/viem/_esm/accounts/utils/signMessage.js","webpack://react-example/../../../../node_modules/viem/_esm/accounts/utils/signTransaction.js","webpack://react-example/../../../../node_modules/viem/_esm/accounts/utils/signTypedData.js","webpack://react-example/../../../../node_modules/isarray/index.js","webpack://react-example/../../../../node_modules/call-bind-apply-helpers/functionCall.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Json.js","webpack://react-example/../../../../node_modules/es-errors/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/hash/toEventSelector.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/differ/contextPatch.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/node_modules/safe-buffer/index.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/errors/splitParameters.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/runtime/cache.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/runtime/utils.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/signature/hashTypedData.js","webpack://react-example/../../../../node_modules/stream-browserify/index.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/getContract.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/constants/der.js","webpack://react-example/../../../../node_modules/viem/_esm/constants/number.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/errors.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/effectable.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/encoding.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/estimateFeesPerGas.js","webpack://react-example/../../../../node_modules/browserify-des/index.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Hex.js","webpack://react-example/../../../../node_modules/es-errors/ref.js","webpack://react-example/../../../../node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://react-example/../../../../node_modules/diffie-hellman/lib/generatePrime.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/blob/blobsToCommitments.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/chain/getChainContractAddress.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/readable-browser.js","webpack://react-example/../../../../node_modules/sha3/sponge/permute/chi/index.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/errors/struct.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/runtime/structs.js","webpack://react-example/../../../../node_modules/bn.js/lib/bn.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/unit/parseGwei.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/ripemd.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/schema/util.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/errors/getTransactionError.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/unit/parseEther.js","webpack://react-example/../../../../node_modules/@noble/hashes/esm/_md.js","webpack://react-example/../../../../node_modules/@noble/hashes/esm/sha2.js","webpack://react-example/../../../../node_modules/es-errors/uri.js","webpack://react-example/../../../../node_modules/browserify-sign/browser/verify.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic.js","webpack://react-example/../../../../node_modules/create-hash/md5.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/signature/serializeSignature.js","webpack://react-example/../../../../node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/unit.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/unit/parseUnits.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/errors/getCallError.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/getAction.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/sha/224.js","webpack://react-example/../../../../node_modules/viem/_esm/constants/blob.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/blob/toBlobSidecars.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/blob/toBlobs.js","webpack://react-example/../../../../node_modules/@noble/hashes/esm/sha3.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/encoders/index.js","webpack://react-example/../../../../node_modules/readable-stream/lib/_stream_transform.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/array.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Iterable.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Record.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Tuple.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Array.js","webpack://react-example/../../../../node_modules/math-intrinsics/floor.js","webpack://react-example/../../../../node_modules/randomfill/browser.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/encodeAbiParameters.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Number.js","webpack://react-example/../../../../node_modules/hash-base/index.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/ec/key.js","webpack://react-example/../../../../node_modules/browserify-aes/encrypter.js","webpack://react-example/../../../../node_modules/browserify-sign/browser/index.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/tracer.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/decoders/der.js","webpack://react-example/../../../../node_modules/which-typed-array/index.js","webpack://react-example/../../../../node_modules/for-each/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/unit/formatUnits.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/ec/index.js","webpack://react-example/../../../../node_modules/viem/_esm/constants/contracts.js","webpack://react-example/../../../../node_modules/sha3/sponge/permute/iota/index.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/uid.js","webpack://react-example/../../../../node_modules/sha3/sponge/permute/theta/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/formatters/formatter.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/formatAbiParameter.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/formatAbiParameters.js","webpack://react-example/../../../../node_modules/es-errors/syntax.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/transaction/assertTransaction.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/transaction/serializeAccessList.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/transaction/serializeTransaction.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/authorization/serializeAuthorizationList.js","webpack://react-example/../../../../node_modules/parse-asn1/fixProc.js","webpack://react-example/../../../../node_modules/inherits/inherits_browser.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/data/concat.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/encodePacked.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/handle.js","webpack://react-example/../../../../node_modules/ecies-geth/dist/lib/src/typescript/browser.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/transaction/getTransactionType.js","webpack://react-example/../../../../node_modules/to-buffer/node_modules/isarray/index.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/binary.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getGasPrice.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/deferred.js","webpack://react-example/../../../../node_modules/browserify-aes/modes/cbc.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/fiberId.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/fiberRefs.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/sendRawTransactionSync.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/hash/keccak256.js","webpack://react-example/../../../../node_modules/sha3/sponge/permute/index.js","webpack://react-example/../../../../node_modules/sha.js/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/observe.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/defaultServices/console.js","webpack://react-example/../../../../node_modules/readable-stream/lib/internal/streams/state.js","webpack://react-example/../../../../node_modules/browserify-des/modes.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Option.js","webpack://react-example/../../../../node_modules/es-errors/range.js","webpack://react-example/../../../../node_modules/possible-typed-array-names/index.js","webpack://react-example/../../../../node_modules/es-define-property/index.js","webpack://react-example/../../../../node_modules/has-property-descriptors/index.js","webpack://react-example/../../../../node_modules/math-intrinsics/abs.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/uninstallFilter.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/decoders/pem.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/sha/256.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/chain/defineChain.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1.js","webpack://react-example/../../../../node_modules/diffie-hellman/browser.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/sha/common.js","webpack://react-example/../../../../node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer/index.js","webpack://react-example/../../../../node_modules/@noble/hashes/esm/crypto.js","webpack://react-example/../../../../node_modules/@noble/hashes/esm/utils.js","webpack://react-example/../../../../node_modules/browserify-aes/modes/ctr.js","webpack://react-example/../../../../node_modules/get-proto/Reflect.getPrototypeOf.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/cursor.js","webpack://react-example/../../../../node_modules/randombytes/browser.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/writeContract.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/transaction/assertRequest.js","webpack://react-example/../../../../node_modules/react/jsx-runtime.js","webpack://react-example/../../../../node_modules/process/browser.js","webpack://react-example/../../../../node_modules/ecies-geth/dist/lib/src/typescript/model.js","webpack://react-example/../../../../node_modules/readable-stream/lib/_stream_passthrough.js","webpack://react-example/../../../../node_modules/sha.js/sha1.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/promise/withCache.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getBlockNumber.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/fee.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/parseEventLogs.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/hashSet.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/parseAbi.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/call.js","webpack://react-example/../../../../node_modules/viem/_esm/constants/contract.js","webpack://react-example/../../../../node_modules/@noble/hashes/esm/hmac.js","webpack://react-example/../../../../node_modules/@noble/curves/esm/abstract/utils.js","webpack://react-example/../../../../node_modules/@noble/curves/esm/abstract/modular.js","webpack://react-example/../../../../node_modules/@noble/curves/esm/abstract/curve.js","webpack://react-example/../../../../node_modules/@noble/curves/esm/abstract/weierstrass.js","webpack://react-example/../../../../node_modules/@noble/curves/esm/_shortw_utils.js","webpack://react-example/../../../../node_modules/@noble/curves/esm/secp256k1.js","webpack://react-example/../../../../node_modules/minimalistic-assert/index.js","webpack://react-example/../../../../node_modules/parse-asn1/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/promise/createBatchScheduler.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/fiberRefs/patch.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Hash.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/poll.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/node_modules/string_decoder/lib/string_decoder.js","webpack://react-example/../../../../node_modules/public-encrypt/xor.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/decoders/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/signature/hashMessage.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/signature/toPrefixedMessage.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/formatters/transaction.js","webpack://react-example/../../../../node_modules/@noble/hashes/esm/_u64.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Context.js","webpack://react-example/../../../../node_modules/react/cjs/react.production.js","webpack://react-example/../../../../node_modules/react/index.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/differ/readonlyArrayPatch.js","webpack://react-example/../../../../node_modules/browserify-aes/modes/ofb.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/differ/hashMapPatch.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/hashMap/config.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/hashMap/bitwise.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/stack.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/hashMap/array.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/hashMap/node.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/hashMap.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getLogs.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/unit/formatEther.js","webpack://react-example/../../../../node_modules/des.js/lib/des/cipher.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/schema/errors.js","webpack://react-example/../../../../node_modules/effect/dist/esm/SchemaAST.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/decodeFunctionResult.js","webpack://react-example/../../../../node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://react-example/../../../../node_modules/secp256k1/elliptic.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/promise/withRetry.js","webpack://react-example/../../../../node_modules/browserify-aes/decrypter.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/encodeDeployData.js","webpack://react-example/../../../../node_modules/pbkdf2/browser.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/encoders/pem.js","webpack://react-example/../../../../node_modules/has-symbols/index.js","webpack://react-example/../../../../node_modules/vm-browserify/index.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/ccip.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/ccip.js","webpack://react-example/../../../../node_modules/react/cjs/react-jsx-runtime.production.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/curves.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Errors.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/data.js","webpack://react-example/../../../../node_modules/browserify-sign/browser/sign.js","webpack://react-example/../../../../node_modules/effect/dist/esm/LogSpan.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Tracer.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/doNotation.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/core-effect.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/fillTransaction.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/base/index.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/node_modules/string_decoder/lib/string_decoder.js","webpack://react-example/../../../../node_modules/pbkdf2/lib/default-encoding.js","webpack://react-example/../../../../node_modules/create-hash/browser.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/defaultServices.js","webpack://react-example/../../../../node_modules/browserify-rsa/node_modules/bn.js/lib/bn.js","webpack://react-example/../../../../node_modules/effect/dist/esm/GlobalValue.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/ens/errors.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/ens/encodedLabelToLabelhash.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/ens/namehash.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/ens/encodeLabelhash.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/ens/labelhash.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/ens/packetToBytes.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/ens.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/ens/avatar/utils.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/ens/getEnsText.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/createAccessList.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/createEventFilter.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/createPendingTransactionFilter.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getCode.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/eip712.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getEip712Domain.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/simulateBlocks.js","webpack://react-example/../../../../node_modules/ox/_esm/core/internal/bytes.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Bytes.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Hash.js","webpack://react-example/../../../../node_modules/ox/_esm/core/internal/lru.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Caches.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Address.js","webpack://react-example/../../../../node_modules/ox/_esm/core/internal/abiItem.js","webpack://react-example/../../../../node_modules/ox/_esm/core/AbiItem.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/parseAbiItem.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Solidity.js","webpack://react-example/../../../../node_modules/ox/_esm/core/internal/abiParameters.js","webpack://react-example/../../../../node_modules/ox/_esm/core/internal/cursor.js","webpack://react-example/../../../../node_modules/ox/_esm/core/AbiParameters.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/parseAbiParameters.js","webpack://react-example/../../../../node_modules/ox/_esm/core/AbiConstructor.js","webpack://react-example/../../../../node_modules/ox/_esm/core/AbiFunction.js","webpack://react-example/../../../../node_modules/ox/_esm/erc6492/SignatureErc6492.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Signature.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Authorization.js","webpack://react-example/../../../../node_modules/ox/_esm/erc8010/SignatureErc8010.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/verifyHash.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/authorization/verifyAuthorization.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/siwe/parseSiweMessage.js","webpack://react-example/../../../../node_modules/viem/_esm/clients/decorators/public.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/createBlockFilter.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getBalance.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getBlobBaseFee.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getBlockTransactionCount.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/ens/getEnsAddress.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/ens/getEnsAvatar.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/ens/avatar/parseAvatarRecord.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/ens/getEnsName.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/ens/getEnsResolver.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getFeeHistory.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/formatters/feeHistory.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getFilterLogs.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getProof.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/formatters/proof.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getStorageAt.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getTransactionConfirmations.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/multicall.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/simulateCalls.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/verifyMessage.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/siwe/verifySiweMessage.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/siwe/validateSiweMessage.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/verifyTypedData.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/watchBlocks.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/watchEvent.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/watchPendingTransactions.js","webpack://react-example/../../../../node_modules/viem/_esm/clients/createPublicClient.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/api.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/runtimeFlagsPatch.js","webpack://react-example/../../../../node_modules/viem/_esm/constants/abis.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/either.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/logSpan.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/chain.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/encoding/fromHex.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/block.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/transport.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/rpc/id.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/promise/withDedupe.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/buildRequest.js","webpack://react-example/../../../../node_modules/viem/_esm/clients/transports/http.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/rpc/http.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/promise/withTimeout.js","webpack://react-example/../../../../node_modules/viem/_esm/clients/transports/createTransport.js","webpack://react-example/../../../../node_modules/public-encrypt/withPublic.js","webpack://react-example/../../../../node_modules/es-object-atoms/index.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Function.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/decodeEventLog.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/opCodes/cause.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/cause.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/sendCalls.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/getCallsStatus.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/prepareAuthorization.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/calls.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/waitForCallsStatus.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/sendTransactionSync.js","webpack://react-example/../../../../node_modules/viem/_esm/clients/decorators/wallet.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/addChain.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/deployContract.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/getAddresses.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/getCapabilities.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/getPermissions.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/requestAddresses.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/requestPermissions.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/sendCallsSync.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/showCallsStatus.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/signAuthorization.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/signMessage.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/signTransaction.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/signTypedData.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/switchChain.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/watchAsset.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/writeContractSync.js","webpack://react-example/../../../../node_modules/viem/_esm/clients/createWalletClient.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/unit/formatGwei.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/version.js","webpack://react-example/../../../../node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/rpc.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js","webpack://react-example/../../../../node_modules/readable-stream/lib/_stream_readable.js","webpack://react-example/../../../../node_modules/readable-stream/errors-browser.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/stateOverride.js","webpack://react-example/../../../../node_modules/browserify-aes/modes/cfb.js","webpack://react-example/../../../../node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://react-example/../../../../node_modules/effect/dist/esm/MutableRef.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/node.js","webpack://react-example/../../../../node_modules/function-bind/index.js","webpack://react-example/../../../../node_modules/sha.js/sha224.js","webpack://react-example/../../../../node_modules/sha3/sponge/permute/rho-pi/rho-offsets/index.js","webpack://react-example/../../../../node_modules/effect/dist/esm/LogLevel.js","webpack://react-example/../../../../node_modules/secp256k1/lib/elliptic.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/formatters/log.js","webpack://react-example/../../../../node_modules/viem/_esm/accounts/utils/publicKeyToAddress.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getTransactionCount.js","webpack://react-example/../../../../node_modules/math-intrinsics/isNaN.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/schema.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/option.js","webpack://react-example/../../../../node_modules/dunder-proto/get.js","webpack://react-example/../../../../node_modules/call-bind-apply-helpers/applyBind.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/data/slice.js","webpack://react-example/../../../../node_modules/math-intrinsics/max.js","webpack://react-example/../../../../node_modules/sha.js/sha512.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getContractEvents.js","webpack://react-example/../../../../node_modules/math-intrinsics/pow.js","webpack://react-example/../../../../node_modules/ieee754/index.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/errors.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/authorization/recoverAuthorizationAddress.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getFilterChanges.js","webpack://react-example/../../../../node_modules/readable-stream/lib/_stream_writable.js","webpack://react-example/../../../../node_modules/react-dom/cjs/react-dom.production.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/errors/getContractError.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Pipeable.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/sha.js","webpack://react-example/../../../../node_modules/browserify-aes/modes/index.js","webpack://react-example/../../../../node_modules/secp256k1/lib/index.js","webpack://react-example/../../../../node_modules/pbkdf2/lib/precondition.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/signature/recoverPublicKey.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/signature/recoverAddress.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Duration.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/address/getAddress.js","webpack://react-example/../../../../node_modules/call-bind-apply-helpers/functionApply.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/clock.js","webpack://react-example/../../../../node_modules/base64-js/index.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/differ.js","webpack://react-example/../../../../node_modules/minimalistic-crypto-utils/lib/utils.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/abi.js","webpack://react-example/../../../../node_modules/to-buffer/index.js","webpack://react-example/../../../../node_modules/react-dom/index.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/sendRawTransaction.js","webpack://react-example/../../../../node_modules/browserify-aes/incr32.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/lru.js","webpack://react-example/../../../../node_modules/set-function-length/index.js","webpack://react-example/../../../../node_modules/buffer-xor/index.js","webpack://react-example/../../../../node_modules/parse-asn1/asn1.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/runtime/signatures.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/differ/hashSetPatch.js","webpack://react-example/../../../../node_modules/safe-buffer/index.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/ec/signature.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Equal.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/request.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/decodeErrorResult.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/base/node.js","webpack://react-example/../../../../node_modules/browserify-aes/modes/cfb8.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/opCodes/deferred.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Ref.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/watchContractEvent.js","webpack://react-example/../../../../node_modules/buffer/index.js","webpack://react-example/../../../../node_modules/gopd/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/hash/toSignatureHash.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/hash/hashSignature.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/hash/normalizeSignature.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/hash/toSignature.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/getChainId.js","webpack://react-example/../../../../node_modules/viem/_esm/accounts/utils/parseAccount.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/bn.js/lib/bn.js","webpack://react-example/../../../../node_modules/browserify-aes/authCipher.js","webpack://react-example/../../../../node_modules/is-callable/index.js","webpack://react-example/../../../../node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://react-example/../../../../node_modules/effect/dist/esm/HashSet.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/encoding/toHex.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/base/reporter.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Cause.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/formatAbiItem.js","webpack://react-example/../../../../node_modules/is-typed-array/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/getAbiItem.js","webpack://react-example/../../../../node_modules/pbkdf2/lib/sync-browser.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/readContract.js","webpack://react-example/../../../../node_modules/math-intrinsics/round.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/formatters/transactionReceipt.js","webpack://react-example/../../../../node_modules/effect/dist/esm/RegExp.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/sha/1.js","webpack://react-example/../../../../node_modules/react-dom/cjs/react-dom-client.production.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/watchBlockNumber.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/errors/getNodeError.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/formatters/transactionRequest.js","webpack://react-example/../../../../node_modules/viem/_esm/clients/createClient.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/curve/index.js","webpack://react-example/../../../../node_modules/sha.js/sha.js","webpack://react-example/../../../../node_modules/effect/dist/esm/FiberId.js","webpack://react-example/../../../../node_modules/browserify-aes/modes/cfb1.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/waitForTransactionReceipt.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/log.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/encodeEventTopics.js","webpack://react-example/../../../../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack://react-example/../../../../node_modules/browserify-cipher/browser.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/opCodes/configError.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/configError.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/configProvider/pathPatch.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/configProvider.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/opCodes/config.js","webpack://react-example/../../../../node_modules/call-bound/index.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/common.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/blob.js","webpack://react-example/../../../../node_modules/sha3/sponge/permute/iota/round-constants/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/encoding/toBytes.js","webpack://react-example/../../../../node_modules/sha3/sponge/permute/rho-pi/index.js","webpack://react-example/../../../../node_modules/evp_bytestokey/index.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/hmac.js","webpack://react-example/../../../../node_modules/cipher-base/index.js","webpack://react-example/../../../../node_modules/des.js/lib/des/utils.js","webpack://react-example/../../../../node_modules/viem/_esm/constants/address.js","webpack://react-example/../../../../node_modules/create-ecdh/browser.js","webpack://react-example/../../../../node_modules/call-bind-apply-helpers/reflectApply.js","webpack://react-example/../../../../node_modules/browserify-aes/aes.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/encoding/toRlp.js","webpack://react-example/../../../../node_modules/pbkdf2/lib/async.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Predicate.js","webpack://react-example/../../../../node_modules/des.js/lib/des/cbc.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/typedData.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/typedData.js","webpack://react-example/../../../../node_modules/get-proto/index.js","webpack://react-example/../../../../node_modules/des.js/lib/des/des.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/address.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/chain/assertCurrentChain.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/data/isHex.js","webpack://react-example/../../../../node_modules/effect/dist/esm/List.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Either.js","webpack://react-example/../../../../node_modules/effect/dist/esm/RuntimeFlagsPatch.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/estimateContractGas.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/transaction.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/data/size.js","webpack://react-example/../../../../node_modules/call-bind-apply-helpers/index.js","webpack://react-example/../../../../node_modules/browserify-aes/browser.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/generated/abis/lightning.js","webpack://react-example/../../../../node_modules/gopd/gOPD.js","webpack://react-example/../../../../node_modules/effect/dist/esm/FiberRefs.js","webpack://react-example/../../../../node_modules/es-errors/eval.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/filters/createFilterRequestScope.js","webpack://react-example/../../../../node_modules/browserify-aes/ghash.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/prepareEncodeFunctionData.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/encodeFunctionData.js","webpack://react-example/../../../../node_modules/math-intrinsics/sign.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/singleShotGen.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/core.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack://react-example/../../../../node_modules/ox/_esm/core/Withdrawal.js","webpack://react-example/../../../../node_modules/ox/_esm/core/BlockOverrides.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js","webpack://react-example/../../../../node_modules/public-encrypt/browser.js","webpack://react-example/../../../../node_modules/des.js/lib/des.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/formatAbiItemWithArgs.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/contract.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/metric/label.js","webpack://react-example/../../../../node_modules/effect/dist/esm/HashMap.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/runtimeFlags.js","webpack://react-example/../../../../node_modules/function-bind/implementation.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Equivalence.js","webpack://react-example/../../../../node_modules/get-proto/Object.getPrototypeOf.js","webpack://react-example/../../../../node_modules/browserify-sign/algos.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/data/pad.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/wallet/prepareTransactionRequest.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/regex.js","webpack://react-example/../../../../node_modules/abitype/dist/esm/human-readable/errors/abiItem.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/utils.js","webpack://react-example/../../../../node_modules/readable-stream/lib/_stream_duplex.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/estimateGas.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/estimateGas.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/errors/getEstimateGasError.js","webpack://react-example/../../../../node_modules/scheduler/cjs/scheduler.production.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/data.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Effectable.js","webpack://react-example/../../../../node_modules/viem/_esm/errors/stateOverride.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/random.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/encodeErrorResult.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/encodeFunctionResult.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/ens/localBatchGatewayRequest.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/abi/decodeFunctionData.js","webpack://react-example/../../../../node_modules/@noble/hashes/esm/sha256.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/blob/commitmentToVersionedHash.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/hash/sha256.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/blob/commitmentsToVersionedHashes.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Utils.js","webpack://react-example/../../../../node_modules/viem/_esm/constants/kzg.js","webpack://react-example/../../../../node_modules/get-intrinsic/index.js","webpack://react-example/../../../../node_modules/viem/_esm/actions/public/createContractEventFilter.js","webpack://react-example/../../../../node_modules/elliptic/lib/elliptic/curve/mont.js","webpack://react-example/../../../../node_modules/string_decoder/lib/string_decoder.js","webpack://react-example/../../../../node_modules/sha.js/hash.js","webpack://react-example/../../../../node_modules/hash.js/lib/hash/utils.js","webpack://react-example/../../../../node_modules/available-typed-arrays/index.js","webpack://react-example/../../../../node_modules/scheduler/index.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/address/isAddressEqual.js","webpack://react-example/../../../../node_modules/viem/_esm/constants/solidity.js","webpack://react-example/../../../../node_modules/viem/_esm/utils/formatters/extract.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/generated/abis/verifier.js","webpack://react-example/../../../../node_modules/pbkdf2/lib/to-buffer.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Boolean.js","webpack://react-example/../../../../node_modules/sha3/sponge/permute/rho-pi/pi-shuffles/index.js","webpack://react-example/../../../../node_modules/effect/dist/esm/BigDecimal.js","webpack://react-example/../../../../node_modules/effect/dist/esm/BigInt.js","webpack://react-example/../../../../node_modules/effect/dist/esm/internal/dateTime.js","webpack://react-example/../../../../node_modules/effect/dist/esm/String.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Struct.js","webpack://react-example/../../../../node_modules/effect/dist/esm/Schema.js","webpack://react-example/../../../../node_modules/asn1.js/lib/asn1/encoders/der.js","webpack://react-example/../../../../node_modules/ripemd160/node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js","webpack://react-example/../../../../node_modules/viem/_esm/op-stack/formatters.js","webpack://react-example/../../../../node_modules/viem/_esm/op-stack/chainConfig.js","webpack://react-example/../../../../node_modules/viem/_esm/op-stack/contracts.js","webpack://react-example/../../../../node_modules/viem/_esm/op-stack/serializers.js","webpack://react-example/../../../../node_modules/viem/_esm/chains/definitions/baseSepolia.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/is-message.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/descriptors.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/wire/varint.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/reflect/scalar.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/reflect/unsafe.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/reflect/guard.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/wkt/wrappers.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/create.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/encryption/encryption.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/generated/abis/lightning-preview.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/wire/base64-encoding.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/reflect/names.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/codegenv2/restore-json-names.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/reflect/nested-types.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/registry.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/wire/text-format.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/codegenv2/boot.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/codegenv2/message.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/reflect/error.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect-check.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/from-binary.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/codegenv2/file.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/codegenv2/service.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/generated/es/inco/kms/lite/v1/types_pb.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/to-binary.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/generated/es/inco/covalidator/compute/v1/types_pb.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/lite/ecies.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/reencryption/eip712.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/attesteddecrypt/types.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/attesteddecrypt/attested-decrypt.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/attestedcompute/types.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/attestedcompute/attested-compute.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/advancedacl/session-key.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/generated/lightning.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/generated/local-node.js","webpack://react-example/../../../../node_modules/viem/_esm/chains/definitions/sepolia.js","webpack://react-example/../../../../node_modules/viem/_esm/chains/definitions/monadTestnet.js","webpack://react-example/../../../../node_modules/viem/_esm/chains/definitions/plasmaTestnet.js","webpack://react-example/../../../../node_modules/viem/_esm/chains/definitions/worldchainSepolia.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/chain.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/viem.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/code.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/code-string.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/connect-error.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol/async-iterable.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/promise-client.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/any-client.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/any_pb.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/wkt/any.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/struct_pb.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/extensions.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/from-json.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/context-values.js","webpack://react-example/../../../../node_modules/@bufbuild/protobuf/dist/esm/to-json.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol/serialization.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/interceptor.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol/signals.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol/normalize.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol/run-call.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol/create-method-url.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol/envelope.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol/limit-io.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/headers.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/content-type.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/request-header.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/version.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/validate-response.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/http-status.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/error-json.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/trailer-mux.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/end-stream.js","webpack://react-example/../../../../node_modules/@connectrpc/connect-web/dist/esm/connect-transport.js","webpack://react-example/../../../../node_modules/@connectrpc/connect-web/dist/esm/assert-fetch-api.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol-connect/get-request.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/http-headers.js","webpack://react-example/../../../../node_modules/@connectrpc/connect/dist/esm/protocol/compression.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/kms/client.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/kms/quorumClient.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/retry.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/kms/thresholdPromises.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/local/local-node.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/lite/lightning.js","webpack://react-example/../../../../node_modules/@inco/js/dist/esm/lite/hadu.js","webpack://react-example/../../../../node_modules/create-hmac/legacy.js"],"sourcesContent":["'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","var constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n var res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n var value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","import { InvalidBytesBooleanError } from '../../errors/encoding.js';\nimport { trim } from '../data/trim.js';\nimport { assertSize, hexToBigInt, hexToNumber, } from './fromHex.js';\nimport { bytesToHex } from './toHex.js';\n/**\n * Decodes a byte array into a UTF-8 string, hex value, number, bigint or boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes\n * - Example: https://viem.sh/docs/utilities/fromBytes#usage\n *\n * @param bytes Byte array to decode.\n * @param toOrOpts Type to convert to or options.\n * @returns Decoded value.\n *\n * @example\n * import { fromBytes } from 'viem'\n * const data = fromBytes(new Uint8Array([1, 164]), 'number')\n * // 420\n *\n * @example\n * import { fromBytes } from 'viem'\n * const data = fromBytes(\n * new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\n * 'string'\n * )\n * // 'Hello world'\n */\nexport function fromBytes(bytes, toOrOpts) {\n const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts;\n const to = opts.to;\n if (to === 'number')\n return bytesToNumber(bytes, opts);\n if (to === 'bigint')\n return bytesToBigInt(bytes, opts);\n if (to === 'boolean')\n return bytesToBool(bytes, opts);\n if (to === 'string')\n return bytesToString(bytes, opts);\n return bytesToHex(bytes, opts);\n}\n/**\n * Decodes a byte array into a bigint.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes#bytestobigint\n *\n * @param bytes Byte array to decode.\n * @param opts Options.\n * @returns BigInt value.\n *\n * @example\n * import { bytesToBigInt } from 'viem'\n * const data = bytesToBigInt(new Uint8Array([1, 164]))\n * // 420n\n */\nexport function bytesToBigInt(bytes, opts = {}) {\n if (typeof opts.size !== 'undefined')\n assertSize(bytes, { size: opts.size });\n const hex = bytesToHex(bytes, opts);\n return hexToBigInt(hex, opts);\n}\n/**\n * Decodes a byte array into a boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes#bytestobool\n *\n * @param bytes Byte array to decode.\n * @param opts Options.\n * @returns Boolean value.\n *\n * @example\n * import { bytesToBool } from 'viem'\n * const data = bytesToBool(new Uint8Array([1]))\n * // true\n */\nexport function bytesToBool(bytes_, opts = {}) {\n let bytes = bytes_;\n if (typeof opts.size !== 'undefined') {\n assertSize(bytes, { size: opts.size });\n bytes = trim(bytes);\n }\n if (bytes.length > 1 || bytes[0] > 1)\n throw new InvalidBytesBooleanError(bytes);\n return Boolean(bytes[0]);\n}\n/**\n * Decodes a byte array into a number.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes#bytestonumber\n *\n * @param bytes Byte array to decode.\n * @param opts Options.\n * @returns Number value.\n *\n * @example\n * import { bytesToNumber } from 'viem'\n * const data = bytesToNumber(new Uint8Array([1, 164]))\n * // 420\n */\nexport function bytesToNumber(bytes, opts = {}) {\n if (typeof opts.size !== 'undefined')\n assertSize(bytes, { size: opts.size });\n const hex = bytesToHex(bytes, opts);\n return hexToNumber(hex, opts);\n}\n/**\n * Decodes a byte array into a UTF-8 string.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes#bytestostring\n *\n * @param bytes Byte array to decode.\n * @param opts Options.\n * @returns String value.\n *\n * @example\n * import { bytesToString } from 'viem'\n * const data = bytesToString(new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))\n * // 'Hello world'\n */\nexport function bytesToString(bytes_, opts = {}) {\n let bytes = bytes_;\n if (typeof opts.size !== 'undefined') {\n assertSize(bytes, { size: opts.size });\n bytes = trim(bytes, { dir: 'right' });\n }\n return new TextDecoder().decode(bytes);\n}\n//# sourceMappingURL=fromBytes.js.map","import { AbiDecodingDataSizeTooSmallError, AbiDecodingZeroDataError, InvalidAbiDecodingTypeError, } from '../../errors/abi.js';\nimport { checksumAddress, } from '../address/getAddress.js';\nimport { createCursor, } from '../cursor.js';\nimport { size } from '../data/size.js';\nimport { sliceBytes } from '../data/slice.js';\nimport { trim } from '../data/trim.js';\nimport { bytesToBigInt, bytesToBool, bytesToNumber, bytesToString, } from '../encoding/fromBytes.js';\nimport { hexToBytes } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\nimport { getArrayComponents } from './encodeAbiParameters.js';\nexport function decodeAbiParameters(params, data) {\n const bytes = typeof data === 'string' ? hexToBytes(data) : data;\n const cursor = createCursor(bytes);\n if (size(bytes) === 0 && params.length > 0)\n throw new AbiDecodingZeroDataError();\n if (size(data) && size(data) < 32)\n throw new AbiDecodingDataSizeTooSmallError({\n data: typeof data === 'string' ? data : bytesToHex(data),\n params: params,\n size: size(data),\n });\n let consumed = 0;\n const values = [];\n for (let i = 0; i < params.length; ++i) {\n const param = params[i];\n cursor.setPosition(consumed);\n const [data, consumed_] = decodeParameter(cursor, param, {\n staticPosition: 0,\n });\n consumed += consumed_;\n values.push(data);\n }\n return values;\n}\nfunction decodeParameter(cursor, param, { staticPosition }) {\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents) {\n const [length, type] = arrayComponents;\n return decodeArray(cursor, { ...param, type }, { length, staticPosition });\n }\n if (param.type === 'tuple')\n return decodeTuple(cursor, param, { staticPosition });\n if (param.type === 'address')\n return decodeAddress(cursor);\n if (param.type === 'bool')\n return decodeBool(cursor);\n if (param.type.startsWith('bytes'))\n return decodeBytes(cursor, param, { staticPosition });\n if (param.type.startsWith('uint') || param.type.startsWith('int'))\n return decodeNumber(cursor, param);\n if (param.type === 'string')\n return decodeString(cursor, { staticPosition });\n throw new InvalidAbiDecodingTypeError(param.type, {\n docsPath: '/docs/contract/decodeAbiParameters',\n });\n}\n////////////////////////////////////////////////////////////////////\n// Type Decoders\nconst sizeOfLength = 32;\nconst sizeOfOffset = 32;\nfunction decodeAddress(cursor) {\n const value = cursor.readBytes(32);\n return [checksumAddress(bytesToHex(sliceBytes(value, -20))), 32];\n}\nfunction decodeArray(cursor, param, { length, staticPosition }) {\n // If the length of the array is not known in advance (dynamic array),\n // this means we will need to wonder off to the pointer and decode.\n if (!length) {\n // Dealing with a dynamic type, so get the offset of the array data.\n const offset = bytesToNumber(cursor.readBytes(sizeOfOffset));\n // Start is the static position of current slot + offset.\n const start = staticPosition + offset;\n const startOfData = start + sizeOfLength;\n // Get the length of the array from the offset.\n cursor.setPosition(start);\n const length = bytesToNumber(cursor.readBytes(sizeOfLength));\n // Check if the array has any dynamic children.\n const dynamicChild = hasDynamicChild(param);\n let consumed = 0;\n const value = [];\n for (let i = 0; i < length; ++i) {\n // If any of the children is dynamic, then all elements will be offset pointer, thus size of one slot (32 bytes).\n // Otherwise, elements will be the size of their encoding (consumed bytes).\n cursor.setPosition(startOfData + (dynamicChild ? i * 32 : consumed));\n const [data, consumed_] = decodeParameter(cursor, param, {\n staticPosition: startOfData,\n });\n consumed += consumed_;\n value.push(data);\n }\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n }\n // If the length of the array is known in advance,\n // and the length of an element deeply nested in the array is not known,\n // we need to decode the offset of the array data.\n if (hasDynamicChild(param)) {\n // Dealing with dynamic types, so get the offset of the array data.\n const offset = bytesToNumber(cursor.readBytes(sizeOfOffset));\n // Start is the static position of current slot + offset.\n const start = staticPosition + offset;\n const value = [];\n for (let i = 0; i < length; ++i) {\n // Move cursor along to the next slot (next offset pointer).\n cursor.setPosition(start + i * 32);\n const [data] = decodeParameter(cursor, param, {\n staticPosition: start,\n });\n value.push(data);\n }\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n }\n // If the length of the array is known in advance and the array is deeply static,\n // then we can just decode each element in sequence.\n let consumed = 0;\n const value = [];\n for (let i = 0; i < length; ++i) {\n const [data, consumed_] = decodeParameter(cursor, param, {\n staticPosition: staticPosition + consumed,\n });\n consumed += consumed_;\n value.push(data);\n }\n return [value, consumed];\n}\nfunction decodeBool(cursor) {\n return [bytesToBool(cursor.readBytes(32), { size: 32 }), 32];\n}\nfunction decodeBytes(cursor, param, { staticPosition }) {\n const [_, size] = param.type.split('bytes');\n if (!size) {\n // Dealing with dynamic types, so get the offset of the bytes data.\n const offset = bytesToNumber(cursor.readBytes(32));\n // Set position of the cursor to start of bytes data.\n cursor.setPosition(staticPosition + offset);\n const length = bytesToNumber(cursor.readBytes(32));\n // If there is no length, we have zero data.\n if (length === 0) {\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return ['0x', 32];\n }\n const data = cursor.readBytes(length);\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [bytesToHex(data), 32];\n }\n const value = bytesToHex(cursor.readBytes(Number.parseInt(size, 10), 32));\n return [value, 32];\n}\nfunction decodeNumber(cursor, param) {\n const signed = param.type.startsWith('int');\n const size = Number.parseInt(param.type.split('int')[1] || '256', 10);\n const value = cursor.readBytes(32);\n return [\n size > 48\n ? bytesToBigInt(value, { signed })\n : bytesToNumber(value, { signed }),\n 32,\n ];\n}\nfunction decodeTuple(cursor, param, { staticPosition }) {\n // Tuples can have unnamed components (i.e. they are arrays), so we must\n // determine whether the tuple is named or unnamed. In the case of a named\n // tuple, the value will be an object where each property is the name of the\n // component. In the case of an unnamed tuple, the value will be an array.\n const hasUnnamedChild = param.components.length === 0 || param.components.some(({ name }) => !name);\n // Initialize the value to an object or an array, depending on whether the\n // tuple is named or unnamed.\n const value = hasUnnamedChild ? [] : {};\n let consumed = 0;\n // If the tuple has a dynamic child, we must first decode the offset to the\n // tuple data.\n if (hasDynamicChild(param)) {\n // Dealing with dynamic types, so get the offset of the tuple data.\n const offset = bytesToNumber(cursor.readBytes(sizeOfOffset));\n // Start is the static position of referencing slot + offset.\n const start = staticPosition + offset;\n for (let i = 0; i < param.components.length; ++i) {\n const component = param.components[i];\n cursor.setPosition(start + consumed);\n const [data, consumed_] = decodeParameter(cursor, component, {\n staticPosition: start,\n });\n consumed += consumed_;\n value[hasUnnamedChild ? i : component?.name] = data;\n }\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n }\n // If the tuple has static children, we can just decode each component\n // in sequence.\n for (let i = 0; i < param.components.length; ++i) {\n const component = param.components[i];\n const [data, consumed_] = decodeParameter(cursor, component, {\n staticPosition,\n });\n value[hasUnnamedChild ? i : component?.name] = data;\n consumed += consumed_;\n }\n return [value, consumed];\n}\nfunction decodeString(cursor, { staticPosition }) {\n // Get offset to start of string data.\n const offset = bytesToNumber(cursor.readBytes(32));\n // Start is the static position of current slot + offset.\n const start = staticPosition + offset;\n cursor.setPosition(start);\n const length = bytesToNumber(cursor.readBytes(32));\n // If there is no length, we have zero data (empty string).\n if (length === 0) {\n cursor.setPosition(staticPosition + 32);\n return ['', 32];\n }\n const data = cursor.readBytes(length, 32);\n const value = bytesToString(trim(data));\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n}\nfunction hasDynamicChild(param) {\n const { type } = param;\n if (type === 'string')\n return true;\n if (type === 'bytes')\n return true;\n if (type.endsWith('[]'))\n return true;\n if (type === 'tuple')\n return param.components?.some(hasDynamicChild);\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents &&\n hasDynamicChild({ ...param, type: arrayComponents[1] }))\n return true;\n return false;\n}\n//# sourceMappingURL=decodeAbiParameters.js.map","import { LruMap } from '../lru.js';\nimport { checksumAddress } from './getAddress.js';\nconst addressRegex = /^0x[a-fA-F0-9]{40}$/;\n/** @internal */\nexport const isAddressCache = /*#__PURE__*/ new LruMap(8192);\nexport function isAddress(address, options) {\n const { strict = true } = options ?? {};\n const cacheKey = `${address}.${strict}`;\n if (isAddressCache.has(cacheKey))\n return isAddressCache.get(cacheKey);\n const result = (() => {\n if (!addressRegex.test(address))\n return false;\n if (address.toLowerCase() === address)\n return true;\n if (strict)\n return checksumAddress(address) === address;\n return true;\n })();\n isAddressCache.set(cacheKey, result);\n return result;\n}\n//# sourceMappingURL=isAddress.js.map","module.exports = require('events').EventEmitter;\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","export const stringify = (value, replacer, space) => JSON.stringify(value, (key, value_) => {\n const value = typeof value_ === 'bigint' ? value_.toString() : value_;\n return typeof replacer === 'function' ? replacer(key, value) : value;\n}, space);\n//# sourceMappingURL=stringify.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar toBuffer = require('./to-buffer');\nvar Transform = require('readable-stream').Transform;\nvar inherits = require('inherits');\n\nfunction HashBase(blockSize) {\n\tTransform.call(this);\n\n\tthis._block = Buffer.allocUnsafe(blockSize);\n\tthis._blockSize = blockSize;\n\tthis._blockOffset = 0;\n\tthis._length = [0, 0, 0, 0];\n\n\tthis._finalized = false;\n}\n\ninherits(HashBase, Transform);\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n\tvar error = null;\n\ttry {\n\t\tthis.update(chunk, encoding);\n\t} catch (err) {\n\t\terror = err;\n\t}\n\n\tcallback(error);\n};\n\nHashBase.prototype._flush = function (callback) {\n\tvar error = null;\n\ttry {\n\t\tthis.push(this.digest());\n\t} catch (err) {\n\t\terror = err;\n\t}\n\n\tcallback(error);\n};\n\nHashBase.prototype.update = function (data, encoding) {\n\tif (this._finalized) {\n\t\tthrow new Error('Digest already called');\n\t}\n\n\tvar dataBuffer = toBuffer(data, encoding); // asserts correct input type\n\n\t// consume data\n\tvar block = this._block;\n\tvar offset = 0;\n\twhile (this._blockOffset + dataBuffer.length - offset >= this._blockSize) {\n\t\tfor (var i = this._blockOffset; i < this._blockSize;) {\n\t\t\tblock[i] = dataBuffer[offset];\n\t\t\ti += 1;\n\t\t\toffset += 1;\n\t\t}\n\t\tthis._update();\n\t\tthis._blockOffset = 0;\n\t}\n\twhile (offset < dataBuffer.length) {\n\t\tblock[this._blockOffset] = dataBuffer[offset];\n\t\tthis._blockOffset += 1;\n\t\toffset += 1;\n\t}\n\n\t// update length\n\tfor (var j = 0, carry = dataBuffer.length * 8; carry > 0; ++j) {\n\t\tthis._length[j] += carry;\n\t\tcarry = (this._length[j] / 0x0100000000) | 0;\n\t\tif (carry > 0) {\n\t\t\tthis._length[j] -= 0x0100000000 * carry;\n\t\t}\n\t}\n\n\treturn this;\n};\n\nHashBase.prototype._update = function () {\n\tthrow new Error('_update is not implemented');\n};\n\nHashBase.prototype.digest = function (encoding) {\n\tif (this._finalized) {\n\t\tthrow new Error('Digest already called');\n\t}\n\tthis._finalized = true;\n\n\tvar digest = this._digest();\n\tif (encoding !== undefined) {\n\t\tdigest = digest.toString(encoding);\n\t}\n\n\t// reset state\n\tthis._block.fill(0);\n\tthis._blockOffset = 0;\n\tfor (var i = 0; i < 4; ++i) {\n\t\tthis._length[i] = 0;\n\t}\n\n\treturn digest;\n};\n\nHashBase.prototype._digest = function () {\n\tthrow new Error('_digest is not implemented');\n};\n\nmodule.exports = HashBase;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","'use strict';\n\nvar $TypeError = require('es-errors/type');\n\nvar callBound = require('call-bound');\n\n/** @type {undefined | ((thisArg: import('.').TypedArray) => Buffer)} */\nvar $typedArrayBuffer = callBound('TypedArray.prototype.buffer', true);\n\nvar isTypedArray = require('is-typed-array');\n\n/** @type {import('.')} */\n// node <= 0.10, < 0.11.4 has a nonconfigurable own property instead of a prototype getter\nmodule.exports = $typedArrayBuffer || function typedArrayBuffer(x) {\n\tif (!isTypedArray(x)) {\n\t\tthrow new $TypeError('Not a Typed Array');\n\t}\n\treturn x.buffer;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","export const version = '2.43.5';\n//# sourceMappingURL=version.js.map","import { version } from './version.js';\nlet errorConfig = {\n getDocsUrl: ({ docsBaseUrl, docsPath = '', docsSlug, }) => docsPath\n ? `${docsBaseUrl ?? 'https://viem.sh'}${docsPath}${docsSlug ? `#${docsSlug}` : ''}`\n : undefined,\n version: `viem@${version}`,\n};\nexport function setErrorConfig(config) {\n errorConfig = config;\n}\nexport class BaseError extends Error {\n constructor(shortMessage, args = {}) {\n const details = (() => {\n if (args.cause instanceof BaseError)\n return args.cause.details;\n if (args.cause?.message)\n return args.cause.message;\n return args.details;\n })();\n const docsPath = (() => {\n if (args.cause instanceof BaseError)\n return args.cause.docsPath || args.docsPath;\n return args.docsPath;\n })();\n const docsUrl = errorConfig.getDocsUrl?.({ ...args, docsPath });\n const message = [\n shortMessage || 'An error occurred.',\n '',\n ...(args.metaMessages ? [...args.metaMessages, ''] : []),\n ...(docsUrl ? [`Docs: ${docsUrl}`] : []),\n ...(details ? [`Details: ${details}`] : []),\n ...(errorConfig.version ? [`Version: ${errorConfig.version}`] : []),\n ].join('\\n');\n super(message, args.cause ? { cause: args.cause } : undefined);\n Object.defineProperty(this, \"details\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"docsPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"metaMessages\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"shortMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'BaseError'\n });\n this.details = details;\n this.docsPath = docsPath;\n this.metaMessages = args.metaMessages;\n this.name = args.name ?? this.name;\n this.shortMessage = shortMessage;\n this.version = version;\n }\n walk(fn) {\n return walk(this, fn);\n }\n}\nfunction walk(err, fn) {\n if (fn?.(err))\n return err;\n if (err &&\n typeof err === 'object' &&\n 'cause' in err &&\n err.cause !== undefined)\n return walk(err.cause, fn);\n return fn ? null : err;\n}\n//# sourceMappingURL=base.js.map","/** @internal */\nexport function withResolvers() {\n let resolve = () => undefined;\n let reject = () => undefined;\n const promise = new Promise((resolve_, reject_) => {\n resolve = resolve_;\n reject = reject_;\n });\n return { promise, resolve, reject };\n}\n//# sourceMappingURL=withResolvers.js.map","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar toBuffer = require('to-buffer');\n\nvar useUint8Array = typeof Uint8Array !== 'undefined';\nvar useArrayBuffer = useUint8Array && typeof ArrayBuffer !== 'undefined';\nvar isView = useArrayBuffer && ArrayBuffer.isView;\n\nmodule.exports = function (thing, encoding) {\n\tif (\n\t\ttypeof thing === 'string'\n || Buffer.isBuffer(thing)\n || (useUint8Array && thing instanceof Uint8Array)\n || (isView && isView(thing))\n\t) {\n\t\treturn toBuffer(thing, encoding);\n\t}\n\tthrow new TypeError('The \"data\" argument must be a string, a Buffer, a Uint8Array, or a DataView');\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\n/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [\n\t0x428A2F98,\n\t0x71374491,\n\t0xB5C0FBCF,\n\t0xE9B5DBA5,\n\t0x3956C25B,\n\t0x59F111F1,\n\t0x923F82A4,\n\t0xAB1C5ED5,\n\t0xD807AA98,\n\t0x12835B01,\n\t0x243185BE,\n\t0x550C7DC3,\n\t0x72BE5D74,\n\t0x80DEB1FE,\n\t0x9BDC06A7,\n\t0xC19BF174,\n\t0xE49B69C1,\n\t0xEFBE4786,\n\t0x0FC19DC6,\n\t0x240CA1CC,\n\t0x2DE92C6F,\n\t0x4A7484AA,\n\t0x5CB0A9DC,\n\t0x76F988DA,\n\t0x983E5152,\n\t0xA831C66D,\n\t0xB00327C8,\n\t0xBF597FC7,\n\t0xC6E00BF3,\n\t0xD5A79147,\n\t0x06CA6351,\n\t0x14292967,\n\t0x27B70A85,\n\t0x2E1B2138,\n\t0x4D2C6DFC,\n\t0x53380D13,\n\t0x650A7354,\n\t0x766A0ABB,\n\t0x81C2C92E,\n\t0x92722C85,\n\t0xA2BFE8A1,\n\t0xA81A664B,\n\t0xC24B8B70,\n\t0xC76C51A3,\n\t0xD192E819,\n\t0xD6990624,\n\t0xF40E3585,\n\t0x106AA070,\n\t0x19A4C116,\n\t0x1E376C08,\n\t0x2748774C,\n\t0x34B0BCB5,\n\t0x391C0CB3,\n\t0x4ED8AA4A,\n\t0x5B9CCA4F,\n\t0x682E6FF3,\n\t0x748F82EE,\n\t0x78A5636F,\n\t0x84C87814,\n\t0x8CC70208,\n\t0x90BEFFFA,\n\t0xA4506CEB,\n\t0xBEF9A3F7,\n\t0xC67178F2\n];\n\nvar W = new Array(64);\n\nfunction Sha256() {\n\tthis.init();\n\n\tthis._w = W; // new Array(64)\n\n\tHash.call(this, 64, 56);\n}\n\ninherits(Sha256, Hash);\n\nSha256.prototype.init = function () {\n\tthis._a = 0x6a09e667;\n\tthis._b = 0xbb67ae85;\n\tthis._c = 0x3c6ef372;\n\tthis._d = 0xa54ff53a;\n\tthis._e = 0x510e527f;\n\tthis._f = 0x9b05688c;\n\tthis._g = 0x1f83d9ab;\n\tthis._h = 0x5be0cd19;\n\n\treturn this;\n};\n\nfunction ch(x, y, z) {\n\treturn z ^ (x & (y ^ z));\n}\n\nfunction maj(x, y, z) {\n\treturn (x & y) | (z & (x | y));\n}\n\nfunction sigma0(x) {\n\treturn ((x >>> 2) | (x << 30)) ^ ((x >>> 13) | (x << 19)) ^ ((x >>> 22) | (x << 10));\n}\n\nfunction sigma1(x) {\n\treturn ((x >>> 6) | (x << 26)) ^ ((x >>> 11) | (x << 21)) ^ ((x >>> 25) | (x << 7));\n}\n\nfunction gamma0(x) {\n\treturn ((x >>> 7) | (x << 25)) ^ ((x >>> 18) | (x << 14)) ^ (x >>> 3);\n}\n\nfunction gamma1(x) {\n\treturn ((x >>> 17) | (x << 15)) ^ ((x >>> 19) | (x << 13)) ^ (x >>> 10);\n}\n\nSha256.prototype._update = function (M) {\n\tvar w = this._w;\n\n\tvar a = this._a | 0;\n\tvar b = this._b | 0;\n\tvar c = this._c | 0;\n\tvar d = this._d | 0;\n\tvar e = this._e | 0;\n\tvar f = this._f | 0;\n\tvar g = this._g | 0;\n\tvar h = this._h | 0;\n\n\tfor (var i = 0; i < 16; ++i) {\n\t\tw[i] = M.readInt32BE(i * 4);\n\t}\n\tfor (; i < 64; ++i) {\n\t\tw[i] = (gamma1(w[i - 2]) + w[i - 7] + gamma0(w[i - 15]) + w[i - 16]) | 0;\n\t}\n\n\tfor (var j = 0; j < 64; ++j) {\n\t\tvar T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + w[j]) | 0;\n\t\tvar T2 = (sigma0(a) + maj(a, b, c)) | 0;\n\n\t\th = g;\n\t\tg = f;\n\t\tf = e;\n\t\te = (d + T1) | 0;\n\t\td = c;\n\t\tc = b;\n\t\tb = a;\n\t\ta = (T1 + T2) | 0;\n\t}\n\n\tthis._a = (a + this._a) | 0;\n\tthis._b = (b + this._b) | 0;\n\tthis._c = (c + this._c) | 0;\n\tthis._d = (d + this._d) | 0;\n\tthis._e = (e + this._e) | 0;\n\tthis._f = (f + this._f) | 0;\n\tthis._g = (g + this._g) | 0;\n\tthis._h = (h + this._h) | 0;\n};\n\nSha256.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(32);\n\n\tH.writeInt32BE(this._a, 0);\n\tH.writeInt32BE(this._b, 4);\n\tH.writeInt32BE(this._c, 8);\n\tH.writeInt32BE(this._d, 12);\n\tH.writeInt32BE(this._e, 16);\n\tH.writeInt32BE(this._f, 20);\n\tH.writeInt32BE(this._g, 24);\n\tH.writeInt32BE(this._h, 28);\n\n\treturn H;\n};\n\nmodule.exports = Sha256;\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError, AccountTypeNotSupportedError, } from '../../errors/account.js';\nimport { BaseError } from '../../errors/base.js';\nimport { recoverAuthorizationAddress, } from '../../utils/authorization/recoverAuthorizationAddress.js';\nimport { assertCurrentChain, } from '../../utils/chain/assertCurrentChain.js';\nimport { getTransactionError, } from '../../utils/errors/getTransactionError.js';\nimport { extract } from '../../utils/formatters/extract.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { LruMap } from '../../utils/lru.js';\nimport { assertRequest, } from '../../utils/transaction/assertRequest.js';\nimport { getChainId } from '../public/getChainId.js';\nimport { defaultParameters, prepareTransactionRequest, } from './prepareTransactionRequest.js';\nimport { sendRawTransaction, } from './sendRawTransaction.js';\nconst supportsWalletNamespace = new LruMap(128);\n/**\n * Creates, signs, and sends a new transaction to the network.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendTransaction\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\n * - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\n *\n * @param client - Client to use\n * @param parameters - {@link SendTransactionParameters}\n * @returns The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendTransaction } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const hash = await sendTransaction(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 1000000000000000000n,\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { sendTransaction } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const hash = await sendTransaction(client, {\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 1000000000000000000n,\n * })\n */\nexport async function sendTransaction(client, parameters) {\n const { account: account_ = client.account, chain = client.chain, accessList, authorizationList, blobs, data, gas, gasPrice, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, nonce, type, value, ...rest } = parameters;\n if (typeof account_ === 'undefined')\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/sendTransaction',\n });\n const account = account_ ? parseAccount(account_) : null;\n try {\n assertRequest(parameters);\n const to = await (async () => {\n // If `to` exists on the parameters, use that.\n if (parameters.to)\n return parameters.to;\n // If `to` is null, we are sending a deployment transaction.\n if (parameters.to === null)\n return undefined;\n // If no `to` exists, and we are sending a EIP-7702 transaction, use the\n // address of the first authorization in the list.\n if (authorizationList && authorizationList.length > 0)\n return await recoverAuthorizationAddress({\n authorization: authorizationList[0],\n }).catch(() => {\n throw new BaseError('`to` is required. Could not infer from `authorizationList`.');\n });\n // Otherwise, we are sending a deployment transaction.\n return undefined;\n })();\n if (account?.type === 'json-rpc' || account === null) {\n let chainId;\n if (chain !== null) {\n chainId = await getAction(client, getChainId, 'getChainId')({});\n assertCurrentChain({\n currentChainId: chainId,\n chain,\n });\n }\n const chainFormat = client.chain?.formatters?.transactionRequest?.format;\n const format = chainFormat || formatTransactionRequest;\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n accessList,\n account,\n authorizationList,\n blobs,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n type,\n value,\n }, 'sendTransaction');\n const isWalletNamespaceSupported = supportsWalletNamespace.get(client.uid);\n const method = isWalletNamespaceSupported\n ? 'wallet_sendTransaction'\n : 'eth_sendTransaction';\n try {\n return await client.request({\n method,\n params: [request],\n }, { retryCount: 0 });\n }\n catch (e) {\n if (isWalletNamespaceSupported === false)\n throw e;\n const error = e;\n // If the transport does not support the method or input, attempt to use the\n // `wallet_sendTransaction` method.\n if (error.name === 'InvalidInputRpcError' ||\n error.name === 'InvalidParamsRpcError' ||\n error.name === 'MethodNotFoundRpcError' ||\n error.name === 'MethodNotSupportedRpcError') {\n return await client\n .request({\n method: 'wallet_sendTransaction',\n params: [request],\n }, { retryCount: 0 })\n .then((hash) => {\n supportsWalletNamespace.set(client.uid, true);\n return hash;\n })\n .catch((e) => {\n const walletNamespaceError = e;\n if (walletNamespaceError.name === 'MethodNotFoundRpcError' ||\n walletNamespaceError.name === 'MethodNotSupportedRpcError') {\n supportsWalletNamespace.set(client.uid, false);\n throw error;\n }\n throw walletNamespaceError;\n });\n }\n throw error;\n }\n }\n if (account?.type === 'local') {\n // Prepare the request for signing (assign appropriate fees, etc.)\n const request = await getAction(client, prepareTransactionRequest, 'prepareTransactionRequest')({\n account,\n accessList,\n authorizationList,\n blobs,\n chain,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n nonceManager: account.nonceManager,\n parameters: [...defaultParameters, 'sidecars'],\n type,\n value,\n ...rest,\n to,\n });\n const serializer = chain?.serializers?.transaction;\n const serializedTransaction = (await account.signTransaction(request, {\n serializer,\n }));\n return await getAction(client, sendRawTransaction, 'sendRawTransaction')({\n serializedTransaction,\n });\n }\n if (account?.type === 'smart')\n throw new AccountTypeNotSupportedError({\n metaMessages: [\n 'Consider using the `sendUserOperation` Action instead.',\n ],\n docsPath: '/docs/actions/bundler/sendUserOperation',\n type: 'smart',\n });\n throw new AccountTypeNotSupportedError({\n docsPath: '/docs/actions/wallet/sendTransaction',\n type: account?.type,\n });\n }\n catch (err) {\n if (err instanceof AccountTypeNotSupportedError)\n throw err;\n throw getTransactionError(err, {\n ...parameters,\n account,\n chain: parameters.chain || undefined,\n });\n }\n}\n//# sourceMappingURL=sendTransaction.js.map","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","import * as Effectable from \"../Effectable.js\";\nimport { dual } from \"../Function.js\";\nimport * as MutableRef from \"../MutableRef.js\";\nimport * as Option from \"../Option.js\";\nimport * as Readable from \"../Readable.js\";\nimport * as core from \"./core.js\";\n/** @internal */\nexport const RefTypeId = /*#__PURE__*/Symbol.for(\"effect/Ref\");\n/** @internal */\nexport const refVariance = {\n /* c8 ignore next */\n _A: _ => _\n};\nclass RefImpl extends Effectable.Class {\n ref;\n commit() {\n return this.get;\n }\n [RefTypeId] = refVariance;\n [Readable.TypeId] = Readable.TypeId;\n constructor(ref) {\n super();\n this.ref = ref;\n this.get = core.sync(() => MutableRef.get(this.ref));\n }\n get;\n modify(f) {\n return core.sync(() => {\n const current = MutableRef.get(this.ref);\n const [b, a] = f(current);\n if (current !== a) {\n MutableRef.set(a)(this.ref);\n }\n return b;\n });\n }\n}\n/** @internal */\nexport const unsafeMake = value => new RefImpl(MutableRef.make(value));\n/** @internal */\nexport const make = value => core.sync(() => unsafeMake(value));\n/** @internal */\nexport const get = self => self.get;\n/** @internal */\nexport const set = /*#__PURE__*/dual(2, (self, value) => self.modify(() => [void 0, value]));\n/** @internal */\nexport const getAndSet = /*#__PURE__*/dual(2, (self, value) => self.modify(a => [a, value]));\n/** @internal */\nexport const getAndUpdate = /*#__PURE__*/dual(2, (self, f) => self.modify(a => [a, f(a)]));\n/** @internal */\nexport const getAndUpdateSome = /*#__PURE__*/dual(2, (self, pf) => self.modify(value => {\n const option = pf(value);\n switch (option._tag) {\n case \"None\":\n {\n return [value, value];\n }\n case \"Some\":\n {\n return [value, option.value];\n }\n }\n}));\n/** @internal */\nexport const setAndGet = /*#__PURE__*/dual(2, (self, value) => self.modify(() => [value, value]));\n/** @internal */\nexport const modify = /*#__PURE__*/dual(2, (self, f) => self.modify(f));\n/** @internal */\nexport const modifySome = /*#__PURE__*/dual(3, (self, fallback, pf) => self.modify(value => {\n const option = pf(value);\n switch (option._tag) {\n case \"None\":\n {\n return [fallback, value];\n }\n case \"Some\":\n {\n return option.value;\n }\n }\n}));\n/** @internal */\nexport const update = /*#__PURE__*/dual(2, (self, f) => self.modify(a => [void 0, f(a)]));\n/** @internal */\nexport const updateAndGet = /*#__PURE__*/dual(2, (self, f) => self.modify(a => {\n const result = f(a);\n return [result, result];\n}));\n/** @internal */\nexport const updateSome = /*#__PURE__*/dual(2, (self, f) => self.modify(a => [void 0, Option.match(f(a), {\n onNone: () => a,\n onSome: b => b\n})]));\n/** @internal */\nexport const updateSomeAndGet = /*#__PURE__*/dual(2, (self, pf) => self.modify(value => {\n const option = pf(value);\n switch (option._tag) {\n case \"None\":\n {\n return [value, value];\n }\n case \"Some\":\n {\n return [option.value, option.value];\n }\n }\n}));\n/** @internal */\nexport const unsafeGet = self => MutableRef.get(self.ref);\n//# sourceMappingURL=ref.js.map","'use strict';\n\nvar setFunctionLength = require('set-function-length');\n\nvar $defineProperty = require('es-define-property');\n\nvar callBindBasic = require('call-bind-apply-helpers');\nvar applyBind = require('call-bind-apply-helpers/applyBind');\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = callBindBasic(arguments);\n\tvar adjustedLength = originalFunction.length - (arguments.length - 1);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + (adjustedLength > 0 ? adjustedLength : 0),\n\t\ttrue\n\t);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","import { concatHex } from '../data/concat.js';\nimport { hexToBytes } from '../encoding/toBytes.js';\nimport { numberToHex } from '../encoding/toHex.js';\nimport { toRlp } from '../encoding/toRlp.js';\nimport { keccak256 } from '../hash/keccak256.js';\n/**\n * Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\n */\nexport function hashAuthorization(parameters) {\n const { chainId, nonce, to } = parameters;\n const address = parameters.contractAddress ?? parameters.address;\n const hash = keccak256(concatHex([\n '0x05',\n toRlp([\n chainId ? numberToHex(chainId) : '0x',\n address,\n nonce ? numberToHex(nonce) : '0x',\n ]),\n ]));\n if (to === 'bytes')\n return hexToBytes(hash);\n return hash;\n}\n//# sourceMappingURL=hashAuthorization.js.map","import { defineChain } from '../../utils/chain/defineChain.js';\nexport const anvil = /*#__PURE__*/ defineChain({\n id: 31_337,\n name: 'Anvil',\n nativeCurrency: {\n decimals: 18,\n name: 'Ether',\n symbol: 'ETH',\n },\n rpcUrls: {\n default: {\n http: ['http://127.0.0.1:8545'],\n webSocket: ['ws://127.0.0.1:8545'],\n },\n },\n});\n//# sourceMappingURL=anvil.js.map","import { hexToBytes } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\n/**\n * Compute the proofs for a list of blobs and their commitments.\n *\n * @example\n * ```ts\n * import {\n * blobsToCommitments,\n * toBlobs\n * } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const proofs = blobsToProofs({ blobs, commitments, kzg })\n * ```\n */\nexport function blobsToProofs(parameters) {\n const { kzg } = parameters;\n const to = parameters.to ?? (typeof parameters.blobs[0] === 'string' ? 'hex' : 'bytes');\n const blobs = (typeof parameters.blobs[0] === 'string'\n ? parameters.blobs.map((x) => hexToBytes(x))\n : parameters.blobs);\n const commitments = (typeof parameters.commitments[0] === 'string'\n ? parameters.commitments.map((x) => hexToBytes(x))\n : parameters.commitments);\n const proofs = [];\n for (let i = 0; i < blobs.length; i++) {\n const blob = blobs[i];\n const commitment = commitments[i];\n proofs.push(Uint8Array.from(kzg.computeBlobKzgProof(blob, commitment)));\n }\n return (to === 'bytes'\n ? proofs\n : proofs.map((x) => bytesToHex(x)));\n}\n//# sourceMappingURL=blobsToProofs.js.map","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","module.exports = require('events').EventEmitter;\n","/**\n * This module provides an implementation of the `Order` type class which is used to define a total ordering on some type `A`.\n * An order is defined by a relation `<=`, which obeys the following laws:\n *\n * - either `x <= y` or `y <= x` (totality)\n * - if `x <= y` and `y <= x`, then `x == y` (antisymmetry)\n * - if `x <= y` and `y <= z`, then `x <= z` (transitivity)\n *\n * The truth table for compare is defined as follows:\n *\n * | `x <= y` | `x >= y` | Ordering | |\n * | -------- | -------- | -------- | --------------------- |\n * | `true` | `true` | `0` | corresponds to x == y |\n * | `true` | `false` | `< 0` | corresponds to x < y |\n * | `false` | `true` | `> 0` | corresponds to x > y |\n *\n * @since 2.0.0\n */\nimport { dual } from \"./Function.js\";\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport const make = compare => (self, that) => self === that ? 0 : compare(self, that);\n/**\n * @category instances\n * @since 2.0.0\n */\nexport const string = /*#__PURE__*/make((self, that) => self < that ? -1 : 1);\n/**\n * @category instances\n * @since 2.0.0\n */\nexport const number = /*#__PURE__*/make((self, that) => self < that ? -1 : 1);\n/**\n * @category instances\n * @since 2.0.0\n */\nexport const boolean = /*#__PURE__*/make((self, that) => self < that ? -1 : 1);\n/**\n * @category instances\n * @since 2.0.0\n */\nexport const bigint = /*#__PURE__*/make((self, that) => self < that ? -1 : 1);\n/**\n * @since 2.0.0\n */\nexport const reverse = O => make((self, that) => O(that, self));\n/**\n * @category combining\n * @since 2.0.0\n */\nexport const combine = /*#__PURE__*/dual(2, (self, that) => make((a1, a2) => {\n const out = self(a1, a2);\n if (out !== 0) {\n return out;\n }\n return that(a1, a2);\n}));\n/**\n * @category combining\n * @since 2.0.0\n */\nexport const combineMany = /*#__PURE__*/dual(2, (self, collection) => make((a1, a2) => {\n let out = self(a1, a2);\n if (out !== 0) {\n return out;\n }\n for (const O of collection) {\n out = O(a1, a2);\n if (out !== 0) {\n return out;\n }\n }\n return out;\n}));\n/**\n * @since 2.0.0\n */\nexport const empty = () => make(() => 0);\n/**\n * @category combining\n * @since 2.0.0\n */\nexport const combineAll = collection => combineMany(empty(), collection);\n/**\n * @category mapping\n * @since 2.0.0\n */\nexport const mapInput = /*#__PURE__*/dual(2, (self, f) => make((b1, b2) => self(f(b1), f(b2))));\n/**\n * @category instances\n * @since 2.0.0\n */\nexport const Date = /*#__PURE__*/mapInput(number, date => date.getTime());\n/**\n * @category combining\n * @since 2.0.0\n */\nexport const product = /*#__PURE__*/dual(2, (self, that) => make(([xa, xb], [ya, yb]) => {\n const o = self(xa, ya);\n return o !== 0 ? o : that(xb, yb);\n}));\n/**\n * @category combining\n * @since 2.0.0\n */\nexport const all = collection => {\n return make((x, y) => {\n const len = Math.min(x.length, y.length);\n let collectionLength = 0;\n for (const O of collection) {\n if (collectionLength >= len) {\n break;\n }\n const o = O(x[collectionLength], y[collectionLength]);\n if (o !== 0) {\n return o;\n }\n collectionLength++;\n }\n return 0;\n });\n};\n/**\n * @category combining\n * @since 2.0.0\n */\nexport const productMany = /*#__PURE__*/dual(2, (self, collection) => {\n const O = all(collection);\n return make((x, y) => {\n const o = self(x[0], y[0]);\n return o !== 0 ? o : O(x.slice(1), y.slice(1));\n });\n});\n/**\n * Similar to `Promise.all` but operates on `Order`s.\n *\n * ```\n * [Order, Order, ...] -> Order<[A, B, ...]>\n * ```\n *\n * This function creates and returns a new `Order` for a tuple of values based on the given `Order`s for each element in the tuple.\n * The returned `Order` compares two tuples of the same type by applying the corresponding `Order` to each element in the tuple.\n * It is useful when you need to compare two tuples of the same type and you have a specific way of comparing each element\n * of the tuple.\n *\n * @category combinators\n * @since 2.0.0\n */\nexport const tuple = (...elements) => all(elements);\n/**\n * This function creates and returns a new `Order` for an array of values based on a given `Order` for the elements of the array.\n * The returned `Order` compares two arrays by applying the given `Order` to each element in the arrays.\n * If all elements are equal, the arrays are then compared based on their length.\n * It is useful when you need to compare two arrays of the same type and you have a specific way of comparing each element of the array.\n *\n * @category combinators\n * @since 2.0.0\n */\nexport const array = O => make((self, that) => {\n const aLen = self.length;\n const bLen = that.length;\n const len = Math.min(aLen, bLen);\n for (let i = 0; i < len; i++) {\n const o = O(self[i], that[i]);\n if (o !== 0) {\n return o;\n }\n }\n return number(aLen, bLen);\n});\n/**\n * This function creates and returns a new `Order` for a struct of values based on the given `Order`s\n * for each property in the struct.\n *\n * @category combinators\n * @since 2.0.0\n */\nexport const struct = fields => {\n const keys = Object.keys(fields);\n return make((self, that) => {\n for (const key of keys) {\n const o = fields[key](self[key], that[key]);\n if (o !== 0) {\n return o;\n }\n }\n return 0;\n });\n};\n/**\n * Test whether one value is _strictly less than_ another.\n *\n * @since 2.0.0\n */\nexport const lessThan = O => dual(2, (self, that) => O(self, that) === -1);\n/**\n * Test whether one value is _strictly greater than_ another.\n *\n * @since 2.0.0\n */\nexport const greaterThan = O => dual(2, (self, that) => O(self, that) === 1);\n/**\n * Test whether one value is _non-strictly less than_ another.\n *\n * @since 2.0.0\n */\nexport const lessThanOrEqualTo = O => dual(2, (self, that) => O(self, that) !== 1);\n/**\n * Test whether one value is _non-strictly greater than_ another.\n *\n * @since 2.0.0\n */\nexport const greaterThanOrEqualTo = O => dual(2, (self, that) => O(self, that) !== -1);\n/**\n * Take the minimum of two values. If they are considered equal, the first argument is chosen.\n *\n * @since 2.0.0\n */\nexport const min = O => dual(2, (self, that) => self === that || O(self, that) < 1 ? self : that);\n/**\n * Take the maximum of two values. If they are considered equal, the first argument is chosen.\n *\n * @since 2.0.0\n */\nexport const max = O => dual(2, (self, that) => self === that || O(self, that) > -1 ? self : that);\n/**\n * Clamp a value between a minimum and a maximum.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Order, Number } from \"effect\"\n *\n * const clamp = Order.clamp(Number.Order)({ minimum: 1, maximum: 5 })\n *\n * assert.equal(clamp(3), 3)\n * assert.equal(clamp(0), 1)\n * assert.equal(clamp(6), 5)\n * ```\n *\n * @since 2.0.0\n */\nexport const clamp = O => dual(2, (self, options) => min(O)(options.maximum, max(O)(options.minimum, self)));\n/**\n * Test whether a value is between a minimum and a maximum (inclusive).\n *\n * @since 2.0.0\n */\nexport const between = O => dual(2, (self, options) => !lessThan(O)(self, options.minimum) && !greaterThan(O)(self, options.maximum));\n//# sourceMappingURL=Order.js.map","\"use strict\";\n/*\nMIT License\n\nCopyright (c) 2019 Cyril Dever\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// try to use secp256k1, fallback to browser implementation\ntry {\n module.exports = require('./node'); // eslint-disable-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-require-imports\n}\ncatch (e) {\n if (typeof process !== 'undefined' && process.env.ECCRYPTO_NO_FALLBACK) { // eslint-disable-line @typescript-eslint/strict-boolean-expressions\n throw e;\n }\n else {\n module.exports = require('./browser'); // eslint-disable-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-require-imports\n }\n}\n//# sourceMappingURL=index.js.map","import * as Chunk from \"../../Chunk.js\";\nimport * as E from \"../../Either.js\";\nimport * as Equal from \"../../Equal.js\";\nimport * as Dual from \"../../Function.js\";\nimport { Structural } from \"../data.js\";\n/** @internal */\nexport const OrPatchTypeId = /*#__PURE__*/Symbol.for(\"effect/DifferOrPatch\");\nfunction variance(a) {\n return a;\n}\n/** @internal */\nconst PatchProto = {\n ...Structural.prototype,\n [OrPatchTypeId]: {\n _Value: variance,\n _Key: variance,\n _Patch: variance\n }\n};\nconst EmptyProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Empty\"\n});\nconst _empty = /*#__PURE__*/Object.create(EmptyProto);\n/** @internal */\nexport const empty = () => _empty;\nconst AndThenProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"AndThen\"\n});\n/** @internal */\nexport const makeAndThen = (first, second) => {\n const o = Object.create(AndThenProto);\n o.first = first;\n o.second = second;\n return o;\n};\nconst SetLeftProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"SetLeft\"\n});\n/** @internal */\nexport const makeSetLeft = value => {\n const o = Object.create(SetLeftProto);\n o.value = value;\n return o;\n};\nconst SetRightProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"SetRight\"\n});\n/** @internal */\nexport const makeSetRight = value => {\n const o = Object.create(SetRightProto);\n o.value = value;\n return o;\n};\nconst UpdateLeftProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"UpdateLeft\"\n});\n/** @internal */\nexport const makeUpdateLeft = patch => {\n const o = Object.create(UpdateLeftProto);\n o.patch = patch;\n return o;\n};\nconst UpdateRightProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"UpdateRight\"\n});\n/** @internal */\nexport const makeUpdateRight = patch => {\n const o = Object.create(UpdateRightProto);\n o.patch = patch;\n return o;\n};\n/** @internal */\nexport const diff = options => {\n switch (options.oldValue._tag) {\n case \"Left\":\n {\n switch (options.newValue._tag) {\n case \"Left\":\n {\n const valuePatch = options.left.diff(options.oldValue.left, options.newValue.left);\n if (Equal.equals(valuePatch, options.left.empty)) {\n return empty();\n }\n return makeUpdateLeft(valuePatch);\n }\n case \"Right\":\n {\n return makeSetRight(options.newValue.right);\n }\n }\n }\n case \"Right\":\n {\n switch (options.newValue._tag) {\n case \"Left\":\n {\n return makeSetLeft(options.newValue.left);\n }\n case \"Right\":\n {\n const valuePatch = options.right.diff(options.oldValue.right, options.newValue.right);\n if (Equal.equals(valuePatch, options.right.empty)) {\n return empty();\n }\n return makeUpdateRight(valuePatch);\n }\n }\n }\n }\n};\n/** @internal */\nexport const combine = /*#__PURE__*/Dual.dual(2, (self, that) => makeAndThen(self, that));\n/** @internal */\nexport const patch = /*#__PURE__*/Dual.dual(2, (self, {\n left,\n oldValue,\n right\n}) => {\n if (self._tag === \"Empty\") {\n return oldValue;\n }\n let patches = Chunk.of(self);\n let result = oldValue;\n while (Chunk.isNonEmpty(patches)) {\n const head = Chunk.headNonEmpty(patches);\n const tail = Chunk.tailNonEmpty(patches);\n switch (head._tag) {\n case \"Empty\":\n {\n patches = tail;\n break;\n }\n case \"AndThen\":\n {\n patches = Chunk.prepend(head.first)(Chunk.prepend(head.second)(tail));\n break;\n }\n case \"UpdateLeft\":\n {\n if (result._tag === \"Left\") {\n result = E.left(left.patch(head.patch, result.left));\n }\n patches = tail;\n break;\n }\n case \"UpdateRight\":\n {\n if (result._tag === \"Right\") {\n result = E.right(right.patch(head.patch, result.right));\n }\n patches = tail;\n break;\n }\n case \"SetLeft\":\n {\n result = E.left(head.value);\n patches = tail;\n break;\n }\n case \"SetRight\":\n {\n result = E.right(head.value);\n patches = tail;\n break;\n }\n }\n }\n return result;\n});\n//# sourceMappingURL=orPatch.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","import * as Chunk from \"../../Chunk.js\";\nimport * as Equal from \"../../Equal.js\";\nimport * as Dual from \"../../Function.js\";\nimport { pipe } from \"../../Function.js\";\nimport * as Data from \"../data.js\";\n/** @internal */\nexport const ChunkPatchTypeId = /*#__PURE__*/Symbol.for(\"effect/DifferChunkPatch\");\nfunction variance(a) {\n return a;\n}\nconst PatchProto = {\n ...Data.Structural.prototype,\n [ChunkPatchTypeId]: {\n _Value: variance,\n _Patch: variance\n }\n};\nconst EmptyProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Empty\"\n});\nconst _empty = /*#__PURE__*/Object.create(EmptyProto);\n/**\n * @internal\n */\nexport const empty = () => _empty;\nconst AndThenProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"AndThen\"\n});\nconst makeAndThen = (first, second) => {\n const o = Object.create(AndThenProto);\n o.first = first;\n o.second = second;\n return o;\n};\nconst AppendProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Append\"\n});\nconst makeAppend = values => {\n const o = Object.create(AppendProto);\n o.values = values;\n return o;\n};\nconst SliceProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Slice\"\n});\nconst makeSlice = (from, until) => {\n const o = Object.create(SliceProto);\n o.from = from;\n o.until = until;\n return o;\n};\nconst UpdateProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Update\"\n});\nconst makeUpdate = (index, patch) => {\n const o = Object.create(UpdateProto);\n o.index = index;\n o.patch = patch;\n return o;\n};\n/** @internal */\nexport const diff = options => {\n let i = 0;\n let patch = empty();\n while (i < options.oldValue.length && i < options.newValue.length) {\n const oldElement = Chunk.unsafeGet(i)(options.oldValue);\n const newElement = Chunk.unsafeGet(i)(options.newValue);\n const valuePatch = options.differ.diff(oldElement, newElement);\n if (!Equal.equals(valuePatch, options.differ.empty)) {\n patch = pipe(patch, combine(makeUpdate(i, valuePatch)));\n }\n i = i + 1;\n }\n if (i < options.oldValue.length) {\n patch = pipe(patch, combine(makeSlice(0, i)));\n }\n if (i < options.newValue.length) {\n patch = pipe(patch, combine(makeAppend(Chunk.drop(i)(options.newValue))));\n }\n return patch;\n};\n/** @internal */\nexport const combine = /*#__PURE__*/Dual.dual(2, (self, that) => makeAndThen(self, that));\n/** @internal */\nexport const patch = /*#__PURE__*/Dual.dual(3, (self, oldValue, differ) => {\n if (self._tag === \"Empty\") {\n return oldValue;\n }\n let chunk = oldValue;\n let patches = Chunk.of(self);\n while (Chunk.isNonEmpty(patches)) {\n const head = Chunk.headNonEmpty(patches);\n const tail = Chunk.tailNonEmpty(patches);\n switch (head._tag) {\n case \"Empty\":\n {\n patches = tail;\n break;\n }\n case \"AndThen\":\n {\n patches = Chunk.prepend(head.first)(Chunk.prepend(head.second)(tail));\n break;\n }\n case \"Append\":\n {\n chunk = Chunk.appendAll(head.values)(chunk);\n patches = tail;\n break;\n }\n case \"Slice\":\n {\n const array = Chunk.toReadonlyArray(chunk);\n chunk = Chunk.unsafeFromArray(array.slice(head.from, head.until));\n patches = tail;\n break;\n }\n case \"Update\":\n {\n const array = Chunk.toReadonlyArray(chunk);\n array[head.index] = differ.patch(head.patch, array[head.index]);\n chunk = Chunk.unsafeFromArray(array);\n patches = tail;\n break;\n }\n }\n }\n return chunk;\n});\n//# sourceMappingURL=chunkPatch.js.map","import { NegativeOffsetError, PositionOutOfBoundsError, RecursiveReadLimitExceededError, } from '../errors/cursor.js';\nconst staticCursor = {\n bytes: new Uint8Array(),\n dataView: new DataView(new ArrayBuffer(0)),\n position: 0,\n positionReadCount: new Map(),\n recursiveReadCount: 0,\n recursiveReadLimit: Number.POSITIVE_INFINITY,\n assertReadLimit() {\n if (this.recursiveReadCount >= this.recursiveReadLimit)\n throw new RecursiveReadLimitExceededError({\n count: this.recursiveReadCount + 1,\n limit: this.recursiveReadLimit,\n });\n },\n assertPosition(position) {\n if (position < 0 || position > this.bytes.length - 1)\n throw new PositionOutOfBoundsError({\n length: this.bytes.length,\n position,\n });\n },\n decrementPosition(offset) {\n if (offset < 0)\n throw new NegativeOffsetError({ offset });\n const position = this.position - offset;\n this.assertPosition(position);\n this.position = position;\n },\n getReadCount(position) {\n return this.positionReadCount.get(position || this.position) || 0;\n },\n incrementPosition(offset) {\n if (offset < 0)\n throw new NegativeOffsetError({ offset });\n const position = this.position + offset;\n this.assertPosition(position);\n this.position = position;\n },\n inspectByte(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position);\n return this.bytes[position];\n },\n inspectBytes(length, position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + length - 1);\n return this.bytes.subarray(position, position + length);\n },\n inspectUint8(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position);\n return this.bytes[position];\n },\n inspectUint16(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + 1);\n return this.dataView.getUint16(position);\n },\n inspectUint24(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + 2);\n return ((this.dataView.getUint16(position) << 8) +\n this.dataView.getUint8(position + 2));\n },\n inspectUint32(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + 3);\n return this.dataView.getUint32(position);\n },\n pushByte(byte) {\n this.assertPosition(this.position);\n this.bytes[this.position] = byte;\n this.position++;\n },\n pushBytes(bytes) {\n this.assertPosition(this.position + bytes.length - 1);\n this.bytes.set(bytes, this.position);\n this.position += bytes.length;\n },\n pushUint8(value) {\n this.assertPosition(this.position);\n this.bytes[this.position] = value;\n this.position++;\n },\n pushUint16(value) {\n this.assertPosition(this.position + 1);\n this.dataView.setUint16(this.position, value);\n this.position += 2;\n },\n pushUint24(value) {\n this.assertPosition(this.position + 2);\n this.dataView.setUint16(this.position, value >> 8);\n this.dataView.setUint8(this.position + 2, value & ~4294967040);\n this.position += 3;\n },\n pushUint32(value) {\n this.assertPosition(this.position + 3);\n this.dataView.setUint32(this.position, value);\n this.position += 4;\n },\n readByte() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectByte();\n this.position++;\n return value;\n },\n readBytes(length, size) {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectBytes(length);\n this.position += size ?? length;\n return value;\n },\n readUint8() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint8();\n this.position += 1;\n return value;\n },\n readUint16() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint16();\n this.position += 2;\n return value;\n },\n readUint24() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint24();\n this.position += 3;\n return value;\n },\n readUint32() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint32();\n this.position += 4;\n return value;\n },\n get remaining() {\n return this.bytes.length - this.position;\n },\n setPosition(position) {\n const oldPosition = this.position;\n this.assertPosition(position);\n this.position = position;\n return () => (this.position = oldPosition);\n },\n _touch() {\n if (this.recursiveReadLimit === Number.POSITIVE_INFINITY)\n return;\n const count = this.getReadCount();\n this.positionReadCount.set(this.position, count + 1);\n if (count > 0)\n this.recursiveReadCount++;\n },\n};\nexport function createCursor(bytes, { recursiveReadLimit = 8_192 } = {}) {\n const cursor = Object.create(staticCursor);\n cursor.bytes = bytes;\n cursor.dataView = new DataView(bytes.buffer ?? bytes, bytes.byteOffset, bytes.byteLength);\n cursor.positionReadCount = new Map();\n cursor.recursiveReadLimit = recursiveReadLimit;\n return cursor;\n}\n//# sourceMappingURL=cursor.js.map","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","// TODO: This looks cool. Need to check the performance of `new RegExp` versus defined inline though.\n// https://twitter.com/GabrielVergnaud/status/1622906834343366657\nexport function execTyped(regex, string) {\n const match = regex.exec(string);\n return match?.groups;\n}\n// `bytes`: binary type of `M` bytes, `0 < M <= 32`\n// https://regexr.com/6va55\nexport const bytesRegex = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/;\n// `(u)int`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n// https://regexr.com/6v8hp\nexport const integerRegex = /^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;\nexport const isTupleRegex = /^\\(.+?\\).*?$/;\n//# sourceMappingURL=regex.js.map","export function trim(hexOrBytes, { dir = 'left' } = {}) {\n let data = typeof hexOrBytes === 'string' ? hexOrBytes.replace('0x', '') : hexOrBytes;\n let sliceLength = 0;\n for (let i = 0; i < data.length - 1; i++) {\n if (data[dir === 'left' ? i : data.length - i - 1].toString() === '0')\n sliceLength++;\n else\n break;\n }\n data =\n dir === 'left'\n ? data.slice(sliceLength)\n : data.slice(0, data.length - sliceLength);\n if (typeof hexOrBytes === 'string') {\n if (data.length === 1 && dir === 'right')\n data = `${data}0`;\n return `0x${data.length % 2 === 1 ? `0${data}` : data}`;\n }\n return data;\n}\n//# sourceMappingURL=trim.js.map","'use strict';\n\nvar Buffer = require('buffer').Buffer;\nvar inherits = require('inherits');\nvar HashBase = require('hash-base');\n\nvar ARRAY16 = new Array(16);\n\nvar zl = [\n\t0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n\t3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n\t1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n\t4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar zr = [\n\t5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n\t6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n\t15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n\t8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n\t12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar sl = [\n\t11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n\t7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n\t11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n\t11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n\t9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sr = [\n\t8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n\t9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n\t9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n\t15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n\t8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e];\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000];\n\nfunction rotl(x, n) {\n\treturn (x << n) | (x >>> (32 - n));\n}\n\nfunction fn1(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0;\n}\n\nfunction fn2(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + ((b & c) | (~b & d)) + m + k) | 0, s) + e) | 0;\n}\n\nfunction fn3(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + ((b | ~c) ^ d) + m + k) | 0, s) + e) | 0;\n}\n\nfunction fn4(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + ((b & d) | (c & ~d)) + m + k) | 0, s) + e) | 0;\n}\n\nfunction fn5(a, b, c, d, e, m, k, s) {\n\treturn (rotl((a + (b ^ (c | ~d)) + m + k) | 0, s) + e) | 0;\n}\n\nfunction RIPEMD160() {\n\tHashBase.call(this, 64);\n\n\t// state\n\tthis._a = 0x67452301;\n\tthis._b = 0xefcdab89;\n\tthis._c = 0x98badcfe;\n\tthis._d = 0x10325476;\n\tthis._e = 0xc3d2e1f0;\n}\n\ninherits(RIPEMD160, HashBase);\n\nRIPEMD160.prototype._update = function () {\n\tvar words = ARRAY16;\n\tfor (var j = 0; j < 16; ++j) {\n\t\twords[j] = this._block.readInt32LE(j * 4);\n\t}\n\n\tvar al = this._a | 0;\n\tvar bl = this._b | 0;\n\tvar cl = this._c | 0;\n\tvar dl = this._d | 0;\n\tvar el = this._e | 0;\n\n\tvar ar = this._a | 0;\n\tvar br = this._b | 0;\n\tvar cr = this._c | 0;\n\tvar dr = this._d | 0;\n\tvar er = this._e | 0;\n\n\t// computation\n\tfor (var i = 0; i < 80; i += 1) {\n\t\tvar tl;\n\t\tvar tr;\n\t\tif (i < 16) {\n\t\t\ttl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i]);\n\t\t\ttr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i]);\n\t\t} else if (i < 32) {\n\t\t\ttl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i]);\n\t\t\ttr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i]);\n\t\t} else if (i < 48) {\n\t\t\ttl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i]);\n\t\t\ttr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i]);\n\t\t} else if (i < 64) {\n\t\t\ttl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i]);\n\t\t\ttr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i]);\n\t\t} else { // if (i<80) {\n\t\t\ttl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i]);\n\t\t\ttr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i]);\n\t\t}\n\n\t\tal = el;\n\t\tel = dl;\n\t\tdl = rotl(cl, 10);\n\t\tcl = bl;\n\t\tbl = tl;\n\n\t\tar = er;\n\t\ter = dr;\n\t\tdr = rotl(cr, 10);\n\t\tcr = br;\n\t\tbr = tr;\n\t}\n\n\t// update state\n\tvar t = (this._b + cl + dr) | 0;\n\tthis._b = (this._c + dl + er) | 0;\n\tthis._c = (this._d + el + ar) | 0;\n\tthis._d = (this._e + al + br) | 0;\n\tthis._e = (this._a + bl + cr) | 0;\n\tthis._a = t;\n};\n\nRIPEMD160.prototype._digest = function () {\n\t// create padding and handle blocks\n\tthis._block[this._blockOffset] = 0x80;\n\tthis._blockOffset += 1;\n\tif (this._blockOffset > 56) {\n\t\tthis._block.fill(0, this._blockOffset, 64);\n\t\tthis._update();\n\t\tthis._blockOffset = 0;\n\t}\n\n\tthis._block.fill(0, this._blockOffset, 56);\n\tthis._block.writeUInt32LE(this._length[0], 56);\n\tthis._block.writeUInt32LE(this._length[1], 60);\n\tthis._update();\n\n\t// produce result\n\tvar buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20); // eslint-disable-line no-buffer-constructor\n\tbuffer.writeInt32LE(this._a, 0);\n\tbuffer.writeInt32LE(this._b, 4);\n\tbuffer.writeInt32LE(this._c, 8);\n\tbuffer.writeInt32LE(this._d, 12);\n\tbuffer.writeInt32LE(this._e, 16);\n\treturn buffer;\n};\n\nmodule.exports = RIPEMD160;\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","import { BaseError } from '../../errors.js';\nexport class InvalidSignatureError extends BaseError {\n constructor({ signature, type, }) {\n super(`Invalid ${type} signature.`, {\n details: signature,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidSignatureError'\n });\n }\n}\nexport class UnknownSignatureError extends BaseError {\n constructor({ signature }) {\n super('Unknown signature.', {\n details: signature,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UnknownSignatureError'\n });\n }\n}\nexport class InvalidStructSignatureError extends BaseError {\n constructor({ signature }) {\n super('Invalid struct signature.', {\n details: signature,\n metaMessages: ['No properties exist.'],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidStructSignatureError'\n });\n }\n}\n//# sourceMappingURL=signature.js.map","import * as core from \"./internal/core.js\";\nimport * as internal from \"./internal/data.js\";\nimport { StructuralPrototype } from \"./internal/effectable.js\";\nimport * as Predicate from \"./Predicate.js\";\n/**\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Data, Equal } from \"effect\"\n *\n * const alice = Data.struct({ name: \"Alice\", age: 30 })\n *\n * const bob = Data.struct({ name: \"Bob\", age: 40 })\n *\n * assert.deepStrictEqual(Equal.equals(alice, alice), true)\n * assert.deepStrictEqual(Equal.equals(alice, Data.struct({ name: \"Alice\", age: 30 })), true)\n *\n * assert.deepStrictEqual(Equal.equals(alice, { name: \"Alice\", age: 30 }), false)\n * assert.deepStrictEqual(Equal.equals(alice, bob), false)\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const struct = internal.struct;\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport const unsafeStruct = as => Object.setPrototypeOf(as, StructuralPrototype);\n/**\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Data, Equal } from \"effect\"\n *\n * const alice = Data.tuple(\"Alice\", 30)\n *\n * const bob = Data.tuple(\"Bob\", 40)\n *\n * assert.deepStrictEqual(Equal.equals(alice, alice), true)\n * assert.deepStrictEqual(Equal.equals(alice, Data.tuple(\"Alice\", 30)), true)\n *\n * assert.deepStrictEqual(Equal.equals(alice, [\"Alice\", 30]), false)\n * assert.deepStrictEqual(Equal.equals(alice, bob), false)\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const tuple = (...as) => unsafeArray(as);\n/**\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Data, Equal } from \"effect\"\n *\n * const alice = Data.struct({ name: \"Alice\", age: 30 })\n * const bob = Data.struct({ name: \"Bob\", age: 40 })\n *\n * const persons = Data.array([alice, bob])\n *\n * assert.deepStrictEqual(\n * Equal.equals(\n * persons,\n * Data.array([\n * Data.struct({ name: \"Alice\", age: 30 }),\n * Data.struct({ name: \"Bob\", age: 40 })\n * ])\n * ),\n * true\n * )\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const array = as => unsafeArray(as.slice(0));\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport const unsafeArray = as => Object.setPrototypeOf(as, internal.ArrayProto);\nconst _case = () => args => args === undefined ? Object.create(StructuralPrototype) : struct(args);\nexport {\n/**\n * Provides a constructor for the specified `Case`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Data, Equal } from \"effect\"\n *\n * interface Person {\n * readonly name: string\n * }\n *\n * // Creating a constructor for the specified Case\n * const Person = Data.case()\n *\n * // Creating instances of Person\n * const mike1 = Person({ name: \"Mike\" })\n * const mike2 = Person({ name: \"Mike\" })\n * const john = Person({ name: \"John\" })\n *\n * // Checking equality\n * assert.deepStrictEqual(Equal.equals(mike1, mike2), true)\n * assert.deepStrictEqual(Equal.equals(mike1, john), false)\n *\n * ```\n * @since 2.0.0\n * @category constructors\n */\n_case as case };\n/**\n * Provides a tagged constructor for the specified `Case`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Data } from \"effect\"\n *\n * interface Person {\n * readonly _tag: \"Person\" // the tag\n * readonly name: string\n * }\n *\n * const Person = Data.tagged(\"Person\")\n *\n * const mike = Person({ name: \"Mike\" })\n *\n * assert.deepEqual(mike, { _tag: \"Person\", name: \"Mike\" })\n * ```\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const tagged = tag => args => {\n const value = args === undefined ? Object.create(StructuralPrototype) : struct(args);\n value._tag = tag;\n return value;\n};\n/**\n * Provides a constructor for a Case Class.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Data, Equal } from \"effect\"\n *\n * class Person extends Data.Class<{ readonly name: string }> {}\n *\n * // Creating instances of Person\n * const mike1 = new Person({ name: \"Mike\" })\n * const mike2 = new Person({ name: \"Mike\" })\n * const john = new Person({ name: \"John\" })\n *\n * // Checking equality\n * assert.deepStrictEqual(Equal.equals(mike1, mike2), true)\n * assert.deepStrictEqual(Equal.equals(mike1, john), false)\n * ```\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const Class = internal.Structural;\n/**\n * Provides a Tagged constructor for a Case Class.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Data, Equal } from \"effect\"\n *\n * class Person extends Data.TaggedClass(\"Person\")<{ readonly name: string }> {}\n *\n * // Creating instances of Person\n * const mike1 = new Person({ name: \"Mike\" })\n * const mike2 = new Person({ name: \"Mike\" })\n * const john = new Person({ name: \"John\" })\n *\n * // Checking equality\n * assert.deepStrictEqual(Equal.equals(mike1, mike2), true)\n * assert.deepStrictEqual(Equal.equals(mike1, john), false)\n *\n * assert.deepStrictEqual(mike1._tag, \"Person\")\n * ```\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const TaggedClass = tag => {\n class Base extends Class {\n _tag = tag;\n }\n return Base;\n};\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const Structural = internal.Structural;\n/**\n * Create a constructor for a tagged union of `Data` structs.\n *\n * You can also pass a `TaggedEnum.WithGenerics` if you want to add generics to\n * the constructor.\n *\n * @example\n * ```ts\n * import { Data } from \"effect\"\n *\n * const { BadRequest, NotFound } = Data.taggedEnum<\n * | { readonly _tag: \"BadRequest\"; readonly status: 400; readonly message: string }\n * | { readonly _tag: \"NotFound\"; readonly status: 404; readonly message: string }\n * >()\n *\n * const notFound = NotFound({ status: 404, message: \"Not Found\" })\n * ```\n *\n * @example\n * import { Data } from \"effect\"\n *\n * type MyResult = Data.TaggedEnum<{\n * Failure: { readonly error: E }\n * Success: { readonly value: A }\n * }>\n * interface MyResultDefinition extends Data.TaggedEnum.WithGenerics<2> {\n * readonly taggedEnum: MyResult\n * }\n * const { Failure, Success } = Data.taggedEnum()\n *\n * const success = Success({ value: 1 })\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const taggedEnum = () => new Proxy({}, {\n get(_target, tag, _receiver) {\n if (tag === \"$is\") {\n return Predicate.isTagged;\n } else if (tag === \"$match\") {\n return taggedMatch;\n }\n return tagged(tag);\n }\n});\nfunction taggedMatch() {\n if (arguments.length === 1) {\n const cases = arguments[0];\n return function (value) {\n return cases[value._tag](value);\n };\n }\n const value = arguments[0];\n const cases = arguments[1];\n return cases[value._tag](value);\n}\n/**\n * Provides a constructor for a Case Class.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const Error = /*#__PURE__*/function () {\n const plainArgsSymbol = /*#__PURE__*/Symbol.for(\"effect/Data/Error/plainArgs\");\n const O = {\n BaseEffectError: class extends core.YieldableError {\n constructor(args) {\n super(args?.message, args?.cause ? {\n cause: args.cause\n } : undefined);\n if (args) {\n Object.assign(this, args);\n // @effect-diagnostics-next-line floatingEffect:off\n Object.defineProperty(this, plainArgsSymbol, {\n value: args,\n enumerable: false\n });\n }\n }\n toJSON() {\n return {\n ...this[plainArgsSymbol],\n ...this\n };\n }\n }\n };\n return O.BaseEffectError;\n}();\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const TaggedError = tag => {\n const O = {\n BaseEffectError: class extends Error {\n _tag = tag;\n }\n };\n O.BaseEffectError.prototype.name = tag;\n return O.BaseEffectError;\n};\n//# sourceMappingURL=Data.js.map","import { dual } from \"../Function.js\";\n/** @internal */\nexport const OP_SEQUENTIAL = \"Sequential\";\n/** @internal */\nexport const OP_PARALLEL = \"Parallel\";\n/** @internal */\nexport const OP_PARALLEL_N = \"ParallelN\";\n/** @internal */\nexport const sequential = {\n _tag: OP_SEQUENTIAL\n};\n/** @internal */\nexport const parallel = {\n _tag: OP_PARALLEL\n};\n/** @internal */\nexport const parallelN = parallelism => ({\n _tag: OP_PARALLEL_N,\n parallelism\n});\n/** @internal */\nexport const isSequential = self => self._tag === OP_SEQUENTIAL;\n/** @internal */\nexport const isParallel = self => self._tag === OP_PARALLEL;\n/** @internal */\nexport const isParallelN = self => self._tag === OP_PARALLEL_N;\n/** @internal */\nexport const match = /*#__PURE__*/dual(2, (self, options) => {\n switch (self._tag) {\n case OP_SEQUENTIAL:\n {\n return options.onSequential();\n }\n case OP_PARALLEL:\n {\n return options.onParallel();\n }\n case OP_PARALLEL_N:\n {\n return options.onParallelN(self.parallelism);\n }\n }\n});\n//# sourceMappingURL=executionStrategy.js.map","import * as internal from \"./internal/executionStrategy.js\";\n/**\n * Execute effects sequentially.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const sequential = internal.sequential;\n/**\n * Execute effects in parallel.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const parallel = internal.parallel;\n/**\n * Execute effects in parallel, up to the specified number of concurrent fibers.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const parallelN = internal.parallelN;\n/**\n * Returns `true` if the specified `ExecutionStrategy` is an instance of\n * `Sequential`, `false` otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isSequential = internal.isSequential;\n/**\n * Returns `true` if the specified `ExecutionStrategy` is an instance of\n * `Sequential`, `false` otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isParallel = internal.isParallel;\n/**\n * Returns `true` if the specified `ExecutionStrategy` is an instance of\n * `Sequential`, `false` otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isParallelN = internal.isParallelN;\n/**\n * Folds over the specified `ExecutionStrategy` using the provided case\n * functions.\n *\n * @since 2.0.0\n * @category folding\n */\nexport const match = internal.match;\n//# sourceMappingURL=ExecutionStrategy.js.map","import * as internal from \"./internal/fiberRefs/patch.js\";\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const empty = internal.empty;\n/**\n * Constructs a patch that describes the changes between the specified\n * collections of `FiberRef`\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const diff = internal.diff;\n/**\n * Combines this patch and the specified patch to create a new patch that\n * describes applying the changes from this patch and the specified patch\n * sequentially.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const combine = internal.combine;\n/**\n * Applies the changes described by this patch to the specified collection\n * of `FiberRef` values.\n *\n * @since 2.0.0\n * @category destructors\n */\nexport const patch = internal.patch;\n//# sourceMappingURL=FiberRefsPatch.js.map","import * as Equal from \"../Equal.js\";\nimport { pipe } from \"../Function.js\";\nimport * as Hash from \"../Hash.js\";\nimport { hasProperty } from \"../Predicate.js\";\nconst FiberStatusSymbolKey = \"effect/FiberStatus\";\n/** @internal */\nexport const FiberStatusTypeId = /*#__PURE__*/Symbol.for(FiberStatusSymbolKey);\n/** @internal */\nexport const OP_DONE = \"Done\";\n/** @internal */\nexport const OP_RUNNING = \"Running\";\n/** @internal */\nexport const OP_SUSPENDED = \"Suspended\";\nconst DoneHash = /*#__PURE__*/Hash.string(`${FiberStatusSymbolKey}-${OP_DONE}`);\n/** @internal */\nclass Done {\n [FiberStatusTypeId] = FiberStatusTypeId;\n _tag = OP_DONE;\n [Hash.symbol]() {\n return DoneHash;\n }\n [Equal.symbol](that) {\n return isFiberStatus(that) && that._tag === OP_DONE;\n }\n}\n/** @internal */\nclass Running {\n runtimeFlags;\n [FiberStatusTypeId] = FiberStatusTypeId;\n _tag = OP_RUNNING;\n constructor(runtimeFlags) {\n this.runtimeFlags = runtimeFlags;\n }\n [Hash.symbol]() {\n return pipe(Hash.hash(FiberStatusSymbolKey), Hash.combine(Hash.hash(this._tag)), Hash.combine(Hash.hash(this.runtimeFlags)), Hash.cached(this));\n }\n [Equal.symbol](that) {\n return isFiberStatus(that) && that._tag === OP_RUNNING && this.runtimeFlags === that.runtimeFlags;\n }\n}\n/** @internal */\nclass Suspended {\n runtimeFlags;\n blockingOn;\n [FiberStatusTypeId] = FiberStatusTypeId;\n _tag = OP_SUSPENDED;\n constructor(runtimeFlags, blockingOn) {\n this.runtimeFlags = runtimeFlags;\n this.blockingOn = blockingOn;\n }\n [Hash.symbol]() {\n return pipe(Hash.hash(FiberStatusSymbolKey), Hash.combine(Hash.hash(this._tag)), Hash.combine(Hash.hash(this.runtimeFlags)), Hash.combine(Hash.hash(this.blockingOn)), Hash.cached(this));\n }\n [Equal.symbol](that) {\n return isFiberStatus(that) && that._tag === OP_SUSPENDED && this.runtimeFlags === that.runtimeFlags && Equal.equals(this.blockingOn, that.blockingOn);\n }\n}\n/** @internal */\nexport const done = /*#__PURE__*/new Done();\n/** @internal */\nexport const running = runtimeFlags => new Running(runtimeFlags);\n/** @internal */\nexport const suspended = (runtimeFlags, blockingOn) => new Suspended(runtimeFlags, blockingOn);\n/** @internal */\nexport const isFiberStatus = u => hasProperty(u, FiberStatusTypeId);\n/** @internal */\nexport const isDone = self => self._tag === OP_DONE;\n/** @internal */\nexport const isRunning = self => self._tag === OP_RUNNING;\n/** @internal */\nexport const isSuspended = self => self._tag === OP_SUSPENDED;\n//# sourceMappingURL=fiberStatus.js.map","import * as internal from \"./internal/fiberStatus.js\";\n/**\n * @since 2.0.0\n * @category symbols\n */\nexport const FiberStatusTypeId = internal.FiberStatusTypeId;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const done = internal.done;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const running = internal.running;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const suspended = internal.suspended;\n/**\n * Returns `true` if the specified value is a `FiberStatus`, `false` otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isFiberStatus = internal.isFiberStatus;\n/**\n * Returns `true` if the specified `FiberStatus` is `Done`, `false` otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isDone = internal.isDone;\n/**\n * Returns `true` if the specified `FiberStatus` is `Running`, `false`\n * otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isRunning = internal.isRunning;\n/**\n * Returns `true` if the specified `FiberStatus` is `Suspended`, `false`\n * otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isSuspended = internal.isSuspended;\n//# sourceMappingURL=FiberStatus.js.map","/**\n * A lightweight alternative to the `Effect` data type, with a subset of the functionality.\n *\n * @since 3.4.0\n * @experimental\n */\nimport * as Arr from \"./Array.js\";\nimport * as Context from \"./Context.js\";\nimport * as Effectable from \"./Effectable.js\";\nimport * as Either from \"./Either.js\";\nimport * as Equal from \"./Equal.js\";\nimport { constTrue, constVoid, dual, identity } from \"./Function.js\";\nimport { globalValue } from \"./GlobalValue.js\";\nimport * as Hash from \"./Hash.js\";\nimport { format, NodeInspectSymbol, toStringUnknown } from \"./Inspectable.js\";\nimport * as InternalContext from \"./internal/context.js\";\nimport * as doNotation from \"./internal/doNotation.js\";\nimport { StructuralPrototype } from \"./internal/effectable.js\";\nimport * as Option from \"./Option.js\";\nimport { pipeArguments } from \"./Pipeable.js\";\nimport { hasProperty, isIterable, isTagged } from \"./Predicate.js\";\nimport { SingleShotGen, YieldWrap, yieldWrapGet } from \"./Utils.js\";\n/**\n * @since 3.4.0\n * @experimental\n * @category type ids\n */\nexport const TypeId = /*#__PURE__*/Symbol.for(\"effect/Micro\");\n/**\n * @since 3.4.0\n * @experimental\n * @category MicroExit\n */\nexport const MicroExitTypeId = /*#__PURE__*/Symbol.for(\"effect/Micro/MicroExit\");\n/**\n * @since 3.4.0\n * @experimental\n * @category guards\n */\nexport const isMicro = u => typeof u === \"object\" && u !== null && TypeId in u;\n// ----------------------------------------------------------------------------\n// MicroCause\n// ----------------------------------------------------------------------------\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroCause\n */\nexport const MicroCauseTypeId = /*#__PURE__*/Symbol.for(\"effect/Micro/MicroCause\");\n/**\n * @since 3.6.6\n * @experimental\n * @category guards\n */\nexport const isMicroCause = self => hasProperty(self, MicroCauseTypeId);\nconst microCauseVariance = {\n _E: identity\n};\nclass MicroCauseImpl extends globalThis.Error {\n _tag;\n traces;\n [MicroCauseTypeId];\n constructor(_tag, originalError, traces) {\n const causeName = `MicroCause.${_tag}`;\n let name;\n let message;\n let stack;\n if (originalError instanceof globalThis.Error) {\n name = `(${causeName}) ${originalError.name}`;\n message = originalError.message;\n const messageLines = message.split(\"\\n\").length;\n stack = originalError.stack ? `(${causeName}) ${originalError.stack.split(\"\\n\").slice(0, messageLines + 3).join(\"\\n\")}` : `${name}: ${message}`;\n } else {\n name = causeName;\n message = toStringUnknown(originalError, 0);\n stack = `${name}: ${message}`;\n }\n if (traces.length > 0) {\n stack += `\\n ${traces.join(\"\\n \")}`;\n }\n super(message);\n this._tag = _tag;\n this.traces = traces;\n this[MicroCauseTypeId] = microCauseVariance;\n this.name = name;\n this.stack = stack;\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n toString() {\n return this.stack;\n }\n [NodeInspectSymbol]() {\n return this.stack;\n }\n}\nclass Fail extends MicroCauseImpl {\n error;\n constructor(error, traces = []) {\n super(\"Fail\", error, traces);\n this.error = error;\n }\n}\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroCause\n */\nexport const causeFail = (error, traces = []) => new Fail(error, traces);\nclass Die extends MicroCauseImpl {\n defect;\n constructor(defect, traces = []) {\n super(\"Die\", defect, traces);\n this.defect = defect;\n }\n}\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroCause\n */\nexport const causeDie = (defect, traces = []) => new Die(defect, traces);\nclass Interrupt extends MicroCauseImpl {\n constructor(traces = []) {\n super(\"Interrupt\", \"interrupted\", traces);\n }\n}\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroCause\n */\nexport const causeInterrupt = (traces = []) => new Interrupt(traces);\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroCause\n */\nexport const causeIsFail = self => self._tag === \"Fail\";\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroCause\n */\nexport const causeIsDie = self => self._tag === \"Die\";\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroCause\n */\nexport const causeIsInterrupt = self => self._tag === \"Interrupt\";\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroCause\n */\nexport const causeSquash = self => self._tag === \"Fail\" ? self.error : self._tag === \"Die\" ? self.defect : self;\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroCause\n */\nexport const causeWithTrace = /*#__PURE__*/dual(2, (self, trace) => {\n const traces = [...self.traces, trace];\n switch (self._tag) {\n case \"Die\":\n return causeDie(self.defect, traces);\n case \"Interrupt\":\n return causeInterrupt(traces);\n case \"Fail\":\n return causeFail(self.error, traces);\n }\n});\n// ----------------------------------------------------------------------------\n// MicroFiber\n// ----------------------------------------------------------------------------\n/**\n * @since 3.11.0\n * @experimental\n * @category MicroFiber\n */\nexport const MicroFiberTypeId = /*#__PURE__*/Symbol.for(\"effect/Micro/MicroFiber\");\nconst fiberVariance = {\n _A: identity,\n _E: identity\n};\nclass MicroFiberImpl {\n context;\n interruptible;\n [MicroFiberTypeId];\n _stack = [];\n _observers = [];\n _exit;\n _children;\n currentOpCount = 0;\n constructor(context, interruptible = true) {\n this.context = context;\n this.interruptible = interruptible;\n this[MicroFiberTypeId] = fiberVariance;\n }\n getRef(ref) {\n return InternalContext.unsafeGetReference(this.context, ref);\n }\n addObserver(cb) {\n if (this._exit) {\n cb(this._exit);\n return constVoid;\n }\n this._observers.push(cb);\n return () => {\n const index = this._observers.indexOf(cb);\n if (index >= 0) {\n this._observers.splice(index, 1);\n }\n };\n }\n _interrupted = false;\n unsafeInterrupt() {\n if (this._exit) {\n return;\n }\n this._interrupted = true;\n if (this.interruptible) {\n this.evaluate(exitInterrupt);\n }\n }\n unsafePoll() {\n return this._exit;\n }\n evaluate(effect) {\n if (this._exit) {\n return;\n } else if (this._yielded !== undefined) {\n const yielded = this._yielded;\n this._yielded = undefined;\n yielded();\n }\n const exit = this.runLoop(effect);\n if (exit === Yield) {\n return;\n }\n // the interruptChildren middlware is added in Micro.fork, so it can be\n // tree-shaken if not used\n const interruptChildren = fiberMiddleware.interruptChildren && fiberMiddleware.interruptChildren(this);\n if (interruptChildren !== undefined) {\n return this.evaluate(flatMap(interruptChildren, () => exit));\n }\n this._exit = exit;\n for (let i = 0; i < this._observers.length; i++) {\n this._observers[i](exit);\n }\n this._observers.length = 0;\n }\n runLoop(effect) {\n let yielding = false;\n let current = effect;\n this.currentOpCount = 0;\n try {\n while (true) {\n this.currentOpCount++;\n if (!yielding && this.getRef(CurrentScheduler).shouldYield(this)) {\n yielding = true;\n const prev = current;\n current = flatMap(yieldNow, () => prev);\n }\n current = current[evaluate](this);\n if (current === Yield) {\n const yielded = this._yielded;\n if (MicroExitTypeId in yielded) {\n this._yielded = undefined;\n return yielded;\n }\n return Yield;\n }\n }\n } catch (error) {\n if (!hasProperty(current, evaluate)) {\n return exitDie(`MicroFiber.runLoop: Not a valid effect: ${String(current)}`);\n }\n return exitDie(error);\n }\n }\n getCont(symbol) {\n while (true) {\n const op = this._stack.pop();\n if (!op) return undefined;\n const cont = op[ensureCont] && op[ensureCont](this);\n if (cont) return {\n [symbol]: cont\n };\n if (op[symbol]) return op;\n }\n }\n // cancel the yielded operation, or for the yielded exit value\n _yielded = undefined;\n yieldWith(value) {\n this._yielded = value;\n return Yield;\n }\n children() {\n return this._children ??= new Set();\n }\n}\nconst fiberMiddleware = /*#__PURE__*/globalValue(\"effect/Micro/fiberMiddleware\", () => ({\n interruptChildren: undefined\n}));\nconst fiberInterruptChildren = fiber => {\n if (fiber._children === undefined || fiber._children.size === 0) {\n return undefined;\n }\n return fiberInterruptAll(fiber._children);\n};\n/**\n * @since 3.11.0\n * @experimental\n * @category MicroFiber\n */\nexport const fiberAwait = self => async(resume => sync(self.addObserver(exit => resume(succeed(exit)))));\n/**\n * @since 3.11.2\n * @experimental\n * @category MicroFiber\n */\nexport const fiberJoin = self => flatten(fiberAwait(self));\n/**\n * @since 3.11.0\n * @experimental\n * @category MicroFiber\n */\nexport const fiberInterrupt = self => suspend(() => {\n self.unsafeInterrupt();\n return asVoid(fiberAwait(self));\n});\n/**\n * @since 3.11.0\n * @experimental\n * @category MicroFiber\n */\nexport const fiberInterruptAll = fibers => suspend(() => {\n for (const fiber of fibers) fiber.unsafeInterrupt();\n const iter = fibers[Symbol.iterator]();\n const wait = suspend(() => {\n let result = iter.next();\n while (!result.done) {\n if (result.value.unsafePoll()) {\n result = iter.next();\n continue;\n }\n const fiber = result.value;\n return async(resume => {\n fiber.addObserver(_ => {\n resume(wait);\n });\n });\n }\n return exitVoid;\n });\n return wait;\n});\nconst identifier = /*#__PURE__*/Symbol.for(\"effect/Micro/identifier\");\nconst args = /*#__PURE__*/Symbol.for(\"effect/Micro/args\");\nconst evaluate = /*#__PURE__*/Symbol.for(\"effect/Micro/evaluate\");\nconst successCont = /*#__PURE__*/Symbol.for(\"effect/Micro/successCont\");\nconst failureCont = /*#__PURE__*/Symbol.for(\"effect/Micro/failureCont\");\nconst ensureCont = /*#__PURE__*/Symbol.for(\"effect/Micro/ensureCont\");\nconst Yield = /*#__PURE__*/Symbol.for(\"effect/Micro/Yield\");\nconst microVariance = {\n _A: identity,\n _E: identity,\n _R: identity\n};\nconst MicroProto = {\n ...Effectable.EffectPrototype,\n _op: \"Micro\",\n [TypeId]: microVariance,\n pipe() {\n return pipeArguments(this, arguments);\n },\n [Symbol.iterator]() {\n return new SingleShotGen(new YieldWrap(this));\n },\n toJSON() {\n return {\n _id: \"Micro\",\n op: this[identifier],\n ...(args in this ? {\n args: this[args]\n } : undefined)\n };\n },\n toString() {\n return format(this);\n },\n [NodeInspectSymbol]() {\n return format(this);\n }\n};\nfunction defaultEvaluate(_fiber) {\n return exitDie(`Micro.evaluate: Not implemented`);\n}\nconst makePrimitiveProto = options => ({\n ...MicroProto,\n [identifier]: options.op,\n [evaluate]: options.eval ?? defaultEvaluate,\n [successCont]: options.contA,\n [failureCont]: options.contE,\n [ensureCont]: options.ensure\n});\nconst makePrimitive = options => {\n const Proto = makePrimitiveProto(options);\n return function () {\n const self = Object.create(Proto);\n self[args] = options.single === false ? arguments : arguments[0];\n return self;\n };\n};\nconst makeExit = options => {\n const Proto = {\n ...makePrimitiveProto(options),\n [MicroExitTypeId]: MicroExitTypeId,\n _tag: options.op,\n get [options.prop]() {\n return this[args];\n },\n toJSON() {\n return {\n _id: \"MicroExit\",\n _tag: options.op,\n [options.prop]: this[args]\n };\n },\n [Equal.symbol](that) {\n return isMicroExit(that) && that._tag === options.op && Equal.equals(this[args], that[args]);\n },\n [Hash.symbol]() {\n return Hash.cached(this, Hash.combine(Hash.string(options.op))(Hash.hash(this[args])));\n }\n };\n return function (value) {\n const self = Object.create(Proto);\n self[args] = value;\n self[successCont] = undefined;\n self[failureCont] = undefined;\n self[ensureCont] = undefined;\n return self;\n };\n};\n/**\n * Creates a `Micro` effect that will succeed with the specified constant value.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const succeed = /*#__PURE__*/makeExit({\n op: \"Success\",\n prop: \"value\",\n eval(fiber) {\n const cont = fiber.getCont(successCont);\n return cont ? cont[successCont](this[args], fiber) : fiber.yieldWith(this);\n }\n});\n/**\n * Creates a `Micro` effect that will fail with the specified `MicroCause`.\n *\n * @since 3.4.6\n * @experimental\n * @category constructors\n */\nexport const failCause = /*#__PURE__*/makeExit({\n op: \"Failure\",\n prop: \"cause\",\n eval(fiber) {\n let cont = fiber.getCont(failureCont);\n while (causeIsInterrupt(this[args]) && cont && fiber.interruptible) {\n cont = fiber.getCont(failureCont);\n }\n return cont ? cont[failureCont](this[args], fiber) : fiber.yieldWith(this);\n }\n});\n/**\n * Creates a `Micro` effect that fails with the given error.\n *\n * This results in a `Fail` variant of the `MicroCause` type, where the error is\n * tracked at the type level.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const fail = error => failCause(causeFail(error));\n/**\n * Creates a `Micro` effect that succeeds with a lazily evaluated value.\n *\n * If the evaluation of the value throws an error, the effect will fail with a\n * `Die` variant of the `MicroCause` type.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const sync = /*#__PURE__*/makePrimitive({\n op: \"Sync\",\n eval(fiber) {\n const value = this[args]();\n const cont = fiber.getCont(successCont);\n return cont ? cont[successCont](value, fiber) : fiber.yieldWith(exitSucceed(value));\n }\n});\n/**\n * Lazily creates a `Micro` effect from the given side-effect.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const suspend = /*#__PURE__*/makePrimitive({\n op: \"Suspend\",\n eval(_fiber) {\n return this[args]();\n }\n});\n/**\n * Pause the execution of the current `Micro` effect, and resume it on the next\n * scheduler tick.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const yieldNowWith = /*#__PURE__*/makePrimitive({\n op: \"Yield\",\n eval(fiber) {\n let resumed = false;\n fiber.getRef(CurrentScheduler).scheduleTask(() => {\n if (resumed) return;\n fiber.evaluate(exitVoid);\n }, this[args] ?? 0);\n return fiber.yieldWith(() => {\n resumed = true;\n });\n }\n});\n/**\n * Pause the execution of the current `Micro` effect, and resume it on the next\n * scheduler tick.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const yieldNow = /*#__PURE__*/yieldNowWith(0);\n/**\n * Creates a `Micro` effect that will succeed with the value wrapped in `Some`.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const succeedSome = a => succeed(Option.some(a));\n/**\n * Creates a `Micro` effect that succeeds with `None`.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const succeedNone = /*#__PURE__*/succeed(/*#__PURE__*/Option.none());\n/**\n * Creates a `Micro` effect that will fail with the lazily evaluated `MicroCause`.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const failCauseSync = evaluate => suspend(() => failCause(evaluate()));\n/**\n * Creates a `Micro` effect that will die with the specified error.\n *\n * This results in a `Die` variant of the `MicroCause` type, where the error is\n * not tracked at the type level.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const die = defect => exitDie(defect);\n/**\n * Creates a `Micro` effect that will fail with the lazily evaluated error.\n *\n * This results in a `Fail` variant of the `MicroCause` type, where the error is\n * tracked at the type level.\n *\n * @since 3.4.6\n * @experimental\n * @category constructors\n */\nexport const failSync = error => suspend(() => fail(error()));\n/**\n * Converts an `Option` into a `Micro` effect, that will fail with\n * `NoSuchElementException` if the option is `None`. Otherwise, it will succeed with the\n * value of the option.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const fromOption = option => option._tag === \"Some\" ? succeed(option.value) : fail(new NoSuchElementException({}));\n/**\n * Converts an `Either` into a `Micro` effect, that will fail with the left side\n * of the either if it is a `Left`. Otherwise, it will succeed with the right\n * side of the either.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const fromEither = either => either._tag === \"Right\" ? succeed(either.right) : fail(either.left);\nconst void_ = /*#__PURE__*/succeed(void 0);\nexport {\n/**\n * A `Micro` effect that will succeed with `void` (`undefined`).\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nvoid_ as void };\nconst try_ = options => suspend(() => {\n try {\n return succeed(options.try());\n } catch (err) {\n return fail(options.catch(err));\n }\n});\nexport {\n/**\n * The `Micro` equivalent of a try / catch block, which allows you to map\n * thrown errors to a specific error type.\n *\n * @example\n * ```ts\n * import { Micro } from \"effect\"\n *\n * Micro.try({\n * try: () => { throw new Error(\"boom\") },\n * catch: (cause) => new Error(\"caught\", { cause })\n * })\n * ```\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\ntry_ as try };\n/**\n * Wrap a `Promise` into a `Micro` effect.\n *\n * Any errors will result in a `Die` variant of the `MicroCause` type, where the\n * error is not tracked at the type level.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const promise = evaluate => asyncOptions(function (resume, signal) {\n evaluate(signal).then(a => resume(succeed(a)), e => resume(die(e)));\n}, evaluate.length !== 0);\n/**\n * Wrap a `Promise` into a `Micro` effect. Any errors will be caught and\n * converted into a specific error type.\n *\n * @example\n * ```ts\n * import { Micro } from \"effect\"\n *\n * Micro.tryPromise({\n * try: () => Promise.resolve(\"success\"),\n * catch: (cause) => new Error(\"caught\", { cause })\n * })\n * ```\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const tryPromise = options => asyncOptions(function (resume, signal) {\n try {\n options.try(signal).then(a => resume(succeed(a)), e => resume(fail(options.catch(e))));\n } catch (err) {\n resume(fail(options.catch(err)));\n }\n}, options.try.length !== 0);\n/**\n * Create a `Micro` effect using the current `MicroFiber`.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const withMicroFiber = /*#__PURE__*/makePrimitive({\n op: \"WithMicroFiber\",\n eval(fiber) {\n return this[args](fiber);\n }\n});\n/**\n * Flush any yielded effects that are waiting to be executed.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const yieldFlush = /*#__PURE__*/withMicroFiber(fiber => {\n fiber.getRef(CurrentScheduler).flush();\n return exitVoid;\n});\nconst asyncOptions = /*#__PURE__*/makePrimitive({\n op: \"Async\",\n single: false,\n eval(fiber) {\n const register = this[args][0];\n let resumed = false;\n let yielded = false;\n const controller = this[args][1] ? new AbortController() : undefined;\n const onCancel = register(effect => {\n if (resumed) return;\n resumed = true;\n if (yielded) {\n fiber.evaluate(effect);\n } else {\n yielded = effect;\n }\n }, controller?.signal);\n if (yielded !== false) return yielded;\n yielded = true;\n fiber._yielded = () => {\n resumed = true;\n };\n if (controller === undefined && onCancel === undefined) {\n return Yield;\n }\n fiber._stack.push(asyncFinalizer(() => {\n resumed = true;\n controller?.abort();\n return onCancel ?? exitVoid;\n }));\n return Yield;\n }\n});\nconst asyncFinalizer = /*#__PURE__*/makePrimitive({\n op: \"AsyncFinalizer\",\n ensure(fiber) {\n if (fiber.interruptible) {\n fiber.interruptible = false;\n fiber._stack.push(setInterruptible(true));\n }\n },\n contE(cause, _fiber) {\n return causeIsInterrupt(cause) ? flatMap(this[args](), () => failCause(cause)) : failCause(cause);\n }\n});\n/**\n * Create a `Micro` effect from an asynchronous computation.\n *\n * You can return a cleanup effect that will be run when the effect is aborted.\n * It is also passed an `AbortSignal` that is triggered when the effect is\n * aborted.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const async = register => asyncOptions(register, register.length >= 2);\n/**\n * A `Micro` that will never succeed or fail. It wraps `setInterval` to prevent\n * the Javascript runtime from exiting.\n *\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const never = /*#__PURE__*/async(function () {\n const interval = setInterval(constVoid, 2147483646);\n return sync(() => clearInterval(interval));\n});\n/**\n * @since 3.4.0\n * @experimental\n * @category constructors\n */\nexport const gen = (...args) => suspend(() => fromIterator(args.length === 1 ? args[0]() : args[1].call(args[0])));\nconst fromIterator = /*#__PURE__*/makePrimitive({\n op: \"Iterator\",\n contA(value, fiber) {\n const state = this[args].next(value);\n if (state.done) return succeed(state.value);\n fiber._stack.push(this);\n return yieldWrapGet(state.value);\n },\n eval(fiber) {\n return this[successCont](undefined, fiber);\n }\n});\n// ----------------------------------------------------------------------------\n// mapping & sequencing\n// ----------------------------------------------------------------------------\n/**\n * Create a `Micro` effect that will replace the success value of the given\n * effect.\n *\n * @since 3.4.0\n * @experimental\n * @category mapping & sequencing\n */\nexport const as = /*#__PURE__*/dual(2, (self, value) => map(self, _ => value));\n/**\n * Wrap the success value of this `Micro` effect in a `Some`.\n *\n * @since 3.4.0\n * @experimental\n * @category mapping & sequencing\n */\nexport const asSome = self => map(self, Option.some);\n/**\n * Swap the error and success types of the `Micro` effect.\n *\n * @since 3.4.0\n * @experimental\n * @category mapping & sequencing\n */\nexport const flip = self => matchEffect(self, {\n onFailure: succeed,\n onSuccess: fail\n});\n/**\n * A more flexible version of `flatMap` that combines `map` and `flatMap` into a\n * single API.\n *\n * It also lets you directly pass a `Micro` effect, which will be executed after\n * the current effect.\n *\n * @since 3.4.0\n * @experimental\n * @category mapping & sequencing\n */\nexport const andThen = /*#__PURE__*/dual(2, (self, f) => flatMap(self, a => {\n const value = isMicro(f) ? f : typeof f === \"function\" ? f(a) : f;\n return isMicro(value) ? value : succeed(value);\n}));\n/**\n * Execute a side effect from the success value of the `Micro` effect.\n *\n * It is similar to the `andThen` api, but the success value is ignored.\n *\n * @since 3.4.0\n * @experimental\n * @category mapping & sequencing\n */\nexport const tap = /*#__PURE__*/dual(2, (self, f) => flatMap(self, a => {\n const value = isMicro(f) ? f : typeof f === \"function\" ? f(a) : f;\n return isMicro(value) ? as(value, a) : succeed(a);\n}));\n/**\n * Replace the success value of the `Micro` effect with `void`.\n *\n * @since 3.4.0\n * @experimental\n * @category mapping & sequencing\n */\nexport const asVoid = self => flatMap(self, _ => exitVoid);\n/**\n * Access the `MicroExit` of the given `Micro` effect.\n *\n * @since 3.4.6\n * @experimental\n * @category mapping & sequencing\n */\nexport const exit = self => matchCause(self, {\n onFailure: exitFailCause,\n onSuccess: exitSucceed\n});\n/**\n * Replace the error type of the given `Micro` with the full `MicroCause` object.\n *\n * @since 3.4.0\n * @experimental\n * @category mapping & sequencing\n */\nexport const sandbox = self => catchAllCause(self, fail);\n/**\n * Returns an effect that races all the specified effects,\n * yielding the value of the first effect to succeed with a value. Losers of\n * the race will be interrupted immediately\n *\n * @since 3.4.0\n * @experimental\n * @category sequencing\n */\nexport const raceAll = all => withMicroFiber(parent => async(resume => {\n const effects = Arr.fromIterable(all);\n const len = effects.length;\n let doneCount = 0;\n let done = false;\n const fibers = new Set();\n const causes = [];\n const onExit = exit => {\n doneCount++;\n if (exit._tag === \"Failure\") {\n causes.push(exit.cause);\n if (doneCount >= len) {\n resume(failCause(causes[0]));\n }\n return;\n }\n done = true;\n resume(fibers.size === 0 ? exit : flatMap(uninterruptible(fiberInterruptAll(fibers)), () => exit));\n };\n for (let i = 0; i < len; i++) {\n if (done) break;\n const fiber = unsafeFork(parent, interruptible(effects[i]), true, true);\n fibers.add(fiber);\n fiber.addObserver(exit => {\n fibers.delete(fiber);\n onExit(exit);\n });\n }\n return fiberInterruptAll(fibers);\n}));\n/**\n * Returns an effect that races all the specified effects,\n * yielding the value of the first effect to succeed or fail. Losers of\n * the race will be interrupted immediately.\n *\n * @since 3.4.0\n * @experimental\n * @category sequencing\n */\nexport const raceAllFirst = all => withMicroFiber(parent => async(resume => {\n let done = false;\n const fibers = new Set();\n const onExit = exit => {\n done = true;\n resume(fibers.size === 0 ? exit : flatMap(fiberInterruptAll(fibers), () => exit));\n };\n for (const effect of all) {\n if (done) break;\n const fiber = unsafeFork(parent, interruptible(effect), true, true);\n fibers.add(fiber);\n fiber.addObserver(exit => {\n fibers.delete(fiber);\n onExit(exit);\n });\n }\n return fiberInterruptAll(fibers);\n}));\n/**\n * Returns an effect that races two effects, yielding the value of the first\n * effect to succeed. Losers of the race will be interrupted immediately.\n *\n * @since 3.4.0\n * @experimental\n * @category sequencing\n */\nexport const race = /*#__PURE__*/dual(2, (self, that) => raceAll([self, that]));\n/**\n * Returns an effect that races two effects, yielding the value of the first\n * effect to succeed *or* fail. Losers of the race will be interrupted immediately.\n *\n * @since 3.4.0\n * @experimental\n * @category sequencing\n */\nexport const raceFirst = /*#__PURE__*/dual(2, (self, that) => raceAllFirst([self, that]));\n/**\n * Map the success value of this `Micro` effect to another `Micro` effect, then\n * flatten the result.\n *\n * @since 3.4.0\n * @experimental\n * @category mapping & sequencing\n */\nexport const flatMap = /*#__PURE__*/dual(2, (self, f) => {\n const onSuccess = Object.create(OnSuccessProto);\n onSuccess[args] = self;\n onSuccess[successCont] = f;\n return onSuccess;\n});\nconst OnSuccessProto = /*#__PURE__*/makePrimitiveProto({\n op: \"OnSuccess\",\n eval(fiber) {\n fiber._stack.push(this);\n return this[args];\n }\n});\n// ----------------------------------------------------------------------------\n// mapping & sequencing\n// ----------------------------------------------------------------------------\n/**\n * Flattens any nested `Micro` effects, merging the error and requirement types.\n *\n * @since 3.4.0\n * @experimental\n * @category mapping & sequencing\n */\nexport const flatten = self => flatMap(self, identity);\n/**\n * Transforms the success value of the `Micro` effect with the specified\n * function.\n *\n * @since 3.4.0\n * @experimental\n * @category mapping & sequencing\n */\nexport const map = /*#__PURE__*/dual(2, (self, f) => flatMap(self, a => succeed(f(a))));\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const isMicroExit = u => hasProperty(u, MicroExitTypeId);\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitSucceed = succeed;\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitFailCause = failCause;\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitInterrupt = /*#__PURE__*/exitFailCause(/*#__PURE__*/causeInterrupt());\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitFail = e => exitFailCause(causeFail(e));\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitDie = defect => exitFailCause(causeDie(defect));\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitIsSuccess = self => self._tag === \"Success\";\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitIsFailure = self => self._tag === \"Failure\";\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitIsInterrupt = self => exitIsFailure(self) && self.cause._tag === \"Interrupt\";\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitIsFail = self => exitIsFailure(self) && self.cause._tag === \"Fail\";\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitIsDie = self => exitIsFailure(self) && self.cause._tag === \"Die\";\n/**\n * @since 3.4.6\n * @experimental\n * @category MicroExit\n */\nexport const exitVoid = /*#__PURE__*/exitSucceed(void 0);\n/**\n * @since 3.11.0\n * @experimental\n * @category MicroExit\n */\nexport const exitVoidAll = exits => {\n for (const exit of exits) {\n if (exit._tag === \"Failure\") {\n return exit;\n }\n }\n return exitVoid;\n};\nconst setImmediate = \"setImmediate\" in globalThis ? globalThis.setImmediate : f => setTimeout(f, 0);\n/**\n * @since 3.5.9\n * @experimental\n * @category scheduler\n */\nexport class MicroSchedulerDefault {\n tasks = [];\n running = false;\n /**\n * @since 3.5.9\n */\n scheduleTask(task, _priority) {\n this.tasks.push(task);\n if (!this.running) {\n this.running = true;\n setImmediate(this.afterScheduled);\n }\n }\n /**\n * @since 3.5.9\n */\n afterScheduled = () => {\n this.running = false;\n this.runTasks();\n };\n /**\n * @since 3.5.9\n */\n runTasks() {\n const tasks = this.tasks;\n this.tasks = [];\n for (let i = 0, len = tasks.length; i < len; i++) {\n tasks[i]();\n }\n }\n /**\n * @since 3.5.9\n */\n shouldYield(fiber) {\n return fiber.currentOpCount >= fiber.getRef(MaxOpsBeforeYield);\n }\n /**\n * @since 3.5.9\n */\n flush() {\n while (this.tasks.length > 0) {\n this.runTasks();\n }\n }\n}\n/**\n * Access the given `Context.Tag` from the environment.\n *\n * @since 3.4.0\n * @experimental\n * @category environment\n */\nexport const service = tag => withMicroFiber(fiber => succeed(Context.unsafeGet(fiber.context, tag)));\n/**\n * Access the given `Context.Tag` from the environment, without tracking the\n * dependency at the type level.\n *\n * It will return an `Option` of the service, depending on whether it is\n * available in the environment or not.\n *\n * @since 3.4.0\n * @experimental\n * @category environment\n */\nexport const serviceOption = tag => withMicroFiber(fiber => succeed(Context.getOption(fiber.context, tag)));\n/**\n * Update the Context with the given mapping function.\n *\n * @since 3.11.0\n * @experimental\n * @category environment\n */\nexport const updateContext = /*#__PURE__*/dual(2, (self, f) => withMicroFiber(fiber => {\n const prev = fiber.context;\n fiber.context = f(prev);\n return onExit(self, () => {\n fiber.context = prev;\n return void_;\n });\n}));\n/**\n * Update the service for the given `Context.Tag` in the environment.\n *\n * @since 3.11.0\n * @experimental\n * @category environment\n */\nexport const updateService = /*#__PURE__*/dual(3, (self, tag, f) => withMicroFiber(fiber => {\n const prev = Context.unsafeGet(fiber.context, tag);\n fiber.context = Context.add(fiber.context, tag, f(prev));\n return onExit(self, () => {\n fiber.context = Context.add(fiber.context, tag, prev);\n return void_;\n });\n}));\n/**\n * Access the current `Context` from the environment.\n *\n * @since 3.4.0\n * @experimental\n * @category environment\n */\nexport const context = () => getContext;\nconst getContext = /*#__PURE__*/withMicroFiber(fiber => succeed(fiber.context));\n/**\n * Merge the given `Context` with the current context.\n *\n * @since 3.4.0\n * @experimental\n * @category environment\n */\nexport const provideContext = /*#__PURE__*/dual(2, (self, provided) => updateContext(self, Context.merge(provided)));\n/**\n * Add the provided service to the current context.\n *\n * @since 3.4.0\n * @experimental\n * @category environment\n */\nexport const provideService = /*#__PURE__*/dual(3, (self, tag, service) => updateContext(self, Context.add(tag, service)));\n/**\n * Create a service using the provided `Micro` effect, and add it to the\n * current context.\n *\n * @since 3.4.6\n * @experimental\n * @category environment\n */\nexport const provideServiceEffect = /*#__PURE__*/dual(3, (self, tag, acquire) => flatMap(acquire, service => provideService(self, tag, service)));\n// ========================================================================\n// References\n// ========================================================================\n/**\n * @since 3.11.0\n * @experimental\n * @category references\n */\nexport class MaxOpsBeforeYield extends /*#__PURE__*/Context.Reference()(\"effect/Micro/currentMaxOpsBeforeYield\", {\n defaultValue: () => 2048\n}) {}\n/**\n * @since 3.11.0\n * @experimental\n * @category environment refs\n */\nexport class CurrentConcurrency extends /*#__PURE__*/Context.Reference()(\"effect/Micro/currentConcurrency\", {\n defaultValue: () => \"unbounded\"\n}) {}\n/**\n * @since 3.11.0\n * @experimental\n * @category environment refs\n */\nexport class CurrentScheduler extends /*#__PURE__*/Context.Reference()(\"effect/Micro/currentScheduler\", {\n defaultValue: () => new MicroSchedulerDefault()\n}) {}\n/**\n * If you have a `Micro` that uses `concurrency: \"inherit\"`, you can use this\n * api to control the concurrency of that `Micro` when it is run.\n *\n * @example\n * ```ts\n * import * as Micro from \"effect/Micro\"\n *\n * Micro.forEach([1, 2, 3], (n) => Micro.succeed(n), {\n * concurrency: \"inherit\"\n * }).pipe(\n * Micro.withConcurrency(2) // use a concurrency of 2\n * )\n * ```\n *\n * @since 3.4.0\n * @experimental\n * @category environment refs\n */\nexport const withConcurrency = /*#__PURE__*/dual(2, (self, concurrency) => provideService(self, CurrentConcurrency, concurrency));\n// ----------------------------------------------------------------------------\n// zipping\n// ----------------------------------------------------------------------------\n/**\n * Combine two `Micro` effects into a single effect that produces a tuple of\n * their results.\n *\n * @since 3.4.0\n * @experimental\n * @category zipping\n */\nexport const zip = /*#__PURE__*/dual(args => isMicro(args[1]), (self, that, options) => zipWith(self, that, (a, a2) => [a, a2], options));\n/**\n * The `Micro.zipWith` function combines two `Micro` effects and allows you to\n * apply a function to the results of the combined effects, transforming them\n * into a single value.\n *\n * @since 3.4.3\n * @experimental\n * @category zipping\n */\nexport const zipWith = /*#__PURE__*/dual(args => isMicro(args[1]), (self, that, f, options) => options?.concurrent\n// Use `all` exclusively for concurrent cases, as it introduces additional overhead due to the management of concurrency\n? map(all([self, that], {\n concurrency: 2\n}), ([a, a2]) => f(a, a2)) : flatMap(self, a => map(that, a2 => f(a, a2))));\n// ----------------------------------------------------------------------------\n// filtering & conditionals\n// ----------------------------------------------------------------------------\n/**\n * Filter the specified effect with the provided function, failing with specified\n * `MicroCause` if the predicate fails.\n *\n * In addition to the filtering capabilities discussed earlier, you have the option to further\n * refine and narrow down the type of the success channel by providing a\n *\n * @since 3.4.0\n * @experimental\n * @category filtering & conditionals\n */\nexport const filterOrFailCause = /*#__PURE__*/dual(args => isMicro(args[0]), (self, refinement, orFailWith) => flatMap(self, a => refinement(a) ? succeed(a) : failCause(orFailWith(a))));\n/**\n * Filter the specified effect with the provided function, failing with specified\n * error if the predicate fails.\n *\n * In addition to the filtering capabilities discussed earlier, you have the option to further\n * refine and narrow down the type of the success channel by providing a\n *\n * @since 3.4.0\n * @experimental\n * @category filtering & conditionals\n */\nexport const filterOrFail = /*#__PURE__*/dual(args => isMicro(args[0]), (self, refinement, orFailWith) => flatMap(self, a => refinement(a) ? succeed(a) : fail(orFailWith(a))));\n/**\n * The moral equivalent of `if (p) exp`.\n *\n * @since 3.4.0\n * @experimental\n * @category filtering & conditionals\n */\nexport const when = /*#__PURE__*/dual(2, (self, condition) => flatMap(isMicro(condition) ? condition : sync(condition), pass => pass ? asSome(self) : succeedNone));\n// ----------------------------------------------------------------------------\n// repetition\n// ----------------------------------------------------------------------------\n/**\n * Repeat the given `Micro` using the provided options.\n *\n * The `while` predicate will be checked after each iteration, and can use the\n * fall `MicroExit` of the effect to determine if the repetition should continue.\n *\n * @since 3.4.6\n * @experimental\n * @category repetition\n */\nexport const repeatExit = /*#__PURE__*/dual(2, (self, options) => suspend(() => {\n const startedAt = options.schedule ? Date.now() : 0;\n let attempt = 0;\n const loop = flatMap(exit(self), exit => {\n if (options.while !== undefined && !options.while(exit)) {\n return exit;\n } else if (options.times !== undefined && attempt >= options.times) {\n return exit;\n }\n attempt++;\n let delayEffect = yieldNow;\n if (options.schedule !== undefined) {\n const elapsed = Date.now() - startedAt;\n const duration = options.schedule(attempt, elapsed);\n if (Option.isNone(duration)) {\n return exit;\n }\n delayEffect = sleep(duration.value);\n }\n return flatMap(delayEffect, () => loop);\n });\n return loop;\n}));\n/**\n * Repeat the given `Micro` effect using the provided options. Only successful\n * results will be repeated.\n *\n * @since 3.4.0\n * @experimental\n * @category repetition\n */\nexport const repeat = /*#__PURE__*/dual(args => isMicro(args[0]), (self, options) => repeatExit(self, {\n ...options,\n while: exit => exit._tag === \"Success\" && (options?.while === undefined || options.while(exit.value))\n}));\n/**\n * Replicates the given effect `n` times.\n *\n * @since 3.11.0\n * @experimental\n * @category repetition\n */\nexport const replicate = /*#__PURE__*/dual(2, (self, n) => Array.from({\n length: n\n}, () => self));\n/**\n * Performs this effect the specified number of times and collects the\n * results.\n *\n * @since 3.11.0\n * @category repetition\n */\nexport const replicateEffect = /*#__PURE__*/dual(args => isMicro(args[0]), (self, n, options) => all(replicate(self, n), options));\n/**\n * Repeat the given `Micro` effect forever, only stopping if the effect fails.\n *\n * @since 3.4.0\n * @experimental\n * @category repetition\n */\nexport const forever = self => repeat(self);\n/**\n * Create a `MicroSchedule` that will stop repeating after the specified number\n * of attempts.\n *\n * @since 3.4.6\n * @experimental\n * @category scheduling\n */\nexport const scheduleRecurs = n => attempt => attempt <= n ? Option.some(0) : Option.none();\n/**\n * Create a `MicroSchedule` that will generate a constant delay.\n *\n * @since 3.4.6\n * @experimental\n * @category scheduling\n */\nexport const scheduleSpaced = millis => () => Option.some(millis);\n/**\n * Create a `MicroSchedule` that will generate a delay with an exponential backoff.\n *\n * @since 3.4.6\n * @experimental\n * @category scheduling\n */\nexport const scheduleExponential = (baseMillis, factor = 2) => attempt => Option.some(Math.pow(factor, attempt) * baseMillis);\n/**\n * Returns a new `MicroSchedule` with an added calculated delay to each delay\n * returned by this schedule.\n *\n * @since 3.4.6\n * @experimental\n * @category scheduling\n */\nexport const scheduleAddDelay = /*#__PURE__*/dual(2, (self, f) => (attempt, elapsed) => Option.map(self(attempt, elapsed), duration => duration + f()));\n/**\n * Transform a `MicroSchedule` to one that will have a delay that will never exceed\n * the specified maximum.\n *\n * @since 3.4.6\n * @experimental\n * @category scheduling\n */\nexport const scheduleWithMaxDelay = /*#__PURE__*/dual(2, (self, max) => (attempt, elapsed) => Option.map(self(attempt, elapsed), duration => Math.min(duration, max)));\n/**\n * Transform a `MicroSchedule` to one that will stop repeating after the specified\n * amount of time.\n *\n * @since 3.4.6\n * @experimental\n * @category scheduling\n */\nexport const scheduleWithMaxElapsed = /*#__PURE__*/dual(2, (self, max) => (attempt, elapsed) => elapsed < max ? self(attempt, elapsed) : Option.none());\n/**\n * Combines two `MicroSchedule`s, by recurring if either schedule wants to\n * recur, using the minimum of the two durations between recurrences.\n *\n * @since 3.4.6\n * @experimental\n * @category scheduling\n */\nexport const scheduleUnion = /*#__PURE__*/dual(2, (self, that) => (attempt, elapsed) => Option.zipWith(self(attempt, elapsed), that(attempt, elapsed), (d1, d2) => Math.min(d1, d2)));\n/**\n * Combines two `MicroSchedule`s, by recurring only if both schedules want to\n * recur, using the maximum of the two durations between recurrences.\n *\n * @since 3.4.6\n * @experimental\n * @category scheduling\n */\nexport const scheduleIntersect = /*#__PURE__*/dual(2, (self, that) => (attempt, elapsed) => Option.zipWith(self(attempt, elapsed), that(attempt, elapsed), (d1, d2) => Math.max(d1, d2)));\n// ----------------------------------------------------------------------------\n// error handling\n// ----------------------------------------------------------------------------\n/**\n * Catch the full `MicroCause` object of the given `Micro` effect, allowing you to\n * recover from any kind of cause.\n *\n * @since 3.4.6\n * @experimental\n * @category error handling\n */\nexport const catchAllCause = /*#__PURE__*/dual(2, (self, f) => {\n const onFailure = Object.create(OnFailureProto);\n onFailure[args] = self;\n onFailure[failureCont] = f;\n return onFailure;\n});\nconst OnFailureProto = /*#__PURE__*/makePrimitiveProto({\n op: \"OnFailure\",\n eval(fiber) {\n fiber._stack.push(this);\n return this[args];\n }\n});\n/**\n * Selectively catch a `MicroCause` object of the given `Micro` effect,\n * using the provided predicate to determine if the failure should be caught.\n *\n * @since 3.4.6\n * @experimental\n * @category error handling\n */\nexport const catchCauseIf = /*#__PURE__*/dual(3, (self, predicate, f) => catchAllCause(self, cause => predicate(cause) ? f(cause) : failCause(cause)));\n/**\n * Catch the error of the given `Micro` effect, allowing you to recover from it.\n *\n * It only catches expected errors.\n *\n * @since 3.4.6\n * @experimental\n * @category error handling\n */\nexport const catchAll = /*#__PURE__*/dual(2, (self, f) => catchCauseIf(self, causeIsFail, cause => f(cause.error)));\n/**\n * Catch any unexpected errors of the given `Micro` effect, allowing you to recover from them.\n *\n * @since 3.4.6\n * @experimental\n * @category error handling\n */\nexport const catchAllDefect = /*#__PURE__*/dual(2, (self, f) => catchCauseIf(self, causeIsDie, die => f(die.defect)));\n/**\n * Perform a side effect using the full `MicroCause` object of the given `Micro`.\n *\n * @since 3.4.6\n * @experimental\n * @category error handling\n */\nexport const tapErrorCause = /*#__PURE__*/dual(2, (self, f) => tapErrorCauseIf(self, constTrue, f));\n/**\n * Perform a side effect using if a `MicroCause` object matches the specified\n * predicate.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const tapErrorCauseIf = /*#__PURE__*/dual(3, (self, refinement, f) => catchCauseIf(self, refinement, cause => andThen(f(cause), failCause(cause))));\n/**\n * Perform a side effect from expected errors of the given `Micro`.\n *\n * @since 3.4.6\n * @experimental\n * @category error handling\n */\nexport const tapError = /*#__PURE__*/dual(2, (self, f) => tapErrorCauseIf(self, causeIsFail, fail => f(fail.error)));\n/**\n * Perform a side effect from unexpected errors of the given `Micro`.\n *\n * @since 3.4.6\n * @experimental\n * @category error handling\n */\nexport const tapDefect = /*#__PURE__*/dual(2, (self, f) => tapErrorCauseIf(self, causeIsDie, die => f(die.defect)));\n/**\n * Catch any expected errors that match the specified predicate.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const catchIf = /*#__PURE__*/dual(3, (self, predicate, f) => catchCauseIf(self, f => causeIsFail(f) && predicate(f.error), fail => f(fail.error)));\n/**\n * Recovers from the specified tagged error.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const catchTag = /*#__PURE__*/dual(3, (self, k, f) => catchIf(self, isTagged(k), f));\n/**\n * Transform the full `MicroCause` object of the given `Micro` effect.\n *\n * @since 3.4.6\n * @experimental\n * @category error handling\n */\nexport const mapErrorCause = /*#__PURE__*/dual(2, (self, f) => catchAllCause(self, cause => failCause(f(cause))));\n/**\n * Transform any expected errors of the given `Micro` effect.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const mapError = /*#__PURE__*/dual(2, (self, f) => catchAll(self, error => fail(f(error))));\n/**\n * Elevate any expected errors of the given `Micro` effect to unexpected errors,\n * resulting in an error type of `never`.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const orDie = self => catchAll(self, die);\n/**\n * Recover from all errors by succeeding with the given value.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const orElseSucceed = /*#__PURE__*/dual(2, (self, f) => catchAll(self, _ => sync(f)));\n/**\n * Ignore any expected errors of the given `Micro` effect, returning `void`.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const ignore = self => matchEffect(self, {\n onFailure: _ => void_,\n onSuccess: _ => void_\n});\n/**\n * Ignore any expected errors of the given `Micro` effect, returning `void`.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const ignoreLogged = self => matchEffect(self, {\n // eslint-disable-next-line no-console\n onFailure: error => sync(() => console.error(error)),\n onSuccess: _ => void_\n});\n/**\n * Replace the success value of the given `Micro` effect with an `Option`,\n * wrapping the success value in `Some` and returning `None` if the effect fails\n * with an expected error.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const option = self => match(self, {\n onFailure: Option.none,\n onSuccess: Option.some\n});\n/**\n * Replace the success value of the given `Micro` effect with an `Either`,\n * wrapping the success value in `Right` and wrapping any expected errors with\n * a `Left`.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const either = self => match(self, {\n onFailure: Either.left,\n onSuccess: Either.right\n});\n/**\n * Retry the given `Micro` effect using the provided options.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const retry = /*#__PURE__*/dual(args => isMicro(args[0]), (self, options) => repeatExit(self, {\n ...options,\n while: exit => exit._tag === \"Failure\" && exit.cause._tag === \"Fail\" && (options?.while === undefined || options.while(exit.cause.error))\n}));\n/**\n * Add a stack trace to any failures that occur in the effect. The trace will be\n * added to the `traces` field of the `MicroCause` object.\n *\n * @since 3.4.0\n * @experimental\n * @category error handling\n */\nexport const withTrace = function () {\n const prevLimit = globalThis.Error.stackTraceLimit;\n globalThis.Error.stackTraceLimit = 2;\n const error = new globalThis.Error();\n globalThis.Error.stackTraceLimit = prevLimit;\n function generate(name, cause) {\n const stack = error.stack;\n if (!stack) {\n return cause;\n }\n const line = stack.split(\"\\n\")[2]?.trim().replace(/^at /, \"\");\n if (!line) {\n return cause;\n }\n const lineMatch = line.match(/\\((.*)\\)$/);\n return causeWithTrace(cause, `at ${name} (${lineMatch ? lineMatch[1] : line})`);\n }\n const f = name => self => onError(self, cause => failCause(generate(name, cause)));\n if (arguments.length === 2) {\n return f(arguments[1])(arguments[0]);\n }\n return f(arguments[0]);\n};\n// ----------------------------------------------------------------------------\n// pattern matching\n// ----------------------------------------------------------------------------\n/**\n * @since 3.4.6\n * @experimental\n * @category pattern matching\n */\nexport const matchCauseEffect = /*#__PURE__*/dual(2, (self, options) => {\n const primitive = Object.create(OnSuccessAndFailureProto);\n primitive[args] = self;\n primitive[successCont] = options.onSuccess;\n primitive[failureCont] = options.onFailure;\n return primitive;\n});\nconst OnSuccessAndFailureProto = /*#__PURE__*/makePrimitiveProto({\n op: \"OnSuccessAndFailure\",\n eval(fiber) {\n fiber._stack.push(this);\n return this[args];\n }\n});\n/**\n * @since 3.4.6\n * @experimental\n * @category pattern matching\n */\nexport const matchCause = /*#__PURE__*/dual(2, (self, options) => matchCauseEffect(self, {\n onFailure: cause => sync(() => options.onFailure(cause)),\n onSuccess: value => sync(() => options.onSuccess(value))\n}));\n/**\n * @since 3.4.6\n * @experimental\n * @category pattern matching\n */\nexport const matchEffect = /*#__PURE__*/dual(2, (self, options) => matchCauseEffect(self, {\n onFailure: cause => cause._tag === \"Fail\" ? options.onFailure(cause.error) : failCause(cause),\n onSuccess: options.onSuccess\n}));\n/**\n * @since 3.4.0\n * @experimental\n * @category pattern matching\n */\nexport const match = /*#__PURE__*/dual(2, (self, options) => matchEffect(self, {\n onFailure: error => sync(() => options.onFailure(error)),\n onSuccess: value => sync(() => options.onSuccess(value))\n}));\n// ----------------------------------------------------------------------------\n// delays & timeouts\n// ----------------------------------------------------------------------------\n/**\n * Create a `Micro` effect that will sleep for the specified duration.\n *\n * @since 3.4.0\n * @experimental\n * @category delays & timeouts\n */\nexport const sleep = millis => async(resume => {\n const timeout = setTimeout(() => {\n resume(void_);\n }, millis);\n return sync(() => {\n clearTimeout(timeout);\n });\n});\n/**\n * Returns an effect that will delay the execution of this effect by the\n * specified duration.\n *\n * @since 3.4.0\n * @experimental\n * @category delays & timeouts\n */\nexport const delay = /*#__PURE__*/dual(2, (self, millis) => andThen(sleep(millis), self));\n/**\n * Returns an effect that will timeout this effect, that will execute the\n * fallback effect if the timeout elapses before the effect has produced a value.\n *\n * If the timeout elapses, the running effect will be safely interrupted.\n *\n * @since 3.4.0\n * @experimental\n * @category delays & timeouts\n */\nexport const timeoutOrElse = /*#__PURE__*/dual(2, (self, options) => raceFirst(self, andThen(interruptible(sleep(options.duration)), options.onTimeout)));\n/**\n * Returns an effect that will timeout this effect, that will fail with a\n * `TimeoutException` if the timeout elapses before the effect has produced a\n * value.\n *\n * If the timeout elapses, the running effect will be safely interrupted.\n *\n * @since 3.4.0\n * @experimental\n * @category delays & timeouts\n */\nexport const timeout = /*#__PURE__*/dual(2, (self, millis) => timeoutOrElse(self, {\n duration: millis,\n onTimeout: () => fail(new TimeoutException())\n}));\n/**\n * Returns an effect that will timeout this effect, succeeding with a `None`\n * if the timeout elapses before the effect has produced a value; and `Some` of\n * the produced value otherwise.\n *\n * If the timeout elapses, the running effect will be safely interrupted.\n *\n * @since 3.4.0\n * @experimental\n * @category delays & timeouts\n */\nexport const timeoutOption = /*#__PURE__*/dual(2, (self, millis) => raceFirst(asSome(self), as(interruptible(sleep(millis)), Option.none())));\n// ----------------------------------------------------------------------------\n// resources & finalization\n// ----------------------------------------------------------------------------\n/**\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const MicroScopeTypeId = /*#__PURE__*/Symbol.for(\"effect/Micro/MicroScope\");\n/**\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const MicroScope = /*#__PURE__*/Context.GenericTag(\"effect/Micro/MicroScope\");\nclass MicroScopeImpl {\n [MicroScopeTypeId];\n state = {\n _tag: \"Open\",\n finalizers: /*#__PURE__*/new Set()\n };\n constructor() {\n this[MicroScopeTypeId] = MicroScopeTypeId;\n }\n unsafeAddFinalizer(finalizer) {\n if (this.state._tag === \"Open\") {\n this.state.finalizers.add(finalizer);\n }\n }\n addFinalizer(finalizer) {\n return suspend(() => {\n if (this.state._tag === \"Open\") {\n this.state.finalizers.add(finalizer);\n return void_;\n }\n return finalizer(this.state.exit);\n });\n }\n unsafeRemoveFinalizer(finalizer) {\n if (this.state._tag === \"Open\") {\n this.state.finalizers.delete(finalizer);\n }\n }\n close(microExit) {\n return suspend(() => {\n if (this.state._tag === \"Open\") {\n const finalizers = Array.from(this.state.finalizers).reverse();\n this.state = {\n _tag: \"Closed\",\n exit: microExit\n };\n return flatMap(forEach(finalizers, finalizer => exit(finalizer(microExit))), exitVoidAll);\n }\n return void_;\n });\n }\n get fork() {\n return sync(() => {\n const newScope = new MicroScopeImpl();\n if (this.state._tag === \"Closed\") {\n newScope.state = this.state;\n return newScope;\n }\n function fin(exit) {\n return newScope.close(exit);\n }\n this.state.finalizers.add(fin);\n newScope.unsafeAddFinalizer(_ => sync(() => this.unsafeRemoveFinalizer(fin)));\n return newScope;\n });\n }\n}\n/**\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const scopeMake = /*#__PURE__*/sync(() => new MicroScopeImpl());\n/**\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const scopeUnsafeMake = () => new MicroScopeImpl();\n/**\n * Access the current `MicroScope`.\n *\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const scope = /*#__PURE__*/service(MicroScope);\n/**\n * Provide a `MicroScope` to an effect.\n *\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const provideScope = /*#__PURE__*/dual(2, (self, scope) => provideService(self, MicroScope, scope));\n/**\n * Provide a `MicroScope` to the given effect, closing it after the effect has\n * finished executing.\n *\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const scoped = self => suspend(() => {\n const scope = new MicroScopeImpl();\n return onExit(provideService(self, MicroScope, scope), exit => scope.close(exit));\n});\n/**\n * Create a resource with a cleanup `Micro` effect, ensuring the cleanup is\n * executed when the `MicroScope` is closed.\n *\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const acquireRelease = (acquire, release) => uninterruptible(flatMap(scope, scope => tap(acquire, a => scope.addFinalizer(exit => release(a, exit)))));\n/**\n * Add a finalizer to the current `MicroScope`.\n *\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const addFinalizer = finalizer => flatMap(scope, scope => scope.addFinalizer(finalizer));\n/**\n * When the `Micro` effect is completed, run the given finalizer effect with the\n * `MicroExit` of the executed effect.\n *\n * @since 3.4.6\n * @experimental\n * @category resources & finalization\n */\nexport const onExit = /*#__PURE__*/dual(2, (self, f) => uninterruptibleMask(restore => matchCauseEffect(restore(self), {\n onFailure: cause => flatMap(f(exitFailCause(cause)), () => failCause(cause)),\n onSuccess: a => flatMap(f(exitSucceed(a)), () => succeed(a))\n})));\n/**\n * Regardless of the result of the this `Micro` effect, run the finalizer effect.\n *\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const ensuring = /*#__PURE__*/dual(2, (self, finalizer) => onExit(self, _ => finalizer));\n/**\n * When the `Micro` effect is completed, run the given finalizer effect if it\n * matches the specified predicate.\n *\n * @since 3.4.6\n * @experimental\n * @category resources & finalization\n */\nexport const onExitIf = /*#__PURE__*/dual(3, (self, refinement, f) => onExit(self, exit => refinement(exit) ? f(exit) : exitVoid));\n/**\n * When the `Micro` effect fails, run the given finalizer effect with the\n * `MicroCause` of the executed effect.\n *\n * @since 3.4.6\n * @experimental\n * @category resources & finalization\n */\nexport const onError = /*#__PURE__*/dual(2, (self, f) => onExitIf(self, exitIsFailure, exit => f(exit.cause)));\n/**\n * If this `Micro` effect is aborted, run the finalizer effect.\n *\n * @since 3.4.6\n * @experimental\n * @category resources & finalization\n */\nexport const onInterrupt = /*#__PURE__*/dual(2, (self, finalizer) => onExitIf(self, exitIsInterrupt, _ => finalizer));\n/**\n * Acquire a resource, use it, and then release the resource when the `use`\n * effect has completed.\n *\n * @since 3.4.0\n * @experimental\n * @category resources & finalization\n */\nexport const acquireUseRelease = (acquire, use, release) => uninterruptibleMask(restore => flatMap(acquire, a => flatMap(exit(restore(use(a))), exit => andThen(release(a, exit), exit))));\n// ----------------------------------------------------------------------------\n// interruption\n// ----------------------------------------------------------------------------\n/**\n * Abort the current `Micro` effect.\n *\n * @since 3.4.6\n * @experimental\n * @category interruption\n */\nexport const interrupt = /*#__PURE__*/failCause(/*#__PURE__*/causeInterrupt());\n/**\n * Flag the effect as uninterruptible, which means that when the effect is\n * interrupted, it will be allowed to continue running until completion.\n *\n * @since 3.4.0\n * @experimental\n * @category flags\n */\nexport const uninterruptible = self => withMicroFiber(fiber => {\n if (!fiber.interruptible) return self;\n fiber.interruptible = false;\n fiber._stack.push(setInterruptible(true));\n return self;\n});\nconst setInterruptible = /*#__PURE__*/makePrimitive({\n op: \"SetInterruptible\",\n ensure(fiber) {\n fiber.interruptible = this[args];\n if (fiber._interrupted && fiber.interruptible) {\n return () => exitInterrupt;\n }\n }\n});\n/**\n * Flag the effect as interruptible, which means that when the effect is\n * interrupted, it will be interrupted immediately.\n *\n * @since 3.4.0\n * @experimental\n * @category flags\n */\nexport const interruptible = self => withMicroFiber(fiber => {\n if (fiber.interruptible) return self;\n fiber.interruptible = true;\n fiber._stack.push(setInterruptible(false));\n if (fiber._interrupted) return exitInterrupt;\n return self;\n});\n/**\n * Wrap the given `Micro` effect in an uninterruptible region, preventing the\n * effect from being aborted.\n *\n * You can use the `restore` function to restore a `Micro` effect to the\n * interruptibility state before the `uninterruptibleMask` was applied.\n *\n * @example\n * ```ts\n * import * as Micro from \"effect/Micro\"\n *\n * Micro.uninterruptibleMask((restore) =>\n * Micro.sleep(1000).pipe( // uninterruptible\n * Micro.andThen(restore(Micro.sleep(1000))) // interruptible\n * )\n * )\n * ```\n *\n * @since 3.4.0\n * @experimental\n * @category interruption\n */\nexport const uninterruptibleMask = f => withMicroFiber(fiber => {\n if (!fiber.interruptible) return f(identity);\n fiber.interruptible = false;\n fiber._stack.push(setInterruptible(true));\n return f(interruptible);\n});\n/**\n * Runs all the provided effects in sequence respecting the structure provided in input.\n *\n * Supports multiple arguments, a single argument tuple / array or record / struct.\n *\n * @since 3.4.0\n * @experimental\n * @category collecting & elements\n */\nexport const all = (arg, options) => {\n if (Array.isArray(arg) || isIterable(arg)) {\n return forEach(arg, identity, options);\n } else if (options?.discard) {\n return forEach(Object.values(arg), identity, options);\n }\n return suspend(() => {\n const out = {};\n return as(forEach(Object.entries(arg), ([key, effect]) => map(effect, value => {\n out[key] = value;\n }), {\n discard: true,\n concurrency: options?.concurrency\n }), out);\n });\n};\n/**\n * @since 3.11.0\n * @experimental\n * @category collecting & elements\n */\nexport const whileLoop = /*#__PURE__*/makePrimitive({\n op: \"While\",\n contA(value, fiber) {\n this[args].step(value);\n if (this[args].while()) {\n fiber._stack.push(this);\n return this[args].body();\n }\n return exitVoid;\n },\n eval(fiber) {\n if (this[args].while()) {\n fiber._stack.push(this);\n return this[args].body();\n }\n return exitVoid;\n }\n});\n/**\n * For each element of the provided iterable, run the effect and collect the\n * results.\n *\n * If the `discard` option is set to `true`, the results will be discarded and\n * the effect will return `void`.\n *\n * The `concurrency` option can be set to control how many effects are run\n * concurrently. By default, the effects are run sequentially.\n *\n * @since 3.4.0\n * @experimental\n * @category collecting & elements\n */\nexport const forEach = (iterable, f, options) => withMicroFiber(parent => {\n const concurrencyOption = options?.concurrency === \"inherit\" ? parent.getRef(CurrentConcurrency) : options?.concurrency ?? 1;\n const concurrency = concurrencyOption === \"unbounded\" ? Number.POSITIVE_INFINITY : Math.max(1, concurrencyOption);\n const items = Arr.fromIterable(iterable);\n let length = items.length;\n if (length === 0) {\n return options?.discard ? void_ : succeed([]);\n }\n const out = options?.discard ? undefined : new Array(length);\n let index = 0;\n if (concurrency === 1) {\n return as(whileLoop({\n while: () => index < items.length,\n body: () => f(items[index], index),\n step: out ? b => out[index++] = b : _ => index++\n }), out);\n }\n return async(resume => {\n const fibers = new Set();\n let result = undefined;\n let inProgress = 0;\n let doneCount = 0;\n let pumping = false;\n let interrupted = false;\n function pump() {\n pumping = true;\n while (inProgress < concurrency && index < length) {\n const currentIndex = index;\n const item = items[currentIndex];\n index++;\n inProgress++;\n try {\n const child = unsafeFork(parent, f(item, currentIndex), true, true);\n fibers.add(child);\n child.addObserver(exit => {\n fibers.delete(child);\n if (interrupted) {\n return;\n } else if (exit._tag === \"Failure\") {\n if (result === undefined) {\n result = exit;\n length = index;\n fibers.forEach(fiber => fiber.unsafeInterrupt());\n }\n } else if (out !== undefined) {\n out[currentIndex] = exit.value;\n }\n doneCount++;\n inProgress--;\n if (doneCount === length) {\n resume(result ?? succeed(out));\n } else if (!pumping && inProgress < concurrency) {\n pump();\n }\n });\n } catch (err) {\n result = exitDie(err);\n length = index;\n fibers.forEach(fiber => fiber.unsafeInterrupt());\n }\n }\n pumping = false;\n }\n pump();\n return suspend(() => {\n interrupted = true;\n index = length;\n return fiberInterruptAll(fibers);\n });\n });\n});\n/**\n * Effectfully filter the elements of the provided iterable.\n *\n * Use the `concurrency` option to control how many elements are processed\n * concurrently.\n *\n * @since 3.4.0\n * @experimental\n * @category collecting & elements\n */\nexport const filter = (iterable, f, options) => filterMap(iterable, a => map(f(a), pass => {\n pass = options?.negate ? !pass : pass;\n return pass ? Option.some(a) : Option.none();\n}), options);\n/**\n * Effectfully filter the elements of the provided iterable.\n *\n * Use the `concurrency` option to control how many elements are processed\n * concurrently.\n *\n * @since 3.4.0\n * @experimental\n * @category collecting & elements\n */\nexport const filterMap = (iterable, f, options) => suspend(() => {\n const out = [];\n return as(forEach(iterable, a => map(f(a), o => {\n if (o._tag === \"Some\") {\n out.push(o.value);\n }\n }), {\n discard: true,\n concurrency: options?.concurrency\n }), out);\n});\n// ----------------------------------------------------------------------------\n// do notation\n// ----------------------------------------------------------------------------\n/**\n * Start a do notation block.\n *\n * @since 3.4.0\n * @experimental\n * @category do notation\n */\nexport const Do = /*#__PURE__*/succeed({});\n/**\n * Bind the success value of this `Micro` effect to the provided name.\n *\n * @since 3.4.0\n * @experimental\n * @category do notation\n */\nexport const bindTo = /*#__PURE__*/doNotation.bindTo(map);\n/**\n * Bind the success value of this `Micro` effect to the provided name.\n *\n * @since 3.4.0\n * @experimental\n * @category do notation\n */\nexport const bind = /*#__PURE__*/doNotation.bind(map, flatMap);\nconst let_ = /*#__PURE__*/doNotation.let_(map);\nexport {\n/**\n * Bind the result of a synchronous computation to the given name.\n *\n * @since 3.4.0\n * @experimental\n * @category do notation\n */\nlet_ as let };\n// ----------------------------------------------------------------------------\n// fibers & forking\n// ----------------------------------------------------------------------------\n/**\n * Run the `Micro` effect in a new `MicroFiber` that can be awaited, joined, or\n * aborted.\n *\n * When the parent `Micro` finishes, this `Micro` will be aborted.\n *\n * @since 3.4.0\n * @experimental\n * @category fiber & forking\n */\nexport const fork = self => withMicroFiber(fiber => {\n fiberMiddleware.interruptChildren ??= fiberInterruptChildren;\n return succeed(unsafeFork(fiber, self));\n});\nconst unsafeFork = (parent, effect, immediate = false, daemon = false) => {\n const child = new MicroFiberImpl(parent.context, parent.interruptible);\n if (!daemon) {\n parent.children().add(child);\n child.addObserver(() => parent.children().delete(child));\n }\n if (immediate) {\n child.evaluate(effect);\n } else {\n parent.getRef(CurrentScheduler).scheduleTask(() => child.evaluate(effect), 0);\n }\n return child;\n};\n/**\n * Run the `Micro` effect in a new `MicroFiber` that can be awaited, joined, or\n * aborted.\n *\n * It will not be aborted when the parent `Micro` finishes.\n *\n * @since 3.4.0\n * @experimental\n * @category fiber & forking\n */\nexport const forkDaemon = self => withMicroFiber(fiber => succeed(unsafeFork(fiber, self, false, true)));\n/**\n * Run the `Micro` effect in a new `MicroFiber` that can be awaited, joined, or\n * aborted.\n *\n * The lifetime of the handle will be attached to the provided `MicroScope`.\n *\n * @since 3.4.0\n * @experimental\n * @category fiber & forking\n */\nexport const forkIn = /*#__PURE__*/dual(2, (self, scope) => uninterruptibleMask(restore => flatMap(scope.fork, scope => tap(restore(forkDaemon(onExit(self, exit => scope.close(exit)))), fiber => scope.addFinalizer(_ => fiberInterrupt(fiber))))));\n/**\n * Run the `Micro` effect in a new `MicroFiber` that can be awaited, joined, or\n * aborted.\n *\n * The lifetime of the handle will be attached to the current `MicroScope`.\n *\n * @since 3.4.0\n * @experimental\n * @category fiber & forking\n */\nexport const forkScoped = self => flatMap(scope, scope => forkIn(self, scope));\n// ----------------------------------------------------------------------------\n// execution\n// ----------------------------------------------------------------------------\n/**\n * Execute the `Micro` effect and return a `MicroFiber` that can be awaited, joined,\n * or aborted.\n *\n * You can listen for the result by adding an observer using the handle's\n * `addObserver` method.\n *\n * @example\n * ```ts\n * import * as Micro from \"effect/Micro\"\n *\n * const handle = Micro.succeed(42).pipe(\n * Micro.delay(1000),\n * Micro.runFork\n * )\n *\n * handle.addObserver((exit) => {\n * console.log(exit)\n * })\n * ```\n *\n * @since 3.4.0\n * @experimental\n * @category execution\n */\nexport const runFork = (effect, options) => {\n const fiber = new MicroFiberImpl(CurrentScheduler.context(options?.scheduler ?? new MicroSchedulerDefault()));\n fiber.evaluate(effect);\n if (options?.signal) {\n if (options.signal.aborted) {\n fiber.unsafeInterrupt();\n } else {\n const abort = () => fiber.unsafeInterrupt();\n options.signal.addEventListener(\"abort\", abort, {\n once: true\n });\n fiber.addObserver(() => options.signal.removeEventListener(\"abort\", abort));\n }\n }\n return fiber;\n};\n/**\n * Execute the `Micro` effect and return a `Promise` that resolves with the\n * `MicroExit` of the computation.\n *\n * @since 3.4.6\n * @experimental\n * @category execution\n */\nexport const runPromiseExit = (effect, options) => new Promise((resolve, _reject) => {\n const handle = runFork(effect, options);\n handle.addObserver(resolve);\n});\n/**\n * Execute the `Micro` effect and return a `Promise` that resolves with the\n * successful value of the computation.\n *\n * @since 3.4.0\n * @experimental\n * @category execution\n */\nexport const runPromise = (effect, options) => runPromiseExit(effect, options).then(exit => {\n if (exit._tag === \"Failure\") {\n throw exit.cause;\n }\n return exit.value;\n});\n/**\n * Attempt to execute the `Micro` effect synchronously and return the `MicroExit`.\n *\n * If any asynchronous effects are encountered, the function will return a\n * `CauseDie` containing the `MicroFiber`.\n *\n * @since 3.4.6\n * @experimental\n * @category execution\n */\nexport const runSyncExit = effect => {\n const scheduler = new MicroSchedulerDefault();\n const fiber = runFork(effect, {\n scheduler\n });\n scheduler.flush();\n return fiber._exit ?? exitDie(fiber);\n};\n/**\n * Attempt to execute the `Micro` effect synchronously and return the success\n * value.\n *\n * @since 3.4.0\n * @experimental\n * @category execution\n */\nexport const runSync = effect => {\n const exit = runSyncExit(effect);\n if (exit._tag === \"Failure\") throw exit.cause;\n return exit.value;\n};\nconst YieldableError = /*#__PURE__*/function () {\n class YieldableError extends globalThis.Error {}\n // @effect-diagnostics-next-line floatingEffect:off\n Object.assign(YieldableError.prototype, MicroProto, StructuralPrototype, {\n [identifier]: \"Failure\",\n [evaluate]() {\n return fail(this);\n },\n toString() {\n return this.message ? `${this.name}: ${this.message}` : this.name;\n },\n toJSON() {\n return {\n ...this\n };\n },\n [NodeInspectSymbol]() {\n const stack = this.stack;\n if (stack) {\n return `${this.toString()}\\n${stack.split(\"\\n\").slice(1).join(\"\\n\")}`;\n }\n return this.toString();\n }\n });\n return YieldableError;\n}();\n/**\n * @since 3.4.0\n * @experimental\n * @category errors\n */\nexport const Error = /*#__PURE__*/function () {\n return class extends YieldableError {\n constructor(args) {\n super();\n if (args) {\n Object.assign(this, args);\n }\n }\n };\n}();\n/**\n * @since 3.4.0\n * @experimental\n * @category errors\n */\nexport const TaggedError = tag => {\n class Base extends Error {\n _tag = tag;\n }\n ;\n Base.prototype.name = tag;\n return Base;\n};\n/**\n * Represents a checked exception which occurs when an expected element was\n * unable to be found.\n *\n * @since 3.4.4\n * @experimental\n * @category errors\n */\nexport class NoSuchElementException extends /*#__PURE__*/TaggedError(\"NoSuchElementException\") {}\n/**\n * Represents a checked exception which occurs when a timeout occurs.\n *\n * @since 3.4.4\n * @experimental\n * @category errors\n */\nexport class TimeoutException extends /*#__PURE__*/TaggedError(\"TimeoutException\") {}\n//# sourceMappingURL=Micro.js.map","/**\n * @since 2.0.0\n */\nimport { dual } from \"./Function.js\";\nimport { globalValue } from \"./GlobalValue.js\";\nimport * as core from \"./internal/core.js\";\n/**\n * @since 2.0.0\n * @category utils\n */\nexport class PriorityBuckets {\n /**\n * @since 2.0.0\n */\n buckets = [];\n /**\n * @since 2.0.0\n */\n scheduleTask(task, priority) {\n const length = this.buckets.length;\n let bucket = undefined;\n let index = 0;\n for (; index < length; index++) {\n if (this.buckets[index][0] <= priority) {\n bucket = this.buckets[index];\n } else {\n break;\n }\n }\n if (bucket && bucket[0] === priority) {\n bucket[1].push(task);\n } else if (index === length) {\n this.buckets.push([priority, [task]]);\n } else {\n this.buckets.splice(index, 0, [priority, [task]]);\n }\n }\n}\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport class MixedScheduler {\n maxNextTickBeforeTimer;\n /**\n * @since 2.0.0\n */\n running = false;\n /**\n * @since 2.0.0\n */\n tasks = /*#__PURE__*/new PriorityBuckets();\n constructor(\n /**\n * @since 2.0.0\n */\n maxNextTickBeforeTimer) {\n this.maxNextTickBeforeTimer = maxNextTickBeforeTimer;\n }\n /**\n * @since 2.0.0\n */\n starveInternal(depth) {\n const tasks = this.tasks.buckets;\n this.tasks.buckets = [];\n for (const [_, toRun] of tasks) {\n for (let i = 0; i < toRun.length; i++) {\n toRun[i]();\n }\n }\n if (this.tasks.buckets.length === 0) {\n this.running = false;\n } else {\n this.starve(depth);\n }\n }\n /**\n * @since 2.0.0\n */\n starve(depth = 0) {\n if (depth >= this.maxNextTickBeforeTimer) {\n setTimeout(() => this.starveInternal(0), 0);\n } else {\n Promise.resolve(void 0).then(() => this.starveInternal(depth + 1));\n }\n }\n /**\n * @since 2.0.0\n */\n shouldYield(fiber) {\n return fiber.currentOpCount > fiber.getFiberRef(core.currentMaxOpsBeforeYield) ? fiber.getFiberRef(core.currentSchedulingPriority) : false;\n }\n /**\n * @since 2.0.0\n */\n scheduleTask(task, priority) {\n this.tasks.scheduleTask(task, priority);\n if (!this.running) {\n this.running = true;\n this.starve();\n }\n }\n}\n/**\n * @since 2.0.0\n * @category schedulers\n */\nexport const defaultScheduler = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Scheduler/defaultScheduler\"), () => new MixedScheduler(2048));\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport class SyncScheduler {\n /**\n * @since 2.0.0\n */\n tasks = /*#__PURE__*/new PriorityBuckets();\n /**\n * @since 2.0.0\n */\n deferred = false;\n /**\n * @since 2.0.0\n */\n scheduleTask(task, priority) {\n if (this.deferred) {\n defaultScheduler.scheduleTask(task, priority);\n } else {\n this.tasks.scheduleTask(task, priority);\n }\n }\n /**\n * @since 2.0.0\n */\n shouldYield(fiber) {\n return fiber.currentOpCount > fiber.getFiberRef(core.currentMaxOpsBeforeYield) ? fiber.getFiberRef(core.currentSchedulingPriority) : false;\n }\n /**\n * @since 2.0.0\n */\n flush() {\n while (this.tasks.buckets.length > 0) {\n const tasks = this.tasks.buckets;\n this.tasks.buckets = [];\n for (const [_, toRun] of tasks) {\n for (let i = 0; i < toRun.length; i++) {\n toRun[i]();\n }\n }\n }\n this.deferred = true;\n }\n}\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport class ControlledScheduler {\n /**\n * @since 2.0.0\n */\n tasks = /*#__PURE__*/new PriorityBuckets();\n /**\n * @since 2.0.0\n */\n deferred = false;\n /**\n * @since 2.0.0\n */\n scheduleTask(task, priority) {\n if (this.deferred) {\n defaultScheduler.scheduleTask(task, priority);\n } else {\n this.tasks.scheduleTask(task, priority);\n }\n }\n /**\n * @since 2.0.0\n */\n shouldYield(fiber) {\n return fiber.currentOpCount > fiber.getFiberRef(core.currentMaxOpsBeforeYield) ? fiber.getFiberRef(core.currentSchedulingPriority) : false;\n }\n /**\n * @since 2.0.0\n */\n step() {\n const tasks = this.tasks.buckets;\n this.tasks.buckets = [];\n for (const [_, toRun] of tasks) {\n for (let i = 0; i < toRun.length; i++) {\n toRun[i]();\n }\n }\n }\n}\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const makeMatrix = (...record) => {\n const index = record.sort(([p0], [p1]) => p0 < p1 ? -1 : p0 > p1 ? 1 : 0);\n return {\n shouldYield(fiber) {\n for (const scheduler of record) {\n const priority = scheduler[1].shouldYield(fiber);\n if (priority !== false) {\n return priority;\n }\n }\n return false;\n },\n scheduleTask(task, priority) {\n let scheduler = undefined;\n for (const i of index) {\n if (priority >= i[0]) {\n scheduler = i[1];\n } else {\n return (scheduler ?? defaultScheduler).scheduleTask(task, priority);\n }\n }\n return (scheduler ?? defaultScheduler).scheduleTask(task, priority);\n }\n };\n};\n/**\n * @since 2.0.0\n * @category utilities\n */\nexport const defaultShouldYield = fiber => {\n return fiber.currentOpCount > fiber.getFiberRef(core.currentMaxOpsBeforeYield) ? fiber.getFiberRef(core.currentSchedulingPriority) : false;\n};\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const make = (scheduleTask, shouldYield = defaultShouldYield) => ({\n scheduleTask,\n shouldYield\n});\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const makeBatched = (callback, shouldYield = defaultShouldYield) => {\n let running = false;\n const tasks = new PriorityBuckets();\n const starveInternal = () => {\n const tasksToRun = tasks.buckets;\n tasks.buckets = [];\n for (const [_, toRun] of tasksToRun) {\n for (let i = 0; i < toRun.length; i++) {\n toRun[i]();\n }\n }\n if (tasks.buckets.length === 0) {\n running = false;\n } else {\n starve();\n }\n };\n const starve = () => callback(starveInternal);\n return make((task, priority) => {\n tasks.scheduleTask(task, priority);\n if (!running) {\n running = true;\n starve();\n }\n }, shouldYield);\n};\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const timer = (ms, shouldYield = defaultShouldYield) => make(task => setTimeout(task, ms), shouldYield);\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const timerBatched = (ms, shouldYield = defaultShouldYield) => makeBatched(task => setTimeout(task, ms), shouldYield);\n/** @internal */\nexport const currentScheduler = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/FiberRef/currentScheduler\"), () => core.fiberRefUnsafeMake(defaultScheduler));\n/** @internal */\nexport const withScheduler = /*#__PURE__*/dual(2, (self, scheduler) => core.fiberRefLocally(self, currentScheduler, scheduler));\n//# sourceMappingURL=Scheduler.js.map","import * as Chunk from \"../Chunk.js\";\nimport * as Either from \"../Either.js\";\nimport * as Equal from \"../Equal.js\";\nimport * as HashMap from \"../HashMap.js\";\nimport * as List from \"../List.js\";\nimport * as Option from \"../Option.js\";\nimport { hasProperty } from \"../Predicate.js\";\n/** @internal */\nexport const empty = {\n _tag: \"Empty\"\n};\n/**\n * Combines this collection of blocked requests with the specified collection\n * of blocked requests, in parallel.\n *\n * @internal\n */\nexport const par = (self, that) => ({\n _tag: \"Par\",\n left: self,\n right: that\n});\n/**\n * Combines this collection of blocked requests with the specified collection\n * of blocked requests, in sequence.\n *\n * @internal\n */\nexport const seq = (self, that) => ({\n _tag: \"Seq\",\n left: self,\n right: that\n});\n/**\n * Constructs a collection of blocked requests from the specified blocked\n * request and data source.\n *\n * @internal\n */\nexport const single = (dataSource, blockedRequest) => ({\n _tag: \"Single\",\n dataSource: dataSource,\n blockedRequest\n});\n/** @internal */\nexport const MapRequestResolversReducer = f => ({\n emptyCase: () => empty,\n parCase: (left, right) => par(left, right),\n seqCase: (left, right) => seq(left, right),\n singleCase: (dataSource, blockedRequest) => single(f(dataSource), blockedRequest)\n});\n/**\n * Transforms all data sources with the specified data source aspect, which\n * can change the environment type of data sources but must preserve the\n * request type of each data source.\n *\n * @internal\n */\nexport const mapRequestResolvers = (self, f) => reduce(self, MapRequestResolversReducer(f));\n/**\n * Folds over the cases of this collection of blocked requests with the\n * specified functions.\n *\n * @internal\n */\nexport const reduce = (self, reducer) => {\n let input = List.of(self);\n let output = List.empty();\n while (List.isCons(input)) {\n const current = input.head;\n switch (current._tag) {\n case \"Empty\":\n {\n output = List.cons(Either.right(reducer.emptyCase()), output);\n input = input.tail;\n break;\n }\n case \"Par\":\n {\n output = List.cons(Either.left({\n _tag: \"ParCase\"\n }), output);\n input = List.cons(current.left, List.cons(current.right, input.tail));\n break;\n }\n case \"Seq\":\n {\n output = List.cons(Either.left({\n _tag: \"SeqCase\"\n }), output);\n input = List.cons(current.left, List.cons(current.right, input.tail));\n break;\n }\n case \"Single\":\n {\n const result = reducer.singleCase(current.dataSource, current.blockedRequest);\n output = List.cons(Either.right(result), output);\n input = input.tail;\n break;\n }\n }\n }\n const result = List.reduce(output, List.empty(), (acc, current) => {\n switch (current._tag) {\n case \"Left\":\n {\n const left = List.unsafeHead(acc);\n const right = List.unsafeHead(List.unsafeTail(acc));\n const tail = List.unsafeTail(List.unsafeTail(acc));\n switch (current.left._tag) {\n case \"ParCase\":\n {\n return List.cons(reducer.parCase(left, right), tail);\n }\n case \"SeqCase\":\n {\n return List.cons(reducer.seqCase(left, right), tail);\n }\n }\n }\n case \"Right\":\n {\n return List.cons(current.right, acc);\n }\n }\n });\n if (List.isNil(result)) {\n throw new Error(\"BUG: BlockedRequests.reduce - please report an issue at https://github.com/Effect-TS/effect/issues\");\n }\n return result.head;\n};\n/**\n * Flattens a collection of blocked requests into a collection of pipelined\n * and batched requests that can be submitted for execution.\n *\n * @internal\n */\nexport const flatten = self => {\n let current = List.of(self);\n let updated = List.empty();\n // eslint-disable-next-line no-constant-condition\n while (1) {\n const [parallel, sequential] = List.reduce(current, [parallelCollectionEmpty(), List.empty()], ([parallel, sequential], blockedRequest) => {\n const [par, seq] = step(blockedRequest);\n return [parallelCollectionCombine(parallel, par), List.appendAll(sequential, seq)];\n });\n updated = merge(updated, parallel);\n if (List.isNil(sequential)) {\n return List.reverse(updated);\n }\n current = sequential;\n }\n throw new Error(\"BUG: BlockedRequests.flatten - please report an issue at https://github.com/Effect-TS/effect/issues\");\n};\n/**\n * Takes one step in evaluating a collection of blocked requests, returning a\n * collection of blocked requests that can be performed in parallel and a list\n * of blocked requests that must be performed sequentially after those\n * requests.\n */\nconst step = requests => {\n let current = requests;\n let parallel = parallelCollectionEmpty();\n let stack = List.empty();\n let sequential = List.empty();\n // eslint-disable-next-line no-constant-condition\n while (1) {\n switch (current._tag) {\n case \"Empty\":\n {\n if (List.isNil(stack)) {\n return [parallel, sequential];\n }\n current = stack.head;\n stack = stack.tail;\n break;\n }\n case \"Par\":\n {\n stack = List.cons(current.right, stack);\n current = current.left;\n break;\n }\n case \"Seq\":\n {\n const left = current.left;\n const right = current.right;\n switch (left._tag) {\n case \"Empty\":\n {\n current = right;\n break;\n }\n case \"Par\":\n {\n const l = left.left;\n const r = left.right;\n current = par(seq(l, right), seq(r, right));\n break;\n }\n case \"Seq\":\n {\n const l = left.left;\n const r = left.right;\n current = seq(l, seq(r, right));\n break;\n }\n case \"Single\":\n {\n current = left;\n sequential = List.cons(right, sequential);\n break;\n }\n }\n break;\n }\n case \"Single\":\n {\n parallel = parallelCollectionAdd(parallel, current);\n if (List.isNil(stack)) {\n return [parallel, sequential];\n }\n current = stack.head;\n stack = stack.tail;\n break;\n }\n }\n }\n throw new Error(\"BUG: BlockedRequests.step - please report an issue at https://github.com/Effect-TS/effect/issues\");\n};\n/**\n * Merges a collection of requests that must be executed sequentially with a\n * collection of requests that can be executed in parallel. If the collections\n * are both from the same single data source then the requests can be\n * pipelined while preserving ordering guarantees.\n */\nconst merge = (sequential, parallel) => {\n if (List.isNil(sequential)) {\n return List.of(parallelCollectionToSequentialCollection(parallel));\n }\n if (parallelCollectionIsEmpty(parallel)) {\n return sequential;\n }\n const seqHeadKeys = sequentialCollectionKeys(sequential.head);\n const parKeys = parallelCollectionKeys(parallel);\n if (seqHeadKeys.length === 1 && parKeys.length === 1 && Equal.equals(seqHeadKeys[0], parKeys[0])) {\n return List.cons(sequentialCollectionCombine(sequential.head, parallelCollectionToSequentialCollection(parallel)), sequential.tail);\n }\n return List.cons(parallelCollectionToSequentialCollection(parallel), sequential);\n};\n//\n// circular\n//\n/** @internal */\nexport const EntryTypeId = /*#__PURE__*/Symbol.for(\"effect/RequestBlock/Entry\");\n/** @internal */\nclass EntryImpl {\n request;\n result;\n listeners;\n ownerId;\n state;\n [EntryTypeId] = blockedRequestVariance;\n constructor(request, result, listeners, ownerId, state) {\n this.request = request;\n this.result = result;\n this.listeners = listeners;\n this.ownerId = ownerId;\n this.state = state;\n }\n}\nconst blockedRequestVariance = {\n /* c8 ignore next */\n _R: _ => _\n};\n/** @internal */\nexport const isEntry = u => hasProperty(u, EntryTypeId);\n/** @internal */\nexport const makeEntry = options => new EntryImpl(options.request, options.result, options.listeners, options.ownerId, options.state);\n/** @internal */\nexport const RequestBlockParallelTypeId = /*#__PURE__*/Symbol.for(\"effect/RequestBlock/RequestBlockParallel\");\nconst parallelVariance = {\n /* c8 ignore next */\n _R: _ => _\n};\nclass ParallelImpl {\n map;\n [RequestBlockParallelTypeId] = parallelVariance;\n constructor(map) {\n this.map = map;\n }\n}\n/** @internal */\nexport const parallelCollectionEmpty = () => new ParallelImpl(HashMap.empty());\n/** @internal */\nexport const parallelCollectionMake = (dataSource, blockedRequest) => new ParallelImpl(HashMap.make([dataSource, Chunk.of(blockedRequest)]));\n/** @internal */\nexport const parallelCollectionAdd = (self, blockedRequest) => new ParallelImpl(HashMap.modifyAt(self.map, blockedRequest.dataSource, _ => Option.orElseSome(Option.map(_, Chunk.append(blockedRequest.blockedRequest)), () => Chunk.of(blockedRequest.blockedRequest))));\n/** @internal */\nexport const parallelCollectionCombine = (self, that) => new ParallelImpl(HashMap.reduce(self.map, that.map, (map, value, key) => HashMap.set(map, key, Option.match(HashMap.get(map, key), {\n onNone: () => value,\n onSome: other => Chunk.appendAll(value, other)\n}))));\n/** @internal */\nexport const parallelCollectionIsEmpty = self => HashMap.isEmpty(self.map);\n/** @internal */\nexport const parallelCollectionKeys = self => Array.from(HashMap.keys(self.map));\n/** @internal */\nexport const parallelCollectionToSequentialCollection = self => sequentialCollectionMake(HashMap.map(self.map, x => Chunk.of(x)));\n// TODO\n// /** @internal */\n// export const parallelCollectionToChunk = (\n// self: ParallelCollection\n// ): Array<[RequestResolver.RequestResolver, Array>]> => Array.from(self.map) as any\n/** @internal */\nexport const SequentialCollectionTypeId = /*#__PURE__*/Symbol.for(\"effect/RequestBlock/RequestBlockSequential\");\nconst sequentialVariance = {\n /* c8 ignore next */\n _R: _ => _\n};\nclass SequentialImpl {\n map;\n [SequentialCollectionTypeId] = sequentialVariance;\n constructor(map) {\n this.map = map;\n }\n}\n/** @internal */\nexport const sequentialCollectionMake = map => new SequentialImpl(map);\n/** @internal */\nexport const sequentialCollectionCombine = (self, that) => new SequentialImpl(HashMap.reduce(that.map, self.map, (map, value, key) => HashMap.set(map, key, Option.match(HashMap.get(map, key), {\n onNone: () => Chunk.empty(),\n onSome: a => Chunk.appendAll(a, value)\n}))));\n/** @internal */\nexport const sequentialCollectionIsEmpty = self => HashMap.isEmpty(self.map);\n/** @internal */\nexport const sequentialCollectionKeys = self => Array.from(HashMap.keys(self.map));\n/** @internal */\nexport const sequentialCollectionToChunk = self => Array.from(self.map);\n//# sourceMappingURL=blockedRequests.js.map","import { globalValue } from \"../GlobalValue.js\";\nimport { fiberRefUnsafeMake } from \"./core.js\";\n/** @internal */\nexport const currentRequestMap = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/FiberRef/currentRequestMap\"), () => fiberRefUnsafeMake(new Map()));\n//# sourceMappingURL=completedRequestMap.js.map","import * as core from \"./core.js\";\n/** @internal */\nexport const match = (concurrency, sequential, unbounded, bounded) => {\n switch (concurrency) {\n case undefined:\n return sequential();\n case \"unbounded\":\n return unbounded();\n case \"inherit\":\n return core.fiberRefGetWith(core.currentConcurrency, concurrency => concurrency === \"unbounded\" ? unbounded() : concurrency > 1 ? bounded(concurrency) : sequential());\n default:\n return concurrency > 1 ? bounded(concurrency) : sequential();\n }\n};\n/** @internal */\nexport const matchSimple = (concurrency, sequential, concurrent) => {\n switch (concurrency) {\n case undefined:\n return sequential();\n case \"unbounded\":\n return concurrent();\n case \"inherit\":\n return core.fiberRefGetWith(core.currentConcurrency, concurrency => concurrency === \"unbounded\" || concurrency > 1 ? concurrent() : sequential());\n default:\n return concurrency > 1 ? concurrent() : sequential();\n }\n};\n//# sourceMappingURL=concurrency.js.map","import * as core from \"./internal/core.js\";\n/**\n * Returns `true` if the specified value is an `Exit`, `false` otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isExit = core.exitIsExit;\n/**\n * Returns `true` if the specified `Exit` is a `Failure`, `false` otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isFailure = core.exitIsFailure;\n/**\n * Returns `true` if the specified `Exit` is a `Success`, `false` otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isSuccess = core.exitIsSuccess;\n/**\n * Returns `true` if the specified exit is a `Failure` **and** the `Cause` of\n * the failure was due to interruption, `false` otherwise.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const isInterrupted = core.exitIsInterrupted;\n/**\n * Maps the `Success` value of the specified exit to the provided constant\n * value.\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const as = core.exitAs;\n/**\n * Maps the `Success` value of the specified exit to a void.\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const asVoid = core.exitAsVoid;\n/**\n * Returns a `Some>` if the specified exit is a `Failure`, `None`\n * otherwise.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const causeOption = core.exitCauseOption;\n/**\n * Collects all of the specified exit values into a `Some, E>>`. If\n * the provided iterable contains no elements, `None` will be returned.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const all = core.exitCollectAll;\n/**\n * Constructs a new `Exit.Failure` from the specified unrecoverable defect.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const die = core.exitDie;\n/**\n * Executes the predicate on the value of the specified exit if it is a\n * `Success`, otherwise returns `false`.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const exists = core.exitExists;\n/**\n * Constructs a new `Exit.Failure` from the specified recoverable error of type\n * `E`.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const fail = core.exitFail;\n/**\n * Constructs a new `Exit.Failure` from the specified `Cause` of type `E`.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const failCause = core.exitFailCause;\n/**\n * @since 2.0.0\n * @category sequencing\n */\nexport const flatMap = core.exitFlatMap;\n/**\n * @since 2.0.0\n * @category sequencing\n */\nexport const flatMapEffect = core.exitFlatMapEffect;\n/**\n * @since 2.0.0\n * @category sequencing\n */\nexport const flatten = core.exitFlatten;\n/**\n * @since 2.0.0\n * @category traversing\n */\nexport const forEachEffect = core.exitForEachEffect;\n/**\n * Converts an `Either` into an `Exit`.\n *\n * @since 2.0.0\n * @category conversions\n */\nexport const fromEither = core.exitFromEither;\n/**\n * Converts an `Option` into an `Exit`.\n *\n * @since 2.0.0\n * @category conversions\n */\nexport const fromOption = core.exitFromOption;\n/**\n * Returns the `A` if specified exit is a `Success`, otherwise returns the\n * alternate `A` value computed from the specified function which receives the\n * `Cause` of the exit `Failure`.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const getOrElse = core.exitGetOrElse;\n/**\n * Constructs a new `Exit.Failure` from the specified `FiberId` indicating that\n * the `Fiber` running an `Effect` workflow was terminated due to interruption.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const interrupt = core.exitInterrupt;\n/**\n * Maps over the `Success` value of the specified exit using the provided\n * function.\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const map = core.exitMap;\n/**\n * Maps over the `Success` and `Failure` cases of the specified exit using the\n * provided functions.\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const mapBoth = core.exitMapBoth;\n/**\n * Maps over the error contained in the `Failure` of the specified exit using\n * the provided function.\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const mapError = core.exitMapError;\n/**\n * Maps over the `Cause` contained in the `Failure` of the specified exit using\n * the provided function.\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const mapErrorCause = core.exitMapErrorCause;\n/**\n * @since 2.0.0\n * @category folding\n */\nexport const match = core.exitMatch;\n/**\n * @since 2.0.0\n * @category folding\n */\nexport const matchEffect = core.exitMatchEffect;\n/**\n * Constructs a new `Exit.Success` containing the specified value of type `A`.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const succeed = core.exitSucceed;\nconst void_ = core.exitVoid;\nexport {\n/**\n * Represents an `Exit` which succeeds with `undefined`.\n *\n * @since 2.0.0\n * @category constructors\n */\nvoid_ as void };\n/**\n * Sequentially zips the this result with the specified result or else returns\n * the failed `Cause`.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zip = core.exitZip;\n/**\n * Sequentially zips the this result with the specified result discarding the\n * second element of the tuple or else returns the failed `Cause`.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zipLeft = core.exitZipLeft;\n/**\n * Sequentially zips the this result with the specified result discarding the\n * first element of the tuple or else returns the failed `Cause`.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zipRight = core.exitZipRight;\n/**\n * Parallelly zips the this result with the specified result or else returns\n * the failed `Cause`.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zipPar = core.exitZipPar;\n/**\n * Parallelly zips the this result with the specified result discarding the\n * second element of the tuple or else returns the failed `Cause`.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zipParLeft = core.exitZipParLeft;\n/**\n * Parallelly zips the this result with the specified result discarding the\n * first element of the tuple or else returns the failed `Cause`.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zipParRight = core.exitZipParRight;\n/**\n * Zips this exit together with that exit using the specified combination\n * functions.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zipWith = core.exitZipWith;\n//# sourceMappingURL=Exit.js.map","/** @internal */\nexport const OP_INTERRUPT_SIGNAL = \"InterruptSignal\";\n/** @internal */\nexport const OP_STATEFUL = \"Stateful\";\n/** @internal */\nexport const OP_RESUME = \"Resume\";\n/** @internal */\nexport const OP_YIELD_NOW = \"YieldNow\";\n/** @internal */\nexport const interruptSignal = cause => ({\n _tag: OP_INTERRUPT_SIGNAL,\n cause\n});\n/** @internal */\nexport const stateful = onFiber => ({\n _tag: OP_STATEFUL,\n onFiber\n});\n/** @internal */\nexport const resume = effect => ({\n _tag: OP_RESUME,\n effect\n});\n/** @internal */\nexport const yieldNow = () => ({\n _tag: OP_YIELD_NOW\n});\n//# sourceMappingURL=fiberMessage.js.map","import * as FiberId from \"../FiberId.js\";\nimport { globalValue } from \"../GlobalValue.js\";\nimport * as FiberMessage from \"./fiberMessage.js\";\n/** @internal */\nconst FiberScopeSymbolKey = \"effect/FiberScope\";\n/** @internal */\nexport const FiberScopeTypeId = /*#__PURE__*/Symbol.for(FiberScopeSymbolKey);\n/** @internal */\nclass Global {\n [FiberScopeTypeId] = FiberScopeTypeId;\n fiberId = FiberId.none;\n roots = /*#__PURE__*/new Set();\n add(_runtimeFlags, child) {\n this.roots.add(child);\n child.addObserver(() => {\n this.roots.delete(child);\n });\n }\n}\n/** @internal */\nclass Local {\n fiberId;\n parent;\n [FiberScopeTypeId] = FiberScopeTypeId;\n constructor(fiberId, parent) {\n this.fiberId = fiberId;\n this.parent = parent;\n }\n add(_runtimeFlags, child) {\n this.parent.tell(FiberMessage.stateful(parentFiber => {\n parentFiber.addChild(child);\n child.addObserver(() => {\n parentFiber.removeChild(child);\n });\n }));\n }\n}\n/** @internal */\nexport const unsafeMake = fiber => {\n return new Local(fiber.id(), fiber);\n};\n/** @internal */\nexport const globalScope = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/FiberScope/Global\"), () => new Global());\n//# sourceMappingURL=fiberScope.js.map","import * as Clock from \"../Clock.js\";\nimport * as Either from \"../Either.js\";\nimport * as Exit from \"../Exit.js\";\nimport * as FiberId from \"../FiberId.js\";\nimport * as FiberStatus from \"../FiberStatus.js\";\nimport { dual, pipe } from \"../Function.js\";\nimport * as HashSet from \"../HashSet.js\";\nimport * as number from \"../Number.js\";\nimport * as Option from \"../Option.js\";\nimport * as order from \"../Order.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport { hasProperty } from \"../Predicate.js\";\nimport * as core from \"./core.js\";\nimport * as effectable from \"./effectable.js\";\nimport * as fiberScope from \"./fiberScope.js\";\nimport * as runtimeFlags from \"./runtimeFlags.js\";\n/** @internal */\nconst FiberSymbolKey = \"effect/Fiber\";\n/** @internal */\nexport const FiberTypeId = /*#__PURE__*/Symbol.for(FiberSymbolKey);\n/** @internal */\nexport const fiberVariance = {\n /* c8 ignore next */\n _E: _ => _,\n /* c8 ignore next */\n _A: _ => _\n};\n/** @internal */\nconst fiberProto = {\n [FiberTypeId]: fiberVariance,\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\n/** @internal */\nconst RuntimeFiberSymbolKey = \"effect/Fiber\";\n/** @internal */\nexport const RuntimeFiberTypeId = /*#__PURE__*/Symbol.for(RuntimeFiberSymbolKey);\n/** @internal */\nexport const Order = /*#__PURE__*/pipe(/*#__PURE__*/order.tuple(number.Order, number.Order), /*#__PURE__*/order.mapInput(fiber => [fiber.id().startTimeMillis, fiber.id().id]));\n/** @internal */\nexport const isFiber = u => hasProperty(u, FiberTypeId);\n/** @internal */\nexport const isRuntimeFiber = self => RuntimeFiberTypeId in self;\n/** @internal */\nexport const _await = self => self.await;\n/** @internal */\nexport const children = self => self.children;\n/** @internal */\nexport const done = exit => {\n const _fiber = {\n ...effectable.CommitPrototype,\n commit() {\n return join(this);\n },\n ...fiberProto,\n id: () => FiberId.none,\n await: core.succeed(exit),\n children: core.succeed([]),\n inheritAll: core.void,\n poll: core.succeed(Option.some(exit)),\n interruptAsFork: () => core.void\n };\n return _fiber;\n};\n/** @internal */\nexport const dump = self => core.map(self.status, status => ({\n id: self.id(),\n status\n}));\n/** @internal */\nexport const dumpAll = fibers => core.forEachSequential(fibers, dump);\n/** @internal */\nexport const fail = error => done(Exit.fail(error));\n/** @internal */\nexport const failCause = cause => done(Exit.failCause(cause));\n/** @internal */\nexport const fromEffect = effect => core.map(core.exit(effect), done);\n/** @internal */\nexport const id = self => self.id();\n/** @internal */\nexport const inheritAll = self => self.inheritAll;\n/** @internal */\nexport const interrupted = fiberId => done(Exit.interrupt(fiberId));\n/** @internal */\nexport const interruptAll = fibers => core.flatMap(core.fiberId, fiberId => pipe(fibers, interruptAllAs(fiberId)));\n/** @internal */\nexport const interruptAllAs = /*#__PURE__*/dual(2, /*#__PURE__*/core.fnUntraced(function* (fibers, fiberId) {\n for (const fiber of fibers) {\n if (isRuntimeFiber(fiber)) {\n fiber.unsafeInterruptAsFork(fiberId);\n continue;\n }\n yield* fiber.interruptAsFork(fiberId);\n }\n for (const fiber of fibers) {\n if (isRuntimeFiber(fiber) && fiber.unsafePoll()) {\n continue;\n }\n yield* fiber.await;\n }\n}));\n/** @internal */\nexport const interruptAsFork = /*#__PURE__*/dual(2, (self, fiberId) => self.interruptAsFork(fiberId));\n/** @internal */\nexport const join = self => core.zipLeft(core.flatten(self.await), self.inheritAll);\n/** @internal */\nexport const map = /*#__PURE__*/dual(2, (self, f) => mapEffect(self, a => core.sync(() => f(a))));\n/** @internal */\nexport const mapEffect = /*#__PURE__*/dual(2, (self, f) => {\n const _fiber = {\n ...effectable.CommitPrototype,\n commit() {\n return join(this);\n },\n ...fiberProto,\n id: () => self.id(),\n await: core.flatMap(self.await, Exit.forEachEffect(f)),\n children: self.children,\n inheritAll: self.inheritAll,\n poll: core.flatMap(self.poll, result => {\n switch (result._tag) {\n case \"None\":\n return core.succeed(Option.none());\n case \"Some\":\n return pipe(Exit.forEachEffect(result.value, f), core.map(Option.some));\n }\n }),\n interruptAsFork: id => self.interruptAsFork(id)\n };\n return _fiber;\n});\n/** @internal */\nexport const mapFiber = /*#__PURE__*/dual(2, (self, f) => core.map(self.await, Exit.match({\n onFailure: cause => failCause(cause),\n onSuccess: a => f(a)\n})));\n/** @internal */\nexport const match = /*#__PURE__*/dual(2, (self, {\n onFiber,\n onRuntimeFiber\n}) => {\n if (isRuntimeFiber(self)) {\n return onRuntimeFiber(self);\n }\n return onFiber(self);\n});\n/** @internal */\nconst _never = {\n ...effectable.CommitPrototype,\n commit() {\n return join(this);\n },\n ...fiberProto,\n id: () => FiberId.none,\n await: core.never,\n children: /*#__PURE__*/core.succeed([]),\n inheritAll: core.never,\n poll: /*#__PURE__*/core.succeed(/*#__PURE__*/Option.none()),\n interruptAsFork: () => core.never\n};\n/** @internal */\nexport const never = _never;\n/** @internal */\nexport const orElse = /*#__PURE__*/dual(2, (self, that) => ({\n ...effectable.CommitPrototype,\n commit() {\n return join(this);\n },\n ...fiberProto,\n id: () => FiberId.getOrElse(self.id(), that.id()),\n await: core.zipWith(self.await, that.await, (exit1, exit2) => Exit.isSuccess(exit1) ? exit1 : exit2),\n children: self.children,\n inheritAll: core.zipRight(that.inheritAll, self.inheritAll),\n poll: core.zipWith(self.poll, that.poll, (option1, option2) => {\n switch (option1._tag) {\n case \"None\":\n {\n return Option.none();\n }\n case \"Some\":\n {\n return Exit.isSuccess(option1.value) ? option1 : option2;\n }\n }\n }),\n interruptAsFork: id => pipe(core.interruptAsFiber(self, id), core.zipRight(pipe(that, core.interruptAsFiber(id))), core.asVoid)\n}));\n/** @internal */\nexport const orElseEither = /*#__PURE__*/dual(2, (self, that) => orElse(map(self, Either.left), map(that, Either.right)));\n/** @internal */\nexport const poll = self => self.poll;\n// forked from https://github.com/sindresorhus/parse-ms/blob/4da2ffbdba02c6e288c08236695bdece0adca173/index.js\n// MIT License\n// Copyright (c) Sindre Sorhus (sindresorhus.com)\n/** @internal */\nconst parseMs = milliseconds => {\n const roundTowardsZero = milliseconds > 0 ? Math.floor : Math.ceil;\n return {\n days: roundTowardsZero(milliseconds / 86400000),\n hours: roundTowardsZero(milliseconds / 3600000) % 24,\n minutes: roundTowardsZero(milliseconds / 60000) % 60,\n seconds: roundTowardsZero(milliseconds / 1000) % 60,\n milliseconds: roundTowardsZero(milliseconds) % 1000,\n microseconds: roundTowardsZero(milliseconds * 1000) % 1000,\n nanoseconds: roundTowardsZero(milliseconds * 1e6) % 1000\n };\n};\n/** @internal */\nconst renderStatus = status => {\n if (FiberStatus.isDone(status)) {\n return \"Done\";\n }\n if (FiberStatus.isRunning(status)) {\n return \"Running\";\n }\n const isInterruptible = runtimeFlags.interruptible(status.runtimeFlags) ? \"interruptible\" : \"uninterruptible\";\n return `Suspended(${isInterruptible})`;\n};\n/** @internal */\nexport const pretty = self => core.flatMap(Clock.currentTimeMillis, now => core.map(dump(self), dump => {\n const time = now - dump.id.startTimeMillis;\n const {\n days,\n hours,\n milliseconds,\n minutes,\n seconds\n } = parseMs(time);\n const lifeMsg = (days === 0 ? \"\" : `${days}d`) + (days === 0 && hours === 0 ? \"\" : `${hours}h`) + (days === 0 && hours === 0 && minutes === 0 ? \"\" : `${minutes}m`) + (days === 0 && hours === 0 && minutes === 0 && seconds === 0 ? \"\" : `${seconds}s`) + `${milliseconds}ms`;\n const waitMsg = FiberStatus.isSuspended(dump.status) ? (() => {\n const ids = FiberId.ids(dump.status.blockingOn);\n return HashSet.size(ids) > 0 ? `waiting on ` + Array.from(ids).map(id => `${id}`).join(\", \") : \"\";\n })() : \"\";\n const statusMsg = renderStatus(dump.status);\n return `[Fiber](#${dump.id.id}) (${lifeMsg}) ${waitMsg}\\n Status: ${statusMsg}`;\n}));\n/** @internal */\nexport const unsafeRoots = () => Array.from(fiberScope.globalScope.roots);\n/** @internal */\nexport const roots = /*#__PURE__*/core.sync(unsafeRoots);\n/** @internal */\nexport const status = self => self.status;\n/** @internal */\nexport const succeed = value => done(Exit.succeed(value));\nconst void_ = /*#__PURE__*/succeed(void 0);\nexport { /** @internal */\nvoid_ as void };\n/** @internal */\nexport const currentFiberURI = \"effect/FiberCurrent\";\n/** @internal */\nexport const getCurrentFiber = () => Option.fromNullable(globalThis[currentFiberURI]);\n//# sourceMappingURL=fiber.js.map","import * as Arr from \"../Array.js\";\nimport * as Context from \"../Context.js\";\nimport * as FiberRefs from \"../FiberRefs.js\";\nimport { constVoid, dual } from \"../Function.js\";\nimport { globalValue } from \"../GlobalValue.js\";\nimport * as HashMap from \"../HashMap.js\";\nimport * as Inspectable from \"../Inspectable.js\";\nimport * as List from \"../List.js\";\nimport * as Option from \"../Option.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport * as Cause from \"./cause.js\";\nimport * as defaultServices from \"./defaultServices.js\";\nimport { consoleTag } from \"./defaultServices/console.js\";\nimport * as fiberId_ from \"./fiberId.js\";\nimport * as logSpan_ from \"./logSpan.js\";\n/** @internal */\nconst LoggerSymbolKey = \"effect/Logger\";\n/** @internal */\nexport const LoggerTypeId = /*#__PURE__*/Symbol.for(LoggerSymbolKey);\nconst loggerVariance = {\n /* c8 ignore next */\n _Message: _ => _,\n /* c8 ignore next */\n _Output: _ => _\n};\n/** @internal */\nexport const makeLogger = log => ({\n [LoggerTypeId]: loggerVariance,\n log,\n pipe() {\n return pipeArguments(this, arguments);\n }\n});\n/** @internal */\nexport const mapInput = /*#__PURE__*/dual(2, (self, f) => makeLogger(options => self.log({\n ...options,\n message: f(options.message)\n})));\n/** @internal */\nexport const mapInputOptions = /*#__PURE__*/dual(2, (self, f) => makeLogger(options => self.log(f(options))));\n/** @internal */\nexport const filterLogLevel = /*#__PURE__*/dual(2, (self, f) => makeLogger(options => f(options.logLevel) ? Option.some(self.log(options)) : Option.none()));\n/** @internal */\nexport const map = /*#__PURE__*/dual(2, (self, f) => makeLogger(options => f(self.log(options))));\n/** @internal */\nexport const none = {\n [LoggerTypeId]: loggerVariance,\n log: constVoid,\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\n/** @internal */\nexport const simple = log => ({\n [LoggerTypeId]: loggerVariance,\n log: ({\n message\n }) => log(message),\n pipe() {\n return pipeArguments(this, arguments);\n }\n});\n/** @internal */\nexport const succeed = value => {\n return simple(() => value);\n};\n/** @internal */\nexport const sync = evaluate => {\n return simple(evaluate);\n};\n/** @internal */\nexport const zip = /*#__PURE__*/dual(2, (self, that) => makeLogger(options => [self.log(options), that.log(options)]));\n/** @internal */\nexport const zipLeft = /*#__PURE__*/dual(2, (self, that) => map(zip(self, that), tuple => tuple[0]));\n/** @internal */\nexport const zipRight = /*#__PURE__*/dual(2, (self, that) => map(zip(self, that), tuple => tuple[1]));\n/**\n * Match strings that do not contain any whitespace characters, double quotes,\n * or equal signs.\n *\n * @internal\n */\nconst textOnly = /^[^\\s\"=]*$/;\n/**\n * Used by both {@link stringLogger} and {@link logfmtLogger} to render a log\n * message.\n *\n * @internal\n */\nconst format = (quoteValue, whitespace) => ({\n annotations,\n cause,\n date,\n fiberId,\n logLevel,\n message,\n spans\n}) => {\n const formatValue = value => value.match(textOnly) ? value : quoteValue(value);\n const format = (label, value) => `${logSpan_.formatLabel(label)}=${formatValue(value)}`;\n const append = (label, value) => \" \" + format(label, value);\n let out = format(\"timestamp\", date.toISOString());\n out += append(\"level\", logLevel.label);\n out += append(\"fiber\", fiberId_.threadName(fiberId));\n const messages = Arr.ensure(message);\n for (let i = 0; i < messages.length; i++) {\n out += append(\"message\", Inspectable.toStringUnknown(messages[i], whitespace));\n }\n if (!Cause.isEmptyType(cause)) {\n out += append(\"cause\", Cause.pretty(cause, {\n renderErrorCause: true\n }));\n }\n for (const span of spans) {\n out += \" \" + logSpan_.render(date.getTime())(span);\n }\n for (const [label, value] of annotations) {\n out += append(label, Inspectable.toStringUnknown(value, whitespace));\n }\n return out;\n};\n/** @internal */\nconst escapeDoubleQuotes = s => `\"${s.replace(/\\\\([\\s\\S])|(\")/g, \"\\\\$1$2\")}\"`;\n/** @internal */\nexport const stringLogger = /*#__PURE__*/makeLogger(/*#__PURE__*/format(escapeDoubleQuotes));\n/** @internal */\nexport const logfmtLogger = /*#__PURE__*/makeLogger(/*#__PURE__*/format(JSON.stringify, 0));\n/** @internal */\nexport const structuredLogger = /*#__PURE__*/makeLogger(({\n annotations,\n cause,\n date,\n fiberId,\n logLevel,\n message,\n spans\n}) => {\n const now = date.getTime();\n const annotationsObj = {};\n const spansObj = {};\n if (HashMap.size(annotations) > 0) {\n for (const [k, v] of annotations) {\n annotationsObj[k] = structuredMessage(v);\n }\n }\n if (List.isCons(spans)) {\n for (const span of spans) {\n spansObj[span.label] = now - span.startTime;\n }\n }\n const messageArr = Arr.ensure(message);\n return {\n message: messageArr.length === 1 ? structuredMessage(messageArr[0]) : messageArr.map(structuredMessage),\n logLevel: logLevel.label,\n timestamp: date.toISOString(),\n cause: Cause.isEmpty(cause) ? undefined : Cause.pretty(cause, {\n renderErrorCause: true\n }),\n annotations: annotationsObj,\n spans: spansObj,\n fiberId: fiberId_.threadName(fiberId)\n };\n});\n/** @internal */\nexport const structuredMessage = u => {\n switch (typeof u) {\n case \"bigint\":\n case \"function\":\n case \"symbol\":\n {\n return String(u);\n }\n default:\n {\n return Inspectable.toJSON(u);\n }\n }\n};\n/** @internal */\nexport const jsonLogger = /*#__PURE__*/map(structuredLogger, Inspectable.stringifyCircular);\n/** @internal */\nexport const isLogger = u => {\n return typeof u === \"object\" && u != null && LoggerTypeId in u;\n};\nconst withColor = (text, ...colors) => {\n let out = \"\";\n for (let i = 0; i < colors.length; i++) {\n out += `\\x1b[${colors[i]}m`;\n }\n return out + text + \"\\x1b[0m\";\n};\nconst withColorNoop = (text, ..._colors) => text;\nconst colors = {\n bold: \"1\",\n red: \"31\",\n green: \"32\",\n yellow: \"33\",\n blue: \"34\",\n cyan: \"36\",\n white: \"37\",\n gray: \"90\",\n black: \"30\",\n bgBrightRed: \"101\"\n};\nconst logLevelColors = {\n None: [],\n All: [],\n Trace: [colors.gray],\n Debug: [colors.blue],\n Info: [colors.green],\n Warning: [colors.yellow],\n Error: [colors.red],\n Fatal: [colors.bgBrightRed, colors.black]\n};\nconst logLevelStyle = {\n None: \"\",\n All: \"\",\n Trace: \"color:gray\",\n Debug: \"color:blue\",\n Info: \"color:green\",\n Warning: \"color:orange\",\n Error: \"color:red\",\n Fatal: \"background-color:red;color:white\"\n};\nconst defaultDateFormat = date => `${date.getHours().toString().padStart(2, \"0\")}:${date.getMinutes().toString().padStart(2, \"0\")}:${date.getSeconds().toString().padStart(2, \"0\")}.${date.getMilliseconds().toString().padStart(3, \"0\")}`;\nconst hasProcessStdout = typeof process === \"object\" && process !== null && typeof process.stdout === \"object\" && process.stdout !== null;\nconst processStdoutIsTTY = hasProcessStdout && process.stdout.isTTY === true;\nconst hasProcessStdoutOrDeno = hasProcessStdout || \"Deno\" in globalThis;\n/** @internal */\nexport const prettyLogger = options => {\n const mode_ = options?.mode ?? \"auto\";\n const mode = mode_ === \"auto\" ? hasProcessStdoutOrDeno ? \"tty\" : \"browser\" : mode_;\n const isBrowser = mode === \"browser\";\n const showColors = typeof options?.colors === \"boolean\" ? options.colors : processStdoutIsTTY || isBrowser;\n const formatDate = options?.formatDate ?? defaultDateFormat;\n return isBrowser ? prettyLoggerBrowser({\n colors: showColors,\n formatDate\n }) : prettyLoggerTty({\n colors: showColors,\n formatDate,\n stderr: options?.stderr === true\n });\n};\nconst prettyLoggerTty = options => {\n const color = options.colors ? withColor : withColorNoop;\n return makeLogger(({\n annotations,\n cause,\n context,\n date,\n fiberId,\n logLevel,\n message: message_,\n spans\n }) => {\n const services = FiberRefs.getOrDefault(context, defaultServices.currentServices);\n const console = Context.get(services, consoleTag).unsafe;\n const log = options.stderr === true ? console.error : console.log;\n const message = Arr.ensure(message_);\n let firstLine = color(`[${options.formatDate(date)}]`, colors.white) + ` ${color(logLevel.label, ...logLevelColors[logLevel._tag])}` + ` (${fiberId_.threadName(fiberId)})`;\n if (List.isCons(spans)) {\n const now = date.getTime();\n const render = logSpan_.render(now);\n for (const span of spans) {\n firstLine += \" \" + render(span);\n }\n }\n firstLine += \":\";\n let messageIndex = 0;\n if (message.length > 0) {\n const firstMaybeString = structuredMessage(message[0]);\n if (typeof firstMaybeString === \"string\") {\n firstLine += \" \" + color(firstMaybeString, colors.bold, colors.cyan);\n messageIndex++;\n }\n }\n log(firstLine);\n console.group();\n if (!Cause.isEmpty(cause)) {\n log(Cause.pretty(cause, {\n renderErrorCause: true\n }));\n }\n if (messageIndex < message.length) {\n for (; messageIndex < message.length; messageIndex++) {\n log(Inspectable.redact(message[messageIndex]));\n }\n }\n if (HashMap.size(annotations) > 0) {\n for (const [key, value] of annotations) {\n log(color(`${key}:`, colors.bold, colors.white), Inspectable.redact(value));\n }\n }\n console.groupEnd();\n });\n};\nconst prettyLoggerBrowser = options => {\n const color = options.colors ? \"%c\" : \"\";\n return makeLogger(({\n annotations,\n cause,\n context,\n date,\n fiberId,\n logLevel,\n message: message_,\n spans\n }) => {\n const services = FiberRefs.getOrDefault(context, defaultServices.currentServices);\n const console = Context.get(services, consoleTag).unsafe;\n const message = Arr.ensure(message_);\n let firstLine = `${color}[${options.formatDate(date)}]`;\n const firstParams = [];\n if (options.colors) {\n firstParams.push(\"color:gray\");\n }\n firstLine += ` ${color}${logLevel.label}${color} (${fiberId_.threadName(fiberId)})`;\n if (options.colors) {\n firstParams.push(logLevelStyle[logLevel._tag], \"\");\n }\n if (List.isCons(spans)) {\n const now = date.getTime();\n const render = logSpan_.render(now);\n for (const span of spans) {\n firstLine += \" \" + render(span);\n }\n }\n firstLine += \":\";\n let messageIndex = 0;\n if (message.length > 0) {\n const firstMaybeString = structuredMessage(message[0]);\n if (typeof firstMaybeString === \"string\") {\n firstLine += ` ${color}${firstMaybeString}`;\n if (options.colors) {\n firstParams.push(\"color:deepskyblue\");\n }\n messageIndex++;\n }\n }\n console.groupCollapsed(firstLine, ...firstParams);\n if (!Cause.isEmpty(cause)) {\n console.error(Cause.pretty(cause, {\n renderErrorCause: true\n }));\n }\n if (messageIndex < message.length) {\n for (; messageIndex < message.length; messageIndex++) {\n console.log(Inspectable.redact(message[messageIndex]));\n }\n }\n if (HashMap.size(annotations) > 0) {\n for (const [key, value] of annotations) {\n const redacted = Inspectable.redact(value);\n if (options.colors) {\n console.log(`%c${key}:`, \"color:gray\", redacted);\n } else {\n console.log(`${key}:`, redacted);\n }\n }\n }\n console.groupEnd();\n });\n};\n/** @internal */\nexport const prettyLoggerDefault = /*#__PURE__*/globalValue(\"effect/Logger/prettyLoggerDefault\", () => prettyLogger());\n//# sourceMappingURL=logger.js.map","import * as Duration from \"../../Duration.js\";\nimport * as Equal from \"../../Equal.js\";\nimport { pipe } from \"../../Function.js\";\nimport * as Hash from \"../../Hash.js\";\nimport { pipeArguments } from \"../../Pipeable.js\";\nimport { hasProperty } from \"../../Predicate.js\";\n/** @internal */\nconst MetricKeyTypeSymbolKey = \"effect/MetricKeyType\";\n/** @internal */\nexport const MetricKeyTypeTypeId = /*#__PURE__*/Symbol.for(MetricKeyTypeSymbolKey);\n/** @internal */\nconst CounterKeyTypeSymbolKey = \"effect/MetricKeyType/Counter\";\n/** @internal */\nexport const CounterKeyTypeTypeId = /*#__PURE__*/Symbol.for(CounterKeyTypeSymbolKey);\n/** @internal */\nconst FrequencyKeyTypeSymbolKey = \"effect/MetricKeyType/Frequency\";\n/** @internal */\nexport const FrequencyKeyTypeTypeId = /*#__PURE__*/Symbol.for(FrequencyKeyTypeSymbolKey);\n/** @internal */\nconst GaugeKeyTypeSymbolKey = \"effect/MetricKeyType/Gauge\";\n/** @internal */\nexport const GaugeKeyTypeTypeId = /*#__PURE__*/Symbol.for(GaugeKeyTypeSymbolKey);\n/** @internal */\nconst HistogramKeyTypeSymbolKey = \"effect/MetricKeyType/Histogram\";\n/** @internal */\nexport const HistogramKeyTypeTypeId = /*#__PURE__*/Symbol.for(HistogramKeyTypeSymbolKey);\n/** @internal */\nconst SummaryKeyTypeSymbolKey = \"effect/MetricKeyType/Summary\";\n/** @internal */\nexport const SummaryKeyTypeTypeId = /*#__PURE__*/Symbol.for(SummaryKeyTypeSymbolKey);\nconst metricKeyTypeVariance = {\n /* c8 ignore next */\n _In: _ => _,\n /* c8 ignore next */\n _Out: _ => _\n};\n/** @internal */\nclass CounterKeyType {\n incremental;\n bigint;\n [MetricKeyTypeTypeId] = metricKeyTypeVariance;\n [CounterKeyTypeTypeId] = CounterKeyTypeTypeId;\n constructor(incremental, bigint) {\n this.incremental = incremental;\n this.bigint = bigint;\n this._hash = Hash.string(CounterKeyTypeSymbolKey);\n }\n _hash;\n [Hash.symbol]() {\n return this._hash;\n }\n [Equal.symbol](that) {\n return isCounterKey(that);\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\nconst FrequencyKeyTypeHash = /*#__PURE__*/Hash.string(FrequencyKeyTypeSymbolKey);\n/** @internal */\nclass FrequencyKeyType {\n preregisteredWords;\n [MetricKeyTypeTypeId] = metricKeyTypeVariance;\n [FrequencyKeyTypeTypeId] = FrequencyKeyTypeTypeId;\n constructor(preregisteredWords) {\n this.preregisteredWords = preregisteredWords;\n }\n [Hash.symbol]() {\n return FrequencyKeyTypeHash;\n }\n [Equal.symbol](that) {\n return isFrequencyKey(that);\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\nconst GaugeKeyTypeHash = /*#__PURE__*/Hash.string(GaugeKeyTypeSymbolKey);\n/** @internal */\nclass GaugeKeyType {\n bigint;\n [MetricKeyTypeTypeId] = metricKeyTypeVariance;\n [GaugeKeyTypeTypeId] = GaugeKeyTypeTypeId;\n constructor(bigint) {\n this.bigint = bigint;\n }\n [Hash.symbol]() {\n return GaugeKeyTypeHash;\n }\n [Equal.symbol](that) {\n return isGaugeKey(that);\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nexport class HistogramKeyType {\n boundaries;\n [MetricKeyTypeTypeId] = metricKeyTypeVariance;\n [HistogramKeyTypeTypeId] = HistogramKeyTypeTypeId;\n constructor(boundaries) {\n this.boundaries = boundaries;\n this._hash = pipe(Hash.string(HistogramKeyTypeSymbolKey), Hash.combine(Hash.hash(this.boundaries)));\n }\n _hash;\n [Hash.symbol]() {\n return this._hash;\n }\n [Equal.symbol](that) {\n return isHistogramKey(that) && Equal.equals(this.boundaries, that.boundaries);\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nclass SummaryKeyType {\n maxAge;\n maxSize;\n error;\n quantiles;\n [MetricKeyTypeTypeId] = metricKeyTypeVariance;\n [SummaryKeyTypeTypeId] = SummaryKeyTypeTypeId;\n constructor(maxAge, maxSize, error, quantiles) {\n this.maxAge = maxAge;\n this.maxSize = maxSize;\n this.error = error;\n this.quantiles = quantiles;\n this._hash = pipe(Hash.string(SummaryKeyTypeSymbolKey), Hash.combine(Hash.hash(this.maxAge)), Hash.combine(Hash.hash(this.maxSize)), Hash.combine(Hash.hash(this.error)), Hash.combine(Hash.array(this.quantiles)));\n }\n _hash;\n [Hash.symbol]() {\n return this._hash;\n }\n [Equal.symbol](that) {\n return isSummaryKey(that) && Equal.equals(this.maxAge, that.maxAge) && this.maxSize === that.maxSize && this.error === that.error && Equal.equals(this.quantiles, that.quantiles);\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nexport const counter = options => new CounterKeyType(options?.incremental ?? false, options?.bigint ?? false);\n/** @internal */\nexport const frequency = options => new FrequencyKeyType(options?.preregisteredWords ?? []);\n/** @internal */\nexport const gauge = options => new GaugeKeyType(options?.bigint ?? false);\n/** @internal */\nexport const histogram = boundaries => {\n return new HistogramKeyType(boundaries);\n};\n/** @internal */\nexport const summary = options => {\n return new SummaryKeyType(Duration.decode(options.maxAge), options.maxSize, options.error, options.quantiles);\n};\n/** @internal */\nexport const isMetricKeyType = u => hasProperty(u, MetricKeyTypeTypeId);\n/** @internal */\nexport const isCounterKey = u => hasProperty(u, CounterKeyTypeTypeId);\n/** @internal */\nexport const isFrequencyKey = u => hasProperty(u, FrequencyKeyTypeTypeId);\n/** @internal */\nexport const isGaugeKey = u => hasProperty(u, GaugeKeyTypeTypeId);\n/** @internal */\nexport const isHistogramKey = u => hasProperty(u, HistogramKeyTypeTypeId);\n/** @internal */\nexport const isSummaryKey = u => hasProperty(u, SummaryKeyTypeTypeId);\n//# sourceMappingURL=keyType.js.map","import * as Arr from \"../../Array.js\";\nimport * as Equal from \"../../Equal.js\";\nimport { dual, pipe } from \"../../Function.js\";\nimport * as Hash from \"../../Hash.js\";\nimport * as Option from \"../../Option.js\";\nimport { pipeArguments } from \"../../Pipeable.js\";\nimport { hasProperty } from \"../../Predicate.js\";\nimport * as metricKeyType from \"./keyType.js\";\nimport * as metricLabel from \"./label.js\";\n/** @internal */\nconst MetricKeySymbolKey = \"effect/MetricKey\";\n/** @internal */\nexport const MetricKeyTypeId = /*#__PURE__*/Symbol.for(MetricKeySymbolKey);\nconst metricKeyVariance = {\n /* c8 ignore next */\n _Type: _ => _\n};\nconst arrayEquivilence = /*#__PURE__*/Arr.getEquivalence(Equal.equals);\n/** @internal */\nclass MetricKeyImpl {\n name;\n keyType;\n description;\n tags;\n [MetricKeyTypeId] = metricKeyVariance;\n constructor(name, keyType, description, tags = []) {\n this.name = name;\n this.keyType = keyType;\n this.description = description;\n this.tags = tags;\n this._hash = pipe(Hash.string(this.name + this.description), Hash.combine(Hash.hash(this.keyType)), Hash.combine(Hash.array(this.tags)));\n }\n _hash;\n [Hash.symbol]() {\n return this._hash;\n }\n [Equal.symbol](u) {\n return isMetricKey(u) && this.name === u.name && Equal.equals(this.keyType, u.keyType) && Equal.equals(this.description, u.description) && arrayEquivilence(this.tags, u.tags);\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nexport const isMetricKey = u => hasProperty(u, MetricKeyTypeId);\n/** @internal */\nexport const counter = (name, options) => new MetricKeyImpl(name, metricKeyType.counter(options), Option.fromNullable(options?.description));\n/** @internal */\nexport const frequency = (name, options) => new MetricKeyImpl(name, metricKeyType.frequency(options), Option.fromNullable(options?.description));\n/** @internal */\nexport const gauge = (name, options) => new MetricKeyImpl(name, metricKeyType.gauge(options), Option.fromNullable(options?.description));\n/** @internal */\nexport const histogram = (name, boundaries, description) => new MetricKeyImpl(name, metricKeyType.histogram(boundaries), Option.fromNullable(description));\n/** @internal */\nexport const summary = options => new MetricKeyImpl(options.name, metricKeyType.summary(options), Option.fromNullable(options.description));\n/** @internal */\nexport const tagged = /*#__PURE__*/dual(3, (self, key, value) => taggedWithLabels(self, [metricLabel.make(key, value)]));\n/** @internal */\nexport const taggedWithLabels = /*#__PURE__*/dual(2, (self, extraTags) => extraTags.length === 0 ? self : new MetricKeyImpl(self.name, self.keyType, self.description, Arr.union(self.tags, extraTags)));\n//# sourceMappingURL=key.js.map","import * as Equal from \"./Equal.js\";\nimport { dual } from \"./Function.js\";\nimport * as Hash from \"./Hash.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"./Inspectable.js\";\nimport * as Option from \"./Option.js\";\nimport { pipeArguments } from \"./Pipeable.js\";\nconst TypeId = /*#__PURE__*/Symbol.for(\"effect/MutableHashMap\");\nconst MutableHashMapProto = {\n [TypeId]: TypeId,\n [Symbol.iterator]() {\n return new MutableHashMapIterator(this);\n },\n toString() {\n return format(this.toJSON());\n },\n toJSON() {\n return {\n _id: \"MutableHashMap\",\n values: Array.from(this).map(toJSON)\n };\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\nclass MutableHashMapIterator {\n self;\n referentialIterator;\n bucketIterator;\n constructor(self) {\n this.self = self;\n this.referentialIterator = self.referential[Symbol.iterator]();\n }\n next() {\n if (this.bucketIterator !== undefined) {\n return this.bucketIterator.next();\n }\n const result = this.referentialIterator.next();\n if (result.done) {\n this.bucketIterator = new BucketIterator(this.self.buckets.values());\n return this.next();\n }\n return result;\n }\n [Symbol.iterator]() {\n return new MutableHashMapIterator(this.self);\n }\n}\nclass BucketIterator {\n backing;\n constructor(backing) {\n this.backing = backing;\n }\n currentBucket;\n next() {\n if (this.currentBucket === undefined) {\n const result = this.backing.next();\n if (result.done) {\n return result;\n }\n this.currentBucket = result.value[Symbol.iterator]();\n }\n const result = this.currentBucket.next();\n if (result.done) {\n this.currentBucket = undefined;\n return this.next();\n }\n return result;\n }\n}\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const empty = () => {\n const self = Object.create(MutableHashMapProto);\n self.referential = new Map();\n self.buckets = new Map();\n self.bucketsSize = 0;\n return self;\n};\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const make = (...entries) => fromIterable(entries);\n/**\n * Creates a new `MutableHashMap` from an iterable collection of key/value pairs.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const fromIterable = entries => {\n const self = empty();\n for (const [key, value] of entries) {\n set(self, key, value);\n }\n return self;\n};\n/**\n * @since 2.0.0\n * @category elements\n */\nexport const get = /*#__PURE__*/dual(2, (self, key) => {\n if (Equal.isEqual(key) === false) {\n return self.referential.has(key) ? Option.some(self.referential.get(key)) : Option.none();\n }\n const hash = key[Hash.symbol]();\n const bucket = self.buckets.get(hash);\n if (bucket === undefined) {\n return Option.none();\n }\n return getFromBucket(self, bucket, key);\n});\n/**\n * @since 3.8.0\n * @category elements\n */\nexport const keys = self => {\n const keys = Array.from(self.referential.keys());\n for (const bucket of self.buckets.values()) {\n for (let i = 0, len = bucket.length; i < len; i++) {\n keys.push(bucket[i][0]);\n }\n }\n return keys;\n};\n/**\n * @since 3.8.0\n * @category elements\n */\nexport const values = self => {\n const values = Array.from(self.referential.values());\n for (const bucket of self.buckets.values()) {\n for (let i = 0, len = bucket.length; i < len; i++) {\n values.push(bucket[i][1]);\n }\n }\n return values;\n};\nconst getFromBucket = (self, bucket, key, remove = false) => {\n for (let i = 0, len = bucket.length; i < len; i++) {\n if (key[Equal.symbol](bucket[i][0])) {\n const value = bucket[i][1];\n if (remove) {\n bucket.splice(i, 1);\n self.bucketsSize--;\n }\n return Option.some(value);\n }\n }\n return Option.none();\n};\n/**\n * @since 2.0.0\n * @category elements\n */\nexport const has = /*#__PURE__*/dual(2, (self, key) => Option.isSome(get(self, key)));\n/**\n * @since 2.0.0\n */\nexport const set = /*#__PURE__*/dual(3, (self, key, value) => {\n if (Equal.isEqual(key) === false) {\n self.referential.set(key, value);\n return self;\n }\n const hash = key[Hash.symbol]();\n const bucket = self.buckets.get(hash);\n if (bucket === undefined) {\n self.buckets.set(hash, [[key, value]]);\n self.bucketsSize++;\n return self;\n }\n removeFromBucket(self, bucket, key);\n bucket.push([key, value]);\n self.bucketsSize++;\n return self;\n});\nconst removeFromBucket = (self, bucket, key) => {\n for (let i = 0, len = bucket.length; i < len; i++) {\n if (key[Equal.symbol](bucket[i][0])) {\n bucket.splice(i, 1);\n self.bucketsSize--;\n return;\n }\n }\n};\n/**\n * Updates the value of the specified key within the `MutableHashMap` if it exists.\n *\n * @since 2.0.0\n */\nexport const modify = /*#__PURE__*/dual(3, (self, key, f) => {\n if (Equal.isEqual(key) === false) {\n if (self.referential.has(key)) {\n self.referential.set(key, f(self.referential.get(key)));\n }\n return self;\n }\n const hash = key[Hash.symbol]();\n const bucket = self.buckets.get(hash);\n if (bucket === undefined) {\n return self;\n }\n const value = getFromBucket(self, bucket, key, true);\n if (Option.isNone(value)) {\n return self;\n }\n bucket.push([key, f(value.value)]);\n self.bucketsSize++;\n return self;\n});\n/**\n * Set or remove the specified key in the `MutableHashMap` using the specified\n * update function.\n *\n * @since 2.0.0\n */\nexport const modifyAt = /*#__PURE__*/dual(3, (self, key, f) => {\n if (Equal.isEqual(key) === false) {\n const result = f(get(self, key));\n if (Option.isSome(result)) {\n set(self, key, result.value);\n } else {\n remove(self, key);\n }\n return self;\n }\n const hash = key[Hash.symbol]();\n const bucket = self.buckets.get(hash);\n if (bucket === undefined) {\n const result = f(Option.none());\n return Option.isSome(result) ? set(self, key, result.value) : self;\n }\n const result = f(getFromBucket(self, bucket, key, true));\n if (Option.isNone(result)) {\n if (bucket.length === 0) {\n self.buckets.delete(hash);\n }\n return self;\n }\n bucket.push([key, result.value]);\n self.bucketsSize++;\n return self;\n});\n/**\n * @since 2.0.0\n */\nexport const remove = /*#__PURE__*/dual(2, (self, key) => {\n if (Equal.isEqual(key) === false) {\n self.referential.delete(key);\n return self;\n }\n const hash = key[Hash.symbol]();\n const bucket = self.buckets.get(hash);\n if (bucket === undefined) {\n return self;\n }\n removeFromBucket(self, bucket, key);\n if (bucket.length === 0) {\n self.buckets.delete(hash);\n }\n return self;\n});\n/**\n * @since 2.0.0\n */\nexport const clear = self => {\n self.referential.clear();\n self.buckets.clear();\n self.bucketsSize = 0;\n return self;\n};\n/**\n * @since 2.0.0\n * @category elements\n */\nexport const size = self => {\n return self.referential.size + self.bucketsSize;\n};\n/**\n * @since 2.0.0\n */\nexport const isEmpty = self => size(self) === 0;\n/**\n * @since 2.0.0\n */\nexport const forEach = /*#__PURE__*/dual(2, (self, f) => {\n self.referential.forEach(f);\n for (const bucket of self.buckets.values()) {\n for (const [key, value] of bucket) {\n f(value, key);\n }\n }\n});\n//# sourceMappingURL=MutableHashMap.js.map","import * as Arr from \"../../Array.js\";\nimport * as Equal from \"../../Equal.js\";\nimport { pipe } from \"../../Function.js\";\nimport * as Hash from \"../../Hash.js\";\nimport { pipeArguments } from \"../../Pipeable.js\";\nimport { hasProperty } from \"../../Predicate.js\";\n/** @internal */\nconst MetricStateSymbolKey = \"effect/MetricState\";\n/** @internal */\nexport const MetricStateTypeId = /*#__PURE__*/Symbol.for(MetricStateSymbolKey);\n/** @internal */\nconst CounterStateSymbolKey = \"effect/MetricState/Counter\";\n/** @internal */\nexport const CounterStateTypeId = /*#__PURE__*/Symbol.for(CounterStateSymbolKey);\n/** @internal */\nconst FrequencyStateSymbolKey = \"effect/MetricState/Frequency\";\n/** @internal */\nexport const FrequencyStateTypeId = /*#__PURE__*/Symbol.for(FrequencyStateSymbolKey);\n/** @internal */\nconst GaugeStateSymbolKey = \"effect/MetricState/Gauge\";\n/** @internal */\nexport const GaugeStateTypeId = /*#__PURE__*/Symbol.for(GaugeStateSymbolKey);\n/** @internal */\nconst HistogramStateSymbolKey = \"effect/MetricState/Histogram\";\n/** @internal */\nexport const HistogramStateTypeId = /*#__PURE__*/Symbol.for(HistogramStateSymbolKey);\n/** @internal */\nconst SummaryStateSymbolKey = \"effect/MetricState/Summary\";\n/** @internal */\nexport const SummaryStateTypeId = /*#__PURE__*/Symbol.for(SummaryStateSymbolKey);\nconst metricStateVariance = {\n /* c8 ignore next */\n _A: _ => _\n};\n/** @internal */\nclass CounterState {\n count;\n [MetricStateTypeId] = metricStateVariance;\n [CounterStateTypeId] = CounterStateTypeId;\n constructor(count) {\n this.count = count;\n }\n [Hash.symbol]() {\n return pipe(Hash.hash(CounterStateSymbolKey), Hash.combine(Hash.hash(this.count)), Hash.cached(this));\n }\n [Equal.symbol](that) {\n return isCounterState(that) && this.count === that.count;\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\nconst arrayEquals = /*#__PURE__*/Arr.getEquivalence(Equal.equals);\n/** @internal */\nclass FrequencyState {\n occurrences;\n [MetricStateTypeId] = metricStateVariance;\n [FrequencyStateTypeId] = FrequencyStateTypeId;\n constructor(occurrences) {\n this.occurrences = occurrences;\n }\n _hash;\n [Hash.symbol]() {\n return pipe(Hash.string(FrequencyStateSymbolKey), Hash.combine(Hash.array(Arr.fromIterable(this.occurrences.entries()))), Hash.cached(this));\n }\n [Equal.symbol](that) {\n return isFrequencyState(that) && arrayEquals(Arr.fromIterable(this.occurrences.entries()), Arr.fromIterable(that.occurrences.entries()));\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nclass GaugeState {\n value;\n [MetricStateTypeId] = metricStateVariance;\n [GaugeStateTypeId] = GaugeStateTypeId;\n constructor(value) {\n this.value = value;\n }\n [Hash.symbol]() {\n return pipe(Hash.hash(GaugeStateSymbolKey), Hash.combine(Hash.hash(this.value)), Hash.cached(this));\n }\n [Equal.symbol](u) {\n return isGaugeState(u) && this.value === u.value;\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nexport class HistogramState {\n buckets;\n count;\n min;\n max;\n sum;\n [MetricStateTypeId] = metricStateVariance;\n [HistogramStateTypeId] = HistogramStateTypeId;\n constructor(buckets, count, min, max, sum) {\n this.buckets = buckets;\n this.count = count;\n this.min = min;\n this.max = max;\n this.sum = sum;\n }\n [Hash.symbol]() {\n return pipe(Hash.hash(HistogramStateSymbolKey), Hash.combine(Hash.hash(this.buckets)), Hash.combine(Hash.hash(this.count)), Hash.combine(Hash.hash(this.min)), Hash.combine(Hash.hash(this.max)), Hash.combine(Hash.hash(this.sum)), Hash.cached(this));\n }\n [Equal.symbol](that) {\n return isHistogramState(that) && Equal.equals(this.buckets, that.buckets) && this.count === that.count && this.min === that.min && this.max === that.max && this.sum === that.sum;\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nexport class SummaryState {\n error;\n quantiles;\n count;\n min;\n max;\n sum;\n [MetricStateTypeId] = metricStateVariance;\n [SummaryStateTypeId] = SummaryStateTypeId;\n constructor(error, quantiles, count, min, max, sum) {\n this.error = error;\n this.quantiles = quantiles;\n this.count = count;\n this.min = min;\n this.max = max;\n this.sum = sum;\n }\n [Hash.symbol]() {\n return pipe(Hash.hash(SummaryStateSymbolKey), Hash.combine(Hash.hash(this.error)), Hash.combine(Hash.hash(this.quantiles)), Hash.combine(Hash.hash(this.count)), Hash.combine(Hash.hash(this.min)), Hash.combine(Hash.hash(this.max)), Hash.combine(Hash.hash(this.sum)), Hash.cached(this));\n }\n [Equal.symbol](that) {\n return isSummaryState(that) && this.error === that.error && Equal.equals(this.quantiles, that.quantiles) && this.count === that.count && this.min === that.min && this.max === that.max && this.sum === that.sum;\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nexport const counter = count => new CounterState(count);\n/** @internal */\nexport const frequency = occurrences => {\n return new FrequencyState(occurrences);\n};\n/** @internal */\nexport const gauge = count => new GaugeState(count);\n/** @internal */\nexport const histogram = options => new HistogramState(options.buckets, options.count, options.min, options.max, options.sum);\n/** @internal */\nexport const summary = options => new SummaryState(options.error, options.quantiles, options.count, options.min, options.max, options.sum);\n/** @internal */\nexport const isMetricState = u => hasProperty(u, MetricStateTypeId);\n/** @internal */\nexport const isCounterState = u => hasProperty(u, CounterStateTypeId);\n/**\n * @since 2.0.0\n * @category refinements\n */\nexport const isFrequencyState = u => hasProperty(u, FrequencyStateTypeId);\n/**\n * @since 2.0.0\n * @category refinements\n */\nexport const isGaugeState = u => hasProperty(u, GaugeStateTypeId);\n/**\n * @since 2.0.0\n * @category refinements\n */\nexport const isHistogramState = u => hasProperty(u, HistogramStateTypeId);\n/**\n * @since 2.0.0\n * @category refinements\n */\nexport const isSummaryState = u => hasProperty(u, SummaryStateTypeId);\n//# sourceMappingURL=state.js.map","import * as Arr from \"../../Array.js\";\nimport * as Duration from \"../../Duration.js\";\nimport { dual, pipe } from \"../../Function.js\";\nimport * as number from \"../../Number.js\";\nimport * as Option from \"../../Option.js\";\nimport { pipeArguments } from \"../../Pipeable.js\";\nimport * as metricState from \"./state.js\";\n/** @internal */\nconst MetricHookSymbolKey = \"effect/MetricHook\";\n/** @internal */\nexport const MetricHookTypeId = /*#__PURE__*/Symbol.for(MetricHookSymbolKey);\nconst metricHookVariance = {\n /* c8 ignore next */\n _In: _ => _,\n /* c8 ignore next */\n _Out: _ => _\n};\n/** @internal */\nexport const make = options => ({\n [MetricHookTypeId]: metricHookVariance,\n pipe() {\n return pipeArguments(this, arguments);\n },\n ...options\n});\n/** @internal */\nexport const onModify = /*#__PURE__*/dual(2, (self, f) => ({\n [MetricHookTypeId]: metricHookVariance,\n pipe() {\n return pipeArguments(this, arguments);\n },\n get: self.get,\n update: self.update,\n modify: input => {\n self.modify(input);\n return f(input);\n }\n}));\n/** @internal */\nexport const onUpdate = /*#__PURE__*/dual(2, (self, f) => ({\n [MetricHookTypeId]: metricHookVariance,\n pipe() {\n return pipeArguments(this, arguments);\n },\n get: self.get,\n update: input => {\n self.update(input);\n return f(input);\n },\n modify: self.modify\n}));\nconst bigint0 = /*#__PURE__*/BigInt(0);\n/** @internal */\nexport const counter = key => {\n let sum = key.keyType.bigint ? bigint0 : 0;\n const canUpdate = key.keyType.incremental ? key.keyType.bigint ? value => value >= bigint0 : value => value >= 0 : _value => true;\n const update = value => {\n if (canUpdate(value)) {\n sum = sum + value;\n }\n };\n return make({\n get: () => metricState.counter(sum),\n update,\n modify: update\n });\n};\n/** @internal */\nexport const frequency = key => {\n const values = new Map();\n for (const word of key.keyType.preregisteredWords) {\n values.set(word, 0);\n }\n const update = word => {\n const slotCount = values.get(word) ?? 0;\n values.set(word, slotCount + 1);\n };\n return make({\n get: () => metricState.frequency(values),\n update,\n modify: update\n });\n};\n/** @internal */\nexport const gauge = (_key, startAt) => {\n let value = startAt;\n return make({\n get: () => metricState.gauge(value),\n update: v => {\n value = v;\n },\n modify: v => {\n value = value + v;\n }\n });\n};\n/** @internal */\nexport const histogram = key => {\n const bounds = key.keyType.boundaries.values;\n const size = bounds.length;\n const values = new Uint32Array(size + 1);\n // NOTE: while 64-bit floating point precision shoule be enough for any\n // practical histogram boundary values, there is still a small chance that\n // precision will be lost with very large / very small numbers. If we find\n // that is the case, a more complex approach storing the histogram boundary\n // values as a tuple of `[original: string, numeric: number]` may be warranted\n const boundaries = new Float64Array(size);\n let count = 0;\n let sum = 0;\n let min = Number.MAX_VALUE;\n let max = Number.MIN_VALUE;\n pipe(bounds, Arr.sort(number.Order), Arr.map((n, i) => {\n boundaries[i] = n;\n }));\n // Insert the value into the right bucket with a binary search\n const update = value => {\n let from = 0;\n let to = size;\n while (from !== to) {\n const mid = Math.floor(from + (to - from) / 2);\n const boundary = boundaries[mid];\n if (value <= boundary) {\n to = mid;\n } else {\n from = mid;\n }\n // The special case when to / from have a distance of one\n if (to === from + 1) {\n if (value <= boundaries[from]) {\n to = from;\n } else {\n from = to;\n }\n }\n }\n values[from] = values[from] + 1;\n count = count + 1;\n sum = sum + value;\n if (value < min) {\n min = value;\n }\n if (value > max) {\n max = value;\n }\n };\n const getBuckets = () => {\n const builder = Arr.allocate(size);\n let cumulated = 0;\n for (let i = 0; i < size; i++) {\n const boundary = boundaries[i];\n const value = values[i];\n cumulated = cumulated + value;\n builder[i] = [boundary, cumulated];\n }\n return builder;\n };\n return make({\n get: () => metricState.histogram({\n buckets: getBuckets(),\n count,\n min,\n max,\n sum\n }),\n update,\n modify: update\n });\n};\n/** @internal */\nexport const summary = key => {\n const {\n error,\n maxAge,\n maxSize,\n quantiles\n } = key.keyType;\n const sortedQuantiles = pipe(quantiles, Arr.sort(number.Order));\n const values = Arr.allocate(maxSize);\n let head = 0;\n let count = 0;\n let sum = 0;\n let min = 0;\n let max = 0;\n // Just before the snapshot we filter out all values older than maxAge\n const snapshot = now => {\n const builder = [];\n // If the buffer is not full yet it contains valid items at the 0..last\n // indices and null values at the rest of the positions.\n //\n // If the buffer is already full then all elements contains a valid\n // measurement with timestamp.\n //\n // At any given point in time we can enumerate all the non-null elements in\n // the buffer and filter them by timestamp to get a valid view of a time\n // window.\n //\n // The order does not matter because it gets sorted before passing to\n // `calculateQuantiles`.\n let i = 0;\n while (i !== maxSize - 1) {\n const item = values[i];\n if (item != null) {\n const [t, v] = item;\n const age = Duration.millis(now - t);\n if (Duration.greaterThanOrEqualTo(age, Duration.zero) && Duration.lessThanOrEqualTo(age, maxAge)) {\n builder.push(v);\n }\n }\n i = i + 1;\n }\n return calculateQuantiles(error, sortedQuantiles, Arr.sort(builder, number.Order));\n };\n const observe = (value, timestamp) => {\n if (maxSize > 0) {\n head = head + 1;\n const target = head % maxSize;\n values[target] = [timestamp, value];\n }\n min = count === 0 ? value : Math.min(min, value);\n max = count === 0 ? value : Math.max(max, value);\n count = count + 1;\n sum = sum + value;\n };\n return make({\n get: () => metricState.summary({\n error,\n quantiles: snapshot(Date.now()),\n count,\n min,\n max,\n sum\n }),\n update: ([value, timestamp]) => observe(value, timestamp),\n modify: ([value, timestamp]) => observe(value, timestamp)\n });\n};\n/** @internal */\nconst calculateQuantiles = (error, sortedQuantiles, sortedSamples) => {\n // The number of samples examined\n const sampleCount = sortedSamples.length;\n if (!Arr.isNonEmptyReadonlyArray(sortedQuantiles)) {\n return Arr.empty();\n }\n const head = sortedQuantiles[0];\n const tail = sortedQuantiles.slice(1);\n const resolvedHead = resolveQuantile(error, sampleCount, Option.none(), 0, head, sortedSamples);\n const resolved = Arr.of(resolvedHead);\n tail.forEach(quantile => {\n resolved.push(resolveQuantile(error, sampleCount, resolvedHead.value, resolvedHead.consumed, quantile, resolvedHead.rest));\n });\n return Arr.map(resolved, rq => [rq.quantile, rq.value]);\n};\n/** @internal */\nconst resolveQuantile = (error, sampleCount, current, consumed, quantile, rest) => {\n let error_1 = error;\n let sampleCount_1 = sampleCount;\n let current_1 = current;\n let consumed_1 = consumed;\n let quantile_1 = quantile;\n let rest_1 = rest;\n let error_2 = error;\n let sampleCount_2 = sampleCount;\n let current_2 = current;\n let consumed_2 = consumed;\n let quantile_2 = quantile;\n let rest_2 = rest;\n // eslint-disable-next-line no-constant-condition\n while (1) {\n // If the remaining list of samples is empty, there is nothing more to resolve\n if (!Arr.isNonEmptyReadonlyArray(rest_1)) {\n return {\n quantile: quantile_1,\n value: Option.none(),\n consumed: consumed_1,\n rest: []\n };\n }\n // If the quantile is the 100% quantile, we can take the maximum of all the\n // remaining values as the result\n if (quantile_1 === 1) {\n return {\n quantile: quantile_1,\n value: Option.some(Arr.lastNonEmpty(rest_1)),\n consumed: consumed_1 + rest_1.length,\n rest: []\n };\n }\n // Split into two chunks - the first chunk contains all elements of the same\n // value as the chunk head\n const headValue = Arr.headNonEmpty(rest_1); // Get head value since rest_1 is non-empty\n const sameHead = Arr.span(rest_1, n => n === headValue);\n // How many elements do we want to accept for this quantile\n const desired = quantile_1 * sampleCount_1;\n // The error margin\n const allowedError = error_1 / 2 * desired;\n // Taking into account the elements consumed from the samples so far and the\n // number of same elements at the beginning of the chunk, calculate the number\n // of elements we would have if we selected the current head as result\n const candConsumed = consumed_1 + sameHead[0].length;\n const candError = Math.abs(candConsumed - desired);\n // If we haven't got enough elements yet, recurse\n if (candConsumed < desired - allowedError) {\n error_2 = error_1;\n sampleCount_2 = sampleCount_1;\n current_2 = Arr.head(rest_1);\n consumed_2 = candConsumed;\n quantile_2 = quantile_1;\n rest_2 = sameHead[1];\n error_1 = error_2;\n sampleCount_1 = sampleCount_2;\n current_1 = current_2;\n consumed_1 = consumed_2;\n quantile_1 = quantile_2;\n rest_1 = rest_2;\n continue;\n }\n // If consuming this chunk leads to too many elements (rank is too high)\n if (candConsumed > desired + allowedError) {\n const valueToReturn = Option.isNone(current_1) ? Option.some(headValue) : current_1;\n return {\n quantile: quantile_1,\n value: valueToReturn,\n consumed: consumed_1,\n rest: rest_1\n };\n }\n // If we are in the target interval, select the current head and hand back the leftover after dropping all elements\n // from the sample chunk that are equal to the current head\n switch (current_1._tag) {\n case \"None\":\n {\n error_2 = error_1;\n sampleCount_2 = sampleCount_1;\n current_2 = Arr.head(rest_1);\n consumed_2 = candConsumed;\n quantile_2 = quantile_1;\n rest_2 = sameHead[1];\n error_1 = error_2;\n sampleCount_1 = sampleCount_2;\n current_1 = current_2;\n consumed_1 = consumed_2;\n quantile_1 = quantile_2;\n rest_1 = rest_2;\n continue;\n }\n case \"Some\":\n {\n const prevError = Math.abs(desired - current_1.value);\n if (candError < prevError) {\n error_2 = error_1;\n sampleCount_2 = sampleCount_1;\n current_2 = Arr.head(rest_1);\n consumed_2 = candConsumed;\n quantile_2 = quantile_1;\n rest_2 = sameHead[1];\n error_1 = error_2;\n sampleCount_1 = sampleCount_2;\n current_1 = current_2;\n consumed_1 = consumed_2;\n quantile_1 = quantile_2;\n rest_1 = rest_2;\n continue;\n }\n return {\n quantile: quantile_1,\n value: Option.some(current_1.value),\n consumed: consumed_1,\n rest: rest_1\n };\n }\n }\n }\n throw new Error(\"BUG: MetricHook.resolveQuantiles - please report an issue at https://github.com/Effect-TS/effect/issues\");\n};\n//# sourceMappingURL=hook.js.map","import { pipeArguments } from \"../../Pipeable.js\";\n/** @internal */\nconst MetricPairSymbolKey = \"effect/MetricPair\";\n/** @internal */\nexport const MetricPairTypeId = /*#__PURE__*/Symbol.for(MetricPairSymbolKey);\nconst metricPairVariance = {\n /* c8 ignore next */\n _Type: _ => _\n};\n/** @internal */\nexport const make = (metricKey, metricState) => {\n return {\n [MetricPairTypeId]: metricPairVariance,\n metricKey,\n metricState,\n pipe() {\n return pipeArguments(this, arguments);\n }\n };\n};\n/** @internal */\nexport const unsafeMake = (metricKey, metricState) => {\n return {\n [MetricPairTypeId]: metricPairVariance,\n metricKey,\n metricState,\n pipe() {\n return pipeArguments(this, arguments);\n }\n };\n};\n//# sourceMappingURL=pair.js.map","import { pipe } from \"../../Function.js\";\nimport * as MutableHashMap from \"../../MutableHashMap.js\";\nimport * as Option from \"../../Option.js\";\nimport * as metricHook from \"./hook.js\";\nimport * as metricKeyType from \"./keyType.js\";\nimport * as metricPair from \"./pair.js\";\n/** @internal */\nconst MetricRegistrySymbolKey = \"effect/MetricRegistry\";\n/** @internal */\nexport const MetricRegistryTypeId = /*#__PURE__*/Symbol.for(MetricRegistrySymbolKey);\n/** @internal */\nclass MetricRegistryImpl {\n [MetricRegistryTypeId] = MetricRegistryTypeId;\n map = /*#__PURE__*/MutableHashMap.empty();\n snapshot() {\n const result = [];\n for (const [key, hook] of this.map) {\n result.push(metricPair.unsafeMake(key, hook.get()));\n }\n return result;\n }\n get(key) {\n const hook = pipe(this.map, MutableHashMap.get(key), Option.getOrUndefined);\n if (hook == null) {\n if (metricKeyType.isCounterKey(key.keyType)) {\n return this.getCounter(key);\n }\n if (metricKeyType.isGaugeKey(key.keyType)) {\n return this.getGauge(key);\n }\n if (metricKeyType.isFrequencyKey(key.keyType)) {\n return this.getFrequency(key);\n }\n if (metricKeyType.isHistogramKey(key.keyType)) {\n return this.getHistogram(key);\n }\n if (metricKeyType.isSummaryKey(key.keyType)) {\n return this.getSummary(key);\n }\n throw new Error(\"BUG: MetricRegistry.get - unknown MetricKeyType - please report an issue at https://github.com/Effect-TS/effect/issues\");\n } else {\n return hook;\n }\n }\n getCounter(key) {\n let value = pipe(this.map, MutableHashMap.get(key), Option.getOrUndefined);\n if (value == null) {\n const counter = metricHook.counter(key);\n if (!pipe(this.map, MutableHashMap.has(key))) {\n pipe(this.map, MutableHashMap.set(key, counter));\n }\n value = counter;\n }\n return value;\n }\n getFrequency(key) {\n let value = pipe(this.map, MutableHashMap.get(key), Option.getOrUndefined);\n if (value == null) {\n const frequency = metricHook.frequency(key);\n if (!pipe(this.map, MutableHashMap.has(key))) {\n pipe(this.map, MutableHashMap.set(key, frequency));\n }\n value = frequency;\n }\n return value;\n }\n getGauge(key) {\n let value = pipe(this.map, MutableHashMap.get(key), Option.getOrUndefined);\n if (value == null) {\n const gauge = metricHook.gauge(key, key.keyType.bigint ? BigInt(0) : 0);\n if (!pipe(this.map, MutableHashMap.has(key))) {\n pipe(this.map, MutableHashMap.set(key, gauge));\n }\n value = gauge;\n }\n return value;\n }\n getHistogram(key) {\n let value = pipe(this.map, MutableHashMap.get(key), Option.getOrUndefined);\n if (value == null) {\n const histogram = metricHook.histogram(key);\n if (!pipe(this.map, MutableHashMap.has(key))) {\n pipe(this.map, MutableHashMap.set(key, histogram));\n }\n value = histogram;\n }\n return value;\n }\n getSummary(key) {\n let value = pipe(this.map, MutableHashMap.get(key), Option.getOrUndefined);\n if (value == null) {\n const summary = metricHook.summary(key);\n if (!pipe(this.map, MutableHashMap.has(key))) {\n pipe(this.map, MutableHashMap.set(key, summary));\n }\n value = summary;\n }\n return value;\n }\n}\n/** @internal */\nexport const make = () => {\n return new MetricRegistryImpl();\n};\n//# sourceMappingURL=registry.js.map","import * as Arr from \"../Array.js\";\nimport * as Clock from \"../Clock.js\";\nimport * as Duration from \"../Duration.js\";\nimport { constVoid, dual, identity, pipe } from \"../Function.js\";\nimport { globalValue } from \"../GlobalValue.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport * as Cause from \"./cause.js\";\nimport * as effect_ from \"./core-effect.js\";\nimport * as core from \"./core.js\";\nimport * as metricBoundaries from \"./metric/boundaries.js\";\nimport * as metricKey from \"./metric/key.js\";\nimport * as metricKeyType from \"./metric/keyType.js\";\nimport * as metricLabel from \"./metric/label.js\";\nimport * as metricRegistry from \"./metric/registry.js\";\n/** @internal */\nconst MetricSymbolKey = \"effect/Metric\";\n/** @internal */\nexport const MetricTypeId = /*#__PURE__*/Symbol.for(MetricSymbolKey);\nconst metricVariance = {\n /* c8 ignore next */\n _Type: _ => _,\n /* c8 ignore next */\n _In: _ => _,\n /* c8 ignore next */\n _Out: _ => _\n};\n/** @internal */\nexport const globalMetricRegistry = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Metric/globalMetricRegistry\"), () => metricRegistry.make());\n/** @internal */\nexport const make = function (keyType, unsafeUpdate, unsafeValue, unsafeModify) {\n const metric = Object.assign(effect => core.tap(effect, a => update(metric, a)), {\n [MetricTypeId]: metricVariance,\n keyType,\n unsafeUpdate,\n unsafeValue,\n unsafeModify,\n register() {\n this.unsafeValue([]);\n return this;\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n });\n return metric;\n};\n/** @internal */\nexport const mapInput = /*#__PURE__*/dual(2, (self, f) => make(self.keyType, (input, extraTags) => self.unsafeUpdate(f(input), extraTags), self.unsafeValue, (input, extraTags) => self.unsafeModify(f(input), extraTags)));\n/** @internal */\nexport const counter = (name, options) => fromMetricKey(metricKey.counter(name, options));\n/** @internal */\nexport const frequency = (name, options) => fromMetricKey(metricKey.frequency(name, options));\n/** @internal */\nexport const withConstantInput = /*#__PURE__*/dual(2, (self, input) => mapInput(self, () => input));\n/** @internal */\nexport const fromMetricKey = key => {\n let untaggedHook;\n const hookCache = new WeakMap();\n const hook = extraTags => {\n if (extraTags.length === 0) {\n if (untaggedHook !== undefined) {\n return untaggedHook;\n }\n untaggedHook = globalMetricRegistry.get(key);\n return untaggedHook;\n }\n let hook = hookCache.get(extraTags);\n if (hook !== undefined) {\n return hook;\n }\n hook = globalMetricRegistry.get(metricKey.taggedWithLabels(key, extraTags));\n hookCache.set(extraTags, hook);\n return hook;\n };\n return make(key.keyType, (input, extraTags) => hook(extraTags).update(input), extraTags => hook(extraTags).get(), (input, extraTags) => hook(extraTags).modify(input));\n};\n/** @internal */\nexport const gauge = (name, options) => fromMetricKey(metricKey.gauge(name, options));\n/** @internal */\nexport const histogram = (name, boundaries, description) => fromMetricKey(metricKey.histogram(name, boundaries, description));\n/* @internal */\nexport const increment = self => metricKeyType.isCounterKey(self.keyType) ? update(self, self.keyType.bigint ? BigInt(1) : 1) : modify(self, self.keyType.bigint ? BigInt(1) : 1);\n/* @internal */\nexport const incrementBy = /*#__PURE__*/dual(2, (self, amount) => metricKeyType.isCounterKey(self.keyType) ? update(self, amount) : modify(self, amount));\n/** @internal */\nexport const map = /*#__PURE__*/dual(2, (self, f) => make(self.keyType, self.unsafeUpdate, extraTags => f(self.unsafeValue(extraTags)), self.unsafeModify));\n/** @internal */\nexport const mapType = /*#__PURE__*/dual(2, (self, f) => make(f(self.keyType), self.unsafeUpdate, self.unsafeValue, self.unsafeModify));\n/** @internal */\nexport const modify = /*#__PURE__*/dual(2, (self, input) => core.fiberRefGetWith(core.currentMetricLabels, tags => core.sync(() => self.unsafeModify(input, tags))));\n/* @internal */\nexport const set = /*#__PURE__*/dual(2, (self, value) => update(self, value));\n/** @internal */\nexport const succeed = out => make(void 0, constVoid, () => out, constVoid);\n/** @internal */\nexport const sync = evaluate => make(void 0, constVoid, evaluate, constVoid);\n/** @internal */\nexport const summary = options => withNow(summaryTimestamp(options));\n/** @internal */\nexport const summaryTimestamp = options => fromMetricKey(metricKey.summary(options));\n/** @internal */\nexport const tagged = /*#__PURE__*/dual(3, (self, key, value) => taggedWithLabels(self, [metricLabel.make(key, value)]));\n/** @internal */\nexport const taggedWithLabelsInput = /*#__PURE__*/dual(2, (self, f) => map(make(self.keyType, (input, extraTags) => self.unsafeUpdate(input, Arr.union(f(input), extraTags)), self.unsafeValue, (input, extraTags) => self.unsafeModify(input, Arr.union(f(input), extraTags))), constVoid));\n/** @internal */\nexport const taggedWithLabels = /*#__PURE__*/dual(2, (self, extraTags) => {\n return make(self.keyType, (input, extraTags1) => self.unsafeUpdate(input, Arr.union(extraTags, extraTags1)), extraTags1 => self.unsafeValue(Arr.union(extraTags, extraTags1)), (input, extraTags1) => self.unsafeModify(input, Arr.union(extraTags, extraTags1)));\n});\n/** @internal */\nexport const timer = (name, description) => {\n const boundaries = metricBoundaries.exponential({\n start: 0.5,\n factor: 2,\n count: 35\n });\n const base = pipe(histogram(name, boundaries, description), tagged(\"time_unit\", \"milliseconds\"));\n return mapInput(base, Duration.toMillis);\n};\n/** @internal */\nexport const timerWithBoundaries = (name, boundaries, description) => {\n const base = pipe(histogram(name, metricBoundaries.fromIterable(boundaries), description), tagged(\"time_unit\", \"milliseconds\"));\n return mapInput(base, Duration.toMillis);\n};\n/* @internal */\nexport const trackAll = /*#__PURE__*/dual(2, (self, input) => effect => core.matchCauseEffect(effect, {\n onFailure: cause => core.zipRight(update(self, input), core.failCause(cause)),\n onSuccess: value => core.zipRight(update(self, input), core.succeed(value))\n}));\n/* @internal */\nexport const trackDefect = /*#__PURE__*/dual(2, (self, metric) => trackDefectWith(self, metric, identity));\n/* @internal */\nexport const trackDefectWith = /*#__PURE__*/dual(3, (self, metric, f) => {\n const updater = defect => update(metric, f(defect));\n return effect_.tapDefect(self, cause => core.forEachSequentialDiscard(Cause.defects(cause), updater));\n});\n/* @internal */\nexport const trackDuration = /*#__PURE__*/dual(2, (self, metric) => trackDurationWith(self, metric, identity));\n/* @internal */\nexport const trackDurationWith = /*#__PURE__*/dual(3, (self, metric, f) => Clock.clockWith(clock => {\n const startTime = clock.unsafeCurrentTimeNanos();\n return core.tap(self, _ => {\n const endTime = clock.unsafeCurrentTimeNanos();\n const duration = Duration.nanos(endTime - startTime);\n return update(metric, f(duration));\n });\n}));\n/* @internal */\nexport const trackError = /*#__PURE__*/dual(2, (self, metric) => trackErrorWith(self, metric, a => a));\n/* @internal */\nexport const trackErrorWith = /*#__PURE__*/dual(3, (self, metric, f) => {\n const updater = error => update(metric, f(error));\n return effect_.tapError(self, updater);\n});\n/* @internal */\nexport const trackSuccess = /*#__PURE__*/dual(2, (self, metric) => trackSuccessWith(self, metric, a => a));\n/* @internal */\nexport const trackSuccessWith = /*#__PURE__*/dual(3, (self, metric, f) => {\n const updater = value => update(metric, f(value));\n return core.tap(self, updater);\n});\n/* @internal */\nexport const update = /*#__PURE__*/dual(2, (self, input) => core.fiberRefGetWith(core.currentMetricLabels, tags => core.sync(() => self.unsafeUpdate(input, tags))));\n/* @internal */\nexport const value = self => core.fiberRefGetWith(core.currentMetricLabels, tags => core.sync(() => self.unsafeValue(tags)));\n/** @internal */\nexport const withNow = self => mapInput(self, input => [input, Date.now()]);\n/** @internal */\nexport const zip = /*#__PURE__*/dual(2, (self, that) => make([self.keyType, that.keyType], (input, extraTags) => {\n const [l, r] = input;\n self.unsafeUpdate(l, extraTags);\n that.unsafeUpdate(r, extraTags);\n}, extraTags => [self.unsafeValue(extraTags), that.unsafeValue(extraTags)], (input, extraTags) => {\n const [l, r] = input;\n self.unsafeModify(l, extraTags);\n that.unsafeModify(r, extraTags);\n}));\n/** @internal */\nexport const unsafeSnapshot = () => globalMetricRegistry.snapshot();\n/** @internal */\nexport const snapshot = /*#__PURE__*/core.sync(unsafeSnapshot);\n//# sourceMappingURL=metric.js.map","import * as Arr from \"../../Array.js\";\nimport * as Chunk from \"../../Chunk.js\";\nimport * as Equal from \"../../Equal.js\";\nimport { pipe } from \"../../Function.js\";\nimport * as Hash from \"../../Hash.js\";\nimport { pipeArguments } from \"../../Pipeable.js\";\nimport { hasProperty } from \"../../Predicate.js\";\n/** @internal */\nconst MetricBoundariesSymbolKey = \"effect/MetricBoundaries\";\n/** @internal */\nexport const MetricBoundariesTypeId = /*#__PURE__*/Symbol.for(MetricBoundariesSymbolKey);\n/** @internal */\nclass MetricBoundariesImpl {\n values;\n [MetricBoundariesTypeId] = MetricBoundariesTypeId;\n constructor(values) {\n this.values = values;\n this._hash = pipe(Hash.string(MetricBoundariesSymbolKey), Hash.combine(Hash.array(this.values)));\n }\n _hash;\n [Hash.symbol]() {\n return this._hash;\n }\n [Equal.symbol](u) {\n return isMetricBoundaries(u) && Equal.equals(this.values, u.values);\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nexport const isMetricBoundaries = u => hasProperty(u, MetricBoundariesTypeId);\n/** @internal */\nexport const fromIterable = iterable => {\n const values = pipe(iterable, Arr.appendAll(Chunk.of(Number.POSITIVE_INFINITY)), Arr.dedupe);\n return new MetricBoundariesImpl(values);\n};\n/** @internal */\nexport const linear = options => pipe(Arr.makeBy(options.count - 1, i => options.start + i * options.width), Chunk.unsafeFromArray, fromIterable);\n/** @internal */\nexport const exponential = options => pipe(Arr.makeBy(options.count - 1, i => options.start * Math.pow(options.factor, i)), Chunk.unsafeFromArray, fromIterable);\n//# sourceMappingURL=boundaries.js.map","import { dual } from \"../Function.js\";\nimport { hasProperty } from \"../Predicate.js\";\nimport * as completedRequestMap from \"./completedRequestMap.js\";\nimport * as core from \"./core.js\";\nimport { StructuralPrototype } from \"./effectable.js\";\n/** @internal */\nconst RequestSymbolKey = \"effect/Request\";\n/** @internal */\nexport const RequestTypeId = /*#__PURE__*/Symbol.for(RequestSymbolKey);\nconst requestVariance = {\n /* c8 ignore next */\n _E: _ => _,\n /* c8 ignore next */\n _A: _ => _\n};\nconst RequestPrototype = {\n ...StructuralPrototype,\n [RequestTypeId]: requestVariance\n};\n/** @internal */\nexport const isRequest = u => hasProperty(u, RequestTypeId);\n/** @internal */\nexport const of = () => args => Object.assign(Object.create(RequestPrototype), args);\n/** @internal */\nexport const tagged = tag => args => {\n const request = Object.assign(Object.create(RequestPrototype), args);\n request._tag = tag;\n return request;\n};\n/** @internal */\nexport const Class = /*#__PURE__*/function () {\n function Class(args) {\n if (args) {\n Object.assign(this, args);\n }\n }\n Class.prototype = RequestPrototype;\n return Class;\n}();\n/** @internal */\nexport const TaggedClass = tag => {\n return class TaggedClass extends Class {\n _tag = tag;\n };\n};\n/** @internal */\nexport const complete = /*#__PURE__*/dual(2, (self, result) => core.fiberRefGetWith(completedRequestMap.currentRequestMap, map => core.sync(() => {\n if (map.has(self)) {\n const entry = map.get(self);\n if (!entry.state.completed) {\n entry.state.completed = true;\n core.deferredUnsafeDone(entry.result, result);\n }\n }\n})));\n/** @internal */\nexport const completeEffect = /*#__PURE__*/dual(2, (self, effect) => core.matchEffect(effect, {\n onFailure: error => complete(self, core.exitFail(error)),\n onSuccess: value => complete(self, core.exitSucceed(value))\n}));\n/** @internal */\nexport const fail = /*#__PURE__*/dual(2, (self, error) => complete(self, core.exitFail(error)));\n/** @internal */\nexport const failCause = /*#__PURE__*/dual(2, (self, cause) => complete(self, core.exitFailCause(cause)));\n/** @internal */\nexport const succeed = /*#__PURE__*/dual(2, (self, value) => complete(self, core.exitSucceed(value)));\n/** @internal */\nexport class Listeners {\n count = 0;\n observers = /*#__PURE__*/new Set();\n interrupted = false;\n addObserver(f) {\n this.observers.add(f);\n }\n removeObserver(f) {\n this.observers.delete(f);\n }\n increment() {\n this.count++;\n this.observers.forEach(f => f(this.count));\n }\n decrement() {\n this.count--;\n this.observers.forEach(f => f(this.count));\n }\n}\n/**\n * @internal\n */\nexport const filterOutCompleted = requests => core.fiberRefGetWith(completedRequestMap.currentRequestMap, map => core.succeed(requests.filter(request => !(map.get(request)?.state.completed === true))));\n//# sourceMappingURL=request.js.map","import { pipe } from \"../Function.js\";\nimport { globalValue } from \"../GlobalValue.js\";\nimport * as MutableRef from \"../MutableRef.js\";\nimport { hasProperty, isTagged } from \"../Predicate.js\";\nimport * as SortedSet from \"../SortedSet.js\";\nimport * as core from \"./core.js\";\n/** @internal */\nconst SupervisorSymbolKey = \"effect/Supervisor\";\n/** @internal */\nexport const SupervisorTypeId = /*#__PURE__*/Symbol.for(SupervisorSymbolKey);\n/** @internal */\nexport const supervisorVariance = {\n /* c8 ignore next */\n _T: _ => _\n};\n/** @internal */\nexport class ProxySupervisor {\n underlying;\n value0;\n [SupervisorTypeId] = supervisorVariance;\n constructor(underlying, value0) {\n this.underlying = underlying;\n this.value0 = value0;\n }\n get value() {\n return this.value0;\n }\n onStart(context, effect, parent, fiber) {\n this.underlying.onStart(context, effect, parent, fiber);\n }\n onEnd(value, fiber) {\n this.underlying.onEnd(value, fiber);\n }\n onEffect(fiber, effect) {\n this.underlying.onEffect(fiber, effect);\n }\n onSuspend(fiber) {\n this.underlying.onSuspend(fiber);\n }\n onResume(fiber) {\n this.underlying.onResume(fiber);\n }\n map(f) {\n return new ProxySupervisor(this, pipe(this.value, core.map(f)));\n }\n zip(right) {\n return new Zip(this, right);\n }\n}\n/** @internal */\nexport class Zip {\n left;\n right;\n _tag = \"Zip\";\n [SupervisorTypeId] = supervisorVariance;\n constructor(left, right) {\n this.left = left;\n this.right = right;\n }\n get value() {\n return core.zip(this.left.value, this.right.value);\n }\n onStart(context, effect, parent, fiber) {\n this.left.onStart(context, effect, parent, fiber);\n this.right.onStart(context, effect, parent, fiber);\n }\n onEnd(value, fiber) {\n this.left.onEnd(value, fiber);\n this.right.onEnd(value, fiber);\n }\n onEffect(fiber, effect) {\n this.left.onEffect(fiber, effect);\n this.right.onEffect(fiber, effect);\n }\n onSuspend(fiber) {\n this.left.onSuspend(fiber);\n this.right.onSuspend(fiber);\n }\n onResume(fiber) {\n this.left.onResume(fiber);\n this.right.onResume(fiber);\n }\n map(f) {\n return new ProxySupervisor(this, pipe(this.value, core.map(f)));\n }\n zip(right) {\n return new Zip(this, right);\n }\n}\n/** @internal */\nexport const isZip = self => hasProperty(self, SupervisorTypeId) && isTagged(self, \"Zip\");\n/** @internal */\nexport class Track {\n [SupervisorTypeId] = supervisorVariance;\n fibers = /*#__PURE__*/new Set();\n get value() {\n return core.sync(() => Array.from(this.fibers));\n }\n onStart(_context, _effect, _parent, fiber) {\n this.fibers.add(fiber);\n }\n onEnd(_value, fiber) {\n this.fibers.delete(fiber);\n }\n onEffect(_fiber, _effect) {\n //\n }\n onSuspend(_fiber) {\n //\n }\n onResume(_fiber) {\n //\n }\n map(f) {\n return new ProxySupervisor(this, pipe(this.value, core.map(f)));\n }\n zip(right) {\n return new Zip(this, right);\n }\n onRun(execution, _fiber) {\n return execution();\n }\n}\n/** @internal */\nexport class Const {\n effect;\n [SupervisorTypeId] = supervisorVariance;\n constructor(effect) {\n this.effect = effect;\n }\n get value() {\n return this.effect;\n }\n onStart(_context, _effect, _parent, _fiber) {\n //\n }\n onEnd(_value, _fiber) {\n //\n }\n onEffect(_fiber, _effect) {\n //\n }\n onSuspend(_fiber) {\n //\n }\n onResume(_fiber) {\n //\n }\n map(f) {\n return new ProxySupervisor(this, pipe(this.value, core.map(f)));\n }\n zip(right) {\n return new Zip(this, right);\n }\n onRun(execution, _fiber) {\n return execution();\n }\n}\nclass FibersIn {\n ref;\n [SupervisorTypeId] = supervisorVariance;\n constructor(ref) {\n this.ref = ref;\n }\n get value() {\n return core.sync(() => MutableRef.get(this.ref));\n }\n onStart(_context, _effect, _parent, fiber) {\n pipe(this.ref, MutableRef.set(pipe(MutableRef.get(this.ref), SortedSet.add(fiber))));\n }\n onEnd(_value, fiber) {\n pipe(this.ref, MutableRef.set(pipe(MutableRef.get(this.ref), SortedSet.remove(fiber))));\n }\n onEffect(_fiber, _effect) {\n //\n }\n onSuspend(_fiber) {\n //\n }\n onResume(_fiber) {\n //\n }\n map(f) {\n return new ProxySupervisor(this, pipe(this.value, core.map(f)));\n }\n zip(right) {\n return new Zip(this, right);\n }\n onRun(execution, _fiber) {\n return execution();\n }\n}\n/** @internal */\nexport const unsafeTrack = () => {\n return new Track();\n};\n/** @internal */\nexport const track = /*#__PURE__*/core.sync(unsafeTrack);\n/** @internal */\nexport const fromEffect = effect => {\n return new Const(effect);\n};\n/** @internal */\nexport const none = /*#__PURE__*/globalValue(\"effect/Supervisor/none\", () => fromEffect(core.void));\n/** @internal */\nexport const fibersIn = ref => core.sync(() => new FibersIn(ref));\n//# sourceMappingURL=supervisor.js.map","import * as Dual from \"./Function.js\";\nimport * as internal from \"./internal/differ.js\";\nimport * as ChunkPatch from \"./internal/differ/chunkPatch.js\";\nimport * as ContextPatch from \"./internal/differ/contextPatch.js\";\nimport * as HashMapPatch from \"./internal/differ/hashMapPatch.js\";\nimport * as HashSetPatch from \"./internal/differ/hashSetPatch.js\";\nimport * as OrPatch from \"./internal/differ/orPatch.js\";\nimport * as ReadonlyArrayPatch from \"./internal/differ/readonlyArrayPatch.js\";\n/**\n * @since 2.0.0\n * @category symbol\n */\nexport const TypeId = internal.DifferTypeId;\nconst ChunkPatchTypeId = ChunkPatch.ChunkPatchTypeId;\nconst ContextPatchTypeId = ContextPatch.ContextPatchTypeId;\nconst HashMapPatchTypeId = HashMapPatch.HashMapPatchTypeId;\nconst HashSetPatchTypeId = HashSetPatch.HashSetPatchTypeId;\nconst OrPatchTypeId = OrPatch.OrPatchTypeId;\nconst ReadonlyArrayPatchTypeId = ReadonlyArrayPatch.ReadonlyArrayPatchTypeId;\n/**\n * An empty patch that describes no changes.\n *\n * @since 2.0.0\n * @category patch\n */\nexport const empty = self => self.empty;\n/**\n * @since 2.0.0\n * @category patch\n */\nexport const diff = /*#__PURE__*/Dual.dual(3, (self, oldValue, newValue) => self.diff(oldValue, newValue));\n/**\n * Combines two patches to produce a new patch that describes the updates of\n * the first patch and then the updates of the second patch. The combine\n * operation should be associative. In addition, if the combine operation is\n * commutative then joining multiple fibers concurrently will result in\n * deterministic `FiberRef` values.\n *\n * @since 2.0.0\n * @category patch\n */\nexport const combine = /*#__PURE__*/Dual.dual(3, (self, first, second) => self.combine(first, second));\n/**\n * Applies a patch to an old value to produce a new value that is equal to the\n * old value with the updates described by the patch.\n *\n * @since 2.0.0\n * @category patch\n */\nexport const patch = /*#__PURE__*/Dual.dual(3, (self, patch, oldValue) => self.patch(patch, oldValue));\n/**\n * Constructs a new `Differ`.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const make = internal.make;\n/**\n * Constructs a differ that knows how to diff `Env` values.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const environment = internal.environment;\n/**\n * Constructs a differ that knows how to diff a `Chunk` of values given a\n * differ that knows how to diff the values.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const chunk = internal.chunk;\n/**\n * Constructs a differ that knows how to diff a `HashMap` of keys and values given\n * a differ that knows how to diff the values.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const hashMap = internal.hashMap;\n/**\n * Constructs a differ that knows how to diff a `HashSet` of values.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const hashSet = internal.hashSet;\n/**\n * Combines this differ and the specified differ to produce a differ that\n * knows how to diff the sum of their values.\n *\n * @since 2.0.0\n */\nexport const orElseEither = internal.orElseEither;\n/**\n * Constructs a differ that knows how to diff a `ReadonlyArray` of values.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const readonlyArray = internal.readonlyArray;\n/**\n * Transforms the type of values that this differ knows how to differ using\n * the specified functions that map the new and old value types to each other.\n *\n * @since 2.0.0\n */\nexport const transform = internal.transform;\n/**\n * Constructs a differ that just diffs two values by returning a function that\n * sets the value to the new value. This differ does not support combining\n * multiple updates to the value compositionally and should only be used when\n * there is no compositional way to update them.\n *\n * @since 2.0.0\n */\nexport const update = internal.update;\n/**\n * A variant of `update` that allows specifying the function that will be used\n * to combine old values with new values.\n *\n * @since 2.0.0\n */\nexport const updateWith = internal.updateWith;\n/**\n * Combines this differ and the specified differ to produce a new differ that\n * knows how to diff the product of their values.\n *\n * @since 2.0.0\n */\nexport const zip = internal.zip;\n//# sourceMappingURL=Differ.js.map","import * as Chunk from \"../../Chunk.js\";\nimport * as Differ from \"../../Differ.js\";\nimport * as Equal from \"../../Equal.js\";\nimport { pipe } from \"../../Function.js\";\nimport * as HashSet from \"../../HashSet.js\";\nimport * as supervisor from \"../supervisor.js\";\n/** @internal */\nexport const OP_EMPTY = \"Empty\";\n/** @internal */\nexport const OP_ADD_SUPERVISOR = \"AddSupervisor\";\n/** @internal */\nexport const OP_REMOVE_SUPERVISOR = \"RemoveSupervisor\";\n/** @internal */\nexport const OP_AND_THEN = \"AndThen\";\n/**\n * The empty `SupervisorPatch`.\n *\n * @internal\n */\nexport const empty = {\n _tag: OP_EMPTY\n};\n/**\n * Combines two patches to produce a new patch that describes applying the\n * updates from this patch and then the updates from the specified patch.\n *\n * @internal\n */\nexport const combine = (self, that) => {\n return {\n _tag: OP_AND_THEN,\n first: self,\n second: that\n };\n};\n/**\n * Applies a `SupervisorPatch` to a `Supervisor` to produce a new `Supervisor`.\n *\n * @internal\n */\nexport const patch = (self, supervisor) => {\n return patchLoop(supervisor, Chunk.of(self));\n};\n/** @internal */\nconst patchLoop = (_supervisor, _patches) => {\n let supervisor = _supervisor;\n let patches = _patches;\n while (Chunk.isNonEmpty(patches)) {\n const head = Chunk.headNonEmpty(patches);\n switch (head._tag) {\n case OP_EMPTY:\n {\n patches = Chunk.tailNonEmpty(patches);\n break;\n }\n case OP_ADD_SUPERVISOR:\n {\n supervisor = supervisor.zip(head.supervisor);\n patches = Chunk.tailNonEmpty(patches);\n break;\n }\n case OP_REMOVE_SUPERVISOR:\n {\n supervisor = removeSupervisor(supervisor, head.supervisor);\n patches = Chunk.tailNonEmpty(patches);\n break;\n }\n case OP_AND_THEN:\n {\n patches = Chunk.prepend(head.first)(Chunk.prepend(head.second)(Chunk.tailNonEmpty(patches)));\n break;\n }\n }\n }\n return supervisor;\n};\n/** @internal */\nconst removeSupervisor = (self, that) => {\n if (Equal.equals(self, that)) {\n return supervisor.none;\n } else {\n if (supervisor.isZip(self)) {\n return removeSupervisor(self.left, that).zip(removeSupervisor(self.right, that));\n } else {\n return self;\n }\n }\n};\n/** @internal */\nconst toSet = self => {\n if (Equal.equals(self, supervisor.none)) {\n return HashSet.empty();\n } else {\n if (supervisor.isZip(self)) {\n return pipe(toSet(self.left), HashSet.union(toSet(self.right)));\n } else {\n return HashSet.make(self);\n }\n }\n};\n/** @internal */\nexport const diff = (oldValue, newValue) => {\n if (Equal.equals(oldValue, newValue)) {\n return empty;\n }\n const oldSupervisors = toSet(oldValue);\n const newSupervisors = toSet(newValue);\n const added = pipe(newSupervisors, HashSet.difference(oldSupervisors), HashSet.reduce(empty, (patch, supervisor) => combine(patch, {\n _tag: OP_ADD_SUPERVISOR,\n supervisor\n })));\n const removed = pipe(oldSupervisors, HashSet.difference(newSupervisors), HashSet.reduce(empty, (patch, supervisor) => combine(patch, {\n _tag: OP_REMOVE_SUPERVISOR,\n supervisor\n })));\n return combine(added, removed);\n};\n/** @internal */\nexport const differ = /*#__PURE__*/Differ.make({\n empty,\n patch,\n combine,\n diff\n});\n//# sourceMappingURL=patch.js.map","import * as RA from \"../Array.js\";\nimport * as Boolean from \"../Boolean.js\";\nimport * as Chunk from \"../Chunk.js\";\nimport * as Context from \"../Context.js\";\nimport * as Effectable from \"../Effectable.js\";\nimport * as ExecutionStrategy from \"../ExecutionStrategy.js\";\nimport * as FiberId from \"../FiberId.js\";\nimport * as FiberRefs from \"../FiberRefs.js\";\nimport * as FiberRefsPatch from \"../FiberRefsPatch.js\";\nimport * as FiberStatus from \"../FiberStatus.js\";\nimport { dual, identity, pipe } from \"../Function.js\";\nimport { globalValue } from \"../GlobalValue.js\";\nimport * as HashMap from \"../HashMap.js\";\nimport * as HashSet from \"../HashSet.js\";\nimport * as Inspectable from \"../Inspectable.js\";\nimport * as LogLevel from \"../LogLevel.js\";\nimport * as Micro from \"../Micro.js\";\nimport * as MRef from \"../MutableRef.js\";\nimport * as Option from \"../Option.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport * as Predicate from \"../Predicate.js\";\nimport * as Ref from \"../Ref.js\";\nimport * as RuntimeFlagsPatch from \"../RuntimeFlagsPatch.js\";\nimport { currentScheduler } from \"../Scheduler.js\";\nimport { internalCall, yieldWrapGet } from \"../Utils.js\";\nimport * as RequestBlock_ from \"./blockedRequests.js\";\nimport * as internalCause from \"./cause.js\";\nimport * as clock from \"./clock.js\";\nimport { currentRequestMap } from \"./completedRequestMap.js\";\nimport * as concurrency from \"./concurrency.js\";\nimport { configProviderTag } from \"./configProvider.js\";\nimport * as internalEffect from \"./core-effect.js\";\nimport * as core from \"./core.js\";\nimport * as defaultServices from \"./defaultServices.js\";\nimport { consoleTag } from \"./defaultServices/console.js\";\nimport * as executionStrategy from \"./executionStrategy.js\";\nimport * as internalFiber from \"./fiber.js\";\nimport * as FiberMessage from \"./fiberMessage.js\";\nimport * as fiberRefs from \"./fiberRefs.js\";\nimport * as fiberScope from \"./fiberScope.js\";\nimport * as internalLogger from \"./logger.js\";\nimport * as metric from \"./metric.js\";\nimport * as metricBoundaries from \"./metric/boundaries.js\";\nimport * as metricLabel from \"./metric/label.js\";\nimport * as OpCodes from \"./opCodes/effect.js\";\nimport { randomTag } from \"./random.js\";\nimport { complete } from \"./request.js\";\nimport * as runtimeFlags_ from \"./runtimeFlags.js\";\nimport { OpSupervision } from \"./runtimeFlags.js\";\nimport * as supervisor from \"./supervisor.js\";\nimport * as SupervisorPatch from \"./supervisor/patch.js\";\nimport * as tracer from \"./tracer.js\";\nimport * as version from \"./version.js\";\n/** @internal */\nexport const fiberStarted = /*#__PURE__*/metric.counter(\"effect_fiber_started\", {\n incremental: true\n});\n/** @internal */\nexport const fiberActive = /*#__PURE__*/metric.counter(\"effect_fiber_active\");\n/** @internal */\nexport const fiberSuccesses = /*#__PURE__*/metric.counter(\"effect_fiber_successes\", {\n incremental: true\n});\n/** @internal */\nexport const fiberFailures = /*#__PURE__*/metric.counter(\"effect_fiber_failures\", {\n incremental: true\n});\n/** @internal */\nexport const fiberLifetimes = /*#__PURE__*/metric.tagged(/*#__PURE__*/metric.histogram(\"effect_fiber_lifetimes\", /*#__PURE__*/metricBoundaries.exponential({\n start: 0.5,\n factor: 2,\n count: 35\n})), \"time_unit\", \"milliseconds\");\n/** @internal */\nconst EvaluationSignalContinue = \"Continue\";\n/** @internal */\nconst EvaluationSignalDone = \"Done\";\n/** @internal */\nconst EvaluationSignalYieldNow = \"Yield\";\nconst runtimeFiberVariance = {\n /* c8 ignore next */\n _E: _ => _,\n /* c8 ignore next */\n _A: _ => _\n};\nconst absurd = _ => {\n throw new Error(`BUG: FiberRuntime - ${Inspectable.toStringUnknown(_)} - please report an issue at https://github.com/Effect-TS/effect/issues`);\n};\nconst YieldedOp = /*#__PURE__*/Symbol.for(\"effect/internal/fiberRuntime/YieldedOp\");\nconst yieldedOpChannel = /*#__PURE__*/globalValue(\"effect/internal/fiberRuntime/yieldedOpChannel\", () => ({\n currentOp: null\n}));\nconst contOpSuccess = {\n [OpCodes.OP_ON_SUCCESS]: (_, cont, value) => {\n return internalCall(() => cont.effect_instruction_i1(value));\n },\n [\"OnStep\"]: (_, _cont, value) => {\n return core.exitSucceed(core.exitSucceed(value));\n },\n [OpCodes.OP_ON_SUCCESS_AND_FAILURE]: (_, cont, value) => {\n return internalCall(() => cont.effect_instruction_i2(value));\n },\n [OpCodes.OP_REVERT_FLAGS]: (self, cont, value) => {\n self.patchRuntimeFlags(self.currentRuntimeFlags, cont.patch);\n if (runtimeFlags_.interruptible(self.currentRuntimeFlags) && self.isInterrupted()) {\n return core.exitFailCause(self.getInterruptedCause());\n } else {\n return core.exitSucceed(value);\n }\n },\n [OpCodes.OP_WHILE]: (self, cont, value) => {\n internalCall(() => cont.effect_instruction_i2(value));\n if (internalCall(() => cont.effect_instruction_i0())) {\n self.pushStack(cont);\n return internalCall(() => cont.effect_instruction_i1());\n } else {\n return core.void;\n }\n },\n [OpCodes.OP_ITERATOR]: (self, cont, value) => {\n while (true) {\n const state = internalCall(() => cont.effect_instruction_i0.next(value));\n if (state.done) {\n return core.exitSucceed(state.value);\n }\n const primitive = yieldWrapGet(state.value);\n if (!core.exitIsExit(primitive)) {\n self.pushStack(cont);\n return primitive;\n } else if (primitive._tag === \"Failure\") {\n return primitive;\n }\n value = primitive.value;\n }\n }\n};\nconst drainQueueWhileRunningTable = {\n [FiberMessage.OP_INTERRUPT_SIGNAL]: (self, runtimeFlags, cur, message) => {\n self.processNewInterruptSignal(message.cause);\n return runtimeFlags_.interruptible(runtimeFlags) ? core.exitFailCause(message.cause) : cur;\n },\n [FiberMessage.OP_RESUME]: (_self, _runtimeFlags, _cur, _message) => {\n throw new Error(\"It is illegal to have multiple concurrent run loops in a single fiber\");\n },\n [FiberMessage.OP_STATEFUL]: (self, runtimeFlags, cur, message) => {\n message.onFiber(self, FiberStatus.running(runtimeFlags));\n return cur;\n },\n [FiberMessage.OP_YIELD_NOW]: (_self, _runtimeFlags, cur, _message) => {\n return core.flatMap(core.yieldNow(), () => cur);\n }\n};\n/**\n * Executes all requests, submitting requests to each data source in parallel.\n */\nconst runBlockedRequests = self => core.forEachSequentialDiscard(RequestBlock_.flatten(self), requestsByRequestResolver => forEachConcurrentDiscard(RequestBlock_.sequentialCollectionToChunk(requestsByRequestResolver), ([dataSource, sequential]) => {\n const map = new Map();\n const arr = [];\n for (const block of sequential) {\n arr.push(Chunk.toReadonlyArray(block));\n for (const entry of block) {\n map.set(entry.request, entry);\n }\n }\n const flat = arr.flat();\n return core.fiberRefLocally(invokeWithInterrupt(dataSource.runAll(arr), flat, () => flat.forEach(entry => {\n entry.listeners.interrupted = true;\n })), currentRequestMap, map);\n}, false, false));\nconst _version = /*#__PURE__*/version.getCurrentVersion();\n/** @internal */\nexport class FiberRuntime extends Effectable.Class {\n [internalFiber.FiberTypeId] = internalFiber.fiberVariance;\n [internalFiber.RuntimeFiberTypeId] = runtimeFiberVariance;\n _fiberRefs;\n _fiberId;\n _queue = /*#__PURE__*/new Array();\n _children = null;\n _observers = /*#__PURE__*/new Array();\n _running = false;\n _stack = [];\n _asyncInterruptor = null;\n _asyncBlockingOn = null;\n _exitValue = null;\n _steps = [];\n _isYielding = false;\n currentRuntimeFlags;\n currentOpCount = 0;\n currentSupervisor;\n currentScheduler;\n currentTracer;\n currentSpan;\n currentContext;\n currentDefaultServices;\n constructor(fiberId, fiberRefs0, runtimeFlags0) {\n super();\n this.currentRuntimeFlags = runtimeFlags0;\n this._fiberId = fiberId;\n this._fiberRefs = fiberRefs0;\n if (runtimeFlags_.runtimeMetrics(runtimeFlags0)) {\n const tags = this.getFiberRef(core.currentMetricLabels);\n fiberStarted.unsafeUpdate(1, tags);\n fiberActive.unsafeUpdate(1, tags);\n }\n this.refreshRefCache();\n }\n commit() {\n return internalFiber.join(this);\n }\n /**\n * The identity of the fiber.\n */\n id() {\n return this._fiberId;\n }\n /**\n * Begins execution of the effect associated with this fiber on in the\n * background. This can be called to \"kick off\" execution of a fiber after\n * it has been created.\n */\n resume(effect) {\n this.tell(FiberMessage.resume(effect));\n }\n /**\n * The status of the fiber.\n */\n get status() {\n return this.ask((_, status) => status);\n }\n /**\n * Gets the fiber runtime flags.\n */\n get runtimeFlags() {\n return this.ask((state, status) => {\n if (FiberStatus.isDone(status)) {\n return state.currentRuntimeFlags;\n }\n return status.runtimeFlags;\n });\n }\n /**\n * Returns the current `FiberScope` for the fiber.\n */\n scope() {\n return fiberScope.unsafeMake(this);\n }\n /**\n * Retrieves the immediate children of the fiber.\n */\n get children() {\n return this.ask(fiber => Array.from(fiber.getChildren()));\n }\n /**\n * Gets the fiber's set of children.\n */\n getChildren() {\n if (this._children === null) {\n this._children = new Set();\n }\n return this._children;\n }\n /**\n * Retrieves the interrupted cause of the fiber, which will be `Cause.empty`\n * if the fiber has not been interrupted.\n *\n * **NOTE**: This method is safe to invoke on any fiber, but if not invoked\n * on this fiber, then values derived from the fiber's state (including the\n * log annotations and log level) may not be up-to-date.\n */\n getInterruptedCause() {\n return this.getFiberRef(core.currentInterruptedCause);\n }\n /**\n * Retrieves the whole set of fiber refs.\n */\n fiberRefs() {\n return this.ask(fiber => fiber.getFiberRefs());\n }\n /**\n * Returns an effect that will contain information computed from the fiber\n * state and status while running on the fiber.\n *\n * This allows the outside world to interact safely with mutable fiber state\n * without locks or immutable data.\n */\n ask(f) {\n return core.suspend(() => {\n const deferred = core.deferredUnsafeMake(this._fiberId);\n this.tell(FiberMessage.stateful((fiber, status) => {\n core.deferredUnsafeDone(deferred, core.sync(() => f(fiber, status)));\n }));\n return core.deferredAwait(deferred);\n });\n }\n /**\n * Adds a message to be processed by the fiber on the fiber.\n */\n tell(message) {\n this._queue.push(message);\n if (!this._running) {\n this._running = true;\n this.drainQueueLaterOnExecutor();\n }\n }\n get await() {\n return core.async(resume => {\n const cb = exit => resume(core.succeed(exit));\n this.tell(FiberMessage.stateful((fiber, _) => {\n if (fiber._exitValue !== null) {\n cb(this._exitValue);\n } else {\n fiber.addObserver(cb);\n }\n }));\n return core.sync(() => this.tell(FiberMessage.stateful((fiber, _) => {\n fiber.removeObserver(cb);\n })));\n }, this.id());\n }\n get inheritAll() {\n return core.withFiberRuntime((parentFiber, parentStatus) => {\n const parentFiberId = parentFiber.id();\n const parentFiberRefs = parentFiber.getFiberRefs();\n const parentRuntimeFlags = parentStatus.runtimeFlags;\n const childFiberRefs = this.getFiberRefs();\n const updatedFiberRefs = fiberRefs.joinAs(parentFiberRefs, parentFiberId, childFiberRefs);\n parentFiber.setFiberRefs(updatedFiberRefs);\n const updatedRuntimeFlags = parentFiber.getFiberRef(currentRuntimeFlags);\n const patch = pipe(runtimeFlags_.diff(parentRuntimeFlags, updatedRuntimeFlags),\n // Do not inherit WindDown or Interruption!\n RuntimeFlagsPatch.exclude(runtimeFlags_.Interruption), RuntimeFlagsPatch.exclude(runtimeFlags_.WindDown));\n return core.updateRuntimeFlags(patch);\n });\n }\n /**\n * Tentatively observes the fiber, but returns immediately if it is not\n * already done.\n */\n get poll() {\n return core.sync(() => Option.fromNullable(this._exitValue));\n }\n /**\n * Unsafely observes the fiber, but returns immediately if it is not\n * already done.\n */\n unsafePoll() {\n return this._exitValue;\n }\n /**\n * In the background, interrupts the fiber as if interrupted from the specified fiber.\n */\n interruptAsFork(fiberId) {\n return core.sync(() => this.tell(FiberMessage.interruptSignal(internalCause.interrupt(fiberId))));\n }\n /**\n * In the background, interrupts the fiber as if interrupted from the specified fiber.\n */\n unsafeInterruptAsFork(fiberId) {\n this.tell(FiberMessage.interruptSignal(internalCause.interrupt(fiberId)));\n }\n /**\n * Adds an observer to the list of observers.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n addObserver(observer) {\n if (this._exitValue !== null) {\n observer(this._exitValue);\n } else {\n this._observers.push(observer);\n }\n }\n /**\n * Removes the specified observer from the list of observers that will be\n * notified when the fiber exits.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n removeObserver(observer) {\n this._observers = this._observers.filter(o => o !== observer);\n }\n /**\n * Retrieves all fiber refs of the fiber.\n *\n * **NOTE**: This method is safe to invoke on any fiber, but if not invoked\n * on this fiber, then values derived from the fiber's state (including the\n * log annotations and log level) may not be up-to-date.\n */\n getFiberRefs() {\n this.setFiberRef(currentRuntimeFlags, this.currentRuntimeFlags);\n return this._fiberRefs;\n }\n /**\n * Deletes the specified fiber ref.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n unsafeDeleteFiberRef(fiberRef) {\n this._fiberRefs = fiberRefs.delete_(this._fiberRefs, fiberRef);\n }\n /**\n * Retrieves the state of the fiber ref, or else its initial value.\n *\n * **NOTE**: This method is safe to invoke on any fiber, but if not invoked\n * on this fiber, then values derived from the fiber's state (including the\n * log annotations and log level) may not be up-to-date.\n */\n getFiberRef(fiberRef) {\n if (this._fiberRefs.locals.has(fiberRef)) {\n return this._fiberRefs.locals.get(fiberRef)[0][1];\n }\n return fiberRef.initial;\n }\n /**\n * Sets the fiber ref to the specified value.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n setFiberRef(fiberRef, value) {\n this._fiberRefs = fiberRefs.updateAs(this._fiberRefs, {\n fiberId: this._fiberId,\n fiberRef,\n value\n });\n this.refreshRefCache();\n }\n refreshRefCache() {\n this.currentDefaultServices = this.getFiberRef(defaultServices.currentServices);\n this.currentTracer = this.currentDefaultServices.unsafeMap.get(tracer.tracerTag.key);\n this.currentSupervisor = this.getFiberRef(currentSupervisor);\n this.currentScheduler = this.getFiberRef(currentScheduler);\n this.currentContext = this.getFiberRef(core.currentContext);\n this.currentSpan = this.currentContext.unsafeMap.get(tracer.spanTag.key);\n }\n /**\n * Wholesale replaces all fiber refs of this fiber.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n setFiberRefs(fiberRefs) {\n this._fiberRefs = fiberRefs;\n this.refreshRefCache();\n }\n /**\n * Adds a reference to the specified fiber inside the children set.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n addChild(child) {\n this.getChildren().add(child);\n }\n /**\n * Removes a reference to the specified fiber inside the children set.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n removeChild(child) {\n this.getChildren().delete(child);\n }\n /**\n * Transfers all children of this fiber that are currently running to the\n * specified fiber scope.\n *\n * **NOTE**: This method must be invoked by the fiber itself after it has\n * evaluated the effects but prior to exiting.\n */\n transferChildren(scope) {\n const children = this._children;\n // Clear the children of the current fiber\n this._children = null;\n if (children !== null && children.size > 0) {\n for (const child of children) {\n // If the child is still running, add it to the scope\n if (child._exitValue === null) {\n scope.add(this.currentRuntimeFlags, child);\n }\n }\n }\n }\n /**\n * On the current thread, executes all messages in the fiber's inbox. This\n * method may return before all work is done, in the event the fiber executes\n * an asynchronous operation.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n drainQueueOnCurrentThread() {\n let recurse = true;\n while (recurse) {\n let evaluationSignal = EvaluationSignalContinue;\n const prev = globalThis[internalFiber.currentFiberURI];\n globalThis[internalFiber.currentFiberURI] = this;\n try {\n while (evaluationSignal === EvaluationSignalContinue) {\n evaluationSignal = this._queue.length === 0 ? EvaluationSignalDone : this.evaluateMessageWhileSuspended(this._queue.splice(0, 1)[0]);\n }\n } finally {\n this._running = false;\n globalThis[internalFiber.currentFiberURI] = prev;\n }\n // Maybe someone added something to the queue between us checking, and us\n // giving up the drain. If so, we need to restart the draining, but only\n // if we beat everyone else to the restart:\n if (this._queue.length > 0 && !this._running) {\n this._running = true;\n if (evaluationSignal === EvaluationSignalYieldNow) {\n this.drainQueueLaterOnExecutor();\n recurse = false;\n } else {\n recurse = true;\n }\n } else {\n recurse = false;\n }\n }\n }\n /**\n * Schedules the execution of all messages in the fiber's inbox.\n *\n * This method will return immediately after the scheduling\n * operation is completed, but potentially before such messages have been\n * executed.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n drainQueueLaterOnExecutor() {\n this.currentScheduler.scheduleTask(this.run, this.getFiberRef(core.currentSchedulingPriority));\n }\n /**\n * Drains the fiber's message queue while the fiber is actively running,\n * returning the next effect to execute, which may be the input effect if no\n * additional effect needs to be executed.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n drainQueueWhileRunning(runtimeFlags, cur0) {\n let cur = cur0;\n while (this._queue.length > 0) {\n const message = this._queue.splice(0, 1)[0];\n // @ts-expect-error\n cur = drainQueueWhileRunningTable[message._tag](this, runtimeFlags, cur, message);\n }\n return cur;\n }\n /**\n * Determines if the fiber is interrupted.\n *\n * **NOTE**: This method is safe to invoke on any fiber, but if not invoked\n * on this fiber, then values derived from the fiber's state (including the\n * log annotations and log level) may not be up-to-date.\n */\n isInterrupted() {\n return !internalCause.isEmpty(this.getFiberRef(core.currentInterruptedCause));\n }\n /**\n * Adds an interruptor to the set of interruptors that are interrupting this\n * fiber.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n addInterruptedCause(cause) {\n const oldSC = this.getFiberRef(core.currentInterruptedCause);\n this.setFiberRef(core.currentInterruptedCause, internalCause.sequential(oldSC, cause));\n }\n /**\n * Processes a new incoming interrupt signal.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n processNewInterruptSignal(cause) {\n this.addInterruptedCause(cause);\n this.sendInterruptSignalToAllChildren();\n }\n /**\n * Interrupts all children of the current fiber, returning an effect that will\n * await the exit of the children. This method will return null if the fiber\n * has no children.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n sendInterruptSignalToAllChildren() {\n if (this._children === null || this._children.size === 0) {\n return false;\n }\n let told = false;\n for (const child of this._children) {\n child.tell(FiberMessage.interruptSignal(internalCause.interrupt(this.id())));\n told = true;\n }\n return told;\n }\n /**\n * Interrupts all children of the current fiber, returning an effect that will\n * await the exit of the children. This method will return null if the fiber\n * has no children.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n interruptAllChildren() {\n if (this.sendInterruptSignalToAllChildren()) {\n const it = this._children.values();\n this._children = null;\n let isDone = false;\n const body = () => {\n const next = it.next();\n if (!next.done) {\n return core.asVoid(next.value.await);\n } else {\n return core.sync(() => {\n isDone = true;\n });\n }\n };\n return core.whileLoop({\n while: () => !isDone,\n body,\n step: () => {\n //\n }\n });\n }\n return null;\n }\n reportExitValue(exit) {\n if (runtimeFlags_.runtimeMetrics(this.currentRuntimeFlags)) {\n const tags = this.getFiberRef(core.currentMetricLabels);\n const startTimeMillis = this.id().startTimeMillis;\n const endTimeMillis = Date.now();\n fiberLifetimes.unsafeUpdate(endTimeMillis - startTimeMillis, tags);\n fiberActive.unsafeUpdate(-1, tags);\n switch (exit._tag) {\n case OpCodes.OP_SUCCESS:\n {\n fiberSuccesses.unsafeUpdate(1, tags);\n break;\n }\n case OpCodes.OP_FAILURE:\n {\n fiberFailures.unsafeUpdate(1, tags);\n break;\n }\n }\n }\n if (exit._tag === \"Failure\") {\n const level = this.getFiberRef(core.currentUnhandledErrorLogLevel);\n if (!internalCause.isInterruptedOnly(exit.cause) && level._tag === \"Some\") {\n this.log(\"Fiber terminated with an unhandled error\", exit.cause, level);\n }\n }\n }\n setExitValue(exit) {\n this._exitValue = exit;\n this.reportExitValue(exit);\n for (let i = this._observers.length - 1; i >= 0; i--) {\n this._observers[i](exit);\n }\n this._observers = [];\n }\n getLoggers() {\n return this.getFiberRef(currentLoggers);\n }\n log(message, cause, overrideLogLevel) {\n const logLevel = Option.isSome(overrideLogLevel) ? overrideLogLevel.value : this.getFiberRef(core.currentLogLevel);\n const minimumLogLevel = this.getFiberRef(currentMinimumLogLevel);\n if (LogLevel.greaterThan(minimumLogLevel, logLevel)) {\n return;\n }\n const spans = this.getFiberRef(core.currentLogSpan);\n const annotations = this.getFiberRef(core.currentLogAnnotations);\n const loggers = this.getLoggers();\n const contextMap = this.getFiberRefs();\n if (HashSet.size(loggers) > 0) {\n const clockService = Context.get(this.getFiberRef(defaultServices.currentServices), clock.clockTag);\n const date = new Date(clockService.unsafeCurrentTimeMillis());\n Inspectable.withRedactableContext(contextMap, () => {\n for (const logger of loggers) {\n logger.log({\n fiberId: this.id(),\n logLevel,\n message,\n cause,\n context: contextMap,\n spans,\n annotations,\n date\n });\n }\n });\n }\n }\n /**\n * Evaluates a single message on the current thread, while the fiber is\n * suspended. This method should only be called while evaluation of the\n * fiber's effect is suspended due to an asynchronous operation.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n evaluateMessageWhileSuspended(message) {\n switch (message._tag) {\n case FiberMessage.OP_YIELD_NOW:\n {\n return EvaluationSignalYieldNow;\n }\n case FiberMessage.OP_INTERRUPT_SIGNAL:\n {\n this.processNewInterruptSignal(message.cause);\n if (this._asyncInterruptor !== null) {\n this._asyncInterruptor(core.exitFailCause(message.cause));\n this._asyncInterruptor = null;\n }\n return EvaluationSignalContinue;\n }\n case FiberMessage.OP_RESUME:\n {\n this._asyncInterruptor = null;\n this._asyncBlockingOn = null;\n this.evaluateEffect(message.effect);\n return EvaluationSignalContinue;\n }\n case FiberMessage.OP_STATEFUL:\n {\n message.onFiber(this, this._exitValue !== null ? FiberStatus.done : FiberStatus.suspended(this.currentRuntimeFlags, this._asyncBlockingOn));\n return EvaluationSignalContinue;\n }\n default:\n {\n return absurd(message);\n }\n }\n }\n /**\n * Evaluates an effect until completion, potentially asynchronously.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n evaluateEffect(effect0) {\n this.currentSupervisor.onResume(this);\n try {\n let effect = runtimeFlags_.interruptible(this.currentRuntimeFlags) && this.isInterrupted() ? core.exitFailCause(this.getInterruptedCause()) : effect0;\n while (effect !== null) {\n const eff = effect;\n const exit = this.runLoop(eff);\n if (exit === YieldedOp) {\n const op = yieldedOpChannel.currentOp;\n yieldedOpChannel.currentOp = null;\n if (op._op === OpCodes.OP_YIELD) {\n if (runtimeFlags_.cooperativeYielding(this.currentRuntimeFlags)) {\n this.tell(FiberMessage.yieldNow());\n this.tell(FiberMessage.resume(core.exitVoid));\n effect = null;\n } else {\n effect = core.exitVoid;\n }\n } else if (op._op === OpCodes.OP_ASYNC) {\n // Terminate this evaluation, async resumption will continue evaluation:\n effect = null;\n }\n } else {\n this.currentRuntimeFlags = pipe(this.currentRuntimeFlags, runtimeFlags_.enable(runtimeFlags_.WindDown));\n const interruption = this.interruptAllChildren();\n if (interruption !== null) {\n effect = core.flatMap(interruption, () => exit);\n } else {\n if (this._queue.length === 0) {\n // No more messages to process, so we will allow the fiber to end life:\n this.setExitValue(exit);\n } else {\n // There are messages, possibly added by the final op executed by\n // the fiber. To be safe, we should execute those now before we\n // allow the fiber to end life:\n this.tell(FiberMessage.resume(exit));\n }\n effect = null;\n }\n }\n }\n } finally {\n this.currentSupervisor.onSuspend(this);\n }\n }\n /**\n * Begins execution of the effect associated with this fiber on the current\n * thread. This can be called to \"kick off\" execution of a fiber after it has\n * been created, in hopes that the effect can be executed synchronously.\n *\n * This is not the normal way of starting a fiber, but it is useful when the\n * express goal of executing the fiber is to synchronously produce its exit.\n */\n start(effect) {\n if (!this._running) {\n this._running = true;\n const prev = globalThis[internalFiber.currentFiberURI];\n globalThis[internalFiber.currentFiberURI] = this;\n try {\n this.evaluateEffect(effect);\n } finally {\n this._running = false;\n globalThis[internalFiber.currentFiberURI] = prev;\n // Because we're special casing `start`, we have to be responsible\n // for spinning up the fiber if there were new messages added to\n // the queue between the completion of the effect and the transition\n // to the not running state.\n if (this._queue.length > 0) {\n this.drainQueueLaterOnExecutor();\n }\n }\n } else {\n this.tell(FiberMessage.resume(effect));\n }\n }\n /**\n * Begins execution of the effect associated with this fiber on in the\n * background, and on the correct thread pool. This can be called to \"kick\n * off\" execution of a fiber after it has been created, in hopes that the\n * effect can be executed synchronously.\n */\n startFork(effect) {\n this.tell(FiberMessage.resume(effect));\n }\n /**\n * Takes the current runtime flags, patches them to return the new runtime\n * flags, and then makes any changes necessary to fiber state based on the\n * specified patch.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n patchRuntimeFlags(oldRuntimeFlags, patch) {\n const newRuntimeFlags = runtimeFlags_.patch(oldRuntimeFlags, patch);\n globalThis[internalFiber.currentFiberURI] = this;\n this.currentRuntimeFlags = newRuntimeFlags;\n return newRuntimeFlags;\n }\n /**\n * Initiates an asynchronous operation, by building a callback that will\n * resume execution, and then feeding that callback to the registration\n * function, handling error cases and repeated resumptions appropriately.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n initiateAsync(runtimeFlags, asyncRegister) {\n let alreadyCalled = false;\n const callback = effect => {\n if (!alreadyCalled) {\n alreadyCalled = true;\n this.tell(FiberMessage.resume(effect));\n }\n };\n if (runtimeFlags_.interruptible(runtimeFlags)) {\n this._asyncInterruptor = callback;\n }\n try {\n asyncRegister(callback);\n } catch (e) {\n callback(core.failCause(internalCause.die(e)));\n }\n }\n pushStack(cont) {\n this._stack.push(cont);\n if (cont._op === \"OnStep\") {\n this._steps.push({\n refs: this.getFiberRefs(),\n flags: this.currentRuntimeFlags\n });\n }\n }\n popStack() {\n const item = this._stack.pop();\n if (item) {\n if (item._op === \"OnStep\") {\n this._steps.pop();\n }\n return item;\n }\n return;\n }\n getNextSuccessCont() {\n let frame = this.popStack();\n while (frame) {\n if (frame._op !== OpCodes.OP_ON_FAILURE) {\n return frame;\n }\n frame = this.popStack();\n }\n }\n getNextFailCont() {\n let frame = this.popStack();\n while (frame) {\n if (frame._op !== OpCodes.OP_ON_SUCCESS && frame._op !== OpCodes.OP_WHILE && frame._op !== OpCodes.OP_ITERATOR) {\n return frame;\n }\n frame = this.popStack();\n }\n }\n [OpCodes.OP_TAG](op) {\n return core.sync(() => Context.unsafeGet(this.currentContext, op));\n }\n [\"Left\"](op) {\n return core.fail(op.left);\n }\n [\"None\"](_) {\n return core.fail(new core.NoSuchElementException());\n }\n [\"Right\"](op) {\n return core.exitSucceed(op.right);\n }\n [\"Some\"](op) {\n return core.exitSucceed(op.value);\n }\n [\"Micro\"](op) {\n return core.unsafeAsync(microResume => {\n let resume = microResume;\n const fiber = Micro.runFork(Micro.provideContext(op, this.currentContext));\n fiber.addObserver(exit => {\n if (exit._tag === \"Success\") {\n return resume(core.exitSucceed(exit.value));\n }\n switch (exit.cause._tag) {\n case \"Interrupt\":\n {\n return resume(core.exitFailCause(internalCause.interrupt(FiberId.none)));\n }\n case \"Fail\":\n {\n return resume(core.fail(exit.cause.error));\n }\n case \"Die\":\n {\n return resume(core.die(exit.cause.defect));\n }\n }\n });\n return core.unsafeAsync(abortResume => {\n resume = _ => {\n abortResume(core.void);\n };\n fiber.unsafeInterrupt();\n });\n });\n }\n [OpCodes.OP_SYNC](op) {\n const value = internalCall(() => op.effect_instruction_i0());\n const cont = this.getNextSuccessCont();\n if (cont !== undefined) {\n if (!(cont._op in contOpSuccess)) {\n // @ts-expect-error\n absurd(cont);\n }\n // @ts-expect-error\n return contOpSuccess[cont._op](this, cont, value);\n } else {\n yieldedOpChannel.currentOp = core.exitSucceed(value);\n return YieldedOp;\n }\n }\n [OpCodes.OP_SUCCESS](op) {\n const oldCur = op;\n const cont = this.getNextSuccessCont();\n if (cont !== undefined) {\n if (!(cont._op in contOpSuccess)) {\n // @ts-expect-error\n absurd(cont);\n }\n // @ts-expect-error\n return contOpSuccess[cont._op](this, cont, oldCur.effect_instruction_i0);\n } else {\n yieldedOpChannel.currentOp = oldCur;\n return YieldedOp;\n }\n }\n [OpCodes.OP_FAILURE](op) {\n const cause = op.effect_instruction_i0;\n const cont = this.getNextFailCont();\n if (cont !== undefined) {\n switch (cont._op) {\n case OpCodes.OP_ON_FAILURE:\n case OpCodes.OP_ON_SUCCESS_AND_FAILURE:\n {\n if (!(runtimeFlags_.interruptible(this.currentRuntimeFlags) && this.isInterrupted())) {\n return internalCall(() => cont.effect_instruction_i1(cause));\n } else {\n return core.exitFailCause(internalCause.stripFailures(cause));\n }\n }\n case \"OnStep\":\n {\n if (!(runtimeFlags_.interruptible(this.currentRuntimeFlags) && this.isInterrupted())) {\n return core.exitSucceed(core.exitFailCause(cause));\n } else {\n return core.exitFailCause(internalCause.stripFailures(cause));\n }\n }\n case OpCodes.OP_REVERT_FLAGS:\n {\n this.patchRuntimeFlags(this.currentRuntimeFlags, cont.patch);\n if (runtimeFlags_.interruptible(this.currentRuntimeFlags) && this.isInterrupted()) {\n return core.exitFailCause(internalCause.sequential(cause, this.getInterruptedCause()));\n } else {\n return core.exitFailCause(cause);\n }\n }\n default:\n {\n absurd(cont);\n }\n }\n } else {\n yieldedOpChannel.currentOp = core.exitFailCause(cause);\n return YieldedOp;\n }\n }\n [OpCodes.OP_WITH_RUNTIME](op) {\n return internalCall(() => op.effect_instruction_i0(this, FiberStatus.running(this.currentRuntimeFlags)));\n }\n [\"Blocked\"](op) {\n const refs = this.getFiberRefs();\n const flags = this.currentRuntimeFlags;\n if (this._steps.length > 0) {\n const frames = [];\n const snap = this._steps[this._steps.length - 1];\n let frame = this.popStack();\n while (frame && frame._op !== \"OnStep\") {\n frames.push(frame);\n frame = this.popStack();\n }\n this.setFiberRefs(snap.refs);\n this.currentRuntimeFlags = snap.flags;\n const patchRefs = FiberRefsPatch.diff(snap.refs, refs);\n const patchFlags = runtimeFlags_.diff(snap.flags, flags);\n return core.exitSucceed(core.blocked(op.effect_instruction_i0, core.withFiberRuntime(newFiber => {\n while (frames.length > 0) {\n newFiber.pushStack(frames.pop());\n }\n newFiber.setFiberRefs(FiberRefsPatch.patch(newFiber.id(), newFiber.getFiberRefs())(patchRefs));\n newFiber.currentRuntimeFlags = runtimeFlags_.patch(patchFlags)(newFiber.currentRuntimeFlags);\n return op.effect_instruction_i1;\n })));\n }\n return core.uninterruptibleMask(restore => core.flatMap(forkDaemon(core.runRequestBlock(op.effect_instruction_i0)), () => restore(op.effect_instruction_i1)));\n }\n [\"RunBlocked\"](op) {\n return runBlockedRequests(op.effect_instruction_i0);\n }\n [OpCodes.OP_UPDATE_RUNTIME_FLAGS](op) {\n const updateFlags = op.effect_instruction_i0;\n const oldRuntimeFlags = this.currentRuntimeFlags;\n const newRuntimeFlags = runtimeFlags_.patch(oldRuntimeFlags, updateFlags);\n // One more chance to short circuit: if we're immediately going\n // to interrupt. Interruption will cause immediate reversion of\n // the flag, so as long as we \"peek ahead\", there's no need to\n // set them to begin with.\n if (runtimeFlags_.interruptible(newRuntimeFlags) && this.isInterrupted()) {\n return core.exitFailCause(this.getInterruptedCause());\n } else {\n // Impossible to short circuit, so record the changes\n this.patchRuntimeFlags(this.currentRuntimeFlags, updateFlags);\n if (op.effect_instruction_i1) {\n // Since we updated the flags, we need to revert them\n const revertFlags = runtimeFlags_.diff(newRuntimeFlags, oldRuntimeFlags);\n this.pushStack(new core.RevertFlags(revertFlags, op));\n return internalCall(() => op.effect_instruction_i1(oldRuntimeFlags));\n } else {\n return core.exitVoid;\n }\n }\n }\n [OpCodes.OP_ON_SUCCESS](op) {\n this.pushStack(op);\n return op.effect_instruction_i0;\n }\n [\"OnStep\"](op) {\n this.pushStack(op);\n return op.effect_instruction_i0;\n }\n [OpCodes.OP_ON_FAILURE](op) {\n this.pushStack(op);\n return op.effect_instruction_i0;\n }\n [OpCodes.OP_ON_SUCCESS_AND_FAILURE](op) {\n this.pushStack(op);\n return op.effect_instruction_i0;\n }\n [OpCodes.OP_ASYNC](op) {\n this._asyncBlockingOn = op.effect_instruction_i1;\n this.initiateAsync(this.currentRuntimeFlags, op.effect_instruction_i0);\n yieldedOpChannel.currentOp = op;\n return YieldedOp;\n }\n [OpCodes.OP_YIELD](op) {\n this._isYielding = false;\n yieldedOpChannel.currentOp = op;\n return YieldedOp;\n }\n [OpCodes.OP_WHILE](op) {\n const check = op.effect_instruction_i0;\n const body = op.effect_instruction_i1;\n if (check()) {\n this.pushStack(op);\n return body();\n } else {\n return core.exitVoid;\n }\n }\n [OpCodes.OP_ITERATOR](op) {\n return contOpSuccess[OpCodes.OP_ITERATOR](this, op, undefined);\n }\n [OpCodes.OP_COMMIT](op) {\n return internalCall(() => op.commit());\n }\n /**\n * The main run-loop for evaluating effects.\n *\n * **NOTE**: This method must be invoked by the fiber itself.\n */\n runLoop(effect0) {\n let cur = effect0;\n this.currentOpCount = 0;\n while (true) {\n if ((this.currentRuntimeFlags & OpSupervision) !== 0) {\n this.currentSupervisor.onEffect(this, cur);\n }\n if (this._queue.length > 0) {\n cur = this.drainQueueWhileRunning(this.currentRuntimeFlags, cur);\n }\n if (!this._isYielding) {\n this.currentOpCount += 1;\n const shouldYield = this.currentScheduler.shouldYield(this);\n if (shouldYield !== false) {\n this._isYielding = true;\n this.currentOpCount = 0;\n const oldCur = cur;\n cur = core.flatMap(core.yieldNow({\n priority: shouldYield\n }), () => oldCur);\n }\n }\n try {\n // @ts-expect-error\n cur = this.currentTracer.context(() => {\n if (_version !== cur[core.EffectTypeId]._V) {\n const level = this.getFiberRef(core.currentVersionMismatchErrorLogLevel);\n if (level._tag === \"Some\") {\n const effectVersion = cur[core.EffectTypeId]._V;\n this.log(`Executing an Effect versioned ${effectVersion} with a Runtime of version ${version.getCurrentVersion()}, you may want to dedupe the effect dependencies, you can use the language service plugin to detect this at compile time: https://github.com/Effect-TS/language-service`, internalCause.empty, level);\n }\n }\n // @ts-expect-error\n return this[cur._op](cur);\n }, this);\n if (cur === YieldedOp) {\n const op = yieldedOpChannel.currentOp;\n if (op._op === OpCodes.OP_YIELD || op._op === OpCodes.OP_ASYNC) {\n return YieldedOp;\n }\n yieldedOpChannel.currentOp = null;\n return op._op === OpCodes.OP_SUCCESS || op._op === OpCodes.OP_FAILURE ? op : core.exitFailCause(internalCause.die(op));\n }\n } catch (e) {\n if (cur !== YieldedOp && !Predicate.hasProperty(cur, \"_op\") || !(cur._op in this)) {\n cur = core.dieMessage(`Not a valid effect: ${Inspectable.toStringUnknown(cur)}`);\n } else if (core.isInterruptedException(e)) {\n cur = core.exitFailCause(internalCause.sequential(internalCause.die(e), internalCause.interrupt(FiberId.none)));\n } else {\n cur = core.die(e);\n }\n }\n }\n }\n run = () => {\n this.drainQueueOnCurrentThread();\n };\n}\n// circular with Logger\n/** @internal */\nexport const currentMinimumLogLevel = /*#__PURE__*/globalValue(\"effect/FiberRef/currentMinimumLogLevel\", () => core.fiberRefUnsafeMake(LogLevel.fromLiteral(\"Info\")));\n/** @internal */\nexport const loggerWithConsoleLog = self => internalLogger.makeLogger(opts => {\n const services = FiberRefs.getOrDefault(opts.context, defaultServices.currentServices);\n Context.get(services, consoleTag).unsafe.log(self.log(opts));\n});\n/** @internal */\nexport const loggerWithLeveledLog = self => internalLogger.makeLogger(opts => {\n const services = FiberRefs.getOrDefault(opts.context, defaultServices.currentServices);\n const unsafeLogger = Context.get(services, consoleTag).unsafe;\n switch (opts.logLevel._tag) {\n case \"Debug\":\n return unsafeLogger.debug(self.log(opts));\n case \"Info\":\n return unsafeLogger.info(self.log(opts));\n case \"Trace\":\n return unsafeLogger.trace(self.log(opts));\n case \"Warning\":\n return unsafeLogger.warn(self.log(opts));\n case \"Error\":\n case \"Fatal\":\n return unsafeLogger.error(self.log(opts));\n default:\n return unsafeLogger.log(self.log(opts));\n }\n});\n/** @internal */\nexport const loggerWithConsoleError = self => internalLogger.makeLogger(opts => {\n const services = FiberRefs.getOrDefault(opts.context, defaultServices.currentServices);\n Context.get(services, consoleTag).unsafe.error(self.log(opts));\n});\n/** @internal */\nexport const defaultLogger = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Logger/defaultLogger\"), () => loggerWithConsoleLog(internalLogger.stringLogger));\n/** @internal */\nexport const jsonLogger = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Logger/jsonLogger\"), () => loggerWithConsoleLog(internalLogger.jsonLogger));\n/** @internal */\nexport const logFmtLogger = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Logger/logFmtLogger\"), () => loggerWithConsoleLog(internalLogger.logfmtLogger));\n/** @internal */\nexport const prettyLogger = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Logger/prettyLogger\"), () => internalLogger.prettyLoggerDefault);\n/** @internal */\nexport const structuredLogger = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Logger/structuredLogger\"), () => loggerWithConsoleLog(internalLogger.structuredLogger));\n/** @internal */\nexport const tracerLogger = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Logger/tracerLogger\"), () => internalLogger.makeLogger(({\n annotations,\n cause,\n context,\n fiberId,\n logLevel,\n message\n}) => {\n const span = Context.getOption(fiberRefs.getOrDefault(context, core.currentContext), tracer.spanTag);\n if (span._tag === \"None\" || span.value._tag === \"ExternalSpan\") {\n return;\n }\n const clockService = Context.unsafeGet(fiberRefs.getOrDefault(context, defaultServices.currentServices), clock.clockTag);\n const attributes = {};\n for (const [key, value] of annotations) {\n attributes[key] = value;\n }\n attributes[\"effect.fiberId\"] = FiberId.threadName(fiberId);\n attributes[\"effect.logLevel\"] = logLevel.label;\n if (cause !== null && cause._tag !== \"Empty\") {\n attributes[\"effect.cause\"] = internalCause.pretty(cause, {\n renderErrorCause: true\n });\n }\n span.value.event(Inspectable.toStringUnknown(Array.isArray(message) && message.length === 1 ? message[0] : message), clockService.unsafeCurrentTimeNanos(), attributes);\n}));\n/** @internal */\nexport const loggerWithSpanAnnotations = self => internalLogger.mapInputOptions(self, options => {\n const span = Option.flatMap(fiberRefs.get(options.context, core.currentContext), Context.getOption(tracer.spanTag));\n if (span._tag === \"None\") {\n return options;\n }\n return {\n ...options,\n annotations: pipe(options.annotations, HashMap.set(\"effect.traceId\", span.value.traceId), HashMap.set(\"effect.spanId\", span.value.spanId), span.value._tag === \"Span\" ? HashMap.set(\"effect.spanName\", span.value.name) : identity)\n };\n});\n/** @internal */\nexport const currentLoggers = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/FiberRef/currentLoggers\"), () => core.fiberRefUnsafeMakeHashSet(HashSet.make(defaultLogger, tracerLogger)));\n/** @internal */\nexport const batchedLogger = /*#__PURE__*/dual(3, (self, window, f) => core.flatMap(scope, scope => {\n let buffer = [];\n const flush = core.suspend(() => {\n if (buffer.length === 0) {\n return core.void;\n }\n const arr = buffer;\n buffer = [];\n return f(arr);\n });\n return core.uninterruptibleMask(restore => pipe(internalEffect.sleep(window), core.zipRight(flush), internalEffect.forever, restore, forkDaemon, core.flatMap(fiber => core.scopeAddFinalizer(scope, core.interruptFiber(fiber))), core.zipRight(addFinalizer(() => flush)), core.as(internalLogger.makeLogger(options => {\n buffer.push(self.log(options));\n }))));\n}));\nexport const annotateLogsScoped = function () {\n if (typeof arguments[0] === \"string\") {\n return fiberRefLocallyScopedWith(core.currentLogAnnotations, HashMap.set(arguments[0], arguments[1]));\n }\n const entries = Object.entries(arguments[0]);\n return fiberRefLocallyScopedWith(core.currentLogAnnotations, HashMap.mutate(annotations => {\n for (let i = 0; i < entries.length; i++) {\n const [key, value] = entries[i];\n HashMap.set(annotations, key, value);\n }\n return annotations;\n }));\n};\n/** @internal */\nexport const whenLogLevel = /*#__PURE__*/dual(2, (effect, level) => {\n const requiredLogLevel = typeof level === \"string\" ? LogLevel.fromLiteral(level) : level;\n return core.withFiberRuntime(fiberState => {\n const minimumLogLevel = fiberState.getFiberRef(currentMinimumLogLevel);\n // Imitate the behaviour of `FiberRuntime.log`\n if (LogLevel.greaterThan(minimumLogLevel, requiredLogLevel)) {\n return core.succeed(Option.none());\n }\n return core.map(effect, Option.some);\n });\n});\n// circular with Effect\n/* @internal */\nexport const acquireRelease = /*#__PURE__*/dual(args => core.isEffect(args[0]), (acquire, release) => core.uninterruptible(core.tap(acquire, a => addFinalizer(exit => release(a, exit)))));\n/* @internal */\nexport const acquireReleaseInterruptible = /*#__PURE__*/dual(args => core.isEffect(args[0]), (acquire, release) => ensuring(acquire, addFinalizer(exit => release(exit))));\n/* @internal */\nexport const addFinalizer = finalizer => core.withFiberRuntime(runtime => {\n const acquireRefs = runtime.getFiberRefs();\n const acquireFlags = runtimeFlags_.disable(runtime.currentRuntimeFlags, runtimeFlags_.Interruption);\n return core.flatMap(scope, scope => core.scopeAddFinalizerExit(scope, exit => core.withFiberRuntime(runtimeFinalizer => {\n const preRefs = runtimeFinalizer.getFiberRefs();\n const preFlags = runtimeFinalizer.currentRuntimeFlags;\n const patchRefs = FiberRefsPatch.diff(preRefs, acquireRefs);\n const patchFlags = runtimeFlags_.diff(preFlags, acquireFlags);\n const inverseRefs = FiberRefsPatch.diff(acquireRefs, preRefs);\n runtimeFinalizer.setFiberRefs(FiberRefsPatch.patch(patchRefs, runtimeFinalizer.id(), acquireRefs));\n return ensuring(core.withRuntimeFlags(finalizer(exit), patchFlags), core.sync(() => {\n runtimeFinalizer.setFiberRefs(FiberRefsPatch.patch(inverseRefs, runtimeFinalizer.id(), runtimeFinalizer.getFiberRefs()));\n }));\n })));\n});\n/* @internal */\nexport const daemonChildren = self => {\n const forkScope = core.fiberRefLocally(core.currentForkScopeOverride, Option.some(fiberScope.globalScope));\n return forkScope(self);\n};\n/** @internal */\nconst _existsParFound = /*#__PURE__*/Symbol.for(\"effect/Effect/existsPar/found\");\n/* @internal */\nexport const exists = /*#__PURE__*/dual(args => Predicate.isIterable(args[0]) && !core.isEffect(args[0]), (elements, predicate, options) => concurrency.matchSimple(options?.concurrency, () => core.suspend(() => existsLoop(elements[Symbol.iterator](), 0, predicate)), () => core.matchEffect(forEach(elements, (a, i) => core.if_(predicate(a, i), {\n onTrue: () => core.fail(_existsParFound),\n onFalse: () => core.void\n}), options), {\n onFailure: e => e === _existsParFound ? core.succeed(true) : core.fail(e),\n onSuccess: () => core.succeed(false)\n})));\nconst existsLoop = (iterator, index, f) => {\n const next = iterator.next();\n if (next.done) {\n return core.succeed(false);\n }\n return core.flatMap(f(next.value, index), b => b ? core.succeed(b) : existsLoop(iterator, index + 1, f));\n};\n/* @internal */\nexport const filter = /*#__PURE__*/dual(args => Predicate.isIterable(args[0]) && !core.isEffect(args[0]), (elements, predicate, options) => {\n const predicate_ = options?.negate ? (a, i) => core.map(predicate(a, i), Boolean.not) : predicate;\n return concurrency.matchSimple(options?.concurrency, () => core.suspend(() => RA.fromIterable(elements).reduceRight((effect, a, i) => core.zipWith(effect, core.suspend(() => predicate_(a, i)), (list, b) => b ? [a, ...list] : list), core.sync(() => new Array()))), () => core.map(forEach(elements, (a, i) => core.map(predicate_(a, i), b => b ? Option.some(a) : Option.none()), options), RA.getSomes));\n});\n// === all\nconst allResolveInput = input => {\n if (Array.isArray(input) || Predicate.isIterable(input)) {\n return [input, Option.none()];\n }\n const keys = Object.keys(input);\n const size = keys.length;\n return [keys.map(k => input[k]), Option.some(values => {\n const res = {};\n for (let i = 0; i < size; i++) {\n ;\n res[keys[i]] = values[i];\n }\n return res;\n })];\n};\nconst allValidate = (effects, reconcile, options) => {\n const eitherEffects = [];\n for (const effect of effects) {\n eitherEffects.push(core.either(effect));\n }\n return core.flatMap(forEach(eitherEffects, identity, {\n concurrency: options?.concurrency,\n batching: options?.batching,\n concurrentFinalizers: options?.concurrentFinalizers\n }), eithers => {\n const none = Option.none();\n const size = eithers.length;\n const errors = new Array(size);\n const successes = new Array(size);\n let errored = false;\n for (let i = 0; i < size; i++) {\n const either = eithers[i];\n if (either._tag === \"Left\") {\n errors[i] = Option.some(either.left);\n errored = true;\n } else {\n successes[i] = either.right;\n errors[i] = none;\n }\n }\n if (errored) {\n return reconcile._tag === \"Some\" ? core.fail(reconcile.value(errors)) : core.fail(errors);\n } else if (options?.discard) {\n return core.void;\n }\n return reconcile._tag === \"Some\" ? core.succeed(reconcile.value(successes)) : core.succeed(successes);\n });\n};\nconst allEither = (effects, reconcile, options) => {\n const eitherEffects = [];\n for (const effect of effects) {\n eitherEffects.push(core.either(effect));\n }\n if (options?.discard) {\n return forEach(eitherEffects, identity, {\n concurrency: options?.concurrency,\n batching: options?.batching,\n discard: true,\n concurrentFinalizers: options?.concurrentFinalizers\n });\n }\n return core.map(forEach(eitherEffects, identity, {\n concurrency: options?.concurrency,\n batching: options?.batching,\n concurrentFinalizers: options?.concurrentFinalizers\n }), eithers => reconcile._tag === \"Some\" ? reconcile.value(eithers) : eithers);\n};\n/* @internal */\nexport const all = (arg, options) => {\n const [effects, reconcile] = allResolveInput(arg);\n if (options?.mode === \"validate\") {\n return allValidate(effects, reconcile, options);\n } else if (options?.mode === \"either\") {\n return allEither(effects, reconcile, options);\n }\n return options?.discard !== true && reconcile._tag === \"Some\" ? core.map(forEach(effects, identity, options), reconcile.value) : forEach(effects, identity, options);\n};\n/* @internal */\nexport const allWith = options => arg => all(arg, options);\n/* @internal */\nexport const allSuccesses = (elements, options) => core.map(all(RA.fromIterable(elements).map(core.exit), options), RA.filterMap(exit => core.exitIsSuccess(exit) ? Option.some(exit.effect_instruction_i0) : Option.none()));\n/* @internal */\nexport const replicate = /*#__PURE__*/dual(2, (self, n) => Array.from({\n length: n\n}, () => self));\n/* @internal */\nexport const replicateEffect = /*#__PURE__*/dual(args => core.isEffect(args[0]), (self, n, options) => all(replicate(self, n), options));\n/* @internal */\nexport const forEach = /*#__PURE__*/dual(args => Predicate.isIterable(args[0]), (self, f, options) => core.withFiberRuntime(r => {\n const isRequestBatchingEnabled = options?.batching === true || options?.batching === \"inherit\" && r.getFiberRef(core.currentRequestBatching);\n if (options?.discard) {\n return concurrency.match(options.concurrency, () => finalizersMaskInternal(ExecutionStrategy.sequential, options?.concurrentFinalizers)(restore => isRequestBatchingEnabled ? forEachConcurrentDiscard(self, (a, i) => restore(f(a, i)), true, false, 1) : core.forEachSequentialDiscard(self, (a, i) => restore(f(a, i)))), () => finalizersMaskInternal(ExecutionStrategy.parallel, options?.concurrentFinalizers)(restore => forEachConcurrentDiscard(self, (a, i) => restore(f(a, i)), isRequestBatchingEnabled, false)), n => finalizersMaskInternal(ExecutionStrategy.parallelN(n), options?.concurrentFinalizers)(restore => forEachConcurrentDiscard(self, (a, i) => restore(f(a, i)), isRequestBatchingEnabled, false, n)));\n }\n return concurrency.match(options?.concurrency, () => finalizersMaskInternal(ExecutionStrategy.sequential, options?.concurrentFinalizers)(restore => isRequestBatchingEnabled ? forEachParN(self, 1, (a, i) => restore(f(a, i)), true) : core.forEachSequential(self, (a, i) => restore(f(a, i)))), () => finalizersMaskInternal(ExecutionStrategy.parallel, options?.concurrentFinalizers)(restore => forEachParUnbounded(self, (a, i) => restore(f(a, i)), isRequestBatchingEnabled)), n => finalizersMaskInternal(ExecutionStrategy.parallelN(n), options?.concurrentFinalizers)(restore => forEachParN(self, n, (a, i) => restore(f(a, i)), isRequestBatchingEnabled)));\n}));\n/* @internal */\nexport const forEachParUnbounded = (self, f, batching) => core.suspend(() => {\n const as = RA.fromIterable(self);\n const array = new Array(as.length);\n const fn = (a, i) => core.flatMap(f(a, i), b => core.sync(() => array[i] = b));\n return core.zipRight(forEachConcurrentDiscard(as, fn, batching, false), core.succeed(array));\n});\n/** @internal */\nexport const forEachConcurrentDiscard = (self, f, batching, processAll, n) => core.uninterruptibleMask(restore => core.transplant(graft => core.withFiberRuntime(parent => {\n let todos = Array.from(self).reverse();\n let target = todos.length;\n if (target === 0) {\n return core.void;\n }\n let counter = 0;\n let interrupted = false;\n const fibersCount = n ? Math.min(todos.length, n) : todos.length;\n const fibers = new Set();\n const results = new Array();\n const interruptAll = () => fibers.forEach(fiber => {\n fiber.currentScheduler.scheduleTask(() => {\n fiber.unsafeInterruptAsFork(parent.id());\n }, 0);\n });\n const startOrder = new Array();\n const joinOrder = new Array();\n const residual = new Array();\n const collectExits = () => {\n const exits = results.filter(({\n exit\n }) => exit._tag === \"Failure\").sort((a, b) => a.index < b.index ? -1 : a.index === b.index ? 0 : 1).map(({\n exit\n }) => exit);\n if (exits.length === 0) {\n exits.push(core.exitVoid);\n }\n return exits;\n };\n const runFiber = (eff, interruptImmediately = false) => {\n const runnable = core.uninterruptible(graft(eff));\n const fiber = unsafeForkUnstarted(runnable, parent, parent.currentRuntimeFlags, fiberScope.globalScope);\n parent.currentScheduler.scheduleTask(() => {\n if (interruptImmediately) {\n fiber.unsafeInterruptAsFork(parent.id());\n }\n fiber.resume(runnable);\n }, 0);\n return fiber;\n };\n const onInterruptSignal = () => {\n if (!processAll) {\n target -= todos.length;\n todos = [];\n }\n interrupted = true;\n interruptAll();\n };\n const stepOrExit = batching ? core.step : core.exit;\n const processingFiber = runFiber(core.async(resume => {\n const pushResult = (res, index) => {\n if (res._op === \"Blocked\") {\n residual.push(res);\n } else {\n results.push({\n index,\n exit: res\n });\n if (res._op === \"Failure\" && !interrupted) {\n onInterruptSignal();\n }\n }\n };\n const next = () => {\n if (todos.length > 0) {\n const a = todos.pop();\n let index = counter++;\n const returnNextElement = () => {\n const a = todos.pop();\n index = counter++;\n return core.flatMap(core.yieldNow(), () => core.flatMap(stepOrExit(restore(f(a, index))), onRes));\n };\n const onRes = res => {\n if (todos.length > 0) {\n pushResult(res, index);\n if (todos.length > 0) {\n return returnNextElement();\n }\n }\n return core.succeed(res);\n };\n const todo = core.flatMap(stepOrExit(restore(f(a, index))), onRes);\n const fiber = runFiber(todo);\n startOrder.push(fiber);\n fibers.add(fiber);\n if (interrupted) {\n fiber.currentScheduler.scheduleTask(() => {\n fiber.unsafeInterruptAsFork(parent.id());\n }, 0);\n }\n fiber.addObserver(wrapped => {\n let exit;\n if (wrapped._op === \"Failure\") {\n exit = wrapped;\n } else {\n exit = wrapped.effect_instruction_i0;\n }\n joinOrder.push(fiber);\n fibers.delete(fiber);\n pushResult(exit, index);\n if (results.length === target) {\n resume(core.succeed(Option.getOrElse(core.exitCollectAll(collectExits(), {\n parallel: true\n }), () => core.exitVoid)));\n } else if (residual.length + results.length === target) {\n const exits = collectExits();\n const requests = residual.map(blocked => blocked.effect_instruction_i0).reduce(RequestBlock_.par);\n resume(core.succeed(core.blocked(requests, forEachConcurrentDiscard([Option.getOrElse(core.exitCollectAll(exits, {\n parallel: true\n }), () => core.exitVoid), ...residual.map(blocked => blocked.effect_instruction_i1)], i => i, batching, true, n))));\n } else {\n next();\n }\n });\n }\n };\n for (let i = 0; i < fibersCount; i++) {\n next();\n }\n }));\n return core.asVoid(core.onExit(core.flatten(restore(internalFiber.join(processingFiber))), core.exitMatch({\n onFailure: cause => {\n onInterruptSignal();\n const target = residual.length + 1;\n const concurrency = Math.min(typeof n === \"number\" ? n : residual.length, residual.length);\n const toPop = Array.from(residual);\n return core.async(cb => {\n const exits = [];\n let count = 0;\n let index = 0;\n const check = (index, hitNext) => exit => {\n exits[index] = exit;\n count++;\n if (count === target) {\n cb(core.exitSucceed(core.exitFailCause(cause)));\n }\n if (toPop.length > 0 && hitNext) {\n next();\n }\n };\n const next = () => {\n runFiber(toPop.pop(), true).addObserver(check(index, true));\n index++;\n };\n processingFiber.addObserver(check(index, false));\n index++;\n for (let i = 0; i < concurrency; i++) {\n next();\n }\n });\n },\n onSuccess: () => core.forEachSequential(joinOrder, f => f.inheritAll)\n })));\n})));\n/* @internal */\nexport const forEachParN = (self, n, f, batching) => core.suspend(() => {\n const as = RA.fromIterable(self);\n const array = new Array(as.length);\n const fn = (a, i) => core.map(f(a, i), b => array[i] = b);\n return core.zipRight(forEachConcurrentDiscard(as, fn, batching, false, n), core.succeed(array));\n});\n/* @internal */\nexport const fork = self => core.withFiberRuntime((state, status) => core.succeed(unsafeFork(self, state, status.runtimeFlags)));\n/* @internal */\nexport const forkDaemon = self => forkWithScopeOverride(self, fiberScope.globalScope);\n/* @internal */\nexport const forkWithErrorHandler = /*#__PURE__*/dual(2, (self, handler) => fork(core.onError(self, cause => {\n const either = internalCause.failureOrCause(cause);\n switch (either._tag) {\n case \"Left\":\n return handler(either.left);\n case \"Right\":\n return core.failCause(either.right);\n }\n})));\n/** @internal */\nexport const unsafeFork = (effect, parentFiber, parentRuntimeFlags, overrideScope = null) => {\n const childFiber = unsafeMakeChildFiber(effect, parentFiber, parentRuntimeFlags, overrideScope);\n childFiber.resume(effect);\n return childFiber;\n};\n/** @internal */\nexport const unsafeForkUnstarted = (effect, parentFiber, parentRuntimeFlags, overrideScope = null) => {\n const childFiber = unsafeMakeChildFiber(effect, parentFiber, parentRuntimeFlags, overrideScope);\n return childFiber;\n};\n/** @internal */\nexport const unsafeMakeChildFiber = (effect, parentFiber, parentRuntimeFlags, overrideScope = null) => {\n const childId = FiberId.unsafeMake();\n const parentFiberRefs = parentFiber.getFiberRefs();\n const childFiberRefs = fiberRefs.forkAs(parentFiberRefs, childId);\n const childFiber = new FiberRuntime(childId, childFiberRefs, parentRuntimeFlags);\n const childContext = fiberRefs.getOrDefault(childFiberRefs, core.currentContext);\n const supervisor = childFiber.currentSupervisor;\n supervisor.onStart(childContext, effect, Option.some(parentFiber), childFiber);\n childFiber.addObserver(exit => supervisor.onEnd(exit, childFiber));\n const parentScope = overrideScope !== null ? overrideScope : pipe(parentFiber.getFiberRef(core.currentForkScopeOverride), Option.getOrElse(() => parentFiber.scope()));\n parentScope.add(parentRuntimeFlags, childFiber);\n return childFiber;\n};\n/* @internal */\nconst forkWithScopeOverride = (self, scopeOverride) => core.withFiberRuntime((parentFiber, parentStatus) => core.succeed(unsafeFork(self, parentFiber, parentStatus.runtimeFlags, scopeOverride)));\n/* @internal */\nexport const mergeAll = /*#__PURE__*/dual(args => Predicate.isFunction(args[2]), (elements, zero, f, options) => concurrency.matchSimple(options?.concurrency, () => RA.fromIterable(elements).reduce((acc, a, i) => core.zipWith(acc, a, (acc, a) => f(acc, a, i)), core.succeed(zero)), () => core.flatMap(Ref.make(zero), acc => core.flatMap(forEach(elements, (effect, i) => core.flatMap(effect, a => Ref.update(acc, b => f(b, a, i))), options), () => Ref.get(acc)))));\n/* @internal */\nexport const partition = /*#__PURE__*/dual(args => Predicate.isIterable(args[0]), (elements, f, options) => pipe(forEach(elements, (a, i) => core.either(f(a, i)), options), core.map(chunk => core.partitionMap(chunk, identity))));\n/* @internal */\nexport const validateAll = /*#__PURE__*/dual(args => Predicate.isIterable(args[0]), (elements, f, options) => core.flatMap(partition(elements, f, {\n concurrency: options?.concurrency,\n batching: options?.batching,\n concurrentFinalizers: options?.concurrentFinalizers\n}), ([es, bs]) => RA.isNonEmptyArray(es) ? core.fail(es) : options?.discard ? core.void : core.succeed(bs)));\n/* @internal */\nexport const raceAll = all => core.withFiberRuntime((state, status) => core.async(resume => {\n const fibers = new Set();\n let winner;\n let failures = internalCause.empty;\n const interruptAll = () => {\n for (const fiber of fibers) {\n fiber.unsafeInterruptAsFork(state.id());\n }\n };\n let latch = false;\n let empty = true;\n for (const self of all) {\n empty = false;\n const fiber = unsafeFork(core.interruptible(self), state, status.runtimeFlags);\n fibers.add(fiber);\n fiber.addObserver(exit => {\n fibers.delete(fiber);\n if (!winner) {\n if (exit._tag === \"Success\") {\n latch = true;\n winner = fiber;\n failures = internalCause.empty;\n interruptAll();\n } else {\n failures = internalCause.parallel(exit.cause, failures);\n }\n }\n if (latch && fibers.size === 0) {\n resume(winner ? core.zipRight(internalFiber.inheritAll(winner), winner.unsafePoll()) : core.failCause(failures));\n }\n });\n if (winner) break;\n }\n if (empty) {\n return resume(core.dieSync(() => new core.IllegalArgumentException(`Received an empty collection of effects`)));\n }\n latch = true;\n return internalFiber.interruptAllAs(fibers, state.id());\n}));\n/* @internal */\nexport const reduceEffect = /*#__PURE__*/dual(args => Predicate.isIterable(args[0]) && !core.isEffect(args[0]), (elements, zero, f, options) => concurrency.matchSimple(options?.concurrency, () => RA.fromIterable(elements).reduce((acc, a, i) => core.zipWith(acc, a, (acc, a) => f(acc, a, i)), zero), () => core.suspend(() => pipe(mergeAll([zero, ...elements], Option.none(), (acc, elem, i) => {\n switch (acc._tag) {\n case \"None\":\n {\n return Option.some(elem);\n }\n case \"Some\":\n {\n return Option.some(f(acc.value, elem, i));\n }\n }\n}, options), core.map(option => {\n switch (option._tag) {\n case \"None\":\n {\n throw new Error(\"BUG: Effect.reduceEffect - please report an issue at https://github.com/Effect-TS/effect/issues\");\n }\n case \"Some\":\n {\n return option.value;\n }\n }\n})))));\n/* @internal */\nexport const parallelFinalizers = self => core.contextWithEffect(context => Option.match(Context.getOption(context, scopeTag), {\n onNone: () => self,\n onSome: scope => {\n switch (scope.strategy._tag) {\n case \"Parallel\":\n return self;\n case \"Sequential\":\n case \"ParallelN\":\n return core.flatMap(core.scopeFork(scope, ExecutionStrategy.parallel), inner => scopeExtend(self, inner));\n }\n }\n}));\n/* @internal */\nexport const parallelNFinalizers = parallelism => self => core.contextWithEffect(context => Option.match(Context.getOption(context, scopeTag), {\n onNone: () => self,\n onSome: scope => {\n if (scope.strategy._tag === \"ParallelN\" && scope.strategy.parallelism === parallelism) {\n return self;\n }\n return core.flatMap(core.scopeFork(scope, ExecutionStrategy.parallelN(parallelism)), inner => scopeExtend(self, inner));\n }\n}));\n/* @internal */\nexport const finalizersMask = strategy => self => finalizersMaskInternal(strategy, true)(self);\n/* @internal */\nexport const finalizersMaskInternal = (strategy, concurrentFinalizers) => self => core.contextWithEffect(context => Option.match(Context.getOption(context, scopeTag), {\n onNone: () => self(identity),\n onSome: scope => {\n if (concurrentFinalizers === true) {\n const patch = strategy._tag === \"Parallel\" ? parallelFinalizers : strategy._tag === \"Sequential\" ? sequentialFinalizers : parallelNFinalizers(strategy.parallelism);\n switch (scope.strategy._tag) {\n case \"Parallel\":\n return patch(self(parallelFinalizers));\n case \"Sequential\":\n return patch(self(sequentialFinalizers));\n case \"ParallelN\":\n return patch(self(parallelNFinalizers(scope.strategy.parallelism)));\n }\n } else {\n return self(identity);\n }\n }\n}));\n/* @internal */\nexport const scopeWith = f => core.flatMap(scopeTag, f);\n/** @internal */\nexport const scopedWith = f => core.flatMap(scopeMake(), scope => core.onExit(f(scope), exit => scope.close(exit)));\n/* @internal */\nexport const scopedEffect = effect => core.flatMap(scopeMake(), scope => scopeUse(effect, scope));\n/* @internal */\nexport const sequentialFinalizers = self => core.contextWithEffect(context => Option.match(Context.getOption(context, scopeTag), {\n onNone: () => self,\n onSome: scope => {\n switch (scope.strategy._tag) {\n case \"Sequential\":\n return self;\n case \"Parallel\":\n case \"ParallelN\":\n return core.flatMap(core.scopeFork(scope, ExecutionStrategy.sequential), inner => scopeExtend(self, inner));\n }\n }\n}));\n/* @internal */\nexport const tagMetricsScoped = (key, value) => labelMetricsScoped([metricLabel.make(key, value)]);\n/* @internal */\nexport const labelMetricsScoped = labels => fiberRefLocallyScopedWith(core.currentMetricLabels, old => RA.union(old, labels));\n/* @internal */\nexport const using = /*#__PURE__*/dual(2, (self, use) => scopedWith(scope => core.flatMap(scopeExtend(self, scope), use)));\n/** @internal */\nexport const validate = /*#__PURE__*/dual(args => core.isEffect(args[1]), (self, that, options) => validateWith(self, that, (a, b) => [a, b], options));\n/** @internal */\nexport const validateWith = /*#__PURE__*/dual(args => core.isEffect(args[1]), (self, that, f, options) => core.flatten(zipWithOptions(core.exit(self), core.exit(that), (ea, eb) => core.exitZipWith(ea, eb, {\n onSuccess: f,\n onFailure: (ca, cb) => options?.concurrent ? internalCause.parallel(ca, cb) : internalCause.sequential(ca, cb)\n}), options)));\n/* @internal */\nexport const validateAllPar = /*#__PURE__*/dual(2, (elements, f) => core.flatMap(partition(elements, f), ([es, bs]) => es.length === 0 ? core.succeed(bs) : core.fail(es)));\n/* @internal */\nexport const validateAllParDiscard = /*#__PURE__*/dual(2, (elements, f) => core.flatMap(partition(elements, f), ([es, _]) => es.length === 0 ? core.void : core.fail(es)));\n/* @internal */\nexport const validateFirst = /*#__PURE__*/dual(args => Predicate.isIterable(args[0]), (elements, f, options) => core.flip(forEach(elements, (a, i) => core.flip(f(a, i)), options)));\n/* @internal */\nexport const withClockScoped = c => fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(clock.clockTag, c));\n/* @internal */\nexport const withRandomScoped = value => fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(randomTag, value));\n/* @internal */\nexport const withConfigProviderScoped = provider => fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(configProviderTag, provider));\n/* @internal */\nexport const withEarlyRelease = self => scopeWith(parent => core.flatMap(core.scopeFork(parent, executionStrategy.sequential), child => pipe(self, scopeExtend(child), core.map(value => [core.fiberIdWith(fiberId => core.scopeClose(child, core.exitInterrupt(fiberId))), value]))));\n/** @internal */\nexport const zipOptions = /*#__PURE__*/dual(args => core.isEffect(args[1]), (self, that, options) => zipWithOptions(self, that, (a, b) => [a, b], options));\n/** @internal */\nexport const zipLeftOptions = /*#__PURE__*/dual(args => core.isEffect(args[1]), (self, that, options) => {\n if (options?.concurrent !== true && (options?.batching === undefined || options.batching === false)) {\n return core.zipLeft(self, that);\n }\n return zipWithOptions(self, that, (a, _) => a, options);\n});\n/** @internal */\nexport const zipRightOptions = /*#__PURE__*/dual(args => core.isEffect(args[1]), (self, that, options) => {\n if (options?.concurrent !== true && (options?.batching === undefined || options.batching === false)) {\n return core.zipRight(self, that);\n }\n return zipWithOptions(self, that, (_, b) => b, options);\n});\n/** @internal */\nexport const zipWithOptions = /*#__PURE__*/dual(args => core.isEffect(args[1]), (self, that, f, options) => core.map(all([self, that], {\n concurrency: options?.concurrent ? 2 : 1,\n batching: options?.batching,\n concurrentFinalizers: options?.concurrentFinalizers\n}), ([a, a2]) => f(a, a2)));\n/* @internal */\nexport const withRuntimeFlagsScoped = update => {\n if (update === RuntimeFlagsPatch.empty) {\n return core.void;\n }\n return pipe(core.runtimeFlags, core.flatMap(runtimeFlags => {\n const updatedRuntimeFlags = runtimeFlags_.patch(runtimeFlags, update);\n const revertRuntimeFlags = runtimeFlags_.diff(updatedRuntimeFlags, runtimeFlags);\n return pipe(core.updateRuntimeFlags(update), core.zipRight(addFinalizer(() => core.updateRuntimeFlags(revertRuntimeFlags))), core.asVoid);\n }), core.uninterruptible);\n};\n// circular with Scope\n/** @internal */\nexport const scopeTag = /*#__PURE__*/Context.GenericTag(\"effect/Scope\");\n/* @internal */\nexport const scope = scopeTag;\nconst scopeUnsafeAddFinalizer = (scope, fin) => {\n if (scope.state._tag === \"Open\") {\n scope.state.finalizers.set({}, fin);\n }\n};\nconst ScopeImplProto = {\n [core.ScopeTypeId]: core.ScopeTypeId,\n [core.CloseableScopeTypeId]: core.CloseableScopeTypeId,\n pipe() {\n return pipeArguments(this, arguments);\n },\n fork(strategy) {\n return core.sync(() => {\n const newScope = scopeUnsafeMake(strategy);\n if (this.state._tag === \"Closed\") {\n newScope.state = this.state;\n return newScope;\n }\n const key = {};\n const fin = exit => newScope.close(exit);\n this.state.finalizers.set(key, fin);\n scopeUnsafeAddFinalizer(newScope, _ => core.sync(() => {\n if (this.state._tag === \"Open\") {\n this.state.finalizers.delete(key);\n }\n }));\n return newScope;\n });\n },\n close(exit) {\n return core.suspend(() => {\n if (this.state._tag === \"Closed\") {\n return core.void;\n }\n const finalizers = Array.from(this.state.finalizers.values()).reverse();\n this.state = {\n _tag: \"Closed\",\n exit\n };\n if (finalizers.length === 0) {\n return core.void;\n }\n return executionStrategy.isSequential(this.strategy) ? pipe(core.forEachSequential(finalizers, fin => core.exit(fin(exit))), core.flatMap(results => pipe(core.exitCollectAll(results), Option.map(core.exitAsVoid), Option.getOrElse(() => core.exitVoid)))) : executionStrategy.isParallel(this.strategy) ? pipe(forEachParUnbounded(finalizers, fin => core.exit(fin(exit)), false), core.flatMap(results => pipe(core.exitCollectAll(results, {\n parallel: true\n }), Option.map(core.exitAsVoid), Option.getOrElse(() => core.exitVoid)))) : pipe(forEachParN(finalizers, this.strategy.parallelism, fin => core.exit(fin(exit)), false), core.flatMap(results => pipe(core.exitCollectAll(results, {\n parallel: true\n }), Option.map(core.exitAsVoid), Option.getOrElse(() => core.exitVoid))));\n });\n },\n addFinalizer(fin) {\n return core.suspend(() => {\n if (this.state._tag === \"Closed\") {\n return fin(this.state.exit);\n }\n this.state.finalizers.set({}, fin);\n return core.void;\n });\n }\n};\nconst scopeUnsafeMake = (strategy = executionStrategy.sequential) => {\n const scope = Object.create(ScopeImplProto);\n scope.strategy = strategy;\n scope.state = {\n _tag: \"Open\",\n finalizers: new Map()\n };\n return scope;\n};\n/* @internal */\nexport const scopeMake = (strategy = executionStrategy.sequential) => core.sync(() => scopeUnsafeMake(strategy));\n/* @internal */\nexport const scopeExtend = /*#__PURE__*/dual(2, (effect, scope) => core.mapInputContext(effect,\n// @ts-expect-error\nContext.merge(Context.make(scopeTag, scope))));\n/* @internal */\nexport const scopeUse = /*#__PURE__*/dual(2, (effect, scope) => pipe(effect, scopeExtend(scope), core.onExit(exit => scope.close(exit))));\n// circular with Supervisor\n/** @internal */\nexport const fiberRefUnsafeMakeSupervisor = initial => core.fiberRefUnsafeMakePatch(initial, {\n differ: SupervisorPatch.differ,\n fork: SupervisorPatch.empty\n});\n// circular with FiberRef\n/* @internal */\nexport const fiberRefLocallyScoped = /*#__PURE__*/dual(2, (self, value) => core.asVoid(acquireRelease(core.flatMap(core.fiberRefGet(self), oldValue => core.as(core.fiberRefSet(self, value), oldValue)), oldValue => core.fiberRefSet(self, oldValue))));\n/* @internal */\nexport const fiberRefLocallyScopedWith = /*#__PURE__*/dual(2, (self, f) => core.fiberRefGetWith(self, a => fiberRefLocallyScoped(self, f(a))));\n/* @internal */\nexport const fiberRefMake = (initial, options) => fiberRefMakeWith(() => core.fiberRefUnsafeMake(initial, options));\n/* @internal */\nexport const fiberRefMakeWith = ref => acquireRelease(core.tap(core.sync(ref), ref => core.fiberRefUpdate(ref, identity)), fiberRef => core.fiberRefDelete(fiberRef));\n/* @internal */\nexport const fiberRefMakeContext = initial => fiberRefMakeWith(() => core.fiberRefUnsafeMakeContext(initial));\n/* @internal */\nexport const fiberRefMakeRuntimeFlags = initial => fiberRefMakeWith(() => core.fiberRefUnsafeMakeRuntimeFlags(initial));\n/** @internal */\nexport const currentRuntimeFlags = /*#__PURE__*/core.fiberRefUnsafeMakeRuntimeFlags(runtimeFlags_.none);\n/** @internal */\nexport const currentSupervisor = /*#__PURE__*/fiberRefUnsafeMakeSupervisor(supervisor.none);\n// circular with Fiber\n/* @internal */\nexport const fiberAwaitAll = fibers => forEach(fibers, internalFiber._await);\n/** @internal */\nexport const fiberAll = fibers => {\n const _fiberAll = {\n ...Effectable.CommitPrototype,\n commit() {\n return internalFiber.join(this);\n },\n [internalFiber.FiberTypeId]: internalFiber.fiberVariance,\n id: () => RA.fromIterable(fibers).reduce((id, fiber) => FiberId.combine(id, fiber.id()), FiberId.none),\n await: core.exit(forEachParUnbounded(fibers, fiber => core.flatten(fiber.await), false)),\n children: core.map(forEachParUnbounded(fibers, fiber => fiber.children, false), RA.flatten),\n inheritAll: core.forEachSequentialDiscard(fibers, fiber => fiber.inheritAll),\n poll: core.map(core.forEachSequential(fibers, fiber => fiber.poll), RA.reduceRight(Option.some(core.exitSucceed(new Array())), (optionB, optionA) => {\n switch (optionA._tag) {\n case \"None\":\n {\n return Option.none();\n }\n case \"Some\":\n {\n switch (optionB._tag) {\n case \"None\":\n {\n return Option.none();\n }\n case \"Some\":\n {\n return Option.some(core.exitZipWith(optionA.value, optionB.value, {\n onSuccess: (a, chunk) => [a, ...chunk],\n onFailure: internalCause.parallel\n }));\n }\n }\n }\n }\n })),\n interruptAsFork: fiberId => core.forEachSequentialDiscard(fibers, fiber => fiber.interruptAsFork(fiberId))\n };\n return _fiberAll;\n};\n/* @internal */\nexport const fiberInterruptFork = self => core.asVoid(forkDaemon(core.interruptFiber(self)));\n/* @internal */\nexport const fiberJoinAll = fibers => internalFiber.join(fiberAll(fibers));\n/* @internal */\nexport const fiberScoped = self => acquireRelease(core.succeed(self), core.interruptFiber);\n//\n// circular race\n//\n/** @internal */\nexport const raceWith = /*#__PURE__*/dual(3, (self, other, options) => raceFibersWith(self, other, {\n onSelfWin: (winner, loser) => core.flatMap(winner.await, exit => {\n switch (exit._tag) {\n case OpCodes.OP_SUCCESS:\n {\n return core.flatMap(winner.inheritAll, () => options.onSelfDone(exit, loser));\n }\n case OpCodes.OP_FAILURE:\n {\n return options.onSelfDone(exit, loser);\n }\n }\n }),\n onOtherWin: (winner, loser) => core.flatMap(winner.await, exit => {\n switch (exit._tag) {\n case OpCodes.OP_SUCCESS:\n {\n return core.flatMap(winner.inheritAll, () => options.onOtherDone(exit, loser));\n }\n case OpCodes.OP_FAILURE:\n {\n return options.onOtherDone(exit, loser);\n }\n }\n })\n}));\n/** @internal */\nexport const disconnect = self => core.uninterruptibleMask(restore => core.fiberIdWith(fiberId => core.flatMap(forkDaemon(restore(self)), fiber => pipe(restore(internalFiber.join(fiber)), core.onInterrupt(() => pipe(fiber, internalFiber.interruptAsFork(fiberId)))))));\n/** @internal */\nexport const race = /*#__PURE__*/dual(2, (self, that) => core.fiberIdWith(parentFiberId => raceWith(self, that, {\n onSelfDone: (exit, right) => core.exitMatchEffect(exit, {\n onFailure: cause => pipe(internalFiber.join(right), internalEffect.mapErrorCause(cause2 => internalCause.parallel(cause, cause2))),\n onSuccess: value => pipe(right, core.interruptAsFiber(parentFiberId), core.as(value))\n }),\n onOtherDone: (exit, left) => core.exitMatchEffect(exit, {\n onFailure: cause => pipe(internalFiber.join(left), internalEffect.mapErrorCause(cause2 => internalCause.parallel(cause2, cause))),\n onSuccess: value => pipe(left, core.interruptAsFiber(parentFiberId), core.as(value))\n })\n})));\n/** @internal */\nexport const raceFibersWith = /*#__PURE__*/dual(3, (self, other, options) => core.withFiberRuntime((parentFiber, parentStatus) => {\n const parentRuntimeFlags = parentStatus.runtimeFlags;\n const raceIndicator = MRef.make(true);\n const leftFiber = unsafeMakeChildFiber(self, parentFiber, parentRuntimeFlags, options.selfScope);\n const rightFiber = unsafeMakeChildFiber(other, parentFiber, parentRuntimeFlags, options.otherScope);\n return core.async(cb => {\n leftFiber.addObserver(() => completeRace(leftFiber, rightFiber, options.onSelfWin, raceIndicator, cb));\n rightFiber.addObserver(() => completeRace(rightFiber, leftFiber, options.onOtherWin, raceIndicator, cb));\n leftFiber.startFork(self);\n rightFiber.startFork(other);\n }, FiberId.combine(leftFiber.id(), rightFiber.id()));\n}));\nconst completeRace = (winner, loser, cont, ab, cb) => {\n if (MRef.compareAndSet(true, false)(ab)) {\n cb(cont(winner, loser));\n }\n};\n/** @internal */\nexport const ensuring = /*#__PURE__*/dual(2, (self, finalizer) => core.uninterruptibleMask(restore => core.matchCauseEffect(restore(self), {\n onFailure: cause1 => core.matchCauseEffect(finalizer, {\n onFailure: cause2 => core.failCause(internalCause.sequential(cause1, cause2)),\n onSuccess: () => core.failCause(cause1)\n }),\n onSuccess: a => core.as(finalizer, a)\n})));\n/** @internal */\nexport const invokeWithInterrupt = (self, entries, onInterrupt) => core.fiberIdWith(id => core.flatMap(core.flatMap(forkDaemon(core.interruptible(self)), processing => core.async(cb => {\n const counts = entries.map(_ => _.listeners.count);\n const checkDone = () => {\n if (counts.every(count => count === 0)) {\n if (entries.every(_ => {\n if (_.result.state.current._tag === \"Pending\") {\n return true;\n } else if (_.result.state.current._tag === \"Done\" && core.exitIsExit(_.result.state.current.effect) && _.result.state.current.effect._tag === \"Failure\" && internalCause.isInterrupted(_.result.state.current.effect.cause)) {\n return true;\n } else {\n return false;\n }\n })) {\n cleanup.forEach(f => f());\n onInterrupt?.();\n cb(core.interruptFiber(processing));\n }\n }\n };\n processing.addObserver(exit => {\n cleanup.forEach(f => f());\n cb(exit);\n });\n const cleanup = entries.map((r, i) => {\n const observer = count => {\n counts[i] = count;\n checkDone();\n };\n r.listeners.addObserver(observer);\n return () => r.listeners.removeObserver(observer);\n });\n checkDone();\n return core.sync(() => {\n cleanup.forEach(f => f());\n });\n})), () => core.suspend(() => {\n const residual = entries.flatMap(entry => {\n if (!entry.state.completed) {\n return [entry];\n }\n return [];\n });\n return core.forEachSequentialDiscard(residual, entry => complete(entry.request, core.exitInterrupt(id)));\n})));\n/** @internal */\nexport const interruptWhenPossible = /*#__PURE__*/dual(2, (self, all) => core.fiberRefGetWith(currentRequestMap, map => core.suspend(() => {\n const entries = RA.fromIterable(all).flatMap(_ => map.has(_) ? [map.get(_)] : []);\n return invokeWithInterrupt(self, entries);\n})));\n// circular Tracer\n/** @internal */\nexport const makeSpanScoped = (name, options) => {\n options = tracer.addSpanStackTrace(options);\n return core.uninterruptible(core.withFiberRuntime(fiber => {\n const scope = Context.unsafeGet(fiber.getFiberRef(core.currentContext), scopeTag);\n const span = internalEffect.unsafeMakeSpan(fiber, name, options);\n const timingEnabled = fiber.getFiberRef(core.currentTracerTimingEnabled);\n const clock_ = Context.get(fiber.getFiberRef(defaultServices.currentServices), clock.clockTag);\n return core.as(core.scopeAddFinalizerExit(scope, exit => internalEffect.endSpan(span, exit, clock_, timingEnabled)), span);\n }));\n};\n/* @internal */\nexport const withTracerScoped = value => fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(tracer.tracerTag, value));\n/** @internal */\nexport const withSpanScoped = function () {\n const dataFirst = typeof arguments[0] !== \"string\";\n const name = dataFirst ? arguments[1] : arguments[0];\n const options = tracer.addSpanStackTrace(dataFirst ? arguments[2] : arguments[1]);\n if (dataFirst) {\n const self = arguments[0];\n return core.flatMap(makeSpanScoped(name, tracer.addSpanStackTrace(options)), span => internalEffect.provideService(self, tracer.spanTag, span));\n }\n return self => core.flatMap(makeSpanScoped(name, tracer.addSpanStackTrace(options)), span => internalEffect.provideService(self, tracer.spanTag, span));\n};\n//# sourceMappingURL=fiberRuntime.js.map","import * as Context from \"../Context.js\";\nimport { dual } from \"../Function.js\";\nimport * as core from \"./core.js\";\nimport * as defaultServices from \"./defaultServices.js\";\nimport * as defaultConsole from \"./defaultServices/console.js\";\nimport * as fiberRuntime from \"./fiberRuntime.js\";\nimport * as layer from \"./layer.js\";\n/** @internal */\nexport const console = /*#__PURE__*/core.map(/*#__PURE__*/core.fiberRefGet(defaultServices.currentServices), /*#__PURE__*/Context.get(defaultConsole.consoleTag));\n/** @internal */\nexport const consoleWith = f => core.fiberRefGetWith(defaultServices.currentServices, services => f(Context.get(services, defaultConsole.consoleTag)));\n/** @internal */\nexport const withConsole = /*#__PURE__*/dual(2, (effect, value) => core.fiberRefLocallyWith(effect, defaultServices.currentServices, Context.add(defaultConsole.consoleTag, value)));\n/** @internal */\nexport const withConsoleScoped = console => fiberRuntime.fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(defaultConsole.consoleTag, console));\n/** @internal */\nexport const setConsole = console => layer.scopedDiscard(fiberRuntime.fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(defaultConsole.consoleTag, console)));\n/** @internal */\nexport const assert = (condition, ...args) => consoleWith(_ => _.assert(condition, ...args));\n/** @internal */\nexport const clear = /*#__PURE__*/consoleWith(_ => _.clear);\n/** @internal */\nexport const count = label => consoleWith(_ => _.count(label));\n/** @internal */\nexport const countReset = label => consoleWith(_ => _.countReset(label));\n/** @internal */\nexport const debug = (...args) => consoleWith(_ => _.debug(...args));\n/** @internal */\nexport const dir = (item, options) => consoleWith(_ => _.dir(item, options));\n/** @internal */\nexport const dirxml = (...args) => consoleWith(_ => _.dirxml(...args));\n/** @internal */\nexport const error = (...args) => consoleWith(_ => _.error(...args));\n/** @internal */\nexport const group = options => consoleWith(_ => fiberRuntime.acquireRelease(_.group(options), () => _.groupEnd));\n/** @internal */\nexport const info = (...args) => consoleWith(_ => _.info(...args));\n/** @internal */\nexport const log = (...args) => consoleWith(_ => _.log(...args));\n/** @internal */\nexport const table = (tabularData, properties) => consoleWith(_ => _.table(tabularData, properties));\n/** @internal */\nexport const time = label => consoleWith(_ => fiberRuntime.acquireRelease(_.time(label), () => _.timeEnd(label)));\n/** @internal */\nexport const timeLog = (label, ...args) => consoleWith(_ => _.timeLog(label, ...args));\n/** @internal */\nexport const trace = (...args) => consoleWith(_ => _.trace(...args));\n/** @internal */\nexport const warn = (...args) => consoleWith(_ => _.warn(...args));\n/** @internal */\nexport const withGroup = /*#__PURE__*/dual(args => core.isEffect(args[0]), (self, options) => consoleWith(_ => core.acquireUseRelease(_.group(options), () => self, () => _.groupEnd)));\n/** @internal */\nexport const withTime = /*#__PURE__*/dual(args => core.isEffect(args[0]), (self, label) => consoleWith(_ => core.acquireUseRelease(_.time(label), () => self, () => _.timeEnd(label))));\n//# sourceMappingURL=console.js.map","import * as Duration from \"../../Duration.js\";\nimport * as Effectable from \"../../Effectable.js\";\nimport * as Equal from \"../../Equal.js\";\nimport * as Exit from \"../../Exit.js\";\nimport * as FiberId from \"../../FiberId.js\";\nimport { dual, pipe } from \"../../Function.js\";\nimport * as Hash from \"../../Hash.js\";\nimport * as MutableHashMap from \"../../MutableHashMap.js\";\nimport * as Option from \"../../Option.js\";\nimport { pipeArguments } from \"../../Pipeable.js\";\nimport * as Predicate from \"../../Predicate.js\";\nimport * as Readable from \"../../Readable.js\";\nimport { currentScheduler } from \"../../Scheduler.js\";\nimport * as internalCause from \"../cause.js\";\nimport * as effect from \"../core-effect.js\";\nimport * as core from \"../core.js\";\nimport * as internalFiber from \"../fiber.js\";\nimport * as fiberRuntime from \"../fiberRuntime.js\";\nimport { globalScope } from \"../fiberScope.js\";\nimport * as internalRef from \"../ref.js\";\nimport * as supervisor from \"../supervisor.js\";\n/** @internal */\nclass Semaphore {\n permits;\n waiters = /*#__PURE__*/new Set();\n taken = 0;\n constructor(permits) {\n this.permits = permits;\n }\n get free() {\n return this.permits - this.taken;\n }\n take = n => core.asyncInterrupt(resume => {\n if (this.free < n) {\n const observer = () => {\n if (this.free < n) {\n return;\n }\n this.waiters.delete(observer);\n this.taken += n;\n resume(core.succeed(n));\n };\n this.waiters.add(observer);\n return core.sync(() => {\n this.waiters.delete(observer);\n });\n }\n this.taken += n;\n return resume(core.succeed(n));\n });\n updateTakenUnsafe(fiber, f) {\n this.taken = f(this.taken);\n if (this.waiters.size > 0) {\n fiber.getFiberRef(currentScheduler).scheduleTask(() => {\n const iter = this.waiters.values();\n let item = iter.next();\n while (item.done === false && this.free > 0) {\n item.value();\n item = iter.next();\n }\n }, fiber.getFiberRef(core.currentSchedulingPriority));\n }\n return core.succeed(this.free);\n }\n updateTaken(f) {\n return core.withFiberRuntime(fiber => this.updateTakenUnsafe(fiber, f));\n }\n resize = permits => core.asVoid(core.withFiberRuntime(fiber => {\n this.permits = permits;\n if (this.free < 0) {\n return core.void;\n }\n return this.updateTakenUnsafe(fiber, taken => taken);\n }));\n release = n => this.updateTaken(taken => taken - n);\n releaseAll = /*#__PURE__*/this.updateTaken(_ => 0);\n withPermits = n => self => core.uninterruptibleMask(restore => core.flatMap(restore(this.take(n)), permits => fiberRuntime.ensuring(restore(self), this.release(permits))));\n withPermitsIfAvailable = n => self => core.uninterruptibleMask(restore => core.suspend(() => {\n if (this.free < n) {\n return effect.succeedNone;\n }\n this.taken += n;\n return fiberRuntime.ensuring(restore(effect.asSome(self)), this.release(n));\n }));\n}\n/** @internal */\nexport const unsafeMakeSemaphore = permits => new Semaphore(permits);\n/** @internal */\nexport const makeSemaphore = permits => core.sync(() => unsafeMakeSemaphore(permits));\nclass Latch extends Effectable.Class {\n isOpen;\n waiters = [];\n scheduled = false;\n constructor(isOpen) {\n super();\n this.isOpen = isOpen;\n }\n commit() {\n return this.await;\n }\n unsafeSchedule(fiber) {\n if (this.scheduled || this.waiters.length === 0) {\n return core.void;\n }\n this.scheduled = true;\n fiber.currentScheduler.scheduleTask(this.flushWaiters, fiber.getFiberRef(core.currentSchedulingPriority));\n return core.void;\n }\n flushWaiters = () => {\n this.scheduled = false;\n const waiters = this.waiters;\n this.waiters = [];\n for (let i = 0; i < waiters.length; i++) {\n waiters[i](core.exitVoid);\n }\n };\n open = /*#__PURE__*/core.withFiberRuntime(fiber => {\n if (this.isOpen) {\n return core.void;\n }\n this.isOpen = true;\n return this.unsafeSchedule(fiber);\n });\n unsafeOpen() {\n if (this.isOpen) return;\n this.isOpen = true;\n this.flushWaiters();\n }\n release = /*#__PURE__*/core.withFiberRuntime(fiber => {\n if (this.isOpen) {\n return core.void;\n }\n return this.unsafeSchedule(fiber);\n });\n await = /*#__PURE__*/core.asyncInterrupt(resume => {\n if (this.isOpen) {\n return resume(core.void);\n }\n this.waiters.push(resume);\n return core.sync(() => {\n const index = this.waiters.indexOf(resume);\n if (index !== -1) {\n this.waiters.splice(index, 1);\n }\n });\n });\n unsafeClose() {\n this.isOpen = false;\n }\n close = /*#__PURE__*/core.sync(() => {\n this.isOpen = false;\n });\n whenOpen = self => {\n return core.zipRight(this.await, self);\n };\n}\n/** @internal */\nexport const unsafeMakeLatch = open => new Latch(open ?? false);\n/** @internal */\nexport const makeLatch = open => core.sync(() => unsafeMakeLatch(open));\n/** @internal */\nexport const awaitAllChildren = self => ensuringChildren(self, fiberRuntime.fiberAwaitAll);\n/** @internal */\nexport const cached = /*#__PURE__*/dual(2, (self, timeToLive) => core.map(cachedInvalidateWithTTL(self, timeToLive), tuple => tuple[0]));\n/** @internal */\nexport const cachedInvalidateWithTTL = /*#__PURE__*/dual(2, (self, timeToLive) => {\n const duration = Duration.decode(timeToLive);\n return core.flatMap(core.context(), env => core.map(makeSynchronized(Option.none()), cache => [core.provideContext(getCachedValue(self, duration, cache), env), invalidateCache(cache)]));\n});\n/** @internal */\nconst computeCachedValue = (self, timeToLive, start) => {\n const timeToLiveMillis = Duration.toMillis(Duration.decode(timeToLive));\n return pipe(core.deferredMake(), core.tap(deferred => core.intoDeferred(self, deferred)), core.map(deferred => Option.some([start + timeToLiveMillis, deferred])));\n};\n/** @internal */\nconst getCachedValue = (self, timeToLive, cache) => core.uninterruptibleMask(restore => pipe(effect.clockWith(clock => clock.currentTimeMillis), core.flatMap(time => updateSomeAndGetEffectSynchronized(cache, option => {\n switch (option._tag) {\n case \"None\":\n {\n return Option.some(computeCachedValue(self, timeToLive, time));\n }\n case \"Some\":\n {\n const [end] = option.value;\n return end - time <= 0 ? Option.some(computeCachedValue(self, timeToLive, time)) : Option.none();\n }\n }\n})), core.flatMap(option => Option.isNone(option) ? core.dieMessage(\"BUG: Effect.cachedInvalidate - please report an issue at https://github.com/Effect-TS/effect/issues\") : restore(core.deferredAwait(option.value[1])))));\n/** @internal */\nconst invalidateCache = cache => internalRef.set(cache, Option.none());\n/** @internal */\nexport const ensuringChild = /*#__PURE__*/dual(2, (self, f) => ensuringChildren(self, children => f(fiberRuntime.fiberAll(children))));\n/** @internal */\nexport const ensuringChildren = /*#__PURE__*/dual(2, (self, children) => core.flatMap(supervisor.track, supervisor => pipe(supervised(self, supervisor), fiberRuntime.ensuring(core.flatMap(supervisor.value, children)))));\n/** @internal */\nexport const forkAll = /*#__PURE__*/dual(args => Predicate.isIterable(args[0]), (effects, options) => options?.discard ? core.forEachSequentialDiscard(effects, fiberRuntime.fork) : core.map(core.forEachSequential(effects, fiberRuntime.fork), fiberRuntime.fiberAll));\n/** @internal */\nexport const forkIn = /*#__PURE__*/dual(2, (self, scope) => core.withFiberRuntime((parent, parentStatus) => {\n const scopeImpl = scope;\n const fiber = fiberRuntime.unsafeFork(self, parent, parentStatus.runtimeFlags, globalScope);\n if (scopeImpl.state._tag === \"Open\") {\n const finalizer = () => core.fiberIdWith(fiberId => Equal.equals(fiberId, fiber.id()) ? core.void : core.asVoid(core.interruptFiber(fiber)));\n const key = {};\n scopeImpl.state.finalizers.set(key, finalizer);\n fiber.addObserver(() => {\n if (scopeImpl.state._tag === \"Closed\") return;\n scopeImpl.state.finalizers.delete(key);\n });\n } else {\n fiber.unsafeInterruptAsFork(parent.id());\n }\n return core.succeed(fiber);\n}));\n/** @internal */\nexport const forkScoped = self => fiberRuntime.scopeWith(scope => forkIn(self, scope));\n/** @internal */\nexport const fromFiber = fiber => internalFiber.join(fiber);\n/** @internal */\nexport const fromFiberEffect = fiber => core.suspend(() => core.flatMap(fiber, internalFiber.join));\nconst memoKeySymbol = /*#__PURE__*/Symbol.for(\"effect/Effect/memoizeFunction.key\");\nclass Key {\n a;\n eq;\n [memoKeySymbol] = memoKeySymbol;\n constructor(a, eq) {\n this.a = a;\n this.eq = eq;\n }\n [Equal.symbol](that) {\n if (Predicate.hasProperty(that, memoKeySymbol)) {\n if (this.eq) {\n return this.eq(this.a, that.a);\n } else {\n return Equal.equals(this.a, that.a);\n }\n }\n return false;\n }\n [Hash.symbol]() {\n return this.eq ? 0 : Hash.cached(this, Hash.hash(this.a));\n }\n}\n/** @internal */\nexport const cachedFunction = (f, eq) => {\n return pipe(core.sync(() => MutableHashMap.empty()), core.flatMap(makeSynchronized), core.map(ref => a => pipe(ref.modifyEffect(map => {\n const result = pipe(map, MutableHashMap.get(new Key(a, eq)));\n if (Option.isNone(result)) {\n return pipe(core.deferredMake(), core.tap(deferred => pipe(effect.diffFiberRefs(f(a)), core.intoDeferred(deferred), fiberRuntime.fork)), core.map(deferred => [deferred, pipe(map, MutableHashMap.set(new Key(a, eq), deferred))]));\n }\n return core.succeed([result.value, map]);\n }), core.flatMap(core.deferredAwait), core.flatMap(([patch, b]) => pipe(effect.patchFiberRefs(patch), core.as(b))))));\n};\n/** @internal */\nexport const raceFirst = /*#__PURE__*/dual(2, (self, that) => pipe(core.exit(self), fiberRuntime.race(core.exit(that)), effect => core.flatten(effect)));\n/** @internal */\nexport const supervised = /*#__PURE__*/dual(2, (self, supervisor) => {\n const supervise = core.fiberRefLocallyWith(fiberRuntime.currentSupervisor, s => s.zip(supervisor));\n return supervise(self);\n});\n/** @internal */\nexport const timeout = /*#__PURE__*/dual(2, (self, duration) => timeoutFail(self, {\n onTimeout: () => core.timeoutExceptionFromDuration(duration),\n duration\n}));\n/** @internal */\nexport const timeoutFail = /*#__PURE__*/dual(2, (self, {\n duration,\n onTimeout\n}) => core.flatten(timeoutTo(self, {\n onTimeout: () => core.failSync(onTimeout),\n onSuccess: core.succeed,\n duration\n})));\n/** @internal */\nexport const timeoutFailCause = /*#__PURE__*/dual(2, (self, {\n duration,\n onTimeout\n}) => core.flatten(timeoutTo(self, {\n onTimeout: () => core.failCauseSync(onTimeout),\n onSuccess: core.succeed,\n duration\n})));\n/** @internal */\nexport const timeoutOption = /*#__PURE__*/dual(2, (self, duration) => timeoutTo(self, {\n duration,\n onSuccess: Option.some,\n onTimeout: Option.none\n}));\n/** @internal */\nexport const timeoutTo = /*#__PURE__*/dual(2, (self, {\n duration,\n onSuccess,\n onTimeout\n}) => core.fiberIdWith(parentFiberId => core.uninterruptibleMask(restore => fiberRuntime.raceFibersWith(restore(self), core.interruptible(effect.sleep(duration)), {\n onSelfWin: (winner, loser) => core.flatMap(winner.await, exit => {\n if (exit._tag === \"Success\") {\n return core.flatMap(winner.inheritAll, () => core.as(core.interruptAsFiber(loser, parentFiberId), onSuccess(exit.value)));\n } else {\n return core.flatMap(core.interruptAsFiber(loser, parentFiberId), () => core.exitFailCause(exit.cause));\n }\n }),\n onOtherWin: (winner, loser) => core.flatMap(winner.await, exit => {\n if (exit._tag === \"Success\") {\n return core.flatMap(winner.inheritAll, () => core.as(core.interruptAsFiber(loser, parentFiberId), onTimeout()));\n } else {\n return core.flatMap(core.interruptAsFiber(loser, parentFiberId), () => core.exitFailCause(exit.cause));\n }\n }),\n otherScope: globalScope\n}))));\n// circular with Synchronized\n/** @internal */\nconst SynchronizedSymbolKey = \"effect/Ref/SynchronizedRef\";\n/** @internal */\nexport const SynchronizedTypeId = /*#__PURE__*/Symbol.for(SynchronizedSymbolKey);\n/** @internal */\nexport const synchronizedVariance = {\n /* c8 ignore next */\n _A: _ => _\n};\n/** @internal */\nclass SynchronizedImpl extends Effectable.Class {\n ref;\n withLock;\n [SynchronizedTypeId] = synchronizedVariance;\n [internalRef.RefTypeId] = internalRef.refVariance;\n [Readable.TypeId] = Readable.TypeId;\n constructor(ref, withLock) {\n super();\n this.ref = ref;\n this.withLock = withLock;\n this.get = internalRef.get(this.ref);\n }\n get;\n commit() {\n return this.get;\n }\n modify(f) {\n return this.modifyEffect(a => core.succeed(f(a)));\n }\n modifyEffect(f) {\n return this.withLock(pipe(core.flatMap(internalRef.get(this.ref), f), core.flatMap(([b, a]) => core.as(internalRef.set(this.ref, a), b))));\n }\n}\n/** @internal */\nexport const makeSynchronized = value => core.sync(() => unsafeMakeSynchronized(value));\n/** @internal */\nexport const unsafeMakeSynchronized = value => {\n const ref = internalRef.unsafeMake(value);\n const sem = unsafeMakeSemaphore(1);\n return new SynchronizedImpl(ref, sem.withPermits(1));\n};\n/** @internal */\nexport const updateSomeAndGetEffectSynchronized = /*#__PURE__*/dual(2, (self, pf) => self.modifyEffect(value => {\n const result = pf(value);\n switch (result._tag) {\n case \"None\":\n {\n return core.succeed([value, value]);\n }\n case \"Some\":\n {\n return core.map(result.value, a => [a, a]);\n }\n }\n}));\n// circular with Fiber\n/** @internal */\nexport const zipFiber = /*#__PURE__*/dual(2, (self, that) => zipWithFiber(self, that, (a, b) => [a, b]));\n/** @internal */\nexport const zipLeftFiber = /*#__PURE__*/dual(2, (self, that) => zipWithFiber(self, that, (a, _) => a));\n/** @internal */\nexport const zipRightFiber = /*#__PURE__*/dual(2, (self, that) => zipWithFiber(self, that, (_, b) => b));\n/** @internal */\nexport const zipWithFiber = /*#__PURE__*/dual(3, (self, that, f) => ({\n ...Effectable.CommitPrototype,\n commit() {\n return internalFiber.join(this);\n },\n [internalFiber.FiberTypeId]: internalFiber.fiberVariance,\n id: () => pipe(self.id(), FiberId.getOrElse(that.id())),\n await: pipe(self.await, core.flatten, fiberRuntime.zipWithOptions(core.flatten(that.await), f, {\n concurrent: true\n }), core.exit),\n children: self.children,\n inheritAll: core.zipRight(that.inheritAll, self.inheritAll),\n poll: core.zipWith(self.poll, that.poll, (optionA, optionB) => pipe(optionA, Option.flatMap(exitA => pipe(optionB, Option.map(exitB => Exit.zipWith(exitA, exitB, {\n onSuccess: f,\n onFailure: internalCause.parallel\n })))))),\n interruptAsFork: id => core.zipRight(self.interruptAsFork(id), that.interruptAsFork(id)),\n pipe() {\n return pipeArguments(this, arguments);\n }\n}));\n/* @internal */\nexport const bindAll = /*#__PURE__*/dual(args => core.isEffect(args[0]), (self, f, options) => core.flatMap(self, a => fiberRuntime.all(f(a), options).pipe(core.map(record => Object.assign({}, a, record)))));\n//# sourceMappingURL=circular.js.map","import * as core from \"./internal/core.js\";\nimport * as circular from \"./internal/effect/circular.js\";\nimport * as internal from \"./internal/fiber.js\";\nimport * as fiberRuntime from \"./internal/fiberRuntime.js\";\n/**\n * @since 2.0.0\n * @category symbols\n */\nexport const FiberTypeId = internal.FiberTypeId;\n/**\n * @since 2.0.0\n * @category symbols\n */\nexport const RuntimeFiberTypeId = internal.RuntimeFiberTypeId;\n/**\n * @since 2.0.0\n * @category instances\n */\nexport const Order = internal.Order;\n/**\n * Returns `true` if the specified value is a `Fiber`, `false` otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isFiber = internal.isFiber;\n/**\n * Returns `true` if the specified `Fiber` is a `RuntimeFiber`, `false`\n * otherwise.\n *\n * @since 2.0.0\n * @category refinements\n */\nexport const isRuntimeFiber = internal.isRuntimeFiber;\n/**\n * The identity of the fiber.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const id = internal.id;\nconst _await = internal._await;\nexport {\n/**\n * Awaits the fiber, which suspends the awaiting fiber until the result of the\n * fiber has been determined.\n *\n * @since 2.0.0\n * @category getters\n */\n_await as await };\n/**\n * Awaits on all fibers to be completed, successfully or not.\n *\n * @since 2.0.0\n * @category destructors\n */\nexport const awaitAll = fiberRuntime.fiberAwaitAll;\n/**\n * Retrieves the immediate children of the fiber.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const children = internal.children;\n/**\n * Collects all fibers into a single fiber producing an in-order list of the\n * results.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const all = fiberRuntime.fiberAll;\n/**\n * A fiber that is done with the specified `Exit` value.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const done = internal.done;\n/**\n * @since 2.0.0\n * @category destructors\n */\nexport const dump = internal.dump;\n/**\n * @since 2.0.0\n * @category destructors\n */\nexport const dumpAll = internal.dumpAll;\n/**\n * A fiber that has already failed with the specified value.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const fail = internal.fail;\n/**\n * Creates a `Fiber` that has already failed with the specified cause.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const failCause = internal.failCause;\n/**\n * Lifts an `Effect` into a `Fiber`.\n *\n * @since 2.0.0\n * @category conversions\n */\nexport const fromEffect = internal.fromEffect;\n/**\n * Gets the current fiber if one is running.\n *\n * @since 2.0.0\n * @category utilities\n */\nexport const getCurrentFiber = internal.getCurrentFiber;\n/**\n * Inherits values from all `FiberRef` instances into current fiber. This\n * will resume immediately.\n *\n * @since 2.0.0\n * @category destructors\n */\nexport const inheritAll = internal.inheritAll;\n/**\n * Interrupts the fiber from whichever fiber is calling this method. If the\n * fiber has already exited, the returned effect will resume immediately.\n * Otherwise, the effect will resume when the fiber exits.\n *\n * @since 2.0.0\n * @category interruption\n */\nexport const interrupt = core.interruptFiber;\n/**\n * Constructrs a `Fiber` that is already interrupted.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const interrupted = internal.interrupted;\n/**\n * Interrupts the fiber as if interrupted from the specified fiber. If the\n * fiber has already exited, the returned effect will resume immediately.\n * Otherwise, the effect will resume when the fiber exits.\n *\n * @since 2.0.0\n * @category interruption\n */\nexport const interruptAs = core.interruptAsFiber;\n/**\n * Interrupts the fiber as if interrupted from the specified fiber. If the\n * fiber has already exited, the returned effect will resume immediately.\n * Otherwise, the effect will resume when the fiber exits.\n *\n * @since 2.0.0\n * @category interruption\n */\nexport const interruptAsFork = internal.interruptAsFork;\n/**\n * Interrupts all fibers, awaiting their interruption.\n *\n * @since 2.0.0\n * @category interruption\n */\nexport const interruptAll = internal.interruptAll;\n/**\n * Interrupts all fibers as by the specified fiber, awaiting their\n * interruption.\n *\n * @since 2.0.0\n * @category interruption\n */\nexport const interruptAllAs = internal.interruptAllAs;\n/**\n * Interrupts the fiber from whichever fiber is calling this method. The\n * interruption will happen in a separate daemon fiber, and the returned\n * effect will always resume immediately without waiting.\n *\n * @since 2.0.0\n * @category interruption\n */\nexport const interruptFork = fiberRuntime.fiberInterruptFork;\n/**\n * Joins the fiber, which suspends the joining fiber until the result of the\n * fiber has been determined. Attempting to join a fiber that has erred will\n * result in a catchable error. Joining an interrupted fiber will result in an\n * \"inner interruption\" of this fiber, unlike interruption triggered by\n * another fiber, \"inner interruption\" can be caught and recovered.\n *\n * @since 2.0.0\n * @category destructors\n */\nexport const join = internal.join;\n/**\n * Joins all fibers, awaiting their _successful_ completion. Attempting to\n * join a fiber that has erred will result in a catchable error, _if_ that\n * error does not result from interruption.\n *\n * @since 2.0.0\n * @category destructors\n */\nexport const joinAll = fiberRuntime.fiberJoinAll;\n/**\n * Maps over the value the Fiber computes.\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const map = internal.map;\n/**\n * Effectually maps over the value the fiber computes.\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const mapEffect = internal.mapEffect;\n/**\n * Passes the success of this fiber to the specified callback, and continues\n * with the fiber that it returns.\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const mapFiber = internal.mapFiber;\n/**\n * Folds over the `Fiber` or `RuntimeFiber`.\n *\n * @since 2.0.0\n * @category folding\n */\nexport const match = internal.match;\n/**\n * A fiber that never fails or succeeds.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const never = internal.never;\n/**\n * Returns a fiber that prefers `this` fiber, but falls back to the `that` one\n * when `this` one fails. Interrupting the returned fiber will interrupt both\n * fibers, sequentially, from left to right.\n *\n * @since 2.0.0\n * @category alternatives\n */\nexport const orElse = internal.orElse;\n/**\n * Returns a fiber that prefers `this` fiber, but falls back to the `that` one\n * when `this` one fails. Interrupting the returned fiber will interrupt both\n * fibers, sequentially, from left to right.\n *\n * @since 2.0.0\n * @category alternatives\n */\nexport const orElseEither = internal.orElseEither;\n/**\n * Tentatively observes the fiber, but returns immediately if it is not\n * already done.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const poll = internal.poll;\n/**\n * Pretty-prints a `RuntimeFiber`.\n *\n * @since 2.0.0\n * @category destructors\n */\nexport const pretty = internal.pretty;\n/**\n * Returns a chunk containing all root fibers.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const roots = internal.roots;\n/**\n * Returns a chunk containing all root fibers.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const unsafeRoots = internal.unsafeRoots;\n/**\n * Converts this fiber into a scoped effect. The fiber is interrupted when the\n * scope is closed.\n *\n * @since 2.0.0\n * @category destructors\n */\nexport const scoped = fiberRuntime.fiberScoped;\n/**\n * Returns the `FiberStatus` of a `RuntimeFiber`.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const status = internal.status;\n/**\n * Returns a fiber that has already succeeded with the specified value.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const succeed = internal.succeed;\nconst void_ = internal.void;\nexport {\n/**\n * A fiber that has already succeeded with unit.\n *\n * @since 2.0.0\n * @category constructors\n */\nvoid_ as void };\n/**\n * Zips this fiber and the specified fiber together, producing a tuple of\n * their output.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zip = circular.zipFiber;\n/**\n * Same as `zip` but discards the output of that `Fiber`.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zipLeft = circular.zipLeftFiber;\n/**\n * Same as `zip` but discards the output of this `Fiber`.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zipRight = circular.zipRightFiber;\n/**\n * Zips this fiber with the specified fiber, combining their results using the\n * specified combiner function. Both joins and interruptions are performed in\n * sequential order from left to right.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zipWith = circular.zipWithFiber;\n//# sourceMappingURL=Fiber.js.map","/**\n * @since 2.0.0\n */\nimport * as core from \"./internal/core.js\";\nimport * as fiberRuntime from \"./internal/fiberRuntime.js\";\n/**\n * A unique identifier for the `Scope` type.\n *\n * @since 2.0.0\n * @category symbols\n */\nexport const ScopeTypeId = core.ScopeTypeId;\n/**\n * A unique identifier for the `CloseableScope` type.\n *\n * @since 2.0.0\n * @category symbols\n */\nexport const CloseableScopeTypeId = core.CloseableScopeTypeId;\n/**\n * A tag representing the current `Scope` in the environment.\n *\n * @since 2.0.0\n * @category context\n */\nexport const Scope = fiberRuntime.scopeTag;\n/**\n * Adds a finalizer to this scope. The finalizer is guaranteed to be run when\n * the scope is closed. Use this when the finalizer does not need to know the\n * `Exit` value that the scope is closed with.\n *\n * @see {@link addFinalizerExit}\n *\n * @since 2.0.0\n * @category utils\n */\nexport const addFinalizer = core.scopeAddFinalizer;\n/**\n * Adds a finalizer to this scope. The finalizer receives the `Exit` value\n * when the scope is closed, allowing it to perform different actions based\n * on the exit status.\n *\n * @see {@link addFinalizer}\n *\n * @since 2.0.0\n * @category utils\n */\nexport const addFinalizerExit = core.scopeAddFinalizerExit;\n/**\n * Closes this scope with the specified exit value, running all finalizers that\n * have been added to the scope.\n *\n * @since 2.0.0\n * @category destructors\n */\nexport const close = core.scopeClose;\n/**\n * Extends the scope of an `Effect` that requires a scope into this scope.\n * It provides this scope to the effect but does not close the scope when the\n * effect completes execution. This allows extending a scoped value into a\n * larger scope.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const extend = fiberRuntime.scopeExtend;\n/**\n * Forks a new child scope with the specified execution strategy. The child scope\n * will automatically be closed when this scope is closed.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const fork = core.scopeFork;\n/**\n * Provides this closeable scope to an `Effect` that requires a scope,\n * guaranteeing that the scope is closed with the result of that effect as\n * soon as the effect completes execution, whether by success, failure, or\n * interruption.\n *\n * @since 2.0.0\n * @category destructors\n */\nexport const use = fiberRuntime.scopeUse;\n/**\n * Creates a new closeable scope where finalizers will run according to the\n * specified `ExecutionStrategy`. If no execution strategy is provided, `sequential`\n * will be used by default.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const make = fiberRuntime.scopeMake;\n//# sourceMappingURL=Scope.js.map","import * as Context from \"../Context.js\";\nimport { equals } from \"../Equal.js\";\nimport * as Exit from \"../Exit.js\";\nimport * as Fiber from \"../Fiber.js\";\nimport * as FiberId from \"../FiberId.js\";\nimport * as FiberRefs from \"../FiberRefs.js\";\nimport { dual, pipe } from \"../Function.js\";\nimport * as Inspectable from \"../Inspectable.js\";\nimport * as Option from \"../Option.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport * as Predicate from \"../Predicate.js\";\nimport * as scheduler_ from \"../Scheduler.js\";\nimport * as scope_ from \"../Scope.js\";\nimport * as InternalCause from \"./cause.js\";\nimport * as core from \"./core.js\";\nimport * as executionStrategy from \"./executionStrategy.js\";\nimport * as FiberRuntime from \"./fiberRuntime.js\";\nimport * as fiberScope from \"./fiberScope.js\";\nimport * as OpCodes from \"./opCodes/effect.js\";\nimport * as runtimeFlags from \"./runtimeFlags.js\";\nimport * as supervisor_ from \"./supervisor.js\";\nconst makeDual = f => function () {\n if (arguments.length === 1) {\n const runtime = arguments[0];\n return (effect, ...args) => f(runtime, effect, ...args);\n }\n return f.apply(this, arguments);\n};\n/** @internal */\nexport const unsafeFork = /*#__PURE__*/makeDual((runtime, self, options) => {\n const fiberId = FiberId.unsafeMake();\n const fiberRefUpdates = [[core.currentContext, [[fiberId, runtime.context]]]];\n if (options?.scheduler) {\n fiberRefUpdates.push([scheduler_.currentScheduler, [[fiberId, options.scheduler]]]);\n }\n let fiberRefs = FiberRefs.updateManyAs(runtime.fiberRefs, {\n entries: fiberRefUpdates,\n forkAs: fiberId\n });\n if (options?.updateRefs) {\n fiberRefs = options.updateRefs(fiberRefs, fiberId);\n }\n const fiberRuntime = new FiberRuntime.FiberRuntime(fiberId, fiberRefs, runtime.runtimeFlags);\n let effect = self;\n if (options?.scope) {\n effect = core.flatMap(scope_.fork(options.scope, executionStrategy.sequential), closeableScope => core.zipRight(core.scopeAddFinalizer(closeableScope, core.fiberIdWith(id => equals(id, fiberRuntime.id()) ? core.void : core.interruptAsFiber(fiberRuntime, id))), core.onExit(self, exit => scope_.close(closeableScope, exit))));\n }\n const supervisor = fiberRuntime.currentSupervisor;\n // we can compare by reference here as _supervisor.none is wrapped with globalValue\n if (supervisor !== supervisor_.none) {\n supervisor.onStart(runtime.context, effect, Option.none(), fiberRuntime);\n fiberRuntime.addObserver(exit => supervisor.onEnd(exit, fiberRuntime));\n }\n fiberScope.globalScope.add(runtime.runtimeFlags, fiberRuntime);\n // Only an explicit false will prevent immediate execution\n if (options?.immediate === false) {\n fiberRuntime.resume(effect);\n } else {\n fiberRuntime.start(effect);\n }\n return fiberRuntime;\n});\n/** @internal */\nexport const unsafeRunCallback = /*#__PURE__*/makeDual((runtime, effect, options = {}) => {\n const fiberRuntime = unsafeFork(runtime, effect, options);\n if (options.onExit) {\n fiberRuntime.addObserver(exit => {\n options.onExit(exit);\n });\n }\n return (id, cancelOptions) => unsafeRunCallback(runtime)(pipe(fiberRuntime, Fiber.interruptAs(id ?? FiberId.none)), {\n ...cancelOptions,\n onExit: cancelOptions?.onExit ? exit => cancelOptions.onExit(Exit.flatten(exit)) : undefined\n });\n});\n/** @internal */\nexport const unsafeRunSync = /*#__PURE__*/makeDual((runtime, effect) => {\n const result = unsafeRunSyncExit(runtime)(effect);\n if (result._tag === \"Failure\") {\n throw fiberFailure(result.effect_instruction_i0);\n }\n return result.effect_instruction_i0;\n});\nclass AsyncFiberExceptionImpl extends Error {\n fiber;\n _tag = \"AsyncFiberException\";\n constructor(fiber) {\n super(`Fiber #${fiber.id().id} cannot be resolved synchronously. This is caused by using runSync on an effect that performs async work`);\n this.fiber = fiber;\n this.name = this._tag;\n this.stack = this.message;\n }\n}\nconst asyncFiberException = fiber => {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n const error = new AsyncFiberExceptionImpl(fiber);\n Error.stackTraceLimit = limit;\n return error;\n};\n/** @internal */\nexport const isAsyncFiberException = u => Predicate.isTagged(u, \"AsyncFiberException\") && \"fiber\" in u;\n/** @internal */\nexport const FiberFailureId = /*#__PURE__*/Symbol.for(\"effect/Runtime/FiberFailure\");\n/** @internal */\nexport const FiberFailureCauseId = /*#__PURE__*/Symbol.for(\"effect/Runtime/FiberFailure/Cause\");\nclass FiberFailureImpl extends Error {\n [FiberFailureId];\n [FiberFailureCauseId];\n constructor(cause) {\n const head = InternalCause.prettyErrors(cause)[0];\n super(head?.message || \"An error has occurred\");\n this[FiberFailureId] = FiberFailureId;\n this[FiberFailureCauseId] = cause;\n this.name = head ? `(FiberFailure) ${head.name}` : \"FiberFailure\";\n if (head?.stack) {\n this.stack = head.stack;\n }\n }\n toJSON() {\n return {\n _id: \"FiberFailure\",\n cause: this[FiberFailureCauseId].toJSON()\n };\n }\n toString() {\n return \"(FiberFailure) \" + InternalCause.pretty(this[FiberFailureCauseId], {\n renderErrorCause: true\n });\n }\n [Inspectable.NodeInspectSymbol]() {\n return this.toString();\n }\n}\n/** @internal */\nexport const fiberFailure = cause => {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n const error = new FiberFailureImpl(cause);\n Error.stackTraceLimit = limit;\n return error;\n};\n/** @internal */\nexport const isFiberFailure = u => Predicate.hasProperty(u, FiberFailureId);\nconst fastPath = effect => {\n const op = effect;\n switch (op._op) {\n case \"Failure\":\n case \"Success\":\n {\n // @ts-expect-error\n return op;\n }\n case \"Left\":\n {\n return core.exitFail(op.left);\n }\n case \"Right\":\n {\n return core.exitSucceed(op.right);\n }\n case \"Some\":\n {\n return core.exitSucceed(op.value);\n }\n case \"None\":\n {\n // @ts-expect-error\n return core.exitFail(new core.NoSuchElementException());\n }\n }\n};\n/** @internal */\nexport const unsafeRunSyncExit = /*#__PURE__*/makeDual((runtime, effect) => {\n const op = fastPath(effect);\n if (op) {\n return op;\n }\n const scheduler = new scheduler_.SyncScheduler();\n const fiberRuntime = unsafeFork(runtime)(effect, {\n scheduler\n });\n scheduler.flush();\n const result = fiberRuntime.unsafePoll();\n if (result) {\n return result;\n }\n return core.exitDie(core.capture(asyncFiberException(fiberRuntime), core.currentSpanFromFiber(fiberRuntime)));\n});\n/** @internal */\nexport const unsafeRunPromise = /*#__PURE__*/makeDual((runtime, effect, options) => unsafeRunPromiseExit(runtime, effect, options).then(result => {\n switch (result._tag) {\n case OpCodes.OP_SUCCESS:\n {\n return result.effect_instruction_i0;\n }\n case OpCodes.OP_FAILURE:\n {\n throw fiberFailure(result.effect_instruction_i0);\n }\n }\n}));\n/** @internal */\nexport const unsafeRunPromiseExit = /*#__PURE__*/makeDual((runtime, effect, options) => new Promise(resolve => {\n const op = fastPath(effect);\n if (op) {\n resolve(op);\n }\n const fiber = unsafeFork(runtime)(effect);\n fiber.addObserver(exit => {\n resolve(exit);\n });\n if (options?.signal !== undefined) {\n if (options.signal.aborted) {\n fiber.unsafeInterruptAsFork(fiber.id());\n } else {\n options.signal.addEventListener(\"abort\", () => {\n fiber.unsafeInterruptAsFork(fiber.id());\n }, {\n once: true\n });\n }\n }\n}));\n/** @internal */\nexport class RuntimeImpl {\n context;\n runtimeFlags;\n fiberRefs;\n constructor(context, runtimeFlags, fiberRefs) {\n this.context = context;\n this.runtimeFlags = runtimeFlags;\n this.fiberRefs = fiberRefs;\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nexport const make = options => new RuntimeImpl(options.context, options.runtimeFlags, options.fiberRefs);\n/** @internal */\nexport const runtime = () => core.withFiberRuntime((state, status) => core.succeed(new RuntimeImpl(state.getFiberRef(core.currentContext), status.runtimeFlags, state.getFiberRefs())));\n/** @internal */\nexport const defaultRuntimeFlags = /*#__PURE__*/runtimeFlags.make(runtimeFlags.Interruption, runtimeFlags.CooperativeYielding, runtimeFlags.RuntimeMetrics);\n/** @internal */\nexport const defaultRuntime = /*#__PURE__*/make({\n context: /*#__PURE__*/Context.empty(),\n runtimeFlags: defaultRuntimeFlags,\n fiberRefs: /*#__PURE__*/FiberRefs.empty()\n});\n/** @internal */\nexport const updateRuntimeFlags = /*#__PURE__*/dual(2, (self, f) => make({\n context: self.context,\n runtimeFlags: f(self.runtimeFlags),\n fiberRefs: self.fiberRefs\n}));\n/** @internal */\nexport const disableRuntimeFlag = /*#__PURE__*/dual(2, (self, flag) => updateRuntimeFlags(self, runtimeFlags.disable(flag)));\n/** @internal */\nexport const enableRuntimeFlag = /*#__PURE__*/dual(2, (self, flag) => updateRuntimeFlags(self, runtimeFlags.enable(flag)));\n/** @internal */\nexport const updateContext = /*#__PURE__*/dual(2, (self, f) => make({\n context: f(self.context),\n runtimeFlags: self.runtimeFlags,\n fiberRefs: self.fiberRefs\n}));\n/** @internal */\nexport const provideService = /*#__PURE__*/dual(3, (self, tag, service) => updateContext(self, Context.add(tag, service)));\n/** @internal */\nexport const updateFiberRefs = /*#__PURE__*/dual(2, (self, f) => make({\n context: self.context,\n runtimeFlags: self.runtimeFlags,\n fiberRefs: f(self.fiberRefs)\n}));\n/** @internal */\nexport const setFiberRef = /*#__PURE__*/dual(3, (self, fiberRef, value) => updateFiberRefs(self, FiberRefs.updateAs({\n fiberId: FiberId.none,\n fiberRef,\n value\n})));\n/** @internal */\nexport const deleteFiberRef = /*#__PURE__*/dual(2, (self, fiberRef) => updateFiberRefs(self, FiberRefs.delete(fiberRef)));\n/** @internal */\nexport const unsafeRunEffect = /*#__PURE__*/unsafeRunCallback(defaultRuntime);\n/** @internal */\nexport const unsafeForkEffect = /*#__PURE__*/unsafeFork(defaultRuntime);\n/** @internal */\nexport const unsafeRunPromiseEffect = /*#__PURE__*/unsafeRunPromise(defaultRuntime);\n/** @internal */\nexport const unsafeRunPromiseExitEffect = /*#__PURE__*/unsafeRunPromiseExit(defaultRuntime);\n/** @internal */\nexport const unsafeRunSyncEffect = /*#__PURE__*/unsafeRunSync(defaultRuntime);\n/** @internal */\nexport const unsafeRunSyncExitEffect = /*#__PURE__*/unsafeRunSyncExit(defaultRuntime);\n// circular with Effect\n/** @internal */\nexport const asyncEffect = register => core.suspend(() => {\n let cleanup = undefined;\n return core.flatMap(core.deferredMake(), deferred => core.flatMap(runtime(), runtime => core.uninterruptibleMask(restore => core.zipRight(FiberRuntime.fork(restore(core.matchCauseEffect(register(cb => unsafeRunCallback(runtime)(core.intoDeferred(cb, deferred))), {\n onFailure: cause => core.deferredFailCause(deferred, cause),\n onSuccess: cleanup_ => {\n cleanup = cleanup_;\n return core.void;\n }\n }))), restore(core.onInterrupt(core.deferredAwait(deferred), () => cleanup ?? core.void))))));\n});\n//# sourceMappingURL=runtime.js.map","import * as Chunk from \"../Chunk.js\";\nimport * as Clock from \"../Clock.js\";\nimport * as Context from \"../Context.js\";\nimport * as Cron from \"../Cron.js\";\nimport * as Duration from \"../Duration.js\";\nimport * as Either from \"../Either.js\";\nimport * as Equal from \"../Equal.js\";\nimport { constVoid, dual, pipe } from \"../Function.js\";\nimport * as Option from \"../Option.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport { hasProperty } from \"../Predicate.js\";\nimport * as Random from \"../Random.js\";\nimport * as ScheduleDecision from \"../ScheduleDecision.js\";\nimport * as Interval from \"../ScheduleInterval.js\";\nimport * as Intervals from \"../ScheduleIntervals.js\";\nimport * as internalCause from \"./cause.js\";\nimport * as effect from \"./core-effect.js\";\nimport * as core from \"./core.js\";\nimport { forkScoped } from \"./effect/circular.js\";\nimport * as ref from \"./ref.js\";\n/** @internal */\nconst ScheduleSymbolKey = \"effect/Schedule\";\n/** @internal */\nexport const ScheduleTypeId = /*#__PURE__*/Symbol.for(ScheduleSymbolKey);\n/** @internal */\nexport const isSchedule = u => hasProperty(u, ScheduleTypeId);\n/** @internal */\nconst ScheduleDriverSymbolKey = \"effect/ScheduleDriver\";\n/** @internal */\nexport const ScheduleDriverTypeId = /*#__PURE__*/Symbol.for(ScheduleDriverSymbolKey);\n/** @internal */\nconst defaultIterationMetadata = {\n start: 0,\n now: 0,\n input: undefined,\n output: undefined,\n elapsed: Duration.zero,\n elapsedSincePrevious: Duration.zero,\n recurrence: 0\n};\n/** @internal */\nexport const CurrentIterationMetadata = /*#__PURE__*/Context.Reference()(\"effect/Schedule/CurrentIterationMetadata\", {\n defaultValue: () => defaultIterationMetadata\n});\nconst scheduleVariance = {\n /* c8 ignore next */\n _Out: _ => _,\n /* c8 ignore next */\n _In: _ => _,\n /* c8 ignore next */\n _R: _ => _\n};\nconst scheduleDriverVariance = {\n /* c8 ignore next */\n _Out: _ => _,\n /* c8 ignore next */\n _In: _ => _,\n /* c8 ignore next */\n _R: _ => _\n};\n/** @internal */\nclass ScheduleImpl {\n initial;\n step;\n [ScheduleTypeId] = scheduleVariance;\n constructor(initial, step) {\n this.initial = initial;\n this.step = step;\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nconst updateInfo = (iterationMetaRef, now, input, output) => ref.update(iterationMetaRef, prev => prev.recurrence === 0 ? {\n now,\n input,\n output,\n recurrence: prev.recurrence + 1,\n elapsed: Duration.zero,\n elapsedSincePrevious: Duration.zero,\n start: now\n} : {\n now,\n input,\n output,\n recurrence: prev.recurrence + 1,\n elapsed: Duration.millis(now - prev.start),\n elapsedSincePrevious: Duration.millis(now - prev.now),\n start: prev.start\n});\n/** @internal */\nclass ScheduleDriverImpl {\n schedule;\n ref;\n [ScheduleDriverTypeId] = scheduleDriverVariance;\n constructor(schedule, ref) {\n this.schedule = schedule;\n this.ref = ref;\n }\n get state() {\n return core.map(ref.get(this.ref), tuple => tuple[1]);\n }\n get last() {\n return core.flatMap(ref.get(this.ref), ([element, _]) => {\n switch (element._tag) {\n case \"None\":\n {\n return core.failSync(() => new core.NoSuchElementException());\n }\n case \"Some\":\n {\n return core.succeed(element.value);\n }\n }\n });\n }\n iterationMeta = /*#__PURE__*/ref.unsafeMake(defaultIterationMetadata);\n get reset() {\n return ref.set(this.ref, [Option.none(), this.schedule.initial]).pipe(core.zipLeft(ref.set(this.iterationMeta, defaultIterationMetadata)));\n }\n next(input) {\n return pipe(core.map(ref.get(this.ref), tuple => tuple[1]), core.flatMap(state => pipe(Clock.currentTimeMillis, core.flatMap(now => pipe(core.suspend(() => this.schedule.step(now, input, state)), core.flatMap(([state, out, decision]) => {\n const setState = ref.set(this.ref, [Option.some(out), state]);\n if (ScheduleDecision.isDone(decision)) {\n return setState.pipe(core.zipRight(core.fail(Option.none())));\n }\n const millis = Intervals.start(decision.intervals) - now;\n if (millis <= 0) {\n return setState.pipe(core.zipRight(updateInfo(this.iterationMeta, now, input, out)), core.as(out));\n }\n const duration = Duration.millis(millis);\n return pipe(setState, core.zipRight(updateInfo(this.iterationMeta, now, input, out)), core.zipRight(effect.sleep(duration)), core.as(out));\n }))))));\n }\n}\n/** @internal */\nexport const makeWithState = (initial, step) => new ScheduleImpl(initial, step);\n/** @internal */\nexport const addDelay = /*#__PURE__*/dual(2, (self, f) => addDelayEffect(self, out => core.sync(() => f(out))));\n/** @internal */\nexport const addDelayEffect = /*#__PURE__*/dual(2, (self, f) => modifyDelayEffect(self, (out, duration) => core.map(f(out), delay => Duration.sum(duration, Duration.decode(delay)))));\n/** @internal */\nexport const andThen = /*#__PURE__*/dual(2, (self, that) => map(andThenEither(self, that), Either.merge));\n/** @internal */\nexport const andThenEither = /*#__PURE__*/dual(2, (self, that) => makeWithState([self.initial, that.initial, true], (now, input, state) => state[2] ? core.flatMap(self.step(now, input, state[0]), ([lState, out, decision]) => {\n if (ScheduleDecision.isDone(decision)) {\n return core.map(that.step(now, input, state[1]), ([rState, out, decision]) => [[lState, rState, false], Either.right(out), decision]);\n }\n return core.succeed([[lState, state[1], true], Either.left(out), decision]);\n}) : core.map(that.step(now, input, state[1]), ([rState, out, decision]) => [[state[0], rState, false], Either.right(out), decision])));\n/** @internal */\nexport const as = /*#__PURE__*/dual(2, (self, out) => map(self, () => out));\n/** @internal */\nexport const asVoid = self => map(self, constVoid);\n/** @internal */\nexport const bothInOut = /*#__PURE__*/dual(2, (self, that) => makeWithState([self.initial, that.initial], (now, [in1, in2], state) => core.zipWith(self.step(now, in1, state[0]), that.step(now, in2, state[1]), ([lState, out, lDecision], [rState, out2, rDecision]) => {\n if (ScheduleDecision.isContinue(lDecision) && ScheduleDecision.isContinue(rDecision)) {\n const interval = pipe(lDecision.intervals, Intervals.union(rDecision.intervals));\n return [[lState, rState], [out, out2], ScheduleDecision.continue(interval)];\n }\n return [[lState, rState], [out, out2], ScheduleDecision.done];\n})));\n/** @internal */\nexport const check = /*#__PURE__*/dual(2, (self, test) => checkEffect(self, (input, out) => core.sync(() => test(input, out))));\n/** @internal */\nexport const checkEffect = /*#__PURE__*/dual(2, (self, test) => makeWithState(self.initial, (now, input, state) => core.flatMap(self.step(now, input, state), ([state, out, decision]) => {\n if (ScheduleDecision.isDone(decision)) {\n return core.succeed([state, out, ScheduleDecision.done]);\n }\n return core.map(test(input, out), cont => cont ? [state, out, decision] : [state, out, ScheduleDecision.done]);\n})));\n/** @internal */\nexport const collectAllInputs = () => collectAllOutputs(identity());\n/** @internal */\nexport const collectAllOutputs = self => reduce(self, Chunk.empty(), (outs, out) => pipe(outs, Chunk.append(out)));\n/** @internal */\nexport const collectUntil = f => collectAllOutputs(recurUntil(f));\n/** @internal */\nexport const collectUntilEffect = f => collectAllOutputs(recurUntilEffect(f));\n/** @internal */\nexport const collectWhile = f => collectAllOutputs(recurWhile(f));\n/** @internal */\nexport const collectWhileEffect = f => collectAllOutputs(recurWhileEffect(f));\n/** @internal */\nexport const compose = /*#__PURE__*/dual(2, (self, that) => makeWithState([self.initial, that.initial], (now, input, state) => core.flatMap(self.step(now, input, state[0]), ([lState, out, lDecision]) => core.map(that.step(now, out, state[1]), ([rState, out2, rDecision]) => ScheduleDecision.isDone(lDecision) ? [[lState, rState], out2, ScheduleDecision.done] : ScheduleDecision.isDone(rDecision) ? [[lState, rState], out2, ScheduleDecision.done] : [[lState, rState], out2, ScheduleDecision.continue(pipe(lDecision.intervals, Intervals.max(rDecision.intervals)))]))));\n/** @internal */\nexport const mapInput = /*#__PURE__*/dual(2, (self, f) => mapInputEffect(self, input2 => core.sync(() => f(input2))));\n/** @internal */\nexport const mapInputContext = /*#__PURE__*/dual(2, (self, f) => makeWithState(self.initial, (now, input, state) => core.mapInputContext(self.step(now, input, state), f)));\n/** @internal */\nexport const mapInputEffect = /*#__PURE__*/dual(2, (self, f) => makeWithState(self.initial, (now, input2, state) => core.flatMap(f(input2), input => self.step(now, input, state))));\n/** @internal */\nexport const cron = (expression, tz) => {\n const parsed = Cron.isCron(expression) ? Either.right(expression) : Cron.parse(expression, tz);\n return makeWithState([true, [Number.MIN_SAFE_INTEGER, 0, 0]], (now, _, [initial, previous]) => {\n if (now < previous[0]) {\n return core.succeed([[false, previous], [previous[1], previous[2]], ScheduleDecision.continueWith(Interval.make(previous[1], previous[2]))]);\n }\n if (Either.isLeft(parsed)) {\n return core.die(parsed.left);\n }\n const cron = parsed.right;\n const date = new Date(now);\n let next;\n if (initial && Cron.match(cron, date)) {\n next = now;\n }\n next = Cron.next(cron, date).getTime();\n const start = beginningOfSecond(next);\n const end = endOfSecond(next);\n return core.succeed([[false, [next, start, end]], [start, end], ScheduleDecision.continueWith(Interval.make(start, end))]);\n });\n};\n/** @internal */\nexport const dayOfMonth = day => {\n return makeWithState([Number.NEGATIVE_INFINITY, 0], (now, _, state) => {\n if (!Number.isInteger(day) || day < 1 || 31 < day) {\n return core.dieSync(() => new core.IllegalArgumentException(`Invalid argument in: dayOfMonth(${day}). Must be in range 1...31`));\n }\n const n = state[1];\n const initial = n === 0;\n const day0 = nextDayOfMonth(now, day, initial);\n const start = beginningOfDay(day0);\n const end = endOfDay(day0);\n const interval = Interval.make(start, end);\n return core.succeed([[end, n + 1], n, ScheduleDecision.continueWith(interval)]);\n });\n};\n/** @internal */\nexport const dayOfWeek = day => {\n return makeWithState([Number.MIN_SAFE_INTEGER, 0], (now, _, state) => {\n if (!Number.isInteger(day) || day < 1 || 7 < day) {\n return core.dieSync(() => new core.IllegalArgumentException(`Invalid argument in: dayOfWeek(${day}). Must be in range 1 (Monday)...7 (Sunday)`));\n }\n const n = state[1];\n const initial = n === 0;\n const day0 = nextDay(now, day, initial);\n const start = beginningOfDay(day0);\n const end = endOfDay(day0);\n const interval = Interval.make(start, end);\n return core.succeed([[end, n + 1], n, ScheduleDecision.continueWith(interval)]);\n });\n};\n/** @internal */\nexport const delayed = /*#__PURE__*/dual(2, (self, f) => delayedEffect(self, duration => core.sync(() => f(duration))));\n/** @internal */\nexport const delayedEffect = /*#__PURE__*/dual(2, (self, f) => modifyDelayEffect(self, (_, delay) => f(delay)));\n/** @internal */\nexport const delayedSchedule = schedule => addDelay(schedule, x => x);\n/** @internal */\nexport const delays = self => makeWithState(self.initial, (now, input, state) => pipe(self.step(now, input, state), core.flatMap(([state, _, decision]) => {\n if (ScheduleDecision.isDone(decision)) {\n return core.succeed([state, Duration.zero, decision]);\n }\n return core.succeed([state, Duration.millis(Intervals.start(decision.intervals) - now), decision]);\n})));\n/** @internal */\nexport const mapBoth = /*#__PURE__*/dual(2, (self, {\n onInput,\n onOutput\n}) => map(mapInput(self, onInput), onOutput));\n/** @internal */\nexport const mapBothEffect = /*#__PURE__*/dual(2, (self, {\n onInput,\n onOutput\n}) => mapEffect(mapInputEffect(self, onInput), onOutput));\n/** @internal */\nexport const driver = self => pipe(ref.make([Option.none(), self.initial]), core.map(ref => new ScheduleDriverImpl(self, ref)));\n/** @internal */\nexport const duration = durationInput => {\n const duration = Duration.decode(durationInput);\n const durationMillis = Duration.toMillis(duration);\n return makeWithState(true, (now, _, state) => core.succeed(state ? [false, duration, ScheduleDecision.continueWith(Interval.after(now + durationMillis))] : [false, Duration.zero, ScheduleDecision.done]));\n};\n/** @internal */\nexport const either = /*#__PURE__*/dual(2, (self, that) => union(self, that));\n/** @internal */\nexport const eitherWith = /*#__PURE__*/dual(3, (self, that, f) => unionWith(self, that, f));\n/** @internal */\nexport const ensuring = /*#__PURE__*/dual(2, (self, finalizer) => makeWithState(self.initial, (now, input, state) => core.flatMap(self.step(now, input, state), ([state, out, decision]) => ScheduleDecision.isDone(decision) ? core.as(finalizer, [state, out, decision]) : core.succeed([state, out, decision]))));\n/** @internal */\nexport const exponential = (baseInput, factor = 2.0) => {\n const base = Duration.decode(baseInput);\n return delayedSchedule(map(forever, i => Duration.times(base, Math.pow(factor, i))));\n};\n/** @internal */\nexport const fibonacci = oneInput => {\n const one = Duration.decode(oneInput);\n return delayedSchedule(pipe(unfold([one, one], ([a, b]) => [b, Duration.sum(a, b)]), map(out => out[0])));\n};\n/** @internal */\nexport const fixed = intervalInput => {\n const interval = Duration.decode(intervalInput);\n const intervalMillis = Duration.toMillis(interval);\n return makeWithState([Option.none(), 0], (now, _, [option, n]) => core.sync(() => {\n switch (option._tag) {\n case \"None\":\n {\n return [[Option.some([now, now + intervalMillis]), n + 1], n, ScheduleDecision.continueWith(Interval.after(now + intervalMillis))];\n }\n case \"Some\":\n {\n const [startMillis, lastRun] = option.value;\n const runningBehind = now > lastRun + intervalMillis;\n const boundary = Equal.equals(interval, Duration.zero) ? interval : Duration.millis(intervalMillis - (now - startMillis) % intervalMillis);\n const sleepTime = Equal.equals(boundary, Duration.zero) ? interval : boundary;\n const nextRun = runningBehind ? now : now + Duration.toMillis(sleepTime);\n return [[Option.some([startMillis, nextRun]), n + 1], n, ScheduleDecision.continueWith(Interval.after(nextRun))];\n }\n }\n }));\n};\n/** @internal */\nexport const fromDelay = delay => duration(delay);\n/** @internal */\nexport const fromDelays = (delay, ...delays) => makeWithState([[delay, ...delays].map(_ => Duration.decode(_)), true], (now, _, [durations, cont]) => core.sync(() => {\n if (cont) {\n const x = durations[0];\n const interval = Interval.after(now + Duration.toMillis(x));\n if (durations.length >= 2) {\n return [[durations.slice(1), true], x, ScheduleDecision.continueWith(interval)];\n }\n const y = durations.slice(1);\n return [[[x, ...y], false], x, ScheduleDecision.continueWith(interval)];\n }\n return [[durations, false], Duration.zero, ScheduleDecision.done];\n}));\n/** @internal */\nexport const fromFunction = f => map(identity(), f);\n/** @internal */\nexport const hourOfDay = hour => makeWithState([Number.NEGATIVE_INFINITY, 0], (now, _, state) => {\n if (!Number.isInteger(hour) || hour < 0 || 23 < hour) {\n return core.dieSync(() => new core.IllegalArgumentException(`Invalid argument in: hourOfDay(${hour}). Must be in range 0...23`));\n }\n const n = state[1];\n const initial = n === 0;\n const hour0 = nextHour(now, hour, initial);\n const start = beginningOfHour(hour0);\n const end = endOfHour(hour0);\n const interval = Interval.make(start, end);\n return core.succeed([[end, n + 1], n, ScheduleDecision.continueWith(interval)]);\n});\n/** @internal */\nexport const identity = () => makeWithState(void 0, (now, input, state) => core.succeed([state, input, ScheduleDecision.continueWith(Interval.after(now))]));\n/** @internal */\nexport const intersect = /*#__PURE__*/dual(2, (self, that) => intersectWith(self, that, Intervals.intersect));\n/** @internal */\nexport const intersectWith = /*#__PURE__*/dual(3, (self, that, f) => makeWithState([self.initial, that.initial], (now, input, state) => pipe(core.zipWith(self.step(now, input, state[0]), that.step(now, input, state[1]), (a, b) => [a, b]), core.flatMap(([[lState, out, lDecision], [rState, out2, rDecision]]) => {\n if (ScheduleDecision.isContinue(lDecision) && ScheduleDecision.isContinue(rDecision)) {\n return intersectWithLoop(self, that, input, lState, out, lDecision.intervals, rState, out2, rDecision.intervals, f);\n }\n return core.succeed([[lState, rState], [out, out2], ScheduleDecision.done]);\n}))));\n/** @internal */\nconst intersectWithLoop = (self, that, input, lState, out, lInterval, rState, out2, rInterval, f) => {\n const combined = f(lInterval, rInterval);\n if (Intervals.isNonEmpty(combined)) {\n return core.succeed([[lState, rState], [out, out2], ScheduleDecision.continue(combined)]);\n }\n if (pipe(lInterval, Intervals.lessThan(rInterval))) {\n return core.flatMap(self.step(Intervals.end(lInterval), input, lState), ([lState, out, decision]) => {\n if (ScheduleDecision.isDone(decision)) {\n return core.succeed([[lState, rState], [out, out2], ScheduleDecision.done]);\n }\n return intersectWithLoop(self, that, input, lState, out, decision.intervals, rState, out2, rInterval, f);\n });\n }\n return core.flatMap(that.step(Intervals.end(rInterval), input, rState), ([rState, out2, decision]) => {\n if (ScheduleDecision.isDone(decision)) {\n return core.succeed([[lState, rState], [out, out2], ScheduleDecision.done]);\n }\n return intersectWithLoop(self, that, input, lState, out, lInterval, rState, out2, decision.intervals, f);\n });\n};\n/** @internal */\nexport const jittered = self => jitteredWith(self, {\n min: 0.8,\n max: 1.2\n});\n/** @internal */\nexport const jitteredWith = /*#__PURE__*/dual(2, (self, options) => {\n const {\n max,\n min\n } = Object.assign({\n min: 0.8,\n max: 1.2\n }, options);\n return delayedEffect(self, duration => core.map(Random.next, random => {\n const d = Duration.toMillis(duration);\n const jittered = d * min * (1 - random) + d * max * random;\n return Duration.millis(jittered);\n }));\n});\n/** @internal */\nexport const linear = baseInput => {\n const base = Duration.decode(baseInput);\n return delayedSchedule(map(forever, i => Duration.times(base, i + 1)));\n};\n/** @internal */\nexport const map = /*#__PURE__*/dual(2, (self, f) => mapEffect(self, out => core.sync(() => f(out))));\n/** @internal */\nexport const mapEffect = /*#__PURE__*/dual(2, (self, f) => makeWithState(self.initial, (now, input, state) => core.flatMap(self.step(now, input, state), ([state, out, decision]) => core.map(f(out), out2 => [state, out2, decision]))));\n/** @internal */\nexport const minuteOfHour = minute => makeWithState([Number.MIN_SAFE_INTEGER, 0], (now, _, state) => {\n if (!Number.isInteger(minute) || minute < 0 || 59 < minute) {\n return core.dieSync(() => new core.IllegalArgumentException(`Invalid argument in: minuteOfHour(${minute}). Must be in range 0...59`));\n }\n const n = state[1];\n const initial = n === 0;\n const minute0 = nextMinute(now, minute, initial);\n const start = beginningOfMinute(minute0);\n const end = endOfMinute(minute0);\n const interval = Interval.make(start, end);\n return core.succeed([[end, n + 1], n, ScheduleDecision.continueWith(interval)]);\n});\n/** @internal */\nexport const modifyDelay = /*#__PURE__*/dual(2, (self, f) => modifyDelayEffect(self, (out, duration) => core.sync(() => f(out, duration))));\n/** @internal */\nexport const modifyDelayEffect = /*#__PURE__*/dual(2, (self, f) => makeWithState(self.initial, (now, input, state) => core.flatMap(self.step(now, input, state), ([state, out, decision]) => {\n if (ScheduleDecision.isDone(decision)) {\n return core.succeed([state, out, decision]);\n }\n const intervals = decision.intervals;\n const delay = Interval.size(Interval.make(now, Intervals.start(intervals)));\n return core.map(f(out, delay), durationInput => {\n const duration = Duration.decode(durationInput);\n const oldStart = Intervals.start(intervals);\n const newStart = now + Duration.toMillis(duration);\n const delta = newStart - oldStart;\n const newEnd = Math.max(0, Intervals.end(intervals) + delta);\n const newInterval = Interval.make(newStart, newEnd);\n return [state, out, ScheduleDecision.continueWith(newInterval)];\n });\n})));\n/** @internal */\nexport const onDecision = /*#__PURE__*/dual(2, (self, f) => makeWithState(self.initial, (now, input, state) => core.flatMap(self.step(now, input, state), ([state, out, decision]) => core.as(f(out, decision), [state, out, decision]))));\n/** @internal */\nexport const passthrough = self => makeWithState(self.initial, (now, input, state) => pipe(self.step(now, input, state), core.map(([state, _, decision]) => [state, input, decision])));\n/** @internal */\nexport const provideContext = /*#__PURE__*/dual(2, (self, context) => makeWithState(self.initial, (now, input, state) => core.provideContext(self.step(now, input, state), context)));\n/** @internal */\nexport const provideService = /*#__PURE__*/dual(3, (self, tag, service) => makeWithState(self.initial, (now, input, state) => core.contextWithEffect(env => core.provideContext(\n// @ts-expect-error\nself.step(now, input, state), Context.add(env, tag, service)))));\n/** @internal */\nexport const recurUntil = f => untilInput(identity(), f);\n/** @internal */\nexport const recurUntilEffect = f => untilInputEffect(identity(), f);\n/** @internal */\nexport const recurUntilOption = pf => untilOutput(map(identity(), pf), Option.isSome);\n/** @internal */\nexport const recurUpTo = durationInput => {\n const duration = Duration.decode(durationInput);\n return whileOutput(elapsed, elapsed => Duration.lessThan(elapsed, duration));\n};\n/** @internal */\nexport const recurWhile = f => whileInput(identity(), f);\n/** @internal */\nexport const recurWhileEffect = f => whileInputEffect(identity(), f);\n/** @internal */\nexport const recurs = n => whileOutput(forever, out => out < n);\n/** @internal */\nexport const reduce = /*#__PURE__*/dual(3, (self, zero, f) => reduceEffect(self, zero, (z, out) => core.sync(() => f(z, out))));\n/** @internal */\nexport const reduceEffect = /*#__PURE__*/dual(3, (self, zero, f) => makeWithState([self.initial, zero], (now, input, [s, z]) => core.flatMap(self.step(now, input, s), ([s, out, decision]) => ScheduleDecision.isDone(decision) ? core.succeed([[s, z], z, decision]) : core.map(f(z, out), z2 => [[s, z2], z, decision]))));\n/** @internal */\nexport const repeatForever = self => makeWithState(self.initial, (now, input, state) => {\n const step = (now, input, state) => core.flatMap(self.step(now, input, state), ([state, out, decision]) => ScheduleDecision.isDone(decision) ? step(now, input, self.initial) : core.succeed([state, out, decision]));\n return step(now, input, state);\n});\n/** @internal */\nexport const repetitions = self => reduce(self, 0, (n, _) => n + 1);\n/** @internal */\nexport const resetAfter = /*#__PURE__*/dual(2, (self, durationInput) => {\n const duration = Duration.decode(durationInput);\n return pipe(self, intersect(elapsed), resetWhen(([, time]) => Duration.greaterThanOrEqualTo(time, duration)), map(out => out[0]));\n});\n/** @internal */\nexport const resetWhen = /*#__PURE__*/dual(2, (self, f) => makeWithState(self.initial, (now, input, state) => core.flatMap(self.step(now, input, state), ([state, out, decision]) => f(out) ? self.step(now, input, self.initial) : core.succeed([state, out, decision]))));\n/** @internal */\nexport const run = /*#__PURE__*/dual(3, (self, now, input) => pipe(runLoop(self, now, Chunk.fromIterable(input), self.initial, Chunk.empty()), core.map(list => Chunk.reverse(list))));\n/** @internal */\nconst runLoop = (self, now, inputs, state, acc) => {\n if (!Chunk.isNonEmpty(inputs)) {\n return core.succeed(acc);\n }\n const input = Chunk.headNonEmpty(inputs);\n const nextInputs = Chunk.tailNonEmpty(inputs);\n return core.flatMap(self.step(now, input, state), ([state, out, decision]) => {\n if (ScheduleDecision.isDone(decision)) {\n return core.sync(() => pipe(acc, Chunk.prepend(out)));\n }\n return runLoop(self, Intervals.start(decision.intervals), nextInputs, state, Chunk.prepend(acc, out));\n });\n};\n/** @internal */\nexport const secondOfMinute = second => makeWithState([Number.NEGATIVE_INFINITY, 0], (now, _, state) => {\n if (!Number.isInteger(second) || second < 0 || 59 < second) {\n return core.dieSync(() => new core.IllegalArgumentException(`Invalid argument in: secondOfMinute(${second}). Must be in range 0...59`));\n }\n const n = state[1];\n const initial = n === 0;\n const second0 = nextSecond(now, second, initial);\n const start = beginningOfSecond(second0);\n const end = endOfSecond(second0);\n const interval = Interval.make(start, end);\n return core.succeed([[end, n + 1], n, ScheduleDecision.continueWith(interval)]);\n});\n/** @internal */\nexport const spaced = duration => addDelay(forever, () => duration);\n/** @internal */\nexport const succeed = value => map(forever, () => value);\n/** @internal */\nexport const sync = evaluate => map(forever, evaluate);\n/** @internal */\nexport const tapInput = /*#__PURE__*/dual(2, (self, f) => makeWithState(self.initial, (now, input, state) => core.zipRight(f(input), self.step(now, input, state))));\n/** @internal */\nexport const tapOutput = /*#__PURE__*/dual(2, (self, f) => makeWithState(self.initial, (now, input, state) => core.tap(self.step(now, input, state), ([, out]) => f(out))));\n/** @internal */\nexport const unfold = (initial, f) => makeWithState(initial, (now, _, state) => core.sync(() => [f(state), state, ScheduleDecision.continueWith(Interval.after(now))]));\n/** @internal */\nexport const union = /*#__PURE__*/dual(2, (self, that) => unionWith(self, that, Intervals.union));\n/** @internal */\nexport const unionWith = /*#__PURE__*/dual(3, (self, that, f) => makeWithState([self.initial, that.initial], (now, input, state) => core.zipWith(self.step(now, input, state[0]), that.step(now, input, state[1]), ([lState, l, lDecision], [rState, r, rDecision]) => {\n if (ScheduleDecision.isDone(lDecision) && ScheduleDecision.isDone(rDecision)) {\n return [[lState, rState], [l, r], ScheduleDecision.done];\n }\n if (ScheduleDecision.isDone(lDecision) && ScheduleDecision.isContinue(rDecision)) {\n return [[lState, rState], [l, r], ScheduleDecision.continue(rDecision.intervals)];\n }\n if (ScheduleDecision.isContinue(lDecision) && ScheduleDecision.isDone(rDecision)) {\n return [[lState, rState], [l, r], ScheduleDecision.continue(lDecision.intervals)];\n }\n if (ScheduleDecision.isContinue(lDecision) && ScheduleDecision.isContinue(rDecision)) {\n const combined = f(lDecision.intervals, rDecision.intervals);\n return [[lState, rState], [l, r], ScheduleDecision.continue(combined)];\n }\n throw new Error(\"BUG: Schedule.unionWith - please report an issue at https://github.com/Effect-TS/effect/issues\");\n})));\n/** @internal */\nexport const untilInput = /*#__PURE__*/dual(2, (self, f) => check(self, (input, _) => !f(input)));\n/** @internal */\nexport const untilInputEffect = /*#__PURE__*/dual(2, (self, f) => checkEffect(self, (input, _) => effect.negate(f(input))));\n/** @internal */\nexport const untilOutput = /*#__PURE__*/dual(2, (self, f) => check(self, (_, out) => !f(out)));\n/** @internal */\nexport const untilOutputEffect = /*#__PURE__*/dual(2, (self, f) => checkEffect(self, (_, out) => effect.negate(f(out))));\n/** @internal */\nexport const upTo = /*#__PURE__*/dual(2, (self, duration) => zipLeft(self, recurUpTo(duration)));\n/** @internal */\nexport const whileInput = /*#__PURE__*/dual(2, (self, f) => check(self, (input, _) => f(input)));\n/** @internal */\nexport const whileInputEffect = /*#__PURE__*/dual(2, (self, f) => checkEffect(self, (input, _) => f(input)));\n/** @internal */\nexport const whileOutput = /*#__PURE__*/dual(2, (self, f) => check(self, (_, out) => f(out)));\n/** @internal */\nexport const whileOutputEffect = /*#__PURE__*/dual(2, (self, f) => checkEffect(self, (_, out) => f(out)));\n/** @internal */\nexport const windowed = intervalInput => {\n const interval = Duration.decode(intervalInput);\n const millis = Duration.toMillis(interval);\n return makeWithState([Option.none(), 0], (now, _, [option, n]) => {\n switch (option._tag) {\n case \"None\":\n {\n return core.succeed([[Option.some(now), n + 1], n, ScheduleDecision.continueWith(Interval.after(now + millis))]);\n }\n case \"Some\":\n {\n return core.succeed([[Option.some(option.value), n + 1], n, ScheduleDecision.continueWith(Interval.after(now + (millis - (now - option.value) % millis)))]);\n }\n }\n });\n};\n/** @internal */\nexport const zipLeft = /*#__PURE__*/dual(2, (self, that) => map(intersect(self, that), out => out[0]));\n/** @internal */\nexport const zipRight = /*#__PURE__*/dual(2, (self, that) => map(intersect(self, that), out => out[1]));\n/** @internal */\nexport const zipWith = /*#__PURE__*/dual(3, (self, that, f) => map(intersect(self, that), ([out, out2]) => f(out, out2)));\n// -----------------------------------------------------------------------------\n// Seconds\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const beginningOfSecond = now => {\n const date = new Date(now);\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0).getTime();\n};\n/** @internal */\nexport const endOfSecond = now => {\n const date = new Date(beginningOfSecond(now));\n return date.setSeconds(date.getSeconds() + 1);\n};\n/** @internal */\nexport const nextSecond = (now, second, initial) => {\n const date = new Date(now);\n if (date.getSeconds() === second && initial) {\n return now;\n }\n if (date.getSeconds() < second) {\n return date.setSeconds(second);\n }\n // Set seconds to the provided value and add one minute\n const newDate = new Date(date.setSeconds(second));\n return newDate.setTime(newDate.getTime() + 1000 * 60);\n};\n// -----------------------------------------------------------------------------\n// Minutes\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const beginningOfMinute = now => {\n const date = new Date(now);\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), 0, 0).getTime();\n};\n/** @internal */\nexport const endOfMinute = now => {\n const date = new Date(beginningOfMinute(now));\n return date.setMinutes(date.getMinutes() + 1);\n};\n/** @internal */\nexport const nextMinute = (now, minute, initial) => {\n const date = new Date(now);\n if (date.getMinutes() === minute && initial) {\n return now;\n }\n if (date.getMinutes() < minute) {\n return date.setMinutes(minute);\n }\n // Set minutes to the provided value and add one hour\n const newDate = new Date(date.setMinutes(minute));\n return newDate.setTime(newDate.getTime() + 1000 * 60 * 60);\n};\n// -----------------------------------------------------------------------------\n// Hours\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const beginningOfHour = now => {\n const date = new Date(now);\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), 0, 0, 0).getTime();\n};\n/** @internal */\nexport const endOfHour = now => {\n const date = new Date(beginningOfHour(now));\n return date.setHours(date.getHours() + 1);\n};\n/** @internal */\nexport const nextHour = (now, hour, initial) => {\n const date = new Date(now);\n if (date.getHours() === hour && initial) {\n return now;\n }\n if (date.getHours() < hour) {\n return date.setHours(hour);\n }\n // Set hours to the provided value and add one day\n const newDate = new Date(date.setHours(hour));\n return newDate.setTime(newDate.getTime() + 1000 * 60 * 60 * 24);\n};\n// -----------------------------------------------------------------------------\n// Days\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const beginningOfDay = now => {\n const date = new Date(now);\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0).getTime();\n};\n/** @internal */\nexport const endOfDay = now => {\n const date = new Date(beginningOfDay(now));\n return date.setDate(date.getDate() + 1);\n};\n/** @internal */\nexport const nextDay = (now, dayOfWeek, initial) => {\n const date = new Date(now);\n if (date.getDay() === dayOfWeek && initial) {\n return now;\n }\n const nextDayOfWeek = (7 + dayOfWeek - date.getDay()) % 7;\n return date.setDate(date.getDate() + (nextDayOfWeek === 0 ? 7 : nextDayOfWeek));\n};\n/** @internal */\nexport const nextDayOfMonth = (now, day, initial) => {\n const date = new Date(now);\n if (date.getDate() === day && initial) {\n return now;\n }\n if (date.getDate() < day) {\n return date.setDate(day);\n }\n return findNextMonth(now, day, 1);\n};\n/** @internal */\nexport const findNextMonth = (now, day, months) => {\n const d = new Date(now);\n const tmp1 = new Date(d.setDate(day));\n const tmp2 = new Date(tmp1.setMonth(tmp1.getMonth() + months));\n if (tmp2.getDate() === day) {\n const d2 = new Date(now);\n const tmp3 = new Date(d2.setDate(day));\n return tmp3.setMonth(tmp3.getMonth() + months);\n }\n return findNextMonth(now, day, months + 1);\n};\n// circular with Effect\nconst ScheduleDefectTypeId = /*#__PURE__*/Symbol.for(\"effect/Schedule/ScheduleDefect\");\nclass ScheduleDefect {\n error;\n [ScheduleDefectTypeId];\n constructor(error) {\n this.error = error;\n this[ScheduleDefectTypeId] = ScheduleDefectTypeId;\n }\n}\nconst isScheduleDefect = u => hasProperty(u, ScheduleDefectTypeId);\nconst scheduleDefectWrap = self => core.catchAll(self, e => core.die(new ScheduleDefect(e)));\n/** @internal */\nexport const scheduleDefectRefailCause = cause => Option.match(internalCause.find(cause, _ => internalCause.isDieType(_) && isScheduleDefect(_.defect) ? Option.some(_.defect) : Option.none()), {\n onNone: () => cause,\n onSome: error => internalCause.fail(error.error)\n});\n/** @internal */\nexport const scheduleDefectRefail = effect => core.catchAllCause(effect, cause => core.failCause(scheduleDefectRefailCause(cause)));\n/** @internal */\nexport const repeat_Effect = /*#__PURE__*/dual(2, (self, schedule) => repeatOrElse_Effect(self, schedule, (e, _) => core.fail(e)));\n/** @internal */\nexport const repeat_combined = /*#__PURE__*/dual(2, (self, options) => {\n if (isSchedule(options)) {\n return repeat_Effect(self, options);\n }\n const base = options.schedule ?? passthrough(forever);\n const withWhile = options.while ? whileInputEffect(base, a => {\n const applied = options.while(a);\n if (typeof applied === \"boolean\") {\n return core.succeed(applied);\n }\n return scheduleDefectWrap(applied);\n }) : base;\n const withUntil = options.until ? untilInputEffect(withWhile, a => {\n const applied = options.until(a);\n if (typeof applied === \"boolean\") {\n return core.succeed(applied);\n }\n return scheduleDefectWrap(applied);\n }) : withWhile;\n const withTimes = options.times ? intersect(withUntil, recurs(options.times)).pipe(map(intersectionPair => intersectionPair[0])) : withUntil;\n return scheduleDefectRefail(repeat_Effect(self, withTimes));\n});\n/** @internal */\nexport const repeatOrElse_Effect = /*#__PURE__*/dual(3, (self, schedule, orElse) => core.flatMap(driver(schedule), driver => core.matchEffect(self, {\n onFailure: error => orElse(error, Option.none()),\n onSuccess: value => repeatOrElseEffectLoop(effect.provideServiceEffect(self, CurrentIterationMetadata, ref.get(driver.iterationMeta)), driver, (error, option) => effect.provideServiceEffect(orElse(error, option), CurrentIterationMetadata, ref.get(driver.iterationMeta)), value)\n})));\n/** @internal */\nconst repeatOrElseEffectLoop = (self, driver, orElse, value) => core.matchEffect(driver.next(value), {\n onFailure: () => core.orDie(driver.last),\n onSuccess: b => core.matchEffect(self, {\n onFailure: error => orElse(error, Option.some(b)),\n onSuccess: value => repeatOrElseEffectLoop(self, driver, orElse, value)\n })\n});\n/** @internal */\nexport const retry_Effect = /*#__PURE__*/dual(2, (self, policy) => retryOrElse_Effect(self, policy, (e, _) => core.fail(e)));\n/** @internal */\nexport const retry_combined = /*#__PURE__*/dual(2, (self, options) => {\n if (isSchedule(options)) {\n return retry_Effect(self, options);\n }\n return scheduleDefectRefail(retry_Effect(self, fromRetryOptions(options)));\n});\n/** @internal */\nexport const fromRetryOptions = options => {\n const base = options.schedule ?? forever;\n const withWhile = options.while ? whileInputEffect(base, e => {\n const applied = options.while(e);\n if (typeof applied === \"boolean\") {\n return core.succeed(applied);\n }\n return scheduleDefectWrap(applied);\n }) : base;\n const withUntil = options.until ? untilInputEffect(withWhile, e => {\n const applied = options.until(e);\n if (typeof applied === \"boolean\") {\n return core.succeed(applied);\n }\n return scheduleDefectWrap(applied);\n }) : withWhile;\n return options.times !== undefined ? intersect(withUntil, recurs(options.times)) : withUntil;\n};\n/** @internal */\nexport const retryOrElse_Effect = /*#__PURE__*/dual(3, (self, policy, orElse) => core.flatMap(driver(policy), driver => retryOrElse_EffectLoop(effect.provideServiceEffect(self, CurrentIterationMetadata, ref.get(driver.iterationMeta)), driver, (e, out) => effect.provideServiceEffect(orElse(e, out), CurrentIterationMetadata, ref.get(driver.iterationMeta)))));\n/** @internal */\nconst retryOrElse_EffectLoop = (self, driver, orElse) => {\n return core.catchAll(self, e => core.matchEffect(driver.next(e), {\n onFailure: () => pipe(driver.last, core.orDie, core.flatMap(out => orElse(e, out))),\n onSuccess: () => retryOrElse_EffectLoop(self, driver, orElse)\n }));\n};\n/** @internal */\nexport const schedule_Effect = /*#__PURE__*/dual(2, (self, schedule) => scheduleFrom_Effect(self, void 0, schedule));\n/** @internal */\nexport const scheduleFrom_Effect = /*#__PURE__*/dual(3, (self, initial, schedule) => core.flatMap(driver(schedule), driver => scheduleFrom_EffectLoop(effect.provideServiceEffect(self, CurrentIterationMetadata, ref.get(driver.iterationMeta)), initial, driver)));\n/** @internal */\nconst scheduleFrom_EffectLoop = (self, initial, driver) => core.matchEffect(driver.next(initial), {\n onFailure: () => core.orDie(driver.last),\n onSuccess: () => core.flatMap(self, a => scheduleFrom_EffectLoop(self, a, driver))\n});\n/** @internal */\nexport const count = /*#__PURE__*/unfold(0, n => n + 1);\n/** @internal */\nexport const elapsed = /*#__PURE__*/makeWithState(/*#__PURE__*/Option.none(), (now, _, state) => {\n switch (state._tag) {\n case \"None\":\n {\n return core.succeed([Option.some(now), Duration.zero, ScheduleDecision.continueWith(Interval.after(now))]);\n }\n case \"Some\":\n {\n return core.succeed([Option.some(state.value), Duration.millis(now - state.value), ScheduleDecision.continueWith(Interval.after(now))]);\n }\n }\n});\n/** @internal */\nexport const forever = /*#__PURE__*/unfold(0, n => n + 1);\n/** @internal */\nexport const once = /*#__PURE__*/asVoid(/*#__PURE__*/recurs(1));\n/** @internal */\nexport const stop = /*#__PURE__*/asVoid(/*#__PURE__*/recurs(0));\n/** @internal */\nexport const scheduleForked = /*#__PURE__*/dual(2, (self, schedule) => forkScoped(schedule_Effect(self, schedule)));\n//# sourceMappingURL=schedule.js.map","import * as core from \"./internal/core.js\";\nimport * as internal from \"./internal/deferred.js\";\n/**\n * @since 2.0.0\n * @category symbols\n */\nexport const DeferredTypeId = internal.DeferredTypeId;\n/**\n * Creates a new `Deferred`.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const make = core.deferredMake;\n/**\n * Creates a new `Deferred` from the specified `FiberId`.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const makeAs = core.deferredMakeAs;\nconst _await = core.deferredAwait;\nexport {\n/**\n * Retrieves the value of the `Deferred`, suspending the fiber running the\n * workflow until the result is available.\n *\n * @since 2.0.0\n * @category getters\n */\n_await as await };\n/**\n * Completes the deferred with the result of the specified effect. If the\n * deferred has already been completed, the method will produce false.\n *\n * Note that `Deferred.completeWith` will be much faster, so consider using\n * that if you do not need to memoize the result of the specified effect.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const complete = core.deferredComplete;\n/**\n * Completes the deferred with the result of the specified effect. If the\n * deferred has already been completed, the method will produce false.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const completeWith = core.deferredCompleteWith;\n/**\n * Exits the `Deferred` with the specified `Exit` value, which will be\n * propagated to all fibers waiting on the value of the `Deferred`.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const done = core.deferredDone;\n/**\n * Fails the `Deferred` with the specified error, which will be propagated to\n * all fibers waiting on the value of the `Deferred`.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const fail = core.deferredFail;\n/**\n * Fails the `Deferred` with the specified error, which will be propagated to\n * all fibers waiting on the value of the `Deferred`.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const failSync = core.deferredFailSync;\n/**\n * Fails the `Deferred` with the specified `Cause`, which will be propagated to\n * all fibers waiting on the value of the `Deferred`.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const failCause = core.deferredFailCause;\n/**\n * Fails the `Deferred` with the specified `Cause`, which will be propagated to\n * all fibers waiting on the value of the `Deferred`.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const failCauseSync = core.deferredFailCauseSync;\n/**\n * Kills the `Deferred` with the specified defect, which will be propagated to\n * all fibers waiting on the value of the `Deferred`.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const die = core.deferredDie;\n/**\n * Kills the `Deferred` with the specified defect, which will be propagated to\n * all fibers waiting on the value of the `Deferred`.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const dieSync = core.deferredDieSync;\n/**\n * Completes the `Deferred` with interruption. This will interrupt all fibers\n * waiting on the value of the `Deferred` with the `FiberId` of the fiber\n * calling this method.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const interrupt = core.deferredInterrupt;\n/**\n * Completes the `Deferred` with interruption. This will interrupt all fibers\n * waiting on the value of the `Deferred` with the specified `FiberId`.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const interruptWith = core.deferredInterruptWith;\n/**\n * Returns `true` if this `Deferred` has already been completed with a value or\n * an error, `false` otherwise.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const isDone = core.deferredIsDone;\n/**\n * Returns a `Some>` from the `Deferred` if this `Deferred` has\n * already been completed, `None` otherwise.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const poll = core.deferredPoll;\n/**\n * Completes the `Deferred` with the specified value.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const succeed = core.deferredSucceed;\n/**\n * Completes the `Deferred` with the specified lazily evaluated value.\n *\n * @since 2.0.0\n * @category utils\n */\nexport const sync = core.deferredSync;\n/**\n * Unsafely creates a new `Deferred` from the specified `FiberId`.\n *\n * @since 2.0.0\n * @category unsafe\n */\nexport const unsafeMake = core.deferredUnsafeMake;\n/**\n * Unsafely exits the `Deferred` with the specified `Exit` value, which will be\n * propagated to all fibers waiting on the value of the `Deferred`.\n *\n * @since 2.0.0\n * @category unsafe\n */\nexport const unsafeDone = core.deferredUnsafeDone;\n//# sourceMappingURL=Deferred.js.map","/**\n * @since 2.0.0\n */\nimport * as Dual from \"./Function.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"./Inspectable.js\";\nimport { pipeArguments } from \"./Pipeable.js\";\nconst TypeId = /*#__PURE__*/Symbol.for(\"effect/MutableList\");\nconst MutableListProto = {\n [TypeId]: TypeId,\n [Symbol.iterator]() {\n let done = false;\n let head = this.head;\n return {\n next() {\n if (done) {\n return this.return();\n }\n if (head == null) {\n done = true;\n return this.return();\n }\n const value = head.value;\n head = head.next;\n return {\n done,\n value\n };\n },\n return(value) {\n if (!done) {\n done = true;\n }\n return {\n done: true,\n value\n };\n }\n };\n },\n toString() {\n return format(this.toJSON());\n },\n toJSON() {\n return {\n _id: \"MutableList\",\n values: Array.from(this).map(toJSON)\n };\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\n/** @internal */\nconst makeNode = value => ({\n value,\n removed: false,\n prev: undefined,\n next: undefined\n});\n/**\n * Creates an empty `MutableList`.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const empty = () => {\n const list = Object.create(MutableListProto);\n list.head = undefined;\n list.tail = undefined;\n list._length = 0;\n return list;\n};\n/**\n * Creates a new `MutableList` from an iterable collection of values.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const fromIterable = iterable => {\n const list = empty();\n for (const element of iterable) {\n append(list, element);\n }\n return list;\n};\n/**\n * Creates a new `MutableList` from the specified elements.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const make = (...elements) => fromIterable(elements);\n/**\n * Returns `true` if the list contains zero elements, `false`, otherwise.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const isEmpty = self => length(self) === 0;\n/**\n * Returns the length of the list.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const length = self => self._length;\n/**\n * Returns the last element of the list, if it exists.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const tail = self => self.tail === undefined ? undefined : self.tail.value;\n/**\n * Returns the first element of the list, if it exists.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const head = self => self.head === undefined ? undefined : self.head.value;\n/**\n * Executes the specified function `f` for each element in the list.\n *\n * @since 2.0.0\n * @category traversing\n */\nexport const forEach = /*#__PURE__*/Dual.dual(2, (self, f) => {\n let current = self.head;\n while (current !== undefined) {\n f(current.value);\n current = current.next;\n }\n});\n/**\n * Removes all elements from the doubly-linked list.\n *\n * @since 2.0.0\n */\nexport const reset = self => {\n ;\n self._length = 0;\n self.head = undefined;\n self.tail = undefined;\n return self;\n};\n/**\n * Appends the specified element to the end of the `MutableList`.\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const append = /*#__PURE__*/Dual.dual(2, (self, value) => {\n const node = makeNode(value);\n if (self.head === undefined) {\n self.head = node;\n }\n if (self.tail === undefined) {\n self.tail = node;\n } else {\n self.tail.next = node;\n node.prev = self.tail;\n self.tail = node;\n }\n ;\n self._length += 1;\n return self;\n});\n/**\n * Removes the first value from the list and returns it, if it exists.\n *\n * @since 0.0.1\n */\nexport const shift = self => {\n const head = self.head;\n if (head !== undefined) {\n remove(self, head);\n return head.value;\n }\n return undefined;\n};\n/**\n * Removes the last value from the list and returns it, if it exists.\n *\n * @since 0.0.1\n */\nexport const pop = self => {\n const tail = self.tail;\n if (tail !== undefined) {\n remove(self, tail);\n return tail.value;\n }\n return undefined;\n};\n/**\n * Prepends the specified value to the beginning of the list.\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const prepend = /*#__PURE__*/Dual.dual(2, (self, value) => {\n const node = makeNode(value);\n node.next = self.head;\n if (self.head !== undefined) {\n self.head.prev = node;\n }\n self.head = node;\n if (self.tail === undefined) {\n self.tail = node;\n }\n ;\n self._length += 1;\n return self;\n});\nconst remove = (self, node) => {\n if (node.removed) {\n return;\n }\n node.removed = true;\n if (node.prev !== undefined && node.next !== undefined) {\n node.prev.next = node.next;\n node.next.prev = node.prev;\n } else if (node.prev !== undefined) {\n self.tail = node.prev;\n node.prev.next = undefined;\n } else if (node.next !== undefined) {\n self.head = node.next;\n node.next.prev = undefined;\n } else {\n self.tail = undefined;\n self.head = undefined;\n }\n if (self._length > 0) {\n ;\n self._length -= 1;\n }\n};\n//# sourceMappingURL=MutableList.js.map","/**\n * @since 2.0.0\n */\nimport * as Chunk from \"./Chunk.js\";\nimport * as Dual from \"./Function.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"./Inspectable.js\";\nimport * as MutableList from \"./MutableList.js\";\nimport { pipeArguments } from \"./Pipeable.js\";\nconst TypeId = /*#__PURE__*/Symbol.for(\"effect/MutableQueue\");\n/**\n * @since 2.0.0\n * @category symbol\n */\nexport const EmptyMutableQueue = /*#__PURE__*/Symbol.for(\"effect/mutable/MutableQueue/Empty\");\nconst MutableQueueProto = {\n [TypeId]: TypeId,\n [Symbol.iterator]() {\n return Array.from(this.queue)[Symbol.iterator]();\n },\n toString() {\n return format(this.toJSON());\n },\n toJSON() {\n return {\n _id: \"MutableQueue\",\n values: Array.from(this).map(toJSON)\n };\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\nconst make = capacity => {\n const queue = Object.create(MutableQueueProto);\n queue.queue = MutableList.empty();\n queue.capacity = capacity;\n return queue;\n};\n/**\n * Creates a new bounded `MutableQueue`.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const bounded = capacity => make(capacity);\n/**\n * Creates a new unbounded `MutableQueue`.\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const unbounded = () => make(undefined);\n/**\n * Returns the current number of elements in the queue.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const length = self => MutableList.length(self.queue);\n/**\n * Returns `true` if the queue is empty, `false` otherwise.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const isEmpty = self => MutableList.isEmpty(self.queue);\n/**\n * Returns `true` if the queue is full, `false` otherwise.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const isFull = self => self.capacity === undefined ? false : MutableList.length(self.queue) === self.capacity;\n/**\n * The **maximum** number of elements that a queue can hold.\n *\n * **Note**: unbounded queues can still implement this interface with\n * `capacity = Infinity`.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const capacity = self => self.capacity === undefined ? Infinity : self.capacity;\n/**\n * Offers an element to the queue.\n *\n * Returns whether the enqueue was successful or not.\n *\n * @since 2.0.0\n */\nexport const offer = /*#__PURE__*/Dual.dual(2, (self, value) => {\n const queueLength = MutableList.length(self.queue);\n if (self.capacity !== undefined && queueLength === self.capacity) {\n return false;\n }\n MutableList.append(value)(self.queue);\n return true;\n});\n/**\n * Enqueues a collection of values into the queue.\n *\n * Returns a `Chunk` of the values that were **not** able to be enqueued.\n *\n * @since 2.0.0\n */\nexport const offerAll = /*#__PURE__*/Dual.dual(2, (self, values) => {\n const iterator = values[Symbol.iterator]();\n let next;\n let remainder = Chunk.empty();\n let offering = true;\n while (offering && (next = iterator.next()) && !next.done) {\n offering = offer(next.value)(self);\n }\n while (next != null && !next.done) {\n remainder = Chunk.prepend(next.value)(remainder);\n next = iterator.next();\n }\n return Chunk.reverse(remainder);\n});\n/**\n * Dequeues an element from the queue.\n *\n * Returns either an element from the queue, or the `def` param.\n *\n * **Note**: if there is no meaningful default for your type, you can always\n * use `poll(MutableQueue.EmptyMutableQueue)`.\n *\n * @since 2.0.0\n */\nexport const poll = /*#__PURE__*/Dual.dual(2, (self, def) => {\n if (MutableList.isEmpty(self.queue)) {\n return def;\n }\n return MutableList.shift(self.queue);\n});\n/**\n * Dequeues up to `n` elements from the queue.\n *\n * Returns a `List` of up to `n` elements.\n *\n * @since 2.0.0\n */\nexport const pollUpTo = /*#__PURE__*/Dual.dual(2, (self, n) => {\n let result = Chunk.empty();\n let count = 0;\n while (count < n) {\n const element = poll(EmptyMutableQueue)(self);\n if (element === EmptyMutableQueue) {\n break;\n }\n result = Chunk.prepend(element)(result);\n count += 1;\n }\n return Chunk.reverse(result);\n});\n//# sourceMappingURL=MutableQueue.js.map","import * as Context from \"../Context.js\";\nimport * as Deferred from \"../Deferred.js\";\nimport * as Duration from \"../Duration.js\";\nimport * as Either from \"../Either.js\";\nimport * as Equal from \"../Equal.js\";\nimport * as Exit from \"../Exit.js\";\nimport { pipe } from \"../Function.js\";\nimport * as Hash from \"../Hash.js\";\nimport * as MutableHashMap from \"../MutableHashMap.js\";\nimport * as MutableQueue from \"../MutableQueue.js\";\nimport * as MutableRef from \"../MutableRef.js\";\nimport * as Option from \"../Option.js\";\nimport { hasProperty } from \"../Predicate.js\";\nimport * as effect from \"./core-effect.js\";\nimport * as core from \"./core.js\";\nimport * as Data from \"./data.js\";\nimport { none } from \"./fiberId.js\";\nimport * as fiberRuntime from \"./fiberRuntime.js\";\n/** @internal */\nexport const complete = (key, exit, entryStats, timeToLiveMillis) => Data.struct({\n _tag: \"Complete\",\n key,\n exit,\n entryStats,\n timeToLiveMillis\n});\n/** @internal */\nexport const pending = (key, deferred) => Data.struct({\n _tag: \"Pending\",\n key,\n deferred\n});\n/** @internal */\nexport const refreshing = (deferred, complete) => Data.struct({\n _tag: \"Refreshing\",\n deferred,\n complete\n});\n/** @internal */\nexport const MapKeyTypeId = /*#__PURE__*/Symbol.for(\"effect/Cache/MapKey\");\nclass MapKeyImpl {\n current;\n [MapKeyTypeId] = MapKeyTypeId;\n previous = undefined;\n next = undefined;\n constructor(current) {\n this.current = current;\n }\n [Hash.symbol]() {\n return pipe(Hash.hash(this.current), Hash.combine(Hash.hash(this.previous)), Hash.combine(Hash.hash(this.next)), Hash.cached(this));\n }\n [Equal.symbol](that) {\n if (this === that) {\n return true;\n }\n return isMapKey(that) && Equal.equals(this.current, that.current) && Equal.equals(this.previous, that.previous) && Equal.equals(this.next, that.next);\n }\n}\n/** @internal */\nexport const makeMapKey = current => new MapKeyImpl(current);\n/** @internal */\nexport const isMapKey = u => hasProperty(u, MapKeyTypeId);\nclass KeySetImpl {\n head = undefined;\n tail = undefined;\n add(key) {\n if (key !== this.tail) {\n if (this.tail === undefined) {\n this.head = key;\n this.tail = key;\n } else {\n const previous = key.previous;\n const next = key.next;\n if (next !== undefined) {\n key.next = undefined;\n if (previous !== undefined) {\n previous.next = next;\n next.previous = previous;\n } else {\n this.head = next;\n this.head.previous = undefined;\n }\n }\n this.tail.next = key;\n key.previous = this.tail;\n this.tail = key;\n }\n }\n }\n remove() {\n const key = this.head;\n if (key !== undefined) {\n const next = key.next;\n if (next !== undefined) {\n key.next = undefined;\n this.head = next;\n this.head.previous = undefined;\n } else {\n this.head = undefined;\n this.tail = undefined;\n }\n }\n return key;\n }\n}\n/** @internal */\nexport const makeKeySet = () => new KeySetImpl();\n/**\n * Constructs a new `CacheState` from the specified values.\n *\n * @internal\n */\nexport const makeCacheState = (map, keys, accesses, updating, hits, misses) => ({\n map,\n keys,\n accesses,\n updating,\n hits,\n misses\n});\n/**\n * Constructs an initial cache state.\n *\n * @internal\n */\nexport const initialCacheState = () => makeCacheState(MutableHashMap.empty(), makeKeySet(), MutableQueue.unbounded(), MutableRef.make(false), 0, 0);\n/** @internal */\nconst CacheSymbolKey = \"effect/Cache\";\n/** @internal */\nexport const CacheTypeId = /*#__PURE__*/Symbol.for(CacheSymbolKey);\nconst cacheVariance = {\n /* c8 ignore next */\n _Key: _ => _,\n /* c8 ignore next */\n _Error: _ => _,\n /* c8 ignore next */\n _Value: _ => _\n};\n/** @internal */\nconst ConsumerCacheSymbolKey = \"effect/ConsumerCache\";\n/** @internal */\nexport const ConsumerCacheTypeId = /*#__PURE__*/Symbol.for(ConsumerCacheSymbolKey);\nconst consumerCacheVariance = {\n /* c8 ignore next */\n _Key: _ => _,\n /* c8 ignore next */\n _Error: _ => _,\n /* c8 ignore next */\n _Value: _ => _\n};\n/** @internal */\nexport const makeCacheStats = options => options;\n/** @internal */\nexport const makeEntryStats = loadedMillis => ({\n loadedMillis\n});\nclass CacheImpl {\n capacity;\n context;\n fiberId;\n lookup;\n timeToLive;\n [CacheTypeId] = cacheVariance;\n [ConsumerCacheTypeId] = consumerCacheVariance;\n cacheState;\n constructor(capacity, context, fiberId, lookup, timeToLive) {\n this.capacity = capacity;\n this.context = context;\n this.fiberId = fiberId;\n this.lookup = lookup;\n this.timeToLive = timeToLive;\n this.cacheState = initialCacheState();\n }\n get(key) {\n return core.map(this.getEither(key), Either.merge);\n }\n get cacheStats() {\n return core.sync(() => makeCacheStats({\n hits: this.cacheState.hits,\n misses: this.cacheState.misses,\n size: MutableHashMap.size(this.cacheState.map)\n }));\n }\n getOption(key) {\n return core.suspend(() => Option.match(MutableHashMap.get(this.cacheState.map, key), {\n onNone: () => {\n const mapKey = makeMapKey(key);\n this.trackAccess(mapKey);\n this.trackMiss();\n return core.succeed(Option.none());\n },\n onSome: value => this.resolveMapValue(value)\n }));\n }\n getOptionComplete(key) {\n return core.suspend(() => Option.match(MutableHashMap.get(this.cacheState.map, key), {\n onNone: () => {\n const mapKey = makeMapKey(key);\n this.trackAccess(mapKey);\n this.trackMiss();\n return core.succeed(Option.none());\n },\n onSome: value => this.resolveMapValue(value, true)\n }));\n }\n contains(key) {\n return core.sync(() => MutableHashMap.has(this.cacheState.map, key));\n }\n entryStats(key) {\n return core.sync(() => {\n const option = MutableHashMap.get(this.cacheState.map, key);\n if (Option.isSome(option)) {\n switch (option.value._tag) {\n case \"Complete\":\n {\n const loaded = option.value.entryStats.loadedMillis;\n return Option.some(makeEntryStats(loaded));\n }\n case \"Pending\":\n {\n return Option.none();\n }\n case \"Refreshing\":\n {\n const loaded = option.value.complete.entryStats.loadedMillis;\n return Option.some(makeEntryStats(loaded));\n }\n }\n }\n return Option.none();\n });\n }\n getEither(key) {\n return core.suspend(() => {\n const k = key;\n let mapKey = undefined;\n let deferred = undefined;\n let value = Option.getOrUndefined(MutableHashMap.get(this.cacheState.map, k));\n if (value === undefined) {\n deferred = Deferred.unsafeMake(this.fiberId);\n mapKey = makeMapKey(k);\n if (MutableHashMap.has(this.cacheState.map, k)) {\n value = Option.getOrUndefined(MutableHashMap.get(this.cacheState.map, k));\n } else {\n MutableHashMap.set(this.cacheState.map, k, pending(mapKey, deferred));\n }\n }\n if (value === undefined) {\n this.trackAccess(mapKey);\n this.trackMiss();\n return core.map(this.lookupValueOf(key, deferred), Either.right);\n } else {\n return core.flatMap(this.resolveMapValue(value), Option.match({\n onNone: () => this.getEither(key),\n onSome: value => core.succeed(Either.left(value))\n }));\n }\n });\n }\n invalidate(key) {\n return core.sync(() => {\n MutableHashMap.remove(this.cacheState.map, key);\n });\n }\n invalidateWhen(key, when) {\n return core.sync(() => {\n const value = MutableHashMap.get(this.cacheState.map, key);\n if (Option.isSome(value) && value.value._tag === \"Complete\") {\n if (value.value.exit._tag === \"Success\") {\n if (when(value.value.exit.value)) {\n MutableHashMap.remove(this.cacheState.map, key);\n }\n }\n }\n });\n }\n get invalidateAll() {\n return core.sync(() => {\n this.cacheState.map = MutableHashMap.empty();\n });\n }\n refresh(key) {\n return effect.clockWith(clock => core.suspend(() => {\n const k = key;\n const deferred = Deferred.unsafeMake(this.fiberId);\n let value = Option.getOrUndefined(MutableHashMap.get(this.cacheState.map, k));\n if (value === undefined) {\n if (MutableHashMap.has(this.cacheState.map, k)) {\n value = Option.getOrUndefined(MutableHashMap.get(this.cacheState.map, k));\n } else {\n MutableHashMap.set(this.cacheState.map, k, pending(makeMapKey(k), deferred));\n }\n }\n if (value === undefined) {\n return core.asVoid(this.lookupValueOf(key, deferred));\n } else {\n switch (value._tag) {\n case \"Complete\":\n {\n if (this.hasExpired(clock, value.timeToLiveMillis)) {\n const found = Option.getOrUndefined(MutableHashMap.get(this.cacheState.map, k));\n if (Equal.equals(found, value)) {\n MutableHashMap.remove(this.cacheState.map, k);\n }\n return core.asVoid(this.get(key));\n }\n // Only trigger the lookup if we're still the current value, `completedResult`\n return pipe(this.lookupValueOf(key, deferred), effect.when(() => {\n const current = Option.getOrUndefined(MutableHashMap.get(this.cacheState.map, k));\n if (Equal.equals(current, value)) {\n const mapValue = refreshing(deferred, value);\n MutableHashMap.set(this.cacheState.map, k, mapValue);\n return true;\n }\n return false;\n }), core.asVoid);\n }\n case \"Pending\":\n {\n return Deferred.await(value.deferred);\n }\n case \"Refreshing\":\n {\n return Deferred.await(value.deferred);\n }\n }\n }\n }));\n }\n set(key, value) {\n return effect.clockWith(clock => core.sync(() => {\n const now = clock.unsafeCurrentTimeMillis();\n const k = key;\n const lookupResult = Exit.succeed(value);\n const mapValue = complete(makeMapKey(k), lookupResult, makeEntryStats(now), now + Duration.toMillis(Duration.decode(this.timeToLive(lookupResult))));\n MutableHashMap.set(this.cacheState.map, k, mapValue);\n }));\n }\n get size() {\n return core.sync(() => {\n return MutableHashMap.size(this.cacheState.map);\n });\n }\n get values() {\n return core.sync(() => {\n const values = [];\n for (const entry of this.cacheState.map) {\n if (entry[1]._tag === \"Complete\" && entry[1].exit._tag === \"Success\") {\n values.push(entry[1].exit.value);\n }\n }\n return values;\n });\n }\n get entries() {\n return core.sync(() => {\n const values = [];\n for (const entry of this.cacheState.map) {\n if (entry[1]._tag === \"Complete\" && entry[1].exit._tag === \"Success\") {\n values.push([entry[0], entry[1].exit.value]);\n }\n }\n return values;\n });\n }\n get keys() {\n return core.sync(() => {\n const keys = [];\n for (const entry of this.cacheState.map) {\n if (entry[1]._tag === \"Complete\" && entry[1].exit._tag === \"Success\") {\n keys.push(entry[0]);\n }\n }\n return keys;\n });\n }\n resolveMapValue(value, ignorePending = false) {\n return effect.clockWith(clock => {\n switch (value._tag) {\n case \"Complete\":\n {\n this.trackAccess(value.key);\n if (this.hasExpired(clock, value.timeToLiveMillis)) {\n MutableHashMap.remove(this.cacheState.map, value.key.current);\n return core.succeed(Option.none());\n }\n this.trackHit();\n return core.map(value.exit, Option.some);\n }\n case \"Pending\":\n {\n this.trackAccess(value.key);\n this.trackHit();\n if (ignorePending) {\n return core.succeed(Option.none());\n }\n return core.map(Deferred.await(value.deferred), Option.some);\n }\n case \"Refreshing\":\n {\n this.trackAccess(value.complete.key);\n this.trackHit();\n if (this.hasExpired(clock, value.complete.timeToLiveMillis)) {\n if (ignorePending) {\n return core.succeed(Option.none());\n }\n return core.map(Deferred.await(value.deferred), Option.some);\n }\n return core.map(value.complete.exit, Option.some);\n }\n }\n });\n }\n trackHit() {\n this.cacheState.hits = this.cacheState.hits + 1;\n }\n trackMiss() {\n this.cacheState.misses = this.cacheState.misses + 1;\n }\n trackAccess(key) {\n MutableQueue.offer(this.cacheState.accesses, key);\n if (MutableRef.compareAndSet(this.cacheState.updating, false, true)) {\n let loop = true;\n while (loop) {\n const key = MutableQueue.poll(this.cacheState.accesses, MutableQueue.EmptyMutableQueue);\n if (key === MutableQueue.EmptyMutableQueue) {\n loop = false;\n } else {\n this.cacheState.keys.add(key);\n }\n }\n let size = MutableHashMap.size(this.cacheState.map);\n loop = size > this.capacity;\n while (loop) {\n const key = this.cacheState.keys.remove();\n if (key !== undefined) {\n if (MutableHashMap.has(this.cacheState.map, key.current)) {\n MutableHashMap.remove(this.cacheState.map, key.current);\n size = size - 1;\n loop = size > this.capacity;\n }\n } else {\n loop = false;\n }\n }\n MutableRef.set(this.cacheState.updating, false);\n }\n }\n hasExpired(clock, timeToLiveMillis) {\n return clock.unsafeCurrentTimeMillis() > timeToLiveMillis;\n }\n lookupValueOf(input, deferred) {\n return effect.clockWith(clock => core.suspend(() => {\n const key = input;\n return pipe(this.lookup(input), core.provideContext(this.context), core.exit, core.flatMap(exit => {\n const now = clock.unsafeCurrentTimeMillis();\n const stats = makeEntryStats(now);\n const value = complete(makeMapKey(key), exit, stats, now + Duration.toMillis(Duration.decode(this.timeToLive(exit))));\n MutableHashMap.set(this.cacheState.map, key, value);\n return core.zipRight(Deferred.done(deferred, exit), exit);\n }), core.onInterrupt(() => core.zipRight(Deferred.interrupt(deferred), core.sync(() => {\n MutableHashMap.remove(this.cacheState.map, key);\n }))));\n }));\n }\n}\n/** @internal */\nexport const make = options => {\n const timeToLive = Duration.decode(options.timeToLive);\n return makeWith({\n capacity: options.capacity,\n lookup: options.lookup,\n timeToLive: () => timeToLive\n });\n};\n/** @internal */\nexport const makeWith = options => core.map(fiberRuntime.all([core.context(), core.fiberId]), ([context, fiberId]) => new CacheImpl(options.capacity, context, fiberId, options.lookup, exit => Duration.decode(options.timeToLive(exit))));\n/** @internal */\nexport const unsafeMakeWith = (capacity, lookup, timeToLive) => new CacheImpl(capacity, Context.empty(), none, lookup, exit => Duration.decode(timeToLive(exit)));\n//# sourceMappingURL=cache.js.map","import { dual } from \"./Function.js\";\nimport * as internalCause from \"./internal/cause.js\";\nimport * as console_ from \"./internal/console.js\";\nimport { TagProto } from \"./internal/context.js\";\nimport * as effect from \"./internal/core-effect.js\";\nimport * as core from \"./internal/core.js\";\nimport * as defaultServices from \"./internal/defaultServices.js\";\nimport * as circular from \"./internal/effect/circular.js\";\nimport * as internalExecutionPlan from \"./internal/executionPlan.js\";\nimport * as fiberRuntime from \"./internal/fiberRuntime.js\";\nimport * as layer from \"./internal/layer.js\";\nimport * as option_ from \"./internal/option.js\";\nimport * as query from \"./internal/query.js\";\nimport * as runtime_ from \"./internal/runtime.js\";\nimport * as schedule_ from \"./internal/schedule.js\";\nimport * as internalTracer from \"./internal/tracer.js\";\nimport * as Random from \"./Random.js\";\nimport * as Request from \"./Request.js\";\nimport * as Scheduler from \"./Scheduler.js\";\nimport { isGeneratorFunction } from \"./Utils.js\";\n/**\n * @since 2.0.0\n * @category Symbols\n */\nexport const EffectTypeId = core.EffectTypeId;\n/**\n * Checks if a given value is an `Effect` value.\n *\n * **When to Use**\n *\n * This function can be useful for checking the type of a value before\n * attempting to operate on it as an `Effect` value. For example, you could use\n * `Effect.isEffect` to check the type of a value before using it as an argument\n * to a function that expects an `Effect` value.\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isEffect = core.isEffect;\n/**\n * Returns an effect that caches its result for a specified `Duration`,\n * known as \"timeToLive\" (TTL).\n *\n * **Details**\n *\n * This function is used to cache the result of an effect for a specified amount\n * of time. This means that the first time the effect is evaluated, its result\n * is computed and stored.\n *\n * If the effect is evaluated again within the specified `timeToLive`, the\n * cached result will be used, avoiding recomputation.\n *\n * After the specified duration has passed, the cache expires, and the effect\n * will be recomputed upon the next evaluation.\n *\n * **When to Use**\n *\n * Use this function when you have an effect that involves costly operations or\n * computations, and you want to avoid repeating them within a short time frame.\n *\n * It's ideal for scenarios where the result of an effect doesn't change\n * frequently and can be reused for a specified duration.\n *\n * By caching the result, you can improve efficiency and reduce unnecessary\n * computations, especially in performance-critical applications.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * let i = 1\n * const expensiveTask = Effect.promise(() => {\n * console.log(\"expensive task...\")\n * return new Promise((resolve) => {\n * setTimeout(() => {\n * resolve(`result ${i++}`)\n * }, 100)\n * })\n * })\n *\n * const program = Effect.gen(function* () {\n * const cached = yield* Effect.cachedWithTTL(expensiveTask, \"150 millis\")\n * yield* cached.pipe(Effect.andThen(Console.log))\n * yield* cached.pipe(Effect.andThen(Console.log))\n * yield* Effect.sleep(\"100 millis\")\n * yield* cached.pipe(Effect.andThen(Console.log))\n * })\n *\n * Effect.runFork(program)\n * // Output:\n * // expensive task...\n * // result 1\n * // result 1\n * // expensive task...\n * // result 2\n * ```\n *\n * @see {@link cached} for a similar function that caches the result\n * indefinitely.\n * @see {@link cachedInvalidateWithTTL} for a similar function that includes an\n * additional effect for manually invalidating the cached value.\n *\n * @since 2.0.0\n * @category Caching\n */\nexport const cachedWithTTL = circular.cached;\n/**\n * Caches an effect's result for a specified duration and allows manual\n * invalidation before expiration.\n *\n * **Details**\n *\n * This function behaves similarly to {@link cachedWithTTL} by caching the\n * result of an effect for a specified period of time. However, it introduces an\n * additional feature: it provides an effect that allows you to manually\n * invalidate the cached result before it naturally expires.\n *\n * This gives you more control over the cache, allowing you to refresh the\n * result when needed, even if the original cache has not yet expired.\n *\n * Once the cache is invalidated, the next time the effect is evaluated, the\n * result will be recomputed, and the cache will be refreshed.\n *\n * **When to Use**\n *\n * Use this function when you have an effect whose result needs to be cached for\n * a certain period, but you also want the option to refresh the cache manually\n * before the expiration time.\n *\n * This is useful when you need to ensure that the cached data remains valid for\n * a certain period but still want to invalidate it if the underlying data\n * changes or if you want to force a recomputation.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * let i = 1\n * const expensiveTask = Effect.promise(() => {\n * console.log(\"expensive task...\")\n * return new Promise((resolve) => {\n * setTimeout(() => {\n * resolve(`result ${i++}`)\n * }, 100)\n * })\n * })\n *\n * const program = Effect.gen(function* () {\n * const [cached, invalidate] = yield* Effect.cachedInvalidateWithTTL(\n * expensiveTask,\n * \"1 hour\"\n * )\n * yield* cached.pipe(Effect.andThen(Console.log))\n * yield* cached.pipe(Effect.andThen(Console.log))\n * yield* invalidate\n * yield* cached.pipe(Effect.andThen(Console.log))\n * })\n *\n * Effect.runFork(program)\n * // Output:\n * // expensive task...\n * // result 1\n * // result 1\n * // expensive task...\n * // result 2\n * ```\n *\n * @see {@link cached} for a similar function that caches the result\n * indefinitely.\n * @see {@link cachedWithTTL} for a similar function that caches the result for\n * a specified duration but does not include an effect for manual invalidation.\n *\n * @since 2.0.0\n * @category Caching\n */\nexport const cachedInvalidateWithTTL = circular.cachedInvalidateWithTTL;\n/**\n * Returns an effect that lazily computes a result and caches it for subsequent\n * evaluations.\n *\n * **Details**\n *\n * This function wraps an effect and ensures that its result is computed only\n * once. Once the result is computed, it is cached, meaning that subsequent\n * evaluations of the same effect will return the cached result without\n * re-executing the logic.\n *\n * **When to Use**\n *\n * Use this function when you have an expensive or time-consuming operation that\n * you want to avoid repeating. The first evaluation will compute the result,\n * and all following evaluations will immediately return the cached value,\n * improving performance and reducing unnecessary work.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * let i = 1\n * const expensiveTask = Effect.promise(() => {\n * console.log(\"expensive task...\")\n * return new Promise((resolve) => {\n * setTimeout(() => {\n * resolve(`result ${i++}`)\n * }, 100)\n * })\n * })\n *\n * const program = Effect.gen(function* () {\n * console.log(\"non-cached version:\")\n * yield* expensiveTask.pipe(Effect.andThen(Console.log))\n * yield* expensiveTask.pipe(Effect.andThen(Console.log))\n * console.log(\"cached version:\")\n * const cached = yield* Effect.cached(expensiveTask)\n * yield* cached.pipe(Effect.andThen(Console.log))\n * yield* cached.pipe(Effect.andThen(Console.log))\n * })\n *\n * Effect.runFork(program)\n * // Output:\n * // non-cached version:\n * // expensive task...\n * // result 1\n * // expensive task...\n * // result 2\n * // cached version:\n * // expensive task...\n * // result 3\n * // result 3\n * ```\n *\n * @see {@link cachedWithTTL} for a similar function that includes a\n * time-to-live duration for the cached value.\n * @see {@link cachedInvalidateWithTTL} for a similar function that includes an\n * additional effect for manually invalidating the cached value.\n *\n * @since 2.0.0\n * @category Caching\n */\nexport const cached = effect.memoize;\n/**\n * Returns a memoized version of a function with effects, reusing results for\n * the same inputs.\n *\n * **Details**\n *\n * This function creates a memoized version of a given function that performs an\n * effect. Memoization ensures that once a result is computed for a specific\n * input, it is stored and reused for subsequent calls with the same input,\n * reducing the need to recompute the result.\n *\n * The function can optionally take an `Equivalence` parameter to\n * determine how inputs are compared for caching purposes.\n *\n * **When to Use**\n *\n * Use this function when you have a function that performs an effect and you\n * want to avoid recomputing the result for the same input multiple times.\n *\n * It's ideal for functions that produce deterministic results based on their\n * inputs, and you want to improve performance by caching the output.\n *\n * This is particularly useful in scenarios where the function involves\n * expensive calculations or operations that should be avoided after the first\n * execution with the same parameters.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Random } from \"effect\"\n *\n * const program = Effect.gen(function* () {\n * const randomNumber = (n: number) => Random.nextIntBetween(1, n)\n * console.log(\"non-memoized version:\")\n * console.log(yield* randomNumber(10))\n * console.log(yield* randomNumber(10))\n *\n * console.log(\"memoized version:\")\n * const memoized = yield* Effect.cachedFunction(randomNumber)\n * console.log(yield* memoized(10))\n * console.log(yield* memoized(10))\n * })\n *\n * Effect.runFork(program)\n * // Example Output:\n * // non-memoized version:\n * // 2\n * // 8\n * // memoized version:\n * // 5\n * // 5\n * ```\n *\n * @since 2.0.0\n * @category Caching\n */\nexport const cachedFunction = circular.cachedFunction;\n/**\n * Returns an effect that executes only once, regardless of how many times it's\n * called.\n *\n * **Details**\n *\n * This function ensures that a specific effect is executed only a single time,\n * no matter how many times it is invoked. The result of the effect will be\n * cached, and subsequent calls to the effect will immediately return the cached\n * result without re-executing the original logic.\n *\n * **When to Use**\n *\n * Use this function when you need to perform a task only once, regardless of\n * how many times the effect is triggered. It's particularly useful when you\n * have initialization tasks, logging, or other one-time actions that should not\n * be repeated. This can help optimize performance and avoid redundant actions.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const program = Effect.gen(function* () {\n * const task1 = Console.log(\"task1\")\n * yield* Effect.repeatN(task1, 2)\n * const task2 = yield* Effect.once(Console.log(\"task2\"))\n * yield* Effect.repeatN(task2, 2)\n * })\n *\n * Effect.runFork(program)\n * // Output:\n * // task1\n * // task1\n * // task1\n * // task2\n * ```\n *\n * @since 2.0.0\n * @category Caching\n */\nexport const once = effect.once;\n/**\n * Combines multiple effects into one, returning results based on the input\n * structure.\n *\n * **Details**\n *\n * Use this function when you need to run multiple effects and combine their\n * results into a single output. It supports tuples, iterables, structs, and\n * records, making it flexible for different input types.\n *\n * For instance, if the input is a tuple:\n *\n * ```ts skip-type-checking\n * // ┌─── a tuple of effects\n * // ▼\n * Effect.all([effect1, effect2, ...])\n * ```\n *\n * the effects are executed sequentially, and the result is a new effect\n * containing the results as a tuple. The results in the tuple match the order\n * of the effects passed to `Effect.all`.\n *\n * **Concurrency**\n *\n * You can control the execution order (e.g., sequential vs. concurrent) using\n * the `concurrency` option.\n *\n * **Short-Circuiting Behavior**\n *\n * This function stops execution on the first error it encounters, this is\n * called \"short-circuiting\". If any effect in the collection fails, the\n * remaining effects will not run, and the error will be propagated. To change\n * this behavior, you can use the `mode` option, which allows all effects to run\n * and collect results as `Either` or `Option`.\n *\n * **The `mode` option**\n *\n * The `{ mode: \"either\" }` option changes the behavior of `Effect.all` to\n * ensure all effects run, even if some fail. Instead of stopping on the first\n * failure, this mode collects both successes and failures, returning an array\n * of `Either` instances where each result is either a `Right` (success) or a\n * `Left` (failure).\n *\n * Similarly, the `{ mode: \"validate\" }` option uses `Option` to indicate\n * success or failure. Each effect returns `None` for success and `Some` with\n * the error for failure.\n *\n * **Example** (Combining Effects in Tuples)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const tupleOfEffects = [\n * Effect.succeed(42).pipe(Effect.tap(Console.log)),\n * Effect.succeed(\"Hello\").pipe(Effect.tap(Console.log))\n * ] as const\n *\n * // ┌─── Effect<[number, string], never, never>\n * // ▼\n * const resultsAsTuple = Effect.all(tupleOfEffects)\n *\n * Effect.runPromise(resultsAsTuple).then(console.log)\n * // Output:\n * // 42\n * // Hello\n * // [ 42, 'Hello' ]\n * ```\n *\n * **Example** (Combining Effects in Iterables)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const iterableOfEffects: Iterable> = [1, 2, 3].map(\n * (n) => Effect.succeed(n).pipe(Effect.tap(Console.log))\n * )\n *\n * // ┌─── Effect\n * // ▼\n * const resultsAsArray = Effect.all(iterableOfEffects)\n *\n * Effect.runPromise(resultsAsArray).then(console.log)\n * // Output:\n * // 1\n * // 2\n * // 3\n * // [ 1, 2, 3 ]\n * ```\n *\n * **Example** (Combining Effects in Structs)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const structOfEffects = {\n * a: Effect.succeed(42).pipe(Effect.tap(Console.log)),\n * b: Effect.succeed(\"Hello\").pipe(Effect.tap(Console.log))\n * }\n *\n * // ┌─── Effect<{ a: number; b: string; }, never, never>\n * // ▼\n * const resultsAsStruct = Effect.all(structOfEffects)\n *\n * Effect.runPromise(resultsAsStruct).then(console.log)\n * // Output:\n * // 42\n * // Hello\n * // { a: 42, b: 'Hello' }\n * ```\n *\n * **Example** (Combining Effects in Records)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const recordOfEffects: Record> = {\n * key1: Effect.succeed(1).pipe(Effect.tap(Console.log)),\n * key2: Effect.succeed(2).pipe(Effect.tap(Console.log))\n * }\n *\n * // ┌─── Effect<{ [x: string]: number; }, never, never>\n * // ▼\n * const resultsAsRecord = Effect.all(recordOfEffects)\n *\n * Effect.runPromise(resultsAsRecord).then(console.log)\n * // Output:\n * // 1\n * // 2\n * // { key1: 1, key2: 2 }\n * ```\n *\n * **Example** (Short-Circuiting Behavior)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const program = Effect.all([\n * Effect.succeed(\"Task1\").pipe(Effect.tap(Console.log)),\n * Effect.fail(\"Task2: Oh no!\").pipe(Effect.tap(Console.log)),\n * // Won't execute due to earlier failure\n * Effect.succeed(\"Task3\").pipe(Effect.tap(Console.log))\n * ])\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // Task1\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: { _id: 'Cause', _tag: 'Fail', failure: 'Task2: Oh no!' }\n * // }\n * ```\n *\n * **Example** (Collecting Results with `mode: \"either\"`)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const effects = [\n * Effect.succeed(\"Task1\").pipe(Effect.tap(Console.log)),\n * Effect.fail(\"Task2: Oh no!\").pipe(Effect.tap(Console.log)),\n * Effect.succeed(\"Task3\").pipe(Effect.tap(Console.log))\n * ]\n *\n * const program = Effect.all(effects, { mode: \"either\" })\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // Task1\n * // Task3\n * // {\n * // _id: 'Exit',\n * // _tag: 'Success',\n * // value: [\n * // { _id: 'Either', _tag: 'Right', right: 'Task1' },\n * // { _id: 'Either', _tag: 'Left', left: 'Task2: Oh no!' },\n * // { _id: 'Either', _tag: 'Right', right: 'Task3' }\n * // ]\n * // }\n * ```\n *\n * **Example** (Collecting Results with `mode: \"validate\"`)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const effects = [\n * Effect.succeed(\"Task1\").pipe(Effect.tap(Console.log)),\n * Effect.fail(\"Task2: Oh no!\").pipe(Effect.tap(Console.log)),\n * Effect.succeed(\"Task3\").pipe(Effect.tap(Console.log))\n * ]\n *\n * const program = Effect.all(effects, { mode: \"validate\" })\n *\n * Effect.runPromiseExit(program).then((result) => console.log(\"%o\", result))\n * // Output:\n * // Task1\n * // Task3\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Fail',\n * // failure: [\n * // { _id: 'Option', _tag: 'None' },\n * // { _id: 'Option', _tag: 'Some', value: 'Task2: Oh no!' },\n * // { _id: 'Option', _tag: 'None' }\n * // ]\n * // }\n * // }\n * ```\n *\n * @see {@link forEach} for iterating over elements and applying an effect.\n * @see {@link allWith} for a data-last version of this function.\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const all = fiberRuntime.all;\n/**\n * A data-last version of {@link all}, designed for use in pipelines.\n *\n * **When to Use**\n *\n * This function enables you to combine multiple effects and customize execution\n * options such as concurrency levels. This version is useful in functional\n * pipelines where you first define your data and then apply operations to it.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, pipe } from \"effect\"\n *\n * const task1 = Effect.succeed(1).pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Effect.log(\"task1 done\"))\n * )\n *\n * const task2 = Effect.succeed(\"hello\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Effect.log(\"task2 done\"))\n * )\n *\n * const program = pipe(\n * [task1, task2],\n * // Run both effects concurrently using the concurrent option\n * Effect.allWith({ concurrency: 2 })\n * )\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // timestamp=... level=INFO fiber=#3 message=\"task2 done\"\n * // timestamp=... level=INFO fiber=#2 message=\"task1 done\"\n * // [ 1, 'hello' ]\n * ```\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const allWith = fiberRuntime.allWith;\n/**\n * Evaluates and runs each effect in the iterable, collecting only the\n * successful results while discarding failures.\n *\n * **Details**\n *\n * This function function processes an iterable of effects and runs each one. If\n * an effect is successful, its result is collected; if it fails, the result is\n * discarded. This ensures that only successful outcomes are kept.\n *\n * **Options**\n *\n * The function also allows you to customize how the effects are handled by\n * specifying options such as concurrency, batching, and how finalizers behave.\n * These options provide flexibility in running the effects concurrently or\n * adjusting other execution details.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const tasks = [\n * Effect.succeed(1),\n * Effect.fail(\"Error 1\"),\n * Effect.succeed(2),\n * Effect.fail(\"Error 2\")\n * ]\n *\n * const program = Effect.gen(function*() {\n * const successfulResults = yield* Effect.allSuccesses(tasks)\n * console.log(successfulResults)\n * })\n *\n * Effect.runFork(program)\n * // Output: [1, 2]\n *\n * ```\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const allSuccesses = fiberRuntime.allSuccesses;\n/**\n * Drops elements until the effectful predicate returns `true`.\n *\n * **Details**\n *\n * This function processes a collection of elements and uses an effectful\n * predicate to determine when to stop dropping elements. It drops elements from\n * the beginning of the collection until the predicate returns `true`.\n *\n * The predicate is a function that takes an element and its index in the\n * collection and returns an effect that evaluates to a boolean.\n *\n * Once the predicate returns `true`, the remaining elements of the collection\n * are returned.\n *\n * **Note**: The first element for which the predicate returns `true` is also\n * dropped.\n *\n * **When to Use**\n *\n * This function allows you to conditionally skip over a part of the collection\n * based on some criteria defined in the predicate.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const numbers = [1, 2, 3, 4, 5, 6]\n * const predicate = (n: number, i: number) => Effect.succeed(n > 3)\n *\n * const program = Effect.gen(function*() {\n * const result = yield* Effect.dropUntil(numbers, predicate)\n * console.log(result)\n * })\n *\n * Effect.runFork(program)\n * // Output: [5, 6]\n * ```\n *\n * @see {@link dropWhile} for a similar function that drops elements while the\n * predicate returns `true`.\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const dropUntil = effect.dropUntil;\n/**\n * Drops elements as long as the predicate returns `true`.\n *\n * **Details**\n *\n * This function processes a collection of elements and uses a predicate to\n * decide whether to drop an element.\n *\n * The predicate is a function that takes an element and its index, and it\n * returns an effect that evaluates to a boolean.\n *\n * As long as the predicate returns `true`, elements will continue to be dropped\n * from the collection.\n *\n * Once the predicate returns `false`, the remaining elements are kept.\n *\n * **When to Use**\n *\n * This function allows you to discard elements from the start of a collection\n * based on a condition, and only keep the rest when the condition no longer\n * holds.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const numbers = [1, 2, 3, 4, 5, 6]\n * const predicate = (n: number, i: number) => Effect.succeed(n <= 3)\n *\n * const program = Effect.gen(function*() {\n * const result = yield* Effect.dropWhile(numbers, predicate)\n * console.log(result)\n * })\n *\n * Effect.runFork(program)\n * // Output: [4, 5, 6]\n * ```\n *\n * @see {@link dropUntil} for a similar function that drops elements until the\n * predicate returns `true`.\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const dropWhile = effect.dropWhile;\n/**\n * Takes elements from a collection until the effectful predicate returns\n * `true`.\n *\n * **Details**\n *\n * This function processes a collection of elements and uses an effectful\n * predicate to decide when to stop taking elements. The elements are taken from\n * the beginning of the collection until the predicate returns `true`.\n *\n * The predicate is a function that takes an element and its index in the\n * collection, and returns an effect that resolves to a boolean.\n *\n * Once the predicate returns `true`, the remaining elements of the collection\n * are discarded, and the function stops taking more elements.\n *\n * **Note**: The first element for which the predicate returns `true` is also\n * included in the result.\n *\n * **When to Use**\n *\n * Use this function when you want to conditionally take elements from a\n * collection based on a dynamic condition. For example, you may want to collect\n * numbers from a list until a certain threshold is reached, or gather items\n * until a specific condition is met.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const numbers = [1, 2, 3, 4, 5, 6]\n * const predicate = (n: number, i: number) => Effect.succeed(n > 3)\n *\n * const program = Effect.gen(function*() {\n * const result = yield* Effect.takeUntil(numbers, predicate)\n * console.log(result)\n * })\n *\n * Effect.runFork(program)\n * // Output: [ 1, 2, 3, 4 ]\n * ```\n *\n * @see {@link takeWhile} for a similar function that takes elements while the\n * predicate returns `true`.\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const takeUntil = effect.takeUntil;\n/**\n * Takes elements as long as the predicate returns `true`.\n *\n * **Details**\n *\n * This function processes a collection of elements and uses a predicate to\n * decide whether to take an element.\n *\n * The predicate is a function that takes an element and its index, and it\n * returns an effect that evaluates to a boolean.\n *\n * As long as the predicate returns `true`, elements will continue to be taken\n * from the collection.\n *\n * Once the predicate returns `false`, the remaining elements are discarded.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const numbers = [1, 2, 3, 4, 5, 6]\n * const predicate = (n: number, i: number) => Effect.succeed(n <= 3)\n *\n * const program = Effect.gen(function*() {\n * const result = yield* Effect.takeWhile(numbers, predicate)\n * console.log(result)\n * })\n *\n * Effect.runFork(program)\n * // Output: [1, 2, 3]\n * ```\n *\n * @see {@link takeUntil} for a similar function that takes elements until the predicate returns `true`.\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const takeWhile = effect.takeWhile;\n/**\n * Determines whether all elements of the iterable satisfy the effectful\n * predicate.\n *\n * **Details**\n *\n * This function checks whether every element in a given collection (an\n * iterable) satisfies a condition defined by an effectful predicate.\n *\n * The predicate is a function that takes an element and its index, and it\n * returns an effect that evaluates to a boolean.\n *\n * The function will process each element and return `true` if all elements\n * satisfy the predicate; otherwise, it returns `false`.\n *\n * **When to Use**\n *\n * This function is useful when you need to verify that all items in a\n * collection meet certain criteria, even when the evaluation of each item\n * involves effects, such as asynchronous checks or complex computations.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const numbers = [2, 4, 6, 8]\n * const predicate = (n: number, i: number) => Effect.succeed(n % 2 === 0)\n *\n * const program = Effect.gen(function*() {\n * const allEven = yield* Effect.every(numbers, predicate)\n * console.log(allEven)\n * })\n *\n * Effect.runFork(program)\n * // Output: true\n * ```\n *\n * @see {@link exists} for a similar function that returns a boolean indicating\n * whether **any** element satisfies the predicate.\n *\n * @since 2.0.0\n * @category Condition Checking\n */\nexport const every = effect.every;\n/**\n * Determines whether any element of the iterable satisfies the effectual\n * predicate.\n *\n * **Details**\n *\n * This function checks whether any element in a given collection (an iterable)\n * satisfies a condition defined by an effectful predicate.\n *\n * The predicate is a function that takes an element and its index, and it\n * returns an effect that evaluates to a boolean.\n *\n * The function will process each element, and if any element satisfies the\n * predicate (returns `true`), the function will immediately return `true`.\n *\n * If none of the elements satisfy the condition, it will return `false`.\n *\n * **When to Use**\n *\n * This function allows you to quickly check for a condition in a collection\n * without having to manually iterate over it.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const numbers = [1, 2, 3, 4]\n * const predicate = (n: number, i: number) => Effect.succeed(n > 2)\n *\n * const program = Effect.gen(function*() {\n * const hasLargeNumber = yield* Effect.exists(numbers, predicate)\n * console.log(hasLargeNumber)\n * })\n *\n * Effect.runFork(program)\n * // Output: true\n * ```\n *\n * @see {@link every} for a similar function that checks if **all** elements\n * satisfy the predicate.\n *\n * @since 2.0.0\n * @category Condition Checking\n */\nexport const exists = fiberRuntime.exists;\n/**\n * Filters an iterable using the specified effectful predicate.\n *\n * **Details**\n *\n * This function filters a collection (an iterable) by applying an effectful\n * predicate.\n *\n * The predicate is a function that takes an element and its index, and it\n * returns an effect that evaluates to a boolean.\n *\n * The function processes each element in the collection and keeps only those\n * that satisfy the condition defined by the predicate.\n *\n * **Options**\n *\n * You can also adjust the behavior with options such as concurrency, batching,\n * or whether to negate the condition.\n *\n * **When to Use**\n *\n * This function allows you to selectively keep or remove elements based on a\n * condition that may involve asynchronous or side-effect-causing operations.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const numbers = [1, 2, 3, 4, 5]\n * const predicate = (n: number, i: number) => Effect.succeed(n % 2 === 0)\n *\n * const program = Effect.gen(function*() {\n * const result = yield* Effect.filter(numbers, predicate)\n * console.log(result)\n * })\n *\n * Effect.runFork(program)\n * // Output: [2, 4]\n * ```\n *\n * @since 2.0.0\n * @category Filtering\n */\nexport const filter = fiberRuntime.filter;\n/**\n * Filters and maps elements sequentially in one operation.\n *\n * This function processes each element one by one. It applies a function that\n * returns an `Option` to each element. If the function returns `Some`, the\n * element is kept; if it returns `None`, the element is removed. The operation\n * is done sequentially for each element.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect, Option } from \"effect\"\n *\n * const task = (n: number) =>\n * Effect.succeed(n).pipe(\n * Effect.delay(1000 - (n * 100)),\n * Effect.tap(Console.log(`task${n} done`))\n * )\n *\n * const program = Effect.filterMap(\n * [task(1), task(2), task(3), task(4)],\n * (n) => n % 2 === 0 ? Option.some(n) : Option.none()\n * )\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // task1 done\n * // task2 done\n * // task3 done\n * // task4 done\n * // [ 2, 4 ]\n * ```\n *\n * @since 2.0.0\n * @category Filtering\n */\nexport const filterMap = effect.filterMap;\n/**\n * Returns the first element that satisfies the effectful predicate.\n *\n * **Details**\n *\n * This function processes a collection of elements and applies an effectful\n * predicate to each element.\n *\n * The predicate is a function that takes an element and its index in the\n * collection, and it returns an effect that evaluates to a boolean.\n *\n * The function stops as soon as it finds the first element for which the\n * predicate returns `true` and returns that element wrapped in an `Option`.\n *\n * If no element satisfies the predicate, the result will be `None`.\n *\n * **When to Use**\n *\n * This function allows you to efficiently find an element that meets a specific\n * condition, even when the evaluation involves effects like asynchronous\n * operations or side effects.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const numbers = [1, 2, 3, 4, 5]\n * const predicate = (n: number, i: number) => Effect.succeed(n > 3)\n *\n * const program = Effect.gen(function*() {\n * const result = yield* Effect.findFirst(numbers, predicate)\n * console.log(result)\n * })\n *\n * Effect.runFork(program)\n * // Output: { _id: 'Option', _tag: 'Some', value: 4 }\n * ```\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const findFirst = effect.findFirst;\n/**\n * Executes an effectful operation for each element in an `Iterable`.\n *\n * **Details**\n *\n * This function applies a provided operation to each element in the iterable,\n * producing a new effect that returns an array of results.\n *\n * If any effect fails, the iteration stops immediately (short-circuiting), and\n * the error is propagated.\n *\n * **Concurrency**\n *\n * The `concurrency` option controls how many operations are performed\n * concurrently. By default, the operations are performed sequentially.\n *\n * **Discarding Results**\n *\n * If the `discard` option is set to `true`, the intermediate results are not\n * collected, and the final result of the operation is `void`.\n *\n * **Example** (Applying Effects to Iterable Elements)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const result = Effect.forEach([1, 2, 3, 4, 5], (n, index) =>\n * Console.log(`Currently at index ${index}`).pipe(Effect.as(n * 2))\n * )\n *\n * Effect.runPromise(result).then(console.log)\n * // Output:\n * // Currently at index 0\n * // Currently at index 1\n * // Currently at index 2\n * // Currently at index 3\n * // Currently at index 4\n * // [ 2, 4, 6, 8, 10 ]\n * ```\n *\n * **Example** (Discarding Results)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // Apply effects but discard the results\n * const result = Effect.forEach(\n * [1, 2, 3, 4, 5],\n * (n, index) =>\n * Console.log(`Currently at index ${index}`).pipe(Effect.as(n * 2)),\n * { discard: true }\n * )\n *\n * Effect.runPromise(result).then(console.log)\n * // Output:\n * // Currently at index 0\n * // Currently at index 1\n * // Currently at index 2\n * // Currently at index 3\n * // Currently at index 4\n * // undefined\n * ```\n *\n * @see {@link all} for combining multiple effects into one.\n *\n * @since 2.0.0\n * @category Looping\n */\nexport const forEach = fiberRuntime.forEach;\n/**\n * Returns the first element of the iterable if the collection is non-empty, or\n * fails with the error `NoSuchElementException` if the collection is empty.\n *\n * **When to Use**\n *\n * This function is useful when you need to retrieve the first item from a\n * collection and want to handle the case where the collection might be empty\n * without causing an unhandled exception.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // Simulate an async operation\n * const fetchNumbers = Effect.succeed([1, 2, 3]).pipe(Effect.delay(\"100 millis\"))\n *\n * const program = Effect.gen(function*() {\n * const firstElement = yield* Effect.head(fetchNumbers)\n * console.log(firstElement)\n * })\n *\n * Effect.runFork(program)\n * // Output: 1\n * ```\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const head = effect.head;\n/**\n * Merges an `Iterable>` to a single effect.\n *\n * **Details**\n *\n * This function takes an iterable of effects and combines them into a single\n * effect. It does this by iterating over each effect in the collection and\n * applying a function that accumulates results into a \"zero\" value, which\n * starts with an initial value and is updated with each effect's success.\n *\n * The provided function `f` is called for each element in the iterable,\n * allowing you to specify how to combine the results.\n *\n * **Options**\n *\n * The function also allows you to customize how the effects are handled by\n * specifying options such as concurrency, batching, and how finalizers behave.\n * These options provide flexibility in running the effects concurrently or\n * adjusting other execution details.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const numbers = [Effect.succeed(1), Effect.succeed(2), Effect.succeed(3)]\n * const add = (sum: number, value: number, i: number) => sum + value\n * const zero = 0\n *\n * const program = Effect.gen(function*() {\n * const total = yield* Effect.mergeAll(numbers, zero, add)\n * console.log(total)\n * })\n *\n * Effect.runFork(program)\n * // Output: 6\n * ```\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const mergeAll = fiberRuntime.mergeAll;\n/**\n * Processes an iterable and applies an effectful function to each element,\n * categorizing the results into successes and failures.\n *\n * **Details**\n *\n * This function processes each element in the provided iterable by applying an\n * effectful function to it. The results are then categorized into two separate\n * lists: one for failures and another for successes. This separation allows you\n * to handle the two categories differently. Failures are collected in a list\n * without interrupting the processing of the remaining elements, so the\n * operation continues even if some elements fail. This is particularly useful\n * when you need to handle both successful and failed results separately,\n * without stopping the entire process on encountering a failure.\n *\n * **When to Use**\n *\n * Use this function when you want to process a collection of items and handle\n * errors or failures without interrupting the processing of other items. It's\n * useful when you need to distinguish between successful and failed results and\n * process them separately, for example, when logging errors while continuing to\n * work with valid data. The function ensures that failures are captured, while\n * successes are processed normally.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // ┌─── Effect<[string[], number[]], never, never>\n * // ▼\n * const program = Effect.partition([0, 1, 2, 3, 4], (n) => {\n * if (n % 2 === 0) {\n * return Effect.succeed(n)\n * } else {\n * return Effect.fail(`${n} is not even`)\n * }\n * })\n *\n * Effect.runPromise(program).then(console.log, console.error)\n * // Output:\n * // [ [ '1 is not even', '3 is not even' ], [ 0, 2, 4 ] ]\n * ```\n *\n * @see {@link validateAll} for a function that either collects all failures or all successes.\n * @see {@link validateFirst} for a function that stops at the first success.\n *\n * @since 2.0.0\n * @category Error Accumulation\n */\nexport const partition = fiberRuntime.partition;\n/**\n * Reduces an `Iterable` using an effectual function `f`, working\n * sequentially from left to right.\n *\n * **Details**\n *\n * This function takes an iterable and applies a function `f` to each element in\n * the iterable. The function works sequentially, starting with an initial value\n * `zero` and then combining it with each element in the collection. The\n * provided function `f` is called for each element in the iterable, allowing\n * you to accumulate a result based on the current value and the element being\n * processed.\n *\n * **When to Use**\n *\n * The function is often used for operations like summing a collection of\n * numbers or combining results from multiple tasks. It ensures that operations\n * are performed one after the other, maintaining the order of the elements.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const processOrder = (id: number) =>\n * Effect.succeed({ id, price: 100 * id })\n * .pipe(Effect.tap(() => Console.log(`Order ${id} processed`)), Effect.delay(500 - (id * 100)))\n *\n * const program = Effect.reduce(\n * [1, 2, 3, 4],\n * 0,\n * (acc, id, i) =>\n * processOrder(id)\n * .pipe(Effect.map((order) => acc + order.price))\n * )\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // Order 1 processed\n * // Order 2 processed\n * // Order 3 processed\n * // Order 4 processed\n * // 1000\n * ```\n *\n * @see {@link reduceWhile} for a similar function that stops the process based on a predicate.\n * @see {@link reduceRight} for a similar function that works from right to left.\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const reduce = effect.reduce;\n/**\n * Reduces an `Iterable` using an effectual function `body`, working\n * sequentially from left to right, stopping the process early when the\n * predicate `while` is not satisfied.\n *\n * **Details**\n *\n * This function processes a collection of elements, applying a function `body`\n * to reduce them to a single value, starting from the first element. It checks\n * the value of the accumulator against a predicate (`while`). If at any point\n * the predicate returns `false`, the reduction stops, and the accumulated\n * result is returned.\n *\n * **When to Use**\n *\n * Use this function when you need to reduce a collection of elements, but only\n * continue the process as long as a certain condition holds true. For example,\n * if you want to sum values in a list but stop as soon as the sum exceeds a\n * certain threshold, you can use this function.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const processOrder = (id: number) =>\n * Effect.succeed({ id, price: 100 * id })\n * .pipe(Effect.tap(() => Console.log(`Order ${id} processed`)), Effect.delay(500 - (id * 100)))\n *\n * const program = Effect.reduceWhile(\n * [1, 2, 3, 4],\n * 0,\n * {\n * body: (acc, id, i) =>\n * processOrder(id)\n * .pipe(Effect.map((order) => acc + order.price)),\n * while: (acc) => acc < 500\n * }\n * )\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // Order 1 processed\n * // Order 2 processed\n * // Order 3 processed\n * // 600\n * ```\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const reduceWhile = effect.reduceWhile;\n/**\n * Reduces an `Iterable` using an effectual function `f`, working\n * sequentially from right to left.\n *\n * **Details**\n *\n * This function takes an iterable and applies a function `f` to each element in\n * the iterable. The function works sequentially, starting with an initial value\n * `zero` and then combining it with each element in the collection. The\n * provided function `f` is called for each element in the iterable, allowing\n * you to accumulate a result based on the current value and the element being\n * processed.\n *\n * **When to Use**\n *\n * The function is often used for operations like summing a collection of\n * numbers or combining results from multiple tasks. It ensures that operations\n * are performed one after the other, maintaining the order of the elements.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const processOrder = (id: number) =>\n * Effect.succeed({ id, price: 100 * id })\n * .pipe(Effect.tap(() => Console.log(`Order ${id} processed`)), Effect.delay(500 - (id * 100)))\n *\n * const program = Effect.reduceRight(\n * [1, 2, 3, 4],\n * 0,\n * (id, acc, i) =>\n * processOrder(id)\n * .pipe(Effect.map((order) => acc + order.price))\n * )\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // Order 4 processed\n * // Order 3 processed\n * // Order 2 processed\n * // Order 1 processed\n * // 1000\n * ```\n *\n * @see {@link reduce} for a similar function that works from left to right.\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const reduceRight = effect.reduceRight;\n/**\n * Reduces an `Iterable>` to a single effect.\n *\n * **Details**\n *\n * This function processes a collection of effects and combines them into one\n * single effect. It starts with an initial effect (`zero`) and applies a\n * function `f` to each element in the collection.\n *\n * **Options**\n *\n * The function also allows you to customize how the effects are handled by\n * specifying options such as concurrency, batching, and how finalizers behave.\n * These options provide flexibility in running the effects concurrently or\n * adjusting other execution details.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const processOrder = (id: number) =>\n * Effect.succeed({ id, price: 100 * id })\n * .pipe(Effect.tap(() => Console.log(`Order ${id} processed`)), Effect.delay(500 - (id * 100)))\n *\n * const program = Effect.reduceEffect(\n * [processOrder(1), processOrder(2), processOrder(3), processOrder(4)],\n * Effect.succeed(0),\n * (acc, order, i) => acc + order.price\n * )\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // Order 1 processed\n * // Order 2 processed\n * // Order 3 processed\n * // Order 4 processed\n * // 1000\n * ```\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const reduceEffect = fiberRuntime.reduceEffect;\n/**\n * Replicates the given effect `n` times.\n *\n * **Details**\n *\n * This function takes an effect and replicates it a specified number of times\n * (`n`). The result is an array of `n` effects, each of which is identical to\n * the original effect.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const task = Effect.succeed(\"Hello, World!\").pipe(\n * Effect.tap(Console.log)\n * )\n *\n * const program = Effect.gen(function*() {\n * // Replicate the task 3 times\n * const tasks = Effect.replicate(task, 3)\n * for (const t of tasks) {\n * // Run each task\n * yield* t\n * }\n * })\n *\n * Effect.runFork(program)\n * // Output:\n * // Hello, World!\n * // Hello, World!\n * // Hello, World!\n * ```\n *\n * @since 2.0.0\n */\nexport const replicate = fiberRuntime.replicate;\n/**\n * Performs this effect the specified number of times and collects the results.\n *\n * **Details**\n *\n * This function repeats an effect multiple times and collects the results into\n * an array. You specify how many times to execute the effect, and it runs that\n * many times, either in sequence or concurrently depending on the provided\n * options.\n *\n * **Options**\n *\n * If the `discard` option is set to `true`, the intermediate results are not\n * collected, and the final result of the operation is `void`.\n *\n * The function also allows you to customize how the effects are handled by\n * specifying options such as concurrency, batching, and how finalizers behave.\n * These options provide flexibility in running the effects concurrently or\n * adjusting other execution details.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * let counter = 0\n *\n * const task = Effect.sync(() => ++counter).pipe(\n * Effect.tap(() => Console.log(`Task completed`))\n * )\n *\n * const program = Effect.gen(function*() {\n * // Replicate the task 3 times and collect the results\n * const results = yield* Effect.replicateEffect(task, 3)\n * yield* Console.log(`Results: ${results.join(\", \")}`)\n * })\n *\n * Effect.runFork(program)\n * // Output:\n * // Task completed\n * // Task completed\n * // Task completed\n * // Results: 1, 2, 3\n * ```\n *\n * @since 2.0.0\n * @category Collecting\n */\nexport const replicateEffect = fiberRuntime.replicateEffect;\n/**\n * Applies an effectful operation to each element in a collection while\n * collecting both successes and failures.\n *\n * **Details**\n *\n * This function allows you to apply an effectful operation to every item in a\n * collection.\n *\n * Unlike {@link forEach}, which would stop at the first error, this function\n * continues processing all elements, accumulating both successes and failures.\n *\n * **When to Use**\n *\n * Use this function when you want to process every item in a collection, even\n * if some items fail. This is particularly useful when you need to perform\n * operations on all elements without halting due to an error.\n *\n * Keep in mind that if there are any failures, **all successes will be lost**,\n * so this function is not suitable when you need to keep the successful results\n * in case of errors.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.validateAll([1, 2, 3, 4, 5], (n) => {\n * if (n < 4) {\n * return Console.log(`item ${n}`).pipe(Effect.as(n))\n * } else {\n * return Effect.fail(`${n} is not less that 4`)\n * }\n * })\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // item 1\n * // item 2\n * // item 3\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Fail',\n * // failure: [ '4 is not less that 4', '5 is not less that 4' ]\n * // }\n * // }\n * ```\n *\n * @see {@link forEach} for a similar function that stops at the first error.\n * @see {@link partition} when you need to separate successes and failures\n * instead of losing successes with errors.\n *\n * @since 2.0.0\n * @category Error Accumulation\n */\nexport const validateAll = fiberRuntime.validateAll;\n/**\n * This function is similar to {@link validateAll} but with a key difference: it\n * returns the first successful result or all errors if none of the operations\n * succeed.\n *\n * **Details**\n *\n * This function processes a collection of elements and applies an effectful\n * operation to each. Unlike {@link validateAll}, which accumulates both\n * successes and failures, `Effect.validateFirst` stops and returns the first\n * success it encounters. If no success occurs, it returns all accumulated\n * errors. This can be useful when you are interested in the first successful\n * result and want to avoid processing further once a valid result is found.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.validateFirst([1, 2, 3, 4, 5], (n) => {\n * if (n < 4) {\n * return Effect.fail(`${n} is not less that 4`)\n * } else {\n * return Console.log(`item ${n}`).pipe(Effect.as(n))\n * }\n * })\n *\n * Effect.runPromise(program).then(console.log, console.error)\n * // Output:\n * // item 4\n * // 4\n * ```\n *\n * @see {@link validateAll} for a similar function that accumulates all results.\n * @see {@link firstSuccessOf} for a similar function that processes multiple\n * effects and returns the first successful one or the last error.\n *\n * @since 2.0.0\n * @category Error Accumulation\n */\nexport const validateFirst = fiberRuntime.validateFirst;\n/**\n * Creates an `Effect` from a callback-based asynchronous function.\n *\n * **Details**\n *\n * The `resume` function:\n * - Must be called exactly once. Any additional calls will be ignored.\n * - Can return an optional `Effect` that will be run if the `Fiber` executing\n * this `Effect` is interrupted. This can be useful in scenarios where you\n * need to handle resource cleanup if the operation is interrupted.\n * - Can receive an `AbortSignal` to handle interruption if needed.\n *\n * The `FiberId` of the fiber that may complete the async callback may also be\n * specified using the `blockingOn` argument. This is called the \"blocking\n * fiber\" because it suspends the fiber executing the `async` effect (i.e.\n * semantically blocks the fiber from making progress). Specifying this fiber id\n * in cases where it is known will improve diagnostics, but not affect the\n * behavior of the returned effect.\n *\n * **When to Use**\n *\n * Use `Effect.async` when dealing with APIs that use callback-style instead of\n * `async/await` or `Promise`.\n *\n * **Example** (Wrapping a Callback API)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import * as NodeFS from \"node:fs\"\n *\n * const readFile = (filename: string) =>\n * Effect.async((resume) => {\n * NodeFS.readFile(filename, (error, data) => {\n * if (error) {\n * // Resume with a failed Effect if an error occurs\n * resume(Effect.fail(error))\n * } else {\n * // Resume with a succeeded Effect if successful\n * resume(Effect.succeed(data))\n * }\n * })\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const program = readFile(\"example.txt\")\n * ```\n *\n * **Example** (Handling Interruption with Cleanup)\n *\n * ```ts\n * import { Effect, Fiber } from \"effect\"\n * import * as NodeFS from \"node:fs\"\n *\n * // Simulates a long-running operation to write to a file\n * const writeFileWithCleanup = (filename: string, data: string) =>\n * Effect.async((resume) => {\n * const writeStream = NodeFS.createWriteStream(filename)\n *\n * // Start writing data to the file\n * writeStream.write(data)\n *\n * // When the stream is finished, resume with success\n * writeStream.on(\"finish\", () => resume(Effect.void))\n *\n * // In case of an error during writing, resume with failure\n * writeStream.on(\"error\", (err) => resume(Effect.fail(err)))\n *\n * // Handle interruption by returning a cleanup effect\n * return Effect.sync(() => {\n * console.log(`Cleaning up ${filename}`)\n * NodeFS.unlinkSync(filename)\n * })\n * })\n *\n * const program = Effect.gen(function* () {\n * const fiber = yield* Effect.fork(\n * writeFileWithCleanup(\"example.txt\", \"Some long data...\")\n * )\n * // Simulate interrupting the fiber after 1 second\n * yield* Effect.sleep(\"1 second\")\n * yield* Fiber.interrupt(fiber) // This will trigger the cleanup\n * })\n *\n * // Run the program\n * Effect.runPromise(program)\n * // Output:\n * // Cleaning up example.txt\n * ```\n *\n * **Example** (Handling Interruption with AbortSignal)\n *\n * ```ts\n * import { Effect, Fiber } from \"effect\"\n *\n * // A task that supports interruption using AbortSignal\n * const interruptibleTask = Effect.async((resume, signal) => {\n * // Handle interruption\n * signal.addEventListener(\"abort\", () => {\n * console.log(\"Abort signal received\")\n * clearTimeout(timeoutId)\n * })\n *\n * // Simulate a long-running task\n * const timeoutId = setTimeout(() => {\n * console.log(\"Operation completed\")\n * resume(Effect.void)\n * }, 2000)\n * })\n *\n * const program = Effect.gen(function* () {\n * const fiber = yield* Effect.fork(interruptibleTask)\n * // Simulate interrupting the fiber after 1 second\n * yield* Effect.sleep(\"1 second\")\n * yield* Fiber.interrupt(fiber)\n * })\n *\n * // Run the program\n * Effect.runPromise(program)\n * // Output:\n * // Abort signal received\n * ```\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const async = core.async;\n/**\n * A variant of {@link async} where the registration function may return an `Effect`.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const asyncEffect = runtime_.asyncEffect;\n/**\n * Low level constructor that enables for custom stack tracing cutpoints.\n *\n * It is meant to be called with a bag of instructions that become available in\n * the \"this\" of the effect.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const throwingFunction = () => { throw new Error() }\n * const blowUp = Effect.custom(throwingFunction, function() {\n * return Effect.succeed(this.effect_instruction_i0())\n * })\n * ```\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const custom = core.custom;\n/**\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const withFiberRuntime = core.withFiberRuntime;\n/**\n * Creates an `Effect` that represents a recoverable error.\n *\n * **When to Use**\n *\n * Use this function to explicitly signal an error in an `Effect`. The error\n * will keep propagating unless it is handled. You can handle the error with\n * functions like {@link catchAll} or {@link catchTag}.\n *\n * **Example** (Creating a Failed Effect)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const failure = Effect.fail(\n * new Error(\"Operation failed due to network error\")\n * )\n * ```\n *\n * @see {@link succeed} to create an effect that represents a successful value.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const fail = core.fail;\n/**\n * Creates an `Effect` that fails with the specified error, evaluated lazily.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const failSync = core.failSync;\n/**\n * Creates an `Effect` that fails with the specified `Cause`.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const failCause = core.failCause;\n/**\n * Creates an `Effect` that fails with the specified `Cause`, evaluated lazily.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const failCauseSync = core.failCauseSync;\n/**\n * Creates an effect that terminates a fiber with a specified error.\n *\n * **Details**\n *\n * This function is used to signal a defect, which represents a critical and\n * unexpected error in the code. When invoked, it produces an effect that does\n * not handle the error and instead terminates the fiber.\n *\n * The error channel of the resulting effect is of type `never`, indicating that\n * it cannot recover from this failure.\n *\n * **When to Use**\n *\n * Use this function when encountering unexpected conditions in your code that\n * should not be handled as regular errors but instead represent unrecoverable\n * defects.\n *\n * **Example** (Terminating on Division by Zero with a Specified Error)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const divide = (a: number, b: number) =>\n * b === 0\n * ? Effect.die(new Error(\"Cannot divide by zero\"))\n * : Effect.succeed(a / b)\n *\n * // ┌─── Effect\n * // ▼\n * const program = divide(1, 0)\n *\n * Effect.runPromise(program).catch(console.error)\n * // Output:\n * // (FiberFailure) Error: Cannot divide by zero\n * // ...stack trace...\n * ```\n *\n * @see {@link dieSync} for a variant that throws a specified error, evaluated\n * lazily.\n * @see {@link dieMessage} for a variant that throws a `RuntimeException` with a\n * message.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const die = core.die;\n/**\n * Creates an effect that terminates a fiber with a `RuntimeException`\n * containing the specified message.\n *\n * **Details**\n *\n * This function is used to signal a defect, representing a critical and\n * unexpected error in the code. When invoked, it produces an effect that\n * terminates the fiber with a `RuntimeException` carrying the given message.\n *\n * The resulting effect has an error channel of type `never`, indicating it does\n * not handle or recover from the error.\n *\n * **When to Use**\n *\n * Use this function when you want to terminate a fiber due to an unrecoverable\n * defect and include a clear explanation in the message.\n *\n * **Example** (Terminating on Division by Zero with a Specified Message)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const divide = (a: number, b: number) =>\n * b === 0\n * ? Effect.dieMessage(\"Cannot divide by zero\")\n * : Effect.succeed(a / b)\n *\n * // ┌─── Effect\n * // ▼\n * const program = divide(1, 0)\n *\n * Effect.runPromise(program).catch(console.error)\n * // Output:\n * // (FiberFailure) RuntimeException: Cannot divide by zero\n * // ...stack trace...\n * ```\n *\n * @see {@link die} for a variant that throws a specified error.\n * @see {@link dieSync} for a variant that throws a specified error, evaluated\n * lazily.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const dieMessage = core.dieMessage;\n/**\n * Creates an effect that dies with the specified error, evaluated lazily.\n *\n * **Details**\n *\n * This function allows you to create an effect that will terminate with a fatal error.\n * The error is provided as a lazy argument, meaning it will only be evaluated when the effect runs.\n *\n * @see {@link die} if you don't need to evaluate the error lazily.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const dieSync = core.dieSync;\n/**\n * Provides a way to write effectful code using generator functions, simplifying\n * control flow and error handling.\n *\n * **When to Use**\n *\n * `Effect.gen` allows you to write code that looks and behaves like synchronous\n * code, but it can handle asynchronous tasks, errors, and complex control flow\n * (like loops and conditions). It helps make asynchronous code more readable\n * and easier to manage.\n *\n * The generator functions work similarly to `async/await` but with more\n * explicit control over the execution of effects. You can `yield*` values from\n * effects and return the final result at the end.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const addServiceCharge = (amount: number) => amount + 1\n *\n * const applyDiscount = (\n * total: number,\n * discountRate: number\n * ): Effect.Effect =>\n * discountRate === 0\n * ? Effect.fail(new Error(\"Discount rate cannot be zero\"))\n * : Effect.succeed(total - (total * discountRate) / 100)\n *\n * const fetchTransactionAmount = Effect.promise(() => Promise.resolve(100))\n *\n * const fetchDiscountRate = Effect.promise(() => Promise.resolve(5))\n *\n * export const program = Effect.gen(function* () {\n * const transactionAmount = yield* fetchTransactionAmount\n * const discountRate = yield* fetchDiscountRate\n * const discountedAmount = yield* applyDiscount(\n * transactionAmount,\n * discountRate\n * )\n * const finalAmount = addServiceCharge(discountedAmount)\n * return `Final amount to charge: ${finalAmount}`\n * })\n * ```\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const gen = core.gen;\n/**\n * An effect that that runs indefinitely and never produces any result. The\n * moral equivalent of `while(true) {}`, only without the wasted CPU cycles.\n *\n * **When to Use**\n *\n * It could be useful for long-running background tasks or to simulate waiting\n * behavior without actually consuming resources. This effect is ideal for cases\n * where you want to keep the program alive or in a certain state without\n * performing any active work.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const never = core.never;\n/**\n * Ensures the `Option` is `None`, returning `void`. Otherwise, raises a\n * `NoSuchElementException`.\n *\n * **Details**\n *\n * This function checks if the provided `Option` is `None`. If it is, it returns\n * an effect that produces no result (i.e., `void`). If the `Option` is not\n * `None` (i.e., it contains a value), the function will raise a\n * `NoSuchElementException` error.\n *\n * **When to Use**\n *\n * This is useful when you want to ensure that a certain value is absent (i.e.,\n * `None`) before continuing execution, and to handle cases where the value is\n * unexpectedly present.\n *\n * @since 2.0.0\n */\nexport const none = effect.none;\n/**\n * Creates an `Effect` that represents an asynchronous computation guaranteed to\n * succeed.\n *\n * **Details**\n *\n * The provided function (`thunk`) returns a `Promise` that should never reject; if it does, the error\n * will be treated as a \"defect\".\n *\n * This defect is not a standard error but indicates a flaw in the logic that\n * was expected to be error-free. You can think of it similar to an unexpected\n * crash in the program, which can be further managed or logged using tools like\n * {@link catchAllDefect}.\n *\n * **Interruptions**\n *\n * An optional `AbortSignal` can be provided to allow for interruption of the\n * wrapped `Promise` API.\n *\n * **When to Use**\n *\n * Use this function when you are sure the operation will not reject.\n *\n * **Example** (Delayed Message)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const delay = (message: string) =>\n * Effect.promise(\n * () =>\n * new Promise((resolve) => {\n * setTimeout(() => {\n * resolve(message)\n * }, 2000)\n * })\n * )\n *\n * // ┌─── Effect\n * // ▼\n * const program = delay(\"Async operation completed successfully!\")\n * ```\n *\n * @see {@link tryPromise} for a version that can handle failures.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const promise = effect.promise;\n/**\n * Creates an `Effect` that always succeeds with a given value.\n *\n * **When to Use**\n *\n * Use this function when you need an effect that completes successfully with a\n * specific value without any errors or external dependencies.\n *\n * **Example** (Creating a Successful Effect)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // Creating an effect that represents a successful scenario\n * //\n * // ┌─── Effect\n * // ▼\n * const success = Effect.succeed(42)\n * ```\n *\n * @see {@link fail} to create an effect that represents a failure.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const succeed = core.succeed;\n/**\n * Returns an effect which succeeds with `None`.\n *\n * **When to Use**\n *\n * Use this function when you need to represent the absence of a value in your\n * code, especially when working with optional data. This can be helpful when\n * you want to indicate that no result is available without throwing an error or\n * performing additional logic.\n *\n * @see {@link succeedSome} to create an effect that succeeds with a `Some` value.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const succeedNone = effect.succeedNone;\n/**\n * Returns an effect which succeeds with the value wrapped in a `Some`.\n *\n * @see {@link succeedNone} for a similar function that returns `None` when the value is absent.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const succeedSome = effect.succeedSome;\n/**\n * Delays the creation of an `Effect` until it is actually needed.\n *\n * **Details**\n *\n * The `Effect.suspend` function takes a thunk that represents the effect and\n * wraps it in a suspended effect. This means the effect will not be created\n * until it is explicitly needed, which is helpful in various scenarios:\n * - **Lazy Evaluation**: Helps optimize performance by deferring computations,\n * especially when the effect might not be needed, or when its computation is\n * expensive. This also ensures that any side effects or scoped captures are\n * re-executed on each invocation.\n * - **Handling Circular Dependencies**: Useful in managing circular\n * dependencies, such as recursive functions that need to avoid eager\n * evaluation to prevent stack overflow.\n * - **Unifying Return Types**: Can help TypeScript unify return types in\n * situations where multiple branches of logic return different effects,\n * simplifying type inference.\n *\n * **When to Use**\n *\n * Use this function when you need to defer the evaluation of an effect until it\n * is required. This is particularly useful for optimizing expensive\n * computations, managing circular dependencies, or resolving type inference\n * issues.\n *\n * **Example** (Lazy Evaluation with Side Effects)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * let i = 0\n *\n * const bad = Effect.succeed(i++)\n *\n * const good = Effect.suspend(() => Effect.succeed(i++))\n *\n * console.log(Effect.runSync(bad)) // Output: 0\n * console.log(Effect.runSync(bad)) // Output: 0\n *\n * console.log(Effect.runSync(good)) // Output: 1\n * console.log(Effect.runSync(good)) // Output: 2\n * ```\n *\n * **Example** (Recursive Fibonacci)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const blowsUp = (n: number): Effect.Effect =>\n * n < 2\n * ? Effect.succeed(1)\n * : Effect.zipWith(blowsUp(n - 1), blowsUp(n - 2), (a, b) => a + b)\n *\n * console.log(Effect.runSync(blowsUp(32)))\n * // crash: JavaScript heap out of memory\n *\n * const allGood = (n: number): Effect.Effect =>\n * n < 2\n * ? Effect.succeed(1)\n * : Effect.zipWith(\n * Effect.suspend(() => allGood(n - 1)),\n * Effect.suspend(() => allGood(n - 2)),\n * (a, b) => a + b\n * )\n *\n * console.log(Effect.runSync(allGood(32)))\n * // Output: 3524578\n * ```\n *\n * **Example** (Using Effect.suspend to Help TypeScript Infer Types)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // Without suspend, TypeScript may struggle with type inference.\n * // Inferred type:\n * // (a: number, b: number) =>\n * // Effect | Effect\n * const withoutSuspend = (a: number, b: number) =>\n * b === 0\n * ? Effect.fail(new Error(\"Cannot divide by zero\"))\n * : Effect.succeed(a / b)\n *\n * // Using suspend to unify return types.\n * // Inferred type:\n * // (a: number, b: number) => Effect\n * const withSuspend = (a: number, b: number) =>\n * Effect.suspend(() =>\n * b === 0\n * ? Effect.fail(new Error(\"Cannot divide by zero\"))\n * : Effect.succeed(a / b)\n * )\n * ```\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const suspend = core.suspend;\n/**\n * Creates an `Effect` that represents a synchronous side-effectful computation.\n *\n * **Details**\n *\n * The provided function (`thunk`) must not throw errors; if it does, the error\n * will be treated as a \"defect\".\n *\n * This defect is not a standard error but indicates a flaw in the logic that\n * was expected to be error-free. You can think of it similar to an unexpected\n * crash in the program, which can be further managed or logged using tools like\n * {@link catchAllDefect}.\n *\n * **When to Use**\n *\n * Use this function when you are sure the operation will not fail.\n *\n * **Example** (Logging a Message)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const log = (message: string) =>\n * Effect.sync(() => {\n * console.log(message) // side effect\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const program = log(\"Hello, World!\")\n * ```\n *\n * @see {@link try_ | try} for a version that can handle failures.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const sync = core.sync;\nconst _void = core.void;\nexport {\n/**\n * Represents an effect that does nothing and produces no value.\n *\n * **When to Use**\n *\n * Use this effect when you need to represent an effect that does nothing.\n * This is useful in scenarios where you need to satisfy an effect-based\n * interface or control program flow without performing any operations. For\n * example, it can be used in situations where you want to return an effect\n * from a function but do not need to compute or return any result.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\n_void as void };\n/**\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const yieldNow = core.yieldNow;\nconst _catch = effect._catch;\nexport {\n/**\n * Recovers from a specified error by catching it and handling it with a provided function.\n *\n * **Details**\n *\n * This function allows you to recover from specific errors that occur during\n * the execution of an effect. It works by catching a specific type of error\n * (identified by a discriminator) and then handling it using a provided\n * handler function. The handler can return a new effect that helps recover\n * from the error, allowing the program to continue. If the error doesn't\n * match the specified type, the function allows the original effect to\n * continue as it was.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * class NetworkError {\n * readonly _tag = \"NetworkError\"\n * }\n * class ValidationError {\n * readonly _tag = \"ValidationError\"\n * }\n *\n * // Simulate an effect that may fail\n * const task: Effect.Effect = Effect.fail(new NetworkError())\n *\n * const program = Effect.gen(function*() {\n * const result = yield* Effect.catch(task, \"_tag\", {\n * failure: \"NetworkError\",\n * onFailure: (error) => Effect.succeed(`recovered from error: ${error._tag}`)\n * })\n * console.log(`Result: ${result}`)\n * })\n *\n * Effect.runFork(program)\n * // Output: Result: recovered from error: NetworkError\n * ```\n *\n * @see {@link catchTag} for a version that can recover from errors based on a `_tag` discriminator.\n *\n * @since 2.0.0\n * @category Error handling\n */\n_catch as catch };\n/**\n * Handles all errors in an effect by providing a fallback effect.\n *\n * **Details**\n *\n * This function catches any errors that may occur during the execution of an\n * effect and allows you to handle them by specifying a fallback effect. This\n * ensures that the program continues without failing by recovering from errors\n * using the provided fallback logic.\n *\n * **Note**: This function only handles recoverable errors. It will not recover\n * from unrecoverable defects.\n *\n * **Example** (Providing Recovery Logic for Recoverable Errors)\n *\n * ```ts\n * import { Effect, Random } from \"effect\"\n *\n * class HttpError {\n * readonly _tag = \"HttpError\"\n * }\n *\n * class ValidationError {\n * readonly _tag = \"ValidationError\"\n * }\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function* () {\n * const n1 = yield* Random.next\n * const n2 = yield* Random.next\n * if (n1 < 0.5) {\n * yield* Effect.fail(new HttpError())\n * }\n * if (n2 < 0.5) {\n * yield* Effect.fail(new ValidationError())\n * }\n * return \"some result\"\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const recovered = program.pipe(\n * Effect.catchAll((error) =>\n * Effect.succeed(`Recovering from ${error._tag}`)\n * )\n * )\n * ```\n *\n * @see {@link catchAllCause} for a version that can recover from both\n * recoverable and unrecoverable errors.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const catchAll = core.catchAll;\n/**\n * Handles both recoverable and unrecoverable errors by providing a recovery\n * effect.\n *\n * **When to Use**\n *\n * The `catchAllCause` function allows you to handle all errors, including\n * unrecoverable defects, by providing a recovery effect. The recovery logic is\n * based on the `Cause` of the error, which provides detailed information about\n * the failure.\n *\n * **When to Recover from Defects**\n *\n * Defects are unexpected errors that typically shouldn't be recovered from, as\n * they often indicate serious issues. However, in some cases, such as\n * dynamically loaded plugins, controlled recovery might be needed.\n *\n * **Example** (Recovering from All Errors)\n *\n * ```ts\n * import { Cause, Effect } from \"effect\"\n *\n * // Define an effect that may fail with a recoverable or unrecoverable error\n * const program = Effect.fail(\"Something went wrong!\")\n *\n * // Recover from all errors by examining the cause\n * const recovered = program.pipe(\n * Effect.catchAllCause((cause) =>\n * Cause.isFailure(cause)\n * ? Effect.succeed(\"Recovered from a regular error\")\n * : Effect.succeed(\"Recovered from a defect\")\n * )\n * )\n *\n * Effect.runPromise(recovered).then(console.log)\n * // Output: \"Recovered from a regular error\"\n * ```\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const catchAllCause = core.catchAllCause;\n/**\n * Recovers from all defects using a provided recovery function.\n *\n * **When to Use**\n *\n * There is no sensible way to recover from defects. This method should be used\n * only at the boundary between Effect and an external system, to transmit\n * information on a defect for diagnostic or explanatory purposes.\n *\n * **Details**\n *\n * `catchAllDefect` allows you to handle defects, which are unexpected errors\n * that usually cause the program to terminate. This function lets you recover\n * from these defects by providing a function that handles the error. However,\n * it does not handle expected errors (like those from {@link fail}) or\n * execution interruptions (like those from {@link interrupt}).\n *\n * **When to Recover from Defects**\n *\n * Defects are unexpected errors that typically shouldn't be recovered from, as\n * they often indicate serious issues. However, in some cases, such as\n * dynamically loaded plugins, controlled recovery might be needed.\n *\n * **Example** (Handling All Defects)\n *\n * ```ts\n * import { Effect, Cause, Console } from \"effect\"\n *\n * // Simulating a runtime error\n * const task = Effect.dieMessage(\"Boom!\")\n *\n * const program = Effect.catchAllDefect(task, (defect) => {\n * if (Cause.isRuntimeException(defect)) {\n * return Console.log(\n * `RuntimeException defect caught: ${defect.message}`\n * )\n * }\n * return Console.log(\"Unknown defect caught.\")\n * })\n *\n * // We get an Exit.Success because we caught all defects\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // RuntimeException defect caught: Boom!\n * // {\n * // _id: \"Exit\",\n * // _tag: \"Success\",\n * // value: undefined\n * // }\n * ```\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const catchAllDefect = effect.catchAllDefect;\n/**\n * Recovers from specific errors based on a predicate.\n *\n * **When to Use**\n *\n * `catchIf` works similarly to {@link catchSome}, but it allows you to\n * recover from errors by providing a predicate function. If the predicate\n * matches the error, the recovery effect is applied. This function doesn't\n * alter the error type, so the resulting effect still carries the original\n * error type unless a user-defined type guard is used to narrow the type.\n *\n * **Example** (Catching Specific Errors with a Predicate)\n *\n * ```ts\n * import { Effect, Random } from \"effect\"\n *\n * class HttpError {\n * readonly _tag = \"HttpError\"\n * }\n *\n * class ValidationError {\n * readonly _tag = \"ValidationError\"\n * }\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function* () {\n * const n1 = yield* Random.next\n * const n2 = yield* Random.next\n * if (n1 < 0.5) {\n * yield* Effect.fail(new HttpError())\n * }\n * if (n2 < 0.5) {\n * yield* Effect.fail(new ValidationError())\n * }\n * return \"some result\"\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const recovered = program.pipe(\n * Effect.catchIf(\n * // Only handle HttpError errors\n * (error) => error._tag === \"HttpError\",\n * () => Effect.succeed(\"Recovering from HttpError\")\n * )\n * )\n * ```\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const catchIf = core.catchIf;\n/**\n * Catches and recovers from specific types of errors, allowing you to attempt\n * recovery only for certain errors.\n *\n * **Details**\n *\n * `catchSome` lets you selectively catch and handle errors of certain\n * types by providing a recovery effect for specific errors. If the error\n * matches a condition, recovery is attempted; if not, it doesn't affect the\n * program. This function doesn't alter the error type, meaning the error type\n * remains the same as in the original effect.\n *\n * **Example** (Handling Specific Errors with Effect.catchSome)\n *\n * ```ts\n * import { Effect, Random, Option } from \"effect\"\n *\n * class HttpError {\n * readonly _tag = \"HttpError\"\n * }\n *\n * class ValidationError {\n * readonly _tag = \"ValidationError\"\n * }\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function* () {\n * const n1 = yield* Random.next\n * const n2 = yield* Random.next\n * if (n1 < 0.5) {\n * yield* Effect.fail(new HttpError())\n * }\n * if (n2 < 0.5) {\n * yield* Effect.fail(new ValidationError())\n * }\n * return \"some result\"\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const recovered = program.pipe(\n * Effect.catchSome((error) => {\n * // Only handle HttpError errors\n * if (error._tag === \"HttpError\") {\n * return Option.some(Effect.succeed(\"Recovering from HttpError\"))\n * } else {\n * return Option.none()\n * }\n * })\n * )\n * ```\n *\n * @see {@link catchIf} for a version that allows you to recover from errors based on a predicate.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const catchSome = core.catchSome;\n/**\n * Recovers from specific causes using a provided partial function.\n *\n * @see {@link catchSome} for a version that allows you to recover from errors.\n * @see {@link catchSomeDefect} for a version that allows you to recover from defects.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const catchSomeCause = effect.catchSomeCause;\n/**\n * Recovers from specific defects using a provided partial function.\n *\n * **Details**\n *\n * `catchSomeDefect` allows you to handle specific defects, which are\n * unexpected errors that can cause the program to stop. It uses a partial\n * function to catch only certain defects and ignores others. The function does\n * not handle expected errors (such as those caused by {@link fail}) or\n * interruptions in execution (like those caused by {@link interrupt}).\n *\n * This function provides a way to handle certain types of defects while\n * allowing others to propagate and cause failure in the program.\n *\n * **Note**: There is no sensible way to recover from defects. This method\n * should be used only at the boundary between Effect and an external system, to\n * transmit information on a defect for diagnostic or explanatory purposes.\n *\n * **How the Partial Function Works**\n *\n * The function provided to `catchSomeDefect` acts as a filter and a handler for defects:\n * - It receives the defect as an input.\n * - If the defect matches a specific condition (e.g., a certain error type), the function returns\n * an `Option.some` containing the recovery logic.\n * - If the defect does not match, the function returns `Option.none`, allowing the defect to propagate.\n *\n * **Example** (Handling Specific Defects)\n *\n * ```ts\n * import { Effect, Cause, Option, Console } from \"effect\"\n *\n * // Simulating a runtime error\n * const task = Effect.dieMessage(\"Boom!\")\n *\n * const program = Effect.catchSomeDefect(task, (defect) => {\n * if (Cause.isIllegalArgumentException(defect)) {\n * return Option.some(\n * Console.log(\n * `Caught an IllegalArgumentException defect: ${defect.message}`\n * )\n * )\n * }\n * return Option.none()\n * })\n *\n * // Since we are only catching IllegalArgumentException\n * // we will get an Exit.Failure because we simulated a runtime error.\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Die',\n * // defect: { _tag: 'RuntimeException' }\n * // }\n * // }\n * ```\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const catchSomeDefect = effect.catchSomeDefect;\n/**\n * Catches and handles specific errors by their `_tag` field, which is used as a\n * discriminator.\n *\n * **When to Use**\n *\n * `catchTag` is useful when your errors are tagged with a readonly `_tag` field\n * that identifies the error type. You can use this function to handle specific\n * error types by matching the `_tag` value. This allows for precise error\n * handling, ensuring that only specific errors are caught and handled.\n *\n * The error type must have a readonly `_tag` field to use `catchTag`. This\n * field is used to identify and match errors.\n *\n * **Example** (Handling Errors by Tag)\n *\n * ```ts\n * import { Effect, Random } from \"effect\"\n *\n * class HttpError {\n * readonly _tag = \"HttpError\"\n * }\n *\n * class ValidationError {\n * readonly _tag = \"ValidationError\"\n * }\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function* () {\n * const n1 = yield* Random.next\n * const n2 = yield* Random.next\n * if (n1 < 0.5) {\n * yield* Effect.fail(new HttpError())\n * }\n * if (n2 < 0.5) {\n * yield* Effect.fail(new ValidationError())\n * }\n * return \"some result\"\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const recovered = program.pipe(\n * // Only handle HttpError errors\n * Effect.catchTag(\"HttpError\", (_HttpError) =>\n * Effect.succeed(\"Recovering from HttpError\")\n * )\n * )\n * ```\n *\n * @see {@link catchTags} for a version that allows you to handle multiple error\n * types at once.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const catchTag = effect.catchTag;\n/**\n * Handles multiple errors in a single block of code using their `_tag` field.\n *\n * **When to Use**\n *\n * `catchTags` is a convenient way to handle multiple error types at\n * once. Instead of using {@link catchTag} multiple times, you can pass an\n * object where each key is an error type's `_tag`, and the value is the handler\n * for that specific error. This allows you to catch and recover from multiple\n * error types in a single call.\n *\n * The error type must have a readonly `_tag` field to use `catchTag`. This\n * field is used to identify and match errors.\n *\n * **Example** (Handling Multiple Tagged Error Types at Once)\n *\n * ```ts\n * import { Effect, Random } from \"effect\"\n *\n * class HttpError {\n * readonly _tag = \"HttpError\"\n * }\n *\n * class ValidationError {\n * readonly _tag = \"ValidationError\"\n * }\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function* () {\n * const n1 = yield* Random.next\n * const n2 = yield* Random.next\n * if (n1 < 0.5) {\n * yield* Effect.fail(new HttpError())\n * }\n * if (n2 < 0.5) {\n * yield* Effect.fail(new ValidationError())\n * }\n * return \"some result\"\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const recovered = program.pipe(\n * Effect.catchTags({\n * HttpError: (_HttpError) =>\n * Effect.succeed(`Recovering from HttpError`),\n * ValidationError: (_ValidationError) =>\n * Effect.succeed(`Recovering from ValidationError`)\n * })\n * )\n * ```\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const catchTags = effect.catchTags;\n/**\n * Retrieves the cause of a failure in an effect.\n *\n * **Details**\n *\n * This function allows you to expose the detailed cause of an effect, which\n * includes a more precise representation of failures, such as error messages\n * and defects.\n *\n * **When to Use**\n *\n * This function is helpful when you need to inspect the cause of a failure in\n * an effect, giving you more information than just the error message. It can be\n * used to log, handle, or analyze failures in more detail, including\n * distinguishing between different types of defects (e.g., runtime exceptions,\n * interruptions, etc.).\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.fail(\"Oh uh!\").pipe(Effect.as(2))\n *\n * // ┌─── Effect\n * // ▼\n * const recovered = Effect.gen(function* () {\n * const cause = yield* Effect.cause(program)\n * yield* Console.log(cause)\n * })\n * ```\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const cause = effect.cause;\n/**\n * Runs an effect repeatedly until it succeeds, ignoring errors.\n *\n * **Details**\n *\n * This function takes an effect and runs it repeatedly until the effect\n * successfully completes. If the effect fails, it will ignore the error and\n * retry the operation. This is useful when you need to perform a task that may\n * fail occasionally, but you want to keep trying until it eventually succeeds.\n * It works by repeatedly executing the effect until it no longer throws an\n * error.\n *\n * **When to Use**\n *\n * Use this function when you want to retry an operation multiple times until it\n * succeeds. It is helpful in cases where the operation may fail temporarily\n * (e.g., a network request), and you want to keep trying without handling or\n * worrying about the errors.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * let counter = 0\n *\n * const effect = Effect.try(() => {\n * counter++\n * if (counter < 3) {\n * console.log(\"running effect\")\n * throw new Error(\"error\")\n * } else {\n * console.log(\"effect done\")\n * return \"some result\"\n * }\n * })\n *\n * const program = Effect.eventually(effect)\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // running effect\n * // running effect\n * // effect done\n * // some result\n * ```\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const eventually = effect.eventually;\n/**\n * Discards both the success and failure values of an effect.\n *\n * **When to Use**\n *\n * `ignore` allows you to run an effect without caring about its result, whether\n * it succeeds or fails. This is useful when you only care about the side\n * effects of the effect and do not need to handle or process its outcome.\n *\n * **Example** (Using Effect.ignore to Discard Values)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const task = Effect.fail(\"Uh oh!\").pipe(Effect.as(5))\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.ignore(task)\n * ```\n *\n * @see {@link ignoreLogged} to log failures while ignoring them.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const ignore = effect.ignore;\n/**\n * Ignores the result of an effect but logs any failures.\n *\n * **Details**\n *\n * This function takes an effect and returns a new effect that ignores whether\n * the original effect succeeds or fails. However, if the effect fails, it will\n * log the failure at the Debug level, so you can keep track of any issues that\n * arise.\n *\n * **When to Use**\n *\n * This is useful in scenarios where you want to continue with your program\n * regardless of the result of the effect, but you still want to be aware of\n * potential failures that may need attention later.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const ignoreLogged = effect.ignoreLogged;\n/**\n * Combines all errors from concurrent operations into a single error.\n *\n * **Details**\n *\n * This function is used when you have multiple operations running at the same\n * time, and you want to capture all the errors that occur across those\n * operations. Instead of handling each error separately, it combines all the\n * errors into one unified error.\n *\n * **When to Use**\n *\n * When using this function, any errors that occur in the concurrently running\n * operations will be grouped together into a single error. This helps simplify\n * error handling in cases where you don't need to differentiate between each\n * failure, but simply want to know that multiple failures occurred.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const fail1 = Effect.fail(\"Oh uh!\")\n * const fail2 = Effect.fail(\"Oh no!\")\n * const die = Effect.dieMessage(\"Boom!\")\n *\n * // Run all effects concurrently and capture all errors\n * const program = Effect.all([fail1, fail2, die], {\n * concurrency: \"unbounded\"\n * }).pipe(Effect.asVoid, Effect.parallelErrors)\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: { _id: 'Cause', _tag: 'Fail', failure: [ 'Oh uh!', 'Oh no!' ] }\n * // }\n * ```\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const parallelErrors = effect.parallelErrors;\n/**\n * Transforms an effect to expose detailed error causes.\n *\n * **Details**\n *\n * This function enhances an effect by providing detailed information about any\n * error, defect, or interruption that may occur during its execution. It\n * modifies the error channel of the effect so that it includes a full cause of\n * the failure, wrapped in a `Cause` type.\n *\n * After applying this function, you can use operators like {@link catchAll} and\n * {@link catchTags} to handle specific types of errors.\n *\n * If you no longer need the detailed cause information, you can revert the\n * changes using {@link unsandbox} to return to the original error-handling\n * behavior.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const task = Effect.fail(new Error(\"Oh uh!\")).pipe(\n * Effect.as(\"primary result\")\n * )\n *\n * // ┌─── Effect, never>\n * // ▼\n * const sandboxed = Effect.sandbox(task)\n *\n * const program = Effect.catchTags(sandboxed, {\n * Die: (cause) =>\n * Console.log(`Caught a defect: ${cause.defect}`).pipe(\n * Effect.as(\"fallback result on defect\")\n * ),\n * Interrupt: (cause) =>\n * Console.log(`Caught a defect: ${cause.fiberId}`).pipe(\n * Effect.as(\"fallback result on fiber interruption\")\n * ),\n * Fail: (cause) =>\n * Console.log(`Caught a defect: ${cause.error}`).pipe(\n * Effect.as(\"fallback result on failure\")\n * )\n * })\n *\n * // Restore the original error handling with unsandbox\n * const main = Effect.unsandbox(program)\n *\n * Effect.runPromise(main).then(console.log)\n * // Output:\n * // Caught a defect: Oh uh!\n * // fallback result on failure\n * ```\n *\n * @see {@link unsandbox} to restore the original error handling.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const sandbox = effect.sandbox;\n/**\n * Retries a failing effect based on a defined retry policy.\n *\n * **Details**\n *\n * The `Effect.retry` function takes an effect and a {@link Schedule} policy,\n * and will automatically retry the effect if it fails, following the rules of\n * the policy.\n *\n * If the effect ultimately succeeds, the result will be returned.\n *\n * If the maximum retries are exhausted and the effect still fails, the failure\n * is propagated.\n *\n * **When to Use**\n *\n * This can be useful when dealing with intermittent failures, such as network\n * issues or temporary resource unavailability. By defining a retry policy, you\n * can control the number of retries, the delay between them, and when to stop\n * retrying.\n *\n * **Example** (Retrying with a Fixed Delay)\n *\n * ```ts\n * import { Effect, Schedule } from \"effect\"\n *\n * let count = 0\n *\n * // Simulates an effect with possible failures\n * const task = Effect.async((resume) => {\n * if (count <= 2) {\n * count++\n * console.log(\"failure\")\n * resume(Effect.fail(new Error()))\n * } else {\n * console.log(\"success\")\n * resume(Effect.succeed(\"yay!\"))\n * }\n * })\n *\n * // Define a repetition policy using a fixed delay between retries\n * const policy = Schedule.fixed(\"100 millis\")\n *\n * const repeated = Effect.retry(task, policy)\n *\n * Effect.runPromise(repeated).then(console.log)\n * // Output:\n * // failure\n * // failure\n * // failure\n * // success\n * // yay!\n * ```\n *\n * **Example** (Retrying a Task up to 5 times)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * let count = 0\n *\n * // Simulates an effect with possible failures\n * const task = Effect.async((resume) => {\n * if (count <= 2) {\n * count++\n * console.log(\"failure\")\n * resume(Effect.fail(new Error()))\n * } else {\n * console.log(\"success\")\n * resume(Effect.succeed(\"yay!\"))\n * }\n * })\n *\n * // Retry the task up to 5 times\n * Effect.runPromise(Effect.retry(task, { times: 5 })).then(console.log)\n * // Output:\n * // failure\n * // failure\n * // failure\n * // success\n * ```\n *\n * **Example** (Retrying Until a Specific Condition is Met)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * let count = 0\n *\n * // Define an effect that simulates varying error on each invocation\n * const action = Effect.failSync(() => {\n * console.log(`Action called ${++count} time(s)`)\n * return `Error ${count}`\n * })\n *\n * // Retry the action until a specific condition is met\n * const program = Effect.retry(action, {\n * until: (err) => err === \"Error 3\"\n * })\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // Action called 1 time(s)\n * // Action called 2 time(s)\n * // Action called 3 time(s)\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: { _id: 'Cause', _tag: 'Fail', failure: 'Error 3' }\n * // }\n * ```\n *\n * @see {@link retryOrElse} for a version that allows you to run a fallback.\n * @see {@link repeat} if your retry condition is based on successful outcomes rather than errors.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const retry = schedule_.retry_combined;\n/**\n * Apply an `ExecutionPlan` to the effect, which allows you to fallback to\n * different resources in case of failure.\n *\n * @since 3.16.0\n * @category Error handling\n * @experimental\n */\nexport const withExecutionPlan = internalExecutionPlan.withExecutionPlan;\n/**\n * Retries a failing effect and runs a fallback effect if retries are exhausted.\n *\n * **Details**\n *\n * The `Effect.retryOrElse` function attempts to retry a failing effect multiple\n * times according to a defined {@link Schedule} policy.\n *\n * If the retries are exhausted and the effect still fails, it runs a fallback\n * effect instead.\n *\n * **When to Use**\n *\n * This function is useful when you want to handle failures gracefully by\n * specifying an alternative action after repeated failures.\n *\n * **Example** (Retrying with Fallback)\n *\n * ```ts\n * import { Effect, Schedule, Console } from \"effect\"\n *\n * let count = 0\n *\n * // Simulates an effect with possible failures\n * const task = Effect.async((resume) => {\n * if (count <= 2) {\n * count++\n * console.log(\"failure\")\n * resume(Effect.fail(new Error()))\n * } else {\n * console.log(\"success\")\n * resume(Effect.succeed(\"yay!\"))\n * }\n * })\n *\n * // Retry the task with a delay between retries and a maximum of 2 retries\n * const policy = Schedule.addDelay(Schedule.recurs(2), () => \"100 millis\")\n *\n * // If all retries fail, run the fallback effect\n * const repeated = Effect.retryOrElse(\n * task,\n * policy,\n * // fallback\n * () => Console.log(\"orElse\").pipe(Effect.as(\"default value\"))\n * )\n *\n * Effect.runPromise(repeated).then(console.log)\n * // Output:\n * // failure\n * // failure\n * // failure\n * // orElse\n * // default value\n * ```\n *\n * @see {@link retry} for a version that does not run a fallback effect.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const retryOrElse = schedule_.retryOrElse_Effect;\nconst try_ = effect.try_;\nexport {\n/**\n * Creates an `Effect` that represents a synchronous computation that might\n * fail.\n *\n * **When to Use**\n *\n * In situations where you need to perform synchronous operations that might\n * fail, such as parsing JSON, you can use the `try` constructor. This\n * constructor is designed to handle operations that could throw exceptions by\n * capturing those exceptions and transforming them into manageable errors.\n *\n * **Error Handling**\n *\n * There are two ways to handle errors with `try`:\n *\n * 1. If you don't provide a `catch` function, the error is caught and the\n * effect fails with an `UnknownException`.\n * 2. If you provide a `catch` function, the error is caught and the `catch`\n * function maps it to an error of type `E`.\n *\n * **Example** (Safe JSON Parsing)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const parse = (input: string) =>\n * // This might throw an error if input is not valid JSON\n * Effect.try(() => JSON.parse(input))\n *\n * // ┌─── Effect\n * // ▼\n * const program = parse(\"\")\n *\n * ```\n *\n * **Example** (Custom Error Handling)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const parse = (input: string) =>\n * Effect.try({\n * // JSON.parse may throw for bad input\n * try: () => JSON.parse(input),\n * // remap the error\n * catch: (unknown) => new Error(`something went wrong ${unknown}`)\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const program = parse(\"\")\n * ```\n *\n * @see {@link sync} if the effectful computation is synchronous and does not\n * throw errors.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\ntry_ as try };\n/**\n * Returns an effect that maps its success using the specified side-effecting\n * `try` function, converting any errors into typed failed effects using the\n * `catch` function.\n *\n * @see {@link tryPromise} for a version that works with asynchronous computations.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const tryMap = effect.tryMap;\n/**\n * Returns an effect that maps its success using the specified side-effecting\n * `try` function, converting any promise rejections into typed failed effects\n * using the `catch` function.\n *\n * An optional `AbortSignal` can be provided to allow for interruption of the\n * wrapped `Promise` API.\n *\n * @see {@link tryMap} for a version that works with synchronous computations.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const tryMapPromise = effect.tryMapPromise;\n/**\n * Creates an `Effect` that represents an asynchronous computation that might\n * fail.\n *\n * **When to Use**\n *\n * In situations where you need to perform asynchronous operations that might\n * fail, such as fetching data from an API, you can use the `tryPromise`\n * constructor. This constructor is designed to handle operations that could\n * throw exceptions by capturing those exceptions and transforming them into\n * manageable errors.\n *\n * **Error Handling**\n *\n * There are two ways to handle errors with `tryPromise`:\n *\n * 1. If you don't provide a `catch` function, the error is caught and the\n * effect fails with an `UnknownException`.\n * 2. If you provide a `catch` function, the error is caught and the `catch`\n * function maps it to an error of type `E`.\n *\n * **Interruptions**\n *\n * An optional `AbortSignal` can be provided to allow for interruption of the\n * wrapped `Promise` API.\n *\n * **Example** (Fetching a TODO Item)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const getTodo = (id: number) =>\n * // Will catch any errors and propagate them as UnknownException\n * Effect.tryPromise(() =>\n * fetch(`https://jsonplaceholder.typicode.com/todos/${id}`)\n * )\n *\n * // ┌─── Effect\n * // ▼\n * const program = getTodo(1)\n * ```\n *\n * **Example** (Custom Error Handling)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const getTodo = (id: number) =>\n * Effect.tryPromise({\n * try: () => fetch(`https://jsonplaceholder.typicode.com/todos/${id}`),\n * // remap the error\n * catch: (unknown) => new Error(`something went wrong ${unknown}`)\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const program = getTodo(1)\n * ```\n *\n * @see {@link promise} if the effectful computation is asynchronous and does not throw errors.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const tryPromise = effect.tryPromise;\n/**\n * The `unsandbox` function is used to revert an effect that has been\n * sandboxed by {@link sandbox}. When you apply `unsandbox`, the\n * effect's error channel is restored to its original state, without the\n * detailed `Cause` information. This means that any underlying causes of\n * errors, defects, or fiber interruptions are no longer exposed in the error\n * channel.\n *\n * This function is useful when you want to remove the detailed error tracking\n * provided by `sandbox` and return to the standard error handling for\n * your effect. Once unsandboxed, the effect behaves as if `sandbox` was\n * never applied.\n *\n * @see {@link sandbox} to expose the full cause of failures, defects, or interruptions.\n *\n * @since 2.0.0\n * @category Error handling\n */\nexport const unsandbox = effect.unsandbox;\n/**\n * Allows interruption of the current fiber, even in uninterruptible regions.\n *\n * **Details**\n *\n * This effect checks whether any other fibers are attempting to interrupt the\n * current fiber. If so, it allows the current fiber to perform a\n * self-interruption.\n *\n * **When to Use**\n *\n * This is useful in situations where you want to allow interruption to happen\n * even in regions of the code that are normally uninterruptible.\n *\n * @since 2.0.0\n * @category Interruption\n */\nexport const allowInterrupt = effect.allowInterrupt;\n/**\n * Checks if interruption is allowed and executes a callback accordingly.\n *\n * **Details**\n *\n * This function checks the current interrupt status of the running fiber. It\n * then calls the provided callback, passing a boolean indicating whether\n * interruption is allowed.\n *\n * **When to Use**\n *\n * This is useful for handling specific logic based on whether the current\n * operation can be interrupted, such as when performing asynchronous operations\n * or handling cancellation.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Effect.checkInterruptible((isInterruptible) => {\n * if (isInterruptible) {\n * return Console.log(\"You can interrupt this operation.\")\n * } else {\n * return Console.log(\"This operation cannot be interrupted.\")\n * }\n * })\n * })\n *\n * Effect.runPromise(program)\n * // Output: You can interrupt this operation.\n *\n * Effect.runPromise(program.pipe(Effect.uninterruptible))\n * // Output: This operation cannot be interrupted.\n *\n * ```\n *\n * @since 2.0.0\n * @category Interruption\n */\nexport const checkInterruptible = core.checkInterruptible;\n/**\n * Provides a way to handle timeouts in uninterruptible effects, allowing them\n * to continue in the background while the main control flow proceeds with the\n * timeout error.\n *\n * **Details**\n *\n * The `disconnect` function allows an uninterruptible effect to continue\n * running in the background, while enabling the main control flow to\n * immediately recognize a timeout condition. This is useful when you want to\n * avoid blocking the program due to long-running tasks, especially when those\n * tasks do not need to affect the flow of the rest of the program.\n *\n * Without `disconnect`, an uninterruptible effect will ignore the\n * timeout and continue executing until it completes. The timeout error will\n * only be assessed after the effect finishes, which can cause delays in\n * recognizing a timeout.\n *\n * With `disconnect`, the uninterruptible effect proceeds in the\n * background while the main program flow can immediately handle the timeout\n * error or trigger alternative logic. This enables faster timeout handling\n * without waiting for the completion of the long-running task.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const longRunningTask = Effect.gen(function* () {\n * console.log(\"Start heavy processing...\")\n * yield* Effect.sleep(\"5 seconds\") // Simulate a long process\n * console.log(\"Heavy processing done.\")\n * return \"Data processed\"\n * })\n *\n * const timedEffect = longRunningTask.pipe(\n * Effect.uninterruptible,\n * // Allows the task to finish in the background if it times out\n * Effect.disconnect,\n * Effect.timeout(\"1 second\")\n * )\n *\n * Effect.runPromiseExit(timedEffect).then(console.log)\n * // Output:\n * // Start heavy processing...\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Fail',\n * // failure: { _tag: 'TimeoutException' }\n * // }\n * // }\n * // Heavy processing done.\n * ```\n *\n * @see {@link timeout} for a version that interrupts the effect.\n * @see {@link uninterruptible} for creating an uninterruptible effect.\n *\n * @since 2.0.0\n * @category Interruption\n */\nexport const disconnect = fiberRuntime.disconnect;\n/**\n * Represents an effect that interrupts the current fiber.\n *\n * **Details**\n *\n * This effect models the explicit interruption of the fiber in which it runs.\n * When executed, it causes the fiber to stop its operation immediately,\n * capturing the interruption details such as the fiber's ID and its start time.\n * The resulting interruption can be observed in the `Exit` type if the effect\n * is run with functions like {@link runPromiseExit}.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const program = Effect.gen(function* () {\n * console.log(\"start\")\n * yield* Effect.sleep(\"2 seconds\")\n * yield* Effect.interrupt\n * console.log(\"done\")\n * return \"some result\"\n * })\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // start\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Interrupt',\n * // fiberId: {\n * // _id: 'FiberId',\n * // _tag: 'Runtime',\n * // id: 0,\n * // startTimeMillis: ...\n * // }\n * // }\n * // }\n * ```\n *\n * @since 2.0.0\n * @category Interruption\n */\nexport const interrupt = core.interrupt;\n/**\n * @since 2.0.0\n * @category Interruption\n */\nexport const interruptWith = core.interruptWith;\n/**\n * Marks an effect as interruptible.\n *\n * @since 2.0.0\n * @category Interruption\n */\nexport const interruptible = core.interruptible;\n/**\n * This function behaves like {@link interruptible}, but it also provides a\n * `restore` function. This function can be used to restore the interruptibility\n * of any specific region of code.\n *\n * @since 2.0.0\n * @category Interruption\n */\nexport const interruptibleMask = core.interruptibleMask;\n/**\n * Registers a cleanup effect to run when an effect is interrupted.\n *\n * **Details**\n *\n * This function allows you to specify an effect to run when the fiber is\n * interrupted. This effect will be executed when the fiber is interrupted,\n * allowing you to perform cleanup or other actions.\n *\n * **Example** (Running a Cleanup Action on Interruption)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * // This handler is executed when the fiber is interrupted\n * const handler = Effect.onInterrupt((_fibers) => Console.log(\"Cleanup completed\"))\n *\n * const success = Console.log(\"Task completed\").pipe(Effect.as(\"some result\"), handler)\n *\n * Effect.runFork(success)\n * // Output:\n * // Task completed\n *\n * const failure = Console.log(\"Task failed\").pipe(Effect.andThen(Effect.fail(\"some error\")), handler)\n *\n * Effect.runFork(failure)\n * // Output:\n * // Task failed\n *\n * const interruption = Console.log(\"Task interrupted\").pipe(Effect.andThen(Effect.interrupt), handler)\n *\n * Effect.runFork(interruption)\n * // Output:\n * // Task interrupted\n * // Cleanup completed\n * ```\n *\n * @since 2.0.0\n * @category Interruption\n */\nexport const onInterrupt = core.onInterrupt;\n/**\n * Marks an effect as uninterruptible.\n *\n * @since 2.0.0\n * @category Interruption\n */\nexport const uninterruptible = core.uninterruptible;\n/**\n * This function behaves like {@link uninterruptible}, but it also provides a\n * `restore` function. This function can be used to restore the interruptibility\n * of any specific region of code.\n *\n * @since 2.0.0\n * @category Interruption\n */\nexport const uninterruptibleMask = core.uninterruptibleMask;\n/**\n * Transforms a `Predicate` function into an `Effect` returning the input value if the predicate returns `true`\n * or failing with specified error if the predicate fails\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const isPositive = (n: number): boolean => n > 0\n *\n * // succeeds with `1`\n * Effect.liftPredicate(1, isPositive, n => `${n} is not positive`)\n *\n * // fails with `\"0 is not positive\"`\n * Effect.liftPredicate(0, isPositive, n => `${n} is not positive`)\n * ```\n *\n * @category Condition Checking\n * @since 3.4.0\n */\nexport const liftPredicate = effect.liftPredicate;\n/**\n * Replaces the value inside an effect with a constant value.\n *\n * **Details**\n *\n * This function allows you to ignore the original value inside an effect and\n * replace it with a constant value.\n *\n * **When to Use**\n *\n * It is useful when you no longer need the value produced by an effect but want\n * to ensure that the effect completes successfully with a specific constant\n * result instead. For instance, you can replace the value produced by a\n * computation with a predefined value, ignoring what was calculated before.\n *\n * **Example** (Replacing a Value)\n *\n * ```ts\n * import { pipe, Effect } from \"effect\"\n *\n * // Replaces the value 5 with the constant \"new value\"\n * const program = pipe(Effect.succeed(5), Effect.as(\"new value\"))\n *\n * Effect.runPromise(program).then(console.log)\n * // Output: \"new value\"\n * ```\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const as = core.as;\n/**\n * This function maps the success value of an `Effect` value to a `Some` value\n * in an `Option` value. If the original `Effect` value fails, the returned\n * `Effect` value will also fail.\n *\n * @category Mapping\n * @since 2.0.0\n */\nexport const asSome = effect.asSome;\n/**\n * This function maps the error value of an `Effect` value to a `Some` value\n * in an `Option` value. If the original `Effect` value succeeds, the returned\n * `Effect` value will also succeed.\n *\n * @category Mapping\n * @since 2.0.0\n */\nexport const asSomeError = effect.asSomeError;\n/**\n * This function maps the success value of an `Effect` value to `void`. If the\n * original `Effect` value succeeds, the returned `Effect` value will also\n * succeed. If the original `Effect` value fails, the returned `Effect` value\n * will fail with the same error.\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const asVoid = core.asVoid;\n/**\n * Swaps the success and error channels of an effect.\n *\n * **Details**\n *\n * This function reverses the flow of an effect by swapping its success and\n * error channels. The success value becomes an error, and the error value\n * becomes a success.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.fail(\"Oh uh!\").pipe(Effect.as(2))\n *\n * // ┌─── Effect\n * // ▼\n * const flipped = Effect.flip(program)\n * ```\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const flip = core.flip;\n/**\n * Swaps the error/value parameters, applies the function `f` and flips the\n * parameters back\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const flipWith = effect.flipWith;\n/**\n * Transforms the value inside an effect by applying a function to it.\n *\n * **Syntax**\n *\n * ```ts skip-type-checking\n * const mappedEffect = pipe(myEffect, Effect.map(transformation))\n * // or\n * const mappedEffect = Effect.map(myEffect, transformation)\n * // or\n * const mappedEffect = myEffect.pipe(Effect.map(transformation))\n * ```\n *\n * **Details**\n *\n * `map` takes a function and applies it to the value contained within an\n * effect, creating a new effect with the transformed value.\n *\n * It's important to note that effects are immutable, meaning that the original\n * effect is not modified. Instead, a new effect is returned with the updated\n * value.\n *\n * **Example** (Adding a Service Charge)\n *\n * ```ts\n * import { pipe, Effect } from \"effect\"\n *\n * const addServiceCharge = (amount: number) => amount + 1\n *\n * const fetchTransactionAmount = Effect.promise(() => Promise.resolve(100))\n *\n * const finalAmount = pipe(\n * fetchTransactionAmount,\n * Effect.map(addServiceCharge)\n * )\n *\n * Effect.runPromise(finalAmount).then(console.log)\n * // Output: 101\n * ```\n *\n * @see {@link mapError} for a version that operates on the error channel.\n * @see {@link mapBoth} for a version that operates on both channels.\n * @see {@link flatMap} or {@link andThen} for a version that can return a new effect.\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const map = core.map;\n/**\n * Applies a stateful transformation to each element of a collection, producing\n * new elements along with an updated state.\n *\n * **When to Use**\n *\n * Use `mapAccum` when you need to process each element of a collection while\n * keeping track of some state across iterations.\n *\n * **Details**\n *\n * `mapAccum` takes an initial state (`initial`) and a function (`f`) that is\n * applied to each element. This function returns a new state and a transformed\n * element. The final effect produces both the accumulated state and the\n * transformed collection.\n *\n * If the input collection is a non-empty array, the return type will match the\n * input collection type.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // Define an initial state and a transformation function\n * const initialState = 0\n *\n * const transformation = (state: number, element: string) =>\n * Effect.succeed<[number, string]>([state + element.length, element.toUpperCase()])\n *\n * // Apply mapAccum to transform an array of strings\n * const program = Effect.mapAccum([\"a\", \"bb\", \"ccc\"], initialState, transformation)\n *\n * Effect.runPromise(program).then(([finalState, transformedCollection]) => {\n * console.log(finalState)\n * console.log(transformedCollection)\n * })\n * // Output:\n * // 6\n * // [ 'A', 'BB', 'CCC' ]\n * ```\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const mapAccum = effect.mapAccum;\n/**\n * Applies transformations to both the success and error channels of an effect.\n *\n * **Details**\n *\n * This function takes two map functions as arguments: one for the error channel\n * and one for the success channel. You can use it when you want to modify both\n * the error and the success values without altering the overall success or\n * failure status of the effect.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const simulatedTask = Effect.fail(\"Oh no!\").pipe(Effect.as(1))\n *\n * // ┌─── Effect\n * // ▼\n * const modified = Effect.mapBoth(simulatedTask, {\n * onFailure: (message) => new Error(message),\n * onSuccess: (n) => n > 0\n * })\n * ```\n *\n * @see {@link map} for a version that operates on the success channel.\n * @see {@link mapError} for a version that operates on the error channel.\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const mapBoth = core.mapBoth;\n/**\n * Transforms or modifies the error produced by an effect without affecting its\n * success value.\n *\n * **When to Use**\n *\n * This function is helpful when you want to enhance the error with additional\n * information, change the error type, or apply custom error handling while\n * keeping the original behavior of the effect's success values intact. It only\n * operates on the error channel and leaves the success channel unchanged.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const simulatedTask = Effect.fail(\"Oh no!\").pipe(Effect.as(1))\n *\n * // ┌─── Effect\n * // ▼\n * const mapped = Effect.mapError(\n * simulatedTask,\n * (message) => new Error(message)\n * )\n * ```\n *\n * @see {@link map} for a version that operates on the success channel.\n * @see {@link mapBoth} for a version that operates on both channels.\n * @see {@link orElseFail} if you want to replace the error with a new one.\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const mapError = core.mapError;\n/**\n * Maps the cause of failure of an effect using a specified function.\n *\n * @see {@link sandbox} for a version that exposes the full cause of failures, defects, or interruptions.\n * @see {@link catchAllCause} for a version that can recover from all types of defects.\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const mapErrorCause = effect.mapErrorCause;\n/**\n * Combines both success and error channels of an effect into a single outcome.\n *\n * **Details**\n *\n * This function transforms an effect that may fail into one that always returns\n * a value, where both success and failure outcomes are handled as values in the\n * success channel.\n *\n * **When to Use**\n *\n * This can be useful when you want to continue execution regardless of the\n * error type and still capture both successful results and errors as part of\n * the outcome.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.fail(\"Oh uh!\").pipe(Effect.as(2))\n *\n * // ┌─── Effect\n * // ▼\n * const recovered = Effect.merge(program)\n * ```\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const merge = effect.merge;\n/**\n * Returns a new effect with the boolean value of this effect negated.\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const negate = effect.negate;\n/**\n * Creates a scoped resource using an `acquire` and `release` effect.\n *\n * **Details**\n *\n * This function helps manage resources by combining two `Effect` values: one\n * for acquiring the resource and one for releasing it.\n *\n * `acquireRelease` does the following:\n *\n * 1. Ensures that the effect that acquires the resource will not be\n * interrupted. Note that acquisition may still fail due to internal\n * reasons (such as an uncaught exception).\n * 2. Ensures that the `release` effect will not be interrupted, and will be\n * executed as long as the acquisition effect successfully acquires the\n * resource.\n *\n * If the `acquire` function succeeds, the `release` function is added to the\n * list of finalizers for the scope. This ensures that the release will happen\n * automatically when the scope is closed.\n *\n * Both `acquire` and `release` run uninterruptibly, meaning they cannot be\n * interrupted while they are executing.\n *\n * Additionally, the `release` function can be influenced by the exit value when\n * the scope closes, allowing for custom handling of how the resource is\n * released based on the execution outcome.\n *\n * **When to Use**\n *\n * This function is used to ensure that an effect that represents the\n * acquisition of a resource (for example, opening a file, launching a thread,\n * etc.) will not be interrupted, and that the resource will always be released\n * when the `Effect` completes execution.\n *\n * **Example** (Defining a Simple Resource)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // Define an interface for a resource\n * interface MyResource {\n * readonly contents: string\n * readonly close: () => Promise\n * }\n *\n * // Simulate resource acquisition\n * const getMyResource = (): Promise =>\n * Promise.resolve({\n * contents: \"lorem ipsum\",\n * close: () =>\n * new Promise((resolve) => {\n * console.log(\"Resource released\")\n * resolve()\n * })\n * })\n *\n * // Define how the resource is acquired\n * const acquire = Effect.tryPromise({\n * try: () =>\n * getMyResource().then((res) => {\n * console.log(\"Resource acquired\")\n * return res\n * }),\n * catch: () => new Error(\"getMyResourceError\")\n * })\n *\n * // Define how the resource is released\n * const release = (res: MyResource) => Effect.promise(() => res.close())\n *\n * // Create the resource management workflow\n * //\n * // ┌─── Effect\n * // ▼\n * const resource = Effect.acquireRelease(acquire, release)\n * ```\n *\n * @see {@link acquireUseRelease} for a version that automatically handles the scoping of resources.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const acquireRelease = fiberRuntime.acquireRelease;\n/**\n * Creates a scoped resource with an interruptible acquire action.\n *\n * **Details**\n *\n * This function is similar to {@link acquireRelease}, but it allows the\n * acquisition of the resource to be interrupted. The `acquire` effect, which\n * represents the process of obtaining the resource, can be interrupted if\n * necessary.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const acquireReleaseInterruptible = fiberRuntime.acquireReleaseInterruptible;\n/**\n * Many real-world operations involve working with resources that must be released when no longer needed, such as:\n *\n * - Database connections\n * - File handles\n * - Network requests\n *\n * This function ensures that a resource is:\n *\n * 1. **Acquired** properly.\n * 2. **Used** for its intended purpose.\n * 3. **Released** even if an error occurs.\n *\n * **Example** (Automatically Managing Resource Lifetime)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // Define an interface for a resource\n * interface MyResource {\n * readonly contents: string\n * readonly close: () => Promise\n * }\n *\n * // Simulate resource acquisition\n * const getMyResource = (): Promise =>\n * Promise.resolve({\n * contents: \"lorem ipsum\",\n * close: () =>\n * new Promise((resolve) => {\n * console.log(\"Resource released\")\n * resolve()\n * })\n * })\n *\n * // Define how the resource is acquired\n * const acquire = Effect.tryPromise({\n * try: () =>\n * getMyResource().then((res) => {\n * console.log(\"Resource acquired\")\n * return res\n * }),\n * catch: () => new Error(\"getMyResourceError\")\n * })\n *\n * // Define how the resource is released\n * const release = (res: MyResource) => Effect.promise(() => res.close())\n *\n * const use = (res: MyResource) => Console.log(`content is ${res.contents}`)\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.acquireUseRelease(acquire, use, release)\n *\n * Effect.runPromise(program)\n * // Output:\n * // Resource acquired\n * // content is lorem ipsum\n * // Resource released\n * ```\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const acquireUseRelease = core.acquireUseRelease;\n/**\n * Ensures a finalizer is added to the scope of the calling effect, guaranteeing\n * it runs when the scope is closed.\n *\n * **Details**\n *\n * This function adds a finalizer that will execute whenever the scope of the\n * effect is closed, regardless of whether the effect succeeds, fails, or is\n * interrupted. The finalizer receives the `Exit` value of the effect's scope,\n * allowing it to react differently depending on how the effect concludes.\n *\n * Finalizers are a reliable way to manage resource cleanup, ensuring that\n * resources such as file handles, network connections, or database transactions\n * are properly closed even in the event of an unexpected interruption or error.\n *\n * Finalizers operate in conjunction with Effect's scoped resources. If an\n * effect with a finalizer is wrapped in a scope, the finalizer will execute\n * automatically when the scope ends.\n *\n * **Example** (Adding a Finalizer on Success)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function* () {\n * yield* Effect.addFinalizer((exit) =>\n * Console.log(`Finalizer executed. Exit status: ${exit._tag}`)\n * )\n * return \"some result\"\n * })\n *\n * // Wrapping the effect in a scope\n * //\n * // ┌─── Effect\n * // ▼\n * const runnable = Effect.scoped(program)\n *\n * Effect.runPromiseExit(runnable).then(console.log)\n * // Output:\n * // Finalizer executed. Exit status: Success\n * // { _id: 'Exit', _tag: 'Success', value: 'some result' }\n * ```\n *\n * **Example** (Adding a Finalizer on Failure)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function* () {\n * yield* Effect.addFinalizer((exit) =>\n * Console.log(`Finalizer executed. Exit status: ${exit._tag}`)\n * )\n * return yield* Effect.fail(\"Uh oh!\")\n * })\n *\n * // Wrapping the effect in a scope\n * //\n * // ┌─── Effect\n * // ▼\n * const runnable = Effect.scoped(program)\n *\n * Effect.runPromiseExit(runnable).then(console.log)\n * // Output:\n * // Finalizer executed. Exit status: Failure\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: { _id: 'Cause', _tag: 'Fail', failure: 'Uh oh!' }\n * // }\n * ```\n *\n * **Example** (Adding a Finalizer on Interruption)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function* () {\n * yield* Effect.addFinalizer((exit) =>\n * Console.log(`Finalizer executed. Exit status: ${exit._tag}`)\n * )\n * return yield* Effect.interrupt\n * })\n *\n * // Wrapping the effect in a scope\n * //\n * // ┌─── Effect\n * // ▼\n * const runnable = Effect.scoped(program)\n *\n * Effect.runPromiseExit(runnable).then(console.log)\n * // Output:\n * // Finalizer executed. Exit status: Failure\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Interrupt',\n * // fiberId: {\n * // _id: 'FiberId',\n * // _tag: 'Runtime',\n * // id: 0,\n * // startTimeMillis: ...\n * // }\n * // }\n * // }\n * ```\n *\n * @see {@link onExit} for attaching a finalizer directly to an effect.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const addFinalizer = fiberRuntime.addFinalizer;\n/**\n * Guarantees the execution of a finalizer when an effect starts execution.\n *\n * **Details**\n *\n * This function allows you to specify a `finalizer` effect that will always be\n * run once the effect starts execution, regardless of whether the effect\n * succeeds, fails, or is interrupted.\n *\n * **When to Use**\n *\n * This is useful when you need to ensure that certain cleanup or final steps\n * are executed in all cases, such as releasing resources or performing\n * necessary logging.\n *\n * While this function provides strong guarantees about executing the finalizer,\n * it is considered a low-level tool, which may not be ideal for more complex\n * resource management. For higher-level resource management with automatic\n * acquisition and release, see the {@link acquireRelease} family of functions.\n * For use cases where you need access to the result of an effect, consider\n * using {@link onExit}.\n *\n * **Example** (Running a Finalizer in All Outcomes)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * // Define a cleanup effect\n * const handler = Effect.ensuring(Console.log(\"Cleanup completed\"))\n *\n * // Define a successful effect\n * const success = Console.log(\"Task completed\").pipe(\n * Effect.as(\"some result\"),\n * handler\n * )\n *\n * Effect.runFork(success)\n * // Output:\n * // Task completed\n * // Cleanup completed\n *\n * // Define a failing effect\n * const failure = Console.log(\"Task failed\").pipe(\n * Effect.andThen(Effect.fail(\"some error\")),\n * handler\n * )\n *\n * Effect.runFork(failure)\n * // Output:\n * // Task failed\n * // Cleanup completed\n *\n * // Define an interrupted effect\n * const interruption = Console.log(\"Task interrupted\").pipe(\n * Effect.andThen(Effect.interrupt),\n * handler\n * )\n *\n * Effect.runFork(interruption)\n * // Output:\n * // Task interrupted\n * // Cleanup completed\n * ```\n *\n * @see {@link onExit} for a version that provides access to the result of an\n * effect.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const ensuring = fiberRuntime.ensuring;\n/**\n * Ensures a cleanup effect runs whenever the calling effect fails, providing\n * the failure cause to the cleanup effect.\n *\n * **Details**\n *\n * This function allows you to attach a cleanup effect that runs whenever the\n * calling effect fails. The cleanup effect receives the cause of the failure,\n * allowing you to perform actions such as logging, releasing resources, or\n * executing additional recovery logic based on the error. The cleanup effect\n * will execute even if the failure is due to interruption.\n *\n * Importantly, the cleanup effect itself is uninterruptible, ensuring that it\n * completes regardless of external interruptions.\n *\n * **Example** (Running Cleanup Only on Failure)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * // This handler logs the failure cause when the effect fails\n * const handler = Effect.onError((cause) =>\n * Console.log(`Cleanup completed: ${cause}`)\n * )\n *\n * // Define a successful effect\n * const success = Console.log(\"Task completed\").pipe(\n * Effect.as(\"some result\"),\n * handler\n * )\n *\n * Effect.runFork(success)\n * // Output:\n * // Task completed\n *\n * // Define a failing effect\n * const failure = Console.log(\"Task failed\").pipe(\n * Effect.andThen(Effect.fail(\"some error\")),\n * handler\n * )\n *\n * Effect.runFork(failure)\n * // Output:\n * // Task failed\n * // Cleanup completed: Error: some error\n *\n * // Define a failing effect\n * const defect = Console.log(\"Task failed with defect\").pipe(\n * Effect.andThen(Effect.die(\"Boom!\")),\n * handler\n * )\n *\n * Effect.runFork(defect)\n * // Output:\n * // Task failed with defect\n * // Cleanup completed: Error: Boom!\n *\n * // Define an interrupted effect\n * const interruption = Console.log(\"Task interrupted\").pipe(\n * Effect.andThen(Effect.interrupt),\n * handler\n * )\n *\n * Effect.runFork(interruption)\n * // Output:\n * // Task interrupted\n * // Cleanup completed: All fibers interrupted without errors.\n * ```\n *\n * @see {@link ensuring} for attaching a cleanup effect that runs on both success and failure.\n * @see {@link onExit} for attaching a cleanup effect that runs on all possible exits.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const onError = core.onError;\n/**\n * Guarantees that a cleanup function runs regardless of whether the effect\n * succeeds, fails, or is interrupted.\n *\n * **Details**\n *\n * This function ensures that a provided cleanup function is executed after the\n * effect completes, regardless of the outcome. The cleanup function is given\n * the `Exit` value of the effect, which provides detailed information about the\n * result:\n * - If the effect succeeds, the `Exit` contains the success value.\n * - If the effect fails, the `Exit` contains the error or failure cause.\n * - If the effect is interrupted, the `Exit` reflects the interruption.\n *\n * The cleanup function is guaranteed to run uninterruptibly, ensuring reliable\n * resource management even in complex or high-concurrency scenarios.\n *\n * **Example** (Running a Cleanup Function with the Effect’s Result)\n *\n * ```ts\n * import { Console, Effect, Exit } from \"effect\"\n *\n * // Define a cleanup effect that logs the result\n * const handler = Effect.onExit((exit) =>\n * Console.log(`Cleanup completed: ${Exit.getOrElse(exit, String)}`)\n * )\n *\n * // Define a successful effect\n * const success = Console.log(\"Task completed\").pipe(\n * Effect.as(\"some result\"),\n * handler\n * )\n *\n * Effect.runFork(success)\n * // Output:\n * // Task completed\n * // Cleanup completed: some result\n *\n * // Define a failing effect\n * const failure = Console.log(\"Task failed\").pipe(\n * Effect.andThen(Effect.fail(\"some error\")),\n * handler\n * )\n *\n * Effect.runFork(failure)\n * // Output:\n * // Task failed\n * // Cleanup completed: Error: some error\n *\n * // Define an interrupted effect\n * const interruption = Console.log(\"Task interrupted\").pipe(\n * Effect.andThen(Effect.interrupt),\n * handler\n * )\n *\n * Effect.runFork(interruption)\n * // Output:\n * // Task interrupted\n * // Cleanup completed: All fibers interrupted without errors.\n * ```\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const onExit = core.onExit;\n/**\n * Ensures that finalizers are run concurrently when the scope of an effect is\n * closed.\n *\n * **Details**\n *\n * This function modifies the behavior of finalizers within a scoped workflow to\n * allow them to run concurrently when the scope is closed.\n *\n * By default, finalizers are executed sequentially in reverse order of their\n * addition, but this function changes that behavior to execute all finalizers\n * concurrently.\n *\n * **When to Use**\n *\n * Running finalizers concurrently can improve performance when multiple\n * independent cleanup tasks need to be performed. However, it requires that\n * these tasks do not depend on the order of execution or introduce race\n * conditions.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * // Define a program that adds multiple finalizers\n * const program = Effect.gen(function*() {\n * yield* Effect.addFinalizer(() => Console.log(\"Finalizer 1 executed\").pipe(Effect.delay(\"300 millis\")))\n * yield* Effect.addFinalizer(() => Console.log(\"Finalizer 2 executed\").pipe(Effect.delay(\"100 millis\")))\n * yield* Effect.addFinalizer(() => Console.log(\"Finalizer 3 executed\").pipe(Effect.delay(\"200 millis\")))\n * return \"some result\"\n * })\n *\n * // Modify the program to ensure finalizers run in parallel\n * const modified = program.pipe(Effect.parallelFinalizers)\n *\n * const runnable = Effect.scoped(modified)\n *\n * Effect.runFork(runnable)\n * // Output:\n * // Finalizer 2 executed\n * // Finalizer 3 executed\n * // Finalizer 1 executed\n * ```\n *\n * @see {@link sequentialFinalizers} for a version that ensures finalizers are run sequentially.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const parallelFinalizers = fiberRuntime.parallelFinalizers;\n/**\n * Ensures that finalizers are run sequentially in reverse order of their\n * addition.\n *\n * **Details**\n *\n * This function modifies the behavior of finalizers within a scoped workflow to\n * ensure they are run sequentially in reverse order when the scope is closed.\n *\n * By default, finalizers are executed sequentially, so this only changes the\n * behavior if the scope is configured to run finalizers concurrently.\n *\n * @see {@link parallelFinalizers} for a version that ensures finalizers are run concurrently.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const sequentialFinalizers = fiberRuntime.sequentialFinalizers;\n/**\n * Applies a custom execution strategy to finalizers within a scoped workflow.\n *\n * **Details**\n *\n * This function allows you to control how finalizers are executed in a scope by\n * applying a specified `ExecutionStrategy`. The `strategy` can dictate whether\n * finalizers run (e.g., sequentially or in parallel).\n *\n * Additionally, the function provides a `restore` operation, which ensures that\n * the effect passed to it is executed under the default execution strategy.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const finalizersMask = fiberRuntime.finalizersMask;\n/**\n * Provides access to the current scope in a scoped workflow.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const scope = fiberRuntime.scope;\n/**\n * Accesses the current scope and uses it to perform the specified effect.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const scopeWith = fiberRuntime.scopeWith;\n/**\n * Creates a `Scope`, passes it to the specified effectful function, and closes\n * the scope when the effect completes (whether through success, failure, or\n * interruption).\n *\n * @since 3.11.0\n * @category Scoping, Resources & Finalization\n */\nexport const scopedWith = fiberRuntime.scopedWith;\n/**\n * Scopes all resources used in an effect to the lifetime of the effect.\n *\n * **Details**\n *\n * This function ensures that all resources used within an effect are tied to\n * its lifetime. Finalizers for these resources are executed automatically when\n * the effect completes, whether through success, failure, or interruption. This\n * guarantees proper resource cleanup without requiring explicit management.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const scoped = fiberRuntime.scopedEffect;\n/**\n * Scopes all resources acquired by one effect to the lifetime of another\n * effect.\n *\n * **Details**\n *\n * This function allows you to scope the resources acquired by one effect\n * (`self`) to the lifetime of another effect (`use`). This ensures that the\n * resources are cleaned up as soon as the `use` effect completes, regardless of\n * how the `use` effect ends (success, failure, or interruption).\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const acquire = Console.log(\"Acquiring resource\").pipe(\n * Effect.as(1),\n * Effect.tap(Effect.addFinalizer(() => Console.log(\"Releasing resource\")))\n * )\n * const use = (resource: number) => Console.log(`Using resource: ${resource}`)\n *\n * const program = acquire.pipe(Effect.using(use))\n *\n * Effect.runFork(program)\n * // Output:\n * // Acquiring resource\n * // Using resource: 1\n * // Releasing resource\n * ```\n *\n * @see {@link scopedWith} Manage scoped operations with a temporary scope.\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const using = fiberRuntime.using;\n/**\n * Returns the result of the effect and a finalizer to close its scope.\n *\n * **Details**\n *\n * This function allows you to retrieve both the result of an effect and a\n * finalizer that can be used to manually close its scope. This is useful for\n * workflows where you need early access to the result while retaining control\n * over the resource cleanup process.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const acquire = Console.log(\"Acquiring resource\").pipe(\n * Effect.as(1),\n * Effect.tap(Effect.addFinalizer(() => Console.log(\"Releasing resource\")))\n * )\n * const program = Effect.gen(function*() {\n * const [finalizer, resource] = yield* Effect.withEarlyRelease(acquire)\n * console.log(`Using resource: ${resource}`)\n * yield* Effect.sleep(\"1 second\")\n * yield* finalizer\n * })\n *\n * Effect.runFork(program.pipe(Effect.scoped))\n * // Output:\n * // Acquiring resource\n * // Using resource: 1\n * // Releasing resource\n * ```\n *\n * @since 2.0.0\n * @category Scoping, Resources & Finalization\n */\nexport const withEarlyRelease = fiberRuntime.withEarlyRelease;\n/**\n * Returns a new effect that will not succeed with its value before first\n * waiting for the end of all child fibers forked by the effect.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const awaitAllChildren = circular.awaitAllChildren;\n/**\n * Returns a new workflow that will not supervise any fibers forked by this\n * workflow.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const daemonChildren = fiberRuntime.daemonChildren;\n/**\n * Constructs an effect with information about the current `Fiber`.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const descriptor = effect.descriptor;\n/**\n * Constructs an effect based on information about the current `Fiber`.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const descriptorWith = effect.descriptorWith;\n/**\n * Returns a new workflow that executes this one and captures the changes in\n * `FiberRef` values.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const diffFiberRefs = effect.diffFiberRefs;\n/**\n * Acts on the children of this fiber (collected into a single fiber),\n * guaranteeing the specified callback will be invoked, whether or not this\n * effect succeeds.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const ensuringChild = circular.ensuringChild;\n/**\n * Acts on the children of this fiber, guaranteeing the specified callback\n * will be invoked, whether or not this effect succeeds.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const ensuringChildren = circular.ensuringChildren;\n/**\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const fiberId = core.fiberId;\n/**\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const fiberIdWith = core.fiberIdWith;\n/**\n * Creates a new fiber to run an effect concurrently.\n *\n * **Details**\n *\n * This function takes an effect and forks it into a separate fiber, allowing it\n * to run concurrently without blocking the original effect. The new fiber\n * starts execution immediately after being created, and the fiber object is\n * returned immediately without waiting for the effect to begin. This is useful\n * when you want to run tasks concurrently while continuing other tasks in the\n * parent fiber.\n *\n * The forked fiber is attached to the parent fiber's scope. This means that\n * when the parent fiber terminates, the child fiber will also be terminated\n * automatically. This feature, known as \"auto supervision,\" ensures that no\n * fibers are left running unintentionally. If you prefer not to have this auto\n * supervision behavior, you can use {@link forkDaemon} or {@link forkIn}.\n *\n * **When to Use**\n *\n * Use this function when you need to run an effect concurrently without\n * blocking the current execution flow. For example, you might use it to launch\n * background tasks or concurrent computations. However, working with fibers can\n * be complex, so before using this function directly, you might want to explore\n * higher-level functions like {@link raceWith}, {@link zip}, or others that can\n * manage concurrency for you.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const fib = (n: number): Effect.Effect =>\n * n < 2\n * ? Effect.succeed(n)\n * : Effect.zipWith(fib(n - 1), fib(n - 2), (a, b) => a + b)\n *\n * // ┌─── Effect, never, never>\n * // ▼\n * const fib10Fiber = Effect.fork(fib(10))\n * ```\n *\n * @see {@link forkWithErrorHandler} for a version that allows you to handle errors.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const fork = fiberRuntime.fork;\n/**\n * Creates a long-running background fiber that is independent of its parent.\n *\n * **Details**\n *\n * This function creates a \"daemon\" fiber that runs in the background and is not\n * tied to the lifecycle of its parent fiber. Unlike normal fibers that stop\n * when the parent fiber terminates, a daemon fiber will continue running until\n * the global scope closes or the fiber completes naturally. This makes it\n * useful for tasks that need to run in the background independently, such as\n * periodic logging, monitoring, or background data processing.\n *\n * **Example** (Creating a Daemon Fiber)\n *\n * ```ts\n * import { Effect, Console, Schedule } from \"effect\"\n *\n * // Daemon fiber that logs a message repeatedly every second\n * const daemon = Effect.repeat(\n * Console.log(\"daemon: still running!\"),\n * Schedule.fixed(\"1 second\")\n * )\n *\n * const parent = Effect.gen(function* () {\n * console.log(\"parent: started!\")\n * // Daemon fiber running independently\n * yield* Effect.forkDaemon(daemon)\n * yield* Effect.sleep(\"3 seconds\")\n * console.log(\"parent: finished!\")\n * })\n *\n * Effect.runFork(parent)\n * // Output:\n * // parent: started!\n * // daemon: still running!\n * // daemon: still running!\n * // daemon: still running!\n * // parent: finished!\n * // daemon: still running!\n * // daemon: still running!\n * // daemon: still running!\n * // daemon: still running!\n * // daemon: still running!\n * // ...etc...\n * ```\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const forkDaemon = fiberRuntime.forkDaemon;\n/**\n * Returns an effect that forks all of the specified values, and returns a\n * composite fiber that produces a list of their results, in order.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const forkAll = circular.forkAll;\n/**\n * Forks an effect in a specific scope, allowing finer control over its\n * execution.\n *\n * **Details**\n *\n * There are some cases where we need more fine-grained control, so we want to\n * fork a fiber in a specific scope. We can use the `Effect.forkIn` operator\n * which takes the target scope as an argument.\n *\n * The fiber will be interrupted when the scope is closed.\n *\n * **Example** (Forking a Fiber in a Specific Scope)\n *\n * In this example, the child fiber is forked into the outerScope,\n * allowing it to outlive the inner scope but still be terminated\n * when the outerScope is closed.\n *\n * ```ts\n * import { Console, Effect, Schedule } from \"effect\"\n *\n * // Child fiber that logs a message repeatedly every second\n * const child = Effect.repeat(\n * Console.log(\"child: still running!\"),\n * Schedule.fixed(\"1 second\")\n * )\n *\n * const program = Effect.scoped(\n * Effect.gen(function* () {\n * yield* Effect.addFinalizer(() =>\n * Console.log(\"The outer scope is about to be closed!\")\n * )\n *\n * // Capture the outer scope\n * const outerScope = yield* Effect.scope\n *\n * // Create an inner scope\n * yield* Effect.scoped(\n * Effect.gen(function* () {\n * yield* Effect.addFinalizer(() =>\n * Console.log(\"The inner scope is about to be closed!\")\n * )\n * // Fork the child fiber in the outer scope\n * yield* Effect.forkIn(child, outerScope)\n * yield* Effect.sleep(\"3 seconds\")\n * })\n * )\n *\n * yield* Effect.sleep(\"5 seconds\")\n * })\n * )\n *\n * Effect.runFork(program)\n * // Output:\n * // child: still running!\n * // child: still running!\n * // child: still running!\n * // The inner scope is about to be closed!\n * // child: still running!\n * // child: still running!\n * // child: still running!\n * // child: still running!\n * // child: still running!\n * // child: still running!\n * // The outer scope is about to be closed!\n * ```\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const forkIn = circular.forkIn;\n/**\n * Forks a fiber in a local scope, ensuring it outlives its parent.\n *\n * **Details**\n *\n * This function is used to create fibers that are tied to a local scope,\n * meaning they are not dependent on their parent fiber's lifecycle. Instead,\n * they will continue running until the scope they were created in is closed.\n * This is particularly useful when you need a fiber to run independently of the\n * parent fiber, but still want it to be terminated when the scope ends.\n *\n * Fibers created with this function are isolated from the parent fiber’s\n * termination, so they can run for a longer period. This behavior is different\n * from fibers created with {@link fork}, which are terminated when the parent fiber\n * terminates. With `forkScoped`, the child fiber will keep running until the\n * local scope ends, regardless of the state of the parent fiber.\n *\n * **Example** (Forking a Fiber in a Local Scope)\n *\n * In this example, the child fiber continues to run beyond the lifetime of the parent fiber.\n * The child fiber is tied to the local scope and will be terminated only when the scope ends.\n *\n * ```ts\n * import { Effect, Console, Schedule } from \"effect\"\n *\n * // Child fiber that logs a message repeatedly every second\n * const child = Effect.repeat(\n * Console.log(\"child: still running!\"),\n * Schedule.fixed(\"1 second\")\n * )\n *\n * // ┌─── Effect\n * // ▼\n * const parent = Effect.gen(function* () {\n * console.log(\"parent: started!\")\n * // Child fiber attached to local scope\n * yield* Effect.forkScoped(child)\n * yield* Effect.sleep(\"3 seconds\")\n * console.log(\"parent: finished!\")\n * })\n *\n * // Program runs within a local scope\n * const program = Effect.scoped(\n * Effect.gen(function* () {\n * console.log(\"Local scope started!\")\n * yield* Effect.fork(parent)\n * // Scope lasts for 5 seconds\n * yield* Effect.sleep(\"5 seconds\")\n * console.log(\"Leaving the local scope!\")\n * })\n * )\n *\n * Effect.runFork(program)\n * // Output:\n * // Local scope started!\n * // parent: started!\n * // child: still running!\n * // child: still running!\n * // child: still running!\n * // parent: finished!\n * // child: still running!\n * // child: still running!\n * // Leaving the local scope!\n * ```\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const forkScoped = circular.forkScoped;\n/**\n * Like {@link fork} but handles an error with the provided handler.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const forkWithErrorHandler = fiberRuntime.forkWithErrorHandler;\n/**\n * Creates an `Effect` value that represents the exit value of the specified\n * fiber.\n *\n * @see {@link fromFiberEffect} for creating an effect from a fiber obtained from an effect.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const fromFiber = circular.fromFiber;\n/**\n * Creates an `Effect` value that represents the exit value of a fiber obtained\n * from an effect.\n *\n * @see {@link fromFiber} for creating an effect from a fiber.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const fromFiberEffect = circular.fromFiberEffect;\n/**\n * Supervises child fibers by reporting them to a specified supervisor.\n *\n * **Details**\n *\n * This function takes a supervisor as an argument and returns an effect where\n * all child fibers forked within it are supervised by the provided supervisor.\n * This enables you to capture detailed information about these child fibers,\n * such as their status, through the supervisor.\n *\n * **Example** (Monitoring Fiber Count)\n *\n * ```ts\n * import { Effect, Supervisor, Schedule, Fiber, FiberStatus } from \"effect\"\n *\n * // Main program that monitors fibers while calculating a Fibonacci number\n * const program = Effect.gen(function* () {\n * // Create a supervisor to track child fibers\n * const supervisor = yield* Supervisor.track\n *\n * // Start a Fibonacci calculation, supervised by the supervisor\n * const fibFiber = yield* fib(20).pipe(\n * Effect.supervised(supervisor),\n * // Fork the Fibonacci effect into a fiber\n * Effect.fork\n * )\n *\n * // Define a schedule to periodically monitor the fiber count every 500ms\n * const policy = Schedule.spaced(\"500 millis\").pipe(\n * Schedule.whileInputEffect((_) =>\n * Fiber.status(fibFiber).pipe(\n * // Continue while the Fibonacci fiber is not done\n * Effect.andThen((status) => status !== FiberStatus.done)\n * )\n * )\n * )\n *\n * // Start monitoring the fibers, using the supervisor to track the count\n * const monitorFiber = yield* monitorFibers(supervisor).pipe(\n * // Repeat the monitoring according to the schedule\n * Effect.repeat(policy),\n * // Fork the monitoring into its own fiber\n * Effect.fork\n * )\n *\n * // Join the monitor and Fibonacci fibers to ensure they complete\n * yield* Fiber.join(monitorFiber)\n * const result = yield* Fiber.join(fibFiber)\n *\n * console.log(`fibonacci result: ${result}`)\n * })\n *\n * // Function to monitor and log the number of active fibers\n * const monitorFibers = (\n * supervisor: Supervisor.Supervisor>>\n * ): Effect.Effect =>\n * Effect.gen(function* () {\n * const fibers = yield* supervisor.value // Get the current set of fibers\n * console.log(`number of fibers: ${fibers.length}`)\n * })\n *\n * // Recursive Fibonacci calculation, spawning fibers for each recursive step\n * const fib = (n: number): Effect.Effect =>\n * Effect.gen(function* () {\n * if (n <= 1) {\n * return 1\n * }\n * yield* Effect.sleep(\"500 millis\") // Simulate work by delaying\n *\n * // Fork two fibers for the recursive Fibonacci calls\n * const fiber1 = yield* Effect.fork(fib(n - 2))\n * const fiber2 = yield* Effect.fork(fib(n - 1))\n *\n * // Join the fibers to retrieve their results\n * const v1 = yield* Fiber.join(fiber1)\n * const v2 = yield* Fiber.join(fiber2)\n *\n * return v1 + v2 // Combine the results\n * })\n *\n * Effect.runPromise(program)\n * // Output:\n * // number of fibers: 0\n * // number of fibers: 2\n * // number of fibers: 6\n * // number of fibers: 14\n * // number of fibers: 30\n * // number of fibers: 62\n * // number of fibers: 126\n * // number of fibers: 254\n * // number of fibers: 510\n * // number of fibers: 1022\n * // number of fibers: 2034\n * // number of fibers: 3795\n * // number of fibers: 5810\n * // number of fibers: 6474\n * // number of fibers: 4942\n * // number of fibers: 2515\n * // number of fibers: 832\n * // number of fibers: 170\n * // number of fibers: 18\n * // number of fibers: 0\n * // fibonacci result: 10946\n * ```\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const supervised = circular.supervised;\n/**\n * Transplants specified effects so that when those effects fork other\n * effects, the forked effects will be governed by the scope of the fiber that\n * executes this effect.\n *\n * This can be used to \"graft\" deep grandchildren onto a higher-level scope,\n * effectively extending their lifespans into the parent scope.\n *\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const transplant = core.transplant;\n/**\n * @since 2.0.0\n * @category Supervision & Fibers\n */\nexport const withConcurrency = core.withConcurrency;\n/**\n * Sets the provided scheduler for usage in the wrapped effect\n *\n * @since 2.0.0\n * @category Scheduler\n */\nexport const withScheduler = Scheduler.withScheduler;\n/**\n * Sets the scheduling priority used when yielding\n *\n * @since 2.0.0\n * @category Scheduler\n */\nexport const withSchedulingPriority = core.withSchedulingPriority;\n/**\n * Sets the maximum number of operations before yield by the default schedulers\n *\n * @since 2.0.0\n * @category Scheduler\n */\nexport const withMaxOpsBeforeYield = core.withMaxOpsBeforeYield;\n/**\n * Retrieves the `Clock` service from the context.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * const clock = yield* Effect.clock\n * const currentTime = yield* clock.currentTimeMillis\n * console.log(`Current time in milliseconds: ${currentTime}`)\n * })\n *\n * Effect.runFork(program)\n * // Example Output:\n * // Current time in milliseconds: 1735484796134\n * ```\n *\n * @since 2.0.0\n * @category Clock\n */\nexport const clock = effect.clock;\n/**\n * Retrieves the `Clock` service from the context and provides it to the\n * specified effectful function.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.clockWith((clock) =>\n * clock.currentTimeMillis.pipe(\n * Effect.map((currentTime) => `Current time is: ${currentTime}`),\n * Effect.tap(Console.log)\n * )\n * )\n *\n * Effect.runFork(program)\n * // Example Output:\n * // Current time is: 1735484929744\n * ```\n *\n * @since 2.0.0\n * @category Clock\n */\nexport const clockWith = effect.clockWith;\n/**\n * Sets the implementation of the `Clock` service to the specified value and\n * restores it to its original value when the scope is closed.\n *\n * @since 2.0.0\n * @category Clock\n */\nexport const withClockScoped = fiberRuntime.withClockScoped;\n/**\n * Executes the specified workflow with the specified implementation of the\n * `Clock` service.\n *\n * @since 2.0.0\n * @category Clock\n */\nexport const withClock = defaultServices.withClock;\n/**\n * Retreives the `Console` service from the context\n *\n * @since 2.0.0\n * @category Console\n */\nexport const console = console_.console;\n/**\n * Retreives the `Console` service from the context and provides it to the\n * specified effectful function.\n *\n * @since 2.0.0\n * @category Console\n */\nexport const consoleWith = console_.consoleWith;\n/**\n * Sets the implementation of the console service to the specified value and\n * restores it to its original value when the scope is closed.\n *\n * @since 2.0.0\n * @category Creating Effects\n */\nexport const withConsoleScoped = console_.withConsoleScoped;\n/**\n * Executes the specified workflow with the specified implementation of the\n * console service.\n *\n * @since 2.0.0\n * @category Console\n */\nexport const withConsole = console_.withConsole;\n/**\n * Delays the execution of an effect by a specified `Duration`.\n *\n * **Details\n *\n * This function postpones the execution of the provided effect by the specified\n * duration. The duration can be provided in various formats supported by the\n * `Duration` module.\n *\n * Internally, this function does not block the thread; instead, it uses an\n * efficient, non-blocking mechanism to introduce the delay.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const task = Console.log(\"Task executed\")\n *\n * const program = Console.log(\"start\").pipe(\n * Effect.andThen(\n * // Delays the log message by 2 seconds\n * task.pipe(Effect.delay(\"2 seconds\"))\n * )\n * )\n *\n * Effect.runFork(program)\n * // Output:\n * // start\n * // Task executed\n * ```\n *\n * @since 2.0.0\n * @category Delays & Timeouts\n */\nexport const delay = effect.delay;\n/**\n * Suspends the execution of an effect for a specified `Duration`.\n *\n * **Details**\n *\n * This function pauses the execution of an effect for a given duration. It is\n * asynchronous, meaning that it does not block the fiber executing the effect.\n * Instead, the fiber is suspended during the delay period and can resume once\n * the specified time has passed.\n *\n * The duration can be specified using various formats supported by the\n * `Duration` module, such as a string (`\"2 seconds\"`) or numeric value\n * representing milliseconds.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * console.log(\"Starting task...\")\n * yield* Effect.sleep(\"3 seconds\") // Waits for 3 seconds\n * console.log(\"Task completed!\")\n * })\n *\n * Effect.runFork(program)\n * // Output:\n * // Starting task...\n * // Task completed!\n * ```\n *\n * @since 2.0.0\n * @category Delays & Timeouts\n */\nexport const sleep = effect.sleep;\n/**\n * Executes an effect and measures the time it takes to complete.\n *\n * **Details**\n *\n * This function wraps the provided effect and returns a new effect that, when\n * executed, performs the original effect and calculates its execution duration.\n *\n * The result of the new effect includes both the execution time (as a\n * `Duration`) and the original effect's result. This is useful for monitoring\n * performance or gaining insights into the time taken by specific operations.\n *\n * The original effect's behavior (success, failure, or interruption) remains\n * unchanged, and the timing information is provided alongside the result in a\n * tuple.\n *\n * **Example**\n *\n * ```ts\n * import { Duration, Effect } from \"effect\"\n *\n * const task = Effect.gen(function*() {\n * yield* Effect.sleep(\"2 seconds\") // Simulates some work\n * return \"some result\"\n * })\n *\n * const timedTask = task.pipe(Effect.timed)\n *\n * const program = Effect.gen(function*() {\n * const [duration, result] = yield* timedTask\n * console.log(`Task completed in ${Duration.toMillis(duration)} ms with result: ${result}`)\n * })\n *\n * Effect.runFork(program)\n * // Output: Task completed in 2003.749125 ms with result: some result\n * ```\n *\n * @since 2.0.0\n * @category Delays & Timeouts\n */\nexport const timed = effect.timed;\n/**\n * Executes an effect and measures its execution time using a custom clock.\n *\n * **Details**\n *\n * This function extends the functionality of {@link timed} by allowing you to\n * specify a custom clock for measuring the execution duration. The provided\n * effect (`nanoseconds`) represents the clock and should return the current\n * time in nanoseconds. The timing information is computed using this custom\n * clock instead of the default system clock.\n *\n * @since 2.0.0\n * @category Delays & Timeouts\n */\nexport const timedWith = effect.timedWith;\n/**\n * Adds a time limit to an effect, triggering a timeout if the effect exceeds\n * the duration.\n *\n * **Details**\n *\n * This function allows you to enforce a time limit on the execution of an\n * effect. If the effect does not complete within the given duration, it fails\n * with a `TimeoutException`. This is useful for preventing tasks from hanging\n * indefinitely, especially in scenarios where responsiveness or resource limits\n * are critical.\n *\n * The returned effect will either:\n * - Succeed with the original effect's result if it completes within the\n * specified duration.\n * - Fail with a `TimeoutException` if the time limit is exceeded.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const task = Effect.gen(function* () {\n * console.log(\"Start processing...\")\n * yield* Effect.sleep(\"2 seconds\") // Simulates a delay in processing\n * console.log(\"Processing complete.\")\n * return \"Result\"\n * })\n *\n * // Output will show a TimeoutException as the task takes longer\n * // than the specified timeout duration\n * const timedEffect = task.pipe(Effect.timeout(\"1 second\"))\n *\n * Effect.runPromiseExit(timedEffect).then(console.log)\n * // Output:\n * // Start processing...\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Fail',\n * // failure: { _tag: 'TimeoutException' }\n * // }\n * // }\n * ```\n *\n * @see {@link timeoutFail} for a version that raises a custom error.\n * @see {@link timeoutFailCause} for a version that raises a custom defect.\n * @see {@link timeoutTo} for a version that allows specifying both success and\n * timeout handlers.\n *\n * @since 2.0.0\n * @category Delays & Timeouts\n */\nexport const timeout = circular.timeout;\n/**\n * Gracefully handles timeouts by returning an `Option` that represents either\n * the result or a timeout.\n *\n * **Details**\n *\n * This function wraps the outcome of an effect in an `Option` type. If the\n * effect completes within the specified duration, it returns a `Some`\n * containing the result. If the effect times out, it returns a `None`. Unlike\n * other timeout methods, this approach does not raise errors or exceptions;\n * instead, it allows you to treat timeouts as a regular outcome, simplifying\n * the logic for handling delays.\n *\n * **When to Use**\n *\n * This is useful when you want to handle timeouts without causing the program\n * to fail, making it easier to manage situations where you expect tasks might\n * take too long but want to continue executing other tasks.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const task = Effect.gen(function* () {\n * console.log(\"Start processing...\")\n * yield* Effect.sleep(\"2 seconds\") // Simulates a delay in processing\n * console.log(\"Processing complete.\")\n * return \"Result\"\n * })\n *\n * const timedOutEffect = Effect.all([\n * task.pipe(Effect.timeoutOption(\"3 seconds\")),\n * task.pipe(Effect.timeoutOption(\"1 second\"))\n * ])\n *\n * Effect.runPromise(timedOutEffect).then(console.log)\n * // Output:\n * // Start processing...\n * // Processing complete.\n * // Start processing...\n * // [\n * // { _id: 'Option', _tag: 'Some', value: 'Result' },\n * // { _id: 'Option', _tag: 'None' }\n * // ]\n * ```\n *\n * @see {@link timeout} for a version that raises a `TimeoutException`.\n * @see {@link timeoutFail} for a version that raises a custom error.\n * @see {@link timeoutFailCause} for a version that raises a custom defect.\n * @see {@link timeoutTo} for a version that allows specifying both success and\n * timeout handlers.\n *\n * @since 3.1.0\n * @category Delays & Timeouts\n */\nexport const timeoutOption = circular.timeoutOption;\n/**\n * Specifies a custom error to be produced when a timeout occurs.\n *\n * **Details**\n *\n * This function allows you to handle timeouts in a customized way by defining a\n * specific error to be raised when an effect exceeds the given duration. Unlike\n * default timeout behaviors that use generic exceptions, this function gives\n * you the flexibility to specify a meaningful error type that aligns with your\n * application's needs.\n *\n * When you apply this function, you provide:\n * - A `duration`: The time limit for the effect.\n * - An `onTimeout` function: A lazy evaluation function that generates the\n * custom error if the timeout occurs.\n *\n * If the effect completes within the time limit, its result is returned\n * normally. Otherwise, the `onTimeout` function is triggered, and its output is\n * used as the error for the effect.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const task = Effect.gen(function* () {\n * console.log(\"Start processing...\")\n * yield* Effect.sleep(\"2 seconds\") // Simulates a delay in processing\n * console.log(\"Processing complete.\")\n * return \"Result\"\n * })\n *\n * class MyTimeoutError {\n * readonly _tag = \"MyTimeoutError\"\n * }\n *\n * const program = task.pipe(\n * Effect.timeoutFail({\n * duration: \"1 second\",\n * onTimeout: () => new MyTimeoutError() // Custom timeout error\n * })\n * )\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // Start processing...\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Fail',\n * // failure: MyTimeoutError { _tag: 'MyTimeoutError' }\n * // }\n * // }\n * ```\n *\n * @see {@link timeout} for a version that raises a `TimeoutException`.\n * @see {@link timeoutFailCause} for a version that raises a custom defect.\n * @see {@link timeoutTo} for a version that allows specifying both success and\n * timeout handlers.\n *\n * @since 2.0.0\n * @category Delays & Timeouts\n */\nexport const timeoutFail = circular.timeoutFail;\n/**\n * Specifies a custom defect to be thrown when a timeout occurs.\n *\n * **Details**\n *\n * This function allows you to handle timeouts as exceptional cases by\n * generating a custom defect when an effect exceeds the specified duration. You\n * provide:\n * - A `duration`: The time limit for the effect.\n * - An `onTimeout` function: A lazy evaluation function that generates the\n * custom defect (typically created using `Cause.die`).\n *\n * If the effect completes within the time limit, its result is returned\n * normally. Otherwise, the custom defect is triggered, and the effect fails\n * with that defect.\n *\n * **When to Use**\n *\n * This is especially useful when you need to treat timeouts as critical\n * failures in your application and wish to include meaningful information in\n * the defect.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Cause } from \"effect\"\n *\n * const task = Effect.gen(function* () {\n * console.log(\"Start processing...\")\n * yield* Effect.sleep(\"2 seconds\") // Simulates a delay in processing\n * console.log(\"Processing complete.\")\n * return \"Result\"\n * })\n *\n * const program = task.pipe(\n * Effect.timeoutFailCause({\n * duration: \"1 second\",\n * onTimeout: () => Cause.die(\"Timed out!\") // Custom defect for timeout\n * })\n * )\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // Start processing...\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: { _id: 'Cause', _tag: 'Die', defect: 'Timed out!' }\n * // }\n * ```\n *\n * @see {@link timeout} for a version that raises a `TimeoutException`.\n * @see {@link timeoutFail} for a version that raises a custom error.\n * @see {@link timeoutTo} for a version that allows specifying both success and\n * timeout handlers.\n *\n * @since 2.0.0\n * @category Delays & Timeouts\n */\nexport const timeoutFailCause = circular.timeoutFailCause;\n/**\n * Provides custom behavior for successful and timed-out operations.\n *\n * **Details**\n *\n * This function allows you to define distinct outcomes for an effect depending\n * on whether it completes within a specified time frame or exceeds the timeout\n * duration. You can provide:\n * - `onSuccess`: A handler for processing the result of the effect if it\n * completes successfully within the time limit.\n * - `onTimeout`: A handler for generating a result when the effect times out.\n * - `duration`: The maximum allowed time for the effect to complete.\n *\n * **When to Use**\n *\n * Unlike {@link timeout}, which raises an exception for timeouts, this function\n * gives you full control over the behavior for both success and timeout\n * scenarios. It is particularly useful when you want to encapsulate timeouts\n * and successes into a specific data structure, like an `Either` type, to\n * represent these outcomes in a meaningful way.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Either } from \"effect\"\n *\n * const task = Effect.gen(function* () {\n * console.log(\"Start processing...\")\n * yield* Effect.sleep(\"2 seconds\") // Simulates a delay in processing\n * console.log(\"Processing complete.\")\n * return \"Result\"\n * })\n *\n * const program = task.pipe(\n * Effect.timeoutTo({\n * duration: \"1 second\",\n * onSuccess: (result): Either.Either =>\n * Either.right(result),\n * onTimeout: (): Either.Either =>\n * Either.left(\"Timed out!\")\n * })\n * )\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // Start processing...\n * // {\n * // _id: \"Either\",\n * // _tag: \"Left\",\n * // left: \"Timed out!\"\n * // }\n * ```\n *\n * @see {@link timeout} for a version that raises a `TimeoutException`.\n * @see {@link timeoutFail} for a version that raises a custom error.\n * @see {@link timeoutFailCause} for a version that raises a custom defect.\n *\n * @since 2.0.0\n * @category Delays & Timeouts\n */\nexport const timeoutTo = circular.timeoutTo;\n/**\n * Allows working with the default configuration provider.\n *\n * **Details**\n *\n * This function retrieves the default configuration provider and passes it to\n * the provided function, which can use it to perform computations or retrieve\n * configuration values. The function can return an effect that leverages the\n * configuration provider for its operations.\n *\n * @since 2.0.0\n * @category Config\n */\nexport const configProviderWith = defaultServices.configProviderWith;\n/**\n * Executes an effect using a specific configuration provider.\n *\n * **Details**\n *\n * This function lets you run an effect with a specified configuration provider.\n * The custom provider will override the default configuration provider for the\n * duration of the effect's execution.\n *\n * **When to Use**\n *\n * This is particularly useful when you need to use a different set of\n * configuration values or sources for specific parts of your application.\n *\n * **Example**\n *\n * ```ts\n * import { Config, ConfigProvider, Effect } from \"effect\"\n *\n * const customProvider: ConfigProvider.ConfigProvider = ConfigProvider.fromMap(\n * new Map([[\"custom-key\", \"custom-value\"]])\n * )\n *\n * const program = Effect.withConfigProvider(customProvider)(\n * Effect.gen(function*() {\n * const value = yield* Config.string(\"custom-key\")\n * console.log(`Config value: ${value}`)\n * })\n * )\n *\n * Effect.runPromise(program)\n * // Output:\n * // Config value: custom-value\n * ```\n *\n * @since 2.0.0\n * @category Config\n */\nexport const withConfigProvider = defaultServices.withConfigProvider;\n/**\n * Sets a configuration provider within a scope.\n *\n * **Details**\n *\n * This function sets the configuration provider to a specified value and\n * ensures that it is restored to its original value when the scope is closed.\n *\n * @since 2.0.0\n * @category Config\n */\nexport const withConfigProviderScoped = fiberRuntime.withConfigProviderScoped;\n/**\n * Accesses the full context of the effect.\n *\n * **Details**\n *\n * This function provides the ability to access the entire context required by\n * an effect. The context is a container that holds dependencies or environment\n * values needed by an effect to run. By using this function, you can retrieve\n * and work with the context directly within an effect.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const context = core.context;\n/**\n * Accesses the context and applies a transformation function.\n *\n * **Details**\n *\n * This function retrieves the context of the effect and applies a pure\n * transformation function to it. The result of the transformation is then\n * returned within the effect.\n *\n * @see {@link contextWithEffect} for a version that allows effectful transformations.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const contextWith = effect.contextWith;\n/**\n * Accesses the context and performs an effectful transformation.\n *\n * **Details**\n *\n * This function retrieves the context and allows you to transform it\n * effectually using another effect. It is useful when the transformation\n * involves asynchronous or effectful operations.\n *\n * @see {@link contextWith} for a version that allows pure transformations.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const contextWithEffect = core.contextWithEffect;\n/**\n * Provides part of the required context while leaving the rest unchanged.\n *\n * **Details**\n *\n * This function allows you to transform the context required by an effect,\n * providing part of the context and leaving the rest to be fulfilled later.\n *\n * **Example**\n *\n * ```ts\n * import { Context, Effect } from \"effect\"\n *\n * class Service1 extends Context.Tag(\"Service1\")() {}\n * class Service2 extends Context.Tag(\"Service2\")() {}\n *\n * const program = Effect.gen(function*() {\n * const service1 = yield* Service1\n * console.log(service1.port)\n * const service2 = yield* Service2\n * console.log(service2.connection)\n * return \"some result\"\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const programWithService1 = Effect.mapInputContext(\n * program,\n * (ctx: Context.Context) => Context.add(ctx, Service1, { port: 3000 })\n * )\n *\n * const runnable = programWithService1.pipe(\n * Effect.provideService(Service2, { connection: \"localhost\" }),\n * Effect.provideService(Service1, { port: 3001 })\n * )\n *\n * Effect.runPromise(runnable)\n * // Output:\n * // 3000\n * // localhost\n * ```\n *\n * @since 2.0.0\n * @category Context\n */\nexport const mapInputContext = core.mapInputContext;\n/**\n * Provides necessary dependencies to an effect, removing its environmental\n * requirements.\n *\n * **Details**\n *\n * This function allows you to supply the required environment for an effect.\n * The environment can be provided in the form of one or more `Layer`s, a\n * `Context`, a `Runtime`, or a `ManagedRuntime`. Once the environment is\n * provided, the effect can run without requiring external dependencies.\n *\n * You can compose layers to create a modular and reusable way of setting up the\n * environment for effects. For example, layers can be used to configure\n * databases, logging services, or any other required dependencies.\n *\n * **Example**\n *\n * ```ts\n * import { Context, Effect, Layer } from \"effect\"\n *\n * class Database extends Context.Tag(\"Database\")<\n * Database,\n * { readonly query: (sql: string) => Effect.Effect> }\n * >() {}\n *\n * const DatabaseLive = Layer.succeed(\n * Database,\n * {\n * // Simulate a database query\n * query: (sql: string) => Effect.log(`Executing query: ${sql}`).pipe(Effect.as([]))\n * }\n * )\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function*() {\n * const database = yield* Database\n * const result = yield* database.query(\"SELECT * FROM users\")\n * return result\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const runnable = Effect.provide(program, DatabaseLive)\n *\n * Effect.runPromise(runnable).then(console.log)\n * // Output:\n * // timestamp=... level=INFO fiber=#0 message=\"Executing query: SELECT * FROM users\"\n * // []\n * ```\n *\n * @see {@link provideService} for providing a service to an effect.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const provide = layer.effect_provide;\n/**\n * Provides an implementation for a service in the context of an effect.\n *\n * **Details**\n *\n * This function allows you to supply a specific implementation for a service\n * required by an effect. Services are typically defined using `Context.Tag`,\n * which acts as a unique identifier for the service. By using this function,\n * you link the service to its concrete implementation, enabling the effect to\n * execute successfully without additional requirements.\n *\n * For example, you can use this function to provide a random number generator,\n * a logger, or any other service your effect depends on. Once the service is\n * provided, all parts of the effect that rely on the service will automatically\n * use the implementation you supplied.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Context } from \"effect\"\n *\n * // Declaring a tag for a service that generates random numbers\n * class Random extends Context.Tag(\"MyRandomService\")<\n * Random,\n * { readonly next: Effect.Effect }\n * >() {}\n *\n * // Using the service\n * const program = Effect.gen(function* () {\n * const random = yield* Random\n * const randomNumber = yield* random.next\n * console.log(`random number: ${randomNumber}`)\n * })\n *\n * // Providing the implementation\n * //\n * // ┌─── Effect\n * // ▼\n * const runnable = Effect.provideService(program, Random, {\n * next: Effect.sync(() => Math.random())\n * })\n *\n * // Run successfully\n * Effect.runPromise(runnable)\n * // Example Output:\n * // random number: 0.8241872233134417\n * ```\n *\n * @see {@link provide} for providing multiple layers to an effect.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const provideService = effect.provideService;\n/**\n * Dynamically provides an implementation for a service using an effect.\n *\n * **Details**\n *\n * This function allows you to provide an implementation for a service\n * dynamically by using another effect. The provided effect is executed to\n * produce the service implementation, which is then made available to the\n * consuming effect. This is particularly useful when the service implementation\n * itself requires asynchronous or resource-intensive initialization.\n *\n * For example, you can use this function to lazily initialize a database\n * connection or fetch configuration values from an external source before\n * making the service available to your effect.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const provideServiceEffect = effect.provideServiceEffect;\n/**\n * Creates a function that uses a service from the context to produce a value.\n *\n * @see {@link serviceFunctionEffect} for a version that returns an effect.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const serviceFunction = effect.serviceFunction;\n/**\n * Creates a function that uses a service from the context to produce an effect.\n *\n * @see {@link serviceFunction} for a version that returns a value.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const serviceFunctionEffect = effect.serviceFunctionEffect;\n/**\n * @since 2.0.0\n * @category Context\n */\nexport const serviceFunctions = effect.serviceFunctions;\n/**\n * @since 2.0.0\n * @category Context\n */\nexport const serviceConstants = effect.serviceConstants;\n/**\n * @since 2.0.0\n * @category Context\n */\nexport const serviceMembers = effect.serviceMembers;\n/**\n * Retrieves an optional service from the context as an `Option`.\n *\n * **Details**\n *\n * This function retrieves a service from the context and wraps it in an\n * `Option`. If the service is available, it returns a `Some` containing the\n * service. If the service is not found, it returns a `None`. This approach is\n * useful when you want to handle the absence of a service gracefully without\n * causing an error.\n *\n * **When to Use**\n *\n * Use this function when:\n * - You need to access a service that may or may not be present in the context.\n * - You want to handle the absence of a service using the `Option` type instead\n * of throwing an error.\n *\n * @see {@link serviceOptional} for a version that throws an error if the service is missing.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const serviceOption = effect.serviceOption;\n/**\n * Retrieves a service from the context, throwing an error if it is missing.\n *\n * **Details**\n *\n * This function retrieves a required service from the context. If the service\n * is available, it returns the service. If the service is missing, it throws a\n * `NoSuchElementException`, which can be handled using Effect's error-handling\n * mechanisms. This is useful for services that are critical to the execution of\n * your effect.\n *\n * @see {@link serviceOption} for a version that returns an `Option` instead of throwing an error.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const serviceOptional = effect.serviceOptional;\n/**\n * Updates a service in the context with a new implementation.\n *\n * **Details**\n *\n * This function modifies the existing implementation of a service in the\n * context. It retrieves the current service, applies the provided\n * transformation function `f`, and replaces the old service with the\n * transformed one.\n *\n * **When to Use**\n *\n * This is useful for adapting or extending a service's behavior during the\n * execution of an effect.\n *\n * @since 2.0.0\n * @category Context\n */\nexport const updateService = effect.updateService;\n/**\n * The \"do simulation\" in Effect allows you to write code in a more declarative style, similar to the \"do notation\" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Effect` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n *\n * **Example**\n *\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Effect, pipe } from \"effect\"\n *\n * const result = pipe(\n * Effect.Do,\n * Effect.bind(\"x\", () => Effect.succeed(2)),\n * Effect.bind(\"y\", () => Effect.succeed(3)),\n * Effect.let(\"sum\", ({ x, y }) => x + y)\n * )\n * assert.deepStrictEqual(Effect.runSync(result), { x: 2, y: 3, sum: 5 })\n * ```\n *\n * @see {@link bind}\n * @see {@link bindTo}\n * @see {@link let_ let}\n *\n * @category Do notation\n * @since 2.0.0\n */\nexport const Do = effect.Do;\n/**\n * The \"do simulation\" in Effect allows you to write code in a more declarative style, similar to the \"do notation\" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Effect` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n *\n * **Example**\n *\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Effect, pipe } from \"effect\"\n *\n * const result = pipe(\n * Effect.Do,\n * Effect.bind(\"x\", () => Effect.succeed(2)),\n * Effect.bind(\"y\", () => Effect.succeed(3)),\n * Effect.let(\"sum\", ({ x, y }) => x + y)\n * )\n * assert.deepStrictEqual(Effect.runSync(result), { x: 2, y: 3, sum: 5 })\n * ```\n *\n * @see {@link Do}\n * @see {@link bindTo}\n * @see {@link let_ let}\n *\n * @category Do notation\n * @since 2.0.0\n */\nexport const bind = effect.bind;\n/**\n * `bindAll` combines `all` with `bind`. It is useful\n * when you want to concurrently run multiple effects and then combine their\n * results in a Do notation pipeline.\n *\n * **Example**\n *\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Effect, Either, pipe } from \"effect\"\n *\n * const result = pipe(\n * Effect.Do,\n * Effect.bind(\"x\", () => Effect.succeed(2)),\n * Effect.bindAll(({ x }) => ({\n * a: Effect.succeed(x),\n * b: Effect.fail(\"oops\"),\n * }), { concurrency: 2, mode: \"either\" })\n * )\n * assert.deepStrictEqual(Effect.runSync(result), { x: 2, a: Either.right(2), b: Either.left(\"oops\") })\n * ```\n *\n * @category Do notation\n * @since 3.7.0\n */\nexport const bindAll = circular.bindAll;\n/**\n * The \"do simulation\" in Effect allows you to write code in a more declarative style, similar to the \"do notation\" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Effect` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n *\n * **Example**\n *\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Effect, pipe } from \"effect\"\n *\n * const result = pipe(\n * Effect.Do,\n * Effect.bind(\"x\", () => Effect.succeed(2)),\n * Effect.bind(\"y\", () => Effect.succeed(3)),\n * Effect.let(\"sum\", ({ x, y }) => x + y)\n * )\n * assert.deepStrictEqual(Effect.runSync(result), { x: 2, y: 3, sum: 5 })\n * ```\n *\n * @see {@link Do}\n * @see {@link bind}\n * @see {@link let_ let}\n *\n * @category Do notation\n * @since 2.0.0\n */\nexport const bindTo = effect.bindTo;\nconst let_ = effect.let_;\nexport {\n/**\n * The \"do simulation\" in Effect allows you to write code in a more declarative style, similar to the \"do notation\" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Effect` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n *\n * **Example**\n *\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Effect, pipe } from \"effect\"\n *\n * const result = pipe(\n * Effect.Do,\n * Effect.bind(\"x\", () => Effect.succeed(2)),\n * Effect.bind(\"y\", () => Effect.succeed(3)),\n * Effect.let(\"sum\", ({ x, y }) => x + y)\n * )\n * assert.deepStrictEqual(Effect.runSync(result), { x: 2, y: 3, sum: 5 })\n *\n * ```\n *\n * @see {@link Do}\n * @see {@link bind}\n * @see {@link bindTo}\n *\n * @category Do notation\n * @since 2.0.0\n */\nlet_ as let };\n/**\n * Encapsulates the result of an effect in an `Option`.\n *\n * **Details**\n *\n * This function wraps the outcome of an effect in an `Option` type. If the\n * original effect succeeds, the success value is wrapped in `Option.some`. If\n * the effect fails, the failure is converted to `Option.none`.\n *\n * This is particularly useful for scenarios where you want to represent the\n * absence of a value explicitly, without causing the resulting effect to fail.\n * The resulting effect has an error type of `never`, meaning it cannot fail\n * directly. However, unrecoverable errors, also referred to as defects, are\n * not captured and will still result in failure.\n *\n * **Example** (Using Effect.option to Handle Errors)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const maybe1 = Effect.option(Effect.succeed(1))\n *\n * Effect.runPromiseExit(maybe1).then(console.log)\n * // Output:\n * // {\n * // _id: 'Exit',\n * // _tag: 'Success',\n * // value: { _id: 'Option', _tag: 'Some', value: 1 }\n * // }\n *\n * const maybe2 = Effect.option(Effect.fail(\"Uh oh!\"))\n *\n * Effect.runPromiseExit(maybe2).then(console.log)\n * // Output:\n * // {\n * // _id: 'Exit',\n * // _tag: 'Success',\n * // value: { _id: 'Option', _tag: 'None' }\n * // }\n *\n * const maybe3 = Effect.option(Effect.die(\"Boom!\"))\n *\n * Effect.runPromiseExit(maybe3).then(console.log)\n * // Output:\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: { _id: 'Cause', _tag: 'Die', defect: 'Boom!' }\n * // }\n * ```\n *\n * @see {@link either} for a version that uses `Either` instead.\n * @see {@link exit} for a version that encapsulates both recoverable errors and defects in an `Exit`.\n *\n * @since 2.0.0\n * @category Outcome Encapsulation\n */\nexport const option = effect.option;\n/**\n * Encapsulates both success and failure of an `Effect` into an `Either` type.\n *\n * **Details**\n *\n * This function converts an effect that may fail into an effect that always\n * succeeds, wrapping the outcome in an `Either` type. The result will be\n * `Either.Left` if the effect fails, containing the recoverable error, or\n * `Either.Right` if it succeeds, containing the result.\n *\n * Using this function, you can handle recoverable errors explicitly without\n * causing the effect to fail. This is particularly useful in scenarios where\n * you want to chain effects and manage both success and failure in the same\n * logical flow.\n *\n * It's important to note that unrecoverable errors, often referred to as\n * \"defects,\" are still thrown and not captured within the `Either` type. Only\n * failures that are explicitly represented as recoverable errors in the effect\n * are encapsulated.\n *\n * The resulting effect cannot fail directly because all recoverable failures\n * are represented inside the `Either` type.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Either, Random } from \"effect\"\n *\n * class HttpError {\n * readonly _tag = \"HttpError\"\n * }\n *\n * class ValidationError {\n * readonly _tag = \"ValidationError\"\n * }\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function* () {\n * const n1 = yield* Random.next\n * const n2 = yield* Random.next\n * if (n1 < 0.5) {\n * yield* Effect.fail(new HttpError())\n * }\n * if (n2 < 0.5) {\n * yield* Effect.fail(new ValidationError())\n * }\n * return \"some result\"\n * })\n *\n * // ┌─── Effect\n * // ▼\n * const recovered = Effect.gen(function* () {\n * // ┌─── Either\n * // ▼\n * const failureOrSuccess = yield* Effect.either(program)\n * return Either.match(failureOrSuccess, {\n * onLeft: (error) => `Recovering from ${error._tag}`,\n * onRight: (value) => value // Do nothing in case of success\n * })\n * })\n * ```\n *\n * @see {@link option} for a version that uses `Option` instead.\n * @see {@link exit} for a version that encapsulates both recoverable errors and defects in an `Exit`.\n *\n * @since 2.0.0\n * @category Outcome Encapsulation\n */\nexport const either = core.either;\n/**\n * Encapsulates both success and failure of an `Effect` using the `Exit` type.\n *\n * **Details**\n *\n * This function converts an effect into one that always succeeds, wrapping its\n * outcome in the `Exit` type. The `Exit` type provides explicit handling of\n * both success (`Exit.Success`) and failure (`Exit.Failure`) cases, including\n * defects (unrecoverable errors).\n *\n * Unlike {@link either} or {@link option}, this function also encapsulates\n * defects, which are typically unrecoverable and would otherwise terminate the\n * effect. With the `Exit` type, defects are represented in `Exit.Failure`,\n * allowing for detailed introspection and structured error handling.\n *\n * This makes the resulting effect robust and incapable of direct failure (its\n * error type is `never`). It is particularly useful for workflows where all\n * outcomes, including unexpected defects, must be managed and analyzed.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Cause, Console, Exit } from \"effect\"\n *\n * // Simulating a runtime error\n * const task = Effect.dieMessage(\"Boom!\")\n *\n * const program = Effect.gen(function* () {\n * const exit = yield* Effect.exit(task)\n * if (Exit.isFailure(exit)) {\n * const cause = exit.cause\n * if (\n * Cause.isDieType(cause) &&\n * Cause.isRuntimeException(cause.defect)\n * ) {\n * yield* Console.log(\n * `RuntimeException defect caught: ${cause.defect.message}`\n * )\n * } else {\n * yield* Console.log(\"Unknown failure caught.\")\n * }\n * }\n * })\n *\n * // We get an Exit.Success because we caught all failures\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // RuntimeException defect caught: Boom!\n * // {\n * // _id: \"Exit\",\n * // _tag: \"Success\",\n * // value: undefined\n * // }\n * ```\n *\n * @see {@link option} for a version that uses `Option` instead.\n * @see {@link either} for a version that uses `Either` instead.\n *\n * @since 2.0.0\n * @category Outcome Encapsulation\n */\nexport const exit = core.exit;\n/**\n * Converts an `Effect` into an operation that completes a `Deferred` with its result.\n *\n * **Details**\n *\n * The `intoDeferred` function takes an effect and a `Deferred` and ensures that the `Deferred`\n * is completed based on the outcome of the effect. If the effect succeeds, the `Deferred` is\n * completed with the success value. If the effect fails, the `Deferred` is completed with the\n * failure. Additionally, if the effect is interrupted, the `Deferred` will also be interrupted.\n *\n * **Example**\n *\n * ```ts\n * import { Deferred, Effect } from \"effect\"\n *\n * // Define an effect that succeeds\n * const successEffect = Effect.succeed(42)\n *\n * const program = Effect.gen(function*() {\n * // Create a deferred\n * const deferred = yield* Deferred.make()\n *\n * // Complete the deferred using the successEffect\n * const isCompleted = yield* Effect.intoDeferred(successEffect, deferred)\n *\n * // Access the value of the deferred\n * const value = yield* Deferred.await(deferred)\n * console.log(value)\n *\n * return isCompleted\n * })\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // 42\n * // true\n * ```\n *\n * @since 2.0.0\n * @category Synchronization Utilities\n */\nexport const intoDeferred = core.intoDeferred;\nconst if_ = core.if_;\nexport {\n/**\n * Executes one of two effects based on a condition evaluated by an effectful predicate.\n *\n * Use `if` to run one of two effects depending on whether the predicate effect\n * evaluates to `true` or `false`. If the predicate is `true`, the `onTrue` effect\n * is executed. If it is `false`, the `onFalse` effect is executed instead.\n *\n * **Example** (Simulating a Coin Flip)\n *\n * ```ts\n * import { Effect, Random, Console } from \"effect\"\n *\n * const flipTheCoin = Effect.if(Random.nextBoolean, {\n * onTrue: () => Console.log(\"Head\"), // Runs if the predicate is true\n * onFalse: () => Console.log(\"Tail\") // Runs if the predicate is false\n * })\n *\n * Effect.runFork(flipTheCoin)\n * ```\n *\n * @since 2.0.0\n * @category Conditional Operators\n */\nif_ as if };\n/**\n * Filters an effect, dying with a custom defect if the predicate fails.\n *\n * **Details**\n *\n * This function applies a predicate to the result of an effect. If the\n * predicate evaluates to `false`, the effect dies with a custom defect\n * generated by the `orDieWith` function.\n *\n * **When to Use**\n *\n * This is useful for enforcing constraints on values and treating violations as\n * fatal program errors.\n *\n * @since 2.0.0\n * @category Filtering\n */\nexport const filterOrDie = effect.filterOrDie;\n/**\n * Filters an effect, dying with a custom message if the predicate fails.\n *\n * **Details**\n *\n * This function works like {@link filterOrDie} but allows you to specify a\n * custom error message to describe the reason for the failure. The message is\n * included in the defect when the predicate evaluates to `false`.\n *\n * @since 2.0.0\n * @category Filtering\n */\nexport const filterOrDieMessage = effect.filterOrDieMessage;\n/**\n * Filters an effect, providing an alternative effect if the predicate fails.\n *\n * **Details**\n *\n * This function applies a predicate to the result of an effect. If the\n * predicate evaluates to `false`, it executes the `orElse` effect instead. The\n * `orElse` effect can produce an alternative value or perform additional\n * computations.\n *\n * @since 2.0.0\n * @category Filtering\n */\nexport const filterOrElse = effect.filterOrElse;\n/**\n * Filters an effect, failing with a custom error if the predicate fails.\n *\n * **Details**\n *\n * This function applies a predicate to the result of an effect. If the\n * predicate evaluates to `false`, the effect fails with a custom error\n * generated by the `orFailWith` function.\n *\n * **When to Use**\n *\n * This is useful for enforcing constraints and treating violations as\n * recoverable errors.\n *\n * **Providing a Guard**\n *\n * In addition to the filtering capabilities discussed earlier, you have the\n * option to further refine and narrow down the type of the success channel by\n * providing a [user-defined type\n * guard](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates).\n * Let's explore this concept through an example:\n *\n * **Example**\n *\n * ```ts\n * import { Effect, pipe } from \"effect\"\n *\n * // Define a user interface\n * interface User {\n * readonly name: string\n * }\n *\n * // Simulate an asynchronous authentication function\n * declare const auth: () => Promise\n *\n * const program = pipe(\n * Effect.promise(() => auth()),\n * // Use filterOrFail with a custom type guard to ensure user is not null\n * Effect.filterOrFail(\n * (user): user is User => user !== null, // Type guard\n * () => new Error(\"Unauthorized\")\n * ),\n * // 'user' now has the type `User` (not `User | null`)\n * Effect.andThen((user) => user.name)\n * )\n * ```\n *\n * @since 2.0.0\n * @category Filtering\n */\nexport const filterOrFail = effect.filterOrFail;\n/**\n * Filters an effect with an effectful predicate, falling back to an alternative\n * effect if the predicate fails.\n *\n * **Details**\n *\n * This function applies a predicate to the result of an effect. If the\n * predicate evaluates to `false`, the effect falls back to the `orElse`\n * effect. The `orElse` effect can produce an alternative value or perform\n * additional computations.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, pipe } from \"effect\"\n *\n * // Define a user interface\n * interface User {\n * readonly name: string\n * }\n *\n * // Simulate an asynchronous authentication function\n * declare const auth: () => Promise\n *\n * const program = pipe(\n * Effect.promise(() => auth()),\n * // Use filterEffectOrElse with an effectful predicate\n * Effect.filterEffectOrElse({\n * predicate: (user) => Effect.succeed(user !== null),\n * orElse: (user) => Effect.fail(new Error(`Unauthorized user: ${user}`))\n * }),\n * )\n * ```\n *\n * @since 3.13.0\n * @category Filtering\n */\nexport const filterEffectOrElse = core.filterEffectOrElse;\n/**\n * Filters an effect with an effectful predicate, failing with a custom error if the predicate fails.\n *\n * **Details**\n *\n * This function applies a predicate to the result of an effect. If the\n * predicate evaluates to `false`, the effect fails with a custom error\n * generated by the `orFailWith` function.\n *\n * **When to Use**\n *\n * This is useful for enforcing constraints and treating violations as\n * recoverable errors.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, pipe } from \"effect\"\n *\n * // Define a user interface\n * interface User {\n * readonly name: string\n * }\n *\n * // Simulate an asynchronous authentication function\n * declare const auth: () => Promise\n *\n * const program = pipe(\n * Effect.promise(() => auth()),\n * // Use filterEffectOrFail with an effectful predicate\n * Effect.filterEffectOrFail({\n * predicate: (user) => Effect.succeed(user !== null),\n * orFailWith: () => new Error(\"Unauthorized\")\n * }),\n * )\n * ```\n *\n * @since 3.13.0\n * @category Filtering\n */\nexport const filterEffectOrFail = core.filterEffectOrFail;\n/**\n * Executes an effect only if the condition is `false`.\n *\n * @see {@link unlessEffect} for a version that allows the condition to be an effect.\n * @see {@link when} for a version that executes the effect when the condition is `true`.\n *\n * @since 2.0.0\n * @category Conditional Operators\n */\nexport const unless = effect.unless;\n/**\n * Conditionally execute an effect based on the result of another effect.\n *\n * @see {@link unless} for a version that allows the condition to be a boolean.\n * @see {@link whenEffect} for a version that executes the effect when the condition is `true`.\n *\n * @since 2.0.0\n * @category Conditional Operators\n */\nexport const unlessEffect = effect.unlessEffect;\n/**\n * Conditionally executes an effect based on a boolean condition.\n *\n * **Details**\n *\n * This function allows you to run an effect only if a given condition evaluates\n * to `true`. If the condition is `true`, the effect is executed, and its result\n * is wrapped in an `Option.some`. If the condition is `false`, the effect is\n * skipped, and the result is `Option.none`.\n *\n * **When to Use**\n *\n * This function is useful for scenarios where you need to dynamically decide\n * whether to execute an effect based on runtime logic, while also representing\n * the skipped case explicitly.\n *\n * **Example** (Conditional Effect Execution)\n *\n * ```ts\n * import { Effect, Option } from \"effect\"\n *\n * const validateWeightOption = (\n * weight: number\n * ): Effect.Effect> =>\n * // Conditionally execute the effect if the weight is non-negative\n * Effect.succeed(weight).pipe(Effect.when(() => weight >= 0))\n *\n * // Run with a valid weight\n * Effect.runPromise(validateWeightOption(100)).then(console.log)\n * // Output:\n * // {\n * // _id: \"Option\",\n * // _tag: \"Some\",\n * // value: 100\n * // }\n *\n * // Run with an invalid weight\n * Effect.runPromise(validateWeightOption(-5)).then(console.log)\n * // Output:\n * // {\n * // _id: \"Option\",\n * // _tag: \"None\"\n * // }\n * ```\n *\n * @see {@link whenEffect} for a version that allows the condition to be an effect.\n * @see {@link unless} for a version that executes the effect when the condition is `false`.\n *\n * @since 2.0.0\n * @category Conditional Operators\n */\nexport const when = effect.when;\n/**\n * Conditionally executes an effect based on the result of another effect.\n *\n * **Details**\n *\n * This function allows you to run an effect only if a conditional effect\n * evaluating to a boolean resolves to `true`. If the conditional effect\n * evaluates to `true`, the specified effect is executed, and its result is\n * wrapped in `Option.some`. If the conditional effect evaluates to `false`, the\n * effect is skipped, and the result is `Option.none`.\n *\n * **When to Use**\n *\n * This function is particularly useful when the decision to execute an effect\n * depends on the result of another effect, such as a random value, a\n * user-provided input, or a network request result.\n *\n * **Example** (Using an Effect as a Condition)\n *\n * ```ts\n * import { Effect, Random } from \"effect\"\n *\n * const randomIntOption = Random.nextInt.pipe(\n * Effect.whenEffect(Random.nextBoolean)\n * )\n *\n * console.log(Effect.runSync(randomIntOption))\n * // Example Output:\n * // { _id: 'Option', _tag: 'Some', value: 8609104974198840 }\n * ```\n *\n * @see {@link when} for a version that allows the condition to be a boolean.\n * @see {@link unlessEffect} for a version that executes the effect when the condition is `false`.\n *\n * @since 2.0.0\n * @category Conditional Operators\n */\nexport const whenEffect = core.whenEffect;\n/**\n * Executes an effect conditionally based on the value of a `FiberRef` that\n * satisfies a predicate.\n *\n * **Details**\n *\n * This function enables you to execute an effect only when the value of a\n * specified `FiberRef` meets a certain condition defined by a predicate. If the\n * value satisfies the predicate, the effect is executed, and the result is\n * wrapped in an `Option.some`. If the predicate is not satisfied, the effect is\n * skipped, and the result is `Option.none`. In both cases, the current value of\n * the `FiberRef` is included in the result.\n *\n * @since 2.0.0\n * @category Conditional Operators\n */\nexport const whenFiberRef = effect.whenFiberRef;\n/**\n * Executes an effect conditionally based on the value of a `Ref` that satisfies\n * a predicate.\n *\n * **Details**\n *\n * This function allows you to execute an effect only when the value of a\n * specified `Ref` meets a condition defined by a predicate. If the value\n * satisfies the predicate, the effect is executed, and the result is wrapped in\n * an `Option.some`. If the predicate is not satisfied, the effect is skipped,\n * and the result is `Option.none`. In both cases, the current value of the\n * `Ref` is included in the result.\n *\n * @since 2.0.0\n * @category Conditional Operators\n */\nexport const whenRef = effect.whenRef;\n/**\n * Chains effects to produce new `Effect` instances, useful for combining\n * operations that depend on previous results.\n *\n * **Syntax**\n *\n * ```ts skip-type-checking\n * const flatMappedEffect = pipe(myEffect, Effect.flatMap(transformation))\n * // or\n * const flatMappedEffect = Effect.flatMap(myEffect, transformation)\n * // or\n * const flatMappedEffect = myEffect.pipe(Effect.flatMap(transformation))\n * ```\n *\n * **Details**\n *\n * `flatMap` lets you sequence effects so that the result of one effect can be\n * used in the next step. It is similar to `flatMap` used with arrays but works\n * specifically with `Effect` instances, allowing you to avoid deeply nested\n * effect structures.\n *\n * Since effects are immutable, `flatMap` always returns a new effect instead of\n * changing the original one.\n *\n * **When to Use**\n *\n * Use `flatMap` when you need to chain multiple effects, ensuring that each\n * step produces a new `Effect` while flattening any nested effects that may\n * occur.\n *\n * **Example**\n *\n * ```ts\n * import { pipe, Effect } from \"effect\"\n *\n * // Function to apply a discount safely to a transaction amount\n * const applyDiscount = (\n * total: number,\n * discountRate: number\n * ): Effect.Effect =>\n * discountRate === 0\n * ? Effect.fail(new Error(\"Discount rate cannot be zero\"))\n * : Effect.succeed(total - (total * discountRate) / 100)\n *\n * // Simulated asynchronous task to fetch a transaction amount from database\n * const fetchTransactionAmount = Effect.promise(() => Promise.resolve(100))\n *\n * // Chaining the fetch and discount application using `flatMap`\n * const finalAmount = pipe(\n * fetchTransactionAmount,\n * Effect.flatMap((amount) => applyDiscount(amount, 5))\n * )\n *\n * Effect.runPromise(finalAmount).then(console.log)\n * // Output: 95\n * ```\n *\n * @see {@link tap} for a version that ignores the result of the effect.\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const flatMap = core.flatMap;\n/**\n * Chains two actions, where the second action can depend on the result of the\n * first.\n *\n * **Syntax**\n *\n * ```ts skip-type-checking\n * const transformedEffect = pipe(myEffect, Effect.andThen(anotherEffect))\n * // or\n * const transformedEffect = Effect.andThen(myEffect, anotherEffect)\n * // or\n * const transformedEffect = myEffect.pipe(Effect.andThen(anotherEffect))\n * ```\n *\n * **When to Use**\n *\n * Use `andThen` when you need to run multiple actions in sequence, with the\n * second action depending on the result of the first. This is useful for\n * combining effects or handling computations that must happen in order.\n *\n * **Details**\n *\n * The second action can be:\n *\n * - A constant value (similar to {@link as})\n * - A function returning a value (similar to {@link map})\n * - A `Promise`\n * - A function returning a `Promise`\n * - An `Effect`\n * - A function returning an `Effect` (similar to {@link flatMap})\n *\n * **Note:** `andThen` works well with both `Option` and `Either` types,\n * treating them as effects.\n *\n * **Example** (Applying a Discount Based on Fetched Amount)\n *\n * ```ts\n * import { pipe, Effect } from \"effect\"\n *\n * // Function to apply a discount safely to a transaction amount\n * const applyDiscount = (\n * total: number,\n * discountRate: number\n * ): Effect.Effect =>\n * discountRate === 0\n * ? Effect.fail(new Error(\"Discount rate cannot be zero\"))\n * : Effect.succeed(total - (total * discountRate) / 100)\n *\n * // Simulated asynchronous task to fetch a transaction amount from database\n * const fetchTransactionAmount = Effect.promise(() => Promise.resolve(100))\n *\n * // Using Effect.map and Effect.flatMap\n * const result1 = pipe(\n * fetchTransactionAmount,\n * Effect.map((amount) => amount * 2),\n * Effect.flatMap((amount) => applyDiscount(amount, 5))\n * )\n *\n * Effect.runPromise(result1).then(console.log)\n * // Output: 190\n *\n * // Using Effect.andThen\n * const result2 = pipe(\n * fetchTransactionAmount,\n * Effect.andThen((amount) => amount * 2),\n * Effect.andThen((amount) => applyDiscount(amount, 5))\n * )\n *\n * Effect.runPromise(result2).then(console.log)\n * // Output: 190\n * ```\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const andThen = core.andThen;\n/**\n * @since 2.0.0\n * @category Sequencing\n */\nexport const flatten = core.flatten;\n/**\n * Races two effects and returns the result of the first successful one.\n *\n * **Details**\n *\n * This function takes two effects and runs them concurrently. The first effect\n * that successfully completes will determine the result of the race, and the\n * other effect will be interrupted.\n *\n * If neither effect succeeds, the function will fail with a `Cause`\n * containing all the errors.\n *\n * **When to Use**\n *\n * This is useful when you want to run two effects concurrently, but only care\n * about the first one to succeed. It is commonly used in cases like timeouts,\n * retries, or when you want to optimize for the faster response without\n * worrying about the other effect.\n *\n * **Handling Success or Failure with Either**\n *\n * If you want to handle the result of whichever task completes first, whether\n * it succeeds or fails, you can use the `Effect.either` function. This function\n * wraps the result in an `Either` type, allowing you to see if the result\n * was a success (`Right`) or a failure (`Left`).\n *\n * **Example** (Both Tasks Succeed)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.succeed(\"task1\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() => Console.log(\"task1 interrupted\"))\n * )\n * const task2 = Effect.succeed(\"task2\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() => Console.log(\"task2 interrupted\"))\n * )\n *\n * const program = Effect.race(task1, task2)\n *\n * Effect.runFork(program)\n * // Output:\n * // task1 done\n * // task2 interrupted\n * ```\n *\n * **Example** (One Task Fails, One Succeeds)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.fail(\"task1\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() => Console.log(\"task1 interrupted\"))\n * )\n * const task2 = Effect.succeed(\"task2\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() => Console.log(\"task2 interrupted\"))\n * )\n *\n * const program = Effect.race(task1, task2)\n *\n * Effect.runFork(program)\n * // Output:\n * // task2 done\n * ```\n *\n * **Example** (Both Tasks Fail)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.fail(\"task1\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() => Console.log(\"task1 interrupted\"))\n * )\n * const task2 = Effect.fail(\"task2\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() => Console.log(\"task2 interrupted\"))\n * )\n *\n * const program = Effect.race(task1, task2)\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Parallel',\n * // left: { _id: 'Cause', _tag: 'Fail', failure: 'task1' },\n * // right: { _id: 'Cause', _tag: 'Fail', failure: 'task2' }\n * // }\n * // }\n * ```\n *\n * **Example** (Handling Success or Failure with Either)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.fail(\"task1\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() => Console.log(\"task1 interrupted\"))\n * )\n * const task2 = Effect.succeed(\"task2\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() => Console.log(\"task2 interrupted\"))\n * )\n *\n * // Run both tasks concurrently, wrapping the result\n * // in Either to capture success or failure\n * const program = Effect.race(Effect.either(task1), Effect.either(task2))\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // task2 interrupted\n * // { _id: 'Either', _tag: 'Left', left: 'task1' }\n * ```\n *\n * @see {@link raceAll} for a version that handles multiple effects.\n * @see {@link raceFirst} for a version that returns the result of the first effect to complete.\n *\n * @since 2.0.0\n * @category Racing\n */\nexport const race = fiberRuntime.race;\n/**\n * Races multiple effects and returns the first successful result.\n *\n * **Details**\n *\n * This function runs multiple effects concurrently and returns the result of\n * the first one to succeed. If one effect succeeds, the others will be\n * interrupted.\n *\n * If none of the effects succeed, the function will fail with the last error\n * encountered.\n *\n * **When to Use**\n *\n * This is useful when you want to race multiple effects, but only care about\n * the first one to succeed. It is commonly used in cases like timeouts,\n * retries, or when you want to optimize for the faster response without\n * worrying about the other effects.\n *\n * **Example** (All Tasks Succeed)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.succeed(\"task1\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() => Console.log(\"task1 interrupted\"))\n * )\n * const task2 = Effect.succeed(\"task2\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() => Console.log(\"task2 interrupted\"))\n * )\n *\n * const task3 = Effect.succeed(\"task3\").pipe(\n * Effect.delay(\"150 millis\"),\n * Effect.tap(Console.log(\"task3 done\")),\n * Effect.onInterrupt(() => Console.log(\"task3 interrupted\"))\n * )\n *\n * const program = Effect.raceAll([task1, task2, task3])\n *\n * Effect.runFork(program)\n * // Output:\n * // task1 done\n * // task2 interrupted\n * // task3 interrupted\n * ```\n *\n * **Example** (One Task Fails, Two Tasks Succeed)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.fail(\"task1\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() => Console.log(\"task1 interrupted\"))\n * )\n * const task2 = Effect.succeed(\"task2\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() => Console.log(\"task2 interrupted\"))\n * )\n *\n * const task3 = Effect.succeed(\"task3\").pipe(\n * Effect.delay(\"150 millis\"),\n * Effect.tap(Console.log(\"task3 done\")),\n * Effect.onInterrupt(() => Console.log(\"task3 interrupted\"))\n * )\n *\n * const program = Effect.raceAll([task1, task2, task3])\n *\n * Effect.runFork(program)\n * // Output:\n * // task3 done\n * // task2 interrupted\n * ```\n *\n * **Example** (All Tasks Fail)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.fail(\"task1\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() => Console.log(\"task1 interrupted\"))\n * )\n * const task2 = Effect.fail(\"task2\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() => Console.log(\"task2 interrupted\"))\n * )\n *\n * const task3 = Effect.fail(\"task3\").pipe(\n * Effect.delay(\"150 millis\"),\n * Effect.tap(Console.log(\"task3 done\")),\n * Effect.onInterrupt(() => Console.log(\"task3 interrupted\"))\n * )\n *\n * const program = Effect.raceAll([task1, task2, task3])\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: { _id: 'Cause', _tag: 'Fail', failure: 'task2' }\n * // }\n * ```\n *\n * @see {@link race} for a version that handles only two effects.\n *\n * @since 2.0.0\n * @category Racing\n */\nexport const raceAll = fiberRuntime.raceAll;\n/**\n * Races two effects and returns the result of the first one to complete.\n *\n * **Details**\n *\n * This function takes two effects and runs them concurrently, returning the\n * result of the first one that completes, regardless of whether it succeeds or\n * fails.\n *\n * **When to Use**\n *\n * This function is useful when you want to race two operations, and you want to\n * proceed with whichever one finishes first, regardless of whether it succeeds\n * or fails.\n *\n * **Disconnecting Effects**\n *\n * The `Effect.raceFirst` function safely interrupts the “loser” effect once the other completes, but it will not resume until the loser is cleanly terminated.\n *\n * If you want a quicker return, you can disconnect the interrupt signal for both effects. Instead of calling:\n *\n * ```ts skip-type-checking\n * Effect.raceFirst(task1, task2)\n * ```\n *\n * You can use:\n *\n * ```ts skip-type-checking\n * Effect.raceFirst(Effect.disconnect(task1), Effect.disconnect(task2))\n * ```\n *\n * This allows both effects to complete independently while still terminating the losing effect in the background.\n *\n * **Example** (Both Tasks Succeed)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.succeed(\"task1\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() =>\n * Console.log(\"task1 interrupted\").pipe(Effect.delay(\"100 millis\"))\n * )\n * )\n * const task2 = Effect.succeed(\"task2\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() =>\n * Console.log(\"task2 interrupted\").pipe(Effect.delay(\"100 millis\"))\n * )\n * )\n *\n * const program = Effect.raceFirst(task1, task2).pipe(\n * Effect.tap(Console.log(\"more work...\"))\n * )\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // task1 done\n * // task2 interrupted\n * // more work...\n * // { _id: 'Exit', _tag: 'Success', value: 'task1' }\n * ```\n *\n * **Example** (One Task Fails, One Succeeds)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.fail(\"task1\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() =>\n * Console.log(\"task1 interrupted\").pipe(Effect.delay(\"100 millis\"))\n * )\n * )\n * const task2 = Effect.succeed(\"task2\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() =>\n * Console.log(\"task2 interrupted\").pipe(Effect.delay(\"100 millis\"))\n * )\n * )\n *\n * const program = Effect.raceFirst(task1, task2).pipe(\n * Effect.tap(Console.log(\"more work...\"))\n * )\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // task2 interrupted\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: { _id: 'Cause', _tag: 'Fail', failure: 'task1' }\n * // }\n * ```\n *\n * **Example** (Using Effect.disconnect for Quicker Return)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.succeed(\"task1\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() =>\n * Console.log(\"task1 interrupted\").pipe(Effect.delay(\"100 millis\"))\n * )\n * )\n * const task2 = Effect.succeed(\"task2\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() =>\n * Console.log(\"task2 interrupted\").pipe(Effect.delay(\"100 millis\"))\n * )\n * )\n *\n * // Race the two tasks with disconnect to allow quicker return\n * const program = Effect.raceFirst(\n * Effect.disconnect(task1),\n * Effect.disconnect(task2)\n * ).pipe(Effect.tap(Console.log(\"more work...\")))\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // task1 done\n * // more work...\n * // { _id: 'Exit', _tag: 'Success', value: 'task1' }\n * // task2 interrupted\n * ```\n *\n * @since 2.0.0\n * @category Racing\n */\nexport const raceFirst = circular.raceFirst;\n/**\n * Races two effects and calls a finisher when the first one completes.\n *\n * **Details**\n *\n * This function runs two effects concurrently and calls a specified “finisher”\n * function once one of the effects completes, regardless of whether it succeeds\n * or fails.\n *\n * The finisher functions for each effect allow you to handle the results of\n * each effect as soon as they complete.\n *\n * The function takes two finisher callbacks, one for each effect, and allows\n * you to specify how to handle the result of the race.\n *\n * **When to Use**\n *\n * This function is useful when you need to react to the completion of either\n * effect without waiting for both to finish. It can be used whenever you want\n * to take action based on the first available result.\n *\n * **Example** (Handling Results of Concurrent Tasks)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Effect.succeed(\"task1\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Console.log(\"task1 done\")),\n * Effect.onInterrupt(() =>\n * Console.log(\"task1 interrupted\").pipe(Effect.delay(\"100 millis\"))\n * )\n * )\n * const task2 = Effect.succeed(\"task2\").pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Console.log(\"task2 done\")),\n * Effect.onInterrupt(() =>\n * Console.log(\"task2 interrupted\").pipe(Effect.delay(\"100 millis\"))\n * )\n * )\n *\n * const program = Effect.raceWith(task1, task2, {\n * onSelfDone: (exit) => Console.log(`task1 exited with ${exit}`),\n * onOtherDone: (exit) => Console.log(`task2 exited with ${exit}`)\n * })\n *\n * Effect.runFork(program)\n * // Output:\n * // task1 done\n * // task1 exited with {\n * // \"_id\": \"Exit\",\n * // \"_tag\": \"Success\",\n * // \"value\": \"task1\"\n * // }\n * // task2 interrupted\n * ```\n *\n * @since 2.0.0\n * @category Racing\n */\nexport const raceWith = fiberRuntime.raceWith;\n/**\n * Summarizes a effect by computing some value before and after execution, and\n * then combining the values to produce a summary, together with the result of\n * execution.\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const summarized = effect.summarized;\n/**\n * Runs a side effect with the result of an effect without changing the original\n * value.\n *\n * **Details**\n *\n * This function works similarly to `flatMap`, but it ignores the result of the\n * function passed to it. The value from the previous effect remains available\n * for the next part of the chain. Note that if the side effect fails, the\n * entire chain will fail too.\n *\n * **When to Use**\n *\n * Use this function when you want to perform a side effect, like logging or\n * tracking, without modifying the main value. This is useful when you need to\n * observe or record an action but want the original value to be passed to the\n * next step.\n *\n * **Example** (Logging a step in a pipeline)\n *\n * ```ts\n * import { Console, Effect, pipe } from \"effect\"\n *\n * // Function to apply a discount safely to a transaction amount\n * const applyDiscount = (\n * total: number,\n * discountRate: number\n * ): Effect.Effect =>\n * discountRate === 0\n * ? Effect.fail(new Error(\"Discount rate cannot be zero\"))\n * : Effect.succeed(total - (total * discountRate) / 100)\n *\n * // Simulated asynchronous task to fetch a transaction amount from database\n * const fetchTransactionAmount = Effect.promise(() => Promise.resolve(100))\n *\n * const finalAmount = pipe(\n * fetchTransactionAmount,\n * // Log the fetched transaction amount\n * Effect.tap((amount) => Console.log(`Apply a discount to: ${amount}`)),\n * // `amount` is still available!\n * Effect.flatMap((amount) => applyDiscount(amount, 5))\n * )\n *\n * Effect.runPromise(finalAmount).then(console.log)\n * // Output:\n * // Apply a discount to: 100\n * // 95\n * ```\n *\n * @see {@link flatMap} for a version that allows you to change the value.\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const tap = core.tap;\n/**\n * Allows you to inspect both success and failure outcomes of an effect and\n * perform side effects for each.\n *\n * **Details**\n *\n * This function enables you to handle both success and failure cases\n * separately, without modifying the main effect's result. It is particularly\n * useful for scenarios where you need to log, monitor, or perform additional\n * actions depending on whether the effect succeeded or failed.\n *\n * When the effect succeeds, the `onSuccess` handler is executed with the\n * success value. When the effect fails, the `onFailure` handler is executed\n * with the failure value. Both handlers can include side effects such as\n * logging or analytics, and neither modifies the original effect's output.\n *\n * If either the success or failure handler fails, the overall effect will also\n * fail.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Random, Console } from \"effect\"\n *\n * // Simulate a task that might fail\n * const task = Effect.filterOrFail(\n * Random.nextRange(-1, 1),\n * (n) => n >= 0,\n * () => \"random number is negative\"\n * )\n *\n * // Use tapBoth to log both success and failure outcomes\n * const tapping = Effect.tapBoth(task, {\n * onFailure: (error) => Console.log(`failure: ${error}`),\n * onSuccess: (randomNumber) =>\n * Console.log(`random number: ${randomNumber}`)\n * })\n *\n * Effect.runFork(tapping)\n * // Example Output:\n * // failure: random number is negative\n * ```\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const tapBoth = effect.tapBoth;\n/**\n * Inspect severe errors or defects (non-recoverable failures) in an effect.\n *\n * **Details**\n *\n * This function is specifically designed to handle and inspect defects, which\n * are critical failures in your program, such as unexpected runtime exceptions\n * or system-level errors. Unlike normal recoverable errors, defects typically\n * indicate serious issues that cannot be addressed through standard error\n * handling.\n *\n * When a defect occurs in an effect, the function you provide to this function\n * will be executed, allowing you to log, monitor, or handle the defect in some\n * way. Importantly, this does not alter the main result of the effect. If no\n * defect occurs, the effect behaves as if this function was not used.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // Simulate a task that fails with a recoverable error\n * const task1: Effect.Effect = Effect.fail(\"NetworkError\")\n *\n * // tapDefect won't log anything because NetworkError is not a defect\n * const tapping1 = Effect.tapDefect(task1, (cause) =>\n * Console.log(`defect: ${cause}`)\n * )\n *\n * Effect.runFork(tapping1)\n * // No Output\n *\n * // Simulate a severe failure in the system\n * const task2: Effect.Effect = Effect.dieMessage(\n * \"Something went wrong\"\n * )\n *\n * // Log the defect using tapDefect\n * const tapping2 = Effect.tapDefect(task2, (cause) =>\n * Console.log(`defect: ${cause}`)\n * )\n *\n * Effect.runFork(tapping2)\n * // Output:\n * // defect: RuntimeException: Something went wrong\n * // ... stack trace ...\n * ```\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const tapDefect = effect.tapDefect;\n/**\n * Execute a side effect on failure without modifying the original effect.\n *\n * **Details**\n *\n * This function allows you to inspect and react to the failure of an effect by\n * executing an additional effect. The failure value is passed to the provided\n * function, enabling you to log it, track it, or perform any other operation.\n * Importantly, the original failure remains intact and is re-propagated, so the\n * effect's behavior is unchanged.\n *\n * The side effect you provide is only executed when the effect fails. If the\n * effect succeeds, the function is ignored, and the success value is propagated\n * as usual.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // Simulate a task that fails with an error\n * const task: Effect.Effect = Effect.fail(\"NetworkError\")\n *\n * // Use tapError to log the error message when the task fails\n * const tapping = Effect.tapError(task, (error) =>\n * Console.log(`expected error: ${error}`)\n * )\n *\n * Effect.runFork(tapping)\n * // Output:\n * // expected error: NetworkError\n * ```\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const tapError = effect.tapError;\n/**\n * Inspect errors matching a specific tag without altering the original effect.\n *\n * **Details**\n *\n * This function allows you to inspect and handle specific error types based on\n * their `_tag` property. It is particularly useful in applications where errors\n * are modeled with tagged types (e.g., union types with discriminating tags).\n * By targeting errors with a specific `_tag`, you can log or perform actions on\n * them while leaving the error channel and overall effect unchanged.\n *\n * If the error doesn't match the specified tag, this function does nothing, and\n * the effect proceeds as usual.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * class NetworkError {\n * readonly _tag = \"NetworkError\"\n * constructor(readonly statusCode: number) {}\n * }\n *\n * class ValidationError {\n * readonly _tag = \"ValidationError\"\n * constructor(readonly field: string) {}\n * }\n *\n * // Create a task that fails with a NetworkError\n * const task: Effect.Effect =\n * Effect.fail(new NetworkError(504))\n *\n * // Use tapErrorTag to inspect only NetworkError types and log the status code\n * const tapping = Effect.tapErrorTag(task, \"NetworkError\", (error) =>\n * Console.log(`expected error: ${error.statusCode}`)\n * )\n *\n * Effect.runFork(tapping)\n * // Output:\n * // expected error: 504\n * ```\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const tapErrorTag = effect.tapErrorTag;\n/**\n * Inspect the complete cause of an error, including failures and defects.\n *\n * **Details**\n *\n * This function provides access to the full cause of an error, including both\n * recoverable failures and irrecoverable defects. It allows you to handle, log,\n * or monitor specific error causes without modifying the result of the effect.\n * The full `Cause` object encapsulates the error and its contextual\n * information, making it useful for debugging and understanding failure\n * scenarios in complex workflows.\n *\n * The effect itself is not modified, and any errors or defects remain in the\n * error channel of the original effect.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * // Create a task that fails with a NetworkError\n * const task1: Effect.Effect = Effect.fail(\"NetworkError\")\n *\n * const tapping1 = Effect.tapErrorCause(task1, (cause) =>\n * Console.log(`error cause: ${cause}`)\n * )\n *\n * Effect.runFork(tapping1)\n * // Output:\n * // error cause: Error: NetworkError\n *\n * // Simulate a severe failure in the system\n * const task2: Effect.Effect = Effect.dieMessage(\n * \"Something went wrong\"\n * )\n *\n * const tapping2 = Effect.tapErrorCause(task2, (cause) =>\n * Console.log(`error cause: ${cause}`)\n * )\n *\n * Effect.runFork(tapping2)\n * // Output:\n * // error cause: RuntimeException: Something went wrong\n * // ... stack trace ...\n * ```\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const tapErrorCause = effect.tapErrorCause;\n/**\n * Repeats an effect indefinitely until an error occurs.\n *\n * **Details**\n *\n * This function executes an effect repeatedly in an infinite loop. Each\n * iteration is executed sequentially, and the loop continues until the first\n * error occurs. If the effect succeeds, it starts over from the beginning. If\n * the effect fails, the error is propagated, and the loop stops.\n *\n * Be cautious when using this function, as it will run indefinitely unless an\n * error interrupts it. This makes it suitable for long-running processes or\n * continuous polling tasks, but you should ensure proper error handling or\n * combine it with other operators like `timeout` or `schedule` to prevent\n * unintentional infinite loops.\n *\n * @since 2.0.0\n * @category Repetition / Recursion\n */\nexport const forever = effect.forever;\n/**\n * Repeatedly updates a state through an effectful operation until a condition\n * is no longer met.\n *\n * **Details**\n *\n * This function provides a way to implement effectful loops, similar to a\n * `while` loop in JavaScript.\n *\n * ```ts skip-type-checking\n * let result = initial\n *\n * while (options.while(result)) {\n * result = options.body(result)\n * }\n *\n * return result\n * ```\n *\n * It starts with an initial state, checks a\n * condition (`while`), and executes a body operation to update the state if the\n * condition evaluates to `true`. The process repeats until the condition\n * returns `false`.\n *\n * The state is passed between iterations, allowing the body operation to modify\n * it dynamically. The final state after the loop ends is returned as the result\n * of the effect.\n *\n * **When to Use**\n *\n * This is particularly useful for scenarios where looping logic involves\n * asynchronous or side-effectful operations, such as polling or iterative\n * computations that depend on external factors.\n *\n * **Example** (Effectful Iteration)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const result = Effect.iterate(\n * // Initial result\n * 1,\n * {\n * // Condition to continue iterating\n * while: (result) => result <= 5,\n * // Operation to change the result\n * body: (result) => Effect.succeed(result + 1)\n * }\n * )\n *\n * Effect.runPromise(result).then(console.log)\n * // Output: 6\n * ```\n *\n * @since 2.0.0\n * @category Looping\n */\nexport const iterate = effect.iterate;\n/**\n * Repeatedly executes a loop with a state, collecting results or discarding\n * them based on configuration.\n *\n * **Details**\n *\n * This function performs an effectful loop, starting with an initial state and\n * iterating as long as the `while` condition evaluates to `true`, similar to a\n * `while` loop in JavaScript.\n *\n * ```ts skip-type-checking\n * let state = initial\n * const result = []\n *\n * while (options.while(state)) {\n * result.push(options.body(state)) // Perform the effectful operation\n * state = options.step(state) // Update the state\n * }\n *\n * return result\n * ```\n *\n * During each iteration, the `step` function updates the state, and the `body`\n * effect is executed.\n *\n * The results of the body effect can be collected in an array or discarded\n * based on the `discard` option.\n *\n * **Discarding Intermediate Results**\n *\n * - If `discard` is `false` or not provided, the intermediate results are\n * collected into an array and returned as the final result.\n * - If `discard` is `true`, the intermediate results are ignored, and the\n * effect returns `void`.\n *\n * **When to Use**\n *\n * This is useful for implementing loops where you need to perform effectful\n * computations repeatedly, such as processing items in a list, generating\n * values, or performing iterative updates.\n *\n * **Example** (Looping with Collected Results)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // A loop that runs 5 times, collecting each iteration's result\n * const result = Effect.loop(\n * // Initial state\n * 1,\n * {\n * // Condition to continue looping\n * while: (state) => state <= 5,\n * // State update function\n * step: (state) => state + 1,\n * // Effect to be performed on each iteration\n * body: (state) => Effect.succeed(state)\n * }\n * )\n *\n * Effect.runPromise(result).then(console.log)\n * // Output: [1, 2, 3, 4, 5]\n * ```\n *\n * **Example** (Loop with Discarded Results)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const result = Effect.loop(\n * // Initial state\n * 1,\n * {\n * // Condition to continue looping\n * while: (state) => state <= 5,\n * // State update function\n * step: (state) => state + 1,\n * // Effect to be performed on each iteration\n * body: (state) => Console.log(`Currently at state ${state}`),\n * // Discard intermediate results\n * discard: true\n * }\n * )\n *\n * Effect.runPromise(result).then(console.log)\n * // Output:\n * // Currently at state 1\n * // Currently at state 2\n * // Currently at state 3\n * // Currently at state 4\n * // Currently at state 5\n * // undefined\n * ```\n *\n * @since 2.0.0\n * @category Looping\n */\nexport const loop = effect.loop;\n/**\n * Repeats an effect based on a specified schedule or until the first failure.\n *\n * **Details**\n *\n * This function executes an effect repeatedly according to the given schedule.\n * Each repetition occurs after the initial execution of the effect, meaning\n * that the schedule determines the number of additional repetitions. For\n * example, using `Schedule.once` will result in the effect being executed twice\n * (once initially and once as part of the repetition).\n *\n * If the effect succeeds, it is repeated according to the schedule. If it\n * fails, the repetition stops immediately, and the failure is returned.\n *\n * The schedule can also specify delays between repetitions, making it useful\n * for tasks like retrying operations with backoff, periodic execution, or\n * performing a series of dependent actions.\n *\n * You can combine schedules for more advanced repetition logic, such as adding\n * delays, limiting recursions, or dynamically adjusting based on the outcome of\n * each execution.\n *\n * **Example** (Success Example)\n *\n * ```ts\n * import { Effect, Schedule, Console } from \"effect\"\n *\n * const action = Console.log(\"success\")\n * const policy = Schedule.addDelay(Schedule.recurs(2), () => \"100 millis\")\n * const program = Effect.repeat(action, policy)\n *\n * Effect.runPromise(program).then((n) => console.log(`repetitions: ${n}`))\n * ```\n *\n * **Example** (Failure Example)\n *\n * ```ts\n * import { Effect, Schedule } from \"effect\"\n *\n * let count = 0\n *\n * // Define an async effect that simulates an action with possible failures\n * const action = Effect.async((resume) => {\n * if (count > 1) {\n * console.log(\"failure\")\n * resume(Effect.fail(\"Uh oh!\"))\n * } else {\n * count++\n * console.log(\"success\")\n * resume(Effect.succeed(\"yay!\"))\n * }\n * })\n *\n * const policy = Schedule.addDelay(Schedule.recurs(2), () => \"100 millis\")\n * const program = Effect.repeat(action, policy)\n *\n * Effect.runPromiseExit(program).then(console.log)\n * ```\n *\n * @since 2.0.0\n * @category Repetition / Recursion\n */\nexport const repeat = schedule_.repeat_combined;\n/**\n * Repeats an effect a specified number of times or until the first failure.\n *\n * **Details**\n *\n * This function executes an effect initially and then repeats it the specified\n * number of times, as long as it succeeds. For example, calling\n * `repeatN(action, 2)` will execute `action` once initially and then repeat it\n * two additional times if there are no failures.\n *\n * If the effect fails during any repetition, the failure is returned, and no\n * further repetitions are attempted.\n *\n * **When to Use**\n *\n * This function is useful for tasks that need to be retried a fixed number of\n * times or for performing repeated actions without requiring a schedule.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const action = Console.log(\"success\")\n * const program = Effect.repeatN(action, 2)\n *\n * Effect.runPromise(program)\n * ```\n *\n * @since 2.0.0\n * @category Repetition / Recursion\n */\nexport const repeatN = effect.repeatN;\n/**\n * Repeats an effect with a schedule, handling failures using a custom handler.\n *\n * **Details**\n *\n * This function allows you to execute an effect repeatedly based on a specified\n * schedule. If the effect fails at any point, a custom failure handler is\n * invoked. The handler is provided with both the failure value and the output\n * of the schedule at the time of failure. This enables advanced error recovery\n * or alternative fallback logic while maintaining flexibility in how\n * repetitions are handled.\n *\n * For example, using a schedule with `recurs(2)` will allow for two additional\n * repetitions after the initial execution, provided the effect succeeds. If a\n * failure occurs during any iteration, the failure handler is invoked to handle\n * the situation.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Schedule } from \"effect\"\n *\n * let count = 0\n *\n * // Define an async effect that simulates an action with possible failures\n * const action = Effect.async((resume) => {\n * if (count > 1) {\n * console.log(\"failure\")\n * resume(Effect.fail(\"Uh oh!\"))\n * } else {\n * count++\n * console.log(\"success\")\n * resume(Effect.succeed(\"yay!\"))\n * }\n * })\n *\n * const policy = Schedule.addDelay(\n * Schedule.recurs(2), // Repeat for a maximum of 2 times\n * () => \"100 millis\" // Add a delay of 100 milliseconds between repetitions\n * )\n *\n * const program = Effect.repeatOrElse(action, policy, () =>\n * Effect.sync(() => {\n * console.log(\"orElse\")\n * return count - 1\n * })\n * )\n *\n * Effect.runPromise(program).then((n) => console.log(`repetitions: ${n}`))\n * ```\n *\n * @since 2.0.0\n * @category Repetition / Recursion\n */\nexport const repeatOrElse = schedule_.repeatOrElse_Effect;\n/**\n * Repeats an effect based on a specified schedule.\n *\n * **Details**\n *\n * This function allows you to execute an effect repeatedly according to a given\n * schedule. The schedule determines the timing and number of repetitions. Each\n * repetition can also depend on the decision of the schedule, providing\n * flexibility for complex workflows. This function does not modify the effect's\n * success or failure; it only controls its repetition.\n *\n * For example, you can use a schedule that recurs a specific number of times,\n * adds delays between repetitions, or customizes repetition behavior based on\n * external inputs. The effect runs initially and is repeated according to the\n * schedule.\n *\n * @see {@link scheduleFrom} for a variant that allows the schedule's decision\n * to depend on the result of this effect.\n *\n * @since 2.0.0\n * @category Repetition / Recursion\n */\nexport const schedule = schedule_.schedule_Effect;\n/**\n * Runs an effect repeatedly on a new fiber according to a given schedule.\n *\n * **Details**\n *\n * This function starts the provided effect on a new fiber and runs it\n * repeatedly based on the specified schedule. The repetitions are managed by\n * the schedule's rules, which define the timing and number of iterations. The\n * fiber is attached to the current scope, meaning it is automatically managed\n * and cleaned up when the scope is closed.\n *\n * The function returns a `RuntimeFiber` that allows you to monitor or interact\n * with the running fiber.\n *\n * **When to Use**\n *\n * This is particularly useful for concurrent execution of scheduled tasks or\n * when you want to continue processing without waiting for the repetitions to\n * complete.\n *\n * @since 2.0.0\n * @category Repetition / Recursion\n */\nexport const scheduleForked = schedule_.scheduleForked;\n/**\n * Runs an effect repeatedly according to a schedule, starting from a specified\n * input value.\n *\n * **Details**\n *\n * This function allows you to repeatedly execute an effect based on a schedule.\n * The schedule starts with the given `initial` input value, which is passed to\n * the first execution. Subsequent executions of the effect are controlled by\n * the schedule's rules, using the output of the previous iteration as the input\n * for the next one.\n *\n * The returned effect will complete when the schedule ends or the effect fails,\n * propagating the error.\n *\n * @since 2.0.0\n * @category Repetition / Recursion\n */\nexport const scheduleFrom = schedule_.scheduleFrom_Effect;\n/**\n * @since 2.0.0\n * @category Repetition / Recursion\n */\nexport const whileLoop = core.whileLoop;\n/**\n * Returns a collection of all `FiberRef` values for the fiber running this\n * effect.\n *\n * @since 2.0.0\n * @category Fiber Refs\n */\nexport const getFiberRefs = effect.fiberRefs;\n/**\n * Inherits values from all `FiberRef` instances into current fiber.\n *\n * @since 2.0.0\n * @category Fiber Refs\n */\nexport const inheritFiberRefs = effect.inheritFiberRefs;\n/**\n * @since 2.0.0\n * @category Fiber Refs\n */\nexport const locally = core.fiberRefLocally;\n/**\n * @since 2.0.0\n * @category Fiber Refs\n */\nexport const locallyWith = core.fiberRefLocallyWith;\n/**\n * @since 2.0.0\n * @category Fiber Refs\n */\nexport const locallyScoped = fiberRuntime.fiberRefLocallyScoped;\n/**\n * @since 2.0.0\n * @category Fiber Refs\n */\nexport const locallyScopedWith = fiberRuntime.fiberRefLocallyScopedWith;\n/**\n * Applies the specified changes to the `FiberRef` values for the fiber\n * running this workflow.\n *\n * @since 2.0.0\n * @category Fiber Refs\n */\nexport const patchFiberRefs = effect.patchFiberRefs;\n/**\n * Sets the `FiberRef` values for the fiber running this effect to the values\n * in the specified collection of `FiberRef` values.\n *\n * @since 2.0.0\n * @category Fiber Refs\n */\nexport const setFiberRefs = effect.setFiberRefs;\n/**\n * Updates the `FiberRef` values for the fiber running this effect using the\n * specified function.\n *\n * @since 2.0.0\n * @category Fiber Refs\n */\nexport const updateFiberRefs = effect.updateFiberRefs;\n/**\n * Checks if an effect has failed.\n *\n * **Details**\n *\n * This function evaluates whether an effect has resulted in a failure. It\n * returns a boolean value wrapped in an effect, with `true` indicating the\n * effect failed and `false` otherwise.\n *\n * The resulting effect cannot fail (`never` in the error channel) but retains\n * the context of the original effect.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const failure = Effect.fail(\"Uh oh!\")\n *\n * console.log(Effect.runSync(Effect.isFailure(failure)))\n * // Output: true\n *\n * const defect = Effect.dieMessage(\"BOOM!\")\n *\n * Effect.runSync(Effect.isFailure(defect))\n * // throws: BOOM!\n * ```\n *\n * @since 2.0.0\n * @category Condition Checking\n */\nexport const isFailure = effect.isFailure;\n/**\n * Checks if an effect has succeeded.\n *\n * **Details**\n *\n * This function evaluates whether an effect has resulted in a success. It\n * returns a boolean value wrapped in an effect, with `true` indicating the\n * effect succeeded and `false` otherwise.\n *\n * The resulting effect cannot fail (`never` in the error channel) but retains\n * the context of the original effect.\n *\n * @since 2.0.0\n * @category Condition Checking\n */\nexport const isSuccess = effect.isSuccess;\n/**\n * Handles both success and failure cases of an effect without performing side\n * effects.\n *\n * **Details**\n *\n * `match` lets you define custom handlers for both success and failure\n * scenarios. You provide separate functions to handle each case, allowing you\n * to process the result if the effect succeeds, or handle the error if the\n * effect fails.\n *\n * **When to Use**\n *\n * This is useful for structuring your code to respond differently to success or\n * failure without triggering side effects.\n *\n * **Example** (Handling Both Success and Failure Cases)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const success: Effect.Effect = Effect.succeed(42)\n *\n * const program1 = Effect.match(success, {\n * onFailure: (error) => `failure: ${error.message}`,\n * onSuccess: (value) => `success: ${value}`\n * })\n *\n * // Run and log the result of the successful effect\n * Effect.runPromise(program1).then(console.log)\n * // Output: \"success: 42\"\n *\n * const failure: Effect.Effect = Effect.fail(\n * new Error(\"Uh oh!\")\n * )\n *\n * const program2 = Effect.match(failure, {\n * onFailure: (error) => `failure: ${error.message}`,\n * onSuccess: (value) => `success: ${value}`\n * })\n *\n * // Run and log the result of the failed effect\n * Effect.runPromise(program2).then(console.log)\n * // Output: \"failure: Uh oh!\"\n * ```\n *\n * @see {@link matchEffect} if you need to perform side effects in the handlers.\n *\n * @since 2.0.0\n * @category Matching\n */\nexport const match = effect.match;\n/**\n * Handles failures by matching the cause of failure.\n *\n * **Details**\n *\n * The `matchCause` function allows you to handle failures with access to the\n * full cause of the failure within a fiber.\n *\n * **When to Use**\n *\n * This is useful for differentiating between different types of errors, such as\n * regular failures, defects, or interruptions. You can provide specific\n * handling logic for each failure type based on the cause.\n *\n * **Example** (Handling Different Failure Causes)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const task: Effect.Effect = Effect.die(\"Uh oh!\")\n *\n * const program = Effect.matchCause(task, {\n * onFailure: (cause) => {\n * switch (cause._tag) {\n * case \"Fail\":\n * // Handle standard failure\n * return `Fail: ${cause.error.message}`\n * case \"Die\":\n * // Handle defects (unexpected errors)\n * return `Die: ${cause.defect}`\n * case \"Interrupt\":\n * // Handle interruption\n * return `${cause.fiberId} interrupted!`\n * }\n * // Fallback for other causes\n * return \"failed due to other causes\"\n * },\n * onSuccess: (value) =>\n * // task completes successfully\n * `succeeded with ${value} value`\n * })\n *\n * Effect.runPromise(program).then(console.log)\n * // Output: \"Die: Uh oh!\"\n * ```\n *\n * @see {@link matchCauseEffect} if you need to perform side effects in the\n * handlers.\n * @see {@link match} if you don't need to handle the cause of the failure.\n *\n * @since 2.0.0\n * @category Matching\n */\nexport const matchCause = core.matchCause;\n/**\n * Handles failures with access to the cause and allows performing side effects.\n *\n * **Details**\n *\n * The `matchCauseEffect` function works similarly to {@link matchCause}, but it\n * also allows you to perform additional side effects based on the failure\n * cause. This function provides access to the complete cause of the failure,\n * making it possible to differentiate between various failure types, and allows\n * you to respond accordingly while performing side effects (like logging or\n * other operations).\n *\n * **Example** (Handling Different Failure Causes with Side Effects)\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task: Effect.Effect = Effect.die(\"Uh oh!\")\n *\n * const program = Effect.matchCauseEffect(task, {\n * onFailure: (cause) => {\n * switch (cause._tag) {\n * case \"Fail\":\n * // Handle standard failure with a logged message\n * return Console.log(`Fail: ${cause.error.message}`)\n * case \"Die\":\n * // Handle defects (unexpected errors) by logging the defect\n * return Console.log(`Die: ${cause.defect}`)\n * case \"Interrupt\":\n * // Handle interruption and log the fiberId that was interrupted\n * return Console.log(`${cause.fiberId} interrupted!`)\n * }\n * // Fallback for other causes\n * return Console.log(\"failed due to other causes\")\n * },\n * onSuccess: (value) =>\n * // Log success if the task completes successfully\n * Console.log(`succeeded with ${value} value`)\n * })\n *\n * Effect.runPromise(program)\n * // Output: \"Die: Uh oh!\"\n * ```\n *\n * @see {@link matchCause} if you don't need side effects and only want to handle the result or failure.\n * @see {@link matchEffect} if you don't need to handle the cause of the failure.\n *\n * @since 2.0.0\n * @category Matching\n */\nexport const matchCauseEffect = core.matchCauseEffect;\n/**\n * Handles both success and failure cases of an effect, allowing for additional\n * side effects.\n *\n * **Details**\n *\n * The `matchEffect` function is similar to {@link match}, but it enables you to\n * perform side effects in the handlers for both success and failure outcomes.\n *\n * **When to Use**\n *\n * This is useful when you need to execute additional actions, like logging or\n * notifying users, based on whether an effect succeeds or fails.\n *\n * **Example** (Handling Both Success and Failure Cases with Side Effects)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const success: Effect.Effect = Effect.succeed(42)\n * const failure: Effect.Effect = Effect.fail(\n * new Error(\"Uh oh!\")\n * )\n *\n * const program1 = Effect.matchEffect(success, {\n * onFailure: (error) =>\n * Effect.succeed(`failure: ${error.message}`).pipe(\n * Effect.tap(Effect.log)\n * ),\n * onSuccess: (value) =>\n * Effect.succeed(`success: ${value}`).pipe(Effect.tap(Effect.log))\n * })\n *\n * console.log(Effect.runSync(program1))\n * // Output:\n * // timestamp=... level=INFO fiber=#0 message=\"success: 42\"\n * // success: 42\n *\n * const program2 = Effect.matchEffect(failure, {\n * onFailure: (error) =>\n * Effect.succeed(`failure: ${error.message}`).pipe(\n * Effect.tap(Effect.log)\n * ),\n * onSuccess: (value) =>\n * Effect.succeed(`success: ${value}`).pipe(Effect.tap(Effect.log))\n * })\n *\n * console.log(Effect.runSync(program2))\n * // Output:\n * // timestamp=... level=INFO fiber=#1 message=\"failure: Uh oh!\"\n * // failure: Uh oh!\n * ```\n *\n * @see {@link match} if you don't need side effects and only want to handle the\n * result or failure.\n *\n * @since 2.0.0\n * @category Matching\n */\nexport const matchEffect = core.matchEffect;\n/**\n * Logs one or more messages or error causes at the current log level.\n *\n * **Details**\n *\n * This function provides a simple way to log messages or error causes during\n * the execution of your effects. By default, logs are recorded at the `INFO`\n * level, but this can be adjusted using other logging utilities\n * (`Logger.withMinimumLogLevel`). Multiple items, including `Cause` instances,\n * can be logged in a single call. When logging `Cause` instances, detailed\n * error information is included in the log output.\n *\n * The log output includes useful metadata like the current timestamp, log\n * level, and fiber ID, making it suitable for debugging and tracking purposes.\n * This function does not interrupt or alter the effect's execution flow.\n *\n * **Example**\n *\n * ```ts\n * import { Cause, Effect } from \"effect\"\n *\n * const program = Effect.log(\n * \"message1\",\n * \"message2\",\n * Cause.die(\"Oh no!\"),\n * Cause.die(\"Oh uh!\")\n * )\n *\n * Effect.runFork(program)\n * // Output:\n * // timestamp=... level=INFO fiber=#0 message=message1 message=message2 cause=\"Error: Oh no!\n * // Error: Oh uh!\"\n * ```\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const log = effect.log;\n/**\n * Logs messages or error causes at a specified log level.\n *\n * **Details**\n *\n * This function allows you to log one or more messages or error causes while\n * specifying the desired log level (e.g., DEBUG, INFO, ERROR). It provides\n * flexibility in categorizing logs based on their importance or severity,\n * making it easier to filter logs during debugging or production monitoring.\n *\n * **Example**\n *\n * ```ts\n * import { Cause, Effect, LogLevel } from \"effect\"\n *\n * const program = Effect.logWithLevel(\n * LogLevel.Error,\n * \"Critical error encountered\",\n * Cause.die(\"System failure!\")\n * )\n *\n * Effect.runFork(program)\n * // Output:\n * // timestamp=... level=ERROR fiber=#0 message=Critical error encountered cause=\"Error: System failure!\"\n * ```\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const logWithLevel = (level, ...message) => effect.logWithLevel(level)(...message);\n/**\n * Logs messages at the TRACE log level.\n *\n * **Details**\n *\n * This function logs the specified messages at the TRACE level. TRACE logs are\n * typically used for very detailed diagnostic information. These messages are\n * not displayed by default. To view them, you must adjust the logging\n * configuration by setting the minimum log level to `LogLevel.Trace` using\n * `Logger.withMinimumLogLevel`.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Logger, LogLevel } from \"effect\"\n *\n * const program = Effect.logTrace(\"message1\").pipe(Logger.withMinimumLogLevel(LogLevel.Trace))\n *\n * Effect.runFork(program)\n * // timestamp=... level=TRACE fiber=#0 message=message1\n * ```\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const logTrace = effect.logTrace;\n/**\n * Logs messages at the DEBUG log level.\n *\n * **Details**\n *\n * This function logs messages at the DEBUG level, which is typically used for\n * diagnosing application behavior during development. DEBUG messages provide\n * less detailed information than TRACE logs but are still not shown by default.\n * To view these logs, adjust the log level using `Logger.withMinimumLogLevel`.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Logger, LogLevel } from \"effect\"\n *\n * const program = Effect.logDebug(\"message1\").pipe(Logger.withMinimumLogLevel(LogLevel.Debug))\n *\n * Effect.runFork(program)\n * // timestamp=... level=DEBUG fiber=#0 message=message1\n * ```\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const logDebug = effect.logDebug;\n/**\n * Logs messages at the INFO log level.\n *\n * **Details**\n *\n * This function logs messages at the INFO level, suitable for general\n * application events or operational messages. INFO logs are shown by default\n * and are commonly used for highlighting normal, non-error operations.\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const logInfo = effect.logInfo;\n/**\n * Logs messages at the WARNING log level.\n *\n * **Details**\n *\n * This function logs messages at the WARNING level, suitable for highlighting\n * potential issues that are not errors but may require attention. These\n * messages indicate that something unexpected occurred or might lead to errors\n * in the future.\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const logWarning = effect.logWarning;\n/**\n * Logs messages at the ERROR log level.\n *\n * **Details**\n *\n * This function logs messages at the ERROR level, suitable for reporting\n * application errors or failures. These logs are typically used for unexpected\n * issues that need immediate attention.\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const logError = effect.logError;\n/**\n * Logs messages at the FATAL log level.\n *\n * **Details**\n *\n * This function logs messages at the FATAL level, suitable for reporting\n * critical errors that cause the application to terminate or stop functioning.\n * These logs are typically used for unrecoverable errors that require immediate\n * attention.\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const logFatal = effect.logFatal;\n/**\n * Adds a log span to an effect for tracking and logging its execution duration.\n *\n * **Details**\n *\n * This function wraps an effect with a log span, providing performance\n * monitoring and debugging capabilities. The log span tracks the duration of\n * the wrapped effect and logs it with the specified label. This is particularly\n * useful when analyzing time-sensitive operations or understanding the\n * execution time of specific tasks in your application.\n *\n * The logged output will include the label and the total time taken for the\n * operation. The span information is included in the log metadata, making it\n * easy to trace performance metrics in logs.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Effect.sleep(\"1 second\")\n * yield* Effect.log(\"The job is finished!\")\n * }).pipe(Effect.withLogSpan(\"myspan\"))\n *\n * Effect.runFork(program)\n * // timestamp=... level=INFO fiber=#0 message=\"The job is finished!\" myspan=1011ms\n * ```\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const withLogSpan = effect.withLogSpan;\n/**\n * Adds custom annotations to log entries generated within an effect.\n *\n * **Details**\n *\n * This function allows you to enhance log messages by appending additional\n * context in the form of key-value pairs. These annotations are included in\n * every log message created during the execution of the effect, making the logs\n * more informative and easier to trace.\n *\n * The annotations can be specified as a single key-value pair or as a record of\n * multiple key-value pairs. This is particularly useful for tracking\n * operations, debugging, or associating specific metadata with logs for better\n * observability.\n *\n * The annotated key-value pairs will appear alongside the log message in the\n * output.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Effect.log(\"message1\")\n * yield* Effect.log(\"message2\")\n * }).pipe(Effect.annotateLogs(\"taskId\", \"1234\")) // Annotation as key/value pair\n *\n * Effect.runFork(program)\n * // timestamp=... level=INFO fiber=#0 message=message1 taskId=1234\n * // timestamp=... level=INFO fiber=#0 message=message2 taskId=1234\n * ```\n *\n * @see {@link annotateLogsScoped} to add log annotations with a limited scope.\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const annotateLogs = effect.annotateLogs;\n/**\n * Adds log annotations with a limited scope to enhance contextual logging.\n *\n * **Details**\n *\n * This function allows you to apply key-value annotations to log entries\n * generated within a specific scope of your effect computations. The\n * annotations are restricted to the defined `Scope`, ensuring that they are\n * only applied to logs produced during that scope. Once the scope ends, the\n * annotations are automatically removed, making it easier to manage\n * context-specific logging without affecting other parts of your application.\n *\n * The annotations can be provided as a single key-value pair or as a record of\n * multiple key-value pairs. This flexibility enables fine-grained control over\n * the additional metadata included in logs for specific tasks or operations.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Effect.log(\"no annotations\")\n * yield* Effect.annotateLogsScoped({ key: \"value\" })\n * yield* Effect.log(\"message1\") // Annotation is applied to this log\n * yield* Effect.log(\"message2\") // Annotation is applied to this log\n * }).pipe(Effect.scoped, Effect.andThen(Effect.log(\"no annotations again\")))\n *\n * Effect.runFork(program)\n * // timestamp=... level=INFO fiber=#0 message=\"no annotations\"\n * // timestamp=... level=INFO fiber=#0 message=message1 key=value\n * // timestamp=... level=INFO fiber=#0 message=message2 key=value\n * // timestamp=... level=INFO fiber=#0 message=\"no annotations again\"\n * ```\n *\n * @see {@link annotateLogs} to add custom annotations to log entries generated within an effect.\n *\n * @since 3.1.0\n * @category Logging\n */\nexport const annotateLogsScoped = fiberRuntime.annotateLogsScoped;\n/**\n * Retrieves the current log annotations for the current scope.\n *\n * **Details**\n *\n * This function provides access to the log annotations associated with the\n * current scope. Log annotations are key-value pairs that provide additional\n * context to log entries. They are often used to add metadata such as tags,\n * identifiers, or extra debugging information to logs.\n *\n * By using this function, you can inspect or utilize the annotations applied to\n * the current scope, making it easier to trace and debug specific sections of\n * your application.\n *\n * @see {@link annotateLogs} to add custom annotations to log entries generated within an effect.\n * @see {@link annotateLogsScoped} to add log annotations with a limited scope.\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const logAnnotations = effect.logAnnotations;\n/**\n * Configures whether child fibers will log unhandled errors and at what log\n * level.\n *\n * **Details**\n *\n * This function allows you to control whether unhandled errors from child\n * fibers are logged and to specify the log level for these errors. By default,\n * unhandled errors are reported via the logger. However, using this function,\n * you can choose to suppress these logs by passing `Option.none` or adjust the\n * log level to a specific severity, such as `Error`, `Warning`, or `Info`.\n *\n * This configuration is scoped to the effect it is applied to, meaning the\n * changes only apply to the child fibers created within that effect's context.\n * It is especially useful when you want to reduce noise in logs or prioritize\n * certain types of errors.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Fiber, LogLevel, Option } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * const fiber = yield* Effect.fork(Effect.fail(\"Unhandled error!\"))\n * yield* Fiber.join(fiber)\n * })\n *\n * Effect.runFork(program.pipe(Effect.withUnhandledErrorLogLevel(Option.some(LogLevel.Error))))\n * // Output:\n * // timestamp=... level=ERROR fiber=#1 message=\"Fiber terminated with an unhandled error\" cause=\"Error: Unhandled error!\"\n * ```\n *\n * @since 2.0.0\n * @category Logging\n */\nexport const withUnhandledErrorLogLevel = core.withUnhandledErrorLogLevel;\n/**\n * Conditionally executes an effect based on the specified log level and currently enabled log level.\n *\n * **Details**\n *\n * This function runs the provided effect only if the specified log level is\n * enabled. If the log level is enabled, the effect is executed and its result\n * is wrapped in `Some`. If the log level is not enabled, the effect is not\n * executed and `None` is returned.\n *\n * This function is useful for conditionally executing logging-related effects\n * or other operations that depend on the current log level configuration.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Logger, LogLevel } from \"effect\"\n *\n * const program = Effect.gen(function* () {\n * yield* Effect.whenLogLevel(Effect.logTrace(\"message1\"), LogLevel.Trace); // returns `None`\n * yield* Effect.whenLogLevel(Effect.logDebug(\"message2\"), LogLevel.Debug); // returns `Some`\n * }).pipe(Logger.withMinimumLogLevel(LogLevel.Debug));\n *\n * Effect.runFork(program)\n * // timestamp=... level=DEBUG fiber=#0 message=message2\n * ```\n *\n * @see {@link FiberRef.currentMinimumLogLevel} to retrieve the current minimum log level.\n *\n * @since 3.13.0\n * @category Logging\n */\nexport const whenLogLevel = fiberRuntime.whenLogLevel;\n/**\n * Converts an effect's failure into a fiber termination, removing the error\n * from the effect's type.\n *\n * **Details**\n *\n * The `orDie` function is used when you encounter errors that you do not want\n * to handle or recover from. It removes the error type from the effect and\n * ensures that any failure will terminate the fiber. This is useful for\n * propagating failures as defects, signaling that they should not be handled\n * within the effect.\n *\n * **When to Use*\n *\n * Use `orDie` when failures should be treated as unrecoverable defects and no\n * error handling is required.\n *\n * **Example** (Propagating an Error as a Defect)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const divide = (a: number, b: number) =>\n * b === 0\n * ? Effect.fail(new Error(\"Cannot divide by zero\"))\n * : Effect.succeed(a / b)\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.orDie(divide(1, 0))\n *\n * Effect.runPromise(program).catch(console.error)\n * // Output:\n * // (FiberFailure) Error: Cannot divide by zero\n * // ...stack trace...\n * ```\n *\n * @see {@link orDieWith} if you need to customize the error.\n *\n * @since 2.0.0\n * @category Converting Failures to Defects\n */\nexport const orDie = core.orDie;\n/**\n * Converts an effect's failure into a fiber termination with a custom error.\n *\n * **Details**\n *\n * The `orDieWith` function behaves like {@link orDie}, but it allows you to provide a mapping\n * function to transform the error before terminating the fiber. This is useful for cases where\n * you want to include a more detailed or user-friendly error when the failure is propagated\n * as a defect.\n *\n * **When to Use**\n *\n * Use `orDieWith` when failures should terminate the fiber as defects, and you want to customize\n * the error for clarity or debugging purposes.\n *\n * **Example** (Customizing Defect)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const divide = (a: number, b: number) =>\n * b === 0\n * ? Effect.fail(new Error(\"Cannot divide by zero\"))\n * : Effect.succeed(a / b)\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.orDieWith(\n * divide(1, 0),\n * (error) => new Error(`defect: ${error.message}`)\n * )\n *\n * Effect.runPromise(program).catch(console.error)\n * // Output:\n * // (FiberFailure) Error: defect: Cannot divide by zero\n * // ...stack trace...\n * ```\n *\n * @see {@link orDie} if you don't need to customize the error.\n *\n * @since 2.0.0\n * @category Converting Failures to Defects\n */\nexport const orDieWith = core.orDieWith;\n/**\n * Attempts one effect, and if it fails, falls back to another effect.\n *\n * **Details**\n *\n * This function allows you to try executing an effect, and if it fails\n * (produces an error), a fallback effect is executed instead. The fallback\n * effect is defined as a lazy argument, meaning it will only be evaluated if\n * the first effect fails. This provides a way to recover from errors by\n * specifying an alternative path of execution.\n *\n * The error type of the resulting effect will be that of the fallback effect,\n * as the first effect's error is replaced when the fallback is executed.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const success = Effect.succeed(\"success\")\n * const failure = Effect.fail(\"failure\")\n * const fallback = Effect.succeed(\"fallback\")\n *\n * // Try the success effect first, fallback is not used\n * const program1 = Effect.orElse(success, () => fallback)\n * console.log(Effect.runSync(program1))\n * // Output: \"success\"\n *\n * // Try the failure effect first, fallback is used\n * const program2 = Effect.orElse(failure, () => fallback)\n * console.log(Effect.runSync(program2))\n * // Output: \"fallback\"\n * ```\n *\n * @see {@link catchAll} if you need to access the error in the fallback effect.\n *\n * @since 2.0.0\n * @category Fallback\n */\nexport const orElse = core.orElse;\n/**\n * Replaces the failure of an effect with a custom failure value.\n *\n * **Details**\n *\n * This function allows you to handle the failure of an effect by replacing it\n * with a predefined failure value. If the effect fails, the new failure value\n * provided by the `evaluate` function will be returned instead of the original\n * failure. If the effect succeeds, the original success value is returned\n * unchanged.\n *\n * **When to Use**\n *\n * This is particularly useful when you want to standardize error handling or\n * provide a consistent failure value for specific operations. It simplifies\n * error management by ensuring that all failures are replaced with a controlled\n * alternative.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const validate = (age: number): Effect.Effect => {\n * if (age < 0) {\n * return Effect.fail(\"NegativeAgeError\")\n * } else if (age < 18) {\n * return Effect.fail(\"IllegalAgeError\")\n * } else {\n * return Effect.succeed(age)\n * }\n * }\n *\n * const program = Effect.orElseFail(validate(-1), () => \"invalid age\")\n *\n * console.log(Effect.runSyncExit(program))\n * // Output:\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: { _id: 'Cause', _tag: 'Fail', failure: 'invalid age' }\n * // }\n * ```\n *\n * @see {@link mapError} if you need to access the error to transform it.\n *\n * @since 2.0.0\n * @category Fallback\n */\nexport const orElseFail = effect.orElseFail;\n/**\n * Ensures the effect always succeeds by replacing failures with a default\n * success value.\n *\n * **Details**\n *\n * This function transforms an effect that may fail into one that cannot fail by\n * replacing any failure with a provided success value. If the original effect\n * fails, the failure is \"swallowed,\" and the specified success value is\n * returned instead. If the original effect succeeds, its value remains\n * unchanged.\n *\n * **When to Use**\n *\n * This is especially useful for providing default values in case of failure,\n * ensuring that an effect always completes successfully. By using this\n * function, you can avoid the need for complex error handling and guarantee a\n * fallback result.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const validate = (age: number): Effect.Effect => {\n * if (age < 0) {\n * return Effect.fail(\"NegativeAgeError\")\n * } else if (age < 18) {\n * return Effect.fail(\"IllegalAgeError\")\n * } else {\n * return Effect.succeed(age)\n * }\n * }\n *\n * const program = Effect.orElseSucceed(validate(-1), () => 18)\n *\n * console.log(Effect.runSyncExit(program))\n * // Output:\n * // { _id: 'Exit', _tag: 'Success', value: 18 }\n * ```\n *\n * @since 2.0.0\n * @category Fallback\n */\nexport const orElseSucceed = effect.orElseSucceed;\n/**\n * Runs a sequence of effects and returns the result of the first successful\n * one.\n *\n * **Details**\n *\n * This function allows you to execute a collection of effects in sequence,\n * stopping at the first success. If an effect succeeds, its result is\n * immediately returned, and no further effects in the sequence are executed.\n * However, if all the effects fail, the function will return the error of the\n * last effect.\n *\n * The execution is sequential, meaning that effects are evaluated one at a time\n * in the order they are provided. This ensures predictable behavior and avoids\n * unnecessary computations.\n *\n * If the collection of effects is empty, an `IllegalArgumentException` is\n * thrown, indicating that the operation is invalid without any effects to try.\n *\n * **When to Use**\n *\n * This is particularly useful when you have multiple fallback strategies or\n * alternative sources to obtain a result, such as attempting multiple APIs,\n * retrieving configurations, or accessing resources in a prioritized manner.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * interface Config {\n * host: string\n * port: number\n * apiKey: string\n * }\n *\n * // Create a configuration object with sample values\n * const makeConfig = (name: string): Config => ({\n * host: `${name}.example.com`,\n * port: 8080,\n * apiKey: \"12345-abcde\"\n * })\n *\n * // Simulate retrieving configuration from a remote node\n * const remoteConfig = (name: string): Effect.Effect =>\n * Effect.gen(function* () {\n * // Simulate node3 being the only one with available config\n * if (name === \"node3\") {\n * yield* Console.log(`Config for ${name} found`)\n * return makeConfig(name)\n * } else {\n * yield* Console.log(`Unavailable config for ${name}`)\n * return yield* Effect.fail(new Error(`Config not found for ${name}`))\n * }\n * })\n *\n * // Define the master configuration and potential fallback nodes\n * const masterConfig = remoteConfig(\"master\")\n * const nodeConfigs = [\"node1\", \"node2\", \"node3\", \"node4\"].map(remoteConfig)\n *\n * // Attempt to find a working configuration,\n * // starting with the master and then falling back to other nodes\n * const config = Effect.firstSuccessOf([masterConfig, ...nodeConfigs])\n *\n * // Run the effect to retrieve the configuration\n * const result = Effect.runSync(config)\n *\n * console.log(result)\n * // Output:\n * // Unavailable config for master\n * // Unavailable config for node1\n * // Unavailable config for node2\n * // Config for node3 found\n * // { host: 'node3.example.com', port: 8080, apiKey: '12345-abcde' }\n * ```\n *\n * @since 2.0.0\n * @category Fallback\n */\nexport const firstSuccessOf = effect.firstSuccessOf;\n/**\n * Retrieves the `Random` service from the context.\n *\n * @since 2.0.0\n * @category Random\n */\nexport const random = effect.random;\n/**\n * Retrieves the `Random` service from the context and uses it to run the\n * specified effect.\n *\n * @since 2.0.0\n * @category Random\n */\nexport const randomWith = defaultServices.randomWith;\n/**\n * Executes the specified effect with the specified implementation of the\n * `Random` service.\n *\n * @since 2.0.0\n * @category Random\n */\nexport const withRandom = defaultServices.withRandom;\n/**\n * Executes the specified effect with a `Random` service that cycles through\n * a provided array of values.\n *\n * @example\n * ```ts\n * import { Effect, Random } from \"effect\"\n *\n * Effect.gen(function*() {\n * console.log(yield* Random.next) // 0.2\n * console.log(yield* Random.next) // 0.5\n * console.log(yield* Random.next) // 0.8\n * }).pipe(Effect.withRandomFixed([0.2, 0.5, 0.8]))\n * ```\n *\n * @since 3.11.0\n * @category Random\n */\nexport const withRandomFixed = /*#__PURE__*/dual(2, (effect, values) => withRandom(effect, Random.fixed(values)));\n/**\n * Sets the implementation of the `Random` service to the specified value and\n * restores it to its original value when the scope is closed.\n *\n * @since 2.0.0\n * @category Random\n */\nexport const withRandomScoped = fiberRuntime.withRandomScoped;\n/**\n * Returns an effect that accesses the runtime, which can be used to (unsafely)\n * execute tasks.\n *\n * **When to Use**\n *\n * This is useful for integration with legacy code that must call back into\n * Effect code.\n *\n * @since 2.0.0\n * @category Runtime\n */\nexport const runtime = runtime_.runtime;\n/**\n * Retrieves an effect that succeeds with the current runtime flags, which\n * govern behavior and features of the runtime system.\n *\n * @since 2.0.0\n * @category Runtime\n */\nexport const getRuntimeFlags = core.runtimeFlags;\n/**\n * @since 2.0.0\n * @category Runtime\n */\nexport const patchRuntimeFlags = core.updateRuntimeFlags;\n/**\n * @since 2.0.0\n * @category Runtime\n */\nexport const withRuntimeFlagsPatch = core.withRuntimeFlags;\n/**\n * @since 2.0.0\n * @category Runtime\n */\nexport const withRuntimeFlagsPatchScoped = fiberRuntime.withRuntimeFlagsScoped;\n/**\n * Tags each metric in an effect with specific key-value pairs.\n *\n * **Details**\n *\n * This function allows you to tag all metrics in an effect with a set of\n * key-value pairs or a single key-value pair. Tags help you add metadata to\n * metrics, making it easier to filter and categorize them in monitoring\n * systems. The provided tags will apply to all metrics generated within the\n * effect's scope.\n *\n * @since 2.0.0\n * @category Metrics\n */\nexport const tagMetrics = effect.tagMetrics;\n/**\n * Adds labels to metrics within an effect using `MetricLabel` objects.\n *\n * **Details**\n *\n * This function allows you to label metrics using `MetricLabel` objects. Labels\n * help add structured metadata to metrics for categorization and filtering in\n * monitoring systems. The provided labels will apply to all metrics within the\n * effect's execution.\n *\n * @since 2.0.0\n * @category Metrics\n */\nexport const labelMetrics = effect.labelMetrics;\n/**\n * Tags metrics within a scope with a specific key-value pair.\n *\n * **Details**\n *\n * This function tags all metrics within a scope with the provided key-value\n * pair. Once the scope is closed, the tag is automatically removed. This is\n * useful for applying temporary context-specific tags to metrics during scoped\n * operations.\n *\n * @since 2.0.0\n * @category Metrics\n */\nexport const tagMetricsScoped = fiberRuntime.tagMetricsScoped;\n/**\n * Adds labels to metrics within a scope using `MetricLabel` objects.\n *\n * **Details**\n *\n * This function allows you to apply labels to all metrics generated within a\n * specific scope using an array of `MetricLabel` objects. These labels provide\n * additional metadata to metrics, which can be used for categorization,\n * filtering, or monitoring purposes. The labels are scoped and will be removed\n * automatically once the scope is closed, ensuring they are only applied\n * temporarily within the defined context.\n *\n * @since 2.0.0\n * @category Metrics\n */\nexport const labelMetricsScoped = fiberRuntime.labelMetricsScoped;\n/**\n * Retrieves the metric labels associated with the current scope.\n *\n * @since 2.0.0\n * @category Metrics\n */\nexport const metricLabels = core.metricLabels;\n/**\n * Associates a metric with the current effect, updating it as the effect progresses.\n *\n * @since 2.0.0\n * @category Metrics\n */\nexport const withMetric = effect.withMetric;\n/**\n * Unsafely creates a new Semaphore.\n *\n * @since 2.0.0\n * @category Semaphore\n */\nexport const unsafeMakeSemaphore = circular.unsafeMakeSemaphore;\n/**\n * Creates a new semaphore with the specified number of permits.\n *\n * **Details**\n *\n * This function initializes a semaphore that controls concurrent access to a\n * shared resource. The number of permits determines how many tasks can access\n * the resource concurrently.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // Create a semaphore with 3 permits\n * const mutex = Effect.makeSemaphore(3)\n * ```\n *\n * @since 2.0.0\n * @category Semaphore\n */\nexport const makeSemaphore = circular.makeSemaphore;\n/**\n * @category Latch\n * @since 3.8.0\n */\nexport const unsafeMakeLatch = circular.unsafeMakeLatch;\n/**\n * Creates a new `Latch`, starting in the specified state.\n *\n * **Details**\n *\n * This function initializes a `Latch` safely, ensuring proper runtime\n * guarantees. By default, the latch starts in the closed state.\n *\n * **Example**\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * // Create a latch, starting in the closed state\n * const latch = yield* Effect.makeLatch(false)\n *\n * // Fork a fiber that logs \"open sesame\" when the latch is opened\n * const fiber = yield* Console.log(\"open sesame\").pipe(\n * latch.whenOpen,\n * Effect.fork\n * )\n *\n * yield* Effect.sleep(\"1 second\")\n *\n * // Open the latch\n * yield* latch.open\n * yield* fiber.await\n * })\n *\n * Effect.runFork(program)\n * // Output: open sesame (after 1 second)\n * ```\n *\n * @category Latch\n * @since 3.8.0\n */\nexport const makeLatch = circular.makeLatch;\n/**\n * Runs an effect in the background, returning a fiber that can be observed or\n * interrupted.\n *\n * Unless you specifically need a `Promise` or synchronous operation, `runFork`\n * is a good default choice.\n *\n * **Details**\n *\n * This function is the foundational way to execute an effect in the background.\n * It creates a \"fiber,\" a lightweight, cooperative thread of execution that can\n * be observed (to access its result), interrupted, or joined. Fibers are useful\n * for concurrent programming and allow effects to run independently of the main\n * program flow.\n *\n * Once the effect is running in a fiber, you can monitor its progress, cancel\n * it if necessary, or retrieve its result when it completes. If the effect\n * fails, the fiber will propagate the failure, which you can observe and\n * handle.\n *\n * **When to Use**\n *\n * Use this function when you need to run an effect in the background,\n * especially if the effect is long-running or performs periodic tasks. It's\n * suitable for tasks that need to run independently but might still need\n * observation or management, like logging, monitoring, or scheduled tasks.\n *\n * This function is ideal if you don't need the result immediately or if the\n * effect is part of a larger concurrent workflow.\n *\n * **Example** (Running an Effect in the Background)\n *\n * ```ts\n * import { Effect, Console, Schedule, Fiber } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.repeat(\n * Console.log(\"running...\"),\n * Schedule.spaced(\"200 millis\")\n * )\n *\n * // ┌─── RuntimeFiber\n * // ▼\n * const fiber = Effect.runFork(program)\n *\n * setTimeout(() => {\n * Effect.runFork(Fiber.interrupt(fiber))\n * }, 500)\n * ```\n *\n * @since 2.0.0\n * @category Running Effects\n */\nexport const runFork = runtime_.unsafeForkEffect;\n/**\n * Executes an effect asynchronously and handles the result using a callback.\n *\n * **Details**\n *\n * This function runs an effect asynchronously and passes the result (`Exit`) to\n * a specified callback. The callback is invoked with the outcome of the effect:\n * - On success, the callback receives the successful result.\n * - On failure, the callback receives the failure information.\n *\n * **When to Use**\n *\n * This function is effectful and should only be invoked at the edges of your\n * program.\n *\n * @since 2.0.0\n * @category Running Effects\n */\nexport const runCallback = runtime_.unsafeRunEffect;\n/**\n * Executes an effect and returns the result as a `Promise`.\n *\n * **Details**\n *\n * This function runs an effect and converts its result into a `Promise`. If the\n * effect succeeds, the `Promise` will resolve with the successful result. If\n * the effect fails, the `Promise` will reject with an error, which includes the\n * failure details of the effect.\n *\n * The optional `options` parameter allows you to pass an `AbortSignal` for\n * cancellation, enabling more fine-grained control over asynchronous tasks.\n *\n * **When to Use**\n *\n * Use this function when you need to execute an effect and work with its result\n * in a promise-based system, such as when integrating with third-party\n * libraries that expect `Promise` results.\n *\n * **Example** (Running a Successful Effect as a Promise)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * Effect.runPromise(Effect.succeed(1)).then(console.log)\n * // Output: 1\n * ```\n *\n * **Example** (Handling a Failing Effect as a Rejected Promise)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * Effect.runPromise(Effect.fail(\"my error\")).catch(console.error)\n * // Output:\n * // (FiberFailure) Error: my error\n * ```\n *\n * @see {@link runPromiseExit} for a version that returns an `Exit` type instead\n * of rejecting.\n *\n * @since 2.0.0\n * @category Running Effects\n */\nexport const runPromise = runtime_.unsafeRunPromiseEffect;\n/**\n * Runs an effect and returns a `Promise` that resolves to an `Exit`,\n * representing the outcome.\n *\n * **Details**\n *\n * This function executes an effect and resolves to an `Exit` object. The `Exit`\n * type provides detailed information about the result of the effect:\n * - If the effect succeeds, the `Exit` will be of type `Success` and include\n * the value produced by the effect.\n * - If the effect fails, the `Exit` will be of type `Failure` and contain a\n * `Cause` object, detailing the failure.\n *\n * Using this function allows you to examine both successful results and failure\n * cases in a unified way, while still leveraging `Promise` for handling the\n * asynchronous behavior of the effect.\n *\n * **When to Use**\n *\n * Use this function when you need to understand the outcome of an effect,\n * whether it succeeded or failed, and want to work with this result using\n * `Promise` syntax. This is particularly useful when integrating with systems\n * that rely on promises but need more detailed error handling than a simple\n * rejection.\n *\n * **Example** (Handling Results as Exit)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // Execute a successful effect and get the Exit result as a Promise\n * Effect.runPromiseExit(Effect.succeed(1)).then(console.log)\n * // Output:\n * // {\n * // _id: \"Exit\",\n * // _tag: \"Success\",\n * // value: 1\n * // }\n *\n * // Execute a failing effect and get the Exit result as a Promise\n * Effect.runPromiseExit(Effect.fail(\"my error\")).then(console.log)\n * // Output:\n * // {\n * // _id: \"Exit\",\n * // _tag: \"Failure\",\n * // cause: {\n * // _id: \"Cause\",\n * // _tag: \"Fail\",\n * // failure: \"my error\"\n * // }\n * // }\n * ```\n *\n * @since 2.0.0\n * @category Running Effects\n */\nexport const runPromiseExit = runtime_.unsafeRunPromiseExitEffect;\n/**\n * Executes an effect synchronously, running it immediately and returning the\n * result.\n *\n * **Details**\n *\n * This function evaluates the provided effect synchronously, returning its\n * result directly. It is ideal for effects that do not fail or include\n * asynchronous operations. If the effect does fail or involves async tasks, it\n * will throw an error. Execution stops at the point of failure or asynchronous\n * operation, making it unsuitable for effects that require asynchronous\n * handling.\n *\n * **Important**: Attempting to run effects that involve asynchronous operations\n * or failures will result in exceptions being thrown, so use this function with\n * care for purely synchronous and error-free effects.\n *\n * **When to Use**\n *\n * Use this function when:\n * - You are sure that the effect will not fail or involve asynchronous\n * operations.\n * - You need a direct, synchronous result from the effect.\n * - You are working within a context where asynchronous effects are not\n * allowed.\n *\n * Avoid using this function for effects that can fail or require asynchronous\n * handling. For such cases, consider using {@link runPromise} or\n * {@link runSyncExit}.\n *\n * **Example** (Synchronous Logging)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const program = Effect.sync(() => {\n * console.log(\"Hello, World!\")\n * return 1\n * })\n *\n * const result = Effect.runSync(program)\n * // Output: Hello, World!\n *\n * console.log(result)\n * // Output: 1\n * ```\n *\n * **Example** (Incorrect Usage with Failing or Async Effects)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * try {\n * // Attempt to run an effect that fails\n * Effect.runSync(Effect.fail(\"my error\"))\n * } catch (e) {\n * console.error(e)\n * }\n * // Output:\n * // (FiberFailure) Error: my error\n *\n * try {\n * // Attempt to run an effect that involves async work\n * Effect.runSync(Effect.promise(() => Promise.resolve(1)))\n * } catch (e) {\n * console.error(e)\n * }\n * // Output:\n * // (FiberFailure) AsyncFiberException: Fiber #0 cannot be resolved synchronously. This is caused by using runSync on an effect that performs async work\n * ```\n *\n * @see {@link runSyncExit} for a version that returns an `Exit` type instead of\n * throwing an error.\n *\n * @since 2.0.0\n * @category Running Effects\n */\nexport const runSync = runtime_.unsafeRunSyncEffect;\n/**\n * Runs an effect synchronously and returns the result as an `Exit` type.\n *\n * **Details**\n *\n * This function executes the provided effect synchronously and returns an `Exit`\n * type that encapsulates the outcome of the effect:\n * - If the effect succeeds, the result is wrapped in a `Success`.\n * - If the effect fails, it returns a `Failure` containing a `Cause` that explains\n * the failure.\n *\n * If the effect involves asynchronous operations, this function will return a `Failure`\n * with a `Die` cause, indicating that it cannot resolve the effect synchronously.\n * This makes the function suitable for use only with effects that are synchronous\n * in nature.\n *\n * **When to Use**\n *\n * Use this function when:\n * - You want to handle both success and failure outcomes in a structured way using the `Exit` type.\n * - You are working with effects that are purely synchronous and do not involve asynchronous operations.\n * - You need to debug or inspect failures, including their causes, in a detailed manner.\n *\n * Avoid using this function for effects that involve asynchronous operations, as it will fail with a `Die` cause.\n *\n * **Example** (Handling Results as Exit)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * console.log(Effect.runSyncExit(Effect.succeed(1)))\n * // Output:\n * // {\n * // _id: \"Exit\",\n * // _tag: \"Success\",\n * // value: 1\n * // }\n *\n * console.log(Effect.runSyncExit(Effect.fail(\"my error\")))\n * // Output:\n * // {\n * // _id: \"Exit\",\n * // _tag: \"Failure\",\n * // cause: {\n * // _id: \"Cause\",\n * // _tag: \"Fail\",\n * // failure: \"my error\"\n * // }\n * // }\n * ```\n *\n * **Example** (Asynchronous Operation Resulting in Die)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * console.log(Effect.runSyncExit(Effect.promise(() => Promise.resolve(1))))\n * // Output:\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Die',\n * // defect: [Fiber #0 cannot be resolved synchronously. This is caused by using runSync on an effect that performs async work] {\n * // fiber: [FiberRuntime],\n * // _tag: 'AsyncFiberException',\n * // name: 'AsyncFiberException'\n * // }\n * // }\n * // }\n * ```\n *\n * @since 2.0.0\n * @category Running Effects\n */\nexport const runSyncExit = runtime_.unsafeRunSyncExitEffect;\n/**\n * Combines multiple effects and accumulates both successes and failures.\n *\n * **Details**\n *\n * This function allows you to combine multiple effects, continuing through all\n * effects even if some of them fail. Unlike other functions that stop execution\n * upon encountering an error, this function collects all errors into a `Cause`.\n * The final result includes all successes and the accumulated failures.\n *\n * By default, effects are executed sequentially, but you can control\n * concurrency and batching behavior using the `options` parameter. This\n * provides flexibility in scenarios where you want to maximize performance or\n * ensure specific ordering.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Console } from \"effect\"\n *\n * const task1 = Console.log(\"task1\").pipe(Effect.as(1))\n * const task2 = Effect.fail(\"Oh uh!\").pipe(Effect.as(2))\n * const task3 = Console.log(\"task2\").pipe(Effect.as(3))\n * const task4 = Effect.fail(\"Oh no!\").pipe(Effect.as(4))\n *\n * const program = task1.pipe(\n * Effect.validate(task2),\n * Effect.validate(task3),\n * Effect.validate(task4)\n * )\n *\n * Effect.runPromiseExit(program).then(console.log)\n * // Output:\n * // task1\n * // task2\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Sequential',\n * // left: { _id: 'Cause', _tag: 'Fail', failure: 'Oh uh!' },\n * // right: { _id: 'Cause', _tag: 'Fail', failure: 'Oh no!' }\n * // }\n * // }\n * ```\n *\n * @see {@link zip} for a version that stops at the first error.\n *\n * @since 2.0.0\n * @category Error Accumulation\n */\nexport const validate = fiberRuntime.validate;\n/**\n * Sequentially combines two effects using a specified combiner function while\n * accumulating errors.\n *\n * **Details**\n *\n * This function combines two effects, `self` and `that`, into a single effect\n * by applying the provided combiner function to their results. If both effects\n * succeed, the combiner function is applied to their results to produce the\n * final value. If either effect fails, the failures are accumulated into a\n * combined `Cause`.\n *\n * By default, effects are executed sequentially. However, the execution mode\n * can be controlled using the `options` parameter to enable concurrency,\n * batching, or customized finalizer behavior.\n *\n * @since 2.0.0\n * @category Error Accumulation\n */\nexport const validateWith = fiberRuntime.validateWith;\n/**\n * Combines two effects into a single effect, producing a tuple of their\n * results.\n *\n * **Details**\n *\n * This function combines two effects, `self` and `that`, into one. It executes\n * the first effect (`self`) and then the second effect (`that`), collecting\n * their results into a tuple. Both effects must succeed for the resulting\n * effect to succeed. If either effect fails, the entire operation fails.\n *\n * By default, the effects are executed sequentially. If the `concurrent` option\n * is set to `true`, the effects will run concurrently, potentially improving\n * performance for independent operations.\n *\n * **Example** (Combining Two Effects Sequentially)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const task1 = Effect.succeed(1).pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Effect.log(\"task1 done\"))\n * )\n * const task2 = Effect.succeed(\"hello\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Effect.log(\"task2 done\"))\n * )\n *\n * // Combine the two effects together\n * //\n * // ┌─── Effect<[number, string], never, never>\n * // ▼\n * const program = Effect.zip(task1, task2)\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // timestamp=... level=INFO fiber=#0 message=\"task1 done\"\n * // timestamp=... level=INFO fiber=#0 message=\"task2 done\"\n * // [ 1, 'hello' ]\n * ```\n *\n * **Example** (Combining Two Effects Concurrently)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const task1 = Effect.succeed(1).pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Effect.log(\"task1 done\"))\n * )\n * const task2 = Effect.succeed(\"hello\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Effect.log(\"task2 done\"))\n * )\n *\n * // Run both effects concurrently using the concurrent option\n * const program = Effect.zip(task1, task2, { concurrent: true })\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // timestamp=... level=INFO fiber=#0 message=\"task2 done\"\n * // timestamp=... level=INFO fiber=#0 message=\"task1 done\"\n * // [ 1, 'hello' ]\n * ```\n *\n * @see {@link zipWith} for a version that combines the results with a custom\n * function.\n * @see {@link validate} for a version that accumulates errors.\n *\n * @since 2.0.0\n * @category Zipping\n */\nexport const zip = fiberRuntime.zipOptions;\n/**\n * Executes two effects sequentially, returning the result of the first effect\n * and ignoring the result of the second.\n *\n * **Details**\n *\n * This function allows you to run two effects in sequence, where the result of\n * the first effect is preserved, and the result of the second effect is\n * discarded. By default, the two effects are executed sequentially. If you need\n * them to run concurrently, you can pass the `{ concurrent: true }` option.\n *\n * The second effect will always be executed, even though its result is ignored.\n * This makes it useful for cases where you want to execute an effect for its\n * side effects while keeping the result of another effect.\n *\n * **When to Use**\n *\n * Use this function when you are only interested in the result of the first\n * effect but still need to run the second effect for its side effects, such as\n * logging or performing a cleanup action.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const task1 = Effect.succeed(1).pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Effect.log(\"task1 done\"))\n * )\n * const task2 = Effect.succeed(\"hello\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Effect.log(\"task2 done\"))\n * )\n *\n * const program = Effect.zipLeft(task1, task2)\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // timestamp=... level=INFO fiber=#0 message=\"task1 done\"\n * // timestamp=... level=INFO fiber=#0 message=\"task2 done\"\n * // 1\n * ```\n *\n * @see {@link zipRight} for a version that returns the result of the second\n * effect.\n *\n * @since 2.0.0\n * @category Zipping\n */\nexport const zipLeft = fiberRuntime.zipLeftOptions;\n/**\n * Executes two effects sequentially, returning the result of the second effect\n * while ignoring the result of the first.\n *\n * **Details**\n *\n * This function allows you to run two effects in sequence, keeping the result\n * of the second effect and discarding the result of the first. By default, the\n * two effects are executed sequentially. If you need them to run concurrently,\n * you can pass the `{ concurrent: true }` option.\n *\n * The first effect will always be executed, even though its result is ignored.\n * This makes it useful for scenarios where the first effect is needed for its\n * side effects, but only the result of the second effect is important.\n *\n * **When to Use**\n *\n * Use this function when you are only interested in the result of the second\n * effect but still need to run the first effect for its side effects, such as\n * initialization or setup tasks.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const task1 = Effect.succeed(1).pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Effect.log(\"task1 done\"))\n * )\n * const task2 = Effect.succeed(\"hello\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Effect.log(\"task2 done\"))\n * )\n *\n * const program = Effect.zipRight(task1, task2)\n *\n * Effect.runPromise(program).then(console.log)\n * // Output:\n * // timestamp=... level=INFO fiber=#0 message=\"task1 done\"\n * // timestamp=... level=INFO fiber=#0 message=\"task2 done\"\n * // hello\n * ```\n *\n * @see {@link zipLeft} for a version that returns the result of the first\n * effect.\n *\n * @since 2.0.0\n * @category Zipping\n */\nexport const zipRight = fiberRuntime.zipRightOptions;\n/**\n * Combines two effects sequentially and applies a function to their results to\n * produce a single value.\n *\n * **Details**\n *\n * This function runs two effects in sequence (or concurrently, if the `{\n * concurrent: true }` option is provided) and combines their results using a\n * provided function. Unlike {@link zip}, which returns a tuple of the results,\n * this function processes the results with a custom function to produce a\n * single output.\n *\n * **Example** (Combining Effects with a Custom Function)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const task1 = Effect.succeed(1).pipe(\n * Effect.delay(\"200 millis\"),\n * Effect.tap(Effect.log(\"task1 done\"))\n * )\n * const task2 = Effect.succeed(\"hello\").pipe(\n * Effect.delay(\"100 millis\"),\n * Effect.tap(Effect.log(\"task2 done\"))\n * )\n *\n * const task3 = Effect.zipWith(\n * task1,\n * task2,\n * // Combines results into a single value\n * (number, string) => number + string.length\n * )\n *\n * Effect.runPromise(task3).then(console.log)\n * // Output:\n * // timestamp=... level=INFO fiber=#3 message=\"task1 done\"\n * // timestamp=... level=INFO fiber=#2 message=\"task2 done\"\n * // 6\n * ```\n *\n * @since 2.0.0\n * @category Zipping\n */\nexport const zipWith = fiberRuntime.zipWithOptions;\n/**\n * Applies the function produced by one effect to the value produced by another effect.\n *\n * **Details**\n *\n * This function combines two effects:\n * - The first effect produces a function of type `(a: A) => B`.\n * - The second effect produces a value of type `A`.\n *\n * Once both effects complete successfully, the function is applied to the value, resulting in an effect that produces a value of type `B`.\n *\n * @since 2.0.0\n */\nexport const ap = /*#__PURE__*/dual(2, (self, that) => zipWith(self, that, (f, a) => f(a)));\n/**\n * @category Requests & Batching\n * @since 2.0.0\n */\nexport const blocked = core.blocked;\n/**\n * @category Requests & Batching\n * @since 2.0.0\n */\nexport const runRequestBlock = core.runRequestBlock;\n/**\n * @category Requests & Batching\n * @since 2.0.0\n */\nexport const step = core.step;\n/**\n * @since 2.0.0\n * @category Requests & Batching\n */\nexport const request = /*#__PURE__*/dual(args => Request.isRequest(args[0]), query.fromRequest);\n/**\n * @since 2.0.0\n * @category Requests & Batching\n */\nexport const cacheRequestResult = query.cacheRequest;\n/**\n * @since 2.0.0\n * @category Requests & Batching\n */\nexport const withRequestBatching = core.withRequestBatching;\n/**\n * @since 2.0.0\n * @category Requests & Batching\n */\nexport const withRequestCaching = query.withRequestCaching;\n/**\n * @since 2.0.0\n * @category Requests & Batching\n */\nexport const withRequestCache = query.withRequestCache;\n/**\n * @since 2.0.0\n * @category Tracing\n */\nexport const tracer = effect.tracer;\n/**\n * @since 2.0.0\n * @category Tracing\n */\nexport const tracerWith = defaultServices.tracerWith;\n/**\n * @since 2.0.0\n * @category Tracing\n */\nexport const withTracer = defaultServices.withTracer;\n/**\n * @since 2.0.0\n * @category Tracing\n */\nexport const withTracerScoped = fiberRuntime.withTracerScoped;\n/**\n * Disable the tracer for the given Effect.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * Effect.succeed(42).pipe(\n * Effect.withSpan(\"my-span\"),\n * // the span will not be registered with the tracer\n * Effect.withTracerEnabled(false)\n * )\n * ```\n *\n * @since 2.0.0\n * @category Tracing\n */\nexport const withTracerEnabled = core.withTracerEnabled;\n/**\n * @since 2.0.0\n * @category Tracing\n */\nexport const withTracerTiming = core.withTracerTiming;\n/**\n * Adds annotations to each span in the effect for enhanced traceability.\n *\n * **Details**\n *\n * This function lets you attach key-value annotations to all spans generated\n * during the execution of an effect. Annotations provide additional context,\n * such as metadata or labels, which can help you understand and debug\n * asynchronous workflows more effectively.\n *\n * You can either pass a single key-value pair or a record of key-value pairs to\n * annotate the spans. These annotations can then be visualized in tracing tools\n * that support span annotations.\n *\n * @since 2.0.0\n * @category Tracing\n */\nexport const annotateSpans = effect.annotateSpans;\n/**\n * Adds annotations to the currently active span for traceability.\n *\n * **Details**\n *\n * This function adds key-value annotations to the currently active span in the\n * effect's trace. These annotations help provide more context about the\n * operation being executed at a specific point in time. Unlike\n * {@link annotateSpans}, which applies to all spans in an effect, this function\n * focuses solely on the active span.\n *\n * You can either pass a single key-value pair or a record of key-value pairs to\n * annotate the span. These annotations are useful for adding metadata to\n * operations, especially in systems with detailed observability requirements.\n *\n * @since 2.0.0\n * @category Tracing\n */\nexport const annotateCurrentSpan = effect.annotateCurrentSpan;\n/**\n * @since 2.0.0\n * @category Tracing\n */\nexport const currentSpan = effect.currentSpan;\n/**\n * @since 2.0.0\n * @category Tracing\n */\nexport const currentParentSpan = effect.currentParentSpan;\n/**\n * @since 2.0.0\n * @category Tracing\n */\nexport const spanAnnotations = effect.spanAnnotations;\n/**\n * @since 2.0.0\n * @category Tracing\n */\nexport const spanLinks = effect.spanLinks;\n/**\n * For all spans in this effect, add a link with the provided span.\n *\n * @since 2.0.0\n * @category Tracing\n */\nexport const linkSpans = effect.linkSpans;\n/**\n * Add span links to the current span.\n *\n * @since 3.14.0\n * @category Tracing\n */\nexport const linkSpanCurrent = effect.linkSpanCurrent;\n/**\n * Create a new span for tracing.\n *\n * @since 2.0.0\n * @category Tracing\n */\nexport const makeSpan = effect.makeSpan;\n/**\n * Create a new span for tracing, and automatically close it when the Scope\n * finalizes.\n *\n * The span is not added to the current span stack, so no child spans will be\n * created for it.\n *\n * @since 2.0.0\n * @category Tracing\n */\nexport const makeSpanScoped = fiberRuntime.makeSpanScoped;\n/**\n * Create a new span for tracing, and automatically close it when the effect\n * completes.\n *\n * The span is not added to the current span stack, so no child spans will be\n * created for it.\n *\n * @since 2.0.0\n * @category Tracing\n */\nexport const useSpan = effect.useSpan;\n/**\n * Wraps the effect with a new span for tracing.\n *\n * @since 2.0.0\n * @category Tracing\n */\nexport const withSpan = effect.withSpan;\n/**\n * Wraps a function that returns an effect with a new span for tracing.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const getTodo = Effect.functionWithSpan({\n * body: (id: number) => Effect.succeed(`Got todo ${id}!`),\n * options: (id) => ({\n * name: `getTodo-${id}`,\n * attributes: { id }\n * })\n * })\n * ```\n *\n * @since 3.2.0\n * @category Tracing\n */\nexport const functionWithSpan = effect.functionWithSpan;\n/**\n * Wraps the effect with a new span for tracing.\n *\n * The span is ended when the Scope is finalized.\n *\n * @since 2.0.0\n * @category Tracing\n */\nexport const withSpanScoped = fiberRuntime.withSpanScoped;\n/**\n * Adds the provided span to the current span stack.\n *\n * @since 2.0.0\n * @category Tracing\n */\nexport const withParentSpan = effect.withParentSpan;\n/**\n * Safely handles nullable values by creating an effect that fails for `null` or\n * `undefined`.\n *\n * **Details**\n *\n * This function ensures that an input value is non-null and non-undefined\n * before processing it. If the value is valid, the effect succeeds with the\n * value. If the value is `null` or `undefined`, the effect fails with a\n * `NoSuchElementException`. This is particularly useful for avoiding\n * null-related errors by clearly separating valid values from invalid ones in\n * effectful computations.\n *\n * The failure with `NoSuchElementException` allows you to explicitly handle\n * cases where a value is expected but not provided, leading to safer and more\n * predictable code.\n *\n * **When to Use**\n *\n * Use this function when working with values that may be `null` or `undefined`\n * and you want to ensure that only non-null values are processed. It helps\n * enforce null-safety and makes error handling more explicit.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const maybe1 = Effect.fromNullable(1)\n *\n * Effect.runPromiseExit(maybe1).then(console.log)\n * // Output:\n * // { _id: 'Exit', _tag: 'Success', value: 1 }\n *\n * // ┌─── Effect\n * // ▼\n * const maybe2 = Effect.fromNullable(null as number | null)\n *\n * Effect.runPromiseExit(maybe2).then(console.log)\n * // Output:\n * // {\n * // _id: 'Exit',\n * // _tag: 'Failure',\n * // cause: {\n * // _id: 'Cause',\n * // _tag: 'Fail',\n * // failure: { _tag: 'NoSuchElementException' }\n * // }\n * // }\n * ```\n *\n * @since 2.0.0\n * @category Optional Wrapping & Unwrapping\n */\nexport const fromNullable = effect.fromNullable;\n/**\n * Converts an effect that may fail with a `NoSuchElementException` into an\n * effect that succeeds with an `Option`.\n *\n * **Details**\n *\n * This function transforms an effect that might fail with\n * `Cause.NoSuchElementException` into an effect that succeeds with an `Option`\n * type. If the original effect succeeds, its value is wrapped in `Option.some`.\n * If it fails specifically due to a `NoSuchElementException`, the failure is\n * mapped to `Option.none`. Other types of failures remain unchanged and are\n * passed through as they are.\n *\n * This is useful when working with effects where you want to gracefully handle\n * the absence of a value while preserving other potential failures.\n *\n * **When to Use**\n *\n * Use this function when you need to handle missing values as `Option.none`\n * rather than throwing or propagating errors like `NoSuchElementException`.\n * It’s ideal for scenarios where you want to explicitly represent optionality\n * in a type-safe way while retaining other failure information.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * // ┌─── Effect\n * // ▼\n * const maybe1 = Effect.fromNullable(1)\n *\n * // ┌─── Effect, never, never>\n * // ▼\n * const option1 = Effect.optionFromOptional(maybe1)\n *\n * Effect.runPromise(option1).then(console.log)\n * // Output: { _id: 'Option', _tag: 'Some', value: 1 }\n *\n * // ┌─── Effect\n * // ▼\n * const maybe2 = Effect.fromNullable(null as number | null)\n *\n * // ┌─── Effect, never, never>\n * // ▼\n * const option2 = Effect.optionFromOptional(maybe2)\n *\n * Effect.runPromise(option2).then(console.log)\n * // Output: { _tag: 'None' }\n * ```\n *\n * @since 2.0.0\n * @category Optional Wrapping & Unwrapping\n */\nexport const optionFromOptional = effect.optionFromOptional;\n/**\n * Converts an `Option` of an `Effect` into an `Effect` of an `Option`.\n *\n * **Details**\n *\n * This function transforms an `Option>` into an\n * `Effect, E, R>`. If the `Option` is `None`, the resulting `Effect`\n * will immediately succeed with a `None` value. If the `Option` is `Some`, the\n * inner `Effect` will be executed, and its result wrapped in a `Some`.\n *\n * **Example**\n *\n * ```ts\n * import { Effect, Option } from \"effect\"\n *\n * // ┌─── Option>\n * // ▼\n * const maybe = Option.some(Effect.succeed(42))\n *\n * // ┌─── Effect, never, never>\n * // ▼\n * const result = Effect.transposeOption(maybe)\n *\n * console.log(Effect.runSync(result))\n * // Output: { _id: 'Option', _tag: 'Some', value: 42 }\n * ```\n *\n * @since 3.13.0\n * @category Optional Wrapping & Unwrapping\n */\nexport const transposeOption = self => {\n return option_.isNone(self) ? succeedNone : map(self.value, option_.some);\n};\n/**\n * Applies an `Effect` on an `Option` and transposes the result.\n *\n * **Details**\n *\n * If the `Option` is `None`, the resulting `Effect` will immediately succeed with a `None` value.\n * If the `Option` is `Some`, the effectful operation will be executed on the inner value, and its result wrapped in a `Some`.\n *\n * @example\n * ```ts\n * import { Effect, Option, pipe } from \"effect\"\n *\n * // ┌─── Effect, never, never>>\n * // ▼\n * const noneResult = pipe(\n * Option.none(),\n * Effect.transposeMapOption(() => Effect.succeed(42)) // will not be executed\n * )\n * console.log(Effect.runSync(noneResult))\n * // Output: { _id: 'Option', _tag: 'None' }\n *\n * // ┌─── Effect, never, never>>\n * // ▼\n * const someSuccessResult = pipe(\n * Option.some(42),\n * Effect.transposeMapOption((value) => Effect.succeed(value * 2))\n * )\n * console.log(Effect.runSync(someSuccessResult))\n * // Output: { _id: 'Option', _tag: 'Some', value: 84 }\n * ```\n *\n * @since 3.14.0\n * @category Optional Wrapping & Unwrapping\n */\nexport const transposeMapOption = /*#__PURE__*/dual(2, (self, f) => option_.isNone(self) ? succeedNone : map(f(self.value), option_.some));\nconst makeTagProxy = TagClass => {\n const cache = new Map();\n return new Proxy(TagClass, {\n get(target, prop, receiver) {\n if (prop in target) {\n return Reflect.get(target, prop, receiver);\n }\n if (cache.has(prop)) {\n return cache.get(prop);\n }\n const fn = (...args) => core.andThen(target, s => {\n if (typeof s[prop] === \"function\") {\n cache.set(prop, (...args) => core.andThen(target, s => s[prop](...args)));\n return s[prop](...args);\n }\n cache.set(prop, core.andThen(target, s => s[prop]));\n return s[prop];\n });\n const cn = core.andThen(target, s => s[prop]);\n // @effect-diagnostics-next-line floatingEffect:off\n Object.assign(fn, cn);\n const apply = fn.apply;\n const bind = fn.bind;\n const call = fn.call;\n const proto = Object.setPrototypeOf({}, Object.getPrototypeOf(cn));\n proto.apply = apply;\n proto.bind = bind;\n proto.call = call;\n Object.setPrototypeOf(fn, proto);\n cache.set(prop, fn);\n return fn;\n }\n });\n};\n/**\n * Creates a unique tag for a dependency, embedding the service's methods as\n * static properties.\n *\n * **Details**\n *\n * This function allows you to define a `Tag` for a service or dependency in\n * your application. The `Tag` not only acts as an identifier but also provides\n * direct access to the service's methods via static properties. This makes it\n * easier to access and use the service in your code without manually managing\n * contexts.\n *\n * In the example below, the fields of the service (in this case, the `notify`\n * method) are turned into static properties of the Notifications class, making\n * it easier to access them.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * class Notifications extends Effect.Tag(\"Notifications\")<\n * Notifications,\n * { readonly notify: (message: string) => Effect.Effect }\n * >() {}\n *\n * // Create an effect that depends on the Notifications service\n * const action = Notifications.notify(\"Hello, world!\")\n * ```\n *\n * @since 2.0.0\n * @category Context\n */\nexport const Tag = id => () => {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 2;\n const creationError = new Error();\n Error.stackTraceLimit = limit;\n function TagClass() {}\n Object.setPrototypeOf(TagClass, TagProto);\n TagClass.key = id;\n Object.defineProperty(TagClass, \"use\", {\n get() {\n return body => core.andThen(this, body);\n }\n });\n Object.defineProperty(TagClass, \"stack\", {\n get() {\n return creationError.stack;\n }\n });\n return makeTagProxy(TagClass);\n};\n/**\n * Simplifies the creation and management of services in Effect by defining both\n * a `Tag` and a `Layer`.\n *\n * **Details**\n *\n * This function allows you to streamline the creation of services by combining\n * the definition of a `Context.Tag` and a `Layer` in a single step. It supports\n * various ways of providing the service implementation:\n * - Using an `effect` to define the service dynamically.\n * - Using `sync` or `succeed` to define the service statically.\n * - Using `scoped` to create services with lifecycle management.\n *\n * It also allows you to specify dependencies for the service, which will be\n * provided automatically when the service is used. Accessors can be optionally\n * generated for the service, making it more convenient to use.\n *\n * **Example**\n *\n * ```ts\n * import { Effect } from 'effect';\n *\n * class Prefix extends Effect.Service()(\"Prefix\", {\n * sync: () => ({ prefix: \"PRE\" })\n * }) {}\n *\n * class Logger extends Effect.Service()(\"Logger\", {\n * accessors: true,\n * effect: Effect.gen(function* () {\n * const { prefix } = yield* Prefix\n * return {\n * info: (message: string) =>\n * Effect.sync(() => {\n * console.log(`[${prefix}][${message}]`)\n * })\n * }\n * }),\n * dependencies: [Prefix.Default]\n * }) {}\n * ```\n *\n * @since 3.9.0\n * @category Context\n * @experimental might be up for breaking changes\n */\nexport const Service = function () {\n return function () {\n const [id, maker] = arguments;\n const proxy = \"accessors\" in maker ? maker[\"accessors\"] : false;\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 2;\n const creationError = new Error();\n Error.stackTraceLimit = limit;\n let patchState = \"unchecked\";\n const TagClass = function (service) {\n if (patchState === \"unchecked\") {\n const proto = Object.getPrototypeOf(service);\n if (proto === Object.prototype || proto === null) {\n patchState = \"plain\";\n } else {\n const selfProto = Object.getPrototypeOf(this);\n Object.setPrototypeOf(selfProto, proto);\n patchState = \"patched\";\n }\n }\n if (patchState === \"plain\") {\n Object.assign(this, service);\n } else if (patchState === \"patched\") {\n Object.setPrototypeOf(service, Object.getPrototypeOf(this));\n return service;\n }\n };\n TagClass.prototype._tag = id;\n Object.defineProperty(TagClass, \"make\", {\n get() {\n return service => new this(service);\n }\n });\n Object.defineProperty(TagClass, \"use\", {\n get() {\n return body => core.andThen(this, body);\n }\n });\n TagClass.key = id;\n Object.assign(TagClass, TagProto);\n Object.defineProperty(TagClass, \"stack\", {\n get() {\n return creationError.stack;\n }\n });\n const hasDeps = \"dependencies\" in maker && maker.dependencies.length > 0;\n const layerName = hasDeps ? \"DefaultWithoutDependencies\" : \"Default\";\n let layerCache;\n let isFunction = false;\n if (\"effect\" in maker) {\n isFunction = typeof maker.effect === \"function\";\n Object.defineProperty(TagClass, layerName, {\n get() {\n if (isFunction) {\n return function () {\n return layer.fromEffect(TagClass, map(maker.effect.apply(null, arguments), _ => new this(_)));\n }.bind(this);\n }\n return layerCache ??= layer.fromEffect(TagClass, map(maker.effect, _ => new this(_)));\n }\n });\n } else if (\"scoped\" in maker) {\n isFunction = typeof maker.scoped === \"function\";\n Object.defineProperty(TagClass, layerName, {\n get() {\n if (isFunction) {\n return function () {\n return layer.scoped(TagClass, map(maker.scoped.apply(null, arguments), _ => new this(_)));\n }.bind(this);\n }\n return layerCache ??= layer.scoped(TagClass, map(maker.scoped, _ => new this(_)));\n }\n });\n } else if (\"sync\" in maker) {\n Object.defineProperty(TagClass, layerName, {\n get() {\n return layerCache ??= layer.sync(TagClass, () => new this(maker.sync()));\n }\n });\n } else {\n Object.defineProperty(TagClass, layerName, {\n get() {\n return layerCache ??= layer.succeed(TagClass, new this(maker.succeed));\n }\n });\n }\n if (hasDeps) {\n let layerWithDepsCache;\n Object.defineProperty(TagClass, \"Default\", {\n get() {\n if (isFunction) {\n return function () {\n return layer.provide(this.DefaultWithoutDependencies.apply(null, arguments), maker.dependencies);\n };\n }\n return layerWithDepsCache ??= layer.provide(this.DefaultWithoutDependencies, maker.dependencies);\n }\n });\n }\n return proxy === true ? makeTagProxy(TagClass) : TagClass;\n };\n};\n/**\n * The `Effect.fn` function allows you to create traced functions that return an\n * effect. It provides two key features:\n *\n * - **Stack traces with location details** if an error occurs.\n * - **Automatic span creation** for tracing when a span name is provided.\n *\n * If a span name is passed as the first argument, the function's execution is\n * tracked using that name. If no name is provided, stack tracing still works,\n * but spans are not created.\n *\n * A function can be defined using either:\n *\n * - A generator function, allowing the use of `yield*` for effect composition.\n * - A regular function that returns an `Effect`.\n *\n * **Example** (Creating a Traced Function with a Span Name)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const myfunc = Effect.fn(\"myspan\")(function* (n: N) {\n * yield* Effect.annotateCurrentSpan(\"n\", n) // Attach metadata to the span\n * console.log(`got: ${n}`)\n * yield* Effect.fail(new Error(\"Boom!\")) // Simulate failure\n * })\n *\n * Effect.runFork(myfunc(100).pipe(Effect.catchAllCause(Effect.logError)))\n * // Output:\n * // got: 100\n * // timestamp=... level=ERROR fiber=#0 cause=\"Error: Boom!\n * // at (/.../index.ts:6:22) <= Raise location\n * // at myspan (/.../index.ts:3:23) <= Definition location\n * // at myspan (/.../index.ts:9:16)\" <= Call location\n * ```\n *\n * `Effect.fn` automatically creates spans. The spans capture information about\n * the function execution, including metadata and error details.\n *\n * **Example** (Exporting Spans to the Console)\n *\n * ```ts skip-type-checking\n * import { Effect } from \"effect\"\n * import { NodeSdk } from \"@effect/opentelemetry\"\n * import {\n * ConsoleSpanExporter,\n * BatchSpanProcessor\n * } from \"@opentelemetry/sdk-trace-base\"\n *\n * const myfunc = Effect.fn(\"myspan\")(function* (n: N) {\n * yield* Effect.annotateCurrentSpan(\"n\", n)\n * console.log(`got: ${n}`)\n * yield* Effect.fail(new Error(\"Boom!\"))\n * })\n *\n * const program = myfunc(100)\n *\n * const NodeSdkLive = NodeSdk.layer(() => ({\n * resource: { serviceName: \"example\" },\n * // Export span data to the console\n * spanProcessor: new BatchSpanProcessor(new ConsoleSpanExporter())\n * }))\n *\n * Effect.runFork(program.pipe(Effect.provide(NodeSdkLive)))\n * // Output:\n * // got: 100\n * // {\n * // resource: {\n * // attributes: {\n * // 'service.name': 'example',\n * // 'telemetry.sdk.language': 'nodejs',\n * // 'telemetry.sdk.name': '@effect/opentelemetry',\n * // 'telemetry.sdk.version': '1.30.1'\n * // }\n * // },\n * // instrumentationScope: { name: 'example', version: undefined, schemaUrl: undefined },\n * // traceId: '22801570119e57a6e2aacda3dec9665b',\n * // parentId: undefined,\n * // traceState: undefined,\n * // name: 'myspan',\n * // id: '7af530c1e01bc0cb',\n * // kind: 0,\n * // timestamp: 1741182277518402.2,\n * // duration: 4300.416,\n * // attributes: {\n * // n: 100,\n * // 'code.stacktrace': 'at (/.../index.ts:8:23)\\n' +\n * // 'at (/.../index.ts:14:17)'\n * // },\n * // status: { code: 2, message: 'Boom!' },\n * // events: [\n * // {\n * // name: 'exception',\n * // attributes: {\n * // 'exception.type': 'Error',\n * // 'exception.message': 'Boom!',\n * // 'exception.stacktrace': 'Error: Boom!\\n' +\n * // ' at (/.../index.ts:11:22)\\n' +\n * // ' at myspan (/.../index.ts:8:23)\\n' +\n * // ' at myspan (/.../index.ts:14:17)'\n * // },\n * // time: [ 1741182277, 522702583 ],\n * // droppedAttributesCount: 0\n * // }\n * // ],\n * // links: []\n * // }\n * ```\n *\n * `Effect.fn` also acts as a pipe function, allowing you to create a pipeline\n * after the function definition using the effect returned by the generator\n * function as the starting value of the pipeline.\n *\n * **Example** (Creating a Traced Function with a Delay)\n *\n * ```ts\n * import { Effect } from \"effect\"\n *\n * const myfunc = Effect.fn(\n * function* (n: number) {\n * console.log(`got: ${n}`)\n * yield* Effect.fail(new Error(\"Boom!\"))\n * },\n * // You can access both the created effect and the original arguments\n * (effect, n) => Effect.delay(effect, `${n / 100} seconds`)\n * )\n *\n * Effect.runFork(myfunc(100).pipe(Effect.catchAllCause(Effect.logError)))\n * // Output:\n * // got: 100\n * // timestamp=... level=ERROR fiber=#0 cause=\"Error: Boom! (<= after 1 second)\n * ```\n *\n * @see {@link fnUntraced} for a version of this function that doesn't add a span.\n *\n * @since 3.11.0\n * @category Tracing\n */\nexport const fn = function (nameOrBody, ...pipeables) {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 2;\n const errorDef = new Error();\n Error.stackTraceLimit = limit;\n if (typeof nameOrBody !== \"string\") {\n return defineLength(nameOrBody.length, function (...args) {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 2;\n const errorCall = new Error();\n Error.stackTraceLimit = limit;\n return fnApply({\n self: this,\n body: nameOrBody,\n args,\n pipeables,\n spanName: \"\",\n spanOptions: {\n context: internalTracer.DisablePropagation.context(true)\n },\n errorDef,\n errorCall\n });\n });\n }\n const name = nameOrBody;\n const options = pipeables[0];\n return (body, ...pipeables) => defineLength(body.length, {\n [name](...args) {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 2;\n const errorCall = new Error();\n Error.stackTraceLimit = limit;\n return fnApply({\n self: this,\n body,\n args,\n pipeables,\n spanName: name,\n spanOptions: options,\n errorDef,\n errorCall\n });\n }\n }[name]);\n};\nfunction defineLength(length, fn) {\n return Object.defineProperty(fn, \"length\", {\n value: length,\n configurable: true\n });\n}\nfunction fnApply(options) {\n let effect;\n let fnError = undefined;\n if (isGeneratorFunction(options.body)) {\n effect = core.fromIterator(() => options.body.apply(options.self, options.args));\n } else {\n try {\n effect = options.body.apply(options.self, options.args);\n } catch (error) {\n fnError = error;\n effect = die(error);\n }\n }\n if (options.pipeables.length > 0) {\n try {\n for (const x of options.pipeables) {\n effect = x(effect, ...options.args);\n }\n } catch (error) {\n effect = fnError ? failCause(internalCause.sequential(internalCause.die(fnError), internalCause.die(error))) : die(error);\n }\n }\n let cache = false;\n const captureStackTrace = () => {\n if (cache !== false) {\n return cache;\n }\n if (options.errorCall.stack) {\n const stackDef = options.errorDef.stack.trim().split(\"\\n\");\n const stackCall = options.errorCall.stack.trim().split(\"\\n\");\n let endStackDef = stackDef.slice(2).join(\"\\n\").trim();\n if (!endStackDef.includes(`(`)) {\n endStackDef = endStackDef.replace(/at (.*)/, \"at ($1)\");\n }\n let endStackCall = stackCall.slice(2).join(\"\\n\").trim();\n if (!endStackCall.includes(`(`)) {\n endStackCall = endStackCall.replace(/at (.*)/, \"at ($1)\");\n }\n cache = `${endStackDef}\\n${endStackCall}`;\n return cache;\n }\n };\n const opts = options.spanOptions && \"captureStackTrace\" in options.spanOptions ? options.spanOptions : {\n captureStackTrace,\n ...options.spanOptions\n };\n return withSpan(effect, options.spanName, opts);\n}\n/**\n * Same as {@link fn}, but allows you to create a function that is not traced, for when performance is critical.\n *\n * @see {@link fn} for a version that includes tracing.\n *\n * @since 3.12.0\n * @category Tracing\n */\nexport const fnUntraced = core.fnUntraced;\n// -----------------------------------------------------------------------------\n// Type constraints\n// -----------------------------------------------------------------------------\n/**\n * A no-op type constraint that enforces the success channel of an Effect conforms to\n * the specified success type `A`.\n *\n * @example\n * import { Effect } from \"effect\"\n *\n * // Ensure that the program does not expose any unhandled errors.\n * const program = Effect.succeed(42).pipe(Effect.ensureSuccessType())\n *\n * @since 3.17.0\n * @category Type constraints\n */\nexport const ensureSuccessType = () => effect => effect;\n/**\n * A no-op type constraint that enforces the error channel of an Effect conforms to\n * the specified error type `E`.\n *\n * @example\n * import { Effect } from \"effect\"\n *\n * // Ensure that the program does not expose any unhandled errors.\n * const program = Effect.succeed(42).pipe(Effect.ensureErrorType())\n *\n * @since 3.17.0\n * @category Type constraints\n */\nexport const ensureErrorType = () => effect => effect;\n/**\n * A no-op type constraint that enforces the requirements channel of an Effect conforms to\n * the specified requirements type `R`.\n *\n * @example\n * import { Effect } from \"effect\"\n *\n * // Ensure that the program does not have any requirements.\n * const program = Effect.succeed(42).pipe(Effect.ensureRequirementsType())\n *\n * @since 3.17.0\n * @category Type constraints\n */\nexport const ensureRequirementsType = () => effect => effect;\n//# sourceMappingURL=Effect.js.map","/**\n * @since 3.10.0\n */\nimport * as Arr from \"./Array.js\";\nimport * as Cause from \"./Cause.js\";\nimport { TaggedError } from \"./Data.js\";\nimport * as Effect from \"./Effect.js\";\nimport * as Either from \"./Either.js\";\nimport * as Exit from \"./Exit.js\";\nimport { dual } from \"./Function.js\";\nimport { globalValue } from \"./GlobalValue.js\";\nimport * as Inspectable from \"./Inspectable.js\";\nimport * as util_ from \"./internal/schema/util.js\";\nimport * as Option from \"./Option.js\";\nimport * as Predicate from \"./Predicate.js\";\nimport * as Scheduler from \"./Scheduler.js\";\nimport * as AST from \"./SchemaAST.js\";\n/**\n * @category model\n * @since 3.10.0\n */\nexport class Pointer {\n path;\n actual;\n issue;\n /**\n * @since 3.10.0\n */\n _tag = \"Pointer\";\n constructor(path, actual, issue) {\n this.path = path;\n this.actual = actual;\n this.issue = issue;\n }\n}\n/**\n * Error that occurs when an unexpected key or index is present.\n *\n * @category model\n * @since 3.10.0\n */\nexport class Unexpected {\n actual;\n message;\n /**\n * @since 3.10.0\n */\n _tag = \"Unexpected\";\n constructor(actual,\n /**\n * @since 3.10.0\n */\n message) {\n this.actual = actual;\n this.message = message;\n }\n}\n/**\n * Error that occurs when a required key or index is missing.\n *\n * @category model\n * @since 3.10.0\n */\nexport class Missing {\n ast;\n message;\n /**\n * @since 3.10.0\n */\n _tag = \"Missing\";\n /**\n * @since 3.10.0\n */\n actual = undefined;\n constructor(\n /**\n * @since 3.10.0\n */\n ast,\n /**\n * @since 3.10.0\n */\n message) {\n this.ast = ast;\n this.message = message;\n }\n}\n/**\n * Error that contains multiple issues.\n *\n * @category model\n * @since 3.10.0\n */\nexport class Composite {\n ast;\n actual;\n issues;\n output;\n /**\n * @since 3.10.0\n */\n _tag = \"Composite\";\n constructor(ast, actual, issues, output) {\n this.ast = ast;\n this.actual = actual;\n this.issues = issues;\n this.output = output;\n }\n}\n/**\n * Error that occurs when a refinement has an error.\n *\n * @category model\n * @since 3.10.0\n */\nexport class Refinement {\n ast;\n actual;\n kind;\n issue;\n /**\n * @since 3.10.0\n */\n _tag = \"Refinement\";\n constructor(ast, actual, kind, issue) {\n this.ast = ast;\n this.actual = actual;\n this.kind = kind;\n this.issue = issue;\n }\n}\n/**\n * Error that occurs when a transformation has an error.\n *\n * @category model\n * @since 3.10.0\n */\nexport class Transformation {\n ast;\n actual;\n kind;\n issue;\n /**\n * @since 3.10.0\n */\n _tag = \"Transformation\";\n constructor(ast, actual, kind, issue) {\n this.ast = ast;\n this.actual = actual;\n this.kind = kind;\n this.issue = issue;\n }\n}\n/**\n * The `Type` variant of the `ParseIssue` type represents an error that occurs when the `actual` value is not of the expected type.\n * The `ast` field specifies the expected type, and the `actual` field contains the value that caused the error.\n *\n * @category model\n * @since 3.10.0\n */\nexport class Type {\n ast;\n actual;\n message;\n /**\n * @since 3.10.0\n */\n _tag = \"Type\";\n constructor(ast, actual, message) {\n this.ast = ast;\n this.actual = actual;\n this.message = message;\n }\n}\n/**\n * The `Forbidden` variant of the `ParseIssue` type represents a forbidden operation, such as when encountering an Effect that is not allowed to execute (e.g., using `runSync`).\n *\n * @category model\n * @since 3.10.0\n */\nexport class Forbidden {\n ast;\n actual;\n message;\n /**\n * @since 3.10.0\n */\n _tag = \"Forbidden\";\n constructor(ast, actual, message) {\n this.ast = ast;\n this.actual = actual;\n this.message = message;\n }\n}\n/**\n * @category type id\n * @since 3.10.0\n */\nexport const ParseErrorTypeId = /*#__PURE__*/Symbol.for(\"effect/Schema/ParseErrorTypeId\");\n/**\n * @since 3.10.0\n */\nexport const isParseError = u => Predicate.hasProperty(u, ParseErrorTypeId);\n/**\n * @since 3.10.0\n */\nexport class ParseError extends /*#__PURE__*/TaggedError(\"ParseError\") {\n /**\n * @since 3.10.0\n */\n [ParseErrorTypeId] = ParseErrorTypeId;\n get message() {\n return this.toString();\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return TreeFormatter.formatIssueSync(this.issue);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _id: \"ParseError\",\n message: this.toString()\n };\n }\n /**\n * @since 3.10.0\n */\n [Inspectable.NodeInspectSymbol]() {\n return this.toJSON();\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const parseError = issue => new ParseError({\n issue\n});\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const succeed = Either.right;\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const fail = Either.left;\nconst _try = Either.try;\nexport {\n/**\n * @category constructors\n * @since 3.10.0\n */\n_try as try };\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const fromOption = Either.fromOption;\nconst isEither = Either.isEither;\n/**\n * @category optimisation\n * @since 3.10.0\n */\nexport const flatMap = /*#__PURE__*/dual(2, (self, f) => {\n return isEither(self) ? Either.match(self, {\n onLeft: Either.left,\n onRight: f\n }) : Effect.flatMap(self, f);\n});\n/**\n * @category optimisation\n * @since 3.10.0\n */\nexport const map = /*#__PURE__*/dual(2, (self, f) => {\n return isEither(self) ? Either.map(self, f) : Effect.map(self, f);\n});\n/**\n * @category optimisation\n * @since 3.10.0\n */\nexport const mapError = /*#__PURE__*/dual(2, (self, f) => {\n return isEither(self) ? Either.mapLeft(self, f) : Effect.mapError(self, f);\n});\n// TODO(4.0): remove\n/**\n * @category optimisation\n * @since 3.10.0\n */\nexport const eitherOrUndefined = self => {\n if (isEither(self)) {\n return self;\n }\n};\n/**\n * @category optimisation\n * @since 3.10.0\n */\nexport const mapBoth = /*#__PURE__*/dual(2, (self, options) => {\n return isEither(self) ? Either.mapBoth(self, {\n onLeft: options.onFailure,\n onRight: options.onSuccess\n }) : Effect.mapBoth(self, options);\n});\n/**\n * @category optimisation\n * @since 3.10.0\n */\nexport const orElse = /*#__PURE__*/dual(2, (self, f) => {\n return isEither(self) ? Either.match(self, {\n onLeft: f,\n onRight: Either.right\n }) : Effect.catchAll(self, f);\n});\n/** @internal */\nexport const mergeInternalOptions = (options, overrideOptions) => {\n if (overrideOptions === undefined || Predicate.isNumber(overrideOptions)) {\n return options;\n }\n if (options === undefined) {\n return overrideOptions;\n }\n return {\n ...options,\n ...overrideOptions\n };\n};\nconst getEither = (ast, isDecoding, options) => {\n const parser = goMemo(ast, isDecoding);\n return (u, overrideOptions) => parser(u, mergeInternalOptions(options, overrideOptions));\n};\nconst getSync = (ast, isDecoding, options) => {\n const parser = getEither(ast, isDecoding, options);\n return (input, overrideOptions) => Either.getOrThrowWith(parser(input, overrideOptions), parseError);\n};\n/** @internal */\nexport const getOption = (ast, isDecoding, options) => {\n const parser = getEither(ast, isDecoding, options);\n return (input, overrideOptions) => Option.getRight(parser(input, overrideOptions));\n};\nconst getEffect = (ast, isDecoding, options) => {\n const parser = goMemo(ast, isDecoding);\n return (input, overrideOptions) => parser(input, {\n ...mergeInternalOptions(options, overrideOptions),\n isEffectAllowed: true\n });\n};\n/**\n * @throws `ParseError`\n * @category decoding\n * @since 3.10.0\n */\nexport const decodeUnknownSync = (schema, options) => getSync(schema.ast, true, options);\n/**\n * @category decoding\n * @since 3.10.0\n */\nexport const decodeUnknownOption = (schema, options) => getOption(schema.ast, true, options);\n/**\n * @category decoding\n * @since 3.10.0\n */\nexport const decodeUnknownEither = (schema, options) => getEither(schema.ast, true, options);\n/**\n * @category decoding\n * @since 3.10.0\n */\nexport const decodeUnknownPromise = (schema, options) => {\n const parser = decodeUnknown(schema, options);\n return (u, overrideOptions) => Effect.runPromise(parser(u, overrideOptions));\n};\n/**\n * @category decoding\n * @since 3.10.0\n */\nexport const decodeUnknown = (schema, options) => getEffect(schema.ast, true, options);\n/**\n * @throws `ParseError`\n * @category encoding\n * @since 3.10.0\n */\nexport const encodeUnknownSync = (schema, options) => getSync(schema.ast, false, options);\n/**\n * @category encoding\n * @since 3.10.0\n */\nexport const encodeUnknownOption = (schema, options) => getOption(schema.ast, false, options);\n/**\n * @category encoding\n * @since 3.10.0\n */\nexport const encodeUnknownEither = (schema, options) => getEither(schema.ast, false, options);\n/**\n * @category encoding\n * @since 3.10.0\n */\nexport const encodeUnknownPromise = (schema, options) => {\n const parser = encodeUnknown(schema, options);\n return (u, overrideOptions) => Effect.runPromise(parser(u, overrideOptions));\n};\n/**\n * @category encoding\n * @since 3.10.0\n */\nexport const encodeUnknown = (schema, options) => getEffect(schema.ast, false, options);\n/**\n * @category decoding\n * @since 3.10.0\n */\nexport const decodeSync = decodeUnknownSync;\n/**\n * @category decoding\n * @since 3.10.0\n */\nexport const decodeOption = decodeUnknownOption;\n/**\n * @category decoding\n * @since 3.10.0\n */\nexport const decodeEither = decodeUnknownEither;\n/**\n * @category decoding\n * @since 3.10.0\n */\nexport const decodePromise = decodeUnknownPromise;\n/**\n * @category decoding\n * @since 3.10.0\n */\nexport const decode = decodeUnknown;\n/**\n * @throws `ParseError`\n * @category validation\n * @since 3.10.0\n */\nexport const validateSync = (schema, options) => getSync(AST.typeAST(schema.ast), true, options);\n/**\n * @category validation\n * @since 3.10.0\n */\nexport const validateOption = (schema, options) => getOption(AST.typeAST(schema.ast), true, options);\n/**\n * @category validation\n * @since 3.10.0\n */\nexport const validateEither = (schema, options) => getEither(AST.typeAST(schema.ast), true, options);\n/**\n * @category validation\n * @since 3.10.0\n */\nexport const validatePromise = (schema, options) => {\n const parser = validate(schema, options);\n return (u, overrideOptions) => Effect.runPromise(parser(u, overrideOptions));\n};\n/**\n * @category validation\n * @since 3.10.0\n */\nexport const validate = (schema, options) => getEffect(AST.typeAST(schema.ast), true, options);\n/**\n * By default the option `exact` is set to `true`.\n *\n * @category validation\n * @since 3.10.0\n */\nexport const is = (schema, options) => {\n const parser = goMemo(AST.typeAST(schema.ast), true);\n return (u, overrideOptions) => Either.isRight(parser(u, {\n exact: true,\n ...mergeInternalOptions(options, overrideOptions)\n }));\n};\n/**\n * By default the option `exact` is set to `true`.\n *\n * @throws `ParseError`\n * @category validation\n * @since 3.10.0\n */\nexport const asserts = (schema, options) => {\n const parser = goMemo(AST.typeAST(schema.ast), true);\n return (u, overrideOptions) => {\n const result = parser(u, {\n exact: true,\n ...mergeInternalOptions(options, overrideOptions)\n });\n if (Either.isLeft(result)) {\n throw parseError(result.left);\n }\n };\n};\n/**\n * @category encoding\n * @since 3.10.0\n */\nexport const encodeSync = encodeUnknownSync;\n/**\n * @category encoding\n * @since 3.10.0\n */\nexport const encodeOption = encodeUnknownOption;\n/**\n * @category encoding\n * @since 3.10.0\n */\nexport const encodeEither = encodeUnknownEither;\n/**\n * @category encoding\n * @since 3.10.0\n */\nexport const encodePromise = encodeUnknownPromise;\n/**\n * @category encoding\n * @since 3.10.0\n */\nexport const encode = encodeUnknown;\nconst decodeMemoMap = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/ParseResult/decodeMemoMap\"), () => new WeakMap());\nconst encodeMemoMap = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/ParseResult/encodeMemoMap\"), () => new WeakMap());\nconst goMemo = (ast, isDecoding) => {\n const memoMap = isDecoding ? decodeMemoMap : encodeMemoMap;\n const memo = memoMap.get(ast);\n if (memo) {\n return memo;\n }\n const raw = go(ast, isDecoding);\n const parseOptionsAnnotation = AST.getParseOptionsAnnotation(ast);\n const parserWithOptions = Option.isSome(parseOptionsAnnotation) ? (i, options) => raw(i, mergeInternalOptions(options, parseOptionsAnnotation.value)) : raw;\n const decodingFallbackAnnotation = AST.getDecodingFallbackAnnotation(ast);\n const parser = isDecoding && Option.isSome(decodingFallbackAnnotation) ? (i, options) => handleForbidden(orElse(parserWithOptions(i, options), decodingFallbackAnnotation.value), ast, i, options) : parserWithOptions;\n memoMap.set(ast, parser);\n return parser;\n};\nconst getConcurrency = ast => Option.getOrUndefined(AST.getConcurrencyAnnotation(ast));\nconst getBatching = ast => Option.getOrUndefined(AST.getBatchingAnnotation(ast));\nconst go = (ast, isDecoding) => {\n switch (ast._tag) {\n case \"Refinement\":\n {\n if (isDecoding) {\n const from = goMemo(ast.from, true);\n return (i, options) => {\n options = options ?? AST.defaultParseOption;\n const allErrors = options?.errors === \"all\";\n const result = flatMap(orElse(from(i, options), ef => {\n const issue = new Refinement(ast, i, \"From\", ef);\n if (allErrors && AST.hasStableFilter(ast) && isComposite(ef)) {\n return Option.match(ast.filter(i, options, ast), {\n onNone: () => Either.left(issue),\n onSome: ep => Either.left(new Composite(ast, i, [issue, new Refinement(ast, i, \"Predicate\", ep)]))\n });\n }\n return Either.left(issue);\n }), a => Option.match(ast.filter(a, options, ast), {\n onNone: () => Either.right(a),\n onSome: ep => Either.left(new Refinement(ast, i, \"Predicate\", ep))\n }));\n return handleForbidden(result, ast, i, options);\n };\n } else {\n const from = goMemo(AST.typeAST(ast), true);\n const to = goMemo(dropRightRefinement(ast.from), false);\n return (i, options) => handleForbidden(flatMap(from(i, options), a => to(a, options)), ast, i, options);\n }\n }\n case \"Transformation\":\n {\n const transform = getFinalTransformation(ast.transformation, isDecoding);\n const from = isDecoding ? goMemo(ast.from, true) : goMemo(ast.to, false);\n const to = isDecoding ? goMemo(ast.to, true) : goMemo(ast.from, false);\n return (i, options) => handleForbidden(flatMap(mapError(from(i, options), e => new Transformation(ast, i, isDecoding ? \"Encoded\" : \"Type\", e)), a => flatMap(mapError(transform(a, options ?? AST.defaultParseOption, ast, i), e => new Transformation(ast, i, \"Transformation\", e)), i2 => mapError(to(i2, options), e => new Transformation(ast, i, isDecoding ? \"Type\" : \"Encoded\", e)))), ast, i, options);\n }\n case \"Declaration\":\n {\n const parse = isDecoding ? ast.decodeUnknown(...ast.typeParameters) : ast.encodeUnknown(...ast.typeParameters);\n return (i, options) => handleForbidden(parse(i, options ?? AST.defaultParseOption, ast), ast, i, options);\n }\n case \"Literal\":\n return fromRefinement(ast, u => u === ast.literal);\n case \"UniqueSymbol\":\n return fromRefinement(ast, u => u === ast.symbol);\n case \"UndefinedKeyword\":\n return fromRefinement(ast, Predicate.isUndefined);\n case \"NeverKeyword\":\n return fromRefinement(ast, Predicate.isNever);\n case \"UnknownKeyword\":\n case \"AnyKeyword\":\n case \"VoidKeyword\":\n return Either.right;\n case \"StringKeyword\":\n return fromRefinement(ast, Predicate.isString);\n case \"NumberKeyword\":\n return fromRefinement(ast, Predicate.isNumber);\n case \"BooleanKeyword\":\n return fromRefinement(ast, Predicate.isBoolean);\n case \"BigIntKeyword\":\n return fromRefinement(ast, Predicate.isBigInt);\n case \"SymbolKeyword\":\n return fromRefinement(ast, Predicate.isSymbol);\n case \"ObjectKeyword\":\n return fromRefinement(ast, Predicate.isObject);\n case \"Enums\":\n return fromRefinement(ast, u => ast.enums.some(([_, value]) => value === u));\n case \"TemplateLiteral\":\n {\n const regex = AST.getTemplateLiteralRegExp(ast);\n return fromRefinement(ast, u => Predicate.isString(u) && regex.test(u));\n }\n case \"TupleType\":\n {\n const elements = ast.elements.map(e => goMemo(e.type, isDecoding));\n const rest = ast.rest.map(annotatedAST => goMemo(annotatedAST.type, isDecoding));\n let requiredTypes = ast.elements.filter(e => !e.isOptional);\n if (ast.rest.length > 0) {\n requiredTypes = requiredTypes.concat(ast.rest.slice(1));\n }\n const requiredLen = requiredTypes.length;\n const expectedIndexes = ast.elements.length > 0 ? ast.elements.map((_, i) => i).join(\" | \") : \"never\";\n const concurrency = getConcurrency(ast);\n const batching = getBatching(ast);\n return (input, options) => {\n if (!Arr.isArray(input)) {\n return Either.left(new Type(ast, input));\n }\n const allErrors = options?.errors === \"all\";\n const es = [];\n let stepKey = 0;\n const output = [];\n // ---------------------------------------------\n // handle missing indexes\n // ---------------------------------------------\n const len = input.length;\n for (let i = len; i <= requiredLen - 1; i++) {\n const e = new Pointer(i, input, new Missing(requiredTypes[i - len]));\n if (allErrors) {\n es.push([stepKey++, e]);\n continue;\n } else {\n return Either.left(new Composite(ast, input, e, output));\n }\n }\n // ---------------------------------------------\n // handle excess indexes\n // ---------------------------------------------\n if (ast.rest.length === 0) {\n for (let i = ast.elements.length; i <= len - 1; i++) {\n const e = new Pointer(i, input, new Unexpected(input[i], `is unexpected, expected: ${expectedIndexes}`));\n if (allErrors) {\n es.push([stepKey++, e]);\n continue;\n } else {\n return Either.left(new Composite(ast, input, e, output));\n }\n }\n }\n let i = 0;\n let queue = undefined;\n // ---------------------------------------------\n // handle elements\n // ---------------------------------------------\n for (; i < elements.length; i++) {\n if (len < i + 1) {\n if (ast.elements[i].isOptional) {\n // the input element is missing\n continue;\n }\n } else {\n const parser = elements[i];\n const te = parser(input[i], options);\n if (isEither(te)) {\n if (Either.isLeft(te)) {\n // the input element is present but is not valid\n const e = new Pointer(i, input, te.left);\n if (allErrors) {\n es.push([stepKey++, e]);\n continue;\n } else {\n return Either.left(new Composite(ast, input, e, sortByIndex(output)));\n }\n }\n output.push([stepKey++, te.right]);\n } else {\n const nk = stepKey++;\n const index = i;\n if (!queue) {\n queue = [];\n }\n queue.push(({\n es,\n output\n }) => Effect.flatMap(Effect.either(te), t => {\n if (Either.isLeft(t)) {\n // the input element is present but is not valid\n const e = new Pointer(index, input, t.left);\n if (allErrors) {\n es.push([nk, e]);\n return Effect.void;\n } else {\n return Either.left(new Composite(ast, input, e, sortByIndex(output)));\n }\n }\n output.push([nk, t.right]);\n return Effect.void;\n }));\n }\n }\n }\n // ---------------------------------------------\n // handle rest element\n // ---------------------------------------------\n if (Arr.isNonEmptyReadonlyArray(rest)) {\n const [head, ...tail] = rest;\n for (; i < len - tail.length; i++) {\n const te = head(input[i], options);\n if (isEither(te)) {\n if (Either.isLeft(te)) {\n const e = new Pointer(i, input, te.left);\n if (allErrors) {\n es.push([stepKey++, e]);\n continue;\n } else {\n return Either.left(new Composite(ast, input, e, sortByIndex(output)));\n }\n } else {\n output.push([stepKey++, te.right]);\n }\n } else {\n const nk = stepKey++;\n const index = i;\n if (!queue) {\n queue = [];\n }\n queue.push(({\n es,\n output\n }) => Effect.flatMap(Effect.either(te), t => {\n if (Either.isLeft(t)) {\n const e = new Pointer(index, input, t.left);\n if (allErrors) {\n es.push([nk, e]);\n return Effect.void;\n } else {\n return Either.left(new Composite(ast, input, e, sortByIndex(output)));\n }\n } else {\n output.push([nk, t.right]);\n return Effect.void;\n }\n }));\n }\n }\n // ---------------------------------------------\n // handle post rest elements\n // ---------------------------------------------\n for (let j = 0; j < tail.length; j++) {\n i += j;\n if (len < i + 1) {\n continue;\n } else {\n const te = tail[j](input[i], options);\n if (isEither(te)) {\n if (Either.isLeft(te)) {\n // the input element is present but is not valid\n const e = new Pointer(i, input, te.left);\n if (allErrors) {\n es.push([stepKey++, e]);\n continue;\n } else {\n return Either.left(new Composite(ast, input, e, sortByIndex(output)));\n }\n }\n output.push([stepKey++, te.right]);\n } else {\n const nk = stepKey++;\n const index = i;\n if (!queue) {\n queue = [];\n }\n queue.push(({\n es,\n output\n }) => Effect.flatMap(Effect.either(te), t => {\n if (Either.isLeft(t)) {\n // the input element is present but is not valid\n const e = new Pointer(index, input, t.left);\n if (allErrors) {\n es.push([nk, e]);\n return Effect.void;\n } else {\n return Either.left(new Composite(ast, input, e, sortByIndex(output)));\n }\n }\n output.push([nk, t.right]);\n return Effect.void;\n }));\n }\n }\n }\n }\n // ---------------------------------------------\n // compute result\n // ---------------------------------------------\n const computeResult = ({\n es,\n output\n }) => Arr.isNonEmptyArray(es) ? Either.left(new Composite(ast, input, sortByIndex(es), sortByIndex(output))) : Either.right(sortByIndex(output));\n if (queue && queue.length > 0) {\n const cqueue = queue;\n return Effect.suspend(() => {\n const state = {\n es: Arr.copy(es),\n output: Arr.copy(output)\n };\n return Effect.flatMap(Effect.forEach(cqueue, f => f(state), {\n concurrency,\n batching,\n discard: true\n }), () => computeResult(state));\n });\n }\n return computeResult({\n output,\n es\n });\n };\n }\n case \"TypeLiteral\":\n {\n if (ast.propertySignatures.length === 0 && ast.indexSignatures.length === 0) {\n return fromRefinement(ast, Predicate.isNotNullable);\n }\n const propertySignatures = [];\n const expectedKeysMap = {};\n const expectedKeys = [];\n for (const ps of ast.propertySignatures) {\n propertySignatures.push([goMemo(ps.type, isDecoding), ps]);\n expectedKeysMap[ps.name] = null;\n expectedKeys.push(ps.name);\n }\n const indexSignatures = ast.indexSignatures.map(is => [goMemo(is.parameter, isDecoding), goMemo(is.type, isDecoding), is.parameter]);\n const expectedAST = AST.Union.make(ast.indexSignatures.map(is => is.parameter).concat(expectedKeys.map(key => Predicate.isSymbol(key) ? new AST.UniqueSymbol(key) : new AST.Literal(key))));\n const expected = goMemo(expectedAST, isDecoding);\n const concurrency = getConcurrency(ast);\n const batching = getBatching(ast);\n return (input, options) => {\n if (!Predicate.isRecord(input)) {\n return Either.left(new Type(ast, input));\n }\n const allErrors = options?.errors === \"all\";\n const es = [];\n let stepKey = 0;\n // ---------------------------------------------\n // handle excess properties\n // ---------------------------------------------\n const onExcessPropertyError = options?.onExcessProperty === \"error\";\n const onExcessPropertyPreserve = options?.onExcessProperty === \"preserve\";\n const output = {};\n let inputKeys;\n if (onExcessPropertyError || onExcessPropertyPreserve) {\n inputKeys = Reflect.ownKeys(input);\n for (const key of inputKeys) {\n const te = expected(key, options);\n if (isEither(te) && Either.isLeft(te)) {\n // key is unexpected\n if (onExcessPropertyError) {\n const e = new Pointer(key, input, new Unexpected(input[key], `is unexpected, expected: ${String(expectedAST)}`));\n if (allErrors) {\n es.push([stepKey++, e]);\n continue;\n } else {\n return Either.left(new Composite(ast, input, e, output));\n }\n } else {\n // preserve key\n output[key] = input[key];\n }\n }\n }\n }\n let queue = undefined;\n const isExact = options?.exact === true;\n for (let i = 0; i < propertySignatures.length; i++) {\n const ps = propertySignatures[i][1];\n const name = ps.name;\n const hasKey = Object.prototype.hasOwnProperty.call(input, name);\n if (!hasKey) {\n if (ps.isOptional) {\n continue;\n } else if (isExact) {\n const e = new Pointer(name, input, new Missing(ps));\n if (allErrors) {\n es.push([stepKey++, e]);\n continue;\n } else {\n return Either.left(new Composite(ast, input, e, output));\n }\n }\n }\n const parser = propertySignatures[i][0];\n const te = parser(input[name], options);\n if (isEither(te)) {\n if (Either.isLeft(te)) {\n const e = new Pointer(name, input, hasKey ? te.left : new Missing(ps));\n if (allErrors) {\n es.push([stepKey++, e]);\n continue;\n } else {\n return Either.left(new Composite(ast, input, e, output));\n }\n }\n output[name] = te.right;\n } else {\n const nk = stepKey++;\n const index = name;\n if (!queue) {\n queue = [];\n }\n queue.push(({\n es,\n output\n }) => Effect.flatMap(Effect.either(te), t => {\n if (Either.isLeft(t)) {\n const e = new Pointer(index, input, hasKey ? t.left : new Missing(ps));\n if (allErrors) {\n es.push([nk, e]);\n return Effect.void;\n } else {\n return Either.left(new Composite(ast, input, e, output));\n }\n }\n output[index] = t.right;\n return Effect.void;\n }));\n }\n }\n // ---------------------------------------------\n // handle index signatures\n // ---------------------------------------------\n for (let i = 0; i < indexSignatures.length; i++) {\n const indexSignature = indexSignatures[i];\n const parameter = indexSignature[0];\n const type = indexSignature[1];\n const keys = util_.getKeysForIndexSignature(input, indexSignature[2]);\n for (const key of keys) {\n // ---------------------------------------------\n // handle keys\n // ---------------------------------------------\n const keu = parameter(key, options);\n if (isEither(keu) && Either.isRight(keu)) {\n // ---------------------------------------------\n // handle values\n // ---------------------------------------------\n const vpr = type(input[key], options);\n if (isEither(vpr)) {\n if (Either.isLeft(vpr)) {\n const e = new Pointer(key, input, vpr.left);\n if (allErrors) {\n es.push([stepKey++, e]);\n continue;\n } else {\n return Either.left(new Composite(ast, input, e, output));\n }\n } else {\n if (!Object.prototype.hasOwnProperty.call(expectedKeysMap, key)) {\n output[key] = vpr.right;\n }\n }\n } else {\n const nk = stepKey++;\n const index = key;\n if (!queue) {\n queue = [];\n }\n queue.push(({\n es,\n output\n }) => Effect.flatMap(Effect.either(vpr), tv => {\n if (Either.isLeft(tv)) {\n const e = new Pointer(index, input, tv.left);\n if (allErrors) {\n es.push([nk, e]);\n return Effect.void;\n } else {\n return Either.left(new Composite(ast, input, e, output));\n }\n } else {\n if (!Object.prototype.hasOwnProperty.call(expectedKeysMap, key)) {\n output[key] = tv.right;\n }\n return Effect.void;\n }\n }));\n }\n }\n }\n }\n // ---------------------------------------------\n // compute result\n // ---------------------------------------------\n const computeResult = ({\n es,\n output\n }) => {\n if (Arr.isNonEmptyArray(es)) {\n return Either.left(new Composite(ast, input, sortByIndex(es), output));\n }\n if (options?.propertyOrder === \"original\") {\n // preserve input keys order\n const keys = inputKeys || Reflect.ownKeys(input);\n for (const name of expectedKeys) {\n if (keys.indexOf(name) === -1) {\n keys.push(name);\n }\n }\n const out = {};\n for (const key of keys) {\n if (Object.prototype.hasOwnProperty.call(output, key)) {\n out[key] = output[key];\n }\n }\n return Either.right(out);\n }\n return Either.right(output);\n };\n if (queue && queue.length > 0) {\n const cqueue = queue;\n return Effect.suspend(() => {\n const state = {\n es: Arr.copy(es),\n output: Object.assign({}, output)\n };\n return Effect.flatMap(Effect.forEach(cqueue, f => f(state), {\n concurrency,\n batching,\n discard: true\n }), () => computeResult(state));\n });\n }\n return computeResult({\n es,\n output\n });\n };\n }\n case \"Union\":\n {\n const searchTree = getSearchTree(ast.types, isDecoding);\n const ownKeys = Reflect.ownKeys(searchTree.keys);\n const ownKeysLen = ownKeys.length;\n const astTypesLen = ast.types.length;\n const map = new Map();\n for (let i = 0; i < astTypesLen; i++) {\n map.set(ast.types[i], goMemo(ast.types[i], isDecoding));\n }\n const concurrency = getConcurrency(ast) ?? 1;\n const batching = getBatching(ast);\n return (input, options) => {\n const es = [];\n let stepKey = 0;\n let candidates = [];\n if (ownKeysLen > 0) {\n if (Predicate.isRecordOrArray(input)) {\n for (let i = 0; i < ownKeysLen; i++) {\n const name = ownKeys[i];\n const buckets = searchTree.keys[name].buckets;\n // for each property that should contain a literal, check if the input contains that property\n if (Object.prototype.hasOwnProperty.call(input, name)) {\n const literal = String(input[name]);\n // check that the value obtained from the input for the property corresponds to an existing bucket\n if (Object.prototype.hasOwnProperty.call(buckets, literal)) {\n // retrive the minimal set of candidates for decoding\n candidates = candidates.concat(buckets[literal]);\n } else {\n const {\n candidates,\n literals\n } = searchTree.keys[name];\n const literalsUnion = AST.Union.make(literals);\n const errorAst = candidates.length === astTypesLen ? new AST.TypeLiteral([new AST.PropertySignature(name, literalsUnion, false, true)], []) : AST.Union.make(candidates);\n es.push([stepKey++, new Composite(errorAst, input, new Pointer(name, input, new Type(literalsUnion, input[name])))]);\n }\n } else {\n const {\n candidates,\n literals\n } = searchTree.keys[name];\n const fakePropertySignature = new AST.PropertySignature(name, AST.Union.make(literals), false, true);\n const errorAst = candidates.length === astTypesLen ? new AST.TypeLiteral([fakePropertySignature], []) : AST.Union.make(candidates);\n es.push([stepKey++, new Composite(errorAst, input, new Pointer(name, input, new Missing(fakePropertySignature)))]);\n }\n }\n } else {\n const errorAst = searchTree.candidates.length === astTypesLen ? ast : AST.Union.make(searchTree.candidates);\n es.push([stepKey++, new Type(errorAst, input)]);\n }\n }\n if (searchTree.otherwise.length > 0) {\n candidates = candidates.concat(searchTree.otherwise);\n }\n let queue = undefined;\n for (let i = 0; i < candidates.length; i++) {\n const candidate = candidates[i];\n const pr = map.get(candidate)(input, options);\n // the members of a union are ordered based on which one should be decoded first,\n // therefore if one member has added a task, all subsequent members must\n // also add a task to the queue even if they are synchronous\n if (isEither(pr) && (!queue || queue.length === 0)) {\n if (Either.isRight(pr)) {\n return pr;\n } else {\n es.push([stepKey++, pr.left]);\n }\n } else {\n const nk = stepKey++;\n if (!queue) {\n queue = [];\n }\n queue.push(state => Effect.suspend(() => {\n if (\"finalResult\" in state) {\n return Effect.void;\n } else {\n return Effect.flatMap(Effect.either(pr), t => {\n if (Either.isRight(t)) {\n state.finalResult = t;\n } else {\n state.es.push([nk, t.left]);\n }\n return Effect.void;\n });\n }\n }));\n }\n }\n // ---------------------------------------------\n // compute result\n // ---------------------------------------------\n const computeResult = es => Arr.isNonEmptyArray(es) ? es.length === 1 && es[0][1]._tag === \"Type\" ? Either.left(es[0][1]) : Either.left(new Composite(ast, input, sortByIndex(es))) :\n // this should never happen\n Either.left(new Type(ast, input));\n if (queue && queue.length > 0) {\n const cqueue = queue;\n return Effect.suspend(() => {\n const state = {\n es: Arr.copy(es)\n };\n return Effect.flatMap(Effect.forEach(cqueue, f => f(state), {\n concurrency,\n batching,\n discard: true\n }), () => {\n if (\"finalResult\" in state) {\n return state.finalResult;\n }\n return computeResult(state.es);\n });\n });\n }\n return computeResult(es);\n };\n }\n case \"Suspend\":\n {\n const get = util_.memoizeThunk(() => goMemo(ast.f(), isDecoding));\n return (a, options) => get()(a, options);\n }\n }\n};\nconst fromRefinement = (ast, refinement) => u => refinement(u) ? Either.right(u) : Either.left(new Type(ast, u));\n/** @internal */\nexport const getLiterals = (ast, isDecoding) => {\n switch (ast._tag) {\n case \"Declaration\":\n {\n const annotation = AST.getSurrogateAnnotation(ast);\n if (Option.isSome(annotation)) {\n return getLiterals(annotation.value, isDecoding);\n }\n break;\n }\n case \"TypeLiteral\":\n {\n const out = [];\n for (let i = 0; i < ast.propertySignatures.length; i++) {\n const propertySignature = ast.propertySignatures[i];\n const type = isDecoding ? AST.encodedAST(propertySignature.type) : AST.typeAST(propertySignature.type);\n if (AST.isLiteral(type) && !propertySignature.isOptional) {\n out.push([propertySignature.name, type]);\n }\n }\n return out;\n }\n case \"TupleType\":\n {\n const out = [];\n for (let i = 0; i < ast.elements.length; i++) {\n const element = ast.elements[i];\n const type = isDecoding ? AST.encodedAST(element.type) : AST.typeAST(element.type);\n if (AST.isLiteral(type) && !element.isOptional) {\n out.push([i, type]);\n }\n }\n return out;\n }\n case \"Refinement\":\n return getLiterals(ast.from, isDecoding);\n case \"Suspend\":\n return getLiterals(ast.f(), isDecoding);\n case \"Transformation\":\n return getLiterals(isDecoding ? ast.from : ast.to, isDecoding);\n }\n return [];\n};\n/**\n * The purpose of the algorithm is to narrow down the pool of possible\n * candidates for decoding as much as possible.\n *\n * This function separates the schemas into two groups, `keys` and `otherwise`:\n *\n * - `keys`: the schema has at least one property with a literal value\n * - `otherwise`: the schema has no properties with a literal value\n *\n * If a schema has at least one property with a literal value, so it ends up in\n * `keys`, first a namespace is created for the name of the property containing\n * the literal, and then within this namespace a \"bucket\" is created for the\n * literal value in which to store all the schemas that have the same property\n * and literal value.\n *\n * @internal\n */\nexport const getSearchTree = (members, isDecoding) => {\n const keys = {};\n const otherwise = [];\n const candidates = [];\n for (let i = 0; i < members.length; i++) {\n const member = members[i];\n const tags = getLiterals(member, isDecoding);\n if (tags.length > 0) {\n candidates.push(member);\n for (let j = 0; j < tags.length; j++) {\n const [key, literal] = tags[j];\n const hash = String(literal.literal);\n keys[key] = keys[key] || {\n buckets: {},\n literals: [],\n candidates: []\n };\n const buckets = keys[key].buckets;\n if (Object.prototype.hasOwnProperty.call(buckets, hash)) {\n if (j < tags.length - 1) {\n continue;\n }\n buckets[hash].push(member);\n keys[key].literals.push(literal);\n keys[key].candidates.push(member);\n } else {\n buckets[hash] = [member];\n keys[key].literals.push(literal);\n keys[key].candidates.push(member);\n break;\n }\n }\n } else {\n otherwise.push(member);\n }\n }\n return {\n keys,\n otherwise,\n candidates\n };\n};\nconst dropRightRefinement = ast => AST.isRefinement(ast) ? dropRightRefinement(ast.from) : ast;\nconst handleForbidden = (effect, ast, actual, options) => {\n // If effects are allowed, return the original effect\n if (options?.isEffectAllowed === true) {\n return effect;\n }\n // If the effect is already an Either, return it directly\n if (isEither(effect)) {\n return effect;\n }\n // Otherwise, attempt to execute the effect synchronously\n const scheduler = new Scheduler.SyncScheduler();\n const fiber = Effect.runFork(effect, {\n scheduler\n });\n scheduler.flush();\n const exit = fiber.unsafePoll();\n if (exit) {\n if (Exit.isSuccess(exit)) {\n // If the effect successfully resolves, wrap the value in a Right\n return Either.right(exit.value);\n }\n const cause = exit.cause;\n if (Cause.isFailType(cause)) {\n // The effect executed synchronously but failed due to a ParseIssue\n return Either.left(cause.error);\n }\n // The effect executed synchronously but failed due to a defect (e.g., a missing dependency)\n return Either.left(new Forbidden(ast, actual, Cause.pretty(cause)));\n }\n // The effect could not be resolved synchronously, meaning it performs async work\n return Either.left(new Forbidden(ast, actual, \"cannot be be resolved synchronously, this is caused by using runSync on an effect that performs async work\"));\n};\nconst compare = ([a], [b]) => a > b ? 1 : a < b ? -1 : 0;\nfunction sortByIndex(es) {\n return es.sort(compare).map(t => t[1]);\n}\n// -------------------------------------------------------------------------------------\n// transformations interpreter\n// -------------------------------------------------------------------------------------\n/** @internal */\nexport const getFinalTransformation = (transformation, isDecoding) => {\n switch (transformation._tag) {\n case \"FinalTransformation\":\n return isDecoding ? transformation.decode : transformation.encode;\n case \"ComposeTransformation\":\n return Either.right;\n case \"TypeLiteralTransformation\":\n return input => {\n let out = Either.right(input);\n // ---------------------------------------------\n // handle property signature transformations\n // ---------------------------------------------\n for (const pst of transformation.propertySignatureTransformations) {\n const [from, to] = isDecoding ? [pst.from, pst.to] : [pst.to, pst.from];\n const transformation = isDecoding ? pst.decode : pst.encode;\n const f = input => {\n const o = transformation(Object.prototype.hasOwnProperty.call(input, from) ? Option.some(input[from]) : Option.none());\n delete input[from];\n if (Option.isSome(o)) {\n input[to] = o.value;\n }\n return input;\n };\n out = map(out, f);\n }\n return out;\n };\n }\n};\nconst makeTree = (value, forest = []) => ({\n value,\n forest\n});\n/**\n * @category formatting\n * @since 3.10.0\n */\nexport const TreeFormatter = {\n formatIssue: issue => map(formatTree(issue), drawTree),\n formatIssueSync: issue => {\n const e = TreeFormatter.formatIssue(issue);\n return isEither(e) ? Either.getOrThrow(e) : Effect.runSync(e);\n },\n formatError: error => TreeFormatter.formatIssue(error.issue),\n formatErrorSync: error => TreeFormatter.formatIssueSync(error.issue)\n};\nconst drawTree = tree => tree.value + draw(\"\\n\", tree.forest);\nconst draw = (indentation, forest) => {\n let r = \"\";\n const len = forest.length;\n let tree;\n for (let i = 0; i < len; i++) {\n tree = forest[i];\n const isLast = i === len - 1;\n r += indentation + (isLast ? \"└\" : \"├\") + \"─ \" + tree.value;\n r += draw(indentation + (len > 1 && !isLast ? \"│ \" : \" \"), tree.forest);\n }\n return r;\n};\nconst formatTransformationKind = kind => {\n switch (kind) {\n case \"Encoded\":\n return \"Encoded side transformation failure\";\n case \"Transformation\":\n return \"Transformation process failure\";\n case \"Type\":\n return \"Type side transformation failure\";\n }\n};\nconst formatRefinementKind = kind => {\n switch (kind) {\n case \"From\":\n return \"From side refinement failure\";\n case \"Predicate\":\n return \"Predicate refinement failure\";\n }\n};\nconst getAnnotated = issue => \"ast\" in issue ? Option.some(issue.ast) : Option.none();\n// TODO: replace with Either.void when 3.13 lands\nconst Either_void = /*#__PURE__*/Either.right(undefined);\nconst getCurrentMessage = issue => getAnnotated(issue).pipe(Option.flatMap(AST.getMessageAnnotation), Option.match({\n onNone: () => Either_void,\n onSome: messageAnnotation => {\n const union = messageAnnotation(issue);\n if (Predicate.isString(union)) {\n return Either.right({\n message: union,\n override: false\n });\n }\n if (Effect.isEffect(union)) {\n return Effect.map(union, message => ({\n message,\n override: false\n }));\n }\n if (Predicate.isString(union.message)) {\n return Either.right({\n message: union.message,\n override: union.override\n });\n }\n return Effect.map(union.message, message => ({\n message,\n override: union.override\n }));\n }\n}));\nconst createParseIssueGuard = tag => issue => issue._tag === tag;\n/**\n * Returns `true` if the value is a `Composite`.\n *\n * @category guards\n * @since 3.10.0\n */\nexport const isComposite = /*#__PURE__*/createParseIssueGuard(\"Composite\");\nconst isRefinement = /*#__PURE__*/createParseIssueGuard(\"Refinement\");\nconst isTransformation = /*#__PURE__*/createParseIssueGuard(\"Transformation\");\nconst getMessage = issue => flatMap(getCurrentMessage(issue), currentMessage => {\n if (currentMessage !== undefined) {\n const useInnerMessage = !currentMessage.override && (isComposite(issue) || isRefinement(issue) && issue.kind === \"From\" || isTransformation(issue) && issue.kind !== \"Transformation\");\n return useInnerMessage ? isTransformation(issue) || isRefinement(issue) ? getMessage(issue.issue) : Either_void : Either.right(currentMessage.message);\n }\n return Either_void;\n});\nconst getParseIssueTitleAnnotation = issue => getAnnotated(issue).pipe(Option.flatMap(AST.getParseIssueTitleAnnotation), Option.flatMapNullable(annotation => annotation(issue)), Option.getOrUndefined);\n/** @internal */\nexport function getRefinementExpected(ast) {\n return AST.getDescriptionAnnotation(ast).pipe(Option.orElse(() => AST.getTitleAnnotation(ast)), Option.orElse(() => AST.getAutoTitleAnnotation(ast)), Option.orElse(() => AST.getIdentifierAnnotation(ast)), Option.getOrElse(() => `{ ${ast.from} | filter }`));\n}\nfunction getDefaultTypeMessage(issue) {\n if (issue.message !== undefined) {\n return issue.message;\n }\n const expected = AST.isRefinement(issue.ast) ? getRefinementExpected(issue.ast) : String(issue.ast);\n return `Expected ${expected}, actual ${Inspectable.formatUnknown(issue.actual)}`;\n}\nconst formatTypeMessage = issue => map(getMessage(issue), message => message ?? getParseIssueTitleAnnotation(issue) ?? getDefaultTypeMessage(issue));\nconst getParseIssueTitle = issue => getParseIssueTitleAnnotation(issue) ?? String(issue.ast);\nconst formatForbiddenMessage = issue => issue.message ?? \"is forbidden\";\nconst formatUnexpectedMessage = issue => issue.message ?? \"is unexpected\";\nconst formatMissingMessage = issue => {\n const missingMessageAnnotation = AST.getMissingMessageAnnotation(issue.ast);\n if (Option.isSome(missingMessageAnnotation)) {\n const annotation = missingMessageAnnotation.value();\n return Predicate.isString(annotation) ? Either.right(annotation) : annotation;\n }\n return Either.right(issue.message ?? \"is missing\");\n};\nconst formatTree = issue => {\n switch (issue._tag) {\n case \"Type\":\n return map(formatTypeMessage(issue), makeTree);\n case \"Forbidden\":\n return Either.right(makeTree(getParseIssueTitle(issue), [makeTree(formatForbiddenMessage(issue))]));\n case \"Unexpected\":\n return Either.right(makeTree(formatUnexpectedMessage(issue)));\n case \"Missing\":\n return map(formatMissingMessage(issue), makeTree);\n case \"Transformation\":\n return flatMap(getMessage(issue), message => {\n if (message !== undefined) {\n return Either.right(makeTree(message));\n }\n return map(formatTree(issue.issue), tree => makeTree(getParseIssueTitle(issue), [makeTree(formatTransformationKind(issue.kind), [tree])]));\n });\n case \"Refinement\":\n return flatMap(getMessage(issue), message => {\n if (message !== undefined) {\n return Either.right(makeTree(message));\n }\n return map(formatTree(issue.issue), tree => makeTree(getParseIssueTitle(issue), [makeTree(formatRefinementKind(issue.kind), [tree])]));\n });\n case \"Pointer\":\n return map(formatTree(issue.issue), tree => makeTree(util_.formatPath(issue.path), [tree]));\n case \"Composite\":\n return flatMap(getMessage(issue), message => {\n if (message !== undefined) {\n return Either.right(makeTree(message));\n }\n const parseIssueTitle = getParseIssueTitle(issue);\n return util_.isNonEmpty(issue.issues) ? map(Effect.forEach(issue.issues, formatTree), forest => makeTree(parseIssueTitle, forest)) : map(formatTree(issue.issues), tree => makeTree(parseIssueTitle, [tree]));\n });\n }\n};\nconst makeArrayFormatterIssue = (_tag, path, message) => ({\n _tag,\n path,\n message\n});\n/**\n * @category formatting\n * @since 3.10.0\n */\nexport const ArrayFormatter = {\n formatIssue: issue => getArrayFormatterIssues(issue, undefined, []),\n formatIssueSync: issue => {\n const e = ArrayFormatter.formatIssue(issue);\n return isEither(e) ? Either.getOrThrow(e) : Effect.runSync(e);\n },\n formatError: error => ArrayFormatter.formatIssue(error.issue),\n formatErrorSync: error => ArrayFormatter.formatIssueSync(error.issue)\n};\nconst getArrayFormatterIssues = (issue, parentTag, path) => {\n const _tag = issue._tag;\n switch (_tag) {\n case \"Type\":\n return map(formatTypeMessage(issue), message => [makeArrayFormatterIssue(parentTag ?? _tag, path, message)]);\n case \"Forbidden\":\n return Either.right([makeArrayFormatterIssue(_tag, path, formatForbiddenMessage(issue))]);\n case \"Unexpected\":\n return Either.right([makeArrayFormatterIssue(_tag, path, formatUnexpectedMessage(issue))]);\n case \"Missing\":\n return map(formatMissingMessage(issue), message => [makeArrayFormatterIssue(_tag, path, message)]);\n case \"Pointer\":\n return getArrayFormatterIssues(issue.issue, undefined, path.concat(issue.path));\n case \"Composite\":\n return flatMap(getMessage(issue), message => {\n if (message !== undefined) {\n return Either.right([makeArrayFormatterIssue(_tag, path, message)]);\n }\n return util_.isNonEmpty(issue.issues) ? map(Effect.forEach(issue.issues, issue => getArrayFormatterIssues(issue, undefined, path)), Arr.flatten) : getArrayFormatterIssues(issue.issues, undefined, path);\n });\n case \"Refinement\":\n return flatMap(getMessage(issue), message => {\n if (message !== undefined) {\n return Either.right([makeArrayFormatterIssue(_tag, path, message)]);\n }\n return getArrayFormatterIssues(issue.issue, issue.kind === \"Predicate\" ? _tag : undefined, path);\n });\n case \"Transformation\":\n return flatMap(getMessage(issue), message => {\n if (message !== undefined) {\n return Either.right([makeArrayFormatterIssue(_tag, path, message)]);\n }\n return getArrayFormatterIssues(issue.issue, issue.kind === \"Transformation\" ? _tag : undefined, path);\n });\n }\n};\n//# sourceMappingURL=ParseResult.js.map","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","import { TransactionReceiptNotFoundError, } from '../../errors/transaction.js';\nimport { formatTransactionReceipt, } from '../../utils/formatters/transactionReceipt.js';\n/**\n * Returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt) given a [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionReceipt\n * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\n * - JSON-RPC Methods: [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactionreceipt)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionReceiptParameters}\n * @returns The transaction receipt. {@link GetTransactionReceiptReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransactionReceipt } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const transactionReceipt = await getTransactionReceipt(client, {\n * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\nexport async function getTransactionReceipt(client, { hash }) {\n const receipt = await client.request({\n method: 'eth_getTransactionReceipt',\n params: [hash],\n }, { dedupe: true });\n if (!receipt)\n throw new TransactionReceiptNotFoundError({ hash });\n const format = client.chain?.formatters?.transactionReceipt?.format ||\n formatTransactionReceipt;\n return format(receipt, 'getTransactionReceipt');\n}\n//# sourceMappingURL=getTransactionReceipt.js.map","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom-client.production.js');\n} else {\n module.exports = require('./cjs/react-dom-client.development.js');\n}\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","\"use strict\";\n/*\nMIT License\n\nCopyright (c) 2019 Cyril Dever\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decrypt = exports.encrypt = exports.derive = exports.verify = exports.sign = exports.getPublic = exports.kdf = void 0;\n/**\n * Note: This module is based off the original eccrypto module.\n */\nvar crypto_1 = require(\"crypto\");\nvar elliptic_1 = require(\"elliptic\");\nvar secp256k1_1 = __importDefault(require(\"secp256k1\"));\nvar ec = new elliptic_1.ec('secp256k1');\nvar sha256 = function (msg) {\n return (0, crypto_1.createHash)('sha256').update(msg).digest();\n};\nvar hmacSha256 = function (key, msg) {\n return (0, crypto_1.createHmac)('sha256', key).update(msg).digest();\n};\nvar aes128CtrEncrypt = function (iv, key, plaintext) {\n var cipher = (0, crypto_1.createCipheriv)('aes-128-ctr', key, iv);\n var firstChunk = cipher.update(plaintext);\n var secondChunk = cipher.final();\n return Buffer.concat([iv, firstChunk, secondChunk]);\n};\nvar aes128CtrDecrypt = function (iv, key, ciphertext) {\n var cipher = (0, crypto_1.createDecipheriv)('aes-128-ctr', key, iv);\n var firstChunk = cipher.update(ciphertext);\n var secondChunk = cipher.final();\n return Buffer.concat([firstChunk, secondChunk]);\n};\n// Compare two buffers in constant time to prevent timing attacks\nvar equalConstTime = function (b1, b2) {\n if (b1.length !== b2.length) {\n return false;\n }\n var res = 0;\n for (var i = 0; i < b1.length; i++) { // eslint-disable-line no-loops/no-loops\n res |= b1[i] ^ b2[i];\n }\n return res === 0;\n};\nvar pad32 = function (msg) {\n if (msg.length < 32) {\n var buff = Buffer.alloc(32).fill(0);\n msg.copy(buff, 32 - msg.length);\n return buff;\n }\n else\n return msg;\n};\n// The KDF as implemented in Parity mimics Geth's implementation\nvar kdf = function (secret, outputLength) { return new Promise(function (resolve) {\n var ctr = 1;\n var written = 0;\n var result = Buffer.from('');\n while (written < outputLength) { // eslint-disable-line no-loops/no-loops\n var ctrs = Buffer.from([ctr >> 24, ctr >> 16, ctr >> 8, ctr]);\n var hashResult = sha256(Buffer.concat([ctrs, secret]));\n result = Buffer.concat([result, hashResult]);\n written += 32;\n ctr += 1;\n }\n resolve(result);\n}); };\nexports.kdf = kdf;\n/**\n * Compute the public key for a given private key.\n *\n * @param {Buffer} privateKey - A 32-byte private key\n * @return {Promise} A promise that resolve with the 65-byte public key or reject on wrong private key.\n * @function\n */\nvar getPublic = function (privateKey) { return new Promise(function (resolve, reject) {\n return privateKey.length !== 32\n ? reject(new Error('Private key should be 32 bytes long'))\n : resolve(Buffer.from(secp256k1_1.default.publicKeyConvert(secp256k1_1.default.publicKeyCreate(privateKey), false)));\n} // See https://github.com/wanderer/secp256k1-node/issues/46\n); };\nexports.getPublic = getPublic;\n/**\n * Create an ECDSA signature.\n *\n * @param {Buffer} privateKey - A 32-byte private key\n * @param {Buffer} msg - The message being signed, no more than 32 bytes\n * @return {Promise.} A promise that resolves with the signature and rejects on bad key or message.\n */\nvar sign = function (privateKey, msg) { return new Promise(function (resolve, reject) {\n if (privateKey.length !== 32) {\n reject(new Error('Private key should be 32 bytes long'));\n }\n else if (msg.length <= 0) {\n reject(new Error('Message should not be empty'));\n }\n else if (msg.length > 32) {\n reject(new Error('Message is too long (max 32 bytes)'));\n }\n else {\n var padded = pad32(msg);\n var signed = secp256k1_1.default.ecdsaSign(padded, privateKey).signature;\n resolve(Buffer.from(secp256k1_1.default.signatureExport(signed)));\n }\n}); };\nexports.sign = sign;\n/**\n * Verify an ECDSA signature.\n *\n * @param {Buffer} publicKey - A 65-byte public key\n * @param {Buffer} msg - The message being verified\n * @param {Buffer} sig - The signature\n * @return {Promise.} A promise that resolves on correct signature and rejects on bad key or signature\n */\nvar verify = function (publicKey, msg, sig) { return new Promise(function (resolve, reject) {\n if (publicKey.length !== 65) {\n reject(new Error('Public key should 65 bytes long'));\n }\n else if (msg.length <= 0) {\n reject(new Error('Message should not be empty'));\n }\n else if (msg.length > 32) {\n reject(new Error('Message is too long (max 32 bytes)'));\n }\n else {\n var passed = pad32(msg);\n try {\n var signed = secp256k1_1.default.signatureImport(sig);\n if (secp256k1_1.default.ecdsaVerify(signed, passed, publicKey)) {\n resolve(true);\n }\n else {\n reject(new Error('Bad signature'));\n }\n }\n catch (_) { // eslint-disable-line @typescript-eslint/no-unused-vars\n reject(new Error('Invalid signature'));\n }\n }\n}); };\nexports.verify = verify;\n/**\n * Derive shared secret for given private and public keys.\n *\n * @param {Buffer} privateKey - Sender's private key (32 bytes)\n * @param {Buffer} publicKey - Recipient's public key (65 bytes)\n * @return {Promise.} A promise that resolves with the derived shared secret (Px, 32 bytes) and rejects on bad key\n */\nvar derive = function (privateKey, publicKey) { return new Promise(function (resolve, reject) {\n if (privateKey.length !== 32) {\n reject(new Error(\"Bad private key, it should be 32 bytes but it's actually \".concat(privateKey.length, \" bytes long\")));\n }\n else if (publicKey.length !== 65) {\n reject(new Error(\"Bad public key, it should be 65 bytes but it's actually \".concat(publicKey.length, \" bytes long\")));\n }\n else if (publicKey[0] !== 4) {\n reject(new Error('Bad public key, a valid public key would begin with 4'));\n }\n else {\n var keyA = ec.keyFromPrivate(privateKey);\n var keyB = ec.keyFromPublic(publicKey);\n var Px = keyA.derive(keyB.getPublic()); // BN instance\n resolve(pad32(Buffer.from(Px.toArray())));\n }\n}); };\nexports.derive = derive;\n/**\n * Encrypt message for given recepient's public key.\n *\n * @param {Buffer} publicKeyTo - Recipient's public key (65 bytes)\n * @param {Buffer} msg - The message being encrypted\n * @param {?{?iv: Buffer, ?ephemPrivateKey: Buffer}} opts - You may also specify initialization vector (16 bytes) and ephemeral private key (32 bytes) to get deterministic results.\n * @return {Promise.} - A promise that resolves with the ECIES structure serialized\n */\nvar encrypt = function (publicKeyTo, msg, opts) { return __awaiter(void 0, void 0, void 0, function () {\n var ephemPrivateKey;\n return __generator(this, function (_a) {\n opts = opts || {};\n ephemPrivateKey = opts.ephemPrivateKey || (0, crypto_1.randomBytes)(32);\n return [2 /*return*/, (0, exports.derive)(ephemPrivateKey, publicKeyTo)\n .then(function (sharedPx) { return (0, exports.kdf)(sharedPx, 32); })\n .then(function (hash) { return __awaiter(void 0, void 0, void 0, function () {\n var encryptionKey, iv, macKey, cipherText, HMAC;\n return __generator(this, function (_a) {\n encryptionKey = hash.slice(0, 16);\n iv = opts.iv || (0, crypto_1.randomBytes)(16);\n macKey = sha256(hash.slice(16));\n cipherText = aes128CtrEncrypt(iv, encryptionKey, msg);\n HMAC = hmacSha256(macKey, cipherText);\n return [2 /*return*/, (0, exports.getPublic)(ephemPrivateKey).then(function (ephemPublicKey) {\n return Buffer.concat([ephemPublicKey, cipherText, HMAC]);\n })];\n });\n }); })];\n });\n}); };\nexports.encrypt = encrypt;\nvar metaLength = 1 + 64 + 16 + 32;\n/**\n * Decrypt message using given private key.\n *\n * @param {Buffer} privateKey - A 32-byte private key of recepient of the message\n * @param {Ecies} encrypted - ECIES serialized structure (result of ECIES encryption)\n * @return {Promise.} - A promise that resolves with the plaintext on successful decryption and rejects on failure\n */\nvar decrypt = function (privateKey, encrypted) { return new Promise(function (resolve, reject) {\n if (encrypted.length < metaLength) {\n reject(new Error(\"Invalid Ciphertext. Data is too small. It should ba at least \".concat(metaLength)));\n }\n else if (encrypted[0] !== 4) {\n reject(new Error(\"Not a valid ciphertext. It should begin with 4 but actually begin with \".concat(encrypted[0])));\n }\n else {\n // deserialize\n var ephemPublicKey = encrypted.slice(0, 65);\n var cipherTextLength = encrypted.length - metaLength;\n var iv_1 = encrypted.slice(65, 65 + 16);\n var cipherAndIv_1 = encrypted.slice(65, 65 + 16 + cipherTextLength);\n var ciphertext_1 = cipherAndIv_1.slice(16);\n var msgMac_1 = encrypted.slice(65 + 16 + cipherTextLength);\n // check HMAC\n resolve((0, exports.derive)(privateKey, ephemPublicKey)\n .then(function (sharedPx) { return (0, exports.kdf)(sharedPx, 32); })\n .then(function (hash) {\n var encryptionKey = hash.slice(0, 16);\n var macKey = sha256(hash.slice(16));\n var currentHMAC = hmacSha256(macKey, cipherAndIv_1);\n if (!equalConstTime(currentHMAC, msgMac_1)) {\n return Promise.reject(new Error('Incorrect MAC'));\n }\n // decrypt message\n var plainText = aes128CtrDecrypt(iv_1, encryptionKey, ciphertext_1);\n return Buffer.from(new Uint8Array(plainText));\n }));\n }\n}); };\nexports.decrypt = decrypt;\n__exportStar(require(\"./model\"), exports);\n//# sourceMappingURL=node.js.map","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n if (sig.S().gte(sig.eddsa.curve.n) || sig.S().isNeg()) {\n return false;\n }\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","export async function wait(time) {\n return new Promise((res) => setTimeout(res, time));\n}\n//# sourceMappingURL=wait.js.map","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict';\n\nvar asn = require('asn1.js');\n\nvar Time = asn.define('Time', function () {\n\tthis.choice({\n\t\tutcTime: this.utctime(),\n\t\tgeneralTime: this.gentime()\n\t});\n});\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n\tthis.seq().obj(\n\t\tthis.key('type').objid(),\n\t\tthis.key('value').any()\n\t);\n});\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('parameters').optional(),\n\t\tthis.key('curve').objid().optional()\n\t);\n});\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n\tthis.setof(AttributeTypeValue);\n});\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n\tthis.seqof(RelativeDistinguishedName);\n});\n\nvar Name = asn.define('Name', function () {\n\tthis.choice({\n\t\trdnSequence: this.use(RDNSequence)\n\t});\n});\n\nvar Validity = asn.define('Validity', function () {\n\tthis.seq().obj(\n\t\tthis.key('notBefore').use(Time),\n\t\tthis.key('notAfter').use(Time)\n\t);\n});\n\nvar Extension = asn.define('Extension', function () {\n\tthis.seq().obj(\n\t\tthis.key('extnID').objid(),\n\t\tthis.key('critical').bool().def(false),\n\t\tthis.key('extnValue').octstr()\n\t);\n});\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('version').explicit(0)['int']().optional(),\n\t\tthis.key('serialNumber')['int'](),\n\t\tthis.key('signature').use(AlgorithmIdentifier),\n\t\tthis.key('issuer').use(Name),\n\t\tthis.key('validity').use(Validity),\n\t\tthis.key('subject').use(Name),\n\t\tthis.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n\t\tthis.key('issuerUniqueID').implicit(1).bitstr().optional(),\n\t\tthis.key('subjectUniqueID').implicit(2).bitstr().optional(),\n\t\tthis.key('extensions').explicit(3).seqof(Extension).optional()\n\t);\n});\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('tbsCertificate').use(TBSCertificate),\n\t\tthis.key('signatureAlgorithm').use(AlgorithmIdentifier),\n\t\tthis.key('signatureValue').bitstr()\n\t);\n});\n\nmodule.exports = X509Certificate;\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","import * as Equal from \"../Equal.js\";\nimport { dual } from \"../Function.js\";\nimport { globalValue } from \"../GlobalValue.js\";\nimport * as Hash from \"../Hash.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"../Inspectable.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport { hasProperty } from \"../Predicate.js\";\nimport { EffectPrototype, effectVariance } from \"./effectable.js\";\nimport * as option from \"./option.js\";\n/** @internal */\nexport const TagTypeId = /*#__PURE__*/Symbol.for(\"effect/Context/Tag\");\n/** @internal */\nexport const ReferenceTypeId = /*#__PURE__*/Symbol.for(\"effect/Context/Reference\");\n/** @internal */\nconst STMSymbolKey = \"effect/STM\";\n/** @internal */\nexport const STMTypeId = /*#__PURE__*/Symbol.for(STMSymbolKey);\n/** @internal */\nexport const TagProto = {\n ...EffectPrototype,\n _op: \"Tag\",\n [STMTypeId]: effectVariance,\n [TagTypeId]: {\n _Service: _ => _,\n _Identifier: _ => _\n },\n toString() {\n return format(this.toJSON());\n },\n toJSON() {\n return {\n _id: \"Tag\",\n key: this.key,\n stack: this.stack\n };\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n of(self) {\n return self;\n },\n context(self) {\n return make(this, self);\n }\n};\nexport const ReferenceProto = {\n ...TagProto,\n [ReferenceTypeId]: ReferenceTypeId\n};\n/** @internal */\nexport const makeGenericTag = key => {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 2;\n const creationError = new Error();\n Error.stackTraceLimit = limit;\n const tag = Object.create(TagProto);\n Object.defineProperty(tag, \"stack\", {\n get() {\n return creationError.stack;\n }\n });\n tag.key = key;\n return tag;\n};\n/** @internal */\nexport const Tag = id => () => {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 2;\n const creationError = new Error();\n Error.stackTraceLimit = limit;\n function TagClass() {}\n Object.setPrototypeOf(TagClass, TagProto);\n TagClass.key = id;\n Object.defineProperty(TagClass, \"stack\", {\n get() {\n return creationError.stack;\n }\n });\n return TagClass;\n};\n/** @internal */\nexport const Reference = () => (id, options) => {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 2;\n const creationError = new Error();\n Error.stackTraceLimit = limit;\n function ReferenceClass() {}\n Object.setPrototypeOf(ReferenceClass, ReferenceProto);\n ReferenceClass.key = id;\n ReferenceClass.defaultValue = options.defaultValue;\n Object.defineProperty(ReferenceClass, \"stack\", {\n get() {\n return creationError.stack;\n }\n });\n return ReferenceClass;\n};\n/** @internal */\nexport const TypeId = /*#__PURE__*/Symbol.for(\"effect/Context\");\n/** @internal */\nexport const ContextProto = {\n [TypeId]: {\n _Services: _ => _\n },\n [Equal.symbol](that) {\n if (isContext(that)) {\n if (this.unsafeMap.size === that.unsafeMap.size) {\n for (const k of this.unsafeMap.keys()) {\n if (!that.unsafeMap.has(k) || !Equal.equals(this.unsafeMap.get(k), that.unsafeMap.get(k))) {\n return false;\n }\n }\n return true;\n }\n }\n return false;\n },\n [Hash.symbol]() {\n return Hash.cached(this, Hash.number(this.unsafeMap.size));\n },\n pipe() {\n return pipeArguments(this, arguments);\n },\n toString() {\n return format(this.toJSON());\n },\n toJSON() {\n return {\n _id: \"Context\",\n services: Array.from(this.unsafeMap).map(toJSON)\n };\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n }\n};\n/** @internal */\nexport const makeContext = unsafeMap => {\n const context = Object.create(ContextProto);\n context.unsafeMap = unsafeMap;\n return context;\n};\nconst serviceNotFoundError = tag => {\n const error = new Error(`Service not found${tag.key ? `: ${String(tag.key)}` : \"\"}`);\n if (tag.stack) {\n const lines = tag.stack.split(\"\\n\");\n if (lines.length > 2) {\n const afterAt = lines[2].match(/at (.*)/);\n if (afterAt) {\n error.message = error.message + ` (defined at ${afterAt[1]})`;\n }\n }\n }\n if (error.stack) {\n const lines = error.stack.split(\"\\n\");\n lines.splice(1, 3);\n error.stack = lines.join(\"\\n\");\n }\n return error;\n};\n/** @internal */\nexport const isContext = u => hasProperty(u, TypeId);\n/** @internal */\nexport const isTag = u => hasProperty(u, TagTypeId);\n/** @internal */\nexport const isReference = u => hasProperty(u, ReferenceTypeId);\nconst _empty = /*#__PURE__*/makeContext(/*#__PURE__*/new Map());\n/** @internal */\nexport const empty = () => _empty;\n/** @internal */\nexport const make = (tag, service) => makeContext(new Map([[tag.key, service]]));\n/** @internal */\nexport const add = /*#__PURE__*/dual(3, (self, tag, service) => {\n const map = new Map(self.unsafeMap);\n map.set(tag.key, service);\n return makeContext(map);\n});\nconst defaultValueCache = /*#__PURE__*/globalValue(\"effect/Context/defaultValueCache\", () => new Map());\nconst getDefaultValue = tag => {\n if (defaultValueCache.has(tag.key)) {\n return defaultValueCache.get(tag.key);\n }\n const value = tag.defaultValue();\n defaultValueCache.set(tag.key, value);\n return value;\n};\n/** @internal */\nexport const unsafeGetReference = (self, tag) => {\n return self.unsafeMap.has(tag.key) ? self.unsafeMap.get(tag.key) : getDefaultValue(tag);\n};\n/** @internal */\nexport const unsafeGet = /*#__PURE__*/dual(2, (self, tag) => {\n if (!self.unsafeMap.has(tag.key)) {\n if (ReferenceTypeId in tag) return getDefaultValue(tag);\n throw serviceNotFoundError(tag);\n }\n return self.unsafeMap.get(tag.key);\n});\n/** @internal */\nexport const get = unsafeGet;\n/** @internal */\nexport const getOrElse = /*#__PURE__*/dual(3, (self, tag, orElse) => {\n if (!self.unsafeMap.has(tag.key)) {\n return isReference(tag) ? getDefaultValue(tag) : orElse();\n }\n return self.unsafeMap.get(tag.key);\n});\n/** @internal */\nexport const getOption = /*#__PURE__*/dual(2, (self, tag) => {\n if (!self.unsafeMap.has(tag.key)) {\n return isReference(tag) ? option.some(getDefaultValue(tag)) : option.none;\n }\n return option.some(self.unsafeMap.get(tag.key));\n});\n/** @internal */\nexport const merge = /*#__PURE__*/dual(2, (self, that) => {\n const map = new Map(self.unsafeMap);\n for (const [tag, s] of that.unsafeMap) {\n map.set(tag, s);\n }\n return makeContext(map);\n});\n/** @internal */\nexport const mergeAll = (...ctxs) => {\n const map = new Map();\n for (let i = 0; i < ctxs.length; i++) {\n ctxs[i].unsafeMap.forEach((value, key) => {\n map.set(key, value);\n });\n }\n return makeContext(map);\n};\n/** @internal */\nexport const pick = (...tags) => self => {\n const tagSet = new Set(tags.map(_ => _.key));\n const newEnv = new Map();\n for (const [tag, s] of self.unsafeMap.entries()) {\n if (tagSet.has(tag)) {\n newEnv.set(tag, s);\n }\n }\n return makeContext(newEnv);\n};\n/** @internal */\nexport const omit = (...tags) => self => {\n const newEnv = new Map(self.unsafeMap);\n for (const tag of tags) {\n newEnv.delete(tag.key);\n }\n return makeContext(newEnv);\n};\n//# sourceMappingURL=context.js.map","'use strict';\n\nvar BN = require('bn.js');\nvar randomBytes = require('randombytes');\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction getr(priv) {\n\tvar len = priv.modulus.byteLength();\n\tvar r;\n\tdo {\n\t\tr = new BN(randomBytes(len));\n\t} while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2));\n\treturn r;\n}\n\nfunction blind(priv) {\n\tvar r = getr(priv);\n\tvar blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed();\n\treturn { blinder: blinder, unblinder: r.invm(priv.modulus) };\n}\n\nfunction crt(msg, priv) {\n\tvar blinds = blind(priv);\n\tvar len = priv.modulus.byteLength();\n\tvar blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus);\n\tvar c1 = blinded.toRed(BN.mont(priv.prime1));\n\tvar c2 = blinded.toRed(BN.mont(priv.prime2));\n\tvar qinv = priv.coefficient;\n\tvar p = priv.prime1;\n\tvar q = priv.prime2;\n\tvar m1 = c1.redPow(priv.exponent1).fromRed();\n\tvar m2 = c2.redPow(priv.exponent2).fromRed();\n\tvar h = m1.isub(m2).imul(qinv).umod(p).imul(q);\n\treturn m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len);\n}\ncrt.getr = getr;\n\nmodule.exports = crt;\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","import { defineFormatter } from './formatter.js';\nimport { formatTransaction } from './transaction.js';\nexport function formatBlock(block, _) {\n const transactions = (block.transactions ?? []).map((transaction) => {\n if (typeof transaction === 'string')\n return transaction;\n return formatTransaction(transaction);\n });\n return {\n ...block,\n baseFeePerGas: block.baseFeePerGas ? BigInt(block.baseFeePerGas) : null,\n blobGasUsed: block.blobGasUsed ? BigInt(block.blobGasUsed) : undefined,\n difficulty: block.difficulty ? BigInt(block.difficulty) : undefined,\n excessBlobGas: block.excessBlobGas\n ? BigInt(block.excessBlobGas)\n : undefined,\n gasLimit: block.gasLimit ? BigInt(block.gasLimit) : undefined,\n gasUsed: block.gasUsed ? BigInt(block.gasUsed) : undefined,\n hash: block.hash ? block.hash : null,\n logsBloom: block.logsBloom ? block.logsBloom : null,\n nonce: block.nonce ? block.nonce : null,\n number: block.number ? BigInt(block.number) : null,\n size: block.size ? BigInt(block.size) : undefined,\n timestamp: block.timestamp ? BigInt(block.timestamp) : undefined,\n transactions,\n totalDifficulty: block.totalDifficulty\n ? BigInt(block.totalDifficulty)\n : null,\n };\n}\nexport const defineBlock = /*#__PURE__*/ defineFormatter('block', formatBlock);\n//# sourceMappingURL=block.js.map","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","import { TransactionNotFoundError, } from '../../errors/transaction.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatTransaction, } from '../../utils/formatters/transaction.js';\n/**\n * Returns information about a [Transaction](https://viem.sh/docs/glossary/terms#transaction) given a hash or block identifier.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransaction\n * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\n * - JSON-RPC Methods: [`eth_getTransactionByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionByHash)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionParameters}\n * @returns The transaction information. {@link GetTransactionReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransaction } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const transaction = await getTransaction(client, {\n * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\nexport async function getTransaction(client, { blockHash, blockNumber, blockTag: blockTag_, hash, index, sender, nonce, }) {\n const blockTag = blockTag_ || 'latest';\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n let transaction = null;\n if (hash) {\n transaction = await client.request({\n method: 'eth_getTransactionByHash',\n params: [hash],\n }, { dedupe: true });\n }\n else if (blockHash) {\n transaction = await client.request({\n method: 'eth_getTransactionByBlockHashAndIndex',\n params: [blockHash, numberToHex(index)],\n }, { dedupe: true });\n }\n else if ((blockNumberHex || blockTag) && typeof index === 'number') {\n transaction = await client.request({\n method: 'eth_getTransactionByBlockNumberAndIndex',\n params: [blockNumberHex || blockTag, numberToHex(index)],\n }, { dedupe: Boolean(blockNumberHex) });\n }\n else if (sender && typeof nonce === 'number') {\n transaction = await client.request({\n method: 'eth_getTransactionBySenderAndNonce',\n params: [sender, numberToHex(nonce)],\n }, { dedupe: true });\n }\n if (!transaction)\n throw new TransactionNotFoundError({\n blockHash,\n blockNumber,\n blockTag,\n hash,\n index,\n });\n const format = client.chain?.formatters?.transaction?.format || formatTransaction;\n return format(transaction, 'getTransaction');\n}\n//# sourceMappingURL=getTransaction.js.map","import { globalValue } from \"./GlobalValue.js\";\nimport * as Predicate from \"./Predicate.js\";\n/**\n * @since 2.0.0\n * @category symbols\n */\nexport const NodeInspectSymbol = /*#__PURE__*/Symbol.for(\"nodejs.util.inspect.custom\");\n/**\n * @since 2.0.0\n */\nexport const toJSON = x => {\n try {\n if (Predicate.hasProperty(x, \"toJSON\") && Predicate.isFunction(x[\"toJSON\"]) && x[\"toJSON\"].length === 0) {\n return x.toJSON();\n } else if (Array.isArray(x)) {\n return x.map(toJSON);\n }\n } catch {\n return {};\n }\n return redact(x);\n};\nconst CIRCULAR = \"[Circular]\";\n/** @internal */\nexport function formatDate(date) {\n try {\n return date.toISOString();\n } catch {\n return \"Invalid Date\";\n }\n}\nfunction safeToString(input) {\n try {\n const s = input.toString();\n return typeof s === \"string\" ? s : String(s);\n } catch {\n return \"[toString threw]\";\n }\n}\n/** @internal */\nexport function formatPropertyKey(name) {\n return Predicate.isString(name) ? JSON.stringify(name) : String(name);\n}\n/** @internal */\nexport function formatUnknown(input, options) {\n const space = options?.space ?? 0;\n const seen = new WeakSet();\n const gap = !space ? \"\" : Predicate.isNumber(space) ? \" \".repeat(space) : space;\n const ind = d => gap.repeat(d);\n const wrap = (v, body) => {\n const ctor = v?.constructor;\n return ctor && ctor !== Object.prototype.constructor && ctor.name ? `${ctor.name}(${body})` : body;\n };\n const ownKeys = o => {\n try {\n return Reflect.ownKeys(o);\n } catch {\n return [\"[ownKeys threw]\"];\n }\n };\n function go(v, d = 0) {\n if (Array.isArray(v)) {\n if (seen.has(v)) return CIRCULAR;\n seen.add(v);\n if (!gap || v.length <= 1) return `[${v.map(x => go(x, d)).join(\",\")}]`;\n const inner = v.map(x => go(x, d + 1)).join(\",\\n\" + ind(d + 1));\n return `[\\n${ind(d + 1)}${inner}\\n${ind(d)}]`;\n }\n if (Predicate.isDate(v)) return formatDate(v);\n if (!options?.ignoreToString && Predicate.hasProperty(v, \"toString\") && Predicate.isFunction(v[\"toString\"]) && v[\"toString\"] !== Object.prototype.toString && v[\"toString\"] !== Array.prototype.toString) {\n const s = safeToString(v);\n if (v instanceof Error && v.cause) {\n return `${s} (cause: ${go(v.cause, d)})`;\n }\n return s;\n }\n if (Predicate.isString(v)) return JSON.stringify(v);\n if (Predicate.isNumber(v) || v == null || Predicate.isBoolean(v) || Predicate.isSymbol(v)) return String(v);\n if (Predicate.isBigInt(v)) return String(v) + \"n\";\n if (v instanceof Set || v instanceof Map) {\n if (seen.has(v)) return CIRCULAR;\n seen.add(v);\n return `${v.constructor.name}(${go(Array.from(v), d)})`;\n }\n if (Predicate.isObject(v)) {\n if (seen.has(v)) return CIRCULAR;\n seen.add(v);\n const keys = ownKeys(v);\n if (!gap || keys.length <= 1) {\n const body = `{${keys.map(k => `${formatPropertyKey(k)}:${go(v[k], d)}`).join(\",\")}}`;\n return wrap(v, body);\n }\n const body = `{\\n${keys.map(k => `${ind(d + 1)}${formatPropertyKey(k)}: ${go(v[k], d + 1)}`).join(\",\\n\")}\\n${ind(d)}}`;\n return wrap(v, body);\n }\n return String(v);\n }\n return go(input, 0);\n}\n/**\n * @since 2.0.0\n */\nexport const format = x => JSON.stringify(x, null, 2);\n/**\n * @since 2.0.0\n */\nexport const BaseProto = {\n toJSON() {\n return toJSON(this);\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n toString() {\n return format(this.toJSON());\n }\n};\n/**\n * @since 2.0.0\n */\nexport class Class {\n /**\n * @since 2.0.0\n */\n [NodeInspectSymbol]() {\n return this.toJSON();\n }\n /**\n * @since 2.0.0\n */\n toString() {\n return format(this.toJSON());\n }\n}\n/**\n * @since 2.0.0\n */\nexport const toStringUnknown = (u, whitespace = 2) => {\n if (typeof u === \"string\") {\n return u;\n }\n try {\n return typeof u === \"object\" ? stringifyCircular(u, whitespace) : String(u);\n } catch {\n return String(u);\n }\n};\n/**\n * @since 2.0.0\n */\nexport const stringifyCircular = (obj, whitespace) => {\n let cache = [];\n const retVal = JSON.stringify(obj, (_key, value) => typeof value === \"object\" && value !== null ? cache.includes(value) ? undefined // circular reference\n : cache.push(value) && (redactableState.fiberRefs !== undefined && isRedactable(value) ? value[symbolRedactable](redactableState.fiberRefs) : value) : value, whitespace);\n cache = undefined;\n return retVal;\n};\n/**\n * @since 3.10.0\n * @category redactable\n */\nexport const symbolRedactable = /*#__PURE__*/Symbol.for(\"effect/Inspectable/Redactable\");\n/**\n * @since 3.10.0\n * @category redactable\n */\nexport const isRedactable = u => typeof u === \"object\" && u !== null && symbolRedactable in u;\nconst redactableState = /*#__PURE__*/globalValue(\"effect/Inspectable/redactableState\", () => ({\n fiberRefs: undefined\n}));\n/**\n * @since 3.10.0\n * @category redactable\n */\nexport const withRedactableContext = (context, f) => {\n const prev = redactableState.fiberRefs;\n redactableState.fiberRefs = context;\n try {\n return f();\n } finally {\n redactableState.fiberRefs = prev;\n }\n};\n/**\n * @since 3.10.0\n * @category redactable\n */\nexport const redact = u => {\n if (isRedactable(u) && redactableState.fiberRefs !== undefined) {\n return u[symbolRedactable](redactableState.fiberRefs);\n }\n return u;\n};\n//# sourceMappingURL=Inspectable.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getContractError, } from '../../utils/errors/getContractError.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { call } from './call.js';\n/**\n * Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions.\n *\n * - Docs: https://viem.sh/docs/contract/simulateContract\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\n *\n * This function does not require gas to execute and _**does not**_ change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract), but also supports contract write functions.\n *\n * Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n *\n * @param client - Client to use\n * @param parameters - {@link SimulateContractParameters}\n * @returns The simulation result and write request. {@link SimulateContractReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { simulateContract } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const result = await simulateContract(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint(uint32) view returns (uint32)']),\n * functionName: 'mint',\n * args: ['69420'],\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function simulateContract(client, parameters) {\n const { abi, address, args, dataSuffix, functionName, ...callRequest } = parameters;\n const account = callRequest.account\n ? parseAccount(callRequest.account)\n : client.account;\n const calldata = encodeFunctionData({ abi, args, functionName });\n try {\n const { data } = await getAction(client, call, 'call')({\n batch: false,\n data: `${calldata}${dataSuffix ? dataSuffix.replace('0x', '') : ''}`,\n to: address,\n ...callRequest,\n account,\n });\n const result = decodeFunctionResult({\n abi,\n args,\n functionName,\n data: data || '0x',\n });\n const minimizedAbi = abi.filter((abiItem) => 'name' in abiItem && abiItem.name === parameters.functionName);\n return {\n result,\n request: {\n abi: minimizedAbi,\n address,\n args,\n dataSuffix,\n functionName,\n ...callRequest,\n account,\n },\n };\n }\n catch (error) {\n throw getContractError(error, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/simulateContract',\n functionName,\n sender: account?.address,\n });\n }\n}\n//# sourceMappingURL=simulateContract.js.map","import { formatAbiParameters, } from './formatAbiParameters.js';\n/**\n * Formats ABI item (e.g. error, event, function) into human-readable ABI item\n *\n * @param abiItem - ABI item\n * @returns Human-readable ABI item\n */\nexport function formatAbiItem(abiItem) {\n if (abiItem.type === 'function')\n return `function ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})${abiItem.stateMutability && abiItem.stateMutability !== 'nonpayable'\n ? ` ${abiItem.stateMutability}`\n : ''}${abiItem.outputs?.length\n ? ` returns (${formatAbiParameters(abiItem.outputs)})`\n : ''}`;\n if (abiItem.type === 'event')\n return `event ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})`;\n if (abiItem.type === 'error')\n return `error ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})`;\n if (abiItem.type === 'constructor')\n return `constructor(${formatAbiParameters(abiItem.inputs)})${abiItem.stateMutability === 'payable' ? ' payable' : ''}`;\n if (abiItem.type === 'fallback')\n return `fallback() external${abiItem.stateMutability === 'payable' ? ' payable' : ''}`;\n return 'receive() external payable';\n}\n//# sourceMappingURL=formatAbiItem.js.map","'use strict';\n\nvar inherits = require('inherits');\nvar SHA512 = require('./sha512');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar W = new Array(160);\n\nfunction Sha384() {\n\tthis.init();\n\tthis._w = W;\n\n\tHash.call(this, 128, 112);\n}\n\ninherits(Sha384, SHA512);\n\nSha384.prototype.init = function () {\n\tthis._ah = 0xcbbb9d5d;\n\tthis._bh = 0x629a292a;\n\tthis._ch = 0x9159015a;\n\tthis._dh = 0x152fecd8;\n\tthis._eh = 0x67332667;\n\tthis._fh = 0x8eb44a87;\n\tthis._gh = 0xdb0c2e0d;\n\tthis._hh = 0x47b5481d;\n\n\tthis._al = 0xc1059ed8;\n\tthis._bl = 0x367cd507;\n\tthis._cl = 0x3070dd17;\n\tthis._dl = 0xf70e5939;\n\tthis._el = 0xffc00b31;\n\tthis._fl = 0x68581511;\n\tthis._gl = 0x64f98fa7;\n\tthis._hl = 0xbefa4fa4;\n\n\treturn this;\n};\n\nSha384.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(48);\n\n\tfunction writeInt64BE(h, l, offset) {\n\t\tH.writeInt32BE(h, offset);\n\t\tH.writeInt32BE(l, offset + 4);\n\t}\n\n\twriteInt64BE(this._ah, this._al, 0);\n\twriteInt64BE(this._bh, this._bl, 8);\n\twriteInt64BE(this._ch, this._cl, 16);\n\twriteInt64BE(this._dh, this._dl, 24);\n\twriteInt64BE(this._eh, this._el, 32);\n\twriteInt64BE(this._fh, this._fl, 40);\n\n\treturn H;\n};\n\nmodule.exports = Sha384;\n","\"use strict\";var copy=function copy(I,i){return function(O,o){var oi=o*2;var ii=i*2;O[oi]=I[ii];O[oi+1]=I[ii+1]}};module.exports=copy;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports[\"default\"]=exports.SHAKE=exports.SHA3Hash=exports.SHA3=exports.Keccak=void 0;var _buffer=require(\"buffer\");var _sponge=_interopRequireDefault(require(\"./sponge\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{\"default\":obj}}var createHash=function createHash(_ref){var allowedSizes=_ref.allowedSizes,defaultSize=_ref.defaultSize,padding=_ref.padding;return function Hash(){var _this=this;var size=arguments.length>0&&arguments[0]!==undefined?arguments[0]:defaultSize;if(!this||this.constructor!==Hash){return new Hash(size)}if(allowedSizes&&!allowedSizes.includes(size)){throw new Error(\"Unsupported hash length\")}var sponge=new _sponge[\"default\"]({capacity:size});this.update=function(input){var encoding=arguments.length>1&&arguments[1]!==undefined?arguments[1]:\"utf8\";if(_buffer.Buffer.isBuffer(input)){sponge.absorb(input);return _this}if(typeof input===\"string\"){return _this.update(_buffer.Buffer.from(input,encoding))}throw new TypeError(\"Not a string or buffer\")};this.digest=function(){var formatOrOptions=arguments.length>0&&arguments[0]!==undefined?arguments[0]:\"binary\";var options=typeof formatOrOptions===\"string\"?{format:formatOrOptions}:formatOrOptions;var buffer=sponge.squeeze({buffer:options.buffer,padding:options.padding||padding});if(options.format&&options.format!==\"binary\"){return buffer.toString(options.format)}return buffer};this.reset=function(){sponge.reset();return _this};return this}};var Keccak=createHash({allowedSizes:[224,256,384,512],defaultSize:512,padding:1});exports.Keccak=Keccak;var SHA3=createHash({allowedSizes:[224,256,384,512],defaultSize:512,padding:6});exports.SHA3=SHA3;var SHAKE=createHash({allowedSizes:[128,256],defaultSize:256,padding:31});exports.SHAKE=SHAKE;var SHA3Hash=Keccak;exports.SHA3Hash=SHA3Hash;SHA3.SHA3Hash=SHA3Hash;var _default=SHA3;exports[\"default\"]=_default;","import { BlockNotFoundError, } from '../../errors/block.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatBlock, } from '../../utils/formatters/block.js';\n/**\n * Returns information about a block at a block number, hash, or tag.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlock\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\n * - JSON-RPC Methods:\n * - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) for `blockNumber` & `blockTag`.\n * - Calls [`eth_getBlockByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash) for `blockHash`.\n *\n * @param client - Client to use\n * @param parameters - {@link GetBlockParameters}\n * @returns Information about the block. {@link GetBlockReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlock } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const block = await getBlock(client)\n */\nexport async function getBlock(client, { blockHash, blockNumber, blockTag = client.experimental_blockTag ?? 'latest', includeTransactions: includeTransactions_, } = {}) {\n const includeTransactions = includeTransactions_ ?? false;\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n let block = null;\n if (blockHash) {\n block = await client.request({\n method: 'eth_getBlockByHash',\n params: [blockHash, includeTransactions],\n }, { dedupe: true });\n }\n else {\n block = await client.request({\n method: 'eth_getBlockByNumber',\n params: [blockNumberHex || blockTag, includeTransactions],\n }, { dedupe: Boolean(blockNumberHex) });\n }\n if (!block)\n throw new BlockNotFoundError({ blockHash, blockNumber });\n const format = client.chain?.formatters?.block?.format || formatBlock;\n return format(block, 'getBlock');\n}\n//# sourceMappingURL=getBlock.js.map","import { Eip1559FeesNotSupportedError, } from '../../errors/fee.js';\nimport { hexToBigInt, } from '../../utils/encoding/fromHex.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { getBlock } from './getBlock.js';\nimport { getGasPrice } from './getGasPrice.js';\n/**\n * Returns an estimate for the max priority fee per gas (in wei) for a\n * transaction to be likely included in the next block.\n * Defaults to [`chain.fees.defaultPriorityFee`](/docs/clients/chains#fees-defaultpriorityfee) if set.\n *\n * - Docs: https://viem.sh/docs/actions/public/estimateMaxPriorityFeePerGas\n *\n * @param client - Client to use\n * @returns An estimate (in wei) for the max priority fee per gas. {@link EstimateMaxPriorityFeePerGasReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { estimateMaxPriorityFeePerGas } from 'viem/actions'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const maxPriorityFeePerGas = await estimateMaxPriorityFeePerGas(client)\n * // 10000000n\n */\nexport async function estimateMaxPriorityFeePerGas(client, args) {\n return internal_estimateMaxPriorityFeePerGas(client, args);\n}\nexport async function internal_estimateMaxPriorityFeePerGas(client, args) {\n const { block: block_, chain = client.chain, request } = args || {};\n try {\n const maxPriorityFeePerGas = chain?.fees?.maxPriorityFeePerGas ?? chain?.fees?.defaultPriorityFee;\n if (typeof maxPriorityFeePerGas === 'function') {\n const block = block_ || (await getAction(client, getBlock, 'getBlock')({}));\n const maxPriorityFeePerGas_ = await maxPriorityFeePerGas({\n block,\n client,\n request,\n });\n if (maxPriorityFeePerGas_ === null)\n throw new Error();\n return maxPriorityFeePerGas_;\n }\n if (typeof maxPriorityFeePerGas !== 'undefined')\n return maxPriorityFeePerGas;\n const maxPriorityFeePerGasHex = await client.request({\n method: 'eth_maxPriorityFeePerGas',\n });\n return hexToBigInt(maxPriorityFeePerGasHex);\n }\n catch {\n // If the RPC Provider does not support `eth_maxPriorityFeePerGas`\n // fall back to calculating it manually via `gasPrice - baseFeePerGas`.\n // See: https://github.com/ethereum/pm/issues/328#:~:text=eth_maxPriorityFeePerGas%20after%20London%20will%20effectively%20return%20eth_gasPrice%20%2D%20baseFee\n const [block, gasPrice] = await Promise.all([\n block_\n ? Promise.resolve(block_)\n : getAction(client, getBlock, 'getBlock')({}),\n getAction(client, getGasPrice, 'getGasPrice')({}),\n ]);\n if (typeof block.baseFeePerGas !== 'bigint')\n throw new Eip1559FeesNotSupportedError();\n const maxPriorityFeePerGas = gasPrice - block.baseFeePerGas;\n if (maxPriorityFeePerGas < 0n)\n return 0n;\n return maxPriorityFeePerGas;\n }\n}\n//# sourceMappingURL=estimateMaxPriorityFeePerGas.js.map","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","export const etherUnits = {\n gwei: 9,\n wei: 18,\n};\nexport const gweiUnits = {\n ether: -9,\n wei: 9,\n};\nexport const weiUnits = {\n ether: -18,\n gwei: -9,\n};\n//# sourceMappingURL=unit.js.map","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","'use strict';\n\n// eslint-disable-next-line no-multi-assign\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes');\n\n// eslint-disable-next-line no-multi-assign\nexports.createHash = exports.Hash = require('create-hash');\n\n// eslint-disable-next-line no-multi-assign\nexports.createHmac = exports.Hmac = require('create-hmac');\n\nvar algos = require('browserify-sign/algos');\nvar algoKeys = Object.keys(algos);\nvar hashes = [\n\t'sha1',\n\t'sha224',\n\t'sha256',\n\t'sha384',\n\t'sha512',\n\t'md5',\n\t'rmd160'\n].concat(algoKeys);\n\nexports.getHashes = function () {\n\treturn hashes;\n};\n\nvar p = require('pbkdf2');\nexports.pbkdf2 = p.pbkdf2;\nexports.pbkdf2Sync = p.pbkdf2Sync;\n\nvar aes = require('browserify-cipher');\n\nexports.Cipher = aes.Cipher;\nexports.createCipher = aes.createCipher;\nexports.Cipheriv = aes.Cipheriv;\nexports.createCipheriv = aes.createCipheriv;\nexports.Decipher = aes.Decipher;\nexports.createDecipher = aes.createDecipher;\nexports.Decipheriv = aes.Decipheriv;\nexports.createDecipheriv = aes.createDecipheriv;\nexports.getCiphers = aes.getCiphers;\nexports.listCiphers = aes.listCiphers;\n\nvar dh = require('diffie-hellman');\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup;\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup;\nexports.getDiffieHellman = dh.getDiffieHellman;\nexports.createDiffieHellman = dh.createDiffieHellman;\nexports.DiffieHellman = dh.DiffieHellman;\n\nvar sign = require('browserify-sign');\n\nexports.createSign = sign.createSign;\nexports.Sign = sign.Sign;\nexports.createVerify = sign.createVerify;\nexports.Verify = sign.Verify;\n\nexports.createECDH = require('create-ecdh');\n\nvar publicEncrypt = require('public-encrypt');\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt;\nexports.privateEncrypt = publicEncrypt.privateEncrypt;\nexports.publicDecrypt = publicEncrypt.publicDecrypt;\nexports.privateDecrypt = publicEncrypt.privateDecrypt;\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// [\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error('sorry, ' + name + ' is not implemented yet\\nwe accept pull requests\\nhttps://github.com/browserify/crypto-browserify');\n// };\n// });\n\nvar rf = require('randomfill');\n\nexports.randomFill = rf.randomFill;\nexports.randomFillSync = rf.randomFillSync;\n\nexports.createCredentials = function () {\n\tthrow new Error('sorry, createCredentials is not implemented yet\\nwe accept pull requests\\nhttps://github.com/browserify/crypto-browserify');\n};\n\nexports.constants = {\n\tDH_CHECK_P_NOT_SAFE_PRIME: 2,\n\tDH_CHECK_P_NOT_PRIME: 1,\n\tDH_UNABLE_TO_CHECK_GENERATOR: 4,\n\tDH_NOT_SUITABLE_GENERATOR: 8,\n\tNPN_ENABLED: 1,\n\tALPN_ENABLED: 1,\n\tRSA_PKCS1_PADDING: 1,\n\tRSA_SSLV23_PADDING: 2,\n\tRSA_NO_PADDING: 3,\n\tRSA_PKCS1_OAEP_PADDING: 4,\n\tRSA_X931_PADDING: 5,\n\tRSA_PKCS1_PSS_PADDING: 6,\n\tPOINT_CONVERSION_COMPRESSED: 2,\n\tPOINT_CONVERSION_UNCOMPRESSED: 4,\n\tPOINT_CONVERSION_HYBRID: 6\n};\n","import { BaseError } from './base.js';\nexport class AccountNotFoundError extends BaseError {\n constructor({ docsPath } = {}) {\n super([\n 'Could not find an Account to execute with this Action.',\n 'Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the Client.',\n ].join('\\n'), {\n docsPath,\n docsSlug: 'account',\n name: 'AccountNotFoundError',\n });\n }\n}\nexport class AccountTypeNotSupportedError extends BaseError {\n constructor({ docsPath, metaMessages, type, }) {\n super(`Account type \"${type}\" is not supported.`, {\n docsPath,\n metaMessages,\n name: 'AccountTypeNotSupportedError',\n });\n }\n}\n//# sourceMappingURL=account.js.map","export const getContractAddress = (address) => address;\nexport const getUrl = (url) => url;\n//# sourceMappingURL=utils.js.map","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","var inherits = require('inherits');\nvar Reporter = require('../base').Reporter;\nvar Buffer = require('buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n var res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n}\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n var res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n}\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n}\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!(item instanceof EncoderBuffer))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = new Buffer(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","import * as Hex from '../Hex.js';\n/** @internal */\nexport function assertSize(hex, size_) {\n if (Hex.size(hex) > size_)\n throw new Hex.SizeOverflowError({\n givenSize: Hex.size(hex),\n maxSize: size_,\n });\n}\n/** @internal */\nexport function assertStartOffset(value, start) {\n if (typeof start === 'number' && start > 0 && start > Hex.size(value) - 1)\n throw new Hex.SliceOffsetOutOfBoundsError({\n offset: start,\n position: 'start',\n size: Hex.size(value),\n });\n}\n/** @internal */\nexport function assertEndOffset(value, start, end) {\n if (typeof start === 'number' &&\n typeof end === 'number' &&\n Hex.size(value) !== end - start) {\n throw new Hex.SliceOffsetOutOfBoundsError({\n offset: end,\n position: 'end',\n size: Hex.size(value),\n });\n }\n}\n/** @internal */\nexport function pad(hex_, options = {}) {\n const { dir, size = 32 } = options;\n if (size === 0)\n return hex_;\n const hex = hex_.replace('0x', '');\n if (hex.length > size * 2)\n throw new Hex.SizeExceedsPaddingSizeError({\n size: Math.ceil(hex.length / 2),\n targetSize: size,\n type: 'Hex',\n });\n return `0x${hex[dir === 'right' ? 'padEnd' : 'padStart'](size * 2, '0')}`;\n}\n/** @internal */\nexport function trim(value, options = {}) {\n const { dir = 'left' } = options;\n let data = value.replace('0x', '');\n let sliceLength = 0;\n for (let i = 0; i < data.length - 1; i++) {\n if (data[dir === 'left' ? i : data.length - i - 1].toString() === '0')\n sliceLength++;\n else\n break;\n }\n data =\n dir === 'left'\n ? data.slice(sliceLength)\n : data.slice(0, data.length - sliceLength);\n if (data === '0')\n return '0x';\n if (dir === 'right' && data.length % 2 === 1)\n return `0x${data}0`;\n return `0x${data}`;\n}\n//# sourceMappingURL=hex.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","import * as internal from \"./internal/clock.js\";\nimport * as defaultServices from \"./internal/defaultServices.js\";\n/**\n * @since 2.0.0\n * @category symbols\n */\nexport const ClockTypeId = internal.ClockTypeId;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const make = internal.make;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const sleep = defaultServices.sleep;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const currentTimeMillis = defaultServices.currentTimeMillis;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const currentTimeNanos = defaultServices.currentTimeNanos;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const clockWith = defaultServices.clockWith;\n/**\n * @since 2.0.0\n * @category context\n */\nexport const Clock = internal.clockTag;\n//# sourceMappingURL=Clock.js.map","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","import { slice } from '../data/slice.js';\nimport { toSignatureHash, } from './toSignatureHash.js';\n/**\n * Returns the function selector for a given function definition.\n *\n * @example\n * const selector = toFunctionSelector('function ownerOf(uint256 tokenId)')\n * // 0x6352211e\n */\nexport const toFunctionSelector = (fn) => slice(toSignatureHash(fn), 0, 4);\n//# sourceMappingURL=toFunctionSelector.js.map","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports[\"default\"]=void 0;var _buffer=require(\"buffer\");var _permute=_interopRequireDefault(require(\"./permute\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{\"default\":obj}}var xorWords=function xorWords(I,O){for(var i=0;i>>8;O[o+2]=I[i+1]>>>16;O[o+3]=I[i+1]>>>24;O[o+4]=I[i];O[o+5]=I[i]>>>8;O[o+6]=I[i]>>>16;O[o+7]=I[i]>>>24}return O};var Sponge=function Sponge(_ref){var _this=this;var capacity=_ref.capacity,padding=_ref.padding;var keccak=(0,_permute[\"default\"])();var stateSize=200;var blockSize=capacity/8;var queueSize=stateSize-capacity/4;var queueOffset=0;var state=new Uint32Array(stateSize/4);var queue=_buffer.Buffer.allocUnsafe(queueSize);this.absorb=function(buffer){for(var i=0;i=queueSize){xorWords(queue,state);keccak(state);queueOffset=0}}return _this};this.squeeze=function(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var output={buffer:options.buffer||_buffer.Buffer.allocUnsafe(blockSize),padding:options.padding||padding,queue:_buffer.Buffer.allocUnsafe(queue.length),state:new Uint32Array(state.length)};queue.copy(output.queue);for(var i=0;i hasProperty(u, TypeId);\nconst Proto = {\n [TypeId]: TypeId,\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const make = get => {\n const self = Object.create(Proto);\n self.get = get;\n return self;\n};\n/**\n * @since 2.0.0\n * @category combinators\n */\nexport const map = /*#__PURE__*/dual(2, (self, f) => make(core.map(self.get, f)));\n/**\n * @since 2.0.0\n * @category combinators\n */\nexport const mapEffect = /*#__PURE__*/dual(2, (self, f) => make(core.flatMap(self.get, f)));\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const unwrap = effect => make(core.flatMap(effect, s => s.get));\n//# sourceMappingURL=Readable.js.map","/**\n * @since 2.0.0\n */\nimport * as RA from \"./Array.js\";\nimport * as Equal from \"./Equal.js\";\nimport * as Equivalence from \"./Equivalence.js\";\nimport { dual, identity, pipe } from \"./Function.js\";\nimport * as Hash from \"./Hash.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"./Inspectable.js\";\nimport * as O from \"./Option.js\";\nimport * as Order from \"./Order.js\";\nimport { pipeArguments } from \"./Pipeable.js\";\nimport { hasProperty } from \"./Predicate.js\";\nconst TypeId = /*#__PURE__*/Symbol.for(\"effect/Chunk\");\nfunction copy(src, srcPos, dest, destPos, len) {\n for (let i = srcPos; i < Math.min(src.length, srcPos + len); i++) {\n dest[destPos + i - srcPos] = src[i];\n }\n return dest;\n}\nconst emptyArray = [];\n/**\n * Compares the two chunks of equal length using the specified function\n *\n * @category equivalence\n * @since 2.0.0\n */\nexport const getEquivalence = isEquivalent => Equivalence.make((self, that) => self.length === that.length && toReadonlyArray(self).every((value, i) => isEquivalent(value, unsafeGet(that, i))));\nconst _equivalence = /*#__PURE__*/getEquivalence(Equal.equals);\nconst ChunkProto = {\n [TypeId]: {\n _A: _ => _\n },\n toString() {\n return format(this.toJSON());\n },\n toJSON() {\n return {\n _id: \"Chunk\",\n values: toReadonlyArray(this).map(toJSON)\n };\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n [Equal.symbol](that) {\n return isChunk(that) && _equivalence(this, that);\n },\n [Hash.symbol]() {\n return Hash.cached(this, Hash.array(toReadonlyArray(this)));\n },\n [Symbol.iterator]() {\n switch (this.backing._tag) {\n case \"IArray\":\n {\n return this.backing.array[Symbol.iterator]();\n }\n case \"IEmpty\":\n {\n return emptyArray[Symbol.iterator]();\n }\n default:\n {\n return toReadonlyArray(this)[Symbol.iterator]();\n }\n }\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\nconst makeChunk = backing => {\n const chunk = Object.create(ChunkProto);\n chunk.backing = backing;\n switch (backing._tag) {\n case \"IEmpty\":\n {\n chunk.length = 0;\n chunk.depth = 0;\n chunk.left = chunk;\n chunk.right = chunk;\n break;\n }\n case \"IConcat\":\n {\n chunk.length = backing.left.length + backing.right.length;\n chunk.depth = 1 + Math.max(backing.left.depth, backing.right.depth);\n chunk.left = backing.left;\n chunk.right = backing.right;\n break;\n }\n case \"IArray\":\n {\n chunk.length = backing.array.length;\n chunk.depth = 0;\n chunk.left = _empty;\n chunk.right = _empty;\n break;\n }\n case \"ISingleton\":\n {\n chunk.length = 1;\n chunk.depth = 0;\n chunk.left = _empty;\n chunk.right = _empty;\n break;\n }\n case \"ISlice\":\n {\n chunk.length = backing.length;\n chunk.depth = backing.chunk.depth + 1;\n chunk.left = _empty;\n chunk.right = _empty;\n break;\n }\n }\n return chunk;\n};\n/**\n * Checks if `u` is a `Chunk`\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const isChunk = u => hasProperty(u, TypeId);\nconst _empty = /*#__PURE__*/makeChunk({\n _tag: \"IEmpty\"\n});\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport const empty = () => _empty;\n/**\n * Builds a `NonEmptyChunk` from an non-empty collection of elements.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const make = (...as) => unsafeFromNonEmptyArray(as);\n/**\n * Builds a `NonEmptyChunk` from a single element.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const of = a => makeChunk({\n _tag: \"ISingleton\",\n a\n});\n/**\n * Creates a new `Chunk` from an iterable collection of values.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const fromIterable = self => isChunk(self) ? self : unsafeFromArray(RA.fromIterable(self));\nconst copyToArray = (self, array, initial) => {\n switch (self.backing._tag) {\n case \"IArray\":\n {\n copy(self.backing.array, 0, array, initial, self.length);\n break;\n }\n case \"IConcat\":\n {\n copyToArray(self.left, array, initial);\n copyToArray(self.right, array, initial + self.left.length);\n break;\n }\n case \"ISingleton\":\n {\n array[initial] = self.backing.a;\n break;\n }\n case \"ISlice\":\n {\n let i = 0;\n let j = initial;\n while (i < self.length) {\n array[j] = unsafeGet(self, i);\n i += 1;\n j += 1;\n }\n break;\n }\n }\n};\nconst toArray_ = self => toReadonlyArray(self).slice();\n/**\n * Converts a `Chunk` into an `Array`. If the provided `Chunk` is non-empty\n * (`NonEmptyChunk`), the function will return a `NonEmptyArray`, ensuring the\n * non-empty property is preserved.\n *\n * @category conversions\n * @since 2.0.0\n */\nexport const toArray = toArray_;\nconst toReadonlyArray_ = self => {\n switch (self.backing._tag) {\n case \"IEmpty\":\n {\n return emptyArray;\n }\n case \"IArray\":\n {\n return self.backing.array;\n }\n default:\n {\n const arr = new Array(self.length);\n copyToArray(self, arr, 0);\n self.backing = {\n _tag: \"IArray\",\n array: arr\n };\n self.left = _empty;\n self.right = _empty;\n self.depth = 0;\n return arr;\n }\n }\n};\n/**\n * Converts a `Chunk` into a `ReadonlyArray`. If the provided `Chunk` is\n * non-empty (`NonEmptyChunk`), the function will return a\n * `NonEmptyReadonlyArray`, ensuring the non-empty property is preserved.\n *\n * @category conversions\n * @since 2.0.0\n */\nexport const toReadonlyArray = toReadonlyArray_;\nconst reverseChunk = self => {\n switch (self.backing._tag) {\n case \"IEmpty\":\n case \"ISingleton\":\n return self;\n case \"IArray\":\n {\n return makeChunk({\n _tag: \"IArray\",\n array: RA.reverse(self.backing.array)\n });\n }\n case \"IConcat\":\n {\n return makeChunk({\n _tag: \"IConcat\",\n left: reverse(self.backing.right),\n right: reverse(self.backing.left)\n });\n }\n case \"ISlice\":\n return unsafeFromArray(RA.reverse(toReadonlyArray(self)));\n }\n};\n/**\n * Reverses the order of elements in a `Chunk`.\n * Importantly, if the input chunk is a `NonEmptyChunk`, the reversed chunk will also be a `NonEmptyChunk`.\n *\n * **Example**\n *\n * ```ts\n * import { Chunk } from \"effect\"\n *\n * const chunk = Chunk.make(1, 2, 3)\n * const result = Chunk.reverse(chunk)\n *\n * console.log(result)\n * // { _id: 'Chunk', values: [ 3, 2, 1 ] }\n * ```\n *\n * @since 2.0.0\n * @category elements\n */\nexport const reverse = reverseChunk;\n/**\n * This function provides a safe way to read a value at a particular index from a `Chunk`.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const get = /*#__PURE__*/dual(2, (self, index) => index < 0 || index >= self.length ? O.none() : O.some(unsafeGet(self, index)));\n/**\n * Wraps an array into a chunk without copying, unsafe on mutable arrays\n *\n * @since 2.0.0\n * @category unsafe\n */\nexport const unsafeFromArray = self => self.length === 0 ? empty() : self.length === 1 ? of(self[0]) : makeChunk({\n _tag: \"IArray\",\n array: self\n});\n/**\n * Wraps an array into a chunk without copying, unsafe on mutable arrays\n *\n * @since 2.0.0\n * @category unsafe\n */\nexport const unsafeFromNonEmptyArray = self => unsafeFromArray(self);\n/**\n * Gets an element unsafely, will throw on out of bounds\n *\n * @since 2.0.0\n * @category unsafe\n */\nexport const unsafeGet = /*#__PURE__*/dual(2, (self, index) => {\n switch (self.backing._tag) {\n case \"IEmpty\":\n {\n throw new Error(`Index out of bounds`);\n }\n case \"ISingleton\":\n {\n if (index !== 0) {\n throw new Error(`Index out of bounds`);\n }\n return self.backing.a;\n }\n case \"IArray\":\n {\n if (index >= self.length || index < 0) {\n throw new Error(`Index out of bounds`);\n }\n return self.backing.array[index];\n }\n case \"IConcat\":\n {\n return index < self.left.length ? unsafeGet(self.left, index) : unsafeGet(self.right, index - self.left.length);\n }\n case \"ISlice\":\n {\n return unsafeGet(self.backing.chunk, index + self.backing.offset);\n }\n }\n});\n/**\n * Appends the specified element to the end of the `Chunk`.\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const append = /*#__PURE__*/dual(2, (self, a) => appendAll(self, of(a)));\n/**\n * Prepend an element to the front of a `Chunk`, creating a new `NonEmptyChunk`.\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const prepend = /*#__PURE__*/dual(2, (self, elem) => appendAll(of(elem), self));\n/**\n * Takes the first up to `n` elements from the chunk\n *\n * @since 2.0.0\n */\nexport const take = /*#__PURE__*/dual(2, (self, n) => {\n if (n <= 0) {\n return _empty;\n } else if (n >= self.length) {\n return self;\n } else {\n switch (self.backing._tag) {\n case \"ISlice\":\n {\n return makeChunk({\n _tag: \"ISlice\",\n chunk: self.backing.chunk,\n length: n,\n offset: self.backing.offset\n });\n }\n case \"IConcat\":\n {\n if (n > self.left.length) {\n return makeChunk({\n _tag: \"IConcat\",\n left: self.left,\n right: take(self.right, n - self.left.length)\n });\n }\n return take(self.left, n);\n }\n default:\n {\n return makeChunk({\n _tag: \"ISlice\",\n chunk: self,\n offset: 0,\n length: n\n });\n }\n }\n }\n});\n/**\n * Drops the first up to `n` elements from the chunk\n *\n * @since 2.0.0\n */\nexport const drop = /*#__PURE__*/dual(2, (self, n) => {\n if (n <= 0) {\n return self;\n } else if (n >= self.length) {\n return _empty;\n } else {\n switch (self.backing._tag) {\n case \"ISlice\":\n {\n return makeChunk({\n _tag: \"ISlice\",\n chunk: self.backing.chunk,\n offset: self.backing.offset + n,\n length: self.backing.length - n\n });\n }\n case \"IConcat\":\n {\n if (n > self.left.length) {\n return drop(self.right, n - self.left.length);\n }\n return makeChunk({\n _tag: \"IConcat\",\n left: drop(self.left, n),\n right: self.right\n });\n }\n default:\n {\n return makeChunk({\n _tag: \"ISlice\",\n chunk: self,\n offset: n,\n length: self.length - n\n });\n }\n }\n }\n});\n/**\n * Drops the last `n` elements.\n *\n * @since 2.0.0\n */\nexport const dropRight = /*#__PURE__*/dual(2, (self, n) => take(self, Math.max(0, self.length - n)));\n/**\n * Drops all elements so long as the predicate returns true.\n *\n * @since 2.0.0\n */\nexport const dropWhile = /*#__PURE__*/dual(2, (self, predicate) => {\n const arr = toReadonlyArray(self);\n const len = arr.length;\n let i = 0;\n while (i < len && predicate(arr[i])) {\n i++;\n }\n return drop(self, i);\n});\n/**\n * Prepends the specified prefix chunk to the beginning of the specified chunk.\n * If either chunk is non-empty, the result is also a non-empty chunk.\n *\n * **Example**\n *\n * ```ts\n * import { Chunk } from \"effect\"\n *\n * const result = Chunk.make(1, 2).pipe(Chunk.prependAll(Chunk.make(\"a\", \"b\")), Chunk.toArray)\n *\n * console.log(result)\n * // [ \"a\", \"b\", 1, 2 ]\n * ```\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const prependAll = /*#__PURE__*/dual(2, (self, that) => appendAll(that, self));\n/**\n * Concatenates two chunks, combining their elements.\n * If either chunk is non-empty, the result is also a non-empty chunk.\n *\n * **Example**\n *\n * ```ts\n * import { Chunk } from \"effect\"\n *\n * const result = Chunk.make(1, 2).pipe(Chunk.appendAll(Chunk.make(\"a\", \"b\")), Chunk.toArray)\n *\n * console.log(result)\n * // [ 1, 2, \"a\", \"b\" ]\n * ```\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const appendAll = /*#__PURE__*/dual(2, (self, that) => {\n if (self.backing._tag === \"IEmpty\") {\n return that;\n }\n if (that.backing._tag === \"IEmpty\") {\n return self;\n }\n const diff = that.depth - self.depth;\n if (Math.abs(diff) <= 1) {\n return makeChunk({\n _tag: \"IConcat\",\n left: self,\n right: that\n });\n } else if (diff < -1) {\n if (self.left.depth >= self.right.depth) {\n const nr = appendAll(self.right, that);\n return makeChunk({\n _tag: \"IConcat\",\n left: self.left,\n right: nr\n });\n } else {\n const nrr = appendAll(self.right.right, that);\n if (nrr.depth === self.depth - 3) {\n const nr = makeChunk({\n _tag: \"IConcat\",\n left: self.right.left,\n right: nrr\n });\n return makeChunk({\n _tag: \"IConcat\",\n left: self.left,\n right: nr\n });\n } else {\n const nl = makeChunk({\n _tag: \"IConcat\",\n left: self.left,\n right: self.right.left\n });\n return makeChunk({\n _tag: \"IConcat\",\n left: nl,\n right: nrr\n });\n }\n }\n } else {\n if (that.right.depth >= that.left.depth) {\n const nl = appendAll(self, that.left);\n return makeChunk({\n _tag: \"IConcat\",\n left: nl,\n right: that.right\n });\n } else {\n const nll = appendAll(self, that.left.left);\n if (nll.depth === that.depth - 3) {\n const nl = makeChunk({\n _tag: \"IConcat\",\n left: nll,\n right: that.left.right\n });\n return makeChunk({\n _tag: \"IConcat\",\n left: nl,\n right: that.right\n });\n } else {\n const nr = makeChunk({\n _tag: \"IConcat\",\n left: that.left.right,\n right: that.right\n });\n return makeChunk({\n _tag: \"IConcat\",\n left: nll,\n right: nr\n });\n }\n }\n }\n});\n/**\n * Returns a filtered and mapped subset of the elements.\n *\n * @since 2.0.0\n * @category filtering\n */\nexport const filterMap = /*#__PURE__*/dual(2, (self, f) => unsafeFromArray(RA.filterMap(self, f)));\n/**\n * Returns a filtered and mapped subset of the elements.\n *\n * @since 2.0.0\n * @category filtering\n */\nexport const filter = /*#__PURE__*/dual(2, (self, predicate) => unsafeFromArray(RA.filter(self, predicate)));\n/**\n * Transforms all elements of the chunk for as long as the specified function returns some value\n *\n * @since 2.0.0\n * @category filtering\n */\nexport const filterMapWhile = /*#__PURE__*/dual(2, (self, f) => unsafeFromArray(RA.filterMapWhile(self, f)));\n/**\n * Filter out optional values\n *\n * @since 2.0.0\n * @category filtering\n */\nexport const compact = self => filterMap(self, identity);\n/**\n * Applies a function to each element in a chunk and returns a new chunk containing the concatenated mapped elements.\n *\n * @since 2.0.0\n * @category sequencing\n */\nexport const flatMap = /*#__PURE__*/dual(2, (self, f) => {\n if (self.backing._tag === \"ISingleton\") {\n return f(self.backing.a, 0);\n }\n let out = _empty;\n let i = 0;\n for (const k of self) {\n out = appendAll(out, f(k, i++));\n }\n return out;\n});\n/**\n * Iterates over each element of a `Chunk` and applies a function to it.\n *\n * **Details**\n *\n * This function processes every element of the given `Chunk`, calling the\n * provided function `f` on each element. It does not return a new value;\n * instead, it is primarily used for side effects, such as logging or\n * accumulating data in an external variable.\n *\n * @since 2.0.0\n * @category combinators\n */\nexport const forEach = /*#__PURE__*/dual(2, (self, f) => toReadonlyArray(self).forEach(f));\n/**\n * Flattens a chunk of chunks into a single chunk by concatenating all chunks.\n *\n * @since 2.0.0\n * @category sequencing\n */\nexport const flatten = /*#__PURE__*/flatMap(identity);\n/**\n * Groups elements in chunks of up to `n` elements.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const chunksOf = /*#__PURE__*/dual(2, (self, n) => {\n const gr = [];\n let current = [];\n toReadonlyArray(self).forEach(a => {\n current.push(a);\n if (current.length >= n) {\n gr.push(unsafeFromArray(current));\n current = [];\n }\n });\n if (current.length > 0) {\n gr.push(unsafeFromArray(current));\n }\n return unsafeFromArray(gr);\n});\n/**\n * Creates a Chunk of unique values that are included in all given Chunks.\n *\n * The order and references of result values are determined by the Chunk.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const intersection = /*#__PURE__*/dual(2, (self, that) => unsafeFromArray(RA.intersection(toReadonlyArray(self), toReadonlyArray(that))));\n/**\n * Determines if the chunk is empty.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const isEmpty = self => self.length === 0;\n/**\n * Determines if the chunk is not empty.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const isNonEmpty = self => self.length > 0;\n/**\n * Returns the first element of this chunk if it exists.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const head = /*#__PURE__*/get(0);\n/**\n * Returns the first element of this chunk.\n *\n * It will throw an error if the chunk is empty.\n *\n * @since 2.0.0\n * @category unsafe\n */\nexport const unsafeHead = self => unsafeGet(self, 0);\n/**\n * Returns the first element of this non empty chunk.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const headNonEmpty = unsafeHead;\n/**\n * Returns the last element of this chunk if it exists.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const last = self => get(self, self.length - 1);\n/**\n * Returns the last element of this chunk.\n *\n * It will throw an error if the chunk is empty.\n *\n * @since 2.0.0\n * @category unsafe\n */\nexport const unsafeLast = self => unsafeGet(self, self.length - 1);\n/**\n * Returns the last element of this non empty chunk.\n *\n * @since 3.4.0\n * @category elements\n */\nexport const lastNonEmpty = unsafeLast;\n/**\n * Transforms the elements of a chunk using the specified mapping function.\n * If the input chunk is non-empty, the resulting chunk will also be non-empty.\n *\n * **Example**\n *\n * ```ts\n * import { Chunk } from \"effect\"\n *\n * const result = Chunk.map(Chunk.make(1, 2), (n) => n + 1)\n *\n * console.log(result)\n * // { _id: 'Chunk', values: [ 2, 3 ] }\n * ```\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const map = /*#__PURE__*/dual(2, (self, f) => self.backing._tag === \"ISingleton\" ? of(f(self.backing.a, 0)) : unsafeFromArray(pipe(toReadonlyArray(self), RA.map((a, i) => f(a, i)))));\n/**\n * Statefully maps over the chunk, producing new elements of type `B`.\n *\n * @since 2.0.0\n * @category folding\n */\nexport const mapAccum = /*#__PURE__*/dual(3, (self, s, f) => {\n const [s1, as] = RA.mapAccum(self, s, f);\n return [s1, unsafeFromArray(as)];\n});\n/**\n * Separate elements based on a predicate that also exposes the index of the element.\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const partition = /*#__PURE__*/dual(2, (self, predicate) => pipe(RA.partition(toReadonlyArray(self), predicate), ([l, r]) => [unsafeFromArray(l), unsafeFromArray(r)]));\n/**\n * Partitions the elements of this chunk into two chunks using f.\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const partitionMap = /*#__PURE__*/dual(2, (self, f) => pipe(RA.partitionMap(toReadonlyArray(self), f), ([l, r]) => [unsafeFromArray(l), unsafeFromArray(r)]));\n/**\n * Partitions the elements of this chunk into two chunks.\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const separate = self => pipe(RA.separate(toReadonlyArray(self)), ([l, r]) => [unsafeFromArray(l), unsafeFromArray(r)]);\n/**\n * Retireves the size of the chunk\n *\n * @since 2.0.0\n * @category elements\n */\nexport const size = self => self.length;\n/**\n * Sort the elements of a Chunk in increasing order, creating a new Chunk.\n *\n * @since 2.0.0\n * @category sorting\n */\nexport const sort = /*#__PURE__*/dual(2, (self, O) => unsafeFromArray(RA.sort(toReadonlyArray(self), O)));\n/**\n * @since 2.0.0\n * @category sorting\n */\nexport const sortWith = /*#__PURE__*/dual(3, (self, f, order) => sort(self, Order.mapInput(order, f)));\n/**\n * Returns two splits of this chunk at the specified index.\n *\n * @since 2.0.0\n * @category splitting\n */\nexport const splitAt = /*#__PURE__*/dual(2, (self, n) => [take(self, n), drop(self, n)]);\n/**\n * Splits a `NonEmptyChunk` into two segments, with the first segment containing a maximum of `n` elements.\n * The value of `n` must be `>= 1`.\n *\n * @category splitting\n * @since 2.0.0\n */\nexport const splitNonEmptyAt = /*#__PURE__*/dual(2, (self, n) => {\n const _n = Math.max(1, Math.floor(n));\n return _n >= self.length ? [self, empty()] : [take(self, _n), drop(self, _n)];\n});\n/**\n * Splits this chunk into `n` equally sized chunks.\n *\n * @since 2.0.0\n * @category splitting\n */\nexport const split = /*#__PURE__*/dual(2, (self, n) => chunksOf(self, Math.ceil(self.length / Math.floor(n))));\n/**\n * Splits this chunk on the first element that matches this predicate.\n * Returns a tuple containing two chunks: the first one is before the match, and the second one is from the match onward.\n *\n * @category splitting\n * @since 2.0.0\n */\nexport const splitWhere = /*#__PURE__*/dual(2, (self, predicate) => {\n let i = 0;\n for (const a of toReadonlyArray(self)) {\n if (predicate(a)) {\n break;\n } else {\n i++;\n }\n }\n return splitAt(self, i);\n});\n/**\n * Returns every elements after the first.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const tail = self => self.length > 0 ? O.some(drop(self, 1)) : O.none();\n/**\n * Returns every elements after the first.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const tailNonEmpty = self => drop(self, 1);\n/**\n * Takes the last `n` elements.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const takeRight = /*#__PURE__*/dual(2, (self, n) => drop(self, self.length - n));\n/**\n * Takes all elements so long as the predicate returns true.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const takeWhile = /*#__PURE__*/dual(2, (self, predicate) => {\n const out = [];\n for (const a of toReadonlyArray(self)) {\n if (predicate(a)) {\n out.push(a);\n } else {\n break;\n }\n }\n return unsafeFromArray(out);\n});\n/**\n * Creates a Chunks of unique values, in order, from all given Chunks.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const union = /*#__PURE__*/dual(2, (self, that) => unsafeFromArray(RA.union(toReadonlyArray(self), toReadonlyArray(that))));\n/**\n * Remove duplicates from an array, keeping the first occurrence of an element.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const dedupe = self => unsafeFromArray(RA.dedupe(toReadonlyArray(self)));\n/**\n * Deduplicates adjacent elements that are identical.\n *\n * @since 2.0.0\n * @category filtering\n */\nexport const dedupeAdjacent = self => unsafeFromArray(RA.dedupeAdjacent(self));\n/**\n * Takes a `Chunk` of pairs and return two corresponding `Chunk`s.\n *\n * Note: The function is reverse of `zip`.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const unzip = self => {\n const [left, right] = RA.unzip(self);\n return [unsafeFromArray(left), unsafeFromArray(right)];\n};\n/**\n * Zips this chunk pointwise with the specified chunk using the specified combiner.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zipWith = /*#__PURE__*/dual(3, (self, that, f) => unsafeFromArray(RA.zipWith(self, that, f)));\n/**\n * Zips this chunk pointwise with the specified chunk.\n *\n * @since 2.0.0\n * @category zipping\n */\nexport const zip = /*#__PURE__*/dual(2, (self, that) => zipWith(self, that, (a, b) => [a, b]));\n/**\n * Delete the element at the specified index, creating a new `Chunk`.\n *\n * @since 2.0.0\n */\nexport const remove = /*#__PURE__*/dual(2, (self, i) => {\n if (i < 0 || i >= self.length) return self;\n return unsafeFromArray(RA.remove(toReadonlyArray(self), i));\n});\n/**\n * @since 3.16.0\n */\nexport const removeOption = /*#__PURE__*/dual(2, (self, i) => {\n if (i < 0 || i >= self.length) return O.none();\n return O.some(unsafeFromArray(RA.remove(toReadonlyArray(self), i)));\n});\n/**\n * @since 2.0.0\n */\nexport const modifyOption = /*#__PURE__*/dual(3, (self, i, f) => {\n if (i < 0 || i >= self.length) return O.none();\n return O.some(unsafeFromArray(RA.modify(toReadonlyArray(self), i, f)));\n});\n/**\n * Apply a function to the element at the specified index, creating a new `Chunk`,\n * or returning the input if the index is out of bounds.\n *\n * @since 2.0.0\n */\nexport const modify = /*#__PURE__*/dual(3, (self, i, f) => O.getOrElse(modifyOption(self, i, f), () => self));\n/**\n * Change the element at the specified index, creating a new `Chunk`,\n * or returning the input if the index is out of bounds.\n *\n * @since 2.0.0\n */\nexport const replace = /*#__PURE__*/dual(3, (self, i, b) => modify(self, i, () => b));\n/**\n * @since 2.0.0\n */\nexport const replaceOption = /*#__PURE__*/dual(3, (self, i, b) => modifyOption(self, i, () => b));\n/**\n * Return a Chunk of length n with element i initialized with f(i).\n *\n * **Note**. `n` is normalized to an integer >= 1.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const makeBy = /*#__PURE__*/dual(2, (n, f) => fromIterable(RA.makeBy(n, f)));\n/**\n * Create a non empty `Chunk` containing a range of integers, including both endpoints.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const range = (start, end) => start <= end ? makeBy(end - start + 1, i => start + i) : of(start);\n// -------------------------------------------------------------------------------------\n// re-exports from ReadonlyArray\n// -------------------------------------------------------------------------------------\n/**\n * Returns a function that checks if a `Chunk` contains a given value using the default `Equivalence`.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const contains = RA.contains;\n/**\n * Returns a function that checks if a `Chunk` contains a given value using a provided `isEquivalent` function.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const containsWith = RA.containsWith;\n/**\n * Returns the first element that satisfies the specified\n * predicate, or `None` if no such element exists.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const findFirst = RA.findFirst;\n/**\n * Return the first index for which a predicate holds.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const findFirstIndex = RA.findFirstIndex;\n/**\n * Find the last element for which a predicate holds.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const findLast = RA.findLast;\n/**\n * Return the last index for which a predicate holds.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const findLastIndex = RA.findLastIndex;\n/**\n * Check if a predicate holds true for every `Chunk` element.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const every = /*#__PURE__*/dual(2, (self, refinement) => RA.fromIterable(self).every(refinement));\n/**\n * Check if a predicate holds true for some `Chunk` element.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const some = /*#__PURE__*/dual(2, (self, predicate) => RA.fromIterable(self).some(predicate));\n/**\n * Joins the elements together with \"sep\" in the middle.\n *\n * @category folding\n * @since 2.0.0\n */\nexport const join = RA.join;\n/**\n * @category folding\n * @since 2.0.0\n */\nexport const reduce = RA.reduce;\n/**\n * @category folding\n * @since 2.0.0\n */\nexport const reduceRight = RA.reduceRight;\n/**\n * Creates a `Chunk` of values not included in the other given `Chunk` using the provided `isEquivalent` function.\n * The order and references of result values are determined by the first `Chunk`.\n *\n * @since 3.2.0\n */\nexport const differenceWith = isEquivalent => {\n return dual(2, (self, that) => unsafeFromArray(RA.differenceWith(isEquivalent)(that, self)));\n};\n/**\n * Creates a `Chunk` of values not included in the other given `Chunk`.\n * The order and references of result values are determined by the first `Chunk`.\n *\n * @since 3.2.0\n */\nexport const difference = /*#__PURE__*/dual(2, (self, that) => unsafeFromArray(RA.difference(that, self)));\n//# sourceMappingURL=Chunk.js.map","/** @internal */\nexport const OP_ASYNC = \"Async\";\n/** @internal */\nexport const OP_COMMIT = \"Commit\";\n/** @internal */\nexport const OP_FAILURE = \"Failure\";\n/** @internal */\nexport const OP_ON_FAILURE = \"OnFailure\";\n/** @internal */\nexport const OP_ON_SUCCESS = \"OnSuccess\";\n/** @internal */\nexport const OP_ON_SUCCESS_AND_FAILURE = \"OnSuccessAndFailure\";\n/** @internal */\nexport const OP_SUCCESS = \"Success\";\n/** @internal */\nexport const OP_SYNC = \"Sync\";\n/** @internal */\nexport const OP_TAG = \"Tag\";\n/** @internal */\nexport const OP_UPDATE_RUNTIME_FLAGS = \"UpdateRuntimeFlags\";\n/** @internal */\nexport const OP_WHILE = \"While\";\n/** @internal */\nexport const OP_ITERATOR = \"Iterator\";\n/** @internal */\nexport const OP_WITH_RUNTIME = \"WithRuntime\";\n/** @internal */\nexport const OP_YIELD = \"Yield\";\n/** @internal */\nexport const OP_REVERT_FLAGS = \"RevertFlags\";\n//# sourceMappingURL=effect.js.map","// TODO(v3): Convert to sync.\nimport { secp256k1 } from '@noble/curves/secp256k1';\nimport { isHex } from '../../utils/data/isHex.js';\nimport { hexToBytes, } from '../../utils/encoding/toBytes.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { serializeSignature } from '../../utils/signature/serializeSignature.js';\nlet extraEntropy = false;\n/**\n * Sets extra entropy for signing functions.\n */\nexport function setSignEntropy(entropy) {\n if (!entropy)\n throw new Error('must be a `true` or a hex value.');\n extraEntropy = entropy;\n}\n/**\n * @description Signs a hash with a given private key.\n *\n * @param hash The hash to sign.\n * @param privateKey The private key to sign with.\n *\n * @returns The signature.\n */\nexport async function sign({ hash, privateKey, to = 'object', }) {\n const { r, s, recovery } = secp256k1.sign(hash.slice(2), privateKey.slice(2), {\n lowS: true,\n extraEntropy: isHex(extraEntropy, { strict: false })\n ? hexToBytes(extraEntropy)\n : extraEntropy,\n });\n const signature = {\n r: numberToHex(r, { size: 32 }),\n s: numberToHex(s, { size: 32 }),\n v: recovery ? 28n : 27n,\n yParity: recovery,\n };\n return (() => {\n if (to === 'bytes' || to === 'hex')\n return serializeSignature({ ...signature, to });\n return signature;\n })();\n}\n//# sourceMappingURL=sign.js.map","import { secp256k1 } from '@noble/curves/secp256k1';\nimport { toHex } from '../utils/encoding/toHex.js';\nimport { toAccount } from './toAccount.js';\nimport { publicKeyToAddress, } from './utils/publicKeyToAddress.js';\nimport { sign } from './utils/sign.js';\nimport { signAuthorization } from './utils/signAuthorization.js';\nimport { signMessage } from './utils/signMessage.js';\nimport { signTransaction, } from './utils/signTransaction.js';\nimport { signTypedData, } from './utils/signTypedData.js';\n/**\n * @description Creates an Account from a private key.\n *\n * @returns A Private Key Account.\n */\nexport function privateKeyToAccount(privateKey, options = {}) {\n const { nonceManager } = options;\n const publicKey = toHex(secp256k1.getPublicKey(privateKey.slice(2), false));\n const address = publicKeyToAddress(publicKey);\n const account = toAccount({\n address,\n nonceManager,\n async sign({ hash }) {\n return sign({ hash, privateKey, to: 'hex' });\n },\n async signAuthorization(authorization) {\n return signAuthorization({ ...authorization, privateKey });\n },\n async signMessage({ message }) {\n return signMessage({ message, privateKey });\n },\n async signTransaction(transaction, { serializer } = {}) {\n return signTransaction({ privateKey, transaction, serializer });\n },\n async signTypedData(typedData) {\n return signTypedData({ ...typedData, privateKey });\n },\n });\n return {\n ...account,\n publicKey,\n source: 'privateKey',\n };\n}\n//# sourceMappingURL=privateKeyToAccount.js.map","// TODO(v3): Rename to `toLocalAccount` + add `source` property to define source (privateKey, mnemonic, hdKey, etc).\nimport { InvalidAddressError, } from '../errors/address.js';\nimport { isAddress, } from '../utils/address/isAddress.js';\n/**\n * @description Creates an Account from a custom signing implementation.\n *\n * @returns A Local Account.\n */\nexport function toAccount(source) {\n if (typeof source === 'string') {\n if (!isAddress(source, { strict: false }))\n throw new InvalidAddressError({ address: source });\n return {\n address: source,\n type: 'json-rpc',\n };\n }\n if (!isAddress(source.address, { strict: false }))\n throw new InvalidAddressError({ address: source.address });\n return {\n address: source.address,\n nonceManager: source.nonceManager,\n sign: source.sign,\n signAuthorization: source.signAuthorization,\n signMessage: source.signMessage,\n signTransaction: source.signTransaction,\n signTypedData: source.signTypedData,\n source: 'custom',\n type: 'local',\n };\n}\n//# sourceMappingURL=toAccount.js.map","import { hashAuthorization, } from '../../utils/authorization/hashAuthorization.js';\nimport { sign, } from './sign.js';\n/**\n * Signs an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\n */\nexport async function signAuthorization(parameters) {\n const { chainId, nonce, privateKey, to = 'object' } = parameters;\n const address = parameters.contractAddress ?? parameters.address;\n const signature = await sign({\n hash: hashAuthorization({ address, chainId, nonce }),\n privateKey,\n to,\n });\n if (to === 'object')\n return {\n address,\n chainId,\n nonce,\n ...signature,\n };\n return signature;\n}\n//# sourceMappingURL=signAuthorization.js.map","import { hashMessage, } from '../../utils/signature/hashMessage.js';\nimport { sign } from './sign.js';\n/**\n * @description Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191):\n * `keccak256(\"\\x19Ethereum Signed Message:\\n\" + len(message) + message))`.\n *\n * @returns The signature.\n */\nexport async function signMessage({ message, privateKey, }) {\n return await sign({ hash: hashMessage(message), privateKey, to: 'hex' });\n}\n//# sourceMappingURL=signMessage.js.map","import { keccak256, } from '../../utils/hash/keccak256.js';\nimport { serializeTransaction, } from '../../utils/transaction/serializeTransaction.js';\nimport { sign } from './sign.js';\nexport async function signTransaction(parameters) {\n const { privateKey, transaction, serializer = serializeTransaction, } = parameters;\n const signableTransaction = (() => {\n // For EIP-4844 Transactions, we want to sign the transaction payload body (tx_payload_body) without the sidecars (ie. without the network wrapper).\n // See: https://github.com/ethereum/EIPs/blob/e00f4daa66bd56e2dbd5f1d36d09fd613811a48b/EIPS/eip-4844.md#networking\n if (transaction.type === 'eip4844')\n return {\n ...transaction,\n sidecars: false,\n };\n return transaction;\n })();\n const signature = await sign({\n hash: keccak256(await serializer(signableTransaction)),\n privateKey,\n });\n return (await serializer(transaction, signature));\n}\n//# sourceMappingURL=signTransaction.js.map","import { hashTypedData, } from '../../utils/signature/hashTypedData.js';\nimport { sign } from './sign.js';\n/**\n * @description Signs typed data and calculates an Ethereum-specific signature in [https://eips.ethereum.org/EIPS/eip-712](https://eips.ethereum.org/EIPS/eip-712):\n * `sign(keccak256(\"\\x19\\x01\" ‖ domainSeparator ‖ hashStruct(message)))`.\n *\n * @returns The signature.\n */\nexport async function signTypedData(parameters) {\n const { privateKey, ...typedData } = parameters;\n return await sign({\n hash: hashTypedData(typedData),\n privateKey,\n to: 'hex',\n });\n}\n//# sourceMappingURL=signTypedData.js.map","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","const bigIntSuffix = '#__bigint';\n/**\n * Parses a JSON string, with support for `bigint`.\n *\n * @example\n * ```ts twoslash\n * import { Json } from 'ox'\n *\n * const json = Json.parse('{\"foo\":\"bar\",\"baz\":\"69420694206942069420694206942069420694206942069420#__bigint\"}')\n * // @log: {\n * // @log: foo: 'bar',\n * // @log: baz: 69420694206942069420694206942069420694206942069420n\n * // @log: }\n * ```\n *\n * @param string - The value to parse.\n * @param reviver - A function that transforms the results.\n * @returns The parsed value.\n */\nexport function parse(string, reviver) {\n return JSON.parse(string, (key, value_) => {\n const value = value_;\n if (typeof value === 'string' && value.endsWith(bigIntSuffix))\n return BigInt(value.slice(0, -bigIntSuffix.length));\n return typeof reviver === 'function' ? reviver(key, value) : value;\n });\n}\n/**\n * Stringifies a value to its JSON representation, with support for `bigint`.\n *\n * @example\n * ```ts twoslash\n * import { Json } from 'ox'\n *\n * const json = Json.stringify({\n * foo: 'bar',\n * baz: 69420694206942069420694206942069420694206942069420n,\n * })\n * // @log: '{\"foo\":\"bar\",\"baz\":\"69420694206942069420694206942069420694206942069420#__bigint\"}'\n * ```\n *\n * @param value - The value to stringify.\n * @param replacer - A function that transforms the results. It is passed the key and value of the property, and must return the value to be used in the JSON string. If this function returns `undefined`, the property is not included in the resulting JSON string.\n * @param space - A string or number that determines the indentation of the JSON string. If it is a number, it indicates the number of spaces to use as indentation; if it is a string (e.g. `'\\t'`), it uses the string as the indentation character.\n * @returns The JSON string.\n */\nexport function stringify(value, replacer, space) {\n return JSON.stringify(value, (key, value) => {\n if (typeof replacer === 'function')\n return replacer(key, value);\n if (typeof value === 'bigint')\n return value.toString() + bigIntSuffix;\n return value;\n }, space);\n}\n//# sourceMappingURL=Json.js.map","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","import { toSignatureHash, } from './toSignatureHash.js';\n/**\n * Returns the event selector for a given event definition.\n *\n * @example\n * const selector = toEventSelector('Transfer(address indexed from, address indexed to, uint256 amount)')\n * // 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\n */\nexport const toEventSelector = toSignatureHash;\n//# sourceMappingURL=toEventSelector.js.map","import * as Chunk from \"../../Chunk.js\";\nimport * as Equal from \"../../Equal.js\";\nimport * as Dual from \"../../Function.js\";\nimport { makeContext } from \"../context.js\";\nimport { Structural } from \"../data.js\";\n/** @internal */\nexport const ContextPatchTypeId = /*#__PURE__*/Symbol.for(\"effect/DifferContextPatch\");\nfunction variance(a) {\n return a;\n}\n/** @internal */\nconst PatchProto = {\n ...Structural.prototype,\n [ContextPatchTypeId]: {\n _Value: variance,\n _Patch: variance\n }\n};\nconst EmptyProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Empty\"\n});\nconst _empty = /*#__PURE__*/Object.create(EmptyProto);\n/**\n * @internal\n */\nexport const empty = () => _empty;\nconst AndThenProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"AndThen\"\n});\nconst makeAndThen = (first, second) => {\n const o = Object.create(AndThenProto);\n o.first = first;\n o.second = second;\n return o;\n};\nconst AddServiceProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"AddService\"\n});\nconst makeAddService = (key, service) => {\n const o = Object.create(AddServiceProto);\n o.key = key;\n o.service = service;\n return o;\n};\nconst RemoveServiceProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"RemoveService\"\n});\nconst makeRemoveService = key => {\n const o = Object.create(RemoveServiceProto);\n o.key = key;\n return o;\n};\nconst UpdateServiceProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"UpdateService\"\n});\nconst makeUpdateService = (key, update) => {\n const o = Object.create(UpdateServiceProto);\n o.key = key;\n o.update = update;\n return o;\n};\n/** @internal */\nexport const diff = (oldValue, newValue) => {\n const missingServices = new Map(oldValue.unsafeMap);\n let patch = empty();\n for (const [tag, newService] of newValue.unsafeMap.entries()) {\n if (missingServices.has(tag)) {\n const old = missingServices.get(tag);\n missingServices.delete(tag);\n if (!Equal.equals(old, newService)) {\n patch = combine(makeUpdateService(tag, () => newService))(patch);\n }\n } else {\n missingServices.delete(tag);\n patch = combine(makeAddService(tag, newService))(patch);\n }\n }\n for (const [tag] of missingServices.entries()) {\n patch = combine(makeRemoveService(tag))(patch);\n }\n return patch;\n};\n/** @internal */\nexport const combine = /*#__PURE__*/Dual.dual(2, (self, that) => makeAndThen(self, that));\n/** @internal */\nexport const patch = /*#__PURE__*/Dual.dual(2, (self, context) => {\n if (self._tag === \"Empty\") {\n return context;\n }\n let wasServiceUpdated = false;\n let patches = Chunk.of(self);\n const updatedContext = new Map(context.unsafeMap);\n while (Chunk.isNonEmpty(patches)) {\n const head = Chunk.headNonEmpty(patches);\n const tail = Chunk.tailNonEmpty(patches);\n switch (head._tag) {\n case \"Empty\":\n {\n patches = tail;\n break;\n }\n case \"AddService\":\n {\n updatedContext.set(head.key, head.service);\n patches = tail;\n break;\n }\n case \"AndThen\":\n {\n patches = Chunk.prepend(Chunk.prepend(tail, head.second), head.first);\n break;\n }\n case \"RemoveService\":\n {\n updatedContext.delete(head.key);\n patches = tail;\n break;\n }\n case \"UpdateService\":\n {\n updatedContext.set(head.key, head.update(updatedContext.get(head.key)));\n wasServiceUpdated = true;\n patches = tail;\n break;\n }\n }\n }\n if (!wasServiceUpdated) {\n return makeContext(updatedContext);\n }\n const map = new Map();\n for (const [tag] of context.unsafeMap) {\n if (updatedContext.has(tag)) {\n map.set(tag, updatedContext.get(tag));\n updatedContext.delete(tag);\n }\n }\n for (const [tag, s] of updatedContext) {\n map.set(tag, s);\n }\n return makeContext(map);\n});\n//# sourceMappingURL=contextPatch.js.map","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","import { BaseError } from '../../errors.js';\nexport class InvalidParenthesisError extends BaseError {\n constructor({ current, depth }) {\n super('Unbalanced parentheses.', {\n metaMessages: [\n `\"${current.trim()}\" has too many ${depth > 0 ? 'opening' : 'closing'} parentheses.`,\n ],\n details: `Depth \"${depth}\"`,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidParenthesisError'\n });\n }\n}\n//# sourceMappingURL=splitParameters.js.map","/**\n * Gets {@link parameterCache} cache key namespaced by {@link type} and {@link structs}. This prevents parameters from being accessible to types that don't allow them (e.g. `string indexed foo` not allowed outside of `type: 'event'`) and ensures different struct definitions with the same name are cached separately.\n * @param param ABI parameter string\n * @param type ABI parameter type\n * @param structs Struct definitions to include in cache key\n * @returns Cache key for {@link parameterCache}\n */\nexport function getParameterCacheKey(param, type, structs) {\n let structKey = '';\n if (structs)\n for (const struct of Object.entries(structs)) {\n if (!struct)\n continue;\n let propertyKey = '';\n for (const property of struct[1]) {\n propertyKey += `[${property.type}${property.name ? `:${property.name}` : ''}]`;\n }\n structKey += `(${struct[0]}{${propertyKey}})`;\n }\n if (type)\n return `${type}:${param}${structKey}`;\n return `${param}${structKey}`;\n}\n/**\n * Basic cache seeded with common ABI parameter strings.\n *\n * **Note: When seeding more parameters, make sure you benchmark performance. The current number is the ideal balance between performance and having an already existing cache.**\n */\nexport const parameterCache = new Map([\n // Unnamed\n ['address', { type: 'address' }],\n ['bool', { type: 'bool' }],\n ['bytes', { type: 'bytes' }],\n ['bytes32', { type: 'bytes32' }],\n ['int', { type: 'int256' }],\n ['int256', { type: 'int256' }],\n ['string', { type: 'string' }],\n ['uint', { type: 'uint256' }],\n ['uint8', { type: 'uint8' }],\n ['uint16', { type: 'uint16' }],\n ['uint24', { type: 'uint24' }],\n ['uint32', { type: 'uint32' }],\n ['uint64', { type: 'uint64' }],\n ['uint96', { type: 'uint96' }],\n ['uint112', { type: 'uint112' }],\n ['uint160', { type: 'uint160' }],\n ['uint192', { type: 'uint192' }],\n ['uint256', { type: 'uint256' }],\n // Named\n ['address owner', { type: 'address', name: 'owner' }],\n ['address to', { type: 'address', name: 'to' }],\n ['bool approved', { type: 'bool', name: 'approved' }],\n ['bytes _data', { type: 'bytes', name: '_data' }],\n ['bytes data', { type: 'bytes', name: 'data' }],\n ['bytes signature', { type: 'bytes', name: 'signature' }],\n ['bytes32 hash', { type: 'bytes32', name: 'hash' }],\n ['bytes32 r', { type: 'bytes32', name: 'r' }],\n ['bytes32 root', { type: 'bytes32', name: 'root' }],\n ['bytes32 s', { type: 'bytes32', name: 's' }],\n ['string name', { type: 'string', name: 'name' }],\n ['string symbol', { type: 'string', name: 'symbol' }],\n ['string tokenURI', { type: 'string', name: 'tokenURI' }],\n ['uint tokenId', { type: 'uint256', name: 'tokenId' }],\n ['uint8 v', { type: 'uint8', name: 'v' }],\n ['uint256 balance', { type: 'uint256', name: 'balance' }],\n ['uint256 tokenId', { type: 'uint256', name: 'tokenId' }],\n ['uint256 value', { type: 'uint256', name: 'value' }],\n // Indexed\n [\n 'event:address indexed from',\n { type: 'address', name: 'from', indexed: true },\n ],\n ['event:address indexed to', { type: 'address', name: 'to', indexed: true }],\n [\n 'event:uint indexed tokenId',\n { type: 'uint256', name: 'tokenId', indexed: true },\n ],\n [\n 'event:uint256 indexed tokenId',\n { type: 'uint256', name: 'tokenId', indexed: true },\n ],\n]);\n//# sourceMappingURL=cache.js.map","import { bytesRegex, execTyped, integerRegex, isTupleRegex, } from '../../regex.js';\nimport { UnknownSolidityTypeError } from '../errors/abiItem.js';\nimport { InvalidFunctionModifierError, InvalidModifierError, InvalidParameterError, SolidityProtectedKeywordError, } from '../errors/abiParameter.js';\nimport { InvalidSignatureError, UnknownSignatureError, } from '../errors/signature.js';\nimport { InvalidParenthesisError } from '../errors/splitParameters.js';\nimport { getParameterCacheKey, parameterCache } from './cache.js';\nimport { eventModifiers, execConstructorSignature, execErrorSignature, execEventSignature, execFallbackSignature, execFunctionSignature, functionModifiers, isConstructorSignature, isErrorSignature, isEventSignature, isFallbackSignature, isFunctionSignature, isReceiveSignature, } from './signatures.js';\nexport function parseSignature(signature, structs = {}) {\n if (isFunctionSignature(signature))\n return parseFunctionSignature(signature, structs);\n if (isEventSignature(signature))\n return parseEventSignature(signature, structs);\n if (isErrorSignature(signature))\n return parseErrorSignature(signature, structs);\n if (isConstructorSignature(signature))\n return parseConstructorSignature(signature, structs);\n if (isFallbackSignature(signature))\n return parseFallbackSignature(signature);\n if (isReceiveSignature(signature))\n return {\n type: 'receive',\n stateMutability: 'payable',\n };\n throw new UnknownSignatureError({ signature });\n}\nexport function parseFunctionSignature(signature, structs = {}) {\n const match = execFunctionSignature(signature);\n if (!match)\n throw new InvalidSignatureError({ signature, type: 'function' });\n const inputParams = splitParameters(match.parameters);\n const inputs = [];\n const inputLength = inputParams.length;\n for (let i = 0; i < inputLength; i++) {\n inputs.push(parseAbiParameter(inputParams[i], {\n modifiers: functionModifiers,\n structs,\n type: 'function',\n }));\n }\n const outputs = [];\n if (match.returns) {\n const outputParams = splitParameters(match.returns);\n const outputLength = outputParams.length;\n for (let i = 0; i < outputLength; i++) {\n outputs.push(parseAbiParameter(outputParams[i], {\n modifiers: functionModifiers,\n structs,\n type: 'function',\n }));\n }\n }\n return {\n name: match.name,\n type: 'function',\n stateMutability: match.stateMutability ?? 'nonpayable',\n inputs,\n outputs,\n };\n}\nexport function parseEventSignature(signature, structs = {}) {\n const match = execEventSignature(signature);\n if (!match)\n throw new InvalidSignatureError({ signature, type: 'event' });\n const params = splitParameters(match.parameters);\n const abiParameters = [];\n const length = params.length;\n for (let i = 0; i < length; i++)\n abiParameters.push(parseAbiParameter(params[i], {\n modifiers: eventModifiers,\n structs,\n type: 'event',\n }));\n return { name: match.name, type: 'event', inputs: abiParameters };\n}\nexport function parseErrorSignature(signature, structs = {}) {\n const match = execErrorSignature(signature);\n if (!match)\n throw new InvalidSignatureError({ signature, type: 'error' });\n const params = splitParameters(match.parameters);\n const abiParameters = [];\n const length = params.length;\n for (let i = 0; i < length; i++)\n abiParameters.push(parseAbiParameter(params[i], { structs, type: 'error' }));\n return { name: match.name, type: 'error', inputs: abiParameters };\n}\nexport function parseConstructorSignature(signature, structs = {}) {\n const match = execConstructorSignature(signature);\n if (!match)\n throw new InvalidSignatureError({ signature, type: 'constructor' });\n const params = splitParameters(match.parameters);\n const abiParameters = [];\n const length = params.length;\n for (let i = 0; i < length; i++)\n abiParameters.push(parseAbiParameter(params[i], { structs, type: 'constructor' }));\n return {\n type: 'constructor',\n stateMutability: match.stateMutability ?? 'nonpayable',\n inputs: abiParameters,\n };\n}\nexport function parseFallbackSignature(signature) {\n const match = execFallbackSignature(signature);\n if (!match)\n throw new InvalidSignatureError({ signature, type: 'fallback' });\n return {\n type: 'fallback',\n stateMutability: match.stateMutability ?? 'nonpayable',\n };\n}\nconst abiParameterWithoutTupleRegex = /^(?[a-zA-Z$_][a-zA-Z0-9$_]*(?:\\spayable)?)(?(?:\\[\\d*?\\])+?)?(?:\\s(?calldata|indexed|memory|storage{1}))?(?:\\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/;\nconst abiParameterWithTupleRegex = /^\\((?.+?)\\)(?(?:\\[\\d*?\\])+?)?(?:\\s(?calldata|indexed|memory|storage{1}))?(?:\\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/;\nconst dynamicIntegerRegex = /^u?int$/;\nexport function parseAbiParameter(param, options) {\n // optional namespace cache by `type`\n const parameterCacheKey = getParameterCacheKey(param, options?.type, options?.structs);\n if (parameterCache.has(parameterCacheKey))\n return parameterCache.get(parameterCacheKey);\n const isTuple = isTupleRegex.test(param);\n const match = execTyped(isTuple ? abiParameterWithTupleRegex : abiParameterWithoutTupleRegex, param);\n if (!match)\n throw new InvalidParameterError({ param });\n if (match.name && isSolidityKeyword(match.name))\n throw new SolidityProtectedKeywordError({ param, name: match.name });\n const name = match.name ? { name: match.name } : {};\n const indexed = match.modifier === 'indexed' ? { indexed: true } : {};\n const structs = options?.structs ?? {};\n let type;\n let components = {};\n if (isTuple) {\n type = 'tuple';\n const params = splitParameters(match.type);\n const components_ = [];\n const length = params.length;\n for (let i = 0; i < length; i++) {\n // remove `modifiers` from `options` to prevent from being added to tuple components\n components_.push(parseAbiParameter(params[i], { structs }));\n }\n components = { components: components_ };\n }\n else if (match.type in structs) {\n type = 'tuple';\n components = { components: structs[match.type] };\n }\n else if (dynamicIntegerRegex.test(match.type)) {\n type = `${match.type}256`;\n }\n else if (match.type === 'address payable') {\n type = 'address';\n }\n else {\n type = match.type;\n if (!(options?.type === 'struct') && !isSolidityType(type))\n throw new UnknownSolidityTypeError({ type });\n }\n if (match.modifier) {\n // Check if modifier exists, but is not allowed (e.g. `indexed` in `functionModifiers`)\n if (!options?.modifiers?.has?.(match.modifier))\n throw new InvalidModifierError({\n param,\n type: options?.type,\n modifier: match.modifier,\n });\n // Check if resolved `type` is valid if there is a function modifier\n if (functionModifiers.has(match.modifier) &&\n !isValidDataLocation(type, !!match.array))\n throw new InvalidFunctionModifierError({\n param,\n type: options?.type,\n modifier: match.modifier,\n });\n }\n const abiParameter = {\n type: `${type}${match.array ?? ''}`,\n ...name,\n ...indexed,\n ...components,\n };\n parameterCache.set(parameterCacheKey, abiParameter);\n return abiParameter;\n}\n// s/o latika for this\nexport function splitParameters(params, result = [], current = '', depth = 0) {\n const length = params.trim().length;\n // biome-ignore lint/correctness/noUnreachable: recursive\n for (let i = 0; i < length; i++) {\n const char = params[i];\n const tail = params.slice(i + 1);\n switch (char) {\n case ',':\n return depth === 0\n ? splitParameters(tail, [...result, current.trim()])\n : splitParameters(tail, result, `${current}${char}`, depth);\n case '(':\n return splitParameters(tail, result, `${current}${char}`, depth + 1);\n case ')':\n return splitParameters(tail, result, `${current}${char}`, depth - 1);\n default:\n return splitParameters(tail, result, `${current}${char}`, depth);\n }\n }\n if (current === '')\n return result;\n if (depth !== 0)\n throw new InvalidParenthesisError({ current, depth });\n result.push(current.trim());\n return result;\n}\nexport function isSolidityType(type) {\n return (type === 'address' ||\n type === 'bool' ||\n type === 'function' ||\n type === 'string' ||\n bytesRegex.test(type) ||\n integerRegex.test(type));\n}\nconst protectedKeywordsRegex = /^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/;\n/** @internal */\nexport function isSolidityKeyword(name) {\n return (name === 'address' ||\n name === 'bool' ||\n name === 'function' ||\n name === 'string' ||\n name === 'tuple' ||\n bytesRegex.test(name) ||\n integerRegex.test(name) ||\n protectedKeywordsRegex.test(name));\n}\n/** @internal */\nexport function isValidDataLocation(type, isArray) {\n return isArray || type === 'bytes' || type === 'string' || type === 'tuple';\n}\n//# sourceMappingURL=utils.js.map","// Implementation forked and adapted from https://github.com/MetaMask/eth-sig-util/blob/main/src/sign-typed-data.ts\nimport { encodeAbiParameters, } from '../abi/encodeAbiParameters.js';\nimport { concat } from '../data/concat.js';\nimport { toHex } from '../encoding/toHex.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { getTypesForEIP712Domain, validateTypedData, } from '../typedData.js';\nexport function hashTypedData(parameters) {\n const { domain = {}, message, primaryType, } = parameters;\n const types = {\n EIP712Domain: getTypesForEIP712Domain({ domain }),\n ...parameters.types,\n };\n // Need to do a runtime validation check on addresses, byte ranges, integer ranges, etc\n // as we can't statically check this with TypeScript.\n validateTypedData({\n domain,\n message,\n primaryType,\n types,\n });\n const parts = ['0x1901'];\n if (domain)\n parts.push(hashDomain({\n domain,\n types: types,\n }));\n if (primaryType !== 'EIP712Domain')\n parts.push(hashStruct({\n data: message,\n primaryType,\n types: types,\n }));\n return keccak256(concat(parts));\n}\nexport function hashDomain({ domain, types, }) {\n return hashStruct({\n data: domain,\n primaryType: 'EIP712Domain',\n types: types,\n });\n}\nexport function hashStruct({ data, primaryType, types, }) {\n const encoded = encodeData({\n data: data,\n primaryType,\n types: types,\n });\n return keccak256(encoded);\n}\nfunction encodeData({ data, primaryType, types, }) {\n const encodedTypes = [{ type: 'bytes32' }];\n const encodedValues = [hashType({ primaryType, types })];\n for (const field of types[primaryType]) {\n const [type, value] = encodeField({\n types,\n name: field.name,\n type: field.type,\n value: data[field.name],\n });\n encodedTypes.push(type);\n encodedValues.push(value);\n }\n return encodeAbiParameters(encodedTypes, encodedValues);\n}\nfunction hashType({ primaryType, types, }) {\n const encodedHashType = toHex(encodeType({ primaryType, types }));\n return keccak256(encodedHashType);\n}\nexport function encodeType({ primaryType, types, }) {\n let result = '';\n const unsortedDeps = findTypeDependencies({ primaryType, types });\n unsortedDeps.delete(primaryType);\n const deps = [primaryType, ...Array.from(unsortedDeps).sort()];\n for (const type of deps) {\n result += `${type}(${types[type]\n .map(({ name, type: t }) => `${t} ${name}`)\n .join(',')})`;\n }\n return result;\n}\nfunction findTypeDependencies({ primaryType: primaryType_, types, }, results = new Set()) {\n const match = primaryType_.match(/^\\w*/u);\n const primaryType = match?.[0];\n if (results.has(primaryType) || types[primaryType] === undefined) {\n return results;\n }\n results.add(primaryType);\n for (const field of types[primaryType]) {\n findTypeDependencies({ primaryType: field.type, types }, results);\n }\n return results;\n}\nfunction encodeField({ types, name, type, value, }) {\n if (types[type] !== undefined) {\n return [\n { type: 'bytes32' },\n keccak256(encodeData({ data: value, primaryType: type, types })),\n ];\n }\n if (type === 'bytes')\n return [{ type: 'bytes32' }, keccak256(value)];\n if (type === 'string')\n return [{ type: 'bytes32' }, keccak256(toHex(value))];\n if (type.lastIndexOf(']') === type.length - 1) {\n const parsedType = type.slice(0, type.lastIndexOf('['));\n const typeValuePairs = value.map((item) => encodeField({\n name,\n type: parsedType,\n types,\n value: item,\n }));\n return [\n { type: 'bytes32' },\n keccak256(encodeAbiParameters(typeValuePairs.map(([t]) => t), typeValuePairs.map(([, v]) => v))),\n ];\n }\n return [{ type }, value];\n}\n//# sourceMappingURL=hashTypedData.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/lib/_stream_readable.js');\nStream.Writable = require('readable-stream/lib/_stream_writable.js');\nStream.Duplex = require('readable-stream/lib/_stream_duplex.js');\nStream.Transform = require('readable-stream/lib/_stream_transform.js');\nStream.PassThrough = require('readable-stream/lib/_stream_passthrough.js');\nStream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js')\nStream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js')\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","import { getAction } from '../utils/getAction.js';\nimport { createContractEventFilter, } from './public/createContractEventFilter.js';\nimport { estimateContractGas, } from './public/estimateContractGas.js';\nimport { getContractEvents, } from './public/getContractEvents.js';\nimport { readContract, } from './public/readContract.js';\nimport { simulateContract, } from './public/simulateContract.js';\nimport { watchContractEvent, } from './public/watchContractEvent.js';\nimport { writeContract, } from './wallet/writeContract.js';\n/**\n * Gets type-safe interface for performing contract-related actions with a specific `abi` and `address`.\n *\n * - Docs https://viem.sh/docs/contract/getContract\n *\n * Using Contract Instances can make it easier to work with contracts if you don't want to pass the `abi` and `address` properties every time you perform contract actions, e.g. [`readContract`](https://viem.sh/docs/contract/readContract), [`writeContract`](https://viem.sh/docs/contract/writeContract), [`estimateContractGas`](https://viem.sh/docs/contract/estimateContractGas), etc.\n *\n * @example\n * import { createPublicClient, getContract, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const publicClient = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const contract = getContract({\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi([\n * 'function balanceOf(address owner) view returns (uint256)',\n * 'function ownerOf(uint256 tokenId) view returns (address)',\n * 'function totalSupply() view returns (uint256)',\n * ]),\n * client: publicClient,\n * })\n */\nexport function getContract({ abi, address, client: client_, }) {\n const client = client_;\n const [publicClient, walletClient] = (() => {\n if (!client)\n return [undefined, undefined];\n if ('public' in client && 'wallet' in client)\n return [client.public, client.wallet];\n if ('public' in client)\n return [client.public, undefined];\n if ('wallet' in client)\n return [undefined, client.wallet];\n return [client, client];\n })();\n const hasPublicClient = publicClient !== undefined && publicClient !== null;\n const hasWalletClient = walletClient !== undefined && walletClient !== null;\n const contract = {};\n let hasReadFunction = false;\n let hasWriteFunction = false;\n let hasEvent = false;\n for (const item of abi) {\n if (item.type === 'function')\n if (item.stateMutability === 'view' || item.stateMutability === 'pure')\n hasReadFunction = true;\n else\n hasWriteFunction = true;\n else if (item.type === 'event')\n hasEvent = true;\n // Exit early if all flags are `true`\n if (hasReadFunction && hasWriteFunction && hasEvent)\n break;\n }\n if (hasPublicClient) {\n if (hasReadFunction)\n contract.read = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n return getAction(publicClient, readContract, 'readContract')({\n abi,\n address,\n functionName,\n args,\n ...options,\n });\n };\n },\n });\n if (hasWriteFunction)\n contract.simulate = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n return getAction(publicClient, simulateContract, 'simulateContract')({\n abi,\n address,\n functionName,\n args,\n ...options,\n });\n };\n },\n });\n if (hasEvent) {\n contract.createEventFilter = new Proxy({}, {\n get(_, eventName) {\n return (...parameters) => {\n const abiEvent = abi.find((x) => x.type === 'event' && x.name === eventName);\n const { args, options } = getEventParameters(parameters, abiEvent);\n return getAction(publicClient, createContractEventFilter, 'createContractEventFilter')({\n abi,\n address,\n eventName,\n args,\n ...options,\n });\n };\n },\n });\n contract.getEvents = new Proxy({}, {\n get(_, eventName) {\n return (...parameters) => {\n const abiEvent = abi.find((x) => x.type === 'event' && x.name === eventName);\n const { args, options } = getEventParameters(parameters, abiEvent);\n return getAction(publicClient, getContractEvents, 'getContractEvents')({\n abi,\n address,\n eventName,\n args,\n ...options,\n });\n };\n },\n });\n contract.watchEvent = new Proxy({}, {\n get(_, eventName) {\n return (...parameters) => {\n const abiEvent = abi.find((x) => x.type === 'event' && x.name === eventName);\n const { args, options } = getEventParameters(parameters, abiEvent);\n return getAction(publicClient, watchContractEvent, 'watchContractEvent')({\n abi,\n address,\n eventName,\n args,\n ...options,\n });\n };\n },\n });\n }\n }\n if (hasWalletClient) {\n if (hasWriteFunction)\n contract.write = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n return getAction(walletClient, writeContract, 'writeContract')({\n abi,\n address,\n functionName,\n args,\n ...options,\n });\n };\n },\n });\n }\n if (hasPublicClient || hasWalletClient)\n if (hasWriteFunction)\n contract.estimateGas = new Proxy({}, {\n get(_, functionName) {\n return (...parameters) => {\n const { args, options } = getFunctionParameters(parameters);\n const client = (publicClient ?? walletClient);\n return getAction(client, estimateContractGas, 'estimateContractGas')({\n abi,\n address,\n functionName,\n args,\n ...options,\n account: options.account ??\n walletClient.account,\n });\n };\n },\n });\n contract.address = address;\n contract.abi = abi;\n return contract;\n}\n/**\n * @internal exporting for testing only\n */\nexport function getFunctionParameters(values) {\n const hasArgs = values.length && Array.isArray(values[0]);\n const args = hasArgs ? values[0] : [];\n const options = (hasArgs ? values[1] : values[0]) ?? {};\n return { args, options };\n}\n/**\n * @internal exporting for testing only\n */\nexport function getEventParameters(values, abiEvent) {\n let hasArgs = false;\n // If first item is array, must be `args`\n if (Array.isArray(values[0]))\n hasArgs = true;\n // Check if first item is `args` or `options`\n else if (values.length === 1) {\n // if event has indexed inputs, must have `args`\n hasArgs = abiEvent.inputs.some((x) => x.indexed);\n // If there are two items in array, must have `args`\n }\n else if (values.length === 2) {\n hasArgs = true;\n }\n const args = hasArgs ? values[0] : undefined;\n const options = (hasArgs ? values[1] : values[0]) ?? {};\n return { args, options };\n}\n//# sourceMappingURL=getContract.js.map","var constants = require('../constants');\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = constants._reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = constants._reverse(exports.tag);\n","export const maxInt8 = 2n ** (8n - 1n) - 1n;\nexport const maxInt16 = 2n ** (16n - 1n) - 1n;\nexport const maxInt24 = 2n ** (24n - 1n) - 1n;\nexport const maxInt32 = 2n ** (32n - 1n) - 1n;\nexport const maxInt40 = 2n ** (40n - 1n) - 1n;\nexport const maxInt48 = 2n ** (48n - 1n) - 1n;\nexport const maxInt56 = 2n ** (56n - 1n) - 1n;\nexport const maxInt64 = 2n ** (64n - 1n) - 1n;\nexport const maxInt72 = 2n ** (72n - 1n) - 1n;\nexport const maxInt80 = 2n ** (80n - 1n) - 1n;\nexport const maxInt88 = 2n ** (88n - 1n) - 1n;\nexport const maxInt96 = 2n ** (96n - 1n) - 1n;\nexport const maxInt104 = 2n ** (104n - 1n) - 1n;\nexport const maxInt112 = 2n ** (112n - 1n) - 1n;\nexport const maxInt120 = 2n ** (120n - 1n) - 1n;\nexport const maxInt128 = 2n ** (128n - 1n) - 1n;\nexport const maxInt136 = 2n ** (136n - 1n) - 1n;\nexport const maxInt144 = 2n ** (144n - 1n) - 1n;\nexport const maxInt152 = 2n ** (152n - 1n) - 1n;\nexport const maxInt160 = 2n ** (160n - 1n) - 1n;\nexport const maxInt168 = 2n ** (168n - 1n) - 1n;\nexport const maxInt176 = 2n ** (176n - 1n) - 1n;\nexport const maxInt184 = 2n ** (184n - 1n) - 1n;\nexport const maxInt192 = 2n ** (192n - 1n) - 1n;\nexport const maxInt200 = 2n ** (200n - 1n) - 1n;\nexport const maxInt208 = 2n ** (208n - 1n) - 1n;\nexport const maxInt216 = 2n ** (216n - 1n) - 1n;\nexport const maxInt224 = 2n ** (224n - 1n) - 1n;\nexport const maxInt232 = 2n ** (232n - 1n) - 1n;\nexport const maxInt240 = 2n ** (240n - 1n) - 1n;\nexport const maxInt248 = 2n ** (248n - 1n) - 1n;\nexport const maxInt256 = 2n ** (256n - 1n) - 1n;\nexport const minInt8 = -(2n ** (8n - 1n));\nexport const minInt16 = -(2n ** (16n - 1n));\nexport const minInt24 = -(2n ** (24n - 1n));\nexport const minInt32 = -(2n ** (32n - 1n));\nexport const minInt40 = -(2n ** (40n - 1n));\nexport const minInt48 = -(2n ** (48n - 1n));\nexport const minInt56 = -(2n ** (56n - 1n));\nexport const minInt64 = -(2n ** (64n - 1n));\nexport const minInt72 = -(2n ** (72n - 1n));\nexport const minInt80 = -(2n ** (80n - 1n));\nexport const minInt88 = -(2n ** (88n - 1n));\nexport const minInt96 = -(2n ** (96n - 1n));\nexport const minInt104 = -(2n ** (104n - 1n));\nexport const minInt112 = -(2n ** (112n - 1n));\nexport const minInt120 = -(2n ** (120n - 1n));\nexport const minInt128 = -(2n ** (128n - 1n));\nexport const minInt136 = -(2n ** (136n - 1n));\nexport const minInt144 = -(2n ** (144n - 1n));\nexport const minInt152 = -(2n ** (152n - 1n));\nexport const minInt160 = -(2n ** (160n - 1n));\nexport const minInt168 = -(2n ** (168n - 1n));\nexport const minInt176 = -(2n ** (176n - 1n));\nexport const minInt184 = -(2n ** (184n - 1n));\nexport const minInt192 = -(2n ** (192n - 1n));\nexport const minInt200 = -(2n ** (200n - 1n));\nexport const minInt208 = -(2n ** (208n - 1n));\nexport const minInt216 = -(2n ** (216n - 1n));\nexport const minInt224 = -(2n ** (224n - 1n));\nexport const minInt232 = -(2n ** (232n - 1n));\nexport const minInt240 = -(2n ** (240n - 1n));\nexport const minInt248 = -(2n ** (248n - 1n));\nexport const minInt256 = -(2n ** (256n - 1n));\nexport const maxUint8 = 2n ** 8n - 1n;\nexport const maxUint16 = 2n ** 16n - 1n;\nexport const maxUint24 = 2n ** 24n - 1n;\nexport const maxUint32 = 2n ** 32n - 1n;\nexport const maxUint40 = 2n ** 40n - 1n;\nexport const maxUint48 = 2n ** 48n - 1n;\nexport const maxUint56 = 2n ** 56n - 1n;\nexport const maxUint64 = 2n ** 64n - 1n;\nexport const maxUint72 = 2n ** 72n - 1n;\nexport const maxUint80 = 2n ** 80n - 1n;\nexport const maxUint88 = 2n ** 88n - 1n;\nexport const maxUint96 = 2n ** 96n - 1n;\nexport const maxUint104 = 2n ** 104n - 1n;\nexport const maxUint112 = 2n ** 112n - 1n;\nexport const maxUint120 = 2n ** 120n - 1n;\nexport const maxUint128 = 2n ** 128n - 1n;\nexport const maxUint136 = 2n ** 136n - 1n;\nexport const maxUint144 = 2n ** 144n - 1n;\nexport const maxUint152 = 2n ** 152n - 1n;\nexport const maxUint160 = 2n ** 160n - 1n;\nexport const maxUint168 = 2n ** 168n - 1n;\nexport const maxUint176 = 2n ** 176n - 1n;\nexport const maxUint184 = 2n ** 184n - 1n;\nexport const maxUint192 = 2n ** 192n - 1n;\nexport const maxUint200 = 2n ** 200n - 1n;\nexport const maxUint208 = 2n ** 208n - 1n;\nexport const maxUint216 = 2n ** 216n - 1n;\nexport const maxUint224 = 2n ** 224n - 1n;\nexport const maxUint232 = 2n ** 232n - 1n;\nexport const maxUint240 = 2n ** 240n - 1n;\nexport const maxUint248 = 2n ** 248n - 1n;\nexport const maxUint256 = 2n ** 256n - 1n;\n//# sourceMappingURL=number.js.map","import { version } from './version.js';\nexport class BaseError extends Error {\n constructor(shortMessage, args = {}) {\n const details = args.cause instanceof BaseError\n ? args.cause.details\n : args.cause?.message\n ? args.cause.message\n : args.details;\n const docsPath = args.cause instanceof BaseError\n ? args.cause.docsPath || args.docsPath\n : args.docsPath;\n const message = [\n shortMessage || 'An error occurred.',\n '',\n ...(args.metaMessages ? [...args.metaMessages, ''] : []),\n ...(docsPath ? [`Docs: https://abitype.dev${docsPath}`] : []),\n ...(details ? [`Details: ${details}`] : []),\n `Version: abitype@${version}`,\n ].join('\\n');\n super(message);\n Object.defineProperty(this, \"details\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"docsPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"metaMessages\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"shortMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiTypeError'\n });\n if (args.cause)\n this.cause = args.cause;\n this.details = details;\n this.docsPath = docsPath;\n this.metaMessages = args.metaMessages;\n this.shortMessage = shortMessage;\n }\n}\n//# sourceMappingURL=errors.js.map","import * as Equal from \"../Equal.js\";\nimport * as Hash from \"../Hash.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport { SingleShotGen, YieldWrap } from \"../Utils.js\";\nimport * as OpCodes from \"./opCodes/effect.js\";\nimport * as version from \"./version.js\";\n/** @internal */\nexport const EffectTypeId = /*#__PURE__*/Symbol.for(\"effect/Effect\");\n/** @internal */\nexport const StreamTypeId = /*#__PURE__*/Symbol.for(\"effect/Stream\");\n/** @internal */\nexport const SinkTypeId = /*#__PURE__*/Symbol.for(\"effect/Sink\");\n/** @internal */\nexport const ChannelTypeId = /*#__PURE__*/Symbol.for(\"effect/Channel\");\n/** @internal */\nexport const effectVariance = {\n /* c8 ignore next */\n _R: _ => _,\n /* c8 ignore next */\n _E: _ => _,\n /* c8 ignore next */\n _A: _ => _,\n _V: /*#__PURE__*/version.getCurrentVersion()\n};\nconst sinkVariance = {\n /* c8 ignore next */\n _A: _ => _,\n /* c8 ignore next */\n _In: _ => _,\n /* c8 ignore next */\n _L: _ => _,\n /* c8 ignore next */\n _E: _ => _,\n /* c8 ignore next */\n _R: _ => _\n};\nconst channelVariance = {\n /* c8 ignore next */\n _Env: _ => _,\n /* c8 ignore next */\n _InErr: _ => _,\n /* c8 ignore next */\n _InElem: _ => _,\n /* c8 ignore next */\n _InDone: _ => _,\n /* c8 ignore next */\n _OutErr: _ => _,\n /* c8 ignore next */\n _OutElem: _ => _,\n /* c8 ignore next */\n _OutDone: _ => _\n};\n/** @internal */\nexport const EffectPrototype = {\n [EffectTypeId]: effectVariance,\n [StreamTypeId]: effectVariance,\n [SinkTypeId]: sinkVariance,\n [ChannelTypeId]: channelVariance,\n [Equal.symbol](that) {\n return this === that;\n },\n [Hash.symbol]() {\n return Hash.cached(this, Hash.random(this));\n },\n [Symbol.iterator]() {\n return new SingleShotGen(new YieldWrap(this));\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\n/** @internal */\nexport const StructuralPrototype = {\n [Hash.symbol]() {\n return Hash.cached(this, Hash.structure(this));\n },\n [Equal.symbol](that) {\n const selfKeys = Object.keys(this);\n const thatKeys = Object.keys(that);\n if (selfKeys.length !== thatKeys.length) {\n return false;\n }\n for (const key of selfKeys) {\n if (!(key in that && Equal.equals(this[key], that[key]))) {\n return false;\n }\n }\n return true;\n }\n};\n/** @internal */\nexport const CommitPrototype = {\n ...EffectPrototype,\n _op: OpCodes.OP_COMMIT\n};\n/** @internal */\nexport const StructuralCommitPrototype = {\n ...CommitPrototype,\n ...StructuralPrototype\n};\n/** @internal */\nexport const Base = /*#__PURE__*/function () {\n function Base() {}\n Base.prototype = CommitPrototype;\n return Base;\n}();\n/** @internal */\nexport const StructuralBase = /*#__PURE__*/function () {\n function Base() {}\n Base.prototype = StructuralCommitPrototype;\n return Base;\n}();\n//# sourceMappingURL=effectable.js.map","import { BaseError } from './base.js';\nexport class IntegerOutOfRangeError extends BaseError {\n constructor({ max, min, signed, size, value, }) {\n super(`Number \"${value}\" is not in safe ${size ? `${size * 8}-bit ${signed ? 'signed' : 'unsigned'} ` : ''}integer range ${max ? `(${min} to ${max})` : `(above ${min})`}`, { name: 'IntegerOutOfRangeError' });\n }\n}\nexport class InvalidBytesBooleanError extends BaseError {\n constructor(bytes) {\n super(`Bytes value \"${bytes}\" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`, {\n name: 'InvalidBytesBooleanError',\n });\n }\n}\nexport class InvalidHexBooleanError extends BaseError {\n constructor(hex) {\n super(`Hex value \"${hex}\" is not a valid boolean. The hex value must be \"0x0\" (false) or \"0x1\" (true).`, { name: 'InvalidHexBooleanError' });\n }\n}\nexport class InvalidHexValueError extends BaseError {\n constructor(value) {\n super(`Hex value \"${value}\" is an odd length (${value.length}). It must be an even length.`, { name: 'InvalidHexValueError' });\n }\n}\nexport class SizeOverflowError extends BaseError {\n constructor({ givenSize, maxSize }) {\n super(`Size cannot exceed ${maxSize} bytes. Given size: ${givenSize} bytes.`, { name: 'SizeOverflowError' });\n }\n}\n//# sourceMappingURL=encoding.js.map","import { BaseFeeScalarError, Eip1559FeesNotSupportedError, } from '../../errors/fee.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { internal_estimateMaxPriorityFeePerGas, } from './estimateMaxPriorityFeePerGas.js';\nimport { getBlock } from './getBlock.js';\nimport { getGasPrice } from './getGasPrice.js';\n/**\n * Returns an estimate for the fees per gas (in wei) for a\n * transaction to be likely included in the next block.\n * Defaults to [`chain.fees.estimateFeesPerGas`](/docs/clients/chains#fees-estimatefeespergas) if set.\n *\n * - Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\n *\n * @param client - Client to use\n * @param parameters - {@link EstimateFeesPerGasParameters}\n * @returns An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { estimateFeesPerGas } from 'viem/actions'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const maxPriorityFeePerGas = await estimateFeesPerGas(client)\n * // { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\n */\nexport async function estimateFeesPerGas(client, args) {\n return internal_estimateFeesPerGas(client, args);\n}\nexport async function internal_estimateFeesPerGas(client, args) {\n const { block: block_, chain = client.chain, request, type = 'eip1559', } = args || {};\n const baseFeeMultiplier = await (async () => {\n if (typeof chain?.fees?.baseFeeMultiplier === 'function')\n return chain.fees.baseFeeMultiplier({\n block: block_,\n client,\n request,\n });\n return chain?.fees?.baseFeeMultiplier ?? 1.2;\n })();\n if (baseFeeMultiplier < 1)\n throw new BaseFeeScalarError();\n const decimals = baseFeeMultiplier.toString().split('.')[1]?.length ?? 0;\n const denominator = 10 ** decimals;\n const multiply = (base) => (base * BigInt(Math.ceil(baseFeeMultiplier * denominator))) /\n BigInt(denominator);\n const block = block_\n ? block_\n : await getAction(client, getBlock, 'getBlock')({});\n if (typeof chain?.fees?.estimateFeesPerGas === 'function') {\n const fees = (await chain.fees.estimateFeesPerGas({\n block: block_,\n client,\n multiply,\n request,\n type,\n }));\n if (fees !== null)\n return fees;\n }\n if (type === 'eip1559') {\n if (typeof block.baseFeePerGas !== 'bigint')\n throw new Eip1559FeesNotSupportedError();\n const maxPriorityFeePerGas = typeof request?.maxPriorityFeePerGas === 'bigint'\n ? request.maxPriorityFeePerGas\n : await internal_estimateMaxPriorityFeePerGas(client, {\n block: block,\n chain,\n request,\n });\n const baseFeePerGas = multiply(block.baseFeePerGas);\n const maxFeePerGas = request?.maxFeePerGas ?? baseFeePerGas + maxPriorityFeePerGas;\n return {\n maxFeePerGas,\n maxPriorityFeePerGas,\n };\n }\n const gasPrice = request?.gasPrice ??\n multiply(await getAction(client, getGasPrice, 'getGasPrice')({}));\n return {\n gasPrice,\n };\n}\n//# sourceMappingURL=estimateFeesPerGas.js.map","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","import { equalBytes } from '@noble/curves/abstract/utils';\nimport * as Bytes from './Bytes.js';\nimport * as Errors from './Errors.js';\nimport * as internal_bytes from './internal/bytes.js';\nimport * as internal from './internal/hex.js';\nimport * as Json from './Json.js';\nconst encoder = /*#__PURE__*/ new TextEncoder();\nconst hexes = /*#__PURE__*/ Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));\n/**\n * Asserts if the given value is {@link ox#Hex.Hex}.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.assert('abc')\n * // @error: InvalidHexValueTypeError:\n * // @error: Value `\"abc\"` of type `string` is an invalid hex type.\n * // @error: Hex types must be represented as `\"0x\\${string}\"`.\n * ```\n *\n * @param value - The value to assert.\n * @param options - Options.\n */\nexport function assert(value, options = {}) {\n const { strict = false } = options;\n if (!value)\n throw new InvalidHexTypeError(value);\n if (typeof value !== 'string')\n throw new InvalidHexTypeError(value);\n if (strict) {\n if (!/^0x[0-9a-fA-F]*$/.test(value))\n throw new InvalidHexValueError(value);\n }\n if (!value.startsWith('0x'))\n throw new InvalidHexValueError(value);\n}\n/**\n * Concatenates two or more {@link ox#Hex.Hex}.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.concat('0x123', '0x456')\n * // @log: '0x123456'\n * ```\n *\n * @param values - The {@link ox#Hex.Hex} values to concatenate.\n * @returns The concatenated {@link ox#Hex.Hex} value.\n */\nexport function concat(...values) {\n return `0x${values.reduce((acc, x) => acc + x.replace('0x', ''), '')}`;\n}\n/**\n * Instantiates a {@link ox#Hex.Hex} value from a hex string or {@link ox#Bytes.Bytes} value.\n *\n * :::tip\n *\n * To instantiate from a **Boolean**, **String**, or **Number**, use one of the following:\n *\n * - `Hex.fromBoolean`\n *\n * - `Hex.fromString`\n *\n * - `Hex.fromNumber`\n *\n * :::\n *\n * @example\n * ```ts twoslash\n * import { Bytes, Hex } from 'ox'\n *\n * Hex.from('0x48656c6c6f20576f726c6421')\n * // @log: '0x48656c6c6f20576f726c6421'\n *\n * Hex.from(Bytes.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))\n * // @log: '0x48656c6c6f20576f726c6421'\n * ```\n *\n * @param value - The {@link ox#Bytes.Bytes} value to encode.\n * @returns The encoded {@link ox#Hex.Hex} value.\n */\nexport function from(value) {\n if (value instanceof Uint8Array)\n return fromBytes(value);\n if (Array.isArray(value))\n return fromBytes(new Uint8Array(value));\n return value;\n}\n/**\n * Encodes a boolean into a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.fromBoolean(true)\n * // @log: '0x1'\n *\n * Hex.fromBoolean(false)\n * // @log: '0x0'\n *\n * Hex.fromBoolean(true, { size: 32 })\n * // @log: '0x0000000000000000000000000000000000000000000000000000000000000001'\n * ```\n *\n * @param value - The boolean value to encode.\n * @param options - Options.\n * @returns The encoded {@link ox#Hex.Hex} value.\n */\nexport function fromBoolean(value, options = {}) {\n const hex = `0x${Number(value)}`;\n if (typeof options.size === 'number') {\n internal.assertSize(hex, options.size);\n return padLeft(hex, options.size);\n }\n return hex;\n}\n/**\n * Encodes a {@link ox#Bytes.Bytes} value into a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Bytes, Hex } from 'ox'\n *\n * Hex.fromBytes(Bytes.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))\n * // @log: '0x48656c6c6f20576f726c6421'\n * ```\n *\n * @param value - The {@link ox#Bytes.Bytes} value to encode.\n * @param options - Options.\n * @returns The encoded {@link ox#Hex.Hex} value.\n */\nexport function fromBytes(value, options = {}) {\n let string = '';\n for (let i = 0; i < value.length; i++)\n string += hexes[value[i]];\n const hex = `0x${string}`;\n if (typeof options.size === 'number') {\n internal.assertSize(hex, options.size);\n return padRight(hex, options.size);\n }\n return hex;\n}\n/**\n * Encodes a number or bigint into a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.fromNumber(420)\n * // @log: '0x1a4'\n *\n * Hex.fromNumber(420, { size: 32 })\n * // @log: '0x00000000000000000000000000000000000000000000000000000000000001a4'\n * ```\n *\n * @param value - The number or bigint value to encode.\n * @param options - Options.\n * @returns The encoded {@link ox#Hex.Hex} value.\n */\nexport function fromNumber(value, options = {}) {\n const { signed, size } = options;\n const value_ = BigInt(value);\n let maxValue;\n if (size) {\n if (signed)\n maxValue = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n else\n maxValue = 2n ** (BigInt(size) * 8n) - 1n;\n }\n else if (typeof value === 'number') {\n maxValue = BigInt(Number.MAX_SAFE_INTEGER);\n }\n const minValue = typeof maxValue === 'bigint' && signed ? -maxValue - 1n : 0;\n if ((maxValue && value_ > maxValue) || value_ < minValue) {\n const suffix = typeof value === 'bigint' ? 'n' : '';\n throw new IntegerOutOfRangeError({\n max: maxValue ? `${maxValue}${suffix}` : undefined,\n min: `${minValue}${suffix}`,\n signed,\n size,\n value: `${value}${suffix}`,\n });\n }\n const stringValue = (signed && value_ < 0 ? BigInt.asUintN(size * 8, BigInt(value_)) : value_).toString(16);\n const hex = `0x${stringValue}`;\n if (size)\n return padLeft(hex, size);\n return hex;\n}\n/**\n * Encodes a string into a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n * Hex.fromString('Hello World!')\n * // '0x48656c6c6f20576f726c6421'\n *\n * Hex.fromString('Hello World!', { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n * ```\n *\n * @param value - The string value to encode.\n * @param options - Options.\n * @returns The encoded {@link ox#Hex.Hex} value.\n */\nexport function fromString(value, options = {}) {\n return fromBytes(encoder.encode(value), options);\n}\n/**\n * Checks if two {@link ox#Hex.Hex} values are equal.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.isEqual('0xdeadbeef', '0xdeadbeef')\n * // @log: true\n *\n * Hex.isEqual('0xda', '0xba')\n * // @log: false\n * ```\n *\n * @param hexA - The first {@link ox#Hex.Hex} value.\n * @param hexB - The second {@link ox#Hex.Hex} value.\n * @returns `true` if the two {@link ox#Hex.Hex} values are equal, `false` otherwise.\n */\nexport function isEqual(hexA, hexB) {\n return equalBytes(Bytes.fromHex(hexA), Bytes.fromHex(hexB));\n}\n/**\n * Pads a {@link ox#Hex.Hex} value to the left with zero bytes until it reaches the given `size` (default: 32 bytes).\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.padLeft('0x1234', 4)\n * // @log: '0x00001234'\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to pad.\n * @param size - The size (in bytes) of the output hex value.\n * @returns The padded {@link ox#Hex.Hex} value.\n */\nexport function padLeft(value, size) {\n return internal.pad(value, { dir: 'left', size });\n}\n/**\n * Pads a {@link ox#Hex.Hex} value to the right with zero bytes until it reaches the given `size` (default: 32 bytes).\n *\n * @example\n * ```ts\n * import { Hex } from 'ox'\n *\n * Hex.padRight('0x1234', 4)\n * // @log: '0x12340000'\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to pad.\n * @param size - The size (in bytes) of the output hex value.\n * @returns The padded {@link ox#Hex.Hex} value.\n */\nexport function padRight(value, size) {\n return internal.pad(value, { dir: 'right', size });\n}\n/**\n * Generates a random {@link ox#Hex.Hex} value of the specified length.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * const hex = Hex.random(32)\n * // @log: '0x...'\n * ```\n *\n * @returns Random {@link ox#Hex.Hex} value.\n */\nexport function random(length) {\n return fromBytes(Bytes.random(length));\n}\n/**\n * Returns a section of a {@link ox#Bytes.Bytes} value given a start/end bytes offset.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.slice('0x0123456789', 1, 4)\n * // @log: '0x234567'\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to slice.\n * @param start - The start offset (in bytes).\n * @param end - The end offset (in bytes).\n * @param options - Options.\n * @returns The sliced {@link ox#Hex.Hex} value.\n */\nexport function slice(value, start, end, options = {}) {\n const { strict } = options;\n internal.assertStartOffset(value, start);\n const value_ = `0x${value\n .replace('0x', '')\n .slice((start ?? 0) * 2, (end ?? value.length) * 2)}`;\n if (strict)\n internal.assertEndOffset(value_, start, end);\n return value_;\n}\n/**\n * Retrieves the size of a {@link ox#Hex.Hex} value (in bytes).\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.size('0xdeadbeef')\n * // @log: 4\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to get the size of.\n * @returns The size of the {@link ox#Hex.Hex} value (in bytes).\n */\nexport function size(value) {\n return Math.ceil((value.length - 2) / 2);\n}\n/**\n * Trims leading zeros from a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.trimLeft('0x00000000deadbeef')\n * // @log: '0xdeadbeef'\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to trim.\n * @returns The trimmed {@link ox#Hex.Hex} value.\n */\nexport function trimLeft(value) {\n return internal.trim(value, { dir: 'left' });\n}\n/**\n * Trims trailing zeros from a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.trimRight('0xdeadbeef00000000')\n * // @log: '0xdeadbeef'\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to trim.\n * @returns The trimmed {@link ox#Hex.Hex} value.\n */\nexport function trimRight(value) {\n return internal.trim(value, { dir: 'right' });\n}\n/**\n * Decodes a {@link ox#Hex.Hex} value into a BigInt.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.toBigInt('0x1a4')\n * // @log: 420n\n *\n * Hex.toBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // @log: 420n\n * ```\n *\n * @param hex - The {@link ox#Hex.Hex} value to decode.\n * @param options - Options.\n * @returns The decoded BigInt.\n */\nexport function toBigInt(hex, options = {}) {\n const { signed } = options;\n if (options.size)\n internal.assertSize(hex, options.size);\n const value = BigInt(hex);\n if (!signed)\n return value;\n const size = (hex.length - 2) / 2;\n const max_unsigned = (1n << (BigInt(size) * 8n)) - 1n;\n const max_signed = max_unsigned >> 1n;\n if (value <= max_signed)\n return value;\n return value - max_unsigned - 1n;\n}\n/**\n * Decodes a {@link ox#Hex.Hex} value into a boolean.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.toBoolean('0x01')\n * // @log: true\n *\n * Hex.toBoolean('0x0000000000000000000000000000000000000000000000000000000000000001', { size: 32 })\n * // @log: true\n * ```\n *\n * @param hex - The {@link ox#Hex.Hex} value to decode.\n * @param options - Options.\n * @returns The decoded boolean.\n */\nexport function toBoolean(hex, options = {}) {\n if (options.size)\n internal.assertSize(hex, options.size);\n const hex_ = trimLeft(hex);\n if (hex_ === '0x')\n return false;\n if (hex_ === '0x1')\n return true;\n throw new InvalidHexBooleanError(hex);\n}\n/**\n * Decodes a {@link ox#Hex.Hex} value into a {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * const data = Hex.toBytes('0x48656c6c6f20776f726c6421')\n * // @log: Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n * ```\n *\n * @param hex - The {@link ox#Hex.Hex} value to decode.\n * @param options - Options.\n * @returns The decoded {@link ox#Bytes.Bytes}.\n */\nexport function toBytes(hex, options = {}) {\n return Bytes.fromHex(hex, options);\n}\n/**\n * Decodes a {@link ox#Hex.Hex} value into a number.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.toNumber('0x1a4')\n * // @log: 420\n *\n * Hex.toNumber('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // @log: 420\n * ```\n *\n * @param hex - The {@link ox#Hex.Hex} value to decode.\n * @param options - Options.\n * @returns The decoded number.\n */\nexport function toNumber(hex, options = {}) {\n const { signed, size } = options;\n if (!signed && !size)\n return Number(hex);\n return Number(toBigInt(hex, options));\n}\n/**\n * Decodes a {@link ox#Hex.Hex} value into a string.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.toString('0x48656c6c6f20576f726c6421')\n * // @log: 'Hello world!'\n *\n * Hex.toString('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * })\n * // @log: 'Hello world'\n * ```\n *\n * @param hex - The {@link ox#Hex.Hex} value to decode.\n * @param options - Options.\n * @returns The decoded string.\n */\nexport function toString(hex, options = {}) {\n const { size } = options;\n let bytes = Bytes.fromHex(hex);\n if (size) {\n internal_bytes.assertSize(bytes, size);\n bytes = Bytes.trimRight(bytes);\n }\n return new TextDecoder().decode(bytes);\n}\n/**\n * Checks if the given value is {@link ox#Hex.Hex}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes, Hex } from 'ox'\n *\n * Hex.validate('0xdeadbeef')\n * // @log: true\n *\n * Hex.validate(Bytes.from([1, 2, 3]))\n * // @log: false\n * ```\n *\n * @param value - The value to check.\n * @param options - Options.\n * @returns `true` if the value is a {@link ox#Hex.Hex}, `false` otherwise.\n */\nexport function validate(value, options = {}) {\n const { strict = false } = options;\n try {\n assert(value, { strict });\n return true;\n }\n catch {\n return false;\n }\n}\n/**\n * Thrown when the provided integer is out of range, and cannot be represented as a hex value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.fromNumber(420182738912731283712937129)\n * // @error: Hex.IntegerOutOfRangeError: Number \\`4.2018273891273126e+26\\` is not in safe unsigned integer range (`0` to `9007199254740991`)\n * ```\n */\nexport class IntegerOutOfRangeError extends Errors.BaseError {\n constructor({ max, min, signed, size, value, }) {\n super(`Number \\`${value}\\` is not in safe${size ? ` ${size * 8}-bit` : ''}${signed ? ' signed' : ' unsigned'} integer range ${max ? `(\\`${min}\\` to \\`${max}\\`)` : `(above \\`${min}\\`)`}`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.IntegerOutOfRangeError'\n });\n }\n}\n/**\n * Thrown when the provided hex value cannot be represented as a boolean.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.toBoolean('0xa')\n * // @error: Hex.InvalidHexBooleanError: Hex value `\"0xa\"` is not a valid boolean.\n * // @error: The hex value must be `\"0x0\"` (false) or `\"0x1\"` (true).\n * ```\n */\nexport class InvalidHexBooleanError extends Errors.BaseError {\n constructor(hex) {\n super(`Hex value \\`\"${hex}\"\\` is not a valid boolean.`, {\n metaMessages: [\n 'The hex value must be `\"0x0\"` (false) or `\"0x1\"` (true).',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.InvalidHexBooleanError'\n });\n }\n}\n/**\n * Thrown when the provided value is not a valid hex type.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.assert(1)\n * // @error: Hex.InvalidHexTypeError: Value `1` of type `number` is an invalid hex type.\n * ```\n */\nexport class InvalidHexTypeError extends Errors.BaseError {\n constructor(value) {\n super(`Value \\`${typeof value === 'object' ? Json.stringify(value) : value}\\` of type \\`${typeof value}\\` is an invalid hex type.`, {\n metaMessages: ['Hex types must be represented as `\"0x${string}\"`.'],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.InvalidHexTypeError'\n });\n }\n}\n/**\n * Thrown when the provided hex value is invalid.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.assert('0x0123456789abcdefg')\n * // @error: Hex.InvalidHexValueError: Value `0x0123456789abcdefg` is an invalid hex value.\n * // @error: Hex values must start with `\"0x\"` and contain only hexadecimal characters (0-9, a-f, A-F).\n * ```\n */\nexport class InvalidHexValueError extends Errors.BaseError {\n constructor(value) {\n super(`Value \\`${value}\\` is an invalid hex value.`, {\n metaMessages: [\n 'Hex values must start with `\"0x\"` and contain only hexadecimal characters (0-9, a-f, A-F).',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.InvalidHexValueError'\n });\n }\n}\n/**\n * Thrown when the provided hex value is an odd length.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.fromHex('0xabcde')\n * // @error: Hex.InvalidLengthError: Hex value `\"0xabcde\"` is an odd length (5 nibbles).\n * ```\n */\nexport class InvalidLengthError extends Errors.BaseError {\n constructor(value) {\n super(`Hex value \\`\"${value}\"\\` is an odd length (${value.length - 2} nibbles).`, {\n metaMessages: ['It must be an even length.'],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.InvalidLengthError'\n });\n }\n}\n/**\n * Thrown when the size of the value exceeds the expected max size.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.fromString('Hello World!', { size: 8 })\n * // @error: Hex.SizeOverflowError: Size cannot exceed `8` bytes. Given size: `12` bytes.\n * ```\n */\nexport class SizeOverflowError extends Errors.BaseError {\n constructor({ givenSize, maxSize }) {\n super(`Size cannot exceed \\`${maxSize}\\` bytes. Given size: \\`${givenSize}\\` bytes.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.SizeOverflowError'\n });\n }\n}\n/**\n * Thrown when the slice offset exceeds the bounds of the value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.slice('0x0123456789', 6)\n * // @error: Hex.SliceOffsetOutOfBoundsError: Slice starting at offset `6` is out-of-bounds (size: `5`).\n * ```\n */\nexport class SliceOffsetOutOfBoundsError extends Errors.BaseError {\n constructor({ offset, position, size, }) {\n super(`Slice ${position === 'start' ? 'starting' : 'ending'} at offset \\`${offset}\\` is out-of-bounds (size: \\`${size}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.SliceOffsetOutOfBoundsError'\n });\n }\n}\n/**\n * Thrown when the size of the value exceeds the pad size.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.padLeft('0x1a4e12a45a21323123aaa87a897a897a898a6567a578a867a98778a667a85a875a87a6a787a65a675a6a9', 32)\n * // @error: Hex.SizeExceedsPaddingSizeError: Hex size (`43`) exceeds padding size (`32`).\n * ```\n */\nexport class SizeExceedsPaddingSizeError extends Errors.BaseError {\n constructor({ size, targetSize, type, }) {\n super(`${type.charAt(0).toUpperCase()}${type\n .slice(1)\n .toLowerCase()} size (\\`${size}\\`) exceeds padding size (\\`${targetSize}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.SizeExceedsPaddingSizeError'\n });\n }\n}\n//# sourceMappingURL=Hex.js.map","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","import { hexToBytes } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\n/**\n * Compute commitments from a list of blobs.\n *\n * @example\n * ```ts\n * import { blobsToCommitments, toBlobs } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * ```\n */\nexport function blobsToCommitments(parameters) {\n const { kzg } = parameters;\n const to = parameters.to ?? (typeof parameters.blobs[0] === 'string' ? 'hex' : 'bytes');\n const blobs = (typeof parameters.blobs[0] === 'string'\n ? parameters.blobs.map((x) => hexToBytes(x))\n : parameters.blobs);\n const commitments = [];\n for (const blob of blobs)\n commitments.push(Uint8Array.from(kzg.blobToKzgCommitment(blob)));\n return (to === 'bytes'\n ? commitments\n : commitments.map((x) => bytesToHex(x)));\n}\n//# sourceMappingURL=blobsToCommitments.js.map","import { ChainDoesNotSupportContract, } from '../../errors/chain.js';\nexport function getChainContractAddress({ blockNumber, chain, contract: name, }) {\n const contract = chain?.contracts?.[name];\n if (!contract)\n throw new ChainDoesNotSupportContract({\n chain,\n contract: { name },\n });\n if (blockNumber &&\n contract.blockCreated &&\n contract.blockCreated > blockNumber)\n throw new ChainDoesNotSupportContract({\n blockNumber,\n chain,\n contract: {\n name,\n blockCreated: contract.blockCreated,\n },\n });\n return contract.address;\n}\n//# sourceMappingURL=getChainContractAddress.js.map","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports[\"default\"]=void 0;var _copy=_interopRequireDefault(require(\"../copy\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{\"default\":obj}}var chi=function chi(_ref){var A=_ref.A,C=_ref.C;for(var y=0;y<25;y+=5){for(var x=0;x<5;x++){(0,_copy[\"default\"])(A,y+x)(C,x)}for(var _x=0;_x<5;_x++){var xy=(y+_x)*2;var x1=(_x+1)%5*2;var x2=(_x+2)%5*2;A[xy]^=~C[x1]&C[x2];A[xy+1]^=~C[x1+1]&C[x2+1]}}};var _default=chi;exports[\"default\"]=_default;","import { BaseError } from '../../errors.js';\nexport class CircularReferenceError extends BaseError {\n constructor({ type }) {\n super('Circular reference detected.', {\n metaMessages: [`Struct \"${type}\" is a circular reference.`],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'CircularReferenceError'\n });\n }\n}\n//# sourceMappingURL=struct.js.map","import { execTyped, isTupleRegex } from '../../regex.js';\nimport { UnknownTypeError } from '../errors/abiItem.js';\nimport { InvalidAbiTypeParameterError } from '../errors/abiParameter.js';\nimport { InvalidSignatureError, InvalidStructSignatureError, } from '../errors/signature.js';\nimport { CircularReferenceError } from '../errors/struct.js';\nimport { execStructSignature, isStructSignature } from './signatures.js';\nimport { isSolidityType, parseAbiParameter } from './utils.js';\nexport function parseStructs(signatures) {\n // Create \"shallow\" version of each struct (and filter out non-structs or invalid structs)\n const shallowStructs = {};\n const signaturesLength = signatures.length;\n for (let i = 0; i < signaturesLength; i++) {\n const signature = signatures[i];\n if (!isStructSignature(signature))\n continue;\n const match = execStructSignature(signature);\n if (!match)\n throw new InvalidSignatureError({ signature, type: 'struct' });\n const properties = match.properties.split(';');\n const components = [];\n const propertiesLength = properties.length;\n for (let k = 0; k < propertiesLength; k++) {\n const property = properties[k];\n const trimmed = property.trim();\n if (!trimmed)\n continue;\n const abiParameter = parseAbiParameter(trimmed, {\n type: 'struct',\n });\n components.push(abiParameter);\n }\n if (!components.length)\n throw new InvalidStructSignatureError({ signature });\n shallowStructs[match.name] = components;\n }\n // Resolve nested structs inside each parameter\n const resolvedStructs = {};\n const entries = Object.entries(shallowStructs);\n const entriesLength = entries.length;\n for (let i = 0; i < entriesLength; i++) {\n const [name, parameters] = entries[i];\n resolvedStructs[name] = resolveStructs(parameters, shallowStructs);\n }\n return resolvedStructs;\n}\nconst typeWithoutTupleRegex = /^(?[a-zA-Z$_][a-zA-Z0-9$_]*)(?(?:\\[\\d*?\\])+?)?$/;\nfunction resolveStructs(abiParameters = [], structs = {}, ancestors = new Set()) {\n const components = [];\n const length = abiParameters.length;\n for (let i = 0; i < length; i++) {\n const abiParameter = abiParameters[i];\n const isTuple = isTupleRegex.test(abiParameter.type);\n if (isTuple)\n components.push(abiParameter);\n else {\n const match = execTyped(typeWithoutTupleRegex, abiParameter.type);\n if (!match?.type)\n throw new InvalidAbiTypeParameterError({ abiParameter });\n const { array, type } = match;\n if (type in structs) {\n if (ancestors.has(type))\n throw new CircularReferenceError({ type });\n components.push({\n ...abiParameter,\n type: `tuple${array ?? ''}`,\n components: resolveStructs(structs[type], structs, new Set([...ancestors, type])),\n });\n }\n else {\n if (isSolidityType(type))\n components.push(abiParameter);\n else\n throw new UnknownTypeError({ type });\n }\n }\n }\n return components;\n}\n//# sourceMappingURL=structs.js.map","(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 // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\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 len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n 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 BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n 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.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n this.length = num === 0 ? 1 : this.length;\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is 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 return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","import { gweiUnits } from '../../constants/unit.js';\nimport { parseUnits } from './parseUnits.js';\n/**\n * Converts a string representation of gwei to numerical wei.\n *\n * - Docs: https://viem.sh/docs/utilities/parseGwei\n *\n * @example\n * import { parseGwei } from 'viem'\n *\n * parseGwei('420')\n * // 420000000000n\n */\nexport function parseGwei(ether, unit = 'wei') {\n return parseUnits(ether, gweiUnits[unit]);\n}\n//# sourceMappingURL=parseGwei.js.map","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","import * as Inspectable from \"../../Inspectable.js\";\n/** @internal */\nexport const getKeysForIndexSignature = (input, parameter) => {\n switch (parameter._tag) {\n case \"StringKeyword\":\n case \"TemplateLiteral\":\n return Object.keys(input);\n case \"SymbolKeyword\":\n return Object.getOwnPropertySymbols(input);\n case \"Refinement\":\n return getKeysForIndexSignature(input, parameter.from);\n }\n};\n/** @internal */\nexport const memoizeThunk = f => {\n let done = false;\n let a;\n return () => {\n if (done) {\n return a;\n }\n a = f();\n done = true;\n return a;\n };\n};\n/** @internal */\nexport const isNonEmpty = x => Array.isArray(x);\n/** @internal */\nexport const isSingle = x => !Array.isArray(x);\n/** @internal */\nexport const formatPathKey = key => `[${Inspectable.formatPropertyKey(key)}]`;\n/** @internal */\nexport const formatPath = path => isNonEmpty(path) ? path.map(formatPathKey).join(\"\") : formatPathKey(path);\n//# sourceMappingURL=util.js.map","import { UnknownNodeError } from '../../errors/node.js';\nimport { TransactionExecutionError, } from '../../errors/transaction.js';\nimport { getNodeError, } from './getNodeError.js';\nexport function getTransactionError(err, { docsPath, ...args }) {\n const cause = (() => {\n const cause = getNodeError(err, args);\n if (cause instanceof UnknownNodeError)\n return err;\n return cause;\n })();\n return new TransactionExecutionError(cause, {\n docsPath,\n ...args,\n });\n}\n//# sourceMappingURL=getTransactionError.js.map","import { etherUnits } from '../../constants/unit.js';\nimport { parseUnits } from './parseUnits.js';\n/**\n * Converts a string representation of ether to numerical wei.\n *\n * - Docs: https://viem.sh/docs/utilities/parseEther\n *\n * @example\n * import { parseEther } from 'viem'\n *\n * parseEther('420')\n * // 420000000000000000000n\n */\nexport function parseEther(ether, unit = 'wei') {\n return parseUnits(ether, etherUnits[unit]);\n}\n//# sourceMappingURL=parseEther.js.map","/**\n * Internal Merkle-Damgard hash utils.\n * @module\n */\nimport { Hash, abytes, aexists, aoutput, clean, createView, toBytes } from \"./utils.js\";\n/** Polyfill for Safari 14. https://caniuse.com/mdn-javascript_builtins_dataview_setbiguint64 */\nexport function 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/** Choice: a ? b : c */\nexport function Chi(a, b, c) {\n return (a & b) ^ (~a & c);\n}\n/** Majority function, true if any two inputs is true. */\nexport function Maj(a, b, c) {\n return (a & b) ^ (a & c) ^ (b & c);\n}\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport class HashMD extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n aexists(this);\n data = toBytes(data);\n abytes(data);\n const { view, buffer, blockLen } = this;\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 aexists(this);\n aoutput(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 clean(this.buffer.subarray(pos));\n // we have less than padOffset left in buffer, so we cannot put length in\n // 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.destroyed = destroyed;\n to.finished = finished;\n to.length = length;\n to.pos = pos;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n clone() {\n return this._cloneInto();\n }\n}\n/**\n * Initial SHA-2 state: fractional parts of square roots of first 16 primes 2..53.\n * Check out `test/misc/sha2-gen-iv.js` for recomputation guide.\n */\n/** Initial SHA256 state. Bits 0..32 of frac part of sqrt of primes 2..19 */\nexport const SHA256_IV = /* @__PURE__ */ Uint32Array.from([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,\n]);\n/** Initial SHA224 state. Bits 32..64 of frac part of sqrt of primes 23..53 */\nexport const SHA224_IV = /* @__PURE__ */ Uint32Array.from([\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4,\n]);\n/** Initial SHA384 state. Bits 0..64 of frac part of sqrt of primes 23..53 */\nexport const SHA384_IV = /* @__PURE__ */ Uint32Array.from([\n 0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507, 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511, 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4,\n]);\n/** Initial SHA512 state. Bits 0..64 of frac part of sqrt of primes 2..19 */\nexport const SHA512_IV = /* @__PURE__ */ Uint32Array.from([\n 0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179,\n]);\n//# sourceMappingURL=_md.js.map","/**\n * SHA2 hash function. A.k.a. sha256, sha384, sha512, sha512_224, sha512_256.\n * SHA256 is the fastest hash implementable in JS, even faster than Blake3.\n * Check out [RFC 4634](https://datatracker.ietf.org/doc/html/rfc4634) and\n * [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n */\nimport { Chi, HashMD, Maj, SHA224_IV, SHA256_IV, SHA384_IV, SHA512_IV } from \"./_md.js\";\nimport * as u64 from \"./_u64.js\";\nimport { clean, createHasher, rotr } from \"./utils.js\";\n/**\n * Round constants:\n * First 32 bits of fractional parts of the cube roots of the first 64 primes 2..311)\n */\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ Uint32Array.from([\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/** Reusable temporary buffer. \"W\" comes straight from spec. */\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nexport class SHA256 extends HashMD {\n constructor(outputLen = 32) {\n super(64, outputLen, 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 = SHA256_IV[0] | 0;\n this.B = SHA256_IV[1] | 0;\n this.C = SHA256_IV[2] | 0;\n this.D = SHA256_IV[3] | 0;\n this.E = SHA256_IV[4] | 0;\n this.F = SHA256_IV[5] | 0;\n this.G = SHA256_IV[6] | 0;\n this.H = SHA256_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 clean(SHA256_W);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n clean(this.buffer);\n }\n}\nexport class SHA224 extends SHA256 {\n constructor() {\n super(28);\n this.A = SHA224_IV[0] | 0;\n this.B = SHA224_IV[1] | 0;\n this.C = SHA224_IV[2] | 0;\n this.D = SHA224_IV[3] | 0;\n this.E = SHA224_IV[4] | 0;\n this.F = SHA224_IV[5] | 0;\n this.G = SHA224_IV[6] | 0;\n this.H = SHA224_IV[7] | 0;\n }\n}\n// SHA2-512 is slower than sha256 in js because u64 operations are slow.\n// Round contants\n// First 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409\n// prettier-ignore\nconst K512 = /* @__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))))();\nconst SHA512_Kh = /* @__PURE__ */ (() => K512[0])();\nconst SHA512_Kl = /* @__PURE__ */ (() => K512[1])();\n// Reusable temporary buffers\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\nexport class SHA512 extends HashMD {\n constructor(outputLen = 64) {\n super(128, outputLen, 16, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = SHA512_IV[0] | 0;\n this.Al = SHA512_IV[1] | 0;\n this.Bh = SHA512_IV[2] | 0;\n this.Bl = SHA512_IV[3] | 0;\n this.Ch = SHA512_IV[4] | 0;\n this.Cl = SHA512_IV[5] | 0;\n this.Dh = SHA512_IV[6] | 0;\n this.Dl = SHA512_IV[7] | 0;\n this.Eh = SHA512_IV[8] | 0;\n this.El = SHA512_IV[9] | 0;\n this.Fh = SHA512_IV[10] | 0;\n this.Fl = SHA512_IV[11] | 0;\n this.Gh = SHA512_IV[12] | 0;\n this.Gl = SHA512_IV[13] | 0;\n this.Hh = SHA512_IV[14] | 0;\n this.Hl = SHA512_IV[15] | 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 clean(SHA512_W_H, SHA512_W_L);\n }\n destroy() {\n clean(this.buffer);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nexport class SHA384 extends SHA512 {\n constructor() {\n super(48);\n this.Ah = SHA384_IV[0] | 0;\n this.Al = SHA384_IV[1] | 0;\n this.Bh = SHA384_IV[2] | 0;\n this.Bl = SHA384_IV[3] | 0;\n this.Ch = SHA384_IV[4] | 0;\n this.Cl = SHA384_IV[5] | 0;\n this.Dh = SHA384_IV[6] | 0;\n this.Dl = SHA384_IV[7] | 0;\n this.Eh = SHA384_IV[8] | 0;\n this.El = SHA384_IV[9] | 0;\n this.Fh = SHA384_IV[10] | 0;\n this.Fl = SHA384_IV[11] | 0;\n this.Gh = SHA384_IV[12] | 0;\n this.Gl = SHA384_IV[13] | 0;\n this.Hh = SHA384_IV[14] | 0;\n this.Hl = SHA384_IV[15] | 0;\n }\n}\n/**\n * Truncated SHA512/256 and SHA512/224.\n * SHA512_IV is XORed with 0xa5a5a5a5a5a5a5a5, then used as \"intermediary\" IV of SHA512/t.\n * Then t hashes string to produce result IV.\n * See `test/misc/sha2-gen-iv.js`.\n */\n/** SHA512/224 IV */\nconst T224_IV = /* @__PURE__ */ Uint32Array.from([\n 0x8c3d37c8, 0x19544da2, 0x73e19966, 0x89dcd4d6, 0x1dfab7ae, 0x32ff9c82, 0x679dd514, 0x582f9fcf,\n 0x0f6d2b69, 0x7bd44da8, 0x77e36f73, 0x04c48942, 0x3f9d85a8, 0x6a1d36c8, 0x1112e6ad, 0x91d692a1,\n]);\n/** SHA512/256 IV */\nconst T256_IV = /* @__PURE__ */ Uint32Array.from([\n 0x22312194, 0xfc2bf72c, 0x9f555fa3, 0xc84c64c2, 0x2393b86b, 0x6f53b151, 0x96387719, 0x5940eabd,\n 0x96283ee2, 0xa88effe3, 0xbe5e1e25, 0x53863992, 0x2b0199fc, 0x2c85b8aa, 0x0eb72ddc, 0x81c52ca2,\n]);\nexport class SHA512_224 extends SHA512 {\n constructor() {\n super(28);\n this.Ah = T224_IV[0] | 0;\n this.Al = T224_IV[1] | 0;\n this.Bh = T224_IV[2] | 0;\n this.Bl = T224_IV[3] | 0;\n this.Ch = T224_IV[4] | 0;\n this.Cl = T224_IV[5] | 0;\n this.Dh = T224_IV[6] | 0;\n this.Dl = T224_IV[7] | 0;\n this.Eh = T224_IV[8] | 0;\n this.El = T224_IV[9] | 0;\n this.Fh = T224_IV[10] | 0;\n this.Fl = T224_IV[11] | 0;\n this.Gh = T224_IV[12] | 0;\n this.Gl = T224_IV[13] | 0;\n this.Hh = T224_IV[14] | 0;\n this.Hl = T224_IV[15] | 0;\n }\n}\nexport class SHA512_256 extends SHA512 {\n constructor() {\n super(32);\n this.Ah = T256_IV[0] | 0;\n this.Al = T256_IV[1] | 0;\n this.Bh = T256_IV[2] | 0;\n this.Bl = T256_IV[3] | 0;\n this.Ch = T256_IV[4] | 0;\n this.Cl = T256_IV[5] | 0;\n this.Dh = T256_IV[6] | 0;\n this.Dl = T256_IV[7] | 0;\n this.Eh = T256_IV[8] | 0;\n this.El = T256_IV[9] | 0;\n this.Fh = T256_IV[10] | 0;\n this.Fl = T256_IV[11] | 0;\n this.Gh = T256_IV[12] | 0;\n this.Gl = T256_IV[13] | 0;\n this.Hh = T256_IV[14] | 0;\n this.Hl = T256_IV[15] | 0;\n }\n}\n/**\n * SHA2-256 hash function from RFC 4634.\n *\n * It is the fastest JS hash, even faster than Blake3.\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n */\nexport const sha256 = /* @__PURE__ */ createHasher(() => new SHA256());\n/** SHA2-224 hash function from RFC 4634 */\nexport const sha224 = /* @__PURE__ */ createHasher(() => new SHA224());\n/** SHA2-512 hash function from RFC 4634. */\nexport const sha512 = /* @__PURE__ */ createHasher(() => new SHA512());\n/** SHA2-384 hash function from RFC 4634. */\nexport const sha384 = /* @__PURE__ */ createHasher(() => new SHA384());\n/**\n * SHA2-512/256 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexport const sha512_256 = /* @__PURE__ */ createHasher(() => new SHA512_256());\n/**\n * SHA2-512/224 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexport const sha512_224 = /* @__PURE__ */ createHasher(() => new SHA512_224());\n//# sourceMappingURL=sha2.js.map","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar BN = require('bn.js');\nvar EC = require('elliptic').ec;\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nfunction verify(sig, hash, key, signType, tag) {\n var pub = parseKeys(key);\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n return ecVerify(sig, hash, pub);\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong public key type'); }\n return dsaVerify(sig, hash, pub);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = pub.modulus.byteLength();\n var pad = [1];\n var padNum = 0;\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff);\n padNum += 1;\n }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) {\n pad.push(hash[i]);\n }\n pad = Buffer.from(pad);\n var red = BN.mont(pub.modulus);\n sig = new BN(sig).toRed(red);\n\n sig = sig.redPow(new BN(pub.publicExponent));\n sig = Buffer.from(sig.fromRed().toArray());\n var out = padNum < 8 ? 1 : 0;\n len = Math.min(sig.length, pad.length);\n if (sig.length !== pad.length) { out = 1; }\n\n i = -1;\n while (++i < len) { out |= sig[i] ^ pad[i]; }\n return out === 0;\n}\n\nfunction ecVerify(sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.')); }\n\n var curve = new EC(curveId);\n var pubkey = pub.data.subjectPrivateKey.data;\n\n return curve.verify(hash, sig, pubkey);\n}\n\nfunction dsaVerify(sig, hash, pub) {\n var p = pub.data.p;\n var q = pub.data.q;\n var g = pub.data.g;\n var y = pub.data.pub_key;\n var unpacked = parseKeys.signature.decode(sig, 'der');\n var s = unpacked.s;\n var r = unpacked.r;\n checkValue(s, q);\n checkValue(r, q);\n var montp = BN.mont(p);\n var w = s.invm(q);\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q);\n return v.cmp(r) === 0;\n}\n\nfunction checkValue(b, q) {\n if (b.cmpn(0) <= 0) { throw new Error('invalid sig'); }\n if (b.cmp(q) >= 0) { throw new Error('invalid sig'); }\n}\n\nmodule.exports = verify;\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","import { secp256k1 } from '@noble/curves/secp256k1';\nimport { hexToBigInt } from '../encoding/fromHex.js';\nimport { hexToBytes } from '../encoding/toBytes.js';\n/**\n * @description Converts a signature into hex format.\n *\n * @param signature The signature to convert.\n * @returns The signature in hex format.\n *\n * @example\n * serializeSignature({\n * r: '0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf',\n * s: '0x4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db8',\n * yParity: 1\n * })\n * // \"0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c\"\n */\nexport function serializeSignature({ r, s, to = 'hex', v, yParity, }) {\n const yParity_ = (() => {\n if (yParity === 0 || yParity === 1)\n return yParity;\n if (v && (v === 27n || v === 28n || v >= 35n))\n return v % 2n === 0n ? 1 : 0;\n throw new Error('Invalid `v` or `yParity` value');\n })();\n const signature = `0x${new secp256k1.Signature(hexToBigInt(r), hexToBigInt(s)).toCompactHex()}${yParity_ === 0 ? '1b' : '1c'}`;\n if (to === 'hex')\n return signature;\n return hexToBytes(signature);\n}\n//# sourceMappingURL=serializeSignature.js.map","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","import { BaseError } from './base.js';\nexport class InvalidDecimalNumberError extends BaseError {\n constructor({ value }) {\n super(`Number \\`${value}\\` is not a valid decimal number.`, {\n name: 'InvalidDecimalNumberError',\n });\n }\n}\n//# sourceMappingURL=unit.js.map","import { InvalidDecimalNumberError } from '../../errors/unit.js';\n/**\n * Multiplies a string representation of a number by a given exponent of base 10 (10exponent).\n *\n * - Docs: https://viem.sh/docs/utilities/parseUnits\n *\n * @example\n * import { parseUnits } from 'viem'\n *\n * parseUnits('420', 9)\n * // 420000000000n\n */\nexport function parseUnits(value, decimals) {\n if (!/^(-?)([0-9]*)\\.?([0-9]*)$/.test(value))\n throw new InvalidDecimalNumberError({ value });\n let [integer, fraction = '0'] = value.split('.');\n const negative = integer.startsWith('-');\n if (negative)\n integer = integer.slice(1);\n // trim trailing zeros.\n fraction = fraction.replace(/(0+)$/, '');\n // round off if the fraction is larger than the number of decimals.\n if (decimals === 0) {\n if (Math.round(Number(`.${fraction}`)) === 1)\n integer = `${BigInt(integer) + 1n}`;\n fraction = '';\n }\n else if (fraction.length > decimals) {\n const [left, unit, right] = [\n fraction.slice(0, decimals - 1),\n fraction.slice(decimals - 1, decimals),\n fraction.slice(decimals),\n ];\n const rounded = Math.round(Number(`${unit}.${right}`));\n if (rounded > 9)\n fraction = `${BigInt(left) + BigInt(1)}0`.padStart(left.length + 1, '0');\n else\n fraction = `${left}${rounded}`;\n if (fraction.length > decimals) {\n fraction = fraction.slice(1);\n integer = `${BigInt(integer) + 1n}`;\n }\n fraction = fraction.slice(0, decimals);\n }\n else {\n fraction = fraction.padEnd(decimals, '0');\n }\n return BigInt(`${negative ? '-' : ''}${integer}${fraction}`);\n}\n//# sourceMappingURL=parseUnits.js.map","import { CallExecutionError, } from '../../errors/contract.js';\nimport { UnknownNodeError } from '../../errors/node.js';\nimport { getNodeError, } from './getNodeError.js';\nexport function getCallError(err, { docsPath, ...args }) {\n const cause = (() => {\n const cause = getNodeError(err, args);\n if (cause instanceof UnknownNodeError)\n return err;\n return cause;\n })();\n return new CallExecutionError(cause, {\n docsPath,\n ...args,\n });\n}\n//# sourceMappingURL=getCallError.js.map","/**\n * Retrieves and returns an action from the client (if exists), and falls\n * back to the tree-shakable action.\n *\n * Useful for extracting overridden actions from a client (ie. if a consumer\n * wants to override the `sendTransaction` implementation).\n */\nexport function getAction(client, actionFn, \n// Some minifiers drop `Function.prototype.name`, or replace it with short letters,\n// meaning that `actionFn.name` will not always work. For that case, the consumer\n// needs to pass the name explicitly.\nname) {\n const action_implicit = client[actionFn.name];\n if (typeof action_implicit === 'function')\n return action_implicit;\n const action_explicit = client[name];\n if (typeof action_explicit === 'function')\n return action_explicit;\n return (params) => actionFn(client, params);\n}\n//# sourceMappingURL=getAction.js.map","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md#parameters\n/** Blob limit per transaction. */\nconst blobsPerTransaction = 6;\n/** The number of bytes in a BLS scalar field element. */\nexport const bytesPerFieldElement = 32;\n/** The number of field elements in a blob. */\nexport const fieldElementsPerBlob = 4096;\n/** The number of bytes in a blob. */\nexport const bytesPerBlob = bytesPerFieldElement * fieldElementsPerBlob;\n/** Blob bytes limit per transaction. */\nexport const maxBytesPerTransaction = bytesPerBlob * blobsPerTransaction -\n // terminator byte (0x80).\n 1 -\n // zero byte (0x00) appended to each field element.\n 1 * fieldElementsPerBlob * blobsPerTransaction;\n//# sourceMappingURL=blob.js.map","import { blobsToCommitments, } from './blobsToCommitments.js';\nimport { blobsToProofs } from './blobsToProofs.js';\nimport { toBlobs } from './toBlobs.js';\n/**\n * Transforms arbitrary data (or blobs, commitments, & proofs) into a sidecar array.\n *\n * @example\n * ```ts\n * import { toBlobSidecars, stringToHex } from 'viem'\n *\n * const sidecars = toBlobSidecars({ data: stringToHex('hello world') })\n * ```\n *\n * @example\n * ```ts\n * import {\n * blobsToCommitments,\n * toBlobs,\n * blobsToProofs,\n * toBlobSidecars,\n * stringToHex\n * } from 'viem'\n *\n * const blobs = toBlobs({ data: stringToHex('hello world') })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const proofs = blobsToProofs({ blobs, commitments, kzg })\n *\n * const sidecars = toBlobSidecars({ blobs, commitments, proofs })\n * ```\n */\nexport function toBlobSidecars(parameters) {\n const { data, kzg, to } = parameters;\n const blobs = parameters.blobs ?? toBlobs({ data: data, to });\n const commitments = parameters.commitments ?? blobsToCommitments({ blobs, kzg: kzg, to });\n const proofs = parameters.proofs ?? blobsToProofs({ blobs, commitments, kzg: kzg, to });\n const sidecars = [];\n for (let i = 0; i < blobs.length; i++)\n sidecars.push({\n blob: blobs[i],\n commitment: commitments[i],\n proof: proofs[i],\n });\n return sidecars;\n}\n//# sourceMappingURL=toBlobSidecars.js.map","import { bytesPerBlob, bytesPerFieldElement, fieldElementsPerBlob, maxBytesPerTransaction, } from '../../constants/blob.js';\nimport { BlobSizeTooLargeError, EmptyBlobError, } from '../../errors/blob.js';\nimport { createCursor } from '../cursor.js';\nimport { size } from '../data/size.js';\nimport { hexToBytes } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\n/**\n * Transforms arbitrary data to blobs.\n *\n * @example\n * ```ts\n * import { toBlobs, stringToHex } from 'viem'\n *\n * const blobs = toBlobs({ data: stringToHex('hello world') })\n * ```\n */\nexport function toBlobs(parameters) {\n const to = parameters.to ?? (typeof parameters.data === 'string' ? 'hex' : 'bytes');\n const data = (typeof parameters.data === 'string'\n ? hexToBytes(parameters.data)\n : parameters.data);\n const size_ = size(data);\n if (!size_)\n throw new EmptyBlobError();\n if (size_ > maxBytesPerTransaction)\n throw new BlobSizeTooLargeError({\n maxSize: maxBytesPerTransaction,\n size: size_,\n });\n const blobs = [];\n let active = true;\n let position = 0;\n while (active) {\n const blob = createCursor(new Uint8Array(bytesPerBlob));\n let size = 0;\n while (size < fieldElementsPerBlob) {\n const bytes = data.slice(position, position + (bytesPerFieldElement - 1));\n // Push a zero byte so the field element doesn't overflow the BLS modulus.\n blob.pushByte(0x00);\n // Push the current segment of data bytes.\n blob.pushBytes(bytes);\n // If we detect that the current segment of data bytes is less than 31 bytes,\n // we can stop processing and push a terminator byte to indicate the end of the blob.\n if (bytes.length < 31) {\n blob.pushByte(0x80);\n active = false;\n break;\n }\n size++;\n position += 31;\n }\n blobs.push(blob);\n }\n return (to === 'bytes'\n ? blobs.map((x) => x.bytes)\n : blobs.map((x) => bytesToHex(x.bytes)));\n}\n//# sourceMappingURL=toBlobs.js.map","/**\n * SHA3 (keccak) hash function, based on a new \"Sponge function\" design.\n * Different from older hashes, the internal state is bigger than output size.\n *\n * Check out [FIPS-202](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf),\n * [Website](https://keccak.team/keccak.html),\n * [the differences between SHA-3 and Keccak](https://crypto.stackexchange.com/questions/15727/what-are-the-key-differences-between-the-draft-sha-3-standard-and-the-keccak-sub).\n *\n * Check out `sha3-addons` module for cSHAKE, k12, and others.\n * @module\n */\nimport { rotlBH, rotlBL, rotlSH, rotlSL, split } from \"./_u64.js\";\n// prettier-ignore\nimport { abytes, aexists, anumber, aoutput, clean, createHasher, createXOFer, Hash, swap32IfBE, toBytes, u32 } from \"./utils.js\";\n// No __PURE__ annotations in sha3 header:\n// EVERYTHING is in fact used on every export.\n// Various per round constants calculations\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = BigInt(0x71);\nconst SHA3_PI = [];\nconst SHA3_ROTL = [];\nconst _SHA3_IOTA = [];\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 IOTAS = split(_SHA3_IOTA, true);\nconst SHA3_IOTA_H = IOTAS[0];\nconst SHA3_IOTA_L = IOTAS[1];\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/** `keccakf1600` internal function, additionally allows to adjust round count. */\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 clean(B);\n}\n/** Keccak sponge function. */\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.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n this.enableXOF = false;\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n // Can be passed from user as dkLen\n anumber(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n // 0 < blockLen < 200\n if (!(0 < blockLen && blockLen < 200))\n throw new Error('only keccak-f1600 function is supported');\n this.state = new Uint8Array(200);\n this.state32 = u32(this.state);\n }\n clone() {\n return this._cloneInto();\n }\n keccak() {\n swap32IfBE(this.state32);\n keccakP(this.state32, this.rounds);\n swap32IfBE(this.state32);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n aexists(this);\n data = toBytes(data);\n abytes(data);\n const { blockLen, state } = this;\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 aexists(this, false);\n abytes(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 anumber(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n aoutput(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 clean(this.state);\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) => createHasher(() => new Keccak(blockLen, suffix, outputLen));\n/** SHA3-224 hash function. */\nexport const sha3_224 = /* @__PURE__ */ (() => gen(0x06, 144, 224 / 8))();\n/** SHA3-256 hash function. Different from keccak-256. */\nexport const sha3_256 = /* @__PURE__ */ (() => gen(0x06, 136, 256 / 8))();\n/** SHA3-384 hash function. */\nexport const sha3_384 = /* @__PURE__ */ (() => gen(0x06, 104, 384 / 8))();\n/** SHA3-512 hash function. */\nexport const sha3_512 = /* @__PURE__ */ (() => gen(0x06, 72, 512 / 8))();\n/** keccak-224 hash function. */\nexport const keccak_224 = /* @__PURE__ */ (() => gen(0x01, 144, 224 / 8))();\n/** keccak-256 hash function. Different from SHA3-256. */\nexport const keccak_256 = /* @__PURE__ */ (() => gen(0x01, 136, 256 / 8))();\n/** keccak-384 hash function. */\nexport const keccak_384 = /* @__PURE__ */ (() => gen(0x01, 104, 384 / 8))();\n/** keccak-512 hash function. */\nexport const keccak_512 = /* @__PURE__ */ (() => gen(0x01, 72, 512 / 8))();\nconst genShake = (suffix, blockLen, outputLen) => createXOFer((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\n/** SHAKE128 XOF with 128-bit security. */\nexport const shake128 = /* @__PURE__ */ (() => genShake(0x1f, 168, 128 / 8))();\n/** SHAKE256 XOF with 256-bit security. */\nexport const shake256 = /* @__PURE__ */ (() => genShake(0x1f, 136, 256 / 8))();\n//# sourceMappingURL=sha3.js.map","var encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","/**\n * @since 2.0.0\n */\n/** @internal */\nexport const isNonEmptyArray = self => self.length > 0;\n//# sourceMappingURL=array.js.map","/**\n * This module provides utility functions for working with Iterables in TypeScript.\n *\n * @since 2.0.0\n */\nimport * as E from \"./Either.js\";\nimport * as Equal from \"./Equal.js\";\nimport { dual, identity } from \"./Function.js\";\nimport * as O from \"./Option.js\";\nimport { isBoolean } from \"./Predicate.js\";\nimport * as Tuple from \"./Tuple.js\";\n/**\n * Return a `Iterable` with element `i` initialized with `f(i)`.\n *\n * If the `length` is not specified, the `Iterable` will be infinite.\n *\n * **Note**. `length` is normalized to an integer >= 1.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { makeBy } from \"effect/Iterable\"\n *\n * assert.deepStrictEqual(Array.from(makeBy(n => n * 2, { length: 5 })), [0, 2, 4, 6, 8])\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const makeBy = (f, options) => {\n const max = options?.length !== undefined ? Math.max(1, Math.floor(options.length)) : Infinity;\n return {\n [Symbol.iterator]() {\n let i = 0;\n return {\n next() {\n if (i < max) {\n return {\n value: f(i++),\n done: false\n };\n }\n return {\n done: true,\n value: undefined\n };\n }\n };\n }\n };\n};\n/**\n * Return a `Iterable` containing a range of integers, including both endpoints.\n *\n * If `end` is omitted, the range will not have an upper bound.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { range } from \"effect/Iterable\"\n *\n * assert.deepStrictEqual(Array.from(range(1, 3)), [1, 2, 3])\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const range = (start, end) => {\n if (end === undefined) {\n return makeBy(i => start + i);\n }\n return makeBy(i => start + i, {\n length: start <= end ? end - start + 1 : 1\n });\n};\n/**\n * Return a `Iterable` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to an integer >= 1.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { replicate } from \"effect/Iterable\"\n *\n * assert.deepStrictEqual(Array.from(replicate(\"a\", 3)), [\"a\", \"a\", \"a\"])\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const replicate = /*#__PURE__*/dual(2, (a, n) => makeBy(() => a, {\n length: n\n}));\n/**\n * Takes a record and returns an Iterable of tuples containing its keys and values.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { fromRecord } from \"effect/Iterable\"\n *\n * const x = { a: 1, b: 2, c: 3 }\n * assert.deepStrictEqual(Array.from(fromRecord(x)), [[\"a\", 1], [\"b\", 2], [\"c\", 3]])\n * ```\n *\n * @category conversions\n * @since 2.0.0\n */\nexport const fromRecord = self => ({\n *[Symbol.iterator]() {\n for (const key in self) {\n if (Object.prototype.hasOwnProperty.call(self, key)) {\n yield [key, self[key]];\n }\n }\n }\n});\n/**\n * Prepend an element to the front of an `Iterable`, creating a new `Iterable`.\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const prepend = /*#__PURE__*/dual(2, (self, head) => prependAll(self, [head]));\n/**\n * Prepends the specified prefix iterable to the beginning of the specified iterable.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Iterable } from \"effect\"\n *\n * assert.deepStrictEqual(\n * Array.from(Iterable.prependAll([1, 2], [\"a\", \"b\"])),\n * [\"a\", \"b\", 1, 2]\n * )\n * ```\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const prependAll = /*#__PURE__*/dual(2, (self, that) => appendAll(that, self));\n/**\n * Append an element to the end of an `Iterable`, creating a new `Iterable`.\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const append = /*#__PURE__*/dual(2, (self, last) => appendAll(self, [last]));\n/**\n * Concatenates two iterables, combining their elements.\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const appendAll = /*#__PURE__*/dual(2, (self, that) => ({\n [Symbol.iterator]() {\n const iterA = self[Symbol.iterator]();\n let doneA = false;\n let iterB;\n return {\n next() {\n if (!doneA) {\n const r = iterA.next();\n if (r.done) {\n doneA = true;\n iterB = that[Symbol.iterator]();\n return iterB.next();\n }\n return r;\n }\n return iterB.next();\n }\n };\n }\n}));\n/**\n * Reduce an `Iterable` from the left, keeping all intermediate results instead of only the final result.\n *\n * @category folding\n * @since 2.0.0\n */\nexport const scan = /*#__PURE__*/dual(3, (self, b, f) => ({\n [Symbol.iterator]() {\n let acc = b;\n let iterator;\n function next() {\n if (iterator === undefined) {\n iterator = self[Symbol.iterator]();\n return {\n done: false,\n value: acc\n };\n }\n const result = iterator.next();\n if (result.done) {\n return result;\n }\n acc = f(acc, result.value);\n return {\n done: false,\n value: acc\n };\n }\n return {\n next\n };\n }\n}));\n/**\n * Determine if an `Iterable` is empty\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { isEmpty } from \"effect/Iterable\"\n *\n * assert.deepStrictEqual(isEmpty([]), true);\n * assert.deepStrictEqual(isEmpty([1, 2, 3]), false);\n * ```\n *\n * @category guards\n * @since 2.0.0\n */\nexport const isEmpty = self => {\n const iterator = self[Symbol.iterator]();\n return iterator.next().done === true;\n};\n/**\n * Return the number of elements in a `Iterable`.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const size = self => {\n const iterator = self[Symbol.iterator]();\n let count = 0;\n while (!iterator.next().done) {\n count++;\n }\n return count;\n};\n/**\n * Get the first element of a `Iterable`, or `None` if the `Iterable` is empty.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const head = self => {\n const iterator = self[Symbol.iterator]();\n const result = iterator.next();\n return result.done ? O.none() : O.some(result.value);\n};\n/**\n * Get the first element of a `Iterable`, or throw an error if the `Iterable` is empty.\n *\n * @category getters\n * @since 3.3.0\n */\nexport const unsafeHead = self => {\n const iterator = self[Symbol.iterator]();\n const result = iterator.next();\n if (result.done) throw new Error(\"unsafeHead: empty iterable\");\n return result.value;\n};\n/**\n * Keep only a max number of elements from the start of an `Iterable`, creating a new `Iterable`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const take = /*#__PURE__*/dual(2, (self, n) => ({\n [Symbol.iterator]() {\n let i = 0;\n const iterator = self[Symbol.iterator]();\n return {\n next() {\n if (i < n) {\n i++;\n return iterator.next();\n }\n return {\n done: true,\n value: undefined\n };\n }\n };\n }\n}));\n/**\n * Calculate the longest initial Iterable for which all element satisfy the specified predicate, creating a new `Iterable`.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const takeWhile = /*#__PURE__*/dual(2, (self, predicate) => ({\n [Symbol.iterator]() {\n const iterator = self[Symbol.iterator]();\n let i = 0;\n return {\n next() {\n const result = iterator.next();\n if (result.done || !predicate(result.value, i++)) {\n return {\n done: true,\n value: undefined\n };\n }\n return result;\n }\n };\n }\n}));\n/**\n * Drop a max number of elements from the start of an `Iterable`\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const drop = /*#__PURE__*/dual(2, (self, n) => ({\n [Symbol.iterator]() {\n const iterator = self[Symbol.iterator]();\n let i = 0;\n return {\n next() {\n while (i < n) {\n const result = iterator.next();\n if (result.done) {\n return {\n done: true,\n value: undefined\n };\n }\n i++;\n }\n return iterator.next();\n }\n };\n }\n}));\n/**\n * Returns the first element that satisfies the specified\n * predicate, or `None` if no such element exists.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const findFirst = /*#__PURE__*/dual(2, (self, f) => {\n let i = 0;\n for (const a of self) {\n const o = f(a, i);\n if (isBoolean(o)) {\n if (o) {\n return O.some(a);\n }\n } else {\n if (O.isSome(o)) {\n return o;\n }\n }\n i++;\n }\n return O.none();\n});\n/**\n * Find the last element for which a predicate holds.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const findLast = /*#__PURE__*/dual(2, (self, f) => {\n let i = 0;\n let last = O.none();\n for (const a of self) {\n const o = f(a, i);\n if (isBoolean(o)) {\n if (o) {\n last = O.some(a);\n }\n } else {\n if (O.isSome(o)) {\n last = o;\n }\n }\n i++;\n }\n return last;\n});\n/**\n * Takes two `Iterable`s and returns an `Iterable` of corresponding pairs.\n *\n * @category zipping\n * @since 2.0.0\n */\nexport const zip = /*#__PURE__*/dual(2, (self, that) => zipWith(self, that, Tuple.make));\n/**\n * Apply a function to pairs of elements at the same index in two `Iterable`s, collecting the results. If one\n * input `Iterable` is short, excess elements of the longer `Iterable` are discarded.\n *\n * @category zipping\n * @since 2.0.0\n */\nexport const zipWith = /*#__PURE__*/dual(3, (self, that, f) => ({\n [Symbol.iterator]() {\n const selfIterator = self[Symbol.iterator]();\n const thatIterator = that[Symbol.iterator]();\n return {\n next() {\n const selfResult = selfIterator.next();\n const thatResult = thatIterator.next();\n if (selfResult.done || thatResult.done) {\n return {\n done: true,\n value: undefined\n };\n }\n return {\n done: false,\n value: f(selfResult.value, thatResult.value)\n };\n }\n };\n }\n}));\n/**\n * Places an element in between members of an `Iterable`.\n * If the input is a non-empty array, the result is also a non-empty array.\n *\n * @since 2.0.0\n */\nexport const intersperse = /*#__PURE__*/dual(2, (self, middle) => ({\n [Symbol.iterator]() {\n const iterator = self[Symbol.iterator]();\n let next = iterator.next();\n let emitted = false;\n return {\n next() {\n if (next.done) {\n return next;\n } else if (emitted) {\n emitted = false;\n return {\n done: false,\n value: middle\n };\n }\n emitted = true;\n const result = next;\n next = iterator.next();\n return result;\n }\n };\n }\n}));\n/**\n * Returns a function that checks if an `Iterable` contains a given value using a provided `isEquivalent` function.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const containsWith = isEquivalent => dual(2, (self, a) => {\n for (const i of self) {\n if (isEquivalent(a, i)) {\n return true;\n }\n }\n return false;\n});\nconst _equivalence = /*#__PURE__*/Equal.equivalence();\n/**\n * Returns a function that checks if a `Iterable` contains a given value using the default `Equivalence`.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const contains = /*#__PURE__*/containsWith(_equivalence);\n/**\n * Splits an `Iterable` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of\n * the `Iterable`.\n *\n * @category splitting\n * @since 2.0.0\n */\nexport const chunksOf = /*#__PURE__*/dual(2, (self, n) => {\n const safeN = Math.max(1, Math.floor(n));\n return {\n [Symbol.iterator]() {\n let iterator = self[Symbol.iterator]();\n return {\n next() {\n if (iterator === undefined) {\n return {\n done: true,\n value: undefined\n };\n }\n const chunk = [];\n for (let i = 0; i < safeN; i++) {\n const result = iterator.next();\n if (result.done) {\n iterator = undefined;\n return chunk.length === 0 ? {\n done: true,\n value: undefined\n } : {\n done: false,\n value: chunk\n };\n }\n chunk.push(result.value);\n }\n return {\n done: false,\n value: chunk\n };\n }\n };\n }\n };\n});\n/**\n * Group equal, consecutive elements of an `Iterable` into `NonEmptyArray`s using the provided `isEquivalent` function.\n *\n * @category grouping\n * @since 2.0.0\n */\nexport const groupWith = /*#__PURE__*/dual(2, (self, isEquivalent) => ({\n [Symbol.iterator]() {\n const iterator = self[Symbol.iterator]();\n let nextResult;\n return {\n next() {\n let result;\n if (nextResult !== undefined) {\n if (nextResult.done) {\n return {\n done: true,\n value: undefined\n };\n }\n result = nextResult;\n nextResult = undefined;\n } else {\n result = iterator.next();\n if (result.done) {\n return {\n done: true,\n value: undefined\n };\n }\n }\n const chunk = [result.value];\n while (true) {\n const next = iterator.next();\n if (next.done || !isEquivalent(result.value, next.value)) {\n nextResult = next;\n return {\n done: false,\n value: chunk\n };\n }\n chunk.push(next.value);\n }\n }\n };\n }\n}));\n/**\n * Group equal, consecutive elements of an `Iterable` into `NonEmptyArray`s.\n *\n * @category grouping\n * @since 2.0.0\n */\nexport const group = /*#__PURE__*/groupWith(/*#__PURE__*/Equal.equivalence());\n/**\n * Splits an `Iterable` into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning\n * function on each element, and grouping the results according to values returned\n *\n * @category grouping\n * @since 2.0.0\n */\nexport const groupBy = /*#__PURE__*/dual(2, (self, f) => {\n const out = {};\n for (const a of self) {\n const k = f(a);\n if (Object.prototype.hasOwnProperty.call(out, k)) {\n out[k].push(a);\n } else {\n out[k] = [a];\n }\n }\n return out;\n});\nconst constEmpty = {\n [Symbol.iterator]() {\n return constEmptyIterator;\n }\n};\nconst constEmptyIterator = {\n next() {\n return {\n done: true,\n value: undefined\n };\n }\n};\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport const empty = () => constEmpty;\n/**\n * Constructs a new `Iterable` from the specified value.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const of = a => [a];\n/**\n * @category mapping\n * @since 2.0.0\n */\nexport const map = /*#__PURE__*/dual(2, (self, f) => ({\n [Symbol.iterator]() {\n const iterator = self[Symbol.iterator]();\n let i = 0;\n return {\n next() {\n const result = iterator.next();\n if (result.done) {\n return {\n done: true,\n value: undefined\n };\n }\n return {\n done: false,\n value: f(result.value, i++)\n };\n }\n };\n }\n}));\n/**\n * Applies a function to each element in an Iterable and returns a new Iterable containing the concatenated mapped elements.\n *\n * @category sequencing\n * @since 2.0.0\n */\nexport const flatMap = /*#__PURE__*/dual(2, (self, f) => flatten(map(self, f)));\n/**\n * Flattens an Iterable of Iterables into a single Iterable\n *\n * @category sequencing\n * @since 2.0.0\n */\nexport const flatten = self => ({\n [Symbol.iterator]() {\n const outerIterator = self[Symbol.iterator]();\n let innerIterator;\n function next() {\n if (innerIterator === undefined) {\n const next = outerIterator.next();\n if (next.done) {\n return next;\n }\n innerIterator = next.value[Symbol.iterator]();\n }\n const result = innerIterator.next();\n if (result.done) {\n innerIterator = undefined;\n return next();\n }\n return result;\n }\n return {\n next\n };\n }\n});\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport const filterMap = /*#__PURE__*/dual(2, (self, f) => ({\n [Symbol.iterator]() {\n const iterator = self[Symbol.iterator]();\n let i = 0;\n return {\n next() {\n let result = iterator.next();\n while (!result.done) {\n const b = f(result.value, i++);\n if (O.isSome(b)) {\n return {\n done: false,\n value: b.value\n };\n }\n result = iterator.next();\n }\n return {\n done: true,\n value: undefined\n };\n }\n };\n }\n}));\n/**\n * Transforms all elements of the `Iterable` for as long as the specified function returns some value\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const filterMapWhile = /*#__PURE__*/dual(2, (self, f) => ({\n [Symbol.iterator]() {\n const iterator = self[Symbol.iterator]();\n let i = 0;\n return {\n next() {\n const result = iterator.next();\n if (result.done) {\n return {\n done: true,\n value: undefined\n };\n }\n const b = f(result.value, i++);\n if (O.isSome(b)) {\n return {\n done: false,\n value: b.value\n };\n }\n return {\n done: true,\n value: undefined\n };\n }\n };\n }\n}));\n/**\n * Retrieves the `Some` values from an `Iterable` of `Option`s.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Iterable, Option } from \"effect\"\n *\n * assert.deepStrictEqual(\n * Array.from(Iterable.getSomes([Option.some(1), Option.none(), Option.some(2)])),\n * [1, 2]\n * )\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const getSomes = /*#__PURE__*/filterMap(identity);\n/**\n * Retrieves the `Left` values from an `Iterable` of `Either`s.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Iterable, Either } from \"effect\"\n *\n * assert.deepStrictEqual(\n * Array.from(Iterable.getLefts([Either.right(1), Either.left(\"err\"), Either.right(2)])),\n * [\"err\"]\n * )\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const getLefts = self => filterMap(self, E.getLeft);\n/**\n * Retrieves the `Right` values from an `Iterable` of `Either`s.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Iterable, Either } from \"effect\"\n *\n * assert.deepStrictEqual(\n * Array.from(Iterable.getRights([Either.right(1), Either.left(\"err\"), Either.right(2)])),\n * [1, 2]\n * )\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const getRights = self => filterMap(self, E.getRight);\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport const filter = /*#__PURE__*/dual(2, (self, predicate) => ({\n [Symbol.iterator]() {\n const iterator = self[Symbol.iterator]();\n let i = 0;\n return {\n next() {\n let result = iterator.next();\n while (!result.done) {\n if (predicate(result.value, i++)) {\n return {\n done: false,\n value: result.value\n };\n }\n result = iterator.next();\n }\n return {\n done: true,\n value: undefined\n };\n }\n };\n }\n}));\n/**\n * @category sequencing\n * @since 2.0.0\n */\nexport const flatMapNullable = /*#__PURE__*/dual(2, (self, f) => filterMap(self, a => {\n const b = f(a);\n return b == null ? O.none() : O.some(b);\n}));\n/**\n * Check if a predicate holds true for some `Iterable` element.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const some = /*#__PURE__*/dual(2, (self, predicate) => {\n let i = 0;\n for (const a of self) {\n if (predicate(a, i++)) {\n return true;\n }\n }\n return false;\n});\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport const unfold = (b, f) => ({\n [Symbol.iterator]() {\n let next = b;\n return {\n next() {\n const o = f(next);\n if (O.isNone(o)) {\n return {\n done: true,\n value: undefined\n };\n }\n const [a, b] = o.value;\n next = b;\n return {\n done: false,\n value: a\n };\n }\n };\n }\n});\n/**\n * Iterate over the `Iterable` applying `f`.\n *\n * @since 2.0.0\n */\nexport const forEach = /*#__PURE__*/dual(2, (self, f) => {\n let i = 0;\n for (const a of self) {\n f(a, i++);\n }\n});\n/**\n * @category folding\n * @since 2.0.0\n */\nexport const reduce = /*#__PURE__*/dual(3, (self, b, f) => {\n if (Array.isArray(self)) {\n return self.reduce(f, b);\n }\n let i = 0;\n let result = b;\n for (const n of self) {\n result = f(result, n, i++);\n }\n return result;\n});\n/**\n * Deduplicates adjacent elements that are identical using the provided `isEquivalent` function.\n *\n * @since 2.0.0\n */\nexport const dedupeAdjacentWith = /*#__PURE__*/dual(2, (self, isEquivalent) => ({\n [Symbol.iterator]() {\n const iterator = self[Symbol.iterator]();\n let first = true;\n let last;\n function next() {\n const result = iterator.next();\n if (result.done) {\n return {\n done: true,\n value: undefined\n };\n }\n if (first) {\n first = false;\n last = result.value;\n return result;\n }\n const current = result.value;\n if (isEquivalent(last, current)) {\n return next();\n }\n last = current;\n return result;\n }\n return {\n next\n };\n }\n}));\n/**\n * Deduplicates adjacent elements that are identical.\n *\n * @since 2.0.0\n */\nexport const dedupeAdjacent = /*#__PURE__*/dedupeAdjacentWith(/*#__PURE__*/Equal.equivalence());\n/**\n * Zips this Iterable crosswise with the specified Iterable using the specified combiner.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const cartesianWith = /*#__PURE__*/dual(3, (self, that, f) => flatMap(self, a => map(that, b => f(a, b))));\n/**\n * Zips this Iterable crosswise with the specified Iterable.\n *\n * @since 2.0.0\n * @category elements\n */\nexport const cartesian = /*#__PURE__*/dual(2, (self, that) => cartesianWith(self, that, (a, b) => [a, b]));\n/**\n * Counts all the element of the given iterable that pass the given predicate\n *\n * **Example**\n *\n * ```ts\n * import { Iterable } from \"effect\"\n *\n * const result = Iterable.countBy([1, 2, 3, 4, 5], n => n % 2 === 0)\n * console.log(result) // 2\n * ```\n *\n * @category folding\n * @since 3.16.0\n */\nexport const countBy = /*#__PURE__*/dual(2, (self, f) => {\n let count = 0;\n let i = 0;\n for (const a of self) {\n if (f(a, i)) {\n count++;\n }\n i++;\n }\n return count;\n});\n//# sourceMappingURL=Iterable.js.map","/**\n * This module provides utility functions for working with records in TypeScript.\n *\n * @since 2.0.0\n */\nimport * as E from \"./Either.js\";\nimport * as Equal from \"./Equal.js\";\nimport { dual, identity } from \"./Function.js\";\nimport * as Option from \"./Option.js\";\n/**\n * Creates a new, empty record.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const empty = () => ({});\n/**\n * Determine if a record is empty.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { isEmptyRecord } from \"effect/Record\"\n *\n * assert.deepStrictEqual(isEmptyRecord({}), true);\n * assert.deepStrictEqual(isEmptyRecord({ a: 3 }), false);\n * ```\n *\n * @category guards\n * @since 2.0.0\n */\nexport const isEmptyRecord = self => keys(self).length === 0;\n/**\n * Determine if a record is empty.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { isEmptyReadonlyRecord } from \"effect/Record\"\n *\n * assert.deepStrictEqual(isEmptyReadonlyRecord({}), true);\n * assert.deepStrictEqual(isEmptyReadonlyRecord({ a: 3 }), false);\n * ```\n *\n * @category guards\n * @since 2.0.0\n */\nexport const isEmptyReadonlyRecord = isEmptyRecord;\n/**\n * Takes an iterable and a projection function and returns a record.\n * The projection function maps each value of the iterable to a tuple of a key and a value, which is then added to the resulting record.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { fromIterableWith } from \"effect/Record\"\n *\n * const input = [1, 2, 3, 4]\n *\n * assert.deepStrictEqual(\n * fromIterableWith(input, a => [String(a), a * 2]),\n * { '1': 2, '2': 4, '3': 6, '4': 8 }\n * )\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const fromIterableWith = /*#__PURE__*/dual(2, (self, f) => {\n const out = empty();\n for (const a of self) {\n const [k, b] = f(a);\n out[k] = b;\n }\n return out;\n});\n/**\n * Creates a new record from an iterable, utilizing the provided function to determine the key for each element.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { fromIterableBy } from \"effect/Record\"\n *\n * const users = [\n * { id: \"2\", name: \"name2\" },\n * { id: \"1\", name: \"name1\" }\n * ]\n *\n * assert.deepStrictEqual(\n * fromIterableBy(users, user => user.id),\n * {\n * \"2\": { id: \"2\", name: \"name2\" },\n * \"1\": { id: \"1\", name: \"name1\" }\n * }\n * )\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const fromIterableBy = (items, f) => fromIterableWith(items, a => [f(a), a]);\n/**\n * Builds a record from an iterable of key-value pairs.\n *\n * If there are conflicting keys when using `fromEntries`, the last occurrence of the key/value pair will overwrite the\n * previous ones. So the resulting record will only have the value of the last occurrence of each key.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { fromEntries } from \"effect/Record\"\n *\n * const input: Array<[string, number]> = [[\"a\", 1], [\"b\", 2]]\n *\n * assert.deepStrictEqual(fromEntries(input), { a: 1, b: 2 })\n * ```\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const fromEntries = Object.fromEntries;\n/**\n * Transforms the values of a record into an `Array` with a custom mapping function.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { collect } from \"effect/Record\"\n *\n * const x = { a: 1, b: 2, c: 3 }\n * assert.deepStrictEqual(collect(x, (key, n) => [key, n]), [[\"a\", 1], [\"b\", 2], [\"c\", 3]])\n * ```\n *\n * @category conversions\n * @since 2.0.0\n */\nexport const collect = /*#__PURE__*/dual(2, (self, f) => {\n const out = [];\n for (const key of keys(self)) {\n out.push(f(key, self[key]));\n }\n return out;\n});\n/**\n * Takes a record and returns an array of tuples containing its keys and values.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { toEntries } from \"effect/Record\"\n *\n * const x = { a: 1, b: 2, c: 3 }\n * assert.deepStrictEqual(toEntries(x), [[\"a\", 1], [\"b\", 2], [\"c\", 3]])\n * ```\n *\n * @category conversions\n * @since 2.0.0\n */\nexport const toEntries = /*#__PURE__*/collect((key, value) => [key, value]);\n/**\n * Returns the number of key/value pairs in a record.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { size } from \"effect/Record\";\n *\n * assert.deepStrictEqual(size({ a: \"a\", b: 1, c: true }), 3);\n * ```\n *\n * @since 2.0.0\n */\nexport const size = self => keys(self).length;\n/**\n * Check if a given `key` exists in a record.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { empty, has } from \"effect/Record\"\n *\n * assert.deepStrictEqual(has({ a: 1, b: 2 }, \"a\"), true);\n * assert.deepStrictEqual(has(empty(), \"c\"), false);\n * ```\n *\n * @since 2.0.0\n */\nexport const has = /*#__PURE__*/dual(2, (self, key) => Object.prototype.hasOwnProperty.call(self, key));\n/**\n * Retrieve a value at a particular key from a record, returning it wrapped in an `Option`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record as R, Option } from \"effect\"\n *\n * const person: Record = { name: \"John Doe\", age: 35 }\n *\n * assert.deepStrictEqual(R.get(person, \"name\"), Option.some(\"John Doe\"))\n * assert.deepStrictEqual(R.get(person, \"email\"), Option.none())\n * ```\n *\n * @since 2.0.0\n */\nexport const get = /*#__PURE__*/dual(2, (self, key) => has(self, key) ? Option.some(self[key]) : Option.none());\n/**\n * Apply a function to the element at the specified key, creating a new record.\n * If the key does not exist, the record is returned unchanged.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record as R } from \"effect\"\n *\n * const f = (x: number) => x * 2\n *\n * assert.deepStrictEqual(\n * R.modify({ a: 3 }, 'a', f),\n * { a: 6 }\n * )\n * assert.deepStrictEqual(\n * R.modify({ a: 3 } as Record, 'b', f),\n * { a: 3 }\n * )\n * ```\n *\n * @since 2.0.0\n */\nexport const modify = /*#__PURE__*/dual(3, (self, key, f) => {\n if (!has(self, key)) {\n return {\n ...self\n };\n }\n return {\n ...self,\n [key]: f(self[key])\n };\n});\n/**\n * Apply a function to the element at the specified key, creating a new record,\n * or return `None` if the key doesn't exist.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record as R, Option } from \"effect\"\n *\n * const f = (x: number) => x * 2\n *\n * assert.deepStrictEqual(\n * R.modifyOption({ a: 3 }, 'a', f),\n * Option.some({ a: 6 })\n * )\n * assert.deepStrictEqual(\n * R.modifyOption({ a: 3 } as Record, 'b', f),\n * Option.none()\n * )\n * ```\n *\n * @since 2.0.0\n */\nexport const modifyOption = /*#__PURE__*/dual(3, (self, key, f) => {\n if (!has(self, key)) {\n return Option.none();\n }\n return Option.some({\n ...self,\n [key]: f(self[key])\n });\n});\n/**\n * Replaces a value in the record with the new value passed as parameter.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record, Option } from \"effect\"\n *\n * assert.deepStrictEqual(\n * Record.replaceOption({ a: 1, b: 2, c: 3 }, 'a', 10),\n * Option.some({ a: 10, b: 2, c: 3 })\n * )\n * assert.deepStrictEqual(Record.replaceOption(Record.empty(), 'a', 10), Option.none())\n * ```\n *\n * @since 2.0.0\n */\nexport const replaceOption = /*#__PURE__*/dual(3, (self, key, b) => modifyOption(self, key, () => b));\n/**\n * If the given key exists in the record, returns a new record with the key removed,\n * otherwise returns a copy of the original record.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { remove } from \"effect/Record\"\n *\n * assert.deepStrictEqual(remove({ a: 1, b: 2 }, \"a\"), { b: 2 })\n * ```\n *\n * @since 2.0.0\n */\nexport const remove = /*#__PURE__*/dual(2, (self, key) => {\n if (!has(self, key)) {\n return {\n ...self\n };\n }\n const out = {\n ...self\n };\n delete out[key];\n return out;\n});\n/**\n * Retrieves the value of the property with the given `key` from a record and returns an `Option`\n * of a tuple with the value and the record with the removed property.\n * If the key is not present, returns `O.none`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record as R, Option } from \"effect\"\n *\n * assert.deepStrictEqual(R.pop({ a: 1, b: 2 }, \"a\"), Option.some([1, { b: 2 }]))\n * assert.deepStrictEqual(R.pop({ a: 1, b: 2 } as Record, \"c\"), Option.none())\n * ```\n *\n * @category record\n * @since 2.0.0\n */\nexport const pop = /*#__PURE__*/dual(2, (self, key) => has(self, key) ? Option.some([self[key], remove(self, key)]) : Option.none());\n/**\n * Maps a record into another record by applying a transformation function to each of its values.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { map } from \"effect/Record\"\n *\n * const f = (n: number) => `-${n}`\n *\n * assert.deepStrictEqual(map({ a: 3, b: 5 }, f), { a: \"-3\", b: \"-5\" })\n *\n * const g = (n: number, key: string) => `${key.toUpperCase()}-${n}`\n *\n * assert.deepStrictEqual(map({ a: 3, b: 5 }, g), { a: \"A-3\", b: \"B-5\" })\n * ```\n *\n * @category mapping\n * @since 2.0.0\n */\nexport const map = /*#__PURE__*/dual(2, (self, f) => {\n const out = {\n ...self\n };\n for (const key of keys(self)) {\n out[key] = f(self[key], key);\n }\n return out;\n});\n/**\n * Maps the keys of a `ReadonlyRecord` while preserving the corresponding values.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { mapKeys } from \"effect/Record\"\n *\n * assert.deepStrictEqual(mapKeys({ a: 3, b: 5 }, (key) => key.toUpperCase()), { A: 3, B: 5 })\n * ```\n *\n * @category mapping\n * @since 2.0.0\n */\nexport const mapKeys = /*#__PURE__*/dual(2, (self, f) => {\n const out = {};\n for (const key of keys(self)) {\n const a = self[key];\n out[f(key, a)] = a;\n }\n return out;\n});\n/**\n * Maps entries of a `ReadonlyRecord` using the provided function, allowing modification of both keys and corresponding values.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { mapEntries } from \"effect/Record\"\n *\n * assert.deepStrictEqual(mapEntries({ a: 3, b: 5 }, (a, key) => [key.toUpperCase(), a + 1]), { A: 4, B: 6 })\n * ```\n *\n * @category mapping\n * @since 2.0.0\n */\nexport const mapEntries = /*#__PURE__*/dual(2, (self, f) => {\n const out = {};\n for (const key of keys(self)) {\n const [k, b] = f(self[key], key);\n out[k] = b;\n }\n return out;\n});\n/**\n * Transforms a record into a record by applying the function `f` to each key and value in the original record.\n * If the function returns `Some`, the key-value pair is included in the output record.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record, Option } from \"effect\"\n *\n * const x = { a: 1, b: 2, c: 3 }\n * const f = (a: number, key: string) => a > 2 ? Option.some(a * 2) : Option.none()\n * assert.deepStrictEqual(Record.filterMap(x, f), { c: 6 })\n * ```\n *\n * @since 2.0.0\n */\nexport const filterMap = /*#__PURE__*/dual(2, (self, f) => {\n const out = empty();\n for (const key of keys(self)) {\n const o = f(self[key], key);\n if (Option.isSome(o)) {\n out[key] = o.value;\n }\n }\n return out;\n});\n/**\n * Selects properties from a record whose values match the given predicate.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { filter } from \"effect/Record\"\n *\n * const x = { a: 1, b: 2, c: 3, d: 4 }\n * assert.deepStrictEqual(filter(x, (n) => n > 2), { c: 3, d: 4 })\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const filter = /*#__PURE__*/dual(2, (self, predicate) => {\n const out = empty();\n for (const key of keys(self)) {\n if (predicate(self[key], key)) {\n out[key] = self[key];\n }\n }\n return out;\n});\n/**\n * Given a record with `Option` values, returns a new record containing only the `Some` values, preserving the original keys.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record, Option } from \"effect\"\n *\n * assert.deepStrictEqual(\n * Record.getSomes({ a: Option.some(1), b: Option.none(), c: Option.some(2) }),\n * { a: 1, c: 2 }\n * )\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const getSomes = /*#__PURE__*/filterMap(identity);\n/**\n * Given a record with `Either` values, returns a new record containing only the `Left` values, preserving the original keys.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record, Either } from \"effect\"\n *\n * assert.deepStrictEqual(\n * Record.getLefts({ a: Either.right(1), b: Either.left(\"err\"), c: Either.right(2) }),\n * { b: \"err\" }\n * )\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const getLefts = self => {\n const out = empty();\n for (const key of keys(self)) {\n const value = self[key];\n if (E.isLeft(value)) {\n out[key] = value.left;\n }\n }\n return out;\n};\n/**\n * Given a record with `Either` values, returns a new record containing only the `Right` values, preserving the original keys.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record, Either } from \"effect\"\n *\n * assert.deepStrictEqual(\n * Record.getRights({ a: Either.right(1), b: Either.left(\"err\"), c: Either.right(2) }),\n * { a: 1, c: 2 }\n * )\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const getRights = self => {\n const out = empty();\n for (const key of keys(self)) {\n const value = self[key];\n if (E.isRight(value)) {\n out[key] = value.right;\n }\n }\n return out;\n};\n/**\n * Partitions the elements of a record into two groups: those that match a predicate, and those that don't.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record, Either } from \"effect\"\n *\n * const x = { a: 1, b: 2, c: 3 }\n * const f = (n: number) => (n % 2 === 0 ? Either.right(n) : Either.left(n))\n * assert.deepStrictEqual(Record.partitionMap(x, f), [{ a: 1, c: 3 }, { b: 2}])\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const partitionMap = /*#__PURE__*/dual(2, (self, f) => {\n const left = empty();\n const right = empty();\n for (const key of keys(self)) {\n const e = f(self[key], key);\n if (E.isLeft(e)) {\n left[key] = e.left;\n } else {\n right[key] = e.right;\n }\n }\n return [left, right];\n});\n/**\n * Partitions a record of `Either` values into two separate records,\n * one with the `Left` values and one with the `Right` values.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record, Either } from \"effect\"\n *\n * assert.deepStrictEqual(\n * Record.separate({ a: Either.left(\"e\"), b: Either.right(1) }),\n * [{ a: \"e\" }, { b: 1 }]\n * )\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const separate = /*#__PURE__*/partitionMap(identity);\n/**\n * Partitions a record into two separate records based on the result of a predicate function.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { partition } from \"effect/Record\"\n *\n * assert.deepStrictEqual(\n * partition({ a: 1, b: 3 }, (n) => n > 2),\n * [{ a: 1 }, { b: 3 }]\n * )\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const partition = /*#__PURE__*/dual(2, (self, predicate) => {\n const left = empty();\n const right = empty();\n for (const key of keys(self)) {\n if (predicate(self[key], key)) {\n right[key] = self[key];\n } else {\n left[key] = self[key];\n }\n }\n return [left, right];\n});\n/**\n * Retrieve the keys of a given record as an array.\n *\n * @since 2.0.0\n */\nexport const keys = self => Object.keys(self);\n/**\n * Retrieve the values of a given record as an array.\n *\n * @since 2.0.0\n */\nexport const values = self => collect(self, (_, a) => a);\n/**\n * Add a new key-value pair or update an existing key's value in a record.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { set } from \"effect/Record\"\n *\n * assert.deepStrictEqual(set(\"a\", 5)({ a: 1, b: 2 }), { a: 5, b: 2 });\n * assert.deepStrictEqual(set(\"c\", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 });\n * ```\n *\n * @since 2.0.0\n */\nexport const set = /*#__PURE__*/dual(3, (self, key, value) => {\n return {\n ...self,\n [key]: value\n };\n});\n/**\n * Replace a key's value in a record and return the updated record.\n * If the key does not exist in the record, a copy of the original record is returned.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Record } from \"effect\"\n *\n * assert.deepStrictEqual(Record.replace(\"a\", 3)({ a: 1, b: 2 }), { a: 3, b: 2 });\n * assert.deepStrictEqual(Record.replace(\"c\", 3)({ a: 1, b: 2 }), { a: 1, b: 2 });\n * ```\n *\n * @since 2.0.0\n */\nexport const replace = /*#__PURE__*/dual(3, (self, key, value) => {\n if (has(self, key)) {\n return {\n ...self,\n [key]: value\n };\n }\n return {\n ...self\n };\n});\n/**\n * Check if all the keys and values in one record are also found in another record.\n *\n * @since 2.0.0\n */\nexport const isSubrecordBy = equivalence => dual(2, (self, that) => {\n for (const key of keys(self)) {\n if (!has(that, key) || !equivalence(self[key], that[key])) {\n return false;\n }\n }\n return true;\n});\n/**\n * Check if one record is a subrecord of another, meaning it contains all the keys and values found in the second record.\n * This comparison uses default equality checks (`Equal.equivalence()`).\n *\n * @since 2.0.0\n */\nexport const isSubrecord = /*#__PURE__*/isSubrecordBy(/*#__PURE__*/Equal.equivalence());\n/**\n * Reduce a record to a single value by combining its entries with a specified function.\n *\n * @category folding\n * @since 2.0.0\n */\nexport const reduce = /*#__PURE__*/dual(3, (self, zero, f) => {\n let out = zero;\n for (const key of keys(self)) {\n out = f(out, self[key], key);\n }\n return out;\n});\n/**\n * Check if all entries in a record meet a specific condition.\n *\n * @since 2.0.0\n */\nexport const every = /*#__PURE__*/dual(2, (self, refinement) => {\n for (const key of keys(self)) {\n if (!refinement(self[key], key)) {\n return false;\n }\n }\n return true;\n});\n/**\n * Check if any entry in a record meets a specific condition.\n *\n * @since 2.0.0\n */\nexport const some = /*#__PURE__*/dual(2, (self, predicate) => {\n for (const key of keys(self)) {\n if (predicate(self[key], key)) {\n return true;\n }\n }\n return false;\n});\n/**\n * Merge two records, preserving entries that exist in either of the records.\n *\n * @since 2.0.0\n */\nexport const union = /*#__PURE__*/dual(3, (self, that, combine) => {\n if (isEmptyRecord(self)) {\n return {\n ...that\n };\n }\n if (isEmptyRecord(that)) {\n return {\n ...self\n };\n }\n const out = empty();\n for (const key of keys(self)) {\n if (has(that, key)) {\n out[key] = combine(self[key], that[key]);\n } else {\n out[key] = self[key];\n }\n }\n for (const key of keys(that)) {\n if (!has(out, key)) {\n out[key] = that[key];\n }\n }\n return out;\n});\n/**\n * Merge two records, retaining only the entries that exist in both records.\n *\n * @since 2.0.0\n */\nexport const intersection = /*#__PURE__*/dual(3, (self, that, combine) => {\n const out = empty();\n if (isEmptyRecord(self) || isEmptyRecord(that)) {\n return out;\n }\n for (const key of keys(self)) {\n if (has(that, key)) {\n out[key] = combine(self[key], that[key]);\n }\n }\n return out;\n});\n/**\n * Merge two records, preserving only the entries that are unique to each record.\n *\n * @since 2.0.0\n */\nexport const difference = /*#__PURE__*/dual(2, (self, that) => {\n if (isEmptyRecord(self)) {\n return {\n ...that\n };\n }\n if (isEmptyRecord(that)) {\n return {\n ...self\n };\n }\n const out = {};\n for (const key of keys(self)) {\n if (!has(that, key)) {\n out[key] = self[key];\n }\n }\n for (const key of keys(that)) {\n if (!has(self, key)) {\n out[key] = that[key];\n }\n }\n return out;\n});\n/**\n * Create an `Equivalence` for records using the provided `Equivalence` for values.\n *\n * @category instances\n * @since 2.0.0\n */\nexport const getEquivalence = equivalence => {\n const is = isSubrecordBy(equivalence);\n return (self, that) => is(self, that) && is(that, self);\n};\n/**\n * Create a non-empty record from a single element.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const singleton = (key, value) => ({\n [key]: value\n});\n/**\n * Returns the first entry that satisfies the specified\n * predicate, or `None` if no such entry exists.\n *\n * @example\n * ```ts\n * import { Record, Option } from \"effect\"\n *\n * const record = { a: 1, b: 2, c: 3 }\n * const result = Record.findFirst(record, (value, key) => value > 1 && key !== \"b\")\n * console.log(result) // Option.Some([\"c\", 3])\n * ```\n *\n * @category elements\n * @since 3.14.0\n */\nexport const findFirst = /*#__PURE__*/dual(2, (self, f) => {\n const k = keys(self);\n for (let i = 0; i < k.length; i++) {\n const key = k[i];\n if (f(self[key], key)) {\n return Option.some([key, self[key]]);\n }\n }\n return Option.none();\n});\n//# sourceMappingURL=Record.js.map","/**\n * This module provides utility functions for working with tuples in TypeScript.\n *\n * @since 2.0.0\n */\nimport * as Equivalence from \"./Equivalence.js\";\nimport { dual } from \"./Function.js\";\nimport * as order from \"./Order.js\";\n/**\n * Constructs a new tuple from the provided values.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { make } from \"effect/Tuple\"\n *\n * assert.deepStrictEqual(make(1, 'hello', true), [1, 'hello', true])\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const make = (...elements) => elements;\n/**\n * Return the first element from a tuple with two elements.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { getFirst } from \"effect/Tuple\"\n *\n * assert.deepStrictEqual(getFirst([\"hello\", 42]), \"hello\")\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const getFirst = self => self[0];\n/**\n * Return the second element from a tuple with two elements.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { getSecond } from \"effect/Tuple\"\n *\n * assert.deepStrictEqual(getSecond([\"hello\", 42]), 42)\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const getSecond = self => self[1];\n/**\n * Transforms each element of tuple using the given function, treating tuple homomorphically\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { pipe, Tuple } from \"effect\"\n *\n * const result = pipe(\n * [\"a\", 1, false] as const,\n * Tuple.map((el) => el.toString().toUpperCase())\n * )\n * assert.deepStrictEqual(result, ['A', '1', 'FALSE'])\n * ```\n *\n * @category mapping\n * @since 3.9.0\n */\nexport const map = /*#__PURE__*/dual(2, (self, fn) => self.map(element => fn(element)));\n/**\n * Transforms both elements of a tuple with two elements using the given functions.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { mapBoth } from \"effect/Tuple\"\n *\n * assert.deepStrictEqual(\n * mapBoth([\"hello\", 42], { onFirst: s => s.toUpperCase(), onSecond: n => n.toString() }),\n * [\"HELLO\", \"42\"]\n * )\n * ```\n *\n * @category mapping\n * @since 2.0.0\n */\nexport const mapBoth = /*#__PURE__*/dual(2, (self, {\n onFirst,\n onSecond\n}) => [onFirst(self[0]), onSecond(self[1])]);\n/**\n * Transforms the first component of a tuple with two elements using a given function.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { mapFirst } from \"effect/Tuple\"\n *\n * assert.deepStrictEqual(\n * mapFirst([\"hello\", 42], s => s.toUpperCase()),\n * [\"HELLO\", 42]\n * )\n * ```\n *\n * @category mapping\n * @since 2.0.0\n */\nexport const mapFirst = /*#__PURE__*/dual(2, (self, f) => [f(self[0]), self[1]]);\n/**\n * Transforms the second component of a tuple with two elements using a given function.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { mapSecond } from \"effect/Tuple\"\n *\n * assert.deepStrictEqual(\n * mapSecond([\"hello\", 42], n => n.toString()),\n * [\"hello\", \"42\"]\n * )\n * ```\n *\n * @category mapping\n * @since 2.0.0\n */\nexport const mapSecond = /*#__PURE__*/dual(2, (self, f) => [self[0], f(self[1])]);\n/**\n * Swaps the elements of a tuple with two elements.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { swap } from \"effect/Tuple\"\n *\n * assert.deepStrictEqual(swap([\"hello\", 42]), [42, \"hello\"])\n * ```\n *\n * @since 2.0.0\n */\nexport const swap = self => [self[1], self[0]];\n/**\n * Given a tuple of `Equivalence`s returns a new `Equivalence` that compares values of a tuple\n * by applying each `Equivalence` to the corresponding element of the tuple.\n *\n * @category combinators\n * @since 2.0.0\n */\nexport const getEquivalence = Equivalence.tuple;\n/**\n * This function creates and returns a new `Order` for a tuple of values based on the given `Order`s for each element in the tuple.\n * The returned `Order` compares two tuples of the same type by applying the corresponding `Order` to each element in the tuple.\n * It is useful when you need to compare two tuples of the same type and you have a specific way of comparing each element\n * of the tuple.\n *\n * @category combinators\n * @since 2.0.0\n */\nexport const getOrder = order.tuple;\n/**\n * Appends an element to the end of a tuple.\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const appendElement = /*#__PURE__*/dual(2, (self, that) => [...self, that]);\n/**\n * Retrieves the element at a specified index from a tuple.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Tuple } from \"effect\"\n *\n * assert.deepStrictEqual(Tuple.at([1, 'hello', true], 1), 'hello')\n * ```\n *\n * @category getters\n * @since 3.4.0\n */\nexport const at = /*#__PURE__*/dual(2, (self, index) => self[index]);\nexport {\n/**\n * Determine if an `Array` is a tuple with exactly `N` elements, narrowing down the type to `TupleOf`.\n *\n * An `Array` is considered to be a `TupleOf` if its length is exactly `N`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { isTupleOf } from \"effect/Tuple\"\n *\n * assert.deepStrictEqual(isTupleOf([1, 2, 3], 3), true);\n * assert.deepStrictEqual(isTupleOf([1, 2, 3], 2), false);\n * assert.deepStrictEqual(isTupleOf([1, 2, 3], 4), false);\n *\n * const arr: number[] = [1, 2, 3];\n * if (isTupleOf(arr, 3)) {\n * console.log(arr);\n * // ^? [number, number, number]\n * }\n *\n * ```\n * @category guards\n * @since 3.3.0\n */\nisTupleOf,\n/**\n * Determine if an `Array` is a tuple with at least `N` elements, narrowing down the type to `TupleOfAtLeast`.\n *\n * An `Array` is considered to be a `TupleOfAtLeast` if its length is at least `N`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { isTupleOfAtLeast } from \"effect/Tuple\"\n *\n * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 3), true);\n * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 2), true);\n * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 4), false);\n *\n * const arr: number[] = [1, 2, 3, 4];\n * if (isTupleOfAtLeast(arr, 3)) {\n * console.log(arr);\n * // ^? [number, number, number, ...number[]]\n * }\n *\n * ```\n * @category guards\n * @since 3.3.0\n */\nisTupleOfAtLeast } from \"./Predicate.js\";\n//# sourceMappingURL=Tuple.js.map","/**\n * This module provides utility functions for working with arrays in TypeScript.\n *\n * @since 2.0.0\n */\nimport * as Either from \"./Either.js\";\nimport * as Equal from \"./Equal.js\";\nimport * as Equivalence from \"./Equivalence.js\";\nimport { dual, identity } from \"./Function.js\";\nimport * as internalArray from \"./internal/array.js\";\nimport * as internalDoNotation from \"./internal/doNotation.js\";\nimport * as moduleIterable from \"./Iterable.js\";\nimport * as Option from \"./Option.js\";\nimport * as Order from \"./Order.js\";\nimport * as Predicate from \"./Predicate.js\";\nimport * as Record from \"./Record.js\";\nimport * as Tuple from \"./Tuple.js\";\n/**\n * Builds a `NonEmptyArray` from an non-empty collection of elements.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.make(1, 2, 3)\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const make = (...elements) => elements;\n/**\n * Creates a new `Array` of the specified length.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.allocate(3)\n * console.log(result) // [ <3 empty items> ]\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const allocate = n => new Array(n);\n/**\n * Return a `NonEmptyArray` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to an integer >= 1.\n *\n * **Example**\n *\n * ```ts\n * import { makeBy } from \"effect/Array\"\n *\n * const result = makeBy(5, n => n * 2)\n * console.log(result) // [0, 2, 4, 6, 8]\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const makeBy = /*#__PURE__*/dual(2, (n, f) => {\n const max = Math.max(1, Math.floor(n));\n const out = new Array(max);\n for (let i = 0; i < max; i++) {\n out[i] = f(i);\n }\n return out;\n});\n/**\n * Return a `NonEmptyArray` containing a range of integers, including both endpoints.\n *\n * **Example**\n *\n * ```ts\n * import { range } from \"effect/Array\"\n *\n * const result = range(1, 3)\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const range = (start, end) => start <= end ? makeBy(end - start + 1, i => start + i) : [start];\n/**\n * Return a `NonEmptyArray` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to an integer >= 1.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.replicate(\"a\", 3)\n * console.log(result) // [\"a\", \"a\", \"a\"]\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const replicate = /*#__PURE__*/dual(2, (a, n) => makeBy(n, () => a));\n/**\n * Creates a new `Array` from an iterable collection of values.\n * If the input is already an array, it returns the input as-is.\n * Otherwise, it converts the iterable collection to an array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.fromIterable(new Set([1, 2, 3]))\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const fromIterable = collection => Array.isArray(collection) ? collection : Array.from(collection);\n/**\n * Creates a new `Array` from a value that might not be an iterable.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * console.log(Array.ensure(\"a\")) // [\"a\"]\n * console.log(Array.ensure([\"a\"])) // [\"a\"]\n * console.log(Array.ensure([\"a\", \"b\", \"c\"])) // [\"a\", \"b\", \"c\"]\n * ```\n *\n * @category constructors\n * @since 3.3.0\n */\nexport const ensure = self => Array.isArray(self) ? self : [self];\n/**\n * Takes a record and returns an array of tuples containing its keys and values.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.fromRecord({ a: 1, b: 2, c: 3 })\n * console.log(result) // [[\"a\", 1], [\"b\", 2], [\"c\", 3]]\n * ```\n *\n * @category conversions\n * @since 2.0.0\n */\nexport const fromRecord = Record.toEntries;\n/**\n * Converts an `Option` to an array.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Option } from \"effect\"\n *\n * console.log(Array.fromOption(Option.some(1))) // [1]\n * console.log(Array.fromOption(Option.none())) // []\n * ```\n *\n * @category conversions\n * @since 2.0.0\n */\nexport const fromOption = Option.toArray;\n/**\n * Matches the elements of an array, applying functions to cases of empty and non-empty arrays.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const match = Array.match({\n * onEmpty: () => \"empty\",\n * onNonEmpty: ([head, ...tail]) => `head: ${head}, tail: ${tail.length}`\n * })\n * console.log(match([])) // \"empty\"\n * console.log(match([1, 2, 3])) // \"head: 1, tail: 2\"\n * ```\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexport const match = /*#__PURE__*/dual(2, (self, {\n onEmpty,\n onNonEmpty\n}) => isNonEmptyReadonlyArray(self) ? onNonEmpty(self) : onEmpty());\n/**\n * Matches the elements of an array from the left, applying functions to cases of empty and non-empty arrays.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const matchLeft = Array.matchLeft({\n * onEmpty: () => \"empty\",\n * onNonEmpty: (head, tail) => `head: ${head}, tail: ${tail.length}`\n * })\n * console.log(matchLeft([])) // \"empty\"\n * console.log(matchLeft([1, 2, 3])) // \"head: 1, tail: 2\"\n * ```\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexport const matchLeft = /*#__PURE__*/dual(2, (self, {\n onEmpty,\n onNonEmpty\n}) => isNonEmptyReadonlyArray(self) ? onNonEmpty(headNonEmpty(self), tailNonEmpty(self)) : onEmpty());\n/**\n * Matches the elements of an array from the right, applying functions to cases of empty and non-empty arrays.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const matchRight = Array.matchRight({\n * onEmpty: () => \"empty\",\n * onNonEmpty: (init, last) => `init: ${init.length}, last: ${last}`\n * })\n * console.log(matchRight([])) // \"empty\"\n * console.log(matchRight([1, 2, 3])) // \"init: 2, last: 3\"\n * ```\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexport const matchRight = /*#__PURE__*/dual(2, (self, {\n onEmpty,\n onNonEmpty\n}) => isNonEmptyReadonlyArray(self) ? onNonEmpty(initNonEmpty(self), lastNonEmpty(self)) : onEmpty());\n/**\n * Prepend an element to the front of an `Iterable`, creating a new `NonEmptyArray`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.prepend([2, 3, 4], 1)\n * console.log(result) // [1, 2, 3, 4]\n * ```\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const prepend = /*#__PURE__*/dual(2, (self, head) => [head, ...self]);\n/**\n * Prepends the specified prefix array (or iterable) to the beginning of the specified array (or iterable).\n * If either array is non-empty, the result is also a non-empty array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.prependAll([2, 3], [0, 1])\n * console.log(result) // [0, 1, 2, 3]\n * ```\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const prependAll = /*#__PURE__*/dual(2, (self, that) => fromIterable(that).concat(fromIterable(self)));\n/**\n * Append an element to the end of an `Iterable`, creating a new `NonEmptyArray`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.append([1, 2, 3], 4);\n * console.log(result) // [1, 2, 3, 4]\n * ```\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const append = /*#__PURE__*/dual(2, (self, last) => [...self, last]);\n/**\n * Concatenates two arrays (or iterables), combining their elements.\n * If either array is non-empty, the result is also a non-empty array.\n *\n * @category concatenating\n * @since 2.0.0\n */\nexport const appendAll = /*#__PURE__*/dual(2, (self, that) => fromIterable(self).concat(fromIterable(that)));\n/**\n * Accumulates values from an `Iterable` starting from the left, storing\n * each intermediate result in an array. Useful for tracking the progression of\n * a value through a series of transformations.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\";\n *\n * const result = Array.scan([1, 2, 3, 4], 0, (acc, value) => acc + value)\n * console.log(result) // [0, 1, 3, 6, 10]\n *\n * // Explanation:\n * // This function starts with the initial value (0 in this case)\n * // and adds each element of the array to this accumulator one by one,\n * // keeping track of the cumulative sum after each addition.\n * // Each of these sums is captured in the resulting array.\n * ```\n *\n * @category folding\n * @since 2.0.0\n */\nexport const scan = /*#__PURE__*/dual(3, (self, b, f) => {\n const out = [b];\n let i = 0;\n for (const a of self) {\n out[i + 1] = f(out[i], a);\n i++;\n }\n return out;\n});\n/**\n * Accumulates values from an `Iterable` starting from the right, storing\n * each intermediate result in an array. Useful for tracking the progression of\n * a value through a series of transformations.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\";\n *\n * const result = Array.scanRight([1, 2, 3, 4], 0, (acc, value) => acc + value)\n * console.log(result) // [10, 9, 7, 4, 0]\n * ```\n *\n * @category folding\n * @since 2.0.0\n */\nexport const scanRight = /*#__PURE__*/dual(3, (self, b, f) => {\n const input = fromIterable(self);\n const out = new Array(input.length + 1);\n out[input.length] = b;\n for (let i = input.length - 1; i >= 0; i--) {\n out[i] = f(out[i + 1], input[i]);\n }\n return out;\n});\n/**\n * Determine if `unknown` is an Array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * console.log(Array.isArray(null)) // false\n * console.log(Array.isArray([1, 2, 3])) // true\n * ```\n *\n * @category guards\n * @since 2.0.0\n */\nexport const isArray = Array.isArray;\n/**\n * Determine if an `Array` is empty narrowing down the type to `[]`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * console.log(Array.isEmptyArray([])) // true\n * console.log(Array.isEmptyArray([1, 2, 3])) // false\n * ```\n *\n * @category guards\n * @since 2.0.0\n */\nexport const isEmptyArray = self => self.length === 0;\n/**\n * Determine if a `ReadonlyArray` is empty narrowing down the type to `readonly []`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * console.log(Array.isEmptyReadonlyArray([])) // true\n * console.log(Array.isEmptyReadonlyArray([1, 2, 3])) // false\n * ```\n *\n * @category guards\n * @since 2.0.0\n */\nexport const isEmptyReadonlyArray = isEmptyArray;\n/**\n * Determine if an `Array` is non empty narrowing down the type to `NonEmptyArray`.\n *\n * An `Array` is considered to be a `NonEmptyArray` if it contains at least one element.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * console.log(Array.isNonEmptyArray([])) // false\n * console.log(Array.isNonEmptyArray([1, 2, 3])) // true\n * ```\n *\n * @category guards\n * @since 2.0.0\n */\nexport const isNonEmptyArray = internalArray.isNonEmptyArray;\n/**\n * Determine if a `ReadonlyArray` is non empty narrowing down the type to `NonEmptyReadonlyArray`.\n *\n * A `ReadonlyArray` is considered to be a `NonEmptyReadonlyArray` if it contains at least one element.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * console.log(Array.isNonEmptyReadonlyArray([])) // false\n * console.log(Array.isNonEmptyReadonlyArray([1, 2, 3])) // true\n * ```\n *\n * @category guards\n * @since 2.0.0\n */\nexport const isNonEmptyReadonlyArray = internalArray.isNonEmptyArray;\n/**\n * Return the number of elements in a `ReadonlyArray`.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const length = self => self.length;\nconst isOutOfBounds = (i, as) => i < 0 || i >= as.length;\nconst clamp = (i, as) => Math.floor(Math.min(Math.max(0, i), as.length));\n/**\n * This function provides a safe way to read a value at a particular index from a `ReadonlyArray`.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const get = /*#__PURE__*/dual(2, (self, index) => {\n const i = Math.floor(index);\n return isOutOfBounds(i, self) ? Option.none() : Option.some(self[i]);\n});\n/**\n * Gets an element unsafely, will throw on out of bounds.\n *\n * @since 2.0.0\n * @category unsafe\n */\nexport const unsafeGet = /*#__PURE__*/dual(2, (self, index) => {\n const i = Math.floor(index);\n if (isOutOfBounds(i, self)) {\n throw new Error(`Index ${i} out of bounds`);\n }\n return self[i];\n});\n/**\n * Return a tuple containing the first element, and a new `Array` of the remaining elements, if any.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\";\n *\n * const result = Array.unprepend([1, 2, 3, 4])\n * console.log(result) // [1, [2, 3, 4]]\n * ```\n *\n * @category splitting\n * @since 2.0.0\n */\nexport const unprepend = self => [headNonEmpty(self), tailNonEmpty(self)];\n/**\n * Return a tuple containing a copy of the `NonEmptyReadonlyArray` without its last element, and that last element.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\";\n *\n * const result = Array.unappend([1, 2, 3, 4])\n * console.log(result) // [[1, 2, 3], 4]\n * ```\n *\n * @category splitting\n * @since 2.0.0\n */\nexport const unappend = self => [initNonEmpty(self), lastNonEmpty(self)];\n/**\n * Get the first element of a `ReadonlyArray`, or `None` if the `ReadonlyArray` is empty.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const head = /*#__PURE__*/get(0);\n/**\n * Get the first element of a non empty array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.headNonEmpty([1, 2, 3, 4])\n * console.log(result) // 1\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const headNonEmpty = /*#__PURE__*/unsafeGet(0);\n/**\n * Get the last element in a `ReadonlyArray`, or `None` if the `ReadonlyArray` is empty.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const last = self => isNonEmptyReadonlyArray(self) ? Option.some(lastNonEmpty(self)) : Option.none();\n/**\n * Get the last element of a non empty array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.lastNonEmpty([1, 2, 3, 4])\n * console.log(result) // 4\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const lastNonEmpty = self => self[self.length - 1];\n/**\n * Get all but the first element of an `Iterable`, creating a new `Array`, or `None` if the `Iterable` is empty.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const tail = self => {\n const input = fromIterable(self);\n return isNonEmptyReadonlyArray(input) ? Option.some(tailNonEmpty(input)) : Option.none();\n};\n/**\n * Get all but the first element of a `NonEmptyReadonlyArray`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.tailNonEmpty([1, 2, 3, 4])\n * console.log(result) // [2, 3, 4]\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const tailNonEmpty = self => self.slice(1);\n/**\n * Get all but the last element of an `Iterable`, creating a new `Array`, or `None` if the `Iterable` is empty.\n *\n * @category getters\n * @since 2.0.0\n */\nexport const init = self => {\n const input = fromIterable(self);\n return isNonEmptyReadonlyArray(input) ? Option.some(initNonEmpty(input)) : Option.none();\n};\n/**\n * Get all but the last element of a non empty array, creating a new array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.initNonEmpty([1, 2, 3, 4])\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const initNonEmpty = self => self.slice(0, -1);\n/**\n * Keep only a max number of elements from the start of an `Iterable`, creating a new `Array`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.take([1, 2, 3, 4, 5], 3)\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const take = /*#__PURE__*/dual(2, (self, n) => {\n const input = fromIterable(self);\n return input.slice(0, clamp(n, input));\n});\n/**\n * Keep only a max number of elements from the end of an `Iterable`, creating a new `Array`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.takeRight([1, 2, 3, 4, 5], 3)\n * console.log(result) // [3, 4, 5]\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const takeRight = /*#__PURE__*/dual(2, (self, n) => {\n const input = fromIterable(self);\n const i = clamp(n, input);\n return i === 0 ? [] : input.slice(-i);\n});\n/**\n * Calculate the longest initial subarray for which all element satisfy the specified predicate, creating a new `Array`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.takeWhile([1, 3, 2, 4, 1, 2], x => x < 4)\n * console.log(result) // [1, 3, 2]\n *\n * // Explanation:\n * // - The function starts with the first element (`1`), which is less than `4`, so it adds `1` to the result.\n * // - The next element (`3`) is also less than `4`, so it adds `3`.\n * // - The next element (`2`) is again less than `4`, so it adds `2`.\n * // - The function then encounters `4`, which is not less than `4`. At this point, it stops checking further elements and finalizes the result.\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const takeWhile = /*#__PURE__*/dual(2, (self, predicate) => {\n let i = 0;\n const out = [];\n for (const a of self) {\n if (!predicate(a, i)) {\n break;\n }\n out.push(a);\n i++;\n }\n return out;\n});\nconst spanIndex = (self, predicate) => {\n let i = 0;\n for (const a of self) {\n if (!predicate(a, i)) {\n break;\n }\n i++;\n }\n return i;\n};\n/**\n * Split an `Iterable` into two parts:\n *\n * 1. the longest initial subarray for which all elements satisfy the specified predicate\n * 2. the remaining elements\n *\n * @category splitting\n * @since 2.0.0\n */\nexport const span = /*#__PURE__*/dual(2, (self, predicate) => splitAt(self, spanIndex(self, predicate)));\n/**\n * Drop a max number of elements from the start of an `Iterable`, creating a new `Array`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.drop([1, 2, 3, 4, 5], 2)\n * console.log(result) // [3, 4, 5]\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const drop = /*#__PURE__*/dual(2, (self, n) => {\n const input = fromIterable(self);\n return input.slice(clamp(n, input), input.length);\n});\n/**\n * Drop a max number of elements from the end of an `Iterable`, creating a new `Array`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.dropRight([1, 2, 3, 4, 5], 2)\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const dropRight = /*#__PURE__*/dual(2, (self, n) => {\n const input = fromIterable(self);\n return input.slice(0, input.length - clamp(n, input));\n});\n/**\n * Remove the longest initial subarray for which all element satisfy the specified predicate, creating a new `Array`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.dropWhile([1, 2, 3, 4, 5], x => x < 4)\n * console.log(result) // [4, 5]\n * ```\n *\n * @category getters\n * @since 2.0.0\n */\nexport const dropWhile = /*#__PURE__*/dual(2, (self, predicate) => fromIterable(self).slice(spanIndex(self, predicate)));\n/**\n * Return the first index for which a predicate holds.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.findFirstIndex([5, 3, 8, 9], x => x > 5)\n * console.log(result) // Option.some(2)\n * ```\n *\n * @category elements\n * @since 2.0.0\n */\nexport const findFirstIndex = /*#__PURE__*/dual(2, (self, predicate) => {\n let i = 0;\n for (const a of self) {\n if (predicate(a, i)) {\n return Option.some(i);\n }\n i++;\n }\n return Option.none();\n});\n/**\n * Return the last index for which a predicate holds.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.findLastIndex([1, 3, 8, 9], x => x < 5)\n * console.log(result) // Option.some(1)\n * ```\n *\n * @category elements\n * @since 2.0.0\n */\nexport const findLastIndex = /*#__PURE__*/dual(2, (self, predicate) => {\n const input = fromIterable(self);\n for (let i = input.length - 1; i >= 0; i--) {\n if (predicate(input[i], i)) {\n return Option.some(i);\n }\n }\n return Option.none();\n});\n/**\n * Returns the first element that satisfies the specified\n * predicate, or `None` if no such element exists.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.findFirst([1, 2, 3, 4, 5], x => x > 3)\n * console.log(result) // Option.some(4)\n * ```\n *\n * @category elements\n * @since 2.0.0\n */\nexport const findFirst = moduleIterable.findFirst;\n/**\n * Finds the last element in an iterable collection that satisfies the given predicate or refinement.\n * Returns an `Option` containing the found element, or `Option.none` if no element matches.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.findLast([1, 2, 3, 4, 5], n => n % 2 === 0)\n * console.log(result) // Option.some(4)\n * ```\n *\n * @category elements\n * @since 2.0.0\n */\nexport const findLast = /*#__PURE__*/dual(2, (self, f) => {\n const input = fromIterable(self);\n for (let i = input.length - 1; i >= 0; i--) {\n const a = input[i];\n const o = f(a, i);\n if (Predicate.isBoolean(o)) {\n if (o) {\n return Option.some(a);\n }\n } else {\n if (Option.isSome(o)) {\n return o;\n }\n }\n }\n return Option.none();\n});\n/**\n * Returns a tuple of the first element that satisfies the specified\n * predicate and its index, or `None` if no such element exists.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.findFirstWithIndex([1, 2, 3, 4, 5], x => x > 3)\n * console.log(result) // Option.some([4, 3])\n * ```\n *\n * @category elements\n * @since 3.17.0\n */\nexport const findFirstWithIndex = /*#__PURE__*/dual(2, (self, f) => {\n let i = 0;\n for (const a of self) {\n const o = f(a, i);\n if (Predicate.isBoolean(o)) {\n if (o) {\n return Option.some([a, i]);\n }\n } else {\n if (Option.isSome(o)) {\n return Option.some([o.value, i]);\n }\n }\n i++;\n }\n return Option.none();\n});\n/**\n * Counts all the element of the given array that pass the given predicate\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.countBy([1, 2, 3, 4, 5], n => n % 2 === 0)\n * console.log(result) // 2\n * ```\n *\n * @category folding\n * @since 3.16.0\n */\nexport const countBy = /*#__PURE__*/dual(2, (self, f) => {\n let count = 0;\n const as = fromIterable(self);\n for (let i = 0; i < as.length; i++) {\n const a = as[i];\n if (f(a, i)) {\n count++;\n }\n }\n return count;\n});\n/**\n * Insert an element at the specified index, creating a new `NonEmptyArray`,\n * or return `None` if the index is out of bounds.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.insertAt(['a', 'b', 'c', 'e'], 3, 'd')\n * console.log(result) // Option.some(['a', 'b', 'c', 'd', 'e'])\n * ```\n *\n * @since 2.0.0\n */\nexport const insertAt = /*#__PURE__*/dual(3, (self, i, b) => {\n const out = Array.from(self);\n // v--- `= self.length` is ok, it means inserting in last position\n if (i < 0 || i > out.length) {\n return Option.none();\n }\n out.splice(i, 0, b);\n return Option.some(out);\n});\n/**\n * Change the element at the specified index, creating a new `Array`,\n * or return a copy of the input if the index is out of bounds.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.replace(['a', 'b', 'c', 'd'], 1, 'z')\n * console.log(result) // ['a', 'z', 'c', 'd']\n * ```\n *\n * @since 2.0.0\n */\nexport const replace = /*#__PURE__*/dual(3, (self, i, b) => modify(self, i, () => b));\n/**\n * Replaces an element in an array with the given value, returning an option of the updated array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.replaceOption([1, 2, 3], 1, 4)\n * console.log(result) // Option.some([1, 4, 3])\n * ```\n *\n * @since 2.0.0\n */\nexport const replaceOption = /*#__PURE__*/dual(3, (self, i, b) => modifyOption(self, i, () => b));\n/**\n * Apply a function to the element at the specified index, creating a new `Array`,\n * or return a copy of the input if the index is out of bounds.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.modify([1, 2, 3, 4], 2, (n) => n * 2)\n * console.log(result) // [1, 2, 6, 4]\n * ```\n *\n * @since 2.0.0\n */\nexport const modify = /*#__PURE__*/dual(3, (self, i, f) => {\n const out = Array.from(self);\n if (isOutOfBounds(i, out)) {\n return out;\n }\n const b = f(out[i]);\n out[i] = b;\n return out;\n});\n/**\n * Apply a function to the element at the specified index, creating a new `Array`,\n * or return `None` if the index is out of bounds.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const input = [1, 2, 3, 4]\n * const result = Array.modifyOption(input, 2, (n) => n * 2)\n * console.log(result) // Option.some([1, 2, 6, 4])\n *\n * const outOfBoundsResult = Array.modifyOption(input, 5, (n) => n * 2)\n * console.log(outOfBoundsResult) // Option.none()\n * ```\n *\n * @since 2.0.0\n */\nexport const modifyOption = /*#__PURE__*/dual(3, (self, i, f) => {\n const arr = fromIterable(self);\n if (isOutOfBounds(i, arr)) {\n return Option.none();\n }\n const out = Array.isArray(self) ? self.slice() : arr;\n const b = f(arr[i]);\n out[i] = b;\n return Option.some(out);\n});\n/**\n * Delete the element at the specified index, creating a new `Array`,\n * or return a copy of the input if the index is out of bounds.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const input = [1, 2, 3, 4]\n * const result = Array.remove(input, 2)\n * console.log(result) // [1, 2, 4]\n *\n * const outOfBoundsResult = Array.remove(input, 5)\n * console.log(outOfBoundsResult) // [1, 2, 3, 4]\n * ```\n *\n * @since 2.0.0\n */\nexport const remove = /*#__PURE__*/dual(2, (self, i) => {\n const out = Array.from(self);\n if (isOutOfBounds(i, out)) {\n return out;\n }\n out.splice(i, 1);\n return out;\n});\n/**\n * Delete the element at the specified index, creating a new `Array`,\n * or return `None` if the index is out of bounds.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Array, Option } from \"effect\"\n *\n * const numbers = [1, 2, 3, 4]\n * const result = Array.removeOption(numbers, 2)\n * assert.deepStrictEqual(result, Option.some([1, 2, 4]))\n *\n * const outOfBoundsResult = Array.removeOption(numbers, 5)\n * assert.deepStrictEqual(outOfBoundsResult, Option.none())\n * ```\n *\n * @since 3.16.0\n */\nexport const removeOption = /*#__PURE__*/dual(2, (self, i) => {\n const arr = fromIterable(self);\n if (isOutOfBounds(i, arr)) {\n return Option.none();\n }\n const out = Array.isArray(self) ? self.slice() : arr;\n out.splice(i, 1);\n return Option.some(out);\n});\n/**\n * Reverse an `Iterable`, creating a new `Array`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.reverse([1, 2, 3, 4])\n * console.log(result) // [4, 3, 2, 1]\n * ```\n *\n * @category elements\n * @since 2.0.0\n */\nexport const reverse = self => Array.from(self).reverse();\n/**\n * Create a new array with elements sorted in increasing order based on the specified comparator.\n * If the input is a `NonEmptyReadonlyArray`, the output will also be a `NonEmptyReadonlyArray`.\n *\n * @category sorting\n * @since 2.0.0\n */\nexport const sort = /*#__PURE__*/dual(2, (self, O) => {\n const out = Array.from(self);\n out.sort(O);\n return out;\n});\n/**\n * Sorts an array based on a provided mapping function and order. The mapping\n * function transforms the elements into a value that can be compared, and the\n * order defines how those values should be sorted.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Order } from \"effect\"\n *\n * const result = Array.sortWith([\"aaa\", \"b\", \"cc\"], (s) => s.length, Order.number)\n * console.log(result) // [\"b\", \"cc\", \"aaa\"]\n *\n * // Explanation:\n * // The array of strings is sorted based on their lengths. The mapping function `(s) => s.length`\n * // converts each string into its length, and the `Order.number` specifies that the lengths should\n * // be sorted in ascending order.\n * ```\n *\n * @since 2.0.0\n * @category elements\n */\nexport const sortWith = /*#__PURE__*/dual(3, (self, f, order) => Array.from(self).map(a => [a, f(a)]).sort(([, a], [, b]) => order(a, b)).map(([_]) => _));\n/**\n * Sorts the elements of an `Iterable` in increasing order based on the provided\n * orders. The elements are compared using the first order in `orders`, then the\n * second order if the first comparison is equal, and so on.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Order, pipe } from \"effect\"\n *\n * const users = [\n * { name: \"Alice\", age: 30 },\n * { name: \"Bob\", age: 25 },\n * { name: \"Charlie\", age: 30 }\n * ]\n *\n * const result = pipe(\n * users,\n * Array.sortBy(\n * Order.mapInput(Order.number, (user: (typeof users)[number]) => user.age),\n * Order.mapInput(Order.string, (user: (typeof users)[number]) => user.name)\n * )\n * )\n *\n * console.log(result)\n * // [\n * // { name: \"Bob\", age: 25 },\n * // { name: \"Alice\", age: 30 },\n * // { name: \"Charlie\", age: 30 }\n * // ]\n *\n * // Explanation:\n * // The array of users is sorted first by age in ascending order. When ages are equal,\n * // the users are further sorted by name in ascending order.\n * ```\n *\n * @category sorting\n * @since 2.0.0\n */\nexport const sortBy = (...orders) => {\n const sortByAll = sort(Order.combineAll(orders));\n return self => {\n const input = fromIterable(self);\n if (isNonEmptyReadonlyArray(input)) {\n return sortByAll(input);\n }\n return [];\n };\n};\n/**\n * Takes two `Iterable`s and returns an `Array` of corresponding pairs.\n * If one input `Iterable` is short, excess elements of the\n * longer `Iterable` are discarded.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.zip([1, 2, 3], ['a', 'b'])\n * console.log(result) // [[1, 'a'], [2, 'b']]\n * ```\n *\n * @category zipping\n * @since 2.0.0\n */\nexport const zip = /*#__PURE__*/dual(2, (self, that) => zipWith(self, that, Tuple.make));\n/**\n * Apply a function to pairs of elements at the same index in two `Iterable`s, collecting the results in a new `Array`. If one\n * input `Iterable` is short, excess elements of the longer `Iterable` are discarded.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.zipWith([1, 2, 3], [4, 5, 6], (a, b) => a + b)\n * console.log(result) // [5, 7, 9]\n * ```\n *\n * @category zipping\n * @since 2.0.0\n */\nexport const zipWith = /*#__PURE__*/dual(3, (self, that, f) => {\n const as = fromIterable(self);\n const bs = fromIterable(that);\n if (isNonEmptyReadonlyArray(as) && isNonEmptyReadonlyArray(bs)) {\n const out = [f(headNonEmpty(as), headNonEmpty(bs))];\n const len = Math.min(as.length, bs.length);\n for (let i = 1; i < len; i++) {\n out[i] = f(as[i], bs[i]);\n }\n return out;\n }\n return [];\n});\n/**\n * This function is the inverse of `zip`. Takes an `Iterable` of pairs and return two corresponding `Array`s.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.unzip([[1, \"a\"], [2, \"b\"], [3, \"c\"]])\n * console.log(result) // [[1, 2, 3], ['a', 'b', 'c']]\n * ```\n *\n * @since 2.0.0\n */\nexport const unzip = self => {\n const input = fromIterable(self);\n if (isNonEmptyReadonlyArray(input)) {\n const fa = [input[0][0]];\n const fb = [input[0][1]];\n for (let i = 1; i < input.length; i++) {\n fa[i] = input[i][0];\n fb[i] = input[i][1];\n }\n return [fa, fb];\n }\n return [[], []];\n};\n/**\n * Places an element in between members of an `Iterable`.\n * If the input is a non-empty array, the result is also a non-empty array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.intersperse([1, 2, 3], 0)\n * console.log(result) // [1, 0, 2, 0, 3]\n * ```\n *\n * @since 2.0.0\n */\nexport const intersperse = /*#__PURE__*/dual(2, (self, middle) => {\n const input = fromIterable(self);\n if (isNonEmptyReadonlyArray(input)) {\n const out = [headNonEmpty(input)];\n const tail = tailNonEmpty(input);\n for (let i = 0; i < tail.length; i++) {\n if (i < tail.length) {\n out.push(middle);\n }\n out.push(tail[i]);\n }\n return out;\n }\n return [];\n});\n/**\n * Apply a function to the head, creating a new `NonEmptyReadonlyArray`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.modifyNonEmptyHead([1, 2, 3], n => n * 10)\n * console.log(result) // [10, 2, 3]\n * ```\n *\n * @since 2.0.0\n */\nexport const modifyNonEmptyHead = /*#__PURE__*/dual(2, (self, f) => [f(headNonEmpty(self)), ...tailNonEmpty(self)]);\n/**\n * Change the head, creating a new `NonEmptyReadonlyArray`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.setNonEmptyHead([1, 2, 3], 10)\n * console.log(result) // [10, 2, 3]\n * ```\n *\n * @since 2.0.0\n */\nexport const setNonEmptyHead = /*#__PURE__*/dual(2, (self, b) => modifyNonEmptyHead(self, () => b));\n/**\n * Apply a function to the last element, creating a new `NonEmptyReadonlyArray`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.modifyNonEmptyLast([1, 2, 3], n => n * 2)\n * console.log(result) // [1, 2, 6]\n * ```\n *\n * @since 2.0.0\n */\nexport const modifyNonEmptyLast = /*#__PURE__*/dual(2, (self, f) => append(initNonEmpty(self), f(lastNonEmpty(self))));\n/**\n * Change the last element, creating a new `NonEmptyReadonlyArray`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.setNonEmptyLast([1, 2, 3], 4)\n * console.log(result) // [1, 2, 4]\n * ```\n *\n * @since 2.0.0\n */\nexport const setNonEmptyLast = /*#__PURE__*/dual(2, (self, b) => modifyNonEmptyLast(self, () => b));\n/**\n * Rotate an `Iterable` by `n` steps.\n * If the input is a non-empty array, the result is also a non-empty array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.rotate(['a', 'b', 'c', 'd', 'e'], 2)\n * console.log(result) // [ 'd', 'e', 'a', 'b', 'c' ]\n * ```\n *\n * @since 2.0.0\n */\nexport const rotate = /*#__PURE__*/dual(2, (self, n) => {\n const input = fromIterable(self);\n if (isNonEmptyReadonlyArray(input)) {\n const len = input.length;\n const m = Math.round(n) % len;\n if (isOutOfBounds(Math.abs(m), input) || m === 0) {\n return copy(input);\n }\n if (m < 0) {\n const [f, s] = splitNonEmptyAt(input, -m);\n return appendAll(s, f);\n } else {\n return rotate(self, m - len);\n }\n }\n return [];\n});\n/**\n * Returns a function that checks if a `ReadonlyArray` contains a given value using a provided `isEquivalent` function.\n *\n * **Example**\n *\n * ```ts\n * import { Array, pipe } from \"effect\"\n *\n * const isEquivalent = (a: number, b: number) => a === b\n * const containsNumber = Array.containsWith(isEquivalent)\n * const result = pipe([1, 2, 3, 4], containsNumber(3))\n * console.log(result) // true\n * ```\n *\n * @category elements\n * @since 2.0.0\n */\nexport const containsWith = isEquivalent => dual(2, (self, a) => {\n for (const i of self) {\n if (isEquivalent(a, i)) {\n return true;\n }\n }\n return false;\n});\nconst _equivalence = /*#__PURE__*/Equal.equivalence();\n/**\n * Returns a function that checks if a `ReadonlyArray` contains a given value using the default `Equivalence`.\n *\n * **Example**\n *\n * ```ts\n * import { Array, pipe } from \"effect\"\n *\n * const result = pipe(['a', 'b', 'c', 'd'], Array.contains('c'))\n * console.log(result) // true\n * ```\n *\n * @category elements\n * @since 2.0.0\n */\nexport const contains = /*#__PURE__*/containsWith(_equivalence);\n/**\n * A useful recursion pattern for processing an `Iterable` to produce a new `Array`, often used for \"chopping\" up the input\n * `Iterable`. Typically chop is called with some function that will consume an initial prefix of the `Iterable` and produce a\n * value and the rest of the `Array`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.chop([1, 2, 3, 4, 5], (as): [number, Array] => [as[0] * 2, as.slice(1)])\n * console.log(result) // [2, 4, 6, 8, 10]\n *\n * // Explanation:\n * // The `chopFunction` takes the first element of the array, doubles it, and then returns it along with the rest of the array.\n * // The `chop` function applies this `chopFunction` recursively to the input array `[1, 2, 3, 4, 5]`,\n * // resulting in a new array `[2, 4, 6, 8, 10]`.\n * ```\n *\n * @since 2.0.0\n */\nexport const chop = /*#__PURE__*/dual(2, (self, f) => {\n const input = fromIterable(self);\n if (isNonEmptyReadonlyArray(input)) {\n const [b, rest] = f(input);\n const out = [b];\n let next = rest;\n while (internalArray.isNonEmptyArray(next)) {\n const [b, rest] = f(next);\n out.push(b);\n next = rest;\n }\n return out;\n }\n return [];\n});\n/**\n * Splits an `Iterable` into two segments, with the first segment containing a maximum of `n` elements.\n * The value of `n` can be `0`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.splitAt([1, 2, 3, 4, 5], 3)\n * console.log(result) // [[1, 2, 3], [4, 5]]\n * ```\n *\n * @category splitting\n * @since 2.0.0\n */\nexport const splitAt = /*#__PURE__*/dual(2, (self, n) => {\n const input = Array.from(self);\n const _n = Math.floor(n);\n if (isNonEmptyReadonlyArray(input)) {\n if (_n >= 1) {\n return splitNonEmptyAt(input, _n);\n }\n return [[], input];\n }\n return [input, []];\n});\n/**\n * Splits a `NonEmptyReadonlyArray` into two segments, with the first segment containing a maximum of `n` elements.\n * The value of `n` must be `>= 1`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.splitNonEmptyAt([\"a\", \"b\", \"c\", \"d\", \"e\"], 3)\n * console.log(result) // [[\"a\", \"b\", \"c\"], [\"d\", \"e\"]]\n * ```\n *\n * @category splitting\n * @since 2.0.0\n */\nexport const splitNonEmptyAt = /*#__PURE__*/dual(2, (self, n) => {\n const _n = Math.max(1, Math.floor(n));\n return _n >= self.length ? [copy(self), []] : [prepend(self.slice(1, _n), headNonEmpty(self)), self.slice(_n)];\n});\n/**\n * Splits this iterable into `n` equally sized arrays.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.split([1, 2, 3, 4, 5, 6, 7, 8], 3)\n * console.log(result) // [[1, 2, 3], [4, 5, 6], [7, 8]]\n * ```\n *\n * @since 2.0.0\n * @category splitting\n */\nexport const split = /*#__PURE__*/dual(2, (self, n) => {\n const input = fromIterable(self);\n return chunksOf(input, Math.ceil(input.length / Math.floor(n)));\n});\n/**\n * Splits this iterable on the first element that matches this predicate.\n * Returns a tuple containing two arrays: the first one is before the match, and the second one is from the match onward.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.splitWhere([1, 2, 3, 4, 5], n => n > 3)\n * console.log(result) // [[1, 2, 3], [4, 5]]\n * ```\n *\n * @category splitting\n * @since 2.0.0\n */\nexport const splitWhere = /*#__PURE__*/dual(2, (self, predicate) => span(self, (a, i) => !predicate(a, i)));\n/**\n * Copies an array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.copy([1, 2, 3])\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @since 2.0.0\n */\nexport const copy = self => self.slice();\n/**\n * Pads an array.\n * Returns a new array of length `n` with the elements of `array` followed by `fill` elements if `array` is shorter than `n`.\n * If `array` is longer than `n`, the returned array will be a slice of `array` containing the `n` first elements of `array`.\n * If `n` is less than or equal to 0, the returned array will be an empty array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.pad([1, 2, 3], 6, 0)\n * console.log(result) // [1, 2, 3, 0, 0, 0]\n * ```\n *\n * @since 3.8.4\n */\nexport const pad = /*#__PURE__*/dual(3, (self, n, fill) => {\n if (self.length >= n) {\n return take(self, n);\n }\n return appendAll(self, makeBy(n - self.length, () => fill));\n});\n/**\n * Splits an `Iterable` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of\n * the `Iterable`. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive\n * definition of `chunksOf`; it satisfies the property that\n *\n * ```ts skip-type-checking\n * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys)))\n * ```\n *\n * whenever `n` evenly divides the length of `self`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.chunksOf([1, 2, 3, 4, 5], 2)\n * console.log(result) // [[1, 2], [3, 4], [5]]\n *\n * // Explanation:\n * // The `chunksOf` function takes an array of numbers `[1, 2, 3, 4, 5]` and a number `2`.\n * // It splits the array into chunks of length 2. Since the array length is not evenly divisible by 2,\n * // the last chunk contains the remaining elements.\n * // The result is `[[1, 2], [3, 4], [5]]`.\n * ```\n *\n * @category splitting\n * @since 2.0.0\n */\nexport const chunksOf = /*#__PURE__*/dual(2, (self, n) => {\n const input = fromIterable(self);\n if (isNonEmptyReadonlyArray(input)) {\n return chop(input, splitNonEmptyAt(n));\n }\n return [];\n});\n/**\n * Creates sliding windows of size `n` from an `Iterable`.\n * If the number of elements is less than `n` or if `n` is not greater than zero,\n * an empty array is returned.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Array } from \"effect\"\n *\n * const numbers = [1, 2, 3, 4, 5]\n * assert.deepStrictEqual(Array.window(numbers, 3), [[1, 2, 3], [2, 3, 4], [3, 4, 5]])\n * assert.deepStrictEqual(Array.window(numbers, 6), [])\n * ```\n *\n * @category splitting\n * @since 3.13.2\n */\nexport const window = /*#__PURE__*/dual(2, (self, n) => {\n const input = fromIterable(self);\n if (n > 0 && isNonEmptyReadonlyArray(input)) {\n return Array.from({\n length: input.length - (n - 1)\n }, (_, index) => input.slice(index, index + n));\n }\n return [];\n});\n/**\n * Group equal, consecutive elements of a `NonEmptyReadonlyArray` into `NonEmptyArray`s using the provided `isEquivalent` function.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.groupWith([\"a\", \"a\", \"b\", \"b\", \"b\", \"c\", \"a\"], (x, y) => x === y)\n * console.log(result) // [[\"a\", \"a\"], [\"b\", \"b\", \"b\"], [\"c\"], [\"a\"]]\n * ```\n *\n * @category grouping\n * @since 2.0.0\n */\nexport const groupWith = /*#__PURE__*/dual(2, (self, isEquivalent) => chop(self, as => {\n const h = headNonEmpty(as);\n const out = [h];\n let i = 1;\n for (; i < as.length; i++) {\n const a = as[i];\n if (isEquivalent(a, h)) {\n out.push(a);\n } else {\n break;\n }\n }\n return [out, as.slice(i)];\n}));\n/**\n * Group equal, consecutive elements of a `NonEmptyReadonlyArray` into `NonEmptyArray`s.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.group([1, 1, 2, 2, 2, 3, 1])\n * console.log(result) // [[1, 1], [2, 2, 2], [3], [1]]\n * ```\n *\n * @category grouping\n * @since 2.0.0\n */\nexport const group = /*#__PURE__*/groupWith(/*#__PURE__*/Equal.equivalence());\n/**\n * Splits an `Iterable` into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning\n * function on each element, and grouping the results according to values returned\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const people = [\n * { name: \"Alice\", group: \"A\" },\n * { name: \"Bob\", group: \"B\" },\n * { name: \"Charlie\", group: \"A\" }\n * ]\n *\n * const result = Array.groupBy(people, person => person.group)\n * console.log(result)\n * // {\n * // A: [{ name: \"Alice\", group: \"A\" }, { name: \"Charlie\", group: \"A\" }],\n * // B: [{ name: \"Bob\", group: \"B\" }]\n * // }\n * ```\n *\n * @category grouping\n * @since 2.0.0\n */\nexport const groupBy = /*#__PURE__*/dual(2, (self, f) => {\n const out = {};\n for (const a of self) {\n const k = f(a);\n if (Object.prototype.hasOwnProperty.call(out, k)) {\n out[k].push(a);\n } else {\n out[k] = [a];\n }\n }\n return out;\n});\n/**\n * Calculates the union of two arrays using the provided equivalence relation.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const union = Array.unionWith([1, 2], [2, 3], (a, b) => a === b)\n * console.log(union) // [1, 2, 3]\n * ```\n *\n * @since 2.0.0\n */\nexport const unionWith = /*#__PURE__*/dual(3, (self, that, isEquivalent) => {\n const a = fromIterable(self);\n const b = fromIterable(that);\n if (isNonEmptyReadonlyArray(a)) {\n if (isNonEmptyReadonlyArray(b)) {\n const dedupe = dedupeWith(isEquivalent);\n return dedupe(appendAll(a, b));\n }\n return a;\n }\n return b;\n});\n/**\n * Creates a union of two arrays, removing duplicates.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.union([1, 2], [2, 3])\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @since 2.0.0\n */\nexport const union = /*#__PURE__*/dual(2, (self, that) => unionWith(self, that, _equivalence));\n/**\n * Creates an `Array` of unique values that are included in all given `Iterable`s using the provided `isEquivalent` function.\n * The order and references of result values are determined by the first `Iterable`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }]\n * const array2 = [{ id: 3 }, { id: 4 }, { id: 1 }]\n * const isEquivalent = (a: { id: number }, b: { id: number }) => a.id === b.id\n * const result = Array.intersectionWith(isEquivalent)(array2)(array1)\n * console.log(result) // [{ id: 1 }, { id: 3 }]\n * ```\n *\n * @since 2.0.0\n */\nexport const intersectionWith = isEquivalent => {\n const has = containsWith(isEquivalent);\n return dual(2, (self, that) => {\n const bs = fromIterable(that);\n return fromIterable(self).filter(a => has(bs, a));\n });\n};\n/**\n * Creates an `Array` of unique values that are included in all given `Iterable`s.\n * The order and references of result values are determined by the first `Iterable`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.intersection([1, 2, 3], [3, 4, 1])\n * console.log(result) // [1, 3]\n * ```\n *\n * @since 2.0.0\n */\nexport const intersection = /*#__PURE__*/intersectionWith(_equivalence);\n/**\n * Creates a `Array` of values not included in the other given `Iterable` using the provided `isEquivalent` function.\n * The order and references of result values are determined by the first `Iterable`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const array1 = [1, 2, 3]\n * const array2 = [2, 3, 4]\n * const difference = Array.differenceWith((a, b) => a === b)(array1, array2)\n * console.log(difference) // [1]\n * ```\n *\n * @since 2.0.0\n */\nexport const differenceWith = isEquivalent => {\n const has = containsWith(isEquivalent);\n return dual(2, (self, that) => {\n const bs = fromIterable(that);\n return fromIterable(self).filter(a => !has(bs, a));\n });\n};\n/**\n * Creates a `Array` of values not included in the other given `Iterable`.\n * The order and references of result values are determined by the first `Iterable`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const difference = Array.difference([1, 2, 3], [2, 3, 4])\n * console.log(difference) // [1]\n * ```\n *\n * @since 2.0.0\n */\nexport const difference = /*#__PURE__*/differenceWith(_equivalence);\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport const empty = () => [];\n/**\n * Constructs a new `NonEmptyArray` from the specified value.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const of = a => [a];\n/**\n * @category mapping\n * @since 2.0.0\n */\nexport const map = /*#__PURE__*/dual(2, (self, f) => self.map(f));\n/**\n * Applies a function to each element in an array and returns a new array containing the concatenated mapped elements.\n *\n * @category sequencing\n * @since 2.0.0\n */\nexport const flatMap = /*#__PURE__*/dual(2, (self, f) => {\n if (isEmptyReadonlyArray(self)) {\n return [];\n }\n const out = [];\n for (let i = 0; i < self.length; i++) {\n const inner = f(self[i], i);\n for (let j = 0; j < inner.length; j++) {\n out.push(inner[j]);\n }\n }\n return out;\n});\n/**\n * Combines multiple arrays into a single array by concatenating all elements\n * from each nested array. This function ensures that the structure of nested\n * arrays is collapsed into a single, flat array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.flatten([[1, 2], [], [3, 4], [], [5, 6]])\n * console.log(result) // [1, 2, 3, 4, 5, 6]\n * ```\n *\n * @category sequencing\n * @since 2.0.0\n */\nexport const flatten = /*#__PURE__*/flatMap(identity);\n/**\n * Applies a function to each element of the `Iterable` and filters based on the result, keeping the transformed values where the function returns `Some`.\n * This method combines filtering and mapping functionalities, allowing transformations and filtering of elements based on a single function pass.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Option } from \"effect\"\n *\n * const evenSquares = (x: number) => x % 2 === 0 ? Option.some(x * x) : Option.none()\n *\n * const result = Array.filterMap([1, 2, 3, 4, 5], evenSquares);\n * console.log(result) // [4, 16]\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const filterMap = /*#__PURE__*/dual(2, (self, f) => {\n const as = fromIterable(self);\n const out = [];\n for (let i = 0; i < as.length; i++) {\n const o = f(as[i], i);\n if (Option.isSome(o)) {\n out.push(o.value);\n }\n }\n return out;\n});\n/**\n * Applies a function to each element of the array and filters based on the result, stopping when a condition is not met.\n * This method combines filtering and mapping in a single pass, and short-circuits, i.e., stops processing, as soon as the function returns `None`.\n * This is useful when you need to transform an array but only up to the point where a certain condition holds true.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Option } from \"effect\"\n *\n * const toSquareTillOdd = (x: number) => x % 2 === 0 ? Option.some(x * x) : Option.none()\n *\n * const result = Array.filterMapWhile([2, 4, 5], toSquareTillOdd)\n * console.log(result) // [4, 16]\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const filterMapWhile = /*#__PURE__*/dual(2, (self, f) => {\n let i = 0;\n const out = [];\n for (const a of self) {\n const b = f(a, i);\n if (Option.isSome(b)) {\n out.push(b.value);\n } else {\n break;\n }\n i++;\n }\n return out;\n});\n/**\n * Applies a function to each element of the `Iterable`, categorizing the results into two separate arrays.\n * This function is particularly useful for operations where each element can result in two possible types,\n * and you want to separate these types into different collections. For instance, separating validation results\n * into successes and failures.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Either } from \"effect\";\n *\n * const isEven = (x: number) => x % 2 === 0\n *\n * const result = Array.partitionMap([1, 2, 3, 4, 5], x =>\n * isEven(x) ? Either.right(x) : Either.left(x)\n * )\n * console.log(result)\n * // [\n * // [1, 3, 5],\n * // [2, 4]\n * // ]\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const partitionMap = /*#__PURE__*/dual(2, (self, f) => {\n const left = [];\n const right = [];\n const as = fromIterable(self);\n for (let i = 0; i < as.length; i++) {\n const e = f(as[i], i);\n if (Either.isLeft(e)) {\n left.push(e.left);\n } else {\n right.push(e.right);\n }\n }\n return [left, right];\n});\n/**\n * Retrieves the `Some` values from an `Iterable` of `Option`s, collecting them into an array.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Option } from \"effect\"\n *\n * const result = Array.getSomes([Option.some(1), Option.none(), Option.some(2)])\n * console.log(result) // [1, 2]\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const getSomes = /*#__PURE__*/filterMap(identity);\n/**\n * Retrieves the `Left` values from an `Iterable` of `Either`s, collecting them into an array.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Either } from \"effect\"\n *\n * const result = Array.getLefts([Either.right(1), Either.left(\"err\"), Either.right(2)])\n * console.log(result) // [\"err\"]\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const getLefts = self => {\n const out = [];\n for (const a of self) {\n if (Either.isLeft(a)) {\n out.push(a.left);\n }\n }\n return out;\n};\n/**\n * Retrieves the `Right` values from an `Iterable` of `Either`s, collecting them into an array.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Either } from \"effect\"\n *\n * const result = Array.getRights([Either.right(1), Either.left(\"err\"), Either.right(2)])\n * console.log(result) // [1, 2]\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const getRights = self => {\n const out = [];\n for (const a of self) {\n if (Either.isRight(a)) {\n out.push(a.right);\n }\n }\n return out;\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport const filter = /*#__PURE__*/dual(2, (self, predicate) => {\n const as = fromIterable(self);\n const out = [];\n for (let i = 0; i < as.length; i++) {\n if (predicate(as[i], i)) {\n out.push(as[i]);\n }\n }\n return out;\n});\n/**\n * Separate elements based on a predicate that also exposes the index of the element.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.partition([1, 2, 3, 4], n => n % 2 === 0)\n * console.log(result) // [[1, 3], [2, 4]]\n * ```\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const partition = /*#__PURE__*/dual(2, (self, predicate) => {\n const left = [];\n const right = [];\n const as = fromIterable(self);\n for (let i = 0; i < as.length; i++) {\n if (predicate(as[i], i)) {\n right.push(as[i]);\n } else {\n left.push(as[i]);\n }\n }\n return [left, right];\n});\n/**\n * Separates an `Iterable` into two arrays based on a predicate.\n *\n * @category filtering\n * @since 2.0.0\n */\nexport const separate = /*#__PURE__*/partitionMap(identity);\n/**\n * Reduces an array from the left.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.reduce([1, 2, 3], 0, (acc, n) => acc + n)\n * console.log(result) // 6\n * ```\n *\n * @category folding\n * @since 2.0.0\n */\nexport const reduce = /*#__PURE__*/dual(3, (self, b, f) => fromIterable(self).reduce((b, a, i) => f(b, a, i), b));\n/**\n * Reduces an array from the right.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.reduceRight([1, 2, 3], 0, (acc, n) => acc + n)\n * console.log(result) // 6\n * ```\n *\n * @category folding\n * @since 2.0.0\n */\nexport const reduceRight = /*#__PURE__*/dual(3, (self, b, f) => fromIterable(self).reduceRight((b, a, i) => f(b, a, i), b));\n/**\n * Lifts a predicate into an array.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const isEven = (n: number) => n % 2 === 0\n * const to = Array.liftPredicate(isEven)\n * console.log(to(1)) // []\n * console.log(to(2)) // [2]\n * ```\n *\n * @category lifting\n * @since 2.0.0\n */\nexport const liftPredicate = predicate => b => predicate(b) ? [b] : [];\n/**\n * @category lifting\n * @since 2.0.0\n */\nexport const liftOption = f => (...a) => fromOption(f(...a));\n/**\n * @category conversions\n * @since 2.0.0\n */\nexport const fromNullable = a => a == null ? empty() : [a];\n/**\n * @category lifting\n * @since 2.0.0\n */\nexport const liftNullable = f => (...a) => fromNullable(f(...a));\n/**\n * Maps over an array and flattens the result, removing null and undefined values.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.flatMapNullable([1, 2, 3], n => (n % 2 === 0 ? null : n))\n * console.log(result) // [1, 3]\n *\n * // Explanation:\n * // The array of numbers [1, 2, 3] is mapped with a function that returns null for even numbers\n * // and the number itself for odd numbers. The resulting array [1, null, 3] is then flattened\n * // to remove null values, resulting in [1, 3].\n * ```\n *\n * @category sequencing\n * @since 2.0.0\n */\nexport const flatMapNullable = /*#__PURE__*/dual(2, (self, f) => flatMap(self, a => fromNullable(f(a))));\n/**\n * Lifts a function that returns an `Either` into a function that returns an array.\n * If the `Either` is a left, it returns an empty array.\n * If the `Either` is a right, it returns an array with the right value.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Either } from \"effect\"\n *\n * const parseNumber = (s: string): Either.Either =>\n * isNaN(Number(s)) ? Either.left(new Error(\"Not a number\")) : Either.right(Number(s))\n *\n * const liftedParseNumber = Array.liftEither(parseNumber)\n *\n * const result1 = liftedParseNumber(\"42\")\n * console.log(result1) // [42]\n *\n * const result2 = liftedParseNumber(\"not a number\")\n * console.log(result2) // []\n *\n * // Explanation:\n * // The function parseNumber is lifted to return an array.\n * // When parsing \"42\", it returns an Either.left with the number 42, resulting in [42].\n * // When parsing \"not a number\", it returns an Either.right with an error, resulting in an empty array [].\n * ```\n *\n * @category lifting\n * @since 2.0.0\n */\nexport const liftEither = f => (...a) => {\n const e = f(...a);\n return Either.isLeft(e) ? [] : [e.right];\n};\n/**\n * Check if a predicate holds true for every `ReadonlyArray` element.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const every = /*#__PURE__*/dual(2, (self, refinement) => self.every(refinement));\n/**\n * Check if a predicate holds true for some `ReadonlyArray` element.\n *\n * @category elements\n * @since 2.0.0\n */\nexport const some = /*#__PURE__*/dual(2, (self, predicate) => self.some(predicate));\n/**\n * Extends an array with a function that maps each subarray to a value.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.extend([1, 2, 3], as => as.length)\n * console.log(result) // [3, 2, 1]\n *\n * // Explanation:\n * // The function maps each subarray starting from each element to its length.\n * // The subarrays are: [1, 2, 3], [2, 3], [3].\n * // The lengths are: 3, 2, 1.\n * // Therefore, the result is [3, 2, 1].\n * ```\n *\n * @since 2.0.0\n */\nexport const extend = /*#__PURE__*/dual(2, (self, f) => self.map((_, i, as) => f(as.slice(i))));\n/**\n * Finds the minimum element in an array based on a comparator.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Order } from \"effect\"\n *\n * const result = Array.min([3, 1, 2], Order.number)\n * console.log(result) // 1\n * ```\n *\n * @since 2.0.0\n */\nexport const min = /*#__PURE__*/dual(2, (self, O) => self.reduce(Order.min(O)));\n/**\n * Finds the maximum element in an array based on a comparator.\n *\n * **Example**\n *\n * ```ts\n * import { Array, Order } from \"effect\"\n *\n * const result = Array.max([3, 1, 2], Order.number)\n * console.log(result) // 3\n * ```\n *\n * @since 2.0.0\n */\nexport const max = /*#__PURE__*/dual(2, (self, O) => self.reduce(Order.max(O)));\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport const unfold = (b, f) => {\n const out = [];\n let next = b;\n let o;\n while (Option.isSome(o = f(next))) {\n const [a, b] = o.value;\n out.push(a);\n next = b;\n }\n return out;\n};\n/**\n * This function creates and returns a new `Order` for an array of values based on a given `Order` for the elements of the array.\n * The returned `Order` compares two arrays by applying the given `Order` to each element in the arrays.\n * If all elements are equal, the arrays are then compared based on their length.\n * It is useful when you need to compare two arrays of the same type and you have a specific way of comparing each element of the array.\n *\n * @category instances\n * @since 2.0.0\n */\nexport const getOrder = Order.array;\n/**\n * Creates an equivalence relation for arrays.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const eq = Array.getEquivalence((a, b) => a === b)\n * console.log(eq([1, 2, 3], [1, 2, 3])) // true\n * ```\n *\n * @category instances\n * @since 2.0.0\n */\nexport const getEquivalence = Equivalence.array;\n/**\n * Performs a side-effect for each element of the `Iterable`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * Array.forEach([1, 2, 3], n => console.log(n)) // 1, 2, 3\n * ```\n *\n * @since 2.0.0\n */\nexport const forEach = /*#__PURE__*/dual(2, (self, f) => fromIterable(self).forEach((a, i) => f(a, i)));\n/**\n * Remove duplicates from an `Iterable` using the provided `isEquivalent` function,\n * preserving the order of the first occurrence of each element.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.dedupeWith([1, 2, 2, 3, 3, 3], (a, b) => a === b)\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @since 2.0.0\n */\nexport const dedupeWith = /*#__PURE__*/dual(2, (self, isEquivalent) => {\n const input = fromIterable(self);\n if (isNonEmptyReadonlyArray(input)) {\n const out = [headNonEmpty(input)];\n const rest = tailNonEmpty(input);\n for (const r of rest) {\n if (out.every(a => !isEquivalent(r, a))) {\n out.push(r);\n }\n }\n return out;\n }\n return [];\n});\n/**\n * Remove duplicates from an `Iterable`, preserving the order of the first occurrence of each element.\n * The equivalence used to compare elements is provided by `Equal.equivalence()` from the `Equal` module.\n *\n * @since 2.0.0\n */\nexport const dedupe = self => dedupeWith(self, Equal.equivalence());\n/**\n * Deduplicates adjacent elements that are identical using the provided `isEquivalent` function.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.dedupeAdjacentWith([1, 1, 2, 2, 3, 3], (a, b) => a === b)\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @since 2.0.0\n */\nexport const dedupeAdjacentWith = /*#__PURE__*/dual(2, (self, isEquivalent) => {\n const out = [];\n let lastA = Option.none();\n for (const a of self) {\n if (Option.isNone(lastA) || !isEquivalent(a, lastA.value)) {\n out.push(a);\n lastA = Option.some(a);\n }\n }\n return out;\n});\n/**\n * Deduplicates adjacent elements that are identical.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.dedupeAdjacent([1, 1, 2, 2, 3, 3])\n * console.log(result) // [1, 2, 3]\n * ```\n *\n * @since 2.0.0\n */\nexport const dedupeAdjacent = /*#__PURE__*/dedupeAdjacentWith(/*#__PURE__*/Equal.equivalence());\n/**\n * Joins the elements together with \"sep\" in the middle.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const strings = [\"a\", \"b\", \"c\"]\n * const joined = Array.join(strings, \"-\")\n * console.log(joined) // \"a-b-c\"\n * ```\n *\n * @since 2.0.0\n * @category folding\n */\nexport const join = /*#__PURE__*/dual(2, (self, sep) => fromIterable(self).join(sep));\n/**\n * Statefully maps over the chunk, producing new elements of type `B`.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.mapAccum([1, 2, 3], 0, (acc, n) => [acc + n, acc + n])\n * console.log(result) // [6, [1, 3, 6]]\n * ```\n *\n * @since 2.0.0\n * @category folding\n */\nexport const mapAccum = /*#__PURE__*/dual(3, (self, s, f) => {\n let i = 0;\n let s1 = s;\n const out = [];\n for (const a of self) {\n const r = f(s1, a, i);\n s1 = r[0];\n out.push(r[1]);\n i++;\n }\n return [s1, out];\n});\n/**\n * Zips this chunk crosswise with the specified chunk using the specified combiner.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.cartesianWith([1, 2], [\"a\", \"b\"], (a, b) => `${a}-${b}`)\n * console.log(result) // [\"1-a\", \"1-b\", \"2-a\", \"2-b\"]\n * ```\n *\n * @since 2.0.0\n * @category elements\n */\nexport const cartesianWith = /*#__PURE__*/dual(3, (self, that, f) => flatMap(self, a => map(that, b => f(a, b))));\n/**\n * Zips this chunk crosswise with the specified chunk.\n *\n * **Example**\n *\n * ```ts\n * import { Array } from \"effect\"\n *\n * const result = Array.cartesian([1, 2], [\"a\", \"b\"])\n * console.log(result) // [[1, \"a\"], [1, \"b\"], [2, \"a\"], [2, \"b\"]]\n * ```\n *\n * @since 2.0.0\n * @category elements\n */\nexport const cartesian = /*#__PURE__*/dual(2, (self, that) => cartesianWith(self, that, (a, b) => [a, b]));\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * The \"do simulation\" for array allows you to sequentially apply operations to the elements of arrays, just as nested loops allow you to go through all combinations of elements in an arrays.\n *\n * It can be used to simulate \"array comprehension\".\n * It's a technique that allows you to create new arrays by iterating over existing ones and applying specific **conditions** or **transformations** to the elements. It's like assembling a new collection from pieces of other collections based on certain rules.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Array` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n * 5. Regular `Array` functions like `map` and `filter` can still be used within the do simulation. These functions will receive the accumulated variables as arguments within the scope\n *\n * **Example**\n *\n * ```ts\n * import { Array, pipe } from \"effect\"\n *\n * const doResult = pipe(\n * Array.Do,\n * Array.bind(\"x\", () => [1, 3, 5]),\n * Array.bind(\"y\", () => [2, 4, 6]),\n * Array.filter(({ x, y }) => x < y), // condition\n * Array.map(({ x, y }) => [x, y] as const) // transformation\n * )\n * console.log(doResult) // [[1, 2], [1, 4], [1, 6], [3, 4], [3, 6], [5, 6]]\n *\n * // equivalent\n * const x = [1, 3, 5],\n * y = [2, 4, 6],\n * result = [];\n * for(let i = 0; i < x.length; i++) {\n * for(let j = 0; j < y.length; j++) {\n * const _x = x[i], _y = y[j];\n * if(_x < _y) result.push([_x, _y] as const)\n * }\n * }\n * ```\n *\n * @see {@link bindTo}\n * @see {@link bind}\n * @see {@link let_ let}\n *\n * @category do notation\n * @since 3.2.0\n */\nexport const Do = /*#__PURE__*/of({});\n/**\n * The \"do simulation\" for array allows you to sequentially apply operations to the elements of arrays, just as nested loops allow you to go through all combinations of elements in an arrays.\n *\n * It can be used to simulate \"array comprehension\".\n * It's a technique that allows you to create new arrays by iterating over existing ones and applying specific **conditions** or **transformations** to the elements. It's like assembling a new collection from pieces of other collections based on certain rules.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Array` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n * 5. Regular `Array` functions like `map` and `filter` can still be used within the do simulation. These functions will receive the accumulated variables as arguments within the scope\n *\n * **Example**\n *\n * ```ts\n * import { Array, pipe } from \"effect\"\n *\n * const doResult = pipe(\n * Array.Do,\n * Array.bind(\"x\", () => [1, 3, 5]),\n * Array.bind(\"y\", () => [2, 4, 6]),\n * Array.filter(({ x, y }) => x < y), // condition\n * Array.map(({ x, y }) => [x, y] as const) // transformation\n * )\n * console.log(doResult) // [[1, 2], [1, 4], [1, 6], [3, 4], [3, 6], [5, 6]]\n *\n * // equivalent\n * const x = [1, 3, 5],\n * y = [2, 4, 6],\n * result = [];\n * for(let i = 0; i < x.length; i++) {\n * for(let j = 0; j < y.length; j++) {\n * const _x = x[i], _y = y[j];\n * if(_x < _y) result.push([_x, _y] as const)\n * }\n * }\n * ```\n *\n * @see {@link bindTo}\n * @see {@link Do}\n * @see {@link let_ let}\n *\n * @category do notation\n * @since 3.2.0\n */\nexport const bind = /*#__PURE__*/internalDoNotation.bind(map, flatMap);\n/**\n * The \"do simulation\" for array allows you to sequentially apply operations to the elements of arrays, just as nested loops allow you to go through all combinations of elements in an arrays.\n *\n * It can be used to simulate \"array comprehension\".\n * It's a technique that allows you to create new arrays by iterating over existing ones and applying specific **conditions** or **transformations** to the elements. It's like assembling a new collection from pieces of other collections based on certain rules.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Array` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n * 5. Regular `Array` functions like `map` and `filter` can still be used within the do simulation. These functions will receive the accumulated variables as arguments within the scope\n *\n * **Example**\n *\n * ```ts\n * import { Array, pipe } from \"effect\"\n *\n * const doResult = pipe(\n * Array.Do,\n * Array.bind(\"x\", () => [1, 3, 5]),\n * Array.bind(\"y\", () => [2, 4, 6]),\n * Array.filter(({ x, y }) => x < y), // condition\n * Array.map(({ x, y }) => [x, y] as const) // transformation\n * )\n * console.log(doResult) // [[1, 2], [1, 4], [1, 6], [3, 4], [3, 6], [5, 6]]\n *\n * // equivalent\n * const x = [1, 3, 5],\n * y = [2, 4, 6],\n * result = [];\n * for(let i = 0; i < x.length; i++) {\n * for(let j = 0; j < y.length; j++) {\n * const _x = x[i], _y = y[j];\n * if(_x < _y) result.push([_x, _y] as const)\n * }\n * }\n * ```\n *\n * @see {@link bindTo}\n * @see {@link Do}\n * @see {@link let_ let}\n *\n * @category do notation\n * @since 3.2.0\n */\nexport const bindTo = /*#__PURE__*/internalDoNotation.bindTo(map);\nconst let_ = /*#__PURE__*/internalDoNotation.let_(map);\nexport {\n/**\n * The \"do simulation\" for array allows you to sequentially apply operations to the elements of arrays, just as nested loops allow you to go through all combinations of elements in an arrays.\n *\n * It can be used to simulate \"array comprehension\".\n * It's a technique that allows you to create new arrays by iterating over existing ones and applying specific **conditions** or **transformations** to the elements. It's like assembling a new collection from pieces of other collections based on certain rules.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Array` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n * 5. Regular `Array` functions like `map` and `filter` can still be used within the do simulation. These functions will receive the accumulated variables as arguments within the scope\n *\n * **Example**\n *\n * ```ts\n * import { Array, pipe } from \"effect\"\n *\n * const doResult = pipe(\n * Array.Do,\n * Array.bind(\"x\", () => [1, 3, 5]),\n * Array.bind(\"y\", () => [2, 4, 6]),\n * Array.filter(({ x, y }) => x < y), // condition\n * Array.map(({ x, y }) => [x, y] as const) // transformation\n * )\n * console.log(doResult) // [[1, 2], [1, 4], [1, 6], [3, 4], [3, 6], [5, 6]]\n *\n * // equivalent\n * const x = [1, 3, 5],\n * y = [2, 4, 6],\n * result = [];\n * for(let i = 0; i < x.length; i++) {\n * for(let j = 0; j < y.length; j++) {\n * const _x = x[i], _y = y[j];\n * if(_x < _y) result.push([_x, _y] as const)\n * }\n * }\n *\n * ```\n *\n * @see {@link bindTo}\n * @see {@link bind}\n * @see {@link Do}\n *\n * @category do notation\n * @since 3.2.0\n */\nlet_ as let };\n//# sourceMappingURL=Array.js.map","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","import { AbiEncodingArrayLengthMismatchError, AbiEncodingBytesSizeMismatchError, AbiEncodingLengthMismatchError, InvalidAbiEncodingTypeError, InvalidArrayError, } from '../../errors/abi.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { BaseError } from '../../errors/base.js';\nimport { IntegerOutOfRangeError } from '../../errors/encoding.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { concat } from '../data/concat.js';\nimport { padHex } from '../data/pad.js';\nimport { size } from '../data/size.js';\nimport { slice } from '../data/slice.js';\nimport { boolToHex, numberToHex, stringToHex, } from '../encoding/toHex.js';\nimport { integerRegex } from '../regex.js';\n/**\n * @description Encodes a list of primitive values into an ABI-encoded hex value.\n *\n * - Docs: https://viem.sh/docs/abi/encodeAbiParameters#encodeabiparameters\n *\n * Generates ABI encoded data using the [ABI specification](https://docs.soliditylang.org/en/latest/abi-spec), given a set of ABI parameters (inputs/outputs) and their corresponding values.\n *\n * @param params - a set of ABI Parameters (params), that can be in the shape of the inputs or outputs attribute of an ABI Item.\n * @param values - a set of values (values) that correspond to the given params.\n * @example\n * ```typescript\n * import { encodeAbiParameters } from 'viem'\n *\n * const encodedData = encodeAbiParameters(\n * [\n * { name: 'x', type: 'string' },\n * { name: 'y', type: 'uint' },\n * { name: 'z', type: 'bool' }\n * ],\n * ['wagmi', 420n, true]\n * )\n * ```\n *\n * You can also pass in Human Readable parameters with the parseAbiParameters utility.\n *\n * @example\n * ```typescript\n * import { encodeAbiParameters, parseAbiParameters } from 'viem'\n *\n * const encodedData = encodeAbiParameters(\n * parseAbiParameters('string x, uint y, bool z'),\n * ['wagmi', 420n, true]\n * )\n * ```\n */\nexport function encodeAbiParameters(params, values) {\n if (params.length !== values.length)\n throw new AbiEncodingLengthMismatchError({\n expectedLength: params.length,\n givenLength: values.length,\n });\n // Prepare the parameters to determine dynamic types to encode.\n const preparedParams = prepareParams({\n params: params,\n values: values,\n });\n const data = encodeParams(preparedParams);\n if (data.length === 0)\n return '0x';\n return data;\n}\nfunction prepareParams({ params, values, }) {\n const preparedParams = [];\n for (let i = 0; i < params.length; i++) {\n preparedParams.push(prepareParam({ param: params[i], value: values[i] }));\n }\n return preparedParams;\n}\nfunction prepareParam({ param, value, }) {\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents) {\n const [length, type] = arrayComponents;\n return encodeArray(value, { length, param: { ...param, type } });\n }\n if (param.type === 'tuple') {\n return encodeTuple(value, {\n param: param,\n });\n }\n if (param.type === 'address') {\n return encodeAddress(value);\n }\n if (param.type === 'bool') {\n return encodeBool(value);\n }\n if (param.type.startsWith('uint') || param.type.startsWith('int')) {\n const signed = param.type.startsWith('int');\n const [, , size = '256'] = integerRegex.exec(param.type) ?? [];\n return encodeNumber(value, {\n signed,\n size: Number(size),\n });\n }\n if (param.type.startsWith('bytes')) {\n return encodeBytes(value, { param });\n }\n if (param.type === 'string') {\n return encodeString(value);\n }\n throw new InvalidAbiEncodingTypeError(param.type, {\n docsPath: '/docs/contract/encodeAbiParameters',\n });\n}\nfunction encodeParams(preparedParams) {\n // 1. Compute the size of the static part of the parameters.\n let staticSize = 0;\n for (let i = 0; i < preparedParams.length; i++) {\n const { dynamic, encoded } = preparedParams[i];\n if (dynamic)\n staticSize += 32;\n else\n staticSize += size(encoded);\n }\n // 2. Split the parameters into static and dynamic parts.\n const staticParams = [];\n const dynamicParams = [];\n let dynamicSize = 0;\n for (let i = 0; i < preparedParams.length; i++) {\n const { dynamic, encoded } = preparedParams[i];\n if (dynamic) {\n staticParams.push(numberToHex(staticSize + dynamicSize, { size: 32 }));\n dynamicParams.push(encoded);\n dynamicSize += size(encoded);\n }\n else {\n staticParams.push(encoded);\n }\n }\n // 3. Concatenate static and dynamic parts.\n return concat([...staticParams, ...dynamicParams]);\n}\nfunction encodeAddress(value) {\n if (!isAddress(value))\n throw new InvalidAddressError({ address: value });\n return { dynamic: false, encoded: padHex(value.toLowerCase()) };\n}\nfunction encodeArray(value, { length, param, }) {\n const dynamic = length === null;\n if (!Array.isArray(value))\n throw new InvalidArrayError(value);\n if (!dynamic && value.length !== length)\n throw new AbiEncodingArrayLengthMismatchError({\n expectedLength: length,\n givenLength: value.length,\n type: `${param.type}[${length}]`,\n });\n let dynamicChild = false;\n const preparedParams = [];\n for (let i = 0; i < value.length; i++) {\n const preparedParam = prepareParam({ param, value: value[i] });\n if (preparedParam.dynamic)\n dynamicChild = true;\n preparedParams.push(preparedParam);\n }\n if (dynamic || dynamicChild) {\n const data = encodeParams(preparedParams);\n if (dynamic) {\n const length = numberToHex(preparedParams.length, { size: 32 });\n return {\n dynamic: true,\n encoded: preparedParams.length > 0 ? concat([length, data]) : length,\n };\n }\n if (dynamicChild)\n return { dynamic: true, encoded: data };\n }\n return {\n dynamic: false,\n encoded: concat(preparedParams.map(({ encoded }) => encoded)),\n };\n}\nfunction encodeBytes(value, { param }) {\n const [, paramSize] = param.type.split('bytes');\n const bytesSize = size(value);\n if (!paramSize) {\n let value_ = value;\n // If the size is not divisible by 32 bytes, pad the end\n // with empty bytes to the ceiling 32 bytes.\n if (bytesSize % 32 !== 0)\n value_ = padHex(value_, {\n dir: 'right',\n size: Math.ceil((value.length - 2) / 2 / 32) * 32,\n });\n return {\n dynamic: true,\n encoded: concat([padHex(numberToHex(bytesSize, { size: 32 })), value_]),\n };\n }\n if (bytesSize !== Number.parseInt(paramSize, 10))\n throw new AbiEncodingBytesSizeMismatchError({\n expectedSize: Number.parseInt(paramSize, 10),\n value,\n });\n return { dynamic: false, encoded: padHex(value, { dir: 'right' }) };\n}\nfunction encodeBool(value) {\n if (typeof value !== 'boolean')\n throw new BaseError(`Invalid boolean value: \"${value}\" (type: ${typeof value}). Expected: \\`true\\` or \\`false\\`.`);\n return { dynamic: false, encoded: padHex(boolToHex(value)) };\n}\nfunction encodeNumber(value, { signed, size = 256 }) {\n if (typeof size === 'number') {\n const max = 2n ** (BigInt(size) - (signed ? 1n : 0n)) - 1n;\n const min = signed ? -max - 1n : 0n;\n if (value > max || value < min)\n throw new IntegerOutOfRangeError({\n max: max.toString(),\n min: min.toString(),\n signed,\n size: size / 8,\n value: value.toString(),\n });\n }\n return {\n dynamic: false,\n encoded: numberToHex(value, {\n size: 32,\n signed,\n }),\n };\n}\nfunction encodeString(value) {\n const hexValue = stringToHex(value);\n const partsLength = Math.ceil(size(hexValue) / 32);\n const parts = [];\n for (let i = 0; i < partsLength; i++) {\n parts.push(padHex(slice(hexValue, i * 32, (i + 1) * 32), {\n dir: 'right',\n }));\n }\n return {\n dynamic: true,\n encoded: concat([\n padHex(numberToHex(size(hexValue), { size: 32 })),\n ...parts,\n ]),\n };\n}\nfunction encodeTuple(value, { param }) {\n let dynamic = false;\n const preparedParams = [];\n for (let i = 0; i < param.components.length; i++) {\n const param_ = param.components[i];\n const index = Array.isArray(value) ? i : param_.name;\n const preparedParam = prepareParam({\n param: param_,\n value: value[index],\n });\n preparedParams.push(preparedParam);\n if (preparedParam.dynamic)\n dynamic = true;\n }\n return {\n dynamic,\n encoded: dynamic\n ? encodeParams(preparedParams)\n : concat(preparedParams.map(({ encoded }) => encoded)),\n };\n}\nexport function getArrayComponents(type) {\n const matches = type.match(/^(.*)\\[(\\d+)?\\]$/);\n return matches\n ? // Return `null` if the array is dynamic.\n [matches[2] ? Number(matches[2]) : null, matches[1]]\n : undefined;\n}\n//# sourceMappingURL=encodeAbiParameters.js.map","/**\n * # Number\n *\n * This module provides utility functions and type class instances for working\n * with the `number` type in TypeScript. It includes functions for basic\n * arithmetic operations, as well as type class instances for `Equivalence` and\n * `Order`.\n *\n * ## Operations Reference\n *\n * | Category | Operation | Description | Domain | Co-domain |\n * | ------------ | ------------------------------------------ | ------------------------------------------------------- | ------------------------------ | --------------------- |\n * | constructors | {@link module:Number.parse} | Safely parses a string to a number | `string` | `Option` |\n * | | | | | |\n * | math | {@link module:Number.sum} | Adds two numbers | `number`, `number` | `number` |\n * | math | {@link module:Number.sumAll} | Sums all numbers in a collection | `Iterable` | `number` |\n * | math | {@link module:Number.subtract} | Subtracts one number from another | `number`, `number` | `number` |\n * | math | {@link module:Number.multiply} | Multiplies two numbers | `number`, `number` | `number` |\n * | math | {@link module:Number.multiplyAll} | Multiplies all numbers in a collection | `Iterable` | `number` |\n * | math | {@link module:Number.divide} | Safely divides handling division by zero | `number`, `number` | `Option` |\n * | math | {@link module:Number.unsafeDivide} | Divides but misbehaves for division by zero | `number`, `number` | `number` |\n * | math | {@link module:Number.remainder} | Calculates remainder of division | `number`, `number` | `number` |\n * | math | {@link module:Number.increment} | Adds 1 to a number | `number` | `number` |\n * | math | {@link module:Number.decrement} | Subtracts 1 from a number | `number` | `number` |\n * | math | {@link module:Number.sign} | Determines the sign of a number | `number` | `Ordering` |\n * | math | {@link module:Number.nextPow2} | Finds the next power of 2 | `number` | `number` |\n * | math | {@link module:Number.round} | Rounds a number with specified precision | `number`, `number` | `number` |\n * | | | | | |\n * | predicates | {@link module:Number.between} | Checks if a number is in a range | `number`, `{minimum, maximum}` | `boolean` |\n * | predicates | {@link module:Number.lessThan} | Checks if one number is less than another | `number`, `number` | `boolean` |\n * | predicates | {@link module:Number.lessThanOrEqualTo} | Checks if one number is less than or equal | `number`, `number` | `boolean` |\n * | predicates | {@link module:Number.greaterThan} | Checks if one number is greater than another | `number`, `number` | `boolean` |\n * | predicates | {@link module:Number.greaterThanOrEqualTo} | Checks if one number is greater or equal | `number`, `number` | `boolean` |\n * | | | | | |\n * | guards | {@link module:Number.isNumber} | Type guard for JavaScript numbers | `unknown` | `boolean` |\n * | | | | | |\n * | comparison | {@link module:Number.min} | Returns the minimum of two numbers | `number`, `number` | `number` |\n * | comparison | {@link module:Number.max} | Returns the maximum of two numbers | `number`, `number` | `number` |\n * | comparison | {@link module:Number.clamp} | Restricts a number to a range | `number`, `{minimum, maximum}` | `number` |\n * | | | | | |\n * | instances | {@link module:Number.Equivalence} | Equivalence instance for numbers | | `Equivalence` |\n * | instances | {@link module:Number.Order} | Order instance for numbers | | `Order` |\n * | | | | | |\n * | errors | {@link module:Number.DivisionByZeroError} | Error thrown by unsafeDivide | | |\n *\n * ## Composition Patterns and Type Safety\n *\n * When building function pipelines, understanding how types flow through\n * operations is critical:\n *\n * ### Composing with type-preserving operations\n *\n * Most operations in this module are type-preserving (`number → number`),\n * making them easily composable in pipelines:\n *\n * ```ts\n * import { pipe } from \"effect\"\n * import * as Number from \"effect/Number\"\n *\n * const result = pipe(\n * 10,\n * Number.increment, // number → number\n * Number.multiply(2), // number → number\n * Number.round(1) // number → number\n * ) // Result: number (21)\n * ```\n *\n * ### Working with Option results\n *\n * Operations that might fail (like division by zero) return Option types and\n * require Option combinators:\n *\n * ```ts\n * import { pipe, Option } from \"effect\"\n * import * as Number from \"effect/Number\"\n *\n * const result = pipe(\n * 10,\n * Number.divide(0), // number → Option\n * Option.getOrElse(() => 0) // Option → number\n * ) // Result: number (0)\n * ```\n *\n * ### Composition best practices\n *\n * - Chain type-preserving operations for maximum composability\n * - Use Option combinators when working with potentially failing operations\n * - Consider using Effect for operations that might fail with specific errors\n * - Remember that all operations maintain JavaScript's floating-point precision\n * limitations\n *\n * @module Number\n * @since 2.0.0\n * @see {@link module:BigInt} for more similar operations on `bigint` types\n * @see {@link module:BigDecimal} for more similar operations on `BigDecimal` types\n */\nimport * as equivalence from \"./Equivalence.js\";\nimport { dual } from \"./Function.js\";\nimport * as option from \"./internal/option.js\";\nimport * as _Iterable from \"./Iterable.js\";\nimport * as order from \"./Order.js\";\nimport * as predicate from \"./Predicate.js\";\n/**\n * Type guard that tests if a value is a member of the set of JavaScript\n * numbers.\n *\n * @memberof Number\n * @since 2.0.0\n * @category guards\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import * as Number from \"effect/Number\"\n *\n * // Regular numbers\n * assert.equal(Number.isNumber(2), true)\n * assert.equal(Number.isNumber(-3.14), true)\n * assert.equal(Number.isNumber(0), true)\n *\n * // Special numeric values\n * assert.equal(Number.isNumber(Infinity), true)\n * assert.equal(Number.isNumber(NaN), true)\n *\n * // Non-number values\n * assert.equal(Number.isNumber(\"2\"), false)\n * assert.equal(Number.isNumber(true), false)\n * assert.equal(Number.isNumber(null), false)\n * assert.equal(Number.isNumber(undefined), false)\n * assert.equal(Number.isNumber({}), false)\n * assert.equal(Number.isNumber([]), false)\n *\n * // Using as a type guard in conditionals\n * function processValue(value: unknown): string {\n * if (Number.isNumber(value)) {\n * // TypeScript now knows 'value' is a number\n * return `Numeric value: ${value.toFixed(2)}`\n * }\n * return \"Not a number\"\n * }\n *\n * assert.strictEqual(processValue(42), \"Numeric value: 42.00\")\n * assert.strictEqual(processValue(\"hello\"), \"Not a number\")\n *\n * // Filtering for numbers in an array\n * const mixed = [1, \"two\", 3, false, 5]\n * const onlyNumbers = mixed.filter(Number.isNumber)\n * assert.equal(onlyNumbers, [1, 3, 5])\n * ```\n *\n * @param input - The value to test for membership in the set of JavaScript\n * numbers\n *\n * @returns `true` if the input is a JavaScript number, `false` otherwise\n */\nexport const isNumber = predicate.isNumber;\n/**\n * Returns the additive inverse of a number, effectively negating it.\n *\n * @memberof Number\n * @since 3.14.6\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { pipe } from \"effect\"\n * import * as Number from \"effect/Number\"\n *\n * assert.equal(\n * Number.negate(5), //\n * -5\n * )\n *\n * assert.equal(\n * Number.negate(-5), //\n * 5\n * )\n *\n * assert.equal(\n * Number.negate(0), //\n * 0\n * )\n * ```\n *\n * @param n - The number value to be negated.\n *\n * @returns The negated number value.\n */\nexport const negate = n => multiply(n, -1);\n/**\n * Performs addition in the set of JavaScript numbers.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { pipe } from \"effect\"\n * import * as Number from \"effect/Number\"\n *\n * // Data-first style (direct application)\n * assert.equal(Number.sum(2, 3), 5)\n * assert.equal(Number.sum(-10, 5), -5)\n * assert.equal(Number.sum(0.1, 0.2), 0.30000000000000004) // Note: floating-point precision limitation\n *\n * // Data-last style (pipeable)\n * assert.equal(\n * pipe(\n * 10,\n * Number.sum(5) // 10 + 5 = 15\n * ),\n * 15\n * )\n *\n * // Chaining multiple additions\n * assert.equal(\n * pipe(\n * 1,\n * Number.sum(2), // 1 + 2 = 3\n * Number.sum(3), // 3 + 3 = 6\n * Number.sum(4) // 6 + 4 = 10\n * ),\n * 10\n * )\n *\n * // Identity property: a + 0 = a\n * assert.equal(Number.sum(42, 0), 42)\n *\n * // Commutative property: a + b = b + a\n * assert.equal(Number.sum(5, 3), Number.sum(3, 5))\n * ```\n */\nexport const sum = /*#__PURE__*/dual(2, (self, that) => self + that);\n/**\n * Computes the sum of all elements in an iterable collection of numbers.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import * as Number from \"effect/Number\"\n *\n * // Basic sums\n * assert.equal(Number.sumAll([2, 3, 4]), 9) // 2 + 3 + 4 = 9\n * assert.equal(Number.sumAll([1.1, 2.2, 3.3]), 6.6) // 1.1 + 2.2 + 3.3 = 6.6\n *\n * // Empty collection returns the additive identity (0)\n * assert.equal(Number.sumAll([]), 0)\n *\n * // Single element collection\n * assert.equal(Number.sumAll([42]), 42)\n *\n * // Sums with negative numbers\n * assert.equal(Number.sumAll([2, -3, 4]), 3) // 2 + (-3) + 4 = 3\n * assert.equal(Number.sumAll([-2, -3, -4]), -9) // (-2) + (-3) + (-4) = -9\n *\n * // Works with any iterable\n * assert.equal(Number.sumAll(new Set([2, 3, 4])), 9)\n *\n * // Using with generated sequences\n * function* range(start: number, end: number) {\n * for (let i = start; i <= end; i++) yield i\n * }\n *\n * // Compute sum of first 5 natural numbers: 1 + 2 + 3 + 4 + 5 = 15\n * assert.equal(Number.sumAll(range(1, 5)), 15)\n *\n * // Floating point precision example\n * assert.equal(\n * Number.sumAll([0.1, 0.2]),\n * 0.30000000000000004 // Note IEEE 754 precision limitation\n * )\n * ```\n *\n * @param collection - An `iterable` containing the `numbers` to sum\n *\n * @returns The sum of all numbers in the collection, or 0 if the collection is\n * empty\n */\nexport const sumAll = collection => _Iterable.reduce(collection, 0, sum);\n/**\n * Performs subtraction in the set of JavaScript numbers.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { pipe } from \"effect\"\n * import * as Number from \"effect/Number\"\n *\n * // Data-first style (direct application)\n * assert.equal(Number.subtract(2, 3), -1) // 2 - 3 = -1\n * assert.equal(Number.subtract(10, 5), 5) // 10 - 5 = 5\n * assert.equal(Number.subtract(0.3, 0.1), 0.19999999999999998) // Note: floating-point precision limitation\n *\n * // Data-last style (pipeable)\n * assert.equal(\n * pipe(\n * 10,\n * Number.subtract(5) // 10 - 5 = 5\n * ),\n * 5\n * )\n *\n * // Chaining multiple subtractions\n * assert.equal(\n * pipe(\n * 20,\n * Number.subtract(5), // 20 - 5 = 15\n * Number.subtract(3), // 15 - 3 = 12\n * Number.subtract(2) // 12 - 2 = 10\n * ),\n * 10\n * )\n *\n * // Right identity property: a - 0 = a\n * assert.equal(Number.subtract(42, 0), 42)\n *\n * // Self-annihilation property: a - a = 0\n * assert.equal(Number.subtract(42, 42), 0)\n *\n * // Non-commutative property: a - b ≠ b - a\n * assert.equal(Number.subtract(5, 3), 2) // 5 - 3 = 2\n * assert.equal(Number.subtract(3, 5), -2) // 3 - 5 = -2\n *\n * // Inverse relation: a - b = -(b - a)\n * assert.equal(Number.subtract(5, 3), -Number.subtract(3, 5))\n * ```\n */\nexport const subtract = /*#__PURE__*/dual(2, (minuend, subtrahend) => minuend - subtrahend);\n/**\n * Performs **multiplication** in the set of JavaScript numbers.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { pipe } from \"effect\"\n * import * as Number from \"effect/Number\"\n *\n * // Data-first style (direct application)\n * assert.equal(Number.multiply(2, 3), 6) // 2 × 3 = 6\n * assert.equal(Number.multiply(-4, 5), -20) // (-4) × 5 = -20\n * assert.equal(Number.multiply(-3, -2), 6) // (-3) × (-2) = 6\n * assert.equal(Number.multiply(0.1, 0.2), 0.020000000000000004) // Note: floating-point precision limitation\n *\n * // Data-last style (pipeable)\n * assert.equal(\n * pipe(\n * 10,\n * Number.multiply(5) // 10 × 5 = 50\n * ),\n * 50\n * )\n *\n * // Chaining multiple multiplications\n * assert.equal(\n * pipe(\n * 2,\n * Number.multiply(3), // 2 × 3 = 6\n * Number.multiply(4), // 6 × 4 = 24\n * Number.multiply(0.5) // 24 × 0.5 = 12\n * ),\n * 12\n * )\n *\n * // Identity property: a × 1 = a\n * assert.equal(Number.multiply(42, 1), 42)\n *\n * // Zero property: a × 0 = 0\n * assert.equal(Number.multiply(42, 0), 0)\n *\n * // Commutative property: a × b = b × a\n * assert.equal(Number.multiply(5, 3), Number.multiply(3, 5))\n *\n * // Associative property: (a × b) × c = a × (b × c)\n * const a = 2,\n * b = 3,\n * c = 4\n * assert.equal(\n * Number.multiply(Number.multiply(a, b), c),\n * Number.multiply(a, Number.multiply(b, c))\n * )\n * ```\n */\nexport const multiply = /*#__PURE__*/dual(2, (multiplier, multiplicand) => multiplier * multiplicand);\n/**\n * Computes the product of all elements in an iterable collection of numbers.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import * as Number from \"effect/Number\"\n *\n * // Basic products\n * assert.equal(Number.multiplyAll([2, 3, 4]), 24) // 2 × 3 × 4 = 24\n * assert.equal(Number.multiplyAll([1.5, 2, 3]), 9) // 1.5 × 2 × 3 = 9\n *\n * // Empty collection returns the multiplicative identity (1)\n * assert.equal(Number.multiplyAll([]), 1)\n *\n * // Single element collection\n * assert.equal(Number.multiplyAll([42]), 42)\n *\n * // Products with negative numbers\n * assert.equal(Number.multiplyAll([2, -3, 4]), -24) // 2 × (-3) × 4 = -24\n * assert.equal(Number.multiplyAll([-2, -3]), 6) // (-2) × (-3) = 6\n *\n * // Zero property - if any element is zero, product is zero\n * assert.equal(Number.multiplyAll([2, 0, 3]), 0)\n *\n * // Works with any iterable\n * assert.equal(Number.multiplyAll(new Set([2, 3, 4])), 24)\n *\n * // Using with generated sequences\n * function* range(start: number, end: number) {\n * for (let i = start; i <= end; i++) yield i\n * }\n *\n * // Compute factorial: 5! = 5 × 4 × 3 × 2 × 1 = 120\n * assert.equal(Number.multiplyAll(range(1, 5)), 120)\n * ```\n *\n * @param collection - An `iterable` containing the `numbers` to multiply\n *\n * @returns The product of all numbers in the collection, or 1 if the collection\n * is empty\n */\nexport const multiplyAll = collection => {\n let out = 1;\n for (const n of collection) {\n if (n === 0) {\n return 0;\n }\n out *= n;\n }\n return out;\n};\n/**\n * Performs division in the set of JavaScript numbers, returning the result\n * wrapped in an `Option` to handle division by zero.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { pipe, Option } from \"effect\"\n * import * as Number from \"effect/Number\"\n *\n * // Data-first style (direct application)\n * assert.equal(Number.divide(6, 3), Option.some(2)) // 6 ÷ 3 = 2\n * assert.equal(Number.divide(-8, 4), Option.some(-2)) // (-8) ÷ 4 = -2\n * assert.equal(Number.divide(-10, -5), Option.some(2)) // (-10) ÷ (-5) = 2\n * assert.equal(Number.divide(1, 3), Option.some(0.3333333333333333)) // Note: floating-point approximation\n *\n * // Handling division by zero\n * assert.equal(Number.divide(6, 0), Option.none()) // 6 ÷ 0 is undefined\n *\n * // Data-last style (pipeable)\n * assert.equal(\n * pipe(\n * 10,\n * Number.divide(2) // 10 ÷ 2 = 5\n * ),\n * Option.some(5)\n * )\n *\n * // Chaining multiple divisions using Option combinators\n * assert.equal(\n * pipe(\n * Option.some(24),\n * Option.flatMap((n) => Number.divide(n, 2)), // 24 ÷ 2 = 12\n * Option.flatMap(Number.divide(3)), // 12 ÷ 3 = 4\n * Option.flatMap(Number.divide(2)) // 4 ÷ 2 = 2\n * ),\n * Option.some(2)\n * )\n *\n * // Division-by-one property: a ÷ 1 = a\n * assert.equal(Number.divide(42, 1), Option.some(42))\n *\n * // Self-division property: a ÷ a = 1 (for a ≠ 0)\n * assert.equal(Number.divide(42, 42), Option.some(1))\n *\n * // Non-commutative property: a ÷ b ≠ b ÷ a\n * assert.notDeepStrictEqual(\n * Number.divide(6, 3), // 6 ÷ 3 = 2\n * Number.divide(3, 6) // 3 ÷ 6 = 0.5\n * )\n * ```\n */\nexport const divide = /*#__PURE__*/dual(2, (dividend, divisor) => divisor === 0 ? option.none : option.some(dividend / divisor));\n/**\n * Performs division in the set of JavaScript numbers, but misbehaves for\n * division by zero.\n *\n * Unlike {@link module:Number.divide} which returns an Option, this function\n * directly returns a number or `Infinity` or `NaN`.\n *\n * - If the `divisor` is zero, it returns `Infinity`.\n * - If both the `dividend` and the `divisor` are zero, then it returns `NaN`.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { pipe } from \"effect\"\n * import * as Number from \"effect/Number\"\n *\n * // Data-first style (direct application)\n * assert.equal(Number.unsafeDivide(6, 3), 2) // 6 ÷ 3 = 2\n * assert.equal(Number.unsafeDivide(-8, 4), -2) // (-8) ÷ 4 = -2\n * assert.equal(Number.unsafeDivide(-10, -5), 2) // (-10) ÷ (-5) = 2\n * assert.equal(Number.unsafeDivide(1, 3), 0.3333333333333333)\n *\n * // Data-last style (pipeable)\n * assert.equal(\n * pipe(\n * 10,\n * Number.unsafeDivide(2) // 10 ÷ 2 = 5\n * ),\n * 5\n * )\n *\n * // Chaining multiple divisions\n * assert.equal(\n * pipe(\n * 24,\n * Number.unsafeDivide(2), // 24 ÷ 2 = 12\n * Number.unsafeDivide(3), // 12 ÷ 3 = 4\n * Number.unsafeDivide(2) // 4 ÷ 2 = 2\n * ),\n * 2\n * )\n *\n * assert.equal(Number.unsafeDivide(6, 0), Infinity)\n *\n * assert.equal(Number.unsafeDivide(0, 0), NaN)\n *\n * // Compare with safe division\n * const safeResult = Number.divide(6, 3) // Option.some(2)\n * const unsafeResult = Number.unsafeDivide(6, 3) // 2 directly\n * ```\n *\n * @throws - An {@link module:Number.DivisionByZeroError} if the divisor is zero.\n * @see {@link module:Number.divide} - Safe division returning an Option\n */\nexport const unsafeDivide = /*#__PURE__*/dual(2, (dividend, divisor) => dividend / divisor);\n/**\n * Returns the result of adding `1` to a given number.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { increment } from \"effect/Number\"\n *\n * assert.equal(increment(2), 3)\n * ```\n */\nexport const increment = n => sum(n, 1);\n/**\n * Decrements a number by `1`.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { decrement } from \"effect/Number\"\n *\n * assert.equal(decrement(3), 2)\n * ```\n */\nexport const decrement = n => subtract(n, 1);\n/**\n * @memberof Number\n * @since 2.0.0\n * @category instances\n */\nexport const Equivalence = equivalence.number;\n/**\n * @memberof Number\n * @since 2.0.0\n * @category instances\n */\nexport const Order = order.number;\n/**\n * Returns `true` if the first argument is less than the second, otherwise\n * `false`.\n *\n * @memberof Number\n * @since 2.0.0\n * @category predicates\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { lessThan } from \"effect/Number\"\n *\n * assert.equal(lessThan(2, 3), true)\n * assert.equal(lessThan(3, 3), false)\n * assert.equal(lessThan(4, 3), false)\n * ```\n */\nexport const lessThan = /*#__PURE__*/order.lessThan(Order);\n/**\n * Returns a function that checks if a given `number` is less than or equal to\n * the provided one.\n *\n * @memberof Number\n * @since 2.0.0\n * @category predicates\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { lessThanOrEqualTo } from \"effect/Number\"\n *\n * assert.equal(lessThanOrEqualTo(2, 3), true)\n * assert.equal(lessThanOrEqualTo(3, 3), true)\n * assert.equal(lessThanOrEqualTo(4, 3), false)\n * ```\n */\nexport const lessThanOrEqualTo = /*#__PURE__*/order.lessThanOrEqualTo(Order);\n/**\n * Returns `true` if the first argument is greater than the second, otherwise\n * `false`.\n *\n * @memberof Number\n * @since 2.0.0\n * @category predicates\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { greaterThan } from \"effect/Number\"\n *\n * assert.equal(greaterThan(2, 3), false)\n * assert.equal(greaterThan(3, 3), false)\n * assert.equal(greaterThan(4, 3), true)\n * ```\n */\nexport const greaterThan = /*#__PURE__*/order.greaterThan(Order);\n/**\n * Returns a function that checks if a given `number` is greater than or equal\n * to the provided one.\n *\n * @memberof Number\n * @since 2.0.0\n * @category predicates\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { greaterThanOrEqualTo } from \"effect/Number\"\n *\n * assert.equal(greaterThanOrEqualTo(2, 3), false)\n * assert.equal(greaterThanOrEqualTo(3, 3), true)\n * assert.equal(greaterThanOrEqualTo(4, 3), true)\n * ```\n */\nexport const greaterThanOrEqualTo = /*#__PURE__*/order.greaterThanOrEqualTo(Order);\n/**\n * Checks if a `number` is between a `minimum` and `maximum` value (inclusive).\n *\n * @memberof Number\n * @since 2.0.0\n * @category predicates\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { Number } from \"effect\"\n *\n * const between = Number.between({ minimum: 0, maximum: 5 })\n *\n * assert.equal(between(3), true)\n * assert.equal(between(-1), false)\n * assert.equal(between(6), false)\n * ```\n */\nexport const between = /*#__PURE__*/order.between(Order);\n/**\n * Restricts the given `number` to be within the range specified by the\n * `minimum` and `maximum` values.\n *\n * - If the `number` is less than the `minimum` value, the function returns the\n * `minimum` value.\n * - If the `number` is greater than the `maximum` value, the function returns the\n * `maximum` value.\n * - Otherwise, it returns the original `number`.\n *\n * @memberof Number\n * @since 2.0.0\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { Number } from \"effect\"\n *\n * const clamp = Number.clamp({ minimum: 1, maximum: 5 })\n *\n * assert.equal(clamp(3), 3)\n * assert.equal(clamp(0), 1)\n * assert.equal(clamp(6), 5)\n * ```\n */\nexport const clamp = /*#__PURE__*/order.clamp(Order);\n/**\n * Returns the minimum between two `number`s.\n *\n * @memberof Number\n * @since 2.0.0\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { min } from \"effect/Number\"\n *\n * assert.equal(min(2, 3), 2)\n * ```\n */\nexport const min = /*#__PURE__*/order.min(Order);\n/**\n * Returns the maximum between two `number`s.\n *\n * @memberof Number\n * @since 2.0.0\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { max } from \"effect/Number\"\n *\n * assert.equal(max(2, 3), 3)\n * ```\n */\nexport const max = /*#__PURE__*/order.max(Order);\n/**\n * Determines the sign of a given `number`.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { sign } from \"effect/Number\"\n *\n * assert.equal(sign(-5), -1)\n * assert.equal(sign(0), 0)\n * assert.equal(sign(5), 1)\n * ```\n */\nexport const sign = n => Order(n, 0);\n/**\n * Returns the remainder left over when one operand is divided by a second\n * operand.\n *\n * It always takes the sign of the dividend.\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { remainder } from \"effect/Number\"\n *\n * assert.equal(remainder(2, 2), 0)\n * assert.equal(remainder(3, 2), 1)\n * assert.equal(remainder(-4, 2), -0)\n * ```\n */\nexport const remainder = /*#__PURE__*/dual(2, (dividend, divisor) => {\n // https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\n const selfDecCount = (dividend.toString().split(\".\")[1] || \"\").length;\n const divisorDecCount = (divisor.toString().split(\".\")[1] || \"\").length;\n const decCount = selfDecCount > divisorDecCount ? selfDecCount : divisorDecCount;\n const selfInt = parseInt(dividend.toFixed(decCount).replace(\".\", \"\"));\n const divisorInt = parseInt(divisor.toFixed(decCount).replace(\".\", \"\"));\n return selfInt % divisorInt / Math.pow(10, decCount);\n});\n/**\n * Returns the next power of 2 greater than or equal to the given number.\n *\n * - For `positive` inputs, returns the smallest power of 2 that is >= the input\n * - For `zero`, returns 2\n * - For `negative` inputs, returns NaN (as logarithms of negative numbers are\n * undefined)\n * - For `NaN` input, returns NaN\n * - For `Infinity`, returns Infinity\n *\n * @memberof Number\n * @since 2.0.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { nextPow2 } from \"effect/Number\"\n *\n * assert.equal(nextPow2(5), 8)\n * assert.equal(nextPow2(17), 32)\n * assert.equal(nextPow2(0), 2)\n * assert.equal(Number.isNaN(nextPow2(-1)), true) // Negative inputs result in NaN\n * ```\n */\nexport const nextPow2 = n => {\n const nextPow = Math.ceil(Math.log(n) / Math.log(2));\n return Math.max(Math.pow(2, nextPow), 2);\n};\n/**\n * Tries to parse a `number` from a `string` using the `Number()` function. The\n * following special string values are supported: \"NaN\", \"Infinity\",\n * \"-Infinity\".\n *\n * @memberof Number\n * @since 2.0.0\n * @category constructors\n */\nexport const parse = s => {\n if (s === \"NaN\") {\n return option.some(NaN);\n }\n if (s === \"Infinity\") {\n return option.some(Infinity);\n }\n if (s === \"-Infinity\") {\n return option.some(-Infinity);\n }\n if (s.trim() === \"\") {\n return option.none;\n }\n const n = Number(s);\n return Number.isNaN(n) ? option.none : option.some(n);\n};\n/**\n * Returns the number rounded with the given precision.\n *\n * @memberof Number\n * @since 3.8.0\n * @category math\n * @example\n *\n * ```ts\n * import * as assert from \"node:assert/strict\"\n * import { round } from \"effect/Number\"\n *\n * assert.equal(round(1.1234, 2), 1.12)\n * assert.equal(round(1.567, 2), 1.57)\n * ```\n */\nexport const round = /*#__PURE__*/dual(2, (self, precision) => {\n const factor = Math.pow(10, precision);\n return Math.round(self * factor) / factor;\n});\n//# sourceMappingURL=Number.js.map","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar inherits = require('inherits')\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nvar useUint8Array = typeof Uint8Array !== 'undefined'\nvar useArrayBuffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n ArrayBuffer.isView &&\n (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT)\n\nfunction toBuffer (data, encoding) {\n // No need to do anything for exact instance\n // This is only valid when safe-buffer.Buffer === buffer.Buffer, i.e. when Buffer.from/Buffer.alloc existed\n if (data instanceof Buffer) return data\n\n // Convert strings to Buffer\n if (typeof data === 'string') return Buffer.from(data, encoding)\n\n /*\n * Wrap any TypedArray instances and DataViews\n * Makes sense only on engines with full TypedArray support -- let Buffer detect that\n */\n if (useArrayBuffer && ArrayBuffer.isView(data)) {\n if (data.byteLength === 0) return Buffer.alloc(0) // Bug in Node.js <6.3.1, which treats this as out-of-bounds\n var res = Buffer.from(data.buffer, data.byteOffset, data.byteLength)\n // Recheck result size, as offset/length doesn't work on Node.js <5.10\n // We just go to Uint8Array case if this fails\n if (res.byteLength === data.byteLength) return res\n }\n\n /*\n * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over\n * Doesn't make sense with other TypedArray instances\n */\n if (useUint8Array && data instanceof Uint8Array) return Buffer.from(data)\n\n /*\n * Old Buffer polyfill on an engine that doesn't have TypedArray support\n * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed\n * Convert to our current Buffer implementation\n */\n if (\n Buffer.isBuffer(data) &&\n data.constructor &&\n typeof data.constructor.isBuffer === 'function' &&\n data.constructor.isBuffer(data)\n ) {\n return Buffer.from(data)\n }\n\n throw new TypeError('The \"data\" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')\n}\n\nHashBase.prototype.update = function (data, encoding) {\n if (this._finalized) throw new Error('Digest already called')\n\n data = toBuffer(data, encoding) // asserts correct input type\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature, options) {\n return this.ec.verify(msg, signature, this, undefined, options);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar createHash = require('create-hash');\nvar stream = require('readable-stream');\nvar inherits = require('inherits');\nvar sign = require('./sign');\nvar verify = require('./verify');\n\nvar algorithms = require('./algorithms.json');\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex');\n algorithms[key.toLowerCase()] = algorithms[key];\n});\n\nfunction Sign(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hashType = data.hash;\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Sign, stream.Writable);\n\nSign.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nSign.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nSign.prototype.sign = function signMethod(key, enc) {\n this.end();\n var hash = this._hash.digest();\n var sig = sign(hash, key, this._hashType, this._signType, this._tag);\n\n return enc ? sig.toString(enc) : sig;\n};\n\nfunction Verify(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Verify, stream.Writable);\n\nVerify.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nVerify.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nVerify.prototype.verify = function verifyMethod(key, sig, enc) {\n var sigBuffer = typeof sig === 'string' ? Buffer.from(sig, enc) : sig;\n\n this.end();\n var hash = this._hash.digest();\n return verify(sigBuffer, hash, key, this._signType, this._tag);\n};\n\nfunction createSign(algorithm) {\n return new Sign(algorithm);\n}\n\nfunction createVerify(algorithm) {\n return new Verify(algorithm);\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n};\n","/**\n * @since 2.0.0\n */\nimport * as Context from \"../Context.js\";\nimport { constFalse } from \"../Function.js\";\n/** @internal */\nexport const TracerTypeId = /*#__PURE__*/Symbol.for(\"effect/Tracer\");\n/** @internal */\nexport const make = options => ({\n [TracerTypeId]: TracerTypeId,\n ...options\n});\n/** @internal */\nexport const tracerTag = /*#__PURE__*/Context.GenericTag(\"effect/Tracer\");\n/** @internal */\nexport const spanTag = /*#__PURE__*/Context.GenericTag(\"effect/ParentSpan\");\nconst randomHexString = /*#__PURE__*/function () {\n const characters = \"abcdef0123456789\";\n const charactersLength = characters.length;\n return function (length) {\n let result = \"\";\n for (let i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n };\n}();\n/** @internal */\nexport class NativeSpan {\n name;\n parent;\n context;\n startTime;\n kind;\n _tag = \"Span\";\n spanId;\n traceId = \"native\";\n sampled = true;\n status;\n attributes;\n events = [];\n links;\n constructor(name, parent, context, links, startTime, kind) {\n this.name = name;\n this.parent = parent;\n this.context = context;\n this.startTime = startTime;\n this.kind = kind;\n this.status = {\n _tag: \"Started\",\n startTime\n };\n this.attributes = new Map();\n this.traceId = parent._tag === \"Some\" ? parent.value.traceId : randomHexString(32);\n this.spanId = randomHexString(16);\n this.links = Array.from(links);\n }\n end(endTime, exit) {\n this.status = {\n _tag: \"Ended\",\n endTime,\n exit,\n startTime: this.status.startTime\n };\n }\n attribute(key, value) {\n this.attributes.set(key, value);\n }\n event(name, startTime, attributes) {\n this.events.push([name, startTime, attributes ?? {}]);\n }\n addLinks(links) {\n // eslint-disable-next-line no-restricted-syntax\n this.links.push(...links);\n }\n}\n/** @internal */\nexport const nativeTracer = /*#__PURE__*/make({\n span: (name, parent, context, links, startTime, kind) => new NativeSpan(name, parent, context, links, startTime, kind),\n context: f => f()\n});\n/** @internal */\nexport const externalSpan = options => ({\n _tag: \"ExternalSpan\",\n spanId: options.spanId,\n traceId: options.traceId,\n sampled: options.sampled ?? true,\n context: options.context ?? Context.empty()\n});\n/** @internal */\nexport const addSpanStackTrace = options => {\n if (options?.captureStackTrace === false) {\n return options;\n } else if (options?.captureStackTrace !== undefined && typeof options.captureStackTrace !== \"boolean\") {\n return options;\n }\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 3;\n const traceError = new Error();\n Error.stackTraceLimit = limit;\n let cache = false;\n return {\n ...options,\n captureStackTrace: () => {\n if (cache !== false) {\n return cache;\n }\n if (traceError.stack !== undefined) {\n const stack = traceError.stack.split(\"\\n\");\n if (stack[3] !== undefined) {\n cache = stack[3].trim();\n return cache;\n }\n }\n }\n };\n};\n/** @internal */\nexport const DisablePropagation = /*#__PURE__*/Context.Reference()(\"effect/Tracer/DisablePropagation\", {\n defaultValue: constFalse\n});\n//# sourceMappingURL=tracer.js.map","var inherits = require('inherits');\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\nvar bignum = asn1.bignum;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!(data instanceof base.DecoderBuffer))\n data = new base.DecoderBuffer(data, options);\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n var state = buffer.save();\n var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n var decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n var len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n var state = buffer.save();\n var res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n while (true) {\n var tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n var len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n var res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len)\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n var result = [];\n while (!buffer.isEmpty()) {\n var possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n var res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n var unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n var raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n var str = '';\n for (var i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n var numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n var printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n var result;\n var identifiers = [];\n var ident = 0;\n while (!buffer.isEmpty()) {\n var subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n var first = (identifiers[0] / 40) | 0;\n var second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n var tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n var str = buffer.raw().toString();\n if (tag === 'gentime') {\n var year = str.slice(0, 4) | 0;\n var mon = str.slice(4, 6) | 0;\n var day = str.slice(6, 8) | 0;\n var hour = str.slice(8, 10) | 0;\n var min = str.slice(10, 12) | 0;\n var sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n var year = str.slice(0, 2) | 0;\n var mon = str.slice(2, 4) | 0;\n var day = str.slice(4, 6) | 0;\n var hour = str.slice(6, 8) | 0;\n var min = str.slice(8, 10) | 0;\n var sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull(buffer) {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n var res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n var raw = buffer.raw();\n var res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n var tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n var cls = der.tagClass[tag >> 6];\n var primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n var oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n var tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n var len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n var num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (var i = 0; i < num; i++) {\n len <<= 8;\n var j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bound');\nvar gOPD = require('gopd');\nvar getProto = require('get-proto');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\n\n/** @type {(array: readonly T[], value: unknown) => number} */\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n/** @typedef {import('./types').Getter} Getter */\n/** @type {import('./types').Cache} */\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getProto) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr && getProto) {\n\t\t\tvar proto = getProto(arr);\n\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor && proto) {\n\t\t\t\tvar superProto = getProto(proto);\n\t\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\tcache[\n\t\t\t\t/** @type {`$${import('.').TypedArrayName}`} */ ('$' + typedArray)\n\t\t\t] = /** @type {import('./types').BoundSlice | import('./types').BoundSet} */ (\n\t\t\t\t// @ts-expect-error TODO FIXME\n\t\t\t\tcallBind(fn)\n\t\t\t);\n\t\t}\n\t});\n}\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */ (cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */\n\t\tfunction (getter, typedArray) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(typedArray, 1));\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar trySlices = function tryAllSlices(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */(cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */ function (getter, name) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tgetter(value);\n\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(name, 1));\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\t/** @type {string} */\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/** @type {(arr: A, iterator: (this: This | void, value: A[number], index: number, arr: A) => void, receiver: This | undefined) => void} */\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\n/** @type {(string: S, iterator: (this: This | void, value: S[number], index: number, string: S) => void, receiver: This | undefined) => void} */\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\n/** @type {(obj: O, iterator: (this: This | void, value: O[keyof O], index: keyof O, obj: O) => void, receiver: This | undefined) => void} */\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\n/** @type {(x: unknown) => x is readonly unknown[]} */\nfunction isArray(x) {\n return toStr.call(x) === '[object Array]';\n}\n\n/** @type {import('.')._internal} */\nmodule.exports = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (isArray(list)) {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n","/**\n * Divides a number by a given exponent of base 10 (10exponent), and formats it into a string representation of the number..\n *\n * - Docs: https://viem.sh/docs/utilities/formatUnits\n *\n * @example\n * import { formatUnits } from 'viem'\n *\n * formatUnits(420000000000n, 9)\n * // '420'\n */\nexport function formatUnits(value, decimals) {\n let display = value.toString();\n const negative = display.startsWith('-');\n if (negative)\n display = display.slice(1);\n display = display.padStart(decimals, '0');\n let [integer, fraction] = [\n display.slice(0, display.length - decimals),\n display.slice(display.length - decimals),\n ];\n fraction = fraction.replace(/(0+)$/, '');\n return `${negative ? '-' : ''}${integer || '0'}${fraction ? `.${fraction}` : ''}`;\n}\n//# sourceMappingURL=formatUnits.js.map","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly, bitLength) {\n var byteLength;\n if (BN.isBN(msg) || typeof msg === 'number') {\n msg = new BN(msg, 16);\n byteLength = msg.byteLength();\n } else if (typeof msg === 'object') {\n // BN assumes an array-like input and asserts length\n byteLength = msg.length;\n msg = new BN(msg, 16);\n } else {\n // BN converts the value to string\n var str = msg.toString();\n // HEX encoding\n byteLength = (str.length + 1) >>> 1;\n msg = new BN(str, 16);\n }\n // Allow overriding\n if (typeof bitLength !== 'number') {\n bitLength = byteLength * 8;\n }\n var delta = bitLength - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n if (typeof msg !== 'string' && typeof msg !== 'number' && !BN.isBN(msg)) {\n assert(typeof msg === 'object' && msg && typeof msg.length === 'number',\n 'Expected message to be an array-like, a hex string, or a BN instance');\n assert((msg.length >>> 0) === msg.length); // non-negative 32-bit integer\n for (var i = 0; i < msg.length; i++) assert((msg[i] & 255) === msg[i]);\n }\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(msg, false, options.msgBitLength);\n\n // Would fail further checks, but let's make the error message clear\n assert(!msg.isNeg(), 'Can not sign a negative message');\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Recheck nonce to be bijective to msg\n assert((new BN(nonce)).eq(msg), 'Can not sign message');\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc, options) {\n if (!options)\n options = {};\n\n msg = this._truncateToN(msg, false, options.msgBitLength);\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","export const deploylessCallViaBytecodeBytecode = '0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe';\nexport const deploylessCallViaFactoryBytecode = '0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe';\nexport const erc6492SignatureValidatorByteCode = '0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572';\nexport const multicall3Bytecode = '0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033';\n//# sourceMappingURL=contracts.js.map","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports[\"default\"]=void 0;var _roundConstants=_interopRequireDefault(require(\"./round-constants\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{\"default\":obj}}var iota=function iota(_ref){var A=_ref.A,roundIndex=_ref.roundIndex;var i=roundIndex*2;A[0]^=_roundConstants[\"default\"][i];A[1]^=_roundConstants[\"default\"][i+1]};var _default=iota;exports[\"default\"]=_default;","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","const size = 256;\nlet index = size;\nlet buffer;\nexport function uid(length = 11) {\n if (!buffer || index + length > size * 2) {\n buffer = '';\n index = 0;\n for (let i = 0; i < size; i++) {\n buffer += ((256 + Math.random() * 256) | 0).toString(16).substring(1);\n }\n }\n return buffer.substring(index, index++ + length);\n}\n//# sourceMappingURL=uid.js.map","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports[\"default\"]=void 0;var _copy=_interopRequireDefault(require(\"../copy\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{\"default\":obj}}var theta=function theta(_ref){var A=_ref.A,C=_ref.C,D=_ref.D,W=_ref.W;var H=0;var L=0;for(var x=0;x<5;x++){var x20=x*2;var x21=(x+5)*2;var x22=(x+10)*2;var x23=(x+15)*2;var x24=(x+20)*2;C[x20]=A[x20]^A[x21]^A[x22]^A[x23]^A[x24];C[x20+1]=A[x20+1]^A[x21+1]^A[x22+1]^A[x23+1]^A[x24+1]}for(var _x=0;_x<5;_x++){(0,_copy[\"default\"])(C,(_x+1)%5)(W,0);H=W[0];L=W[1];W[0]=H<<1|L>>>31;W[1]=L<<1|H>>>31;D[_x*2]=C[(_x+4)%5*2]^W[0];D[_x*2+1]=C[(_x+4)%5*2+1]^W[1];for(var y=0;y<25;y+=5){A[(y+_x)*2]^=D[_x*2];A[(y+_x)*2+1]^=D[_x*2+1]}}};var _default=theta;exports[\"default\"]=_default;","export function defineFormatter(type, format) {\n return ({ exclude, format: overrides, }) => {\n return {\n exclude,\n format: (args, action) => {\n const formatted = format(args, action);\n if (exclude) {\n for (const key of exclude) {\n delete formatted[key];\n }\n }\n return {\n ...formatted,\n ...overrides(args, action),\n };\n },\n type,\n };\n };\n}\n//# sourceMappingURL=formatter.js.map","import { execTyped } from '../regex.js';\n// https://regexr.com/7f7rv\nconst tupleRegex = /^tuple(?(\\[(\\d*)\\])*)$/;\n/**\n * Formats {@link AbiParameter} to human-readable ABI parameter.\n *\n * @param abiParameter - ABI parameter\n * @returns Human-readable ABI parameter\n *\n * @example\n * const result = formatAbiParameter({ type: 'address', name: 'from' })\n * // ^? const result: 'address from'\n */\nexport function formatAbiParameter(abiParameter) {\n let type = abiParameter.type;\n if (tupleRegex.test(abiParameter.type) && 'components' in abiParameter) {\n type = '(';\n const length = abiParameter.components.length;\n for (let i = 0; i < length; i++) {\n const component = abiParameter.components[i];\n type += formatAbiParameter(component);\n if (i < length - 1)\n type += ', ';\n }\n const result = execTyped(tupleRegex, abiParameter.type);\n type += `)${result?.array || ''}`;\n return formatAbiParameter({\n ...abiParameter,\n type,\n });\n }\n // Add `indexed` to type if in `abiParameter`\n if ('indexed' in abiParameter && abiParameter.indexed)\n type = `${type} indexed`;\n // Return human-readable ABI parameter\n if (abiParameter.name)\n return `${type} ${abiParameter.name}`;\n return type;\n}\n//# sourceMappingURL=formatAbiParameter.js.map","import { formatAbiParameter, } from './formatAbiParameter.js';\n/**\n * Formats {@link AbiParameter}s to human-readable ABI parameters.\n *\n * @param abiParameters - ABI parameters\n * @returns Human-readable ABI parameters\n *\n * @example\n * const result = formatAbiParameters([\n * // ^? const result: 'address from, uint256 tokenId'\n * { type: 'address', name: 'from' },\n * { type: 'uint256', name: 'tokenId' },\n * ])\n */\nexport function formatAbiParameters(abiParameters) {\n let params = '';\n const length = abiParameters.length;\n for (let i = 0; i < length; i++) {\n const abiParameter = abiParameters[i];\n params += formatAbiParameter(abiParameter);\n if (i !== length - 1)\n params += ', ';\n }\n return params;\n}\n//# sourceMappingURL=formatAbiParameters.js.map","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","import { versionedHashVersionKzg } from '../../constants/kzg.js';\nimport { maxUint256 } from '../../constants/number.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { BaseError } from '../../errors/base.js';\nimport { EmptyBlobError, InvalidVersionedHashSizeError, InvalidVersionedHashVersionError, } from '../../errors/blob.js';\nimport { InvalidChainIdError, } from '../../errors/chain.js';\nimport { FeeCapTooHighError, TipAboveFeeCapError, } from '../../errors/node.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { size } from '../data/size.js';\nimport { slice } from '../data/slice.js';\nimport { hexToNumber } from '../encoding/fromHex.js';\nexport function assertTransactionEIP7702(transaction) {\n const { authorizationList } = transaction;\n if (authorizationList) {\n for (const authorization of authorizationList) {\n const { chainId } = authorization;\n const address = authorization.address;\n if (!isAddress(address))\n throw new InvalidAddressError({ address });\n if (chainId < 0)\n throw new InvalidChainIdError({ chainId });\n }\n }\n assertTransactionEIP1559(transaction);\n}\nexport function assertTransactionEIP4844(transaction) {\n const { blobVersionedHashes } = transaction;\n if (blobVersionedHashes) {\n if (blobVersionedHashes.length === 0)\n throw new EmptyBlobError();\n for (const hash of blobVersionedHashes) {\n const size_ = size(hash);\n const version = hexToNumber(slice(hash, 0, 1));\n if (size_ !== 32)\n throw new InvalidVersionedHashSizeError({ hash, size: size_ });\n if (version !== versionedHashVersionKzg)\n throw new InvalidVersionedHashVersionError({\n hash,\n version,\n });\n }\n }\n assertTransactionEIP1559(transaction);\n}\nexport function assertTransactionEIP1559(transaction) {\n const { chainId, maxPriorityFeePerGas, maxFeePerGas, to } = transaction;\n if (chainId <= 0)\n throw new InvalidChainIdError({ chainId });\n if (to && !isAddress(to))\n throw new InvalidAddressError({ address: to });\n if (maxFeePerGas && maxFeePerGas > maxUint256)\n throw new FeeCapTooHighError({ maxFeePerGas });\n if (maxPriorityFeePerGas &&\n maxFeePerGas &&\n maxPriorityFeePerGas > maxFeePerGas)\n throw new TipAboveFeeCapError({ maxFeePerGas, maxPriorityFeePerGas });\n}\nexport function assertTransactionEIP2930(transaction) {\n const { chainId, maxPriorityFeePerGas, gasPrice, maxFeePerGas, to } = transaction;\n if (chainId <= 0)\n throw new InvalidChainIdError({ chainId });\n if (to && !isAddress(to))\n throw new InvalidAddressError({ address: to });\n if (maxPriorityFeePerGas || maxFeePerGas)\n throw new BaseError('`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.');\n if (gasPrice && gasPrice > maxUint256)\n throw new FeeCapTooHighError({ maxFeePerGas: gasPrice });\n}\nexport function assertTransactionLegacy(transaction) {\n const { chainId, maxPriorityFeePerGas, gasPrice, maxFeePerGas, to } = transaction;\n if (to && !isAddress(to))\n throw new InvalidAddressError({ address: to });\n if (typeof chainId !== 'undefined' && chainId <= 0)\n throw new InvalidChainIdError({ chainId });\n if (maxPriorityFeePerGas || maxFeePerGas)\n throw new BaseError('`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.');\n if (gasPrice && gasPrice > maxUint256)\n throw new FeeCapTooHighError({ maxFeePerGas: gasPrice });\n}\n//# sourceMappingURL=assertTransaction.js.map","import { InvalidAddressError, } from '../../errors/address.js';\nimport { InvalidStorageKeySizeError, } from '../../errors/transaction.js';\nimport { isAddress } from '../address/isAddress.js';\n/*\n * Serialize an EIP-2930 access list\n * @remarks\n * Use to create a transaction serializer with support for EIP-2930 access lists\n *\n * @param accessList - Array of objects of address and arrays of Storage Keys\n * @throws InvalidAddressError, InvalidStorageKeySizeError\n * @returns Array of hex strings\n */\nexport function serializeAccessList(accessList) {\n if (!accessList || accessList.length === 0)\n return [];\n const serializedAccessList = [];\n for (let i = 0; i < accessList.length; i++) {\n const { address, storageKeys } = accessList[i];\n for (let j = 0; j < storageKeys.length; j++) {\n if (storageKeys[j].length - 2 !== 64) {\n throw new InvalidStorageKeySizeError({ storageKey: storageKeys[j] });\n }\n }\n if (!isAddress(address, { strict: false })) {\n throw new InvalidAddressError({ address });\n }\n serializedAccessList.push([address, storageKeys]);\n }\n return serializedAccessList;\n}\n//# sourceMappingURL=serializeAccessList.js.map","import { InvalidLegacyVError, } from '../../errors/transaction.js';\nimport { serializeAuthorizationList, } from '../authorization/serializeAuthorizationList.js';\nimport { blobsToCommitments, } from '../blob/blobsToCommitments.js';\nimport { blobsToProofs, } from '../blob/blobsToProofs.js';\nimport { commitmentsToVersionedHashes, } from '../blob/commitmentsToVersionedHashes.js';\nimport { toBlobSidecars, } from '../blob/toBlobSidecars.js';\nimport { concatHex } from '../data/concat.js';\nimport { trim } from '../data/trim.js';\nimport { bytesToHex, numberToHex, } from '../encoding/toHex.js';\nimport { toRlp } from '../encoding/toRlp.js';\nimport { assertTransactionEIP1559, assertTransactionEIP2930, assertTransactionEIP4844, assertTransactionEIP7702, assertTransactionLegacy, } from './assertTransaction.js';\nimport { getTransactionType, } from './getTransactionType.js';\nimport { serializeAccessList, } from './serializeAccessList.js';\nexport function serializeTransaction(transaction, signature) {\n const type = getTransactionType(transaction);\n if (type === 'eip1559')\n return serializeTransactionEIP1559(transaction, signature);\n if (type === 'eip2930')\n return serializeTransactionEIP2930(transaction, signature);\n if (type === 'eip4844')\n return serializeTransactionEIP4844(transaction, signature);\n if (type === 'eip7702')\n return serializeTransactionEIP7702(transaction, signature);\n return serializeTransactionLegacy(transaction, signature);\n}\nfunction serializeTransactionEIP7702(transaction, signature) {\n const { authorizationList, chainId, gas, nonce, to, value, maxFeePerGas, maxPriorityFeePerGas, accessList, data, } = transaction;\n assertTransactionEIP7702(transaction);\n const serializedAccessList = serializeAccessList(accessList);\n const serializedAuthorizationList = serializeAuthorizationList(authorizationList);\n return concatHex([\n '0x04',\n toRlp([\n numberToHex(chainId),\n nonce ? numberToHex(nonce) : '0x',\n maxPriorityFeePerGas ? numberToHex(maxPriorityFeePerGas) : '0x',\n maxFeePerGas ? numberToHex(maxFeePerGas) : '0x',\n gas ? numberToHex(gas) : '0x',\n to ?? '0x',\n value ? numberToHex(value) : '0x',\n data ?? '0x',\n serializedAccessList,\n serializedAuthorizationList,\n ...toYParitySignatureArray(transaction, signature),\n ]),\n ]);\n}\nfunction serializeTransactionEIP4844(transaction, signature) {\n const { chainId, gas, nonce, to, value, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, accessList, data, } = transaction;\n assertTransactionEIP4844(transaction);\n let blobVersionedHashes = transaction.blobVersionedHashes;\n let sidecars = transaction.sidecars;\n // If `blobs` are passed, we will need to compute the KZG commitments & proofs.\n if (transaction.blobs &&\n (typeof blobVersionedHashes === 'undefined' ||\n typeof sidecars === 'undefined')) {\n const blobs = (typeof transaction.blobs[0] === 'string'\n ? transaction.blobs\n : transaction.blobs.map((x) => bytesToHex(x)));\n const kzg = transaction.kzg;\n const commitments = blobsToCommitments({\n blobs,\n kzg,\n });\n if (typeof blobVersionedHashes === 'undefined')\n blobVersionedHashes = commitmentsToVersionedHashes({\n commitments,\n });\n if (typeof sidecars === 'undefined') {\n const proofs = blobsToProofs({ blobs, commitments, kzg });\n sidecars = toBlobSidecars({ blobs, commitments, proofs });\n }\n }\n const serializedAccessList = serializeAccessList(accessList);\n const serializedTransaction = [\n numberToHex(chainId),\n nonce ? numberToHex(nonce) : '0x',\n maxPriorityFeePerGas ? numberToHex(maxPriorityFeePerGas) : '0x',\n maxFeePerGas ? numberToHex(maxFeePerGas) : '0x',\n gas ? numberToHex(gas) : '0x',\n to ?? '0x',\n value ? numberToHex(value) : '0x',\n data ?? '0x',\n serializedAccessList,\n maxFeePerBlobGas ? numberToHex(maxFeePerBlobGas) : '0x',\n blobVersionedHashes ?? [],\n ...toYParitySignatureArray(transaction, signature),\n ];\n const blobs = [];\n const commitments = [];\n const proofs = [];\n if (sidecars)\n for (let i = 0; i < sidecars.length; i++) {\n const { blob, commitment, proof } = sidecars[i];\n blobs.push(blob);\n commitments.push(commitment);\n proofs.push(proof);\n }\n return concatHex([\n '0x03',\n sidecars\n ? // If sidecars are enabled, envelope turns into a \"wrapper\":\n toRlp([serializedTransaction, blobs, commitments, proofs])\n : // If sidecars are disabled, standard envelope is used:\n toRlp(serializedTransaction),\n ]);\n}\nfunction serializeTransactionEIP1559(transaction, signature) {\n const { chainId, gas, nonce, to, value, maxFeePerGas, maxPriorityFeePerGas, accessList, data, } = transaction;\n assertTransactionEIP1559(transaction);\n const serializedAccessList = serializeAccessList(accessList);\n const serializedTransaction = [\n numberToHex(chainId),\n nonce ? numberToHex(nonce) : '0x',\n maxPriorityFeePerGas ? numberToHex(maxPriorityFeePerGas) : '0x',\n maxFeePerGas ? numberToHex(maxFeePerGas) : '0x',\n gas ? numberToHex(gas) : '0x',\n to ?? '0x',\n value ? numberToHex(value) : '0x',\n data ?? '0x',\n serializedAccessList,\n ...toYParitySignatureArray(transaction, signature),\n ];\n return concatHex([\n '0x02',\n toRlp(serializedTransaction),\n ]);\n}\nfunction serializeTransactionEIP2930(transaction, signature) {\n const { chainId, gas, data, nonce, to, value, accessList, gasPrice } = transaction;\n assertTransactionEIP2930(transaction);\n const serializedAccessList = serializeAccessList(accessList);\n const serializedTransaction = [\n numberToHex(chainId),\n nonce ? numberToHex(nonce) : '0x',\n gasPrice ? numberToHex(gasPrice) : '0x',\n gas ? numberToHex(gas) : '0x',\n to ?? '0x',\n value ? numberToHex(value) : '0x',\n data ?? '0x',\n serializedAccessList,\n ...toYParitySignatureArray(transaction, signature),\n ];\n return concatHex([\n '0x01',\n toRlp(serializedTransaction),\n ]);\n}\nfunction serializeTransactionLegacy(transaction, signature) {\n const { chainId = 0, gas, data, nonce, to, value, gasPrice } = transaction;\n assertTransactionLegacy(transaction);\n let serializedTransaction = [\n nonce ? numberToHex(nonce) : '0x',\n gasPrice ? numberToHex(gasPrice) : '0x',\n gas ? numberToHex(gas) : '0x',\n to ?? '0x',\n value ? numberToHex(value) : '0x',\n data ?? '0x',\n ];\n if (signature) {\n const v = (() => {\n // EIP-155 (inferred chainId)\n if (signature.v >= 35n) {\n const inferredChainId = (signature.v - 35n) / 2n;\n if (inferredChainId > 0)\n return signature.v;\n return 27n + (signature.v === 35n ? 0n : 1n);\n }\n // EIP-155 (explicit chainId)\n if (chainId > 0)\n return BigInt(chainId * 2) + BigInt(35n + signature.v - 27n);\n // Pre-EIP-155 (no chainId)\n const v = 27n + (signature.v === 27n ? 0n : 1n);\n if (signature.v !== v)\n throw new InvalidLegacyVError({ v: signature.v });\n return v;\n })();\n const r = trim(signature.r);\n const s = trim(signature.s);\n serializedTransaction = [\n ...serializedTransaction,\n numberToHex(v),\n r === '0x00' ? '0x' : r,\n s === '0x00' ? '0x' : s,\n ];\n }\n else if (chainId > 0) {\n serializedTransaction = [\n ...serializedTransaction,\n numberToHex(chainId),\n '0x',\n '0x',\n ];\n }\n return toRlp(serializedTransaction);\n}\nexport function toYParitySignatureArray(transaction, signature_) {\n const signature = signature_ ?? transaction;\n const { v, yParity } = signature;\n if (typeof signature.r === 'undefined')\n return [];\n if (typeof signature.s === 'undefined')\n return [];\n if (typeof v === 'undefined' && typeof yParity === 'undefined')\n return [];\n const r = trim(signature.r);\n const s = trim(signature.s);\n const yParity_ = (() => {\n if (typeof yParity === 'number')\n return yParity ? numberToHex(1) : '0x';\n if (v === 0n)\n return '0x';\n if (v === 1n)\n return numberToHex(1);\n return v === 27n ? '0x' : numberToHex(1);\n })();\n return [yParity_, r === '0x00' ? '0x' : r, s === '0x00' ? '0x' : s];\n}\n//# sourceMappingURL=serializeTransaction.js.map","import { toHex } from '../encoding/toHex.js';\nimport { toYParitySignatureArray } from '../transaction/serializeTransaction.js';\n/*\n * Serializes an EIP-7702 authorization list.\n */\nexport function serializeAuthorizationList(authorizationList) {\n if (!authorizationList || authorizationList.length === 0)\n return [];\n const serializedAuthorizationList = [];\n for (const authorization of authorizationList) {\n const { chainId, nonce, ...signature } = authorization;\n const contractAddress = authorization.address;\n serializedAuthorizationList.push([\n chainId ? toHex(chainId) : '0x',\n contractAddress,\n nonce ? toHex(nonce) : '0x',\n ...toYParitySignatureArray({}, signature),\n ]);\n }\n return serializedAuthorizationList;\n}\n//# sourceMappingURL=serializeAuthorizationList.js.map","'use strict';\n\n// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m;\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m;\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m;\nvar evp = require('evp_bytestokey');\nvar ciphers = require('browserify-aes');\nvar Buffer = require('safe-buffer').Buffer;\nmodule.exports = function (okey, password) {\n\tvar key = okey.toString();\n\tvar match = key.match(findProc);\n\tvar decrypted;\n\tif (!match) {\n\t\tvar match2 = key.match(fullRegex);\n\t\tdecrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64');\n\t} else {\n\t\tvar suite = 'aes' + match[1];\n\t\tvar iv = Buffer.from(match[2], 'hex');\n\t\tvar cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64');\n\t\tvar cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key;\n\t\tvar out = [];\n\t\tvar cipher = ciphers.createDecipheriv(suite, cipherKey, iv);\n\t\tout.push(cipher.update(cipherText));\n\t\tout.push(cipher['final']());\n\t\tdecrypted = Buffer.concat(out);\n\t}\n\tvar tag = key.match(startRegex)[1];\n\treturn {\n\t\ttag: tag,\n\t\tdata: decrypted\n\t};\n};\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (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}\n","export function concat(values) {\n if (typeof values[0] === 'string')\n return concatHex(values);\n return concatBytes(values);\n}\nexport function concatBytes(values) {\n let length = 0;\n for (const arr of values) {\n length += arr.length;\n }\n const result = new Uint8Array(length);\n let offset = 0;\n for (const arr of values) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\nexport function concatHex(values) {\n return `0x${values.reduce((acc, x) => acc + x.replace('0x', ''), '')}`;\n}\n//# sourceMappingURL=concat.js.map","import { AbiEncodingLengthMismatchError, BytesSizeMismatchError, UnsupportedPackedAbiType, } from '../../errors/abi.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { concatHex } from '../data/concat.js';\nimport { pad } from '../data/pad.js';\nimport { boolToHex, numberToHex, stringToHex, } from '../encoding/toHex.js';\nimport { arrayRegex, bytesRegex, integerRegex } from '../regex.js';\nexport function encodePacked(types, values) {\n if (types.length !== values.length)\n throw new AbiEncodingLengthMismatchError({\n expectedLength: types.length,\n givenLength: values.length,\n });\n const data = [];\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n const value = values[i];\n data.push(encode(type, value));\n }\n return concatHex(data);\n}\nfunction encode(type, value, isArray = false) {\n if (type === 'address') {\n const address = value;\n if (!isAddress(address))\n throw new InvalidAddressError({ address });\n return pad(address.toLowerCase(), {\n size: isArray ? 32 : null,\n });\n }\n if (type === 'string')\n return stringToHex(value);\n if (type === 'bytes')\n return value;\n if (type === 'bool')\n return pad(boolToHex(value), { size: isArray ? 32 : 1 });\n const intMatch = type.match(integerRegex);\n if (intMatch) {\n const [_type, baseType, bits = '256'] = intMatch;\n const size = Number.parseInt(bits, 10) / 8;\n return numberToHex(value, {\n size: isArray ? 32 : size,\n signed: baseType === 'int',\n });\n }\n const bytesMatch = type.match(bytesRegex);\n if (bytesMatch) {\n const [_type, size] = bytesMatch;\n if (Number.parseInt(size, 10) !== (value.length - 2) / 2)\n throw new BytesSizeMismatchError({\n expectedSize: Number.parseInt(size, 10),\n givenSize: (value.length - 2) / 2,\n });\n return pad(value, { dir: 'right', size: isArray ? 32 : null });\n }\n const arrayMatch = type.match(arrayRegex);\n if (arrayMatch && Array.isArray(value)) {\n const [_type, childType] = arrayMatch;\n const data = [];\n for (let i = 0; i < value.length; i++) {\n data.push(encode(childType, value[i], true));\n }\n if (data.length === 0)\n return '0x';\n return concatHex(data);\n }\n throw new UnsupportedPackedAbiType(type);\n}\n//# sourceMappingURL=encodePacked.js.map","// See solidity https://github.com/zama-ai/fhevm/blob/429d127709b56c5b8ec564a2f2cc329aa7f6722f/lib/TFHEExecutor.sol#L15\nimport { Schema } from 'effect';\nimport { Keccak } from 'sha3';\nimport { encodePacked, hexToBytes, toHex } from 'viem';\nimport { HexString } from './binary.js';\nexport const HANDLE_VERSION = 0;\n// This enum maps to FheType as defined in tfhe-rs in value, but the keys provide an additional interpretation over\n// the underlying integral FheType. For example, ebool interprets an uint16 as a boolean, ebytes64 interprets an uint512\n// as a 64-byte array, etc.\nexport const handleTypes = Object.freeze({\n ebool: 0,\n euint4: 1,\n euint8: 2,\n euint16: 3,\n euint32: 4,\n euint64: 5,\n euint128: 6,\n euint160: 7,\n euint256: 8,\n ebytes64: 9,\n ebytes128: 10,\n ebytes256: 11,\n});\nconst handleNames = Object.keys(handleTypes);\nexport const HandleTypeName = Schema.Literal(...handleNames);\nexport function isFheType(value) {\n return Object.values(handleTypes).includes(value);\n}\nexport const InputContext = Schema.Struct({\n hostChainId: Schema.BigInt,\n aclAddress: HexString,\n userAddress: HexString,\n contractAddress: HexString,\n});\n// Returns the FheType of the handle. See:\n// https://github.com/Inco-fhevm/inco-monorepo/blob/636756f512ae16535bdcb9a43df76bf14fbd6ba7/pkg/fhe/handle.md\nexport function getHandleType(handle) {\n const handleBytes = hexToBytes(handle);\n const handleType = handleBytes[30];\n if (!isFheType(handleType)) {\n throw new Error(`Invalid handle type ${handleType} for handle ${handle}`);\n }\n return handleType;\n}\n// A note from Solidity at https://github.com/Inco-fhevm/fhevm/blob/7952950243b144b1bbdfc30318412a2dc6b575fd/lib/TFHEExecutor.sol#L87-L89:\n/// @dev handle format for user inputs is: keccak256(keccak256(CiphertextFHEList)||index_handle)[0:29] || index_handle || handle_type || handle_version\n/// @dev other handles format (fhe ops results) is: keccak256(keccak256(rawCiphertextFHEList)||index_handle)[0:30] || handle_type || handle_versioreenctestn\n/// @dev the CiphertextFHEList actually contains: 1 byte (= N) for size of handles_list, N bytes for the handles_types : 1 per handle, then the original fhe160list raw ciphertext\n/**\n * Computes the prehandle hash for an input based on the ciphertext\n *\n * @param ciphertextPayload Note this is the different from the input which has the external handle prepended\n * @param indexHandle\n * @param handleType\n * @param handleVersion\n */\nexport function computePrehandle({ ciphertext, indexHandle, handleType, handleVersion, }) {\n assertUint8(indexHandle);\n assertUint8(handleType);\n assertUint8(handleVersion);\n const ciphertextHash = new Keccak(256)\n .update(Buffer.from(ciphertext))\n .digest();\n const ciphertextIndexHash = new Keccak(256)\n .update(Buffer.from(ciphertextHash))\n .update(Buffer.from([indexHandle]))\n .digest();\n const handle = Buffer.alloc(32);\n ciphertextIndexHash.copy(handle, 0, 0, 29);\n handle.writeUInt8(indexHandle, 29);\n handle.writeUInt8(handleType, 30);\n handle.writeUInt8(handleVersion, 31);\n return handle;\n}\n/**\n * Computes the final handle for an input based on the prehandle and the input context, matches the handle generation\n * in Go and Solidity\n *\n * @param prehandle\n * @param context\n */\nexport function computeHandle({ prehandle, context, }) {\n if (prehandle.length !== 32) {\n throw new Error(`prehandle should be 32 bytes but is: ${prehandle.length}`);\n }\n const packed = encodePacked(['bytes32', 'string', 'uint256', 'address', 'address', 'address'], [\n toHex(prehandle),\n // Note: The x/hostchain spec requires the chain ID to be prefixed with 'evm/' for EVM chains\n 'evm/',\n context.hostChainId,\n context.aclAddress,\n context.userAddress,\n context.contractAddress,\n ]);\n return Buffer.concat([\n new Keccak(256)\n .update(Buffer.from(hexToBytes(packed)))\n .digest()\n .subarray(0, 29),\n // Preserve the final three bytes of handle metadata\n prehandle.slice(29, 32),\n ]);\n}\nexport function hashInputContext(context) {\n const packed = encodePacked(['string', 'uint256', 'address', 'address', 'address'], [\n // Note: The x/hostchain spec requires the chain ID to be prefixed with 'evm/' for EVM chains\n 'evm/',\n context.hostChainId,\n context.aclAddress,\n context.userAddress,\n context.contractAddress,\n ]);\n return new Keccak(256).update(Buffer.from(hexToBytes(packed))).digest();\n}\nfunction assertUint8(value) {\n if (!Number.isInteger(value) || value < 0 || value > 255) {\n throw new Error(`Invalid uint8 value: ${value}`);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhbmRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1SEFBdUg7QUFDdkgsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQUM7QUFFaEMsbUhBQW1IO0FBQ25ILHdIQUF3SDtBQUN4SCwyQkFBMkI7QUFDM0IsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDdkMsS0FBSyxFQUFFLENBQUM7SUFDUixNQUFNLEVBQUUsQ0FBQztJQUNULE1BQU0sRUFBRSxDQUFDO0lBQ1QsT0FBTyxFQUFFLENBQUM7SUFDVixPQUFPLEVBQUUsQ0FBQztJQUNWLE9BQU8sRUFBRSxDQUFDO0lBQ1YsUUFBUSxFQUFFLENBQUM7SUFDWCxRQUFRLEVBQUUsQ0FBQztJQUNYLFFBQVEsRUFBRSxDQUFDO0lBQ1gsUUFBUSxFQUFFLENBQUM7SUFDWCxTQUFTLEVBQUUsRUFBRTtJQUNiLFNBQVMsRUFBRSxFQUFFO0NBQ2QsQ0FBQyxDQUFDO0FBRUgsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQWlDLENBQUM7QUFFN0UsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQztBQVE3RCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQWE7SUFDckMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FB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","\"use strict\";\n/*\nMIT License\n\nCopyright (c) 2019 Cyril Dever\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decrypt = exports.encrypt = exports.derive = exports.verify = exports.sign = exports.getPublic = exports.kdf = void 0;\n/**\n * Browser ecies-geth implementation.\n * This is based off the `eccrypto` JS module.\n */\nvar elliptic_1 = require(\"elliptic\");\n/* eslint-disable @typescript-eslint/unbound-method */\nvar ec = new elliptic_1.ec('secp256k1');\n/* eslint-disable @typescript-eslint/strict-boolean-expressions */\nvar crypto = window.crypto || window.msCrypto; // eslint-disable-line @typescript-eslint/no-non-null-assertion\nvar subtle = crypto.subtle || crypto.webkitSubtle;\n/* eslint-enable @typescript-eslint/strict-boolean-expressions */\nif (subtle === undefined || crypto === undefined) {\n throw new Error('crypto and/or subtle api unavailable');\n}\n// Use the browser RNG\nvar randomBytes = function (size) {\n return crypto.getRandomValues(Buffer.alloc(size));\n};\n// Get the browser SHA256 implementation\nvar sha256 = function (msg) {\n return subtle.digest({ name: 'SHA-256' }, msg).then(Buffer.from);\n};\n// The KDF as implemented in Parity mimics Geth's implementation\nvar kdf = function (secret, outputLength) {\n var ctr = 1;\n var written = 0;\n var willBeResult = Promise.resolve(Buffer.from(''));\n var _loop_1 = function () {\n var ctrs = Buffer.from([ctr >> 24, ctr >> 16, ctr >> 8, ctr]);\n var willBeHashResult = sha256(Buffer.concat([ctrs, secret]));\n willBeResult = willBeResult.then(function (result) { return willBeHashResult.then(function (hashResult) {\n return Buffer.concat([result, hashResult]);\n }); });\n written += 32;\n ctr += 1;\n };\n while (written < outputLength) {\n _loop_1();\n }\n return willBeResult;\n};\nexports.kdf = kdf;\nvar aesCtrEncrypt = function (counter, key, data) {\n return subtle\n .importKey('raw', key, 'AES-CTR', false, ['encrypt'])\n .then(function (cryptoKey) {\n return subtle.encrypt({ name: 'AES-CTR', counter: counter, length: 128 }, cryptoKey, data);\n }).then(Buffer.from);\n};\nvar aesCtrDecrypt = function (counter, key, data) {\n return subtle\n .importKey('raw', key, 'AES-CTR', false, ['decrypt'])\n .then(function (cryptoKey) {\n return subtle.decrypt({ name: 'AES-CTR', counter: counter, length: 128 }, cryptoKey, data);\n }).then(Buffer.from);\n};\nvar hmacSha256Sign = function (key, msg) {\n var algorithm = { name: 'HMAC', hash: { name: 'SHA-256' } };\n return subtle.importKey('raw', key, algorithm, false, ['sign'])\n .then(function (cryptoKey) { return subtle.sign(algorithm, cryptoKey, msg); })\n .then(Buffer.from);\n};\nvar hmacSha256Verify = function (key, msg, sig) {\n var algorithm = { name: 'HMAC', hash: { name: 'SHA-256' } };\n var keyp = subtle.importKey('raw', key, algorithm, false, ['verify']);\n return keyp.then(function (cryptoKey) { return subtle.verify(algorithm, cryptoKey, sig, msg); });\n};\n/**\n * Compute the public key for a given private key.\n *\n * @param {Buffer} privateKey - A 32-byte private key\n * @return {Promise} A promise that resolve with the 65-byte public key or reject on wrong private key.\n * @function\n */\nvar getPublic = function (privateKey) { return new Promise(function (resolve, reject) {\n if (privateKey.length !== 32) {\n reject(new Error('Private key should be 32 bytes long'));\n }\n else {\n resolve(Buffer.from(ec.keyFromPrivate(privateKey).getPublic('array')));\n }\n}); };\nexports.getPublic = getPublic;\n/**\n * Create an ECDSA signature.\n *\n * @param {Buffer} privateKey - A 32-byte private key\n * @param {Buffer} msg - The message being signed, no more than 32 bytes\n * @return {Promise.} A promise that resolves with the signature and rejects on bad key or message\n */\nvar sign = function (privateKey, msg) { return new Promise(function (resolve, reject) {\n if (privateKey.length !== 32) {\n reject(new Error('Private key should be 32 bytes long'));\n }\n else if (msg.length <= 0) {\n reject(new Error('Message should not be empty'));\n }\n else if (msg.length > 32) {\n reject(new Error('Message is too long (max 32 bytes)'));\n }\n else {\n resolve(Buffer.from(ec.sign(msg, privateKey, { canonical: true }).toDER('hex'), 'hex'));\n }\n}); };\nexports.sign = sign;\n/**\n * Verify an ECDSA signature.\n *\n * @param {Buffer} publicKey - A 65-byte public key\n * @param {Buffer} msg - The message being verified\n * @param {Buffer} sig - The signature\n * @return {Promise.} A promise that resolves on correct signature and rejects on bad key or signature\n */\nvar verify = function (publicKey, msg, sig) { return new Promise(function (resolve, reject) {\n try {\n if (publicKey.length !== 65 || publicKey[0] !== 4) {\n reject(new Error('Public key should 65 bytes long'));\n }\n else if (msg.length <= 0) {\n reject(new Error('Message should not be empty'));\n }\n else if (msg.length > 32) {\n reject(new Error('Message is too long (max 32 bytes)'));\n }\n else if (!ec.verify(msg, sig.toString('hex'), publicKey, 'hex')) { // eslint-disable-line @typescript-eslint/no-unsafe-argument\n reject(new Error('Bad signature'));\n }\n else {\n resolve(true);\n }\n }\n catch (_) { // eslint-disable-line @typescript-eslint/no-unused-vars\n reject(new Error('Invalid arguments'));\n }\n}); };\nexports.verify = verify;\n/**\n * Derive shared secret for given private and public keys.\n *\n * @param {Buffer} privateKey - Sender's private key (32 bytes)\n * @param {Buffer} publicKey - Recipient's public key (65 bytes)\n * @return {Promise.} A promise that resolves with the derived shared secret (Px, 32 bytes) and rejects on bad key\n */\nvar derive = function (privateKeyA, publicKeyB) { return new Promise(function (resolve, reject) {\n if (privateKeyA.length !== 32) {\n reject(new Error(\"Bad private key, it should be 32 bytes but it's actually \".concat(privateKeyA.length, \" bytes long\")));\n }\n else if (publicKeyB.length !== 65) {\n reject(new Error(\"Bad public key, it should be 65 bytes but it's actually \".concat(publicKeyB.length, \" bytes long\")));\n }\n else if (publicKeyB[0] !== 4) {\n reject(new Error('Bad public key, a valid public key would begin with 4'));\n }\n else {\n var keyA = ec.keyFromPrivate(privateKeyA);\n var keyB = ec.keyFromPublic(publicKeyB);\n var Px = keyA.derive(keyB.getPublic()); // BN instance\n resolve(pad32(Buffer.from(Px.toArray())));\n }\n}); };\nexports.derive = derive;\n/**\n * Encrypt message for given recepient's public key.\n *\n * @param {Buffer} publicKeyTo - Recipient's public key (65 bytes)\n * @param {Buffer} msg - The message being encrypted\n * @param {?{?iv: Buffer, ?ephemPrivateKey: Buffer}} opts - You may also specify initialization vector (16 bytes) and ephemeral private key (32 bytes) to get deterministic results.\n * @return {Promise.} - A promise that resolves with the ECIES structure serialized\n */\nvar encrypt = function (publicKeyTo, msg, opts) { return __awaiter(void 0, void 0, void 0, function () {\n var ephemPrivateKey;\n return __generator(this, function (_a) {\n opts = opts || {};\n ephemPrivateKey = opts.ephemPrivateKey || randomBytes(32);\n return [2 /*return*/, (0, exports.derive)(ephemPrivateKey, publicKeyTo)\n .then(function (sharedPx) { return (0, exports.kdf)(sharedPx, 32); })\n .then(function (hash) { return __awaiter(void 0, void 0, void 0, function () {\n var iv, encryptionKey;\n return __generator(this, function (_a) {\n iv = opts.iv || randomBytes(16);\n encryptionKey = hash.slice(0, 16);\n return [2 /*return*/, aesCtrEncrypt(iv, encryptionKey, msg)\n .then(function (cipherText) { return Buffer.concat([iv, cipherText]); })\n .then(function (ivCipherText) {\n return sha256(hash.slice(16))\n .then(function (macKey) { return hmacSha256Sign(macKey, ivCipherText); })\n .then(function (HMAC) {\n return (0, exports.getPublic)(ephemPrivateKey)\n .then(function (ephemPublicKey) { return Buffer.concat([ephemPublicKey, ivCipherText, HMAC]); });\n });\n })];\n });\n }); })];\n });\n}); };\nexports.encrypt = encrypt;\nvar metaLength = 1 + 64 + 16 + 32;\n/**\n * Decrypt message using given private key.\n *\n * @param {Buffer} privateKey - A 32-byte private key of recepient of the message\n * @param {Ecies} encrypted - ECIES serialized structure (result of ECIES encryption)\n * @return {Promise.} - A promise that resolves with the plaintext on successful decryption and rejects on failure\n */\nvar decrypt = function (privateKey, encrypted) { return new Promise(function (resolve, reject) {\n if (encrypted.length <= metaLength) {\n reject(new Error(\"Invalid Ciphertext. Data is too small. It should ba at least \".concat(metaLength, \" bytes\")));\n }\n else if (encrypted[0] !== 4) {\n reject(new Error(\"Not a valid ciphertext. It should begin with 4 but actually begin with \".concat(encrypted[0])));\n }\n else {\n // deserialize\n var ephemPublicKey = encrypted.slice(0, 65);\n var cipherTextLength = encrypted.length - metaLength;\n var iv_1 = encrypted.slice(65, 65 + 16);\n var cipherAndIv_1 = encrypted.slice(65, 65 + 16 + cipherTextLength);\n var ciphertext_1 = cipherAndIv_1.slice(16);\n var msgMac_1 = encrypted.slice(65 + 16 + cipherTextLength);\n // check HMAC\n resolve((0, exports.derive)(privateKey, ephemPublicKey)\n .then(function (px) { return (0, exports.kdf)(px, 32); })\n .then(function (hash) { return sha256(hash.slice(16)).then(function (macKey) { return [hash.slice(0, 16), macKey]; }); })\n .then(function (_a) {\n var encryptionKey = _a[0], macKey = _a[1];\n return hmacSha256Verify(macKey, cipherAndIv_1, msgMac_1)\n .then(function (isHmacGood) { return !isHmacGood\n ? Promise.reject(new Error('Incorrect MAC'))\n : aesCtrDecrypt(iv_1, encryptionKey, ciphertext_1); });\n }).then(Buffer.from));\n }\n}); };\nexports.decrypt = decrypt;\nvar pad32 = function (msg) {\n if (msg.length < 32) {\n var buff = Buffer.alloc(32).fill(0);\n msg.copy(buff, 32 - msg.length);\n return buff;\n }\n else\n return msg;\n};\n__exportStar(require(\"./model\"), exports);\n/* eslint-enable @typescript-eslint/unbound-method */ \n//# sourceMappingURL=browser.js.map","import { InvalidSerializableTransactionError, } from '../../errors/transaction.js';\nexport function getTransactionType(transaction) {\n if (transaction.type)\n return transaction.type;\n if (typeof transaction.authorizationList !== 'undefined')\n return 'eip7702';\n if (typeof transaction.blobs !== 'undefined' ||\n typeof transaction.blobVersionedHashes !== 'undefined' ||\n typeof transaction.maxFeePerBlobGas !== 'undefined' ||\n typeof transaction.sidecars !== 'undefined')\n return 'eip4844';\n if (typeof transaction.maxFeePerGas !== 'undefined' ||\n typeof transaction.maxPriorityFeePerGas !== 'undefined') {\n return 'eip1559';\n }\n if (typeof transaction.gasPrice !== 'undefined') {\n if (typeof transaction.accessList !== 'undefined')\n return 'eip2930';\n return 'legacy';\n }\n throw new InvalidSerializableTransactionError({ transaction });\n}\n//# sourceMappingURL=getTransactionType.js.map","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","import { ParseResult, Schema } from 'effect';\nimport { isHex } from 'viem';\nimport { parse } from './schema.js';\nexport const HexString = Schema.TemplateLiteral('0x', Schema.String);\nexport function bytesToBigInt(byteArray) {\n // Ugly but better than bigint-buffer that insists on writing junk to stderr if it doesn't have native bindings\n return !byteArray?.length\n ? BigInt(0)\n : BigInt('0x' + Buffer.from(byteArray).toString('hex'));\n}\nexport function bufferToBigInt(buffer) {\n return bytesToBigInt(Uint8Array.from(buffer));\n}\nexport function bigintToBytes(value) {\n return Buffer.from(value.toString(16).padStart(64, '0'), 'hex');\n}\n// Convert a bigint to a 32-byte array, left-padded if necessary. Note: it is\n// caller's responsibility to ensure that the bigint is not too large to fit in\n// 32 bytes, or else the result will be truncated.\nexport function bigintToBytes32(value) {\n return parse(Bytes32, bigintToBytes(value).toString('hex'));\n}\nexport function padLeft(bs, n) {\n if (bs.length > n) {\n throw new Error(`Cannot pad ${bs.length} bytes to ${n} - would truncate`);\n }\n const buf = Buffer.alloc(n);\n buf.set(bs, n - bs.length);\n return buf;\n}\nexport function bytes32ToBigint(bs) {\n const bytes32 = asBytes32(bs);\n return BigInt(bytes32);\n}\nexport function bytesFromHexString(hexString) {\n return Buffer.from(hexString.startsWith('0x') ? hexString.slice(2) : hexString, 'hex');\n}\nexport function mustBeHex(value) {\n if (!isHex(value)) {\n throw new Error(`Expected hex string, got: ${value}`);\n }\n return value;\n}\nexport function normaliseToHex(value) {\n return mustBeHex(value.startsWith('0x') ? value : `0x${value}`);\n}\nexport function bytesToHex(bs) {\n return ('0x' + Buffer.from(bs).toString('hex'));\n}\nconst ByteArray = Schema.Object.pipe(Schema.filter((x) => x instanceof Uint8Array));\nconst BytesToHex = Schema.transformOrFail(Schema.Union(Schema.String, ByteArray), HexString, {\n strict: true,\n encode: ParseResult.succeed,\n decode: (x) => x instanceof Uint8Array\n ? ParseResult.succeed(bytesToHex(x))\n : ((y) => isHex(y)\n ? ParseResult.succeed(y)\n : ParseResult.fail(new ParseResult.Unexpected(y, `'${y}' is not a hex string`)))(normaliseToHex(x)),\n});\nexport const Bytes32 = BytesToHex.pipe(Schema.filter((x) => x.length === 66 ||\n `Expected 32-byte hex string (66 characters with 0x prefix) but got ${x.length} character string`), Schema.brand('Bytes32'));\nexport function asBytes32(x) {\n return parse(Bytes32, x);\n}\nexport const Address = HexString.pipe(Schema.filter((s) => s.length === 42 ||\n `Address must be a 20-byte '0x'-prefixed hex string, but got: ${s}`), Schema.brand('Address'));\nexport function parseAddress(address) {\n return parse(Address, address);\n}\nexport function parseHex(hex) {\n return parse(HexString, hex);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JpbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM3QyxPQUFPLEVBQU8sS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQU1yRSxNQUFNLFVBQVUsYUFBYSxDQUFDLFNBQXFCO0lBQ2pELCtHQUErRztJQUMvRyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU07UUFDdkIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQWM7SUFDM0MsT0FBTyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEtBQWE7SUFDekMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBRUQsNkVBQTZFO0FBQzdFLCtFQUErRTtBQUMvRSxrREFBa0Q7QUFDbEQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxLQUFhO0lBQzNDLE9BQU8sS0FBSyxDQUFDLE9BQU8s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","/**\n * Returns the current price of gas (in wei).\n *\n * - Docs: https://viem.sh/docs/actions/public/getGasPrice\n * - JSON-RPC Methods: [`eth_gasPrice`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gasprice)\n *\n * @param client - Client to use\n * @returns The gas price (in wei). {@link GetGasPriceReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getGasPrice } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const gasPrice = await getGasPrice(client)\n */\nexport async function getGasPrice(client) {\n const gasPrice = await client.request({\n method: 'eth_gasPrice',\n });\n return BigInt(gasPrice);\n}\n//# sourceMappingURL=getGasPrice.js.map","import * as OpCodes from \"./opCodes/deferred.js\";\n/** @internal */\nconst DeferredSymbolKey = \"effect/Deferred\";\n/** @internal */\nexport const DeferredTypeId = /*#__PURE__*/Symbol.for(DeferredSymbolKey);\n/** @internal */\nexport const deferredVariance = {\n /* c8 ignore next */\n _E: _ => _,\n /* c8 ignore next */\n _A: _ => _\n};\n/** @internal */\nexport const pending = joiners => {\n return {\n _tag: OpCodes.OP_STATE_PENDING,\n joiners\n };\n};\n/** @internal */\nexport const done = effect => {\n return {\n _tag: OpCodes.OP_STATE_DONE,\n effect\n };\n};\n//# sourceMappingURL=deferred.js.map","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","import * as Equal from \"../Equal.js\";\nimport { dual, pipe } from \"../Function.js\";\nimport { globalValue } from \"../GlobalValue.js\";\nimport * as Hash from \"../Hash.js\";\nimport * as HashSet from \"../HashSet.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"../Inspectable.js\";\nimport * as MutableRef from \"../MutableRef.js\";\nimport * as Option from \"../Option.js\";\nimport { hasProperty } from \"../Predicate.js\";\n/** @internal */\nconst FiberIdSymbolKey = \"effect/FiberId\";\n/** @internal */\nexport const FiberIdTypeId = /*#__PURE__*/Symbol.for(FiberIdSymbolKey);\n/** @internal */\nconst OP_NONE = \"None\";\n/** @internal */\nconst OP_RUNTIME = \"Runtime\";\n/** @internal */\nconst OP_COMPOSITE = \"Composite\";\nconst emptyHash = /*#__PURE__*/Hash.string(`${FiberIdSymbolKey}-${OP_NONE}`);\n/** @internal */\nclass None {\n [FiberIdTypeId] = FiberIdTypeId;\n _tag = OP_NONE;\n id = -1;\n startTimeMillis = -1;\n [Hash.symbol]() {\n return emptyHash;\n }\n [Equal.symbol](that) {\n return isFiberId(that) && that._tag === OP_NONE;\n }\n toString() {\n return format(this.toJSON());\n }\n toJSON() {\n return {\n _id: \"FiberId\",\n _tag: this._tag\n };\n }\n [NodeInspectSymbol]() {\n return this.toJSON();\n }\n}\n/** @internal */\nclass Runtime {\n id;\n startTimeMillis;\n [FiberIdTypeId] = FiberIdTypeId;\n _tag = OP_RUNTIME;\n constructor(id, startTimeMillis) {\n this.id = id;\n this.startTimeMillis = startTimeMillis;\n }\n [Hash.symbol]() {\n return Hash.cached(this, Hash.string(`${FiberIdSymbolKey}-${this._tag}-${this.id}-${this.startTimeMillis}`));\n }\n [Equal.symbol](that) {\n return isFiberId(that) && that._tag === OP_RUNTIME && this.id === that.id && this.startTimeMillis === that.startTimeMillis;\n }\n toString() {\n return format(this.toJSON());\n }\n toJSON() {\n return {\n _id: \"FiberId\",\n _tag: this._tag,\n id: this.id,\n startTimeMillis: this.startTimeMillis\n };\n }\n [NodeInspectSymbol]() {\n return this.toJSON();\n }\n}\n/** @internal */\nclass Composite {\n left;\n right;\n [FiberIdTypeId] = FiberIdTypeId;\n _tag = OP_COMPOSITE;\n constructor(left, right) {\n this.left = left;\n this.right = right;\n }\n _hash;\n [Hash.symbol]() {\n return pipe(Hash.string(`${FiberIdSymbolKey}-${this._tag}`), Hash.combine(Hash.hash(this.left)), Hash.combine(Hash.hash(this.right)), Hash.cached(this));\n }\n [Equal.symbol](that) {\n return isFiberId(that) && that._tag === OP_COMPOSITE && Equal.equals(this.left, that.left) && Equal.equals(this.right, that.right);\n }\n toString() {\n return format(this.toJSON());\n }\n toJSON() {\n return {\n _id: \"FiberId\",\n _tag: this._tag,\n left: toJSON(this.left),\n right: toJSON(this.right)\n };\n }\n [NodeInspectSymbol]() {\n return this.toJSON();\n }\n}\n/** @internal */\nexport const none = /*#__PURE__*/new None();\n/** @internal */\nexport const runtime = (id, startTimeMillis) => {\n return new Runtime(id, startTimeMillis);\n};\n/** @internal */\nexport const composite = (left, right) => {\n return new Composite(left, right);\n};\n/** @internal */\nexport const isFiberId = self => hasProperty(self, FiberIdTypeId);\n/** @internal */\nexport const isNone = self => {\n return self._tag === OP_NONE || pipe(toSet(self), HashSet.every(id => isNone(id)));\n};\n/** @internal */\nexport const isRuntime = self => {\n return self._tag === OP_RUNTIME;\n};\n/** @internal */\nexport const isComposite = self => {\n return self._tag === OP_COMPOSITE;\n};\n/** @internal */\nexport const combine = /*#__PURE__*/dual(2, (self, that) => {\n if (self._tag === OP_NONE) {\n return that;\n }\n if (that._tag === OP_NONE) {\n return self;\n }\n return new Composite(self, that);\n});\n/** @internal */\nexport const combineAll = fiberIds => {\n return pipe(fiberIds, HashSet.reduce(none, (a, b) => combine(b)(a)));\n};\n/** @internal */\nexport const getOrElse = /*#__PURE__*/dual(2, (self, that) => isNone(self) ? that : self);\n/** @internal */\nexport const ids = self => {\n switch (self._tag) {\n case OP_NONE:\n {\n return HashSet.empty();\n }\n case OP_RUNTIME:\n {\n return HashSet.make(self.id);\n }\n case OP_COMPOSITE:\n {\n return pipe(ids(self.left), HashSet.union(ids(self.right)));\n }\n }\n};\nconst _fiberCounter = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Fiber/Id/_fiberCounter\"), () => MutableRef.make(0));\n/** @internal */\nexport const make = (id, startTimeSeconds) => {\n return new Runtime(id, startTimeSeconds);\n};\n/** @internal */\nexport const threadName = self => {\n const identifiers = Array.from(ids(self)).map(n => `#${n}`).join(\",\");\n return identifiers;\n};\n/** @internal */\nexport const toOption = self => {\n const fiberIds = toSet(self);\n if (HashSet.size(fiberIds) === 0) {\n return Option.none();\n }\n let first = true;\n let acc;\n for (const fiberId of fiberIds) {\n if (first) {\n acc = fiberId;\n first = false;\n } else {\n // @ts-expect-error\n acc = pipe(acc, combine(fiberId));\n }\n }\n // @ts-expect-error\n return Option.some(acc);\n};\n/** @internal */\nexport const toSet = self => {\n switch (self._tag) {\n case OP_NONE:\n {\n return HashSet.empty();\n }\n case OP_RUNTIME:\n {\n return HashSet.make(self);\n }\n case OP_COMPOSITE:\n {\n return pipe(toSet(self.left), HashSet.union(toSet(self.right)));\n }\n }\n};\n/** @internal */\nexport const unsafeMake = () => {\n const id = MutableRef.get(_fiberCounter);\n pipe(_fiberCounter, MutableRef.set(id + 1));\n return new Runtime(id, Date.now());\n};\n//# sourceMappingURL=fiberId.js.map","import * as Arr from \"../Array.js\";\nimport * as Equal from \"../Equal.js\";\nimport { dual, pipe } from \"../Function.js\";\nimport * as HashSet from \"../HashSet.js\";\nimport * as Option from \"../Option.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport * as core from \"./core.js\";\n/** @internal */\nexport function unsafeMake(fiberRefLocals) {\n return new FiberRefsImpl(fiberRefLocals);\n}\n/** @internal */\nexport function empty() {\n return unsafeMake(new Map());\n}\n/** @internal */\nexport const FiberRefsSym = /*#__PURE__*/Symbol.for(\"effect/FiberRefs\");\n/** @internal */\nexport class FiberRefsImpl {\n locals;\n [FiberRefsSym] = FiberRefsSym;\n constructor(locals) {\n this.locals = locals;\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n/** @internal */\nconst findAncestor = (_ref, _parentStack, _childStack, _childModified = false) => {\n const ref = _ref;\n let parentStack = _parentStack;\n let childStack = _childStack;\n let childModified = _childModified;\n let ret = undefined;\n while (ret === undefined) {\n if (Arr.isNonEmptyReadonlyArray(parentStack) && Arr.isNonEmptyReadonlyArray(childStack)) {\n const parentFiberId = Arr.headNonEmpty(parentStack)[0];\n const parentAncestors = Arr.tailNonEmpty(parentStack);\n const childFiberId = Arr.headNonEmpty(childStack)[0];\n const childRefValue = Arr.headNonEmpty(childStack)[1];\n const childAncestors = Arr.tailNonEmpty(childStack);\n if (parentFiberId.startTimeMillis < childFiberId.startTimeMillis) {\n childStack = childAncestors;\n childModified = true;\n } else if (parentFiberId.startTimeMillis > childFiberId.startTimeMillis) {\n parentStack = parentAncestors;\n } else {\n if (parentFiberId.id < childFiberId.id) {\n childStack = childAncestors;\n childModified = true;\n } else if (parentFiberId.id > childFiberId.id) {\n parentStack = parentAncestors;\n } else {\n ret = [childRefValue, childModified];\n }\n }\n } else {\n ret = [ref.initial, true];\n }\n }\n return ret;\n};\n/** @internal */\nexport const joinAs = /*#__PURE__*/dual(3, (self, fiberId, that) => {\n const parentFiberRefs = new Map(self.locals);\n that.locals.forEach((childStack, fiberRef) => {\n const childValue = childStack[0][1];\n if (!childStack[0][0][Equal.symbol](fiberId)) {\n if (!parentFiberRefs.has(fiberRef)) {\n if (Equal.equals(childValue, fiberRef.initial)) {\n return;\n }\n parentFiberRefs.set(fiberRef, [[fiberId, fiberRef.join(fiberRef.initial, childValue)]]);\n return;\n }\n const parentStack = parentFiberRefs.get(fiberRef);\n const [ancestor, wasModified] = findAncestor(fiberRef, parentStack, childStack);\n if (wasModified) {\n const patch = fiberRef.diff(ancestor, childValue);\n const oldValue = parentStack[0][1];\n const newValue = fiberRef.join(oldValue, fiberRef.patch(patch)(oldValue));\n if (!Equal.equals(oldValue, newValue)) {\n let newStack;\n const parentFiberId = parentStack[0][0];\n if (parentFiberId[Equal.symbol](fiberId)) {\n newStack = [[parentFiberId, newValue], ...parentStack.slice(1)];\n } else {\n newStack = [[fiberId, newValue], ...parentStack];\n }\n parentFiberRefs.set(fiberRef, newStack);\n }\n }\n }\n });\n return new FiberRefsImpl(parentFiberRefs);\n});\n/** @internal */\nexport const forkAs = /*#__PURE__*/dual(2, (self, childId) => {\n const map = new Map();\n unsafeForkAs(self, map, childId);\n return new FiberRefsImpl(map);\n});\nconst unsafeForkAs = (self, map, fiberId) => {\n self.locals.forEach((stack, fiberRef) => {\n const oldValue = stack[0][1];\n const newValue = fiberRef.patch(fiberRef.fork)(oldValue);\n if (Equal.equals(oldValue, newValue)) {\n map.set(fiberRef, stack);\n } else {\n map.set(fiberRef, [[fiberId, newValue], ...stack]);\n }\n });\n};\n/** @internal */\nexport const fiberRefs = self => HashSet.fromIterable(self.locals.keys());\n/** @internal */\nexport const setAll = self => core.forEachSequentialDiscard(fiberRefs(self), fiberRef => core.fiberRefSet(fiberRef, getOrDefault(self, fiberRef)));\n/** @internal */\nexport const delete_ = /*#__PURE__*/dual(2, (self, fiberRef) => {\n const locals = new Map(self.locals);\n locals.delete(fiberRef);\n return new FiberRefsImpl(locals);\n});\n/** @internal */\nexport const get = /*#__PURE__*/dual(2, (self, fiberRef) => {\n if (!self.locals.has(fiberRef)) {\n return Option.none();\n }\n return Option.some(Arr.headNonEmpty(self.locals.get(fiberRef))[1]);\n});\n/** @internal */\nexport const getOrDefault = /*#__PURE__*/dual(2, (self, fiberRef) => pipe(get(self, fiberRef), Option.getOrElse(() => fiberRef.initial)));\n/** @internal */\nexport const updateAs = /*#__PURE__*/dual(2, (self, {\n fiberId,\n fiberRef,\n value\n}) => {\n if (self.locals.size === 0) {\n return new FiberRefsImpl(new Map([[fiberRef, [[fiberId, value]]]]));\n }\n const locals = new Map(self.locals);\n unsafeUpdateAs(locals, fiberId, fiberRef, value);\n return new FiberRefsImpl(locals);\n});\nconst unsafeUpdateAs = (locals, fiberId, fiberRef, value) => {\n const oldStack = locals.get(fiberRef) ?? [];\n let newStack;\n if (Arr.isNonEmptyReadonlyArray(oldStack)) {\n const [currentId, currentValue] = Arr.headNonEmpty(oldStack);\n if (currentId[Equal.symbol](fiberId)) {\n if (Equal.equals(currentValue, value)) {\n return;\n } else {\n newStack = [[fiberId, value], ...oldStack.slice(1)];\n }\n } else {\n newStack = [[fiberId, value], ...oldStack];\n }\n } else {\n newStack = [[fiberId, value]];\n }\n locals.set(fiberRef, newStack);\n};\n/** @internal */\nexport const updateManyAs = /*#__PURE__*/dual(2, (self, {\n entries,\n forkAs\n}) => {\n if (self.locals.size === 0) {\n return new FiberRefsImpl(new Map(entries));\n }\n const locals = new Map(self.locals);\n if (forkAs !== undefined) {\n unsafeForkAs(self, locals, forkAs);\n }\n entries.forEach(([fiberRef, values]) => {\n if (values.length === 1) {\n unsafeUpdateAs(locals, values[0][0], fiberRef, values[0][1]);\n } else {\n values.forEach(([fiberId, value]) => {\n unsafeUpdateAs(locals, fiberId, fiberRef, value);\n });\n }\n });\n return new FiberRefsImpl(locals);\n});\n//# sourceMappingURL=fiberRefs.js.map","import { TransactionReceiptRevertedError } from '../../errors/transaction.js';\nimport { formatTransactionReceipt } from '../../utils/formatters/transactionReceipt.js';\nimport { numberToHex, } from '../../utils/index.js';\n/**\n * Sends a **signed** transaction to the network synchronously,\n * and waits for the transaction to be included in a block.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendRawTransactionSync\n * - JSON-RPC Method: [`eth_sendRawTransactionSync`](https://eips.ethereum.org/EIPS/eip-7966)\n *\n * @param client - Client to use\n * @param parameters - {@link SendRawTransactionParameters}\n * @returns The transaction receipt. {@link SendRawTransactionSyncReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendRawTransactionSync } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n *\n * const receipt = await sendRawTransactionSync(client, {\n * serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\n * })\n */\nexport async function sendRawTransactionSync(client, { serializedTransaction, throwOnReceiptRevert, timeout, }) {\n const receipt = await client.request({\n method: 'eth_sendRawTransactionSync',\n params: timeout\n ? [serializedTransaction, numberToHex(timeout)]\n : [serializedTransaction],\n }, { retryCount: 0 });\n const format = client.chain?.formatters?.transactionReceipt?.format ||\n formatTransactionReceipt;\n const formatted = format(receipt);\n if (formatted.status === 'reverted' && throwOnReceiptRevert)\n throw new TransactionReceiptRevertedError({ receipt: formatted });\n return formatted;\n}\n//# sourceMappingURL=sendRawTransactionSync.js.map","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","import { keccak_256 } from '@noble/hashes/sha3';\nimport { isHex } from '../data/isHex.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { toHex } from '../encoding/toHex.js';\nexport function keccak256(value, to_) {\n const to = to_ || 'hex';\n const bytes = keccak_256(isHex(value, { strict: false }) ? toBytes(value) : value);\n if (to === 'bytes')\n return bytes;\n return toHex(bytes);\n}\n//# sourceMappingURL=keccak256.js.map","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports[\"default\"]=void 0;var _chi=_interopRequireDefault(require(\"./chi\"));var _iota=_interopRequireDefault(require(\"./iota\"));var _rhoPi=_interopRequireDefault(require(\"./rho-pi\"));var _theta=_interopRequireDefault(require(\"./theta\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{\"default\":obj}}var permute=function permute(){var C=new Uint32Array(10);var D=new Uint32Array(10);var W=new Uint32Array(2);return function(A){for(var roundIndex=0;roundIndex<24;roundIndex++){(0,_theta[\"default\"])({A:A,C:C,D:D,W:W});(0,_rhoPi[\"default\"])({A:A,C:C,W:W});(0,_chi[\"default\"])({A:A,C:C});(0,_iota[\"default\"])({A:A,roundIndex:roundIndex})}C.fill(0);D.fill(0);W.fill(0)}};var _default=permute;exports[\"default\"]=_default;","'use strict';\n\nmodule.exports = function SHA(algorithm) {\n\tvar alg = algorithm.toLowerCase();\n\n\tvar Algorithm = module.exports[alg];\n\tif (!Algorithm) {\n\t\tthrow new Error(alg + ' is not supported (we accept pull requests)');\n\t}\n\n\treturn new Algorithm();\n};\n\nmodule.exports.sha = require('./sha');\nmodule.exports.sha1 = require('./sha1');\nmodule.exports.sha224 = require('./sha224');\nmodule.exports.sha256 = require('./sha256');\nmodule.exports.sha384 = require('./sha384');\nmodule.exports.sha512 = require('./sha512');\n","/** @internal */\nexport const listenersCache = /*#__PURE__*/ new Map();\n/** @internal */\nexport const cleanupCache = /*#__PURE__*/ new Map();\nlet callbackCount = 0;\n/**\n * @description Sets up an observer for a given function. If another function\n * is set up under the same observer id, the function will only be called once\n * for both instances of the observer.\n */\nexport function observe(observerId, callbacks, fn) {\n const callbackId = ++callbackCount;\n const getListeners = () => listenersCache.get(observerId) || [];\n const unsubscribe = () => {\n const listeners = getListeners();\n listenersCache.set(observerId, listeners.filter((cb) => cb.id !== callbackId));\n };\n const unwatch = () => {\n const listeners = getListeners();\n if (!listeners.some((cb) => cb.id === callbackId))\n return;\n const cleanup = cleanupCache.get(observerId);\n if (listeners.length === 1 && cleanup) {\n const p = cleanup();\n if (p instanceof Promise)\n p.catch(() => { });\n }\n unsubscribe();\n };\n const listeners = getListeners();\n listenersCache.set(observerId, [\n ...listeners,\n { id: callbackId, fns: callbacks },\n ]);\n if (listeners && listeners.length > 0)\n return unwatch;\n const emit = {};\n for (const key in callbacks) {\n emit[key] = ((...args) => {\n const listeners = getListeners();\n if (listeners.length === 0)\n return;\n for (const listener of listeners)\n listener.fns[key]?.(...args);\n });\n }\n const cleanup = fn(emit);\n if (typeof cleanup === 'function')\n cleanupCache.set(observerId, cleanup);\n return unwatch;\n}\n//# sourceMappingURL=observe.js.map","import * as Context from \"../../Context.js\";\nimport * as core from \"../core.js\";\n/** @internal */\nexport const TypeId = /*#__PURE__*/Symbol.for(\"effect/Console\");\n/** @internal */\nexport const consoleTag = /*#__PURE__*/Context.GenericTag(\"effect/Console\");\n/** @internal */\nexport const defaultConsole = {\n [TypeId]: TypeId,\n assert(condition, ...args) {\n return core.sync(() => {\n console.assert(condition, ...args);\n });\n },\n clear: /*#__PURE__*/core.sync(() => {\n console.clear();\n }),\n count(label) {\n return core.sync(() => {\n console.count(label);\n });\n },\n countReset(label) {\n return core.sync(() => {\n console.countReset(label);\n });\n },\n debug(...args) {\n return core.sync(() => {\n console.debug(...args);\n });\n },\n dir(item, options) {\n return core.sync(() => {\n console.dir(item, options);\n });\n },\n dirxml(...args) {\n return core.sync(() => {\n console.dirxml(...args);\n });\n },\n error(...args) {\n return core.sync(() => {\n console.error(...args);\n });\n },\n group(options) {\n return options?.collapsed ? core.sync(() => console.groupCollapsed(options?.label)) : core.sync(() => console.group(options?.label));\n },\n groupEnd: /*#__PURE__*/core.sync(() => {\n console.groupEnd();\n }),\n info(...args) {\n return core.sync(() => {\n console.info(...args);\n });\n },\n log(...args) {\n return core.sync(() => {\n console.log(...args);\n });\n },\n table(tabularData, properties) {\n return core.sync(() => {\n console.table(tabularData, properties);\n });\n },\n time(label) {\n return core.sync(() => console.time(label));\n },\n timeEnd(label) {\n return core.sync(() => console.timeEnd(label));\n },\n timeLog(label, ...args) {\n return core.sync(() => {\n console.timeLog(label, ...args);\n });\n },\n trace(...args) {\n return core.sync(() => {\n console.trace(...args);\n });\n },\n warn(...args) {\n return core.sync(() => {\n console.warn(...args);\n });\n },\n unsafe: console\n};\n//# sourceMappingURL=console.js.map","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","import * as Equal from \"./Equal.js\";\nimport * as Equivalence from \"./Equivalence.js\";\nimport { constNull, constUndefined, dual, identity, isFunction } from \"./Function.js\";\nimport * as doNotation from \"./internal/doNotation.js\";\nimport * as either from \"./internal/either.js\";\nimport * as option from \"./internal/option.js\";\nimport * as order from \"./Order.js\";\nimport * as Gen from \"./Utils.js\";\n/**\n * @category Symbols\n * @since 2.0.0\n */\nexport const TypeId = /*#__PURE__*/Symbol.for(\"effect/Option\");\n/**\n * Represents the absence of a value by creating an empty `Option`.\n *\n * `Option.none` returns an `Option`, which is a subtype of `Option`.\n * This means you can use it in place of any `Option` regardless of the type\n * `A`.\n *\n * **Example** (Creating an Option with No Value)\n *\n * ```ts\n * import { Option } from \"effect\"\n *\n * // An Option holding no value\n * //\n * // ┌─── Option\n * // ▼\n * const noValue = Option.none()\n *\n * console.log(noValue)\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @see {@link some} for the opposite operation.\n *\n * @category Constructors\n * @since 2.0.0\n */\nexport const none = () => option.none;\n/**\n * Wraps the given value into an `Option` to represent its presence.\n *\n * **Example** (Creating an Option with a Value)\n *\n * ```ts\n * import { Option } from \"effect\"\n *\n * // An Option holding the number 1\n * //\n * // ┌─── Option\n * // ▼\n * const value = Option.some(1)\n *\n * console.log(value)\n * // Output: { _id: 'Option', _tag: 'Some', value: 1 }\n * ```\n *\n * @see {@link none} for the opposite operation.\n *\n * @category Constructors\n * @since 2.0.0\n */\nexport const some = option.some;\n/**\n * Determines whether the given value is an `Option`.\n *\n * **Details**\n *\n * This function checks if a value is an instance of `Option`. It returns `true`\n * if the value is either `Option.some` or `Option.none`, and `false` otherwise.\n * This is particularly useful when working with unknown values or when you need\n * to ensure type safety in your code.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.isOption(Option.some(1)))\n * // Output: true\n *\n * console.log(Option.isOption(Option.none()))\n * // Output: true\n *\n * console.log(Option.isOption({}))\n * // Output: false\n * ```\n *\n * @category Guards\n * @since 2.0.0\n */\nexport const isOption = option.isOption;\n/**\n * Checks whether an `Option` represents the absence of a value (`None`).\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.isNone(Option.some(1)))\n * // Output: false\n *\n * console.log(Option.isNone(Option.none()))\n * // Output: true\n * ```\n *\n * @see {@link isSome} for the opposite check.\n *\n * @category Guards\n * @since 2.0.0\n */\nexport const isNone = option.isNone;\n/**\n * Checks whether an `Option` contains a value (`Some`).\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.isSome(Option.some(1)))\n * // Output: true\n *\n * console.log(Option.isSome(Option.none()))\n * // Output: false\n * ```\n *\n * @see {@link isNone} for the opposite check.\n *\n * @category Guards\n * @since 2.0.0\n */\nexport const isSome = option.isSome;\n/**\n * Performs pattern matching on an `Option` to handle both `Some` and `None`\n * cases.\n *\n * **Details**\n *\n * This function allows you to match against an `Option` and handle both\n * scenarios: when the `Option` is `None` (i.e., contains no value), and when\n * the `Option` is `Some` (i.e., contains a value). It executes one of the\n * provided functions based on the case:\n *\n * - If the `Option` is `None`, the `onNone` function is executed and its result\n * is returned.\n * - If the `Option` is `Some`, the `onSome` function is executed with the\n * contained value, and its result is returned.\n *\n * This function provides a concise and functional way to handle optional values\n * without resorting to `if` or manual checks, making your code more declarative\n * and readable.\n *\n * **Example** (Pattern Matching with Option)\n *\n * ```ts\n * import { Option } from \"effect\"\n *\n * const foo = Option.some(1)\n *\n * const message = Option.match(foo, {\n * onNone: () => \"Option is empty\",\n * onSome: (value) => `Option has a value: ${value}`\n * })\n *\n * console.log(message)\n * // Output: \"Option has a value: 1\"\n * ```\n *\n * @category Pattern matching\n * @since 2.0.0\n */\nexport const match = /*#__PURE__*/dual(2, (self, {\n onNone,\n onSome\n}) => isNone(self) ? onNone() : onSome(self.value));\n/**\n * Converts an `Option`-returning function into a type guard.\n *\n * **Details**\n *\n * This function transforms a function that returns an `Option` into a type\n * guard, ensuring type safety when validating or narrowing types. The returned\n * type guard function checks whether the input satisfies the condition defined\n * in the original `Option`-returning function.\n *\n * If the original function returns `Option.some`, the type guard evaluates to\n * `true`, confirming the input is of the desired type. If the function returns\n * `Option.none`, the type guard evaluates to `false`.\n *\n * This utility is especially useful for validating types in union types,\n * filtering arrays, or ensuring safe handling of specific subtypes.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * type MyData = string | number\n *\n * const parseString = (data: MyData): Option.Option =>\n * typeof data === \"string\" ? Option.some(data) : Option.none()\n *\n * // ┌─── (a: MyData) => a is string\n * // ▼\n * const isString = Option.toRefinement(parseString)\n *\n * console.log(isString(\"a\"))\n * // Output: true\n *\n * console.log(isString(1))\n * // Output: false\n * ```\n *\n * @category Conversions\n * @since 2.0.0\n */\nexport const toRefinement = f => a => isSome(f(a));\n/**\n * Converts an `Iterable` into an `Option`, wrapping the first element if it\n * exists.\n *\n * **Details**\n *\n * This function takes an `Iterable` (e.g., an array, a generator, or any object\n * implementing the `Iterable` interface) and returns an `Option` based on its\n * content:\n *\n * - If the `Iterable` contains at least one element, the first element is\n * wrapped in a `Some` and returned.\n * - If the `Iterable` is empty, `None` is returned, representing the absence of\n * a value.\n *\n * This utility is useful for safely handling collections that might be empty,\n * ensuring you explicitly handle both cases where a value exists or doesn't.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.fromIterable([1, 2, 3]))\n * // Output: { _id: 'Option', _tag: 'Some', value: 1 }\n *\n * console.log(Option.fromIterable([]))\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @category Constructors\n * @since 2.0.0\n */\nexport const fromIterable = collection => {\n for (const a of collection) {\n return some(a);\n }\n return none();\n};\n/**\n * Converts an `Either` into an `Option` by discarding the error and extracting\n * the right value.\n *\n * **Details**\n *\n * This function takes an `Either` and returns an `Option` based on its value:\n *\n * - If the `Either` is a `Right`, its value is wrapped in a `Some` and\n * returned.\n * - If the `Either` is a `Left`, the error is discarded, and `None` is\n * returned.\n *\n * This is particularly useful when you only care about the success case\n * (`Right`) of an `Either` and want to handle the result using `Option`. By\n * using this function, you can convert `Either` into a simpler structure for\n * cases where error handling is not required.\n *\n * @example\n * ```ts\n * import { Either, Option } from \"effect\"\n *\n * console.log(Option.getRight(Either.right(\"ok\")))\n * // Output: { _id: 'Option', _tag: 'Some', value: 'ok' }\n *\n * console.log(Option.getRight(Either.left(\"err\")))\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @see {@link getLeft} for the opposite operation.\n *\n * @category Conversions\n * @since 2.0.0\n */\nexport const getRight = either.getRight;\n/**\n * Converts an `Either` into an `Option` by discarding the right value and\n * extracting the left value.\n *\n * **Details**\n *\n * This function transforms an `Either` into an `Option` as follows:\n *\n * - If the `Either` is a `Left`, its value is wrapped in a `Some` and returned.\n * - If the `Either` is a `Right`, the value is discarded, and `None` is\n * returned.\n *\n * This utility is useful when you only care about the error case (`Left`) of an\n * `Either` and want to handle it as an `Option`. By discarding the right value,\n * it simplifies error-focused workflows.\n *\n * @example\n * ```ts\n * import { Either, Option } from \"effect\"\n *\n * console.log(Option.getLeft(Either.right(\"ok\")))\n * // Output: { _id: 'Option', _tag: 'None' }\n *\n * console.log(Option.getLeft(Either.left(\"err\")))\n * // Output: { _id: 'Option', _tag: 'Some', value: 'err' }\n * ```\n *\n * @see {@link getRight} for the opposite operation.\n *\n * @category Conversions\n * @since 2.0.0\n */\nexport const getLeft = either.getLeft;\n/**\n * Returns the value contained in the `Option` if it is `Some`, otherwise\n * evaluates and returns the result of `onNone`.\n *\n * **Details**\n *\n * This function allows you to provide a fallback value or computation for when\n * an `Option` is `None`. If the `Option` contains a value (`Some`), that value\n * is returned. If it is empty (`None`), the `onNone` function is executed, and\n * its result is returned instead.\n *\n * This utility is helpful for safely handling `Option` values by ensuring you\n * always receive a meaningful result, whether or not the `Option` contains a\n * value. It is particularly useful for providing default values or alternative\n * logic when working with optional values.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.some(1).pipe(Option.getOrElse(() => 0)))\n * // Output: 1\n *\n * console.log(Option.none().pipe(Option.getOrElse(() => 0)))\n * // Output: 0\n * ```\n *\n * @see {@link getOrNull} for a version that returns `null` instead of executing a function.\n * @see {@link getOrUndefined} for a version that returns `undefined` instead of executing a function.\n *\n * @category Getters\n * @since 2.0.0\n */\nexport const getOrElse = /*#__PURE__*/dual(2, (self, onNone) => isNone(self) ? onNone() : self.value);\n/**\n * Returns the provided `Option` `that` if the current `Option` (`self`) is\n * `None`; otherwise, it returns `self`.\n *\n * **Details**\n *\n * This function provides a fallback mechanism for `Option` values. If the\n * current `Option` is `None` (i.e., it contains no value), the `that` function\n * is evaluated, and its resulting `Option` is returned. If the current `Option`\n * is `Some` (i.e., it contains a value), the original `Option` is returned\n * unchanged.\n *\n * This is particularly useful for chaining fallback values or computations,\n * allowing you to provide alternative `Option` values when the first one is\n * empty.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.none().pipe(Option.orElse(() => Option.none())))\n * // Output: { _id: 'Option', _tag: 'None' }\n *\n * console.log(Option.some(\"a\").pipe(Option.orElse(() => Option.none())))\n * // Output: { _id: 'Option', _tag: 'Some', value: 'a' }\n *\n * console.log(Option.none().pipe(Option.orElse(() => Option.some(\"b\"))))\n * // Output: { _id: 'Option', _tag: 'Some', value: 'b' }\n *\n * console.log(Option.some(\"a\").pipe(Option.orElse(() => Option.some(\"b\"))))\n * // Output: { _id: 'Option', _tag: 'Some', value: 'a' }\n * ```\n *\n * @category Error handling\n * @since 2.0.0\n */\nexport const orElse = /*#__PURE__*/dual(2, (self, that) => isNone(self) ? that() : self);\n/**\n * Returns the provided default value wrapped in `Some` if the current `Option`\n * (`self`) is `None`; otherwise, returns `self`.\n *\n * **Details**\n *\n * This function provides a way to supply a default value for cases where an\n * `Option` is `None`. If the current `Option` is empty (`None`), the `onNone`\n * function is executed to compute the default value, which is then wrapped in a\n * `Some`. If the current `Option` contains a value (`Some`), it is returned as\n * is.\n *\n * This is particularly useful for handling optional values where a fallback\n * default needs to be provided explicitly in case of absence.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.none().pipe(Option.orElseSome(() => \"b\")))\n * // Output: { _id: 'Option', _tag: 'Some', value: 'b' }\n *\n * console.log(Option.some(\"a\").pipe(Option.orElseSome(() => \"b\")))\n * // Output: { _id: 'Option', _tag: 'Some', value: 'a' }\n * ```\n *\n * @category Error handling\n * @since 2.0.0\n */\nexport const orElseSome = /*#__PURE__*/dual(2, (self, onNone) => isNone(self) ? some(onNone()) : self);\n/**\n * Similar to {@link orElse}, but returns an `Either` wrapped in an `Option` to\n * indicate the source of the value.\n *\n * **Details**\n *\n * This function allows you to provide a fallback `Option` in case the current\n * `Option` (`self`) is `None`. However, unlike `orElse`, it returns the value\n * wrapped in an `Either` object, providing additional information about where\n * the value came from:\n *\n * - If the value is from the fallback `Option` (`that`), it is wrapped in an\n * `Either.right`.\n * - If the value is from the original `Option` (`self`), it is wrapped in an\n * `Either.left`.\n *\n * This is especially useful when you need to differentiate between values\n * originating from the primary `Option` and those coming from the fallback,\n * while still maintaining the `Option`-style handling.\n *\n * @category Error handling\n * @since 2.0.0\n */\nexport const orElseEither = /*#__PURE__*/dual(2, (self, that) => isNone(self) ? map(that(), either.right) : map(self, either.left));\n/**\n * Returns the first `Some` value found in an `Iterable` collection of\n * `Option`s, or `None` if no `Some` is found.\n *\n * **Details**\n *\n * This function iterates over a collection of `Option` values and returns the\n * first `Some` it encounters. If the collection contains only `None` values,\n * the result will also be `None`. This utility is useful for efficiently\n * finding the first valid value in a sequence of potentially empty or invalid\n * options.\n *\n * The iteration stops as soon as a `Some` is found, making this function\n * efficient for large collections.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.firstSomeOf([\n * Option.none(),\n * Option.some(1),\n * Option.some(2)\n * ]))\n * // Output: { _id: 'Option', _tag: 'Some', value: 1 }\n * ```\n *\n * @category Error handling\n * @since 2.0.0\n */\nexport const firstSomeOf = collection => {\n let out = none();\n for (out of collection) {\n if (isSome(out)) {\n return out;\n }\n }\n return out;\n};\n/**\n * Converts a nullable value into an `Option`. Returns `None` if the value is\n * `null` or `undefined`, otherwise wraps the value in a `Some`.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.fromNullable(undefined))\n * // Output: { _id: 'Option', _tag: 'None' }\n *\n * console.log(Option.fromNullable(null))\n * // Output: { _id: 'Option', _tag: 'None' }\n *\n * console.log(Option.fromNullable(1))\n * // Output: { _id: 'Option', _tag: 'Some', value: 1 }\n * ```\n *\n * @category Conversions\n * @since 2.0.0\n */\nexport const fromNullable = nullableValue => nullableValue == null ? none() : some(nullableValue);\n/**\n * Lifts a function that returns `null` or `undefined` into the `Option`\n * context.\n *\n * **Details**\n *\n * This function takes a function `f` that might return `null` or `undefined`\n * and transforms it into a function that returns an `Option`. The resulting\n * function will return:\n * - `Some` if the original function produces a non-null, non-undefined value.\n * - `None` if the original function produces `null` or `undefined`.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * const parse = (s: string): number | undefined => {\n * const n = parseFloat(s)\n * return isNaN(n) ? undefined : n\n * }\n *\n * const parseOption = Option.liftNullable(parse)\n *\n * console.log(parseOption(\"1\"))\n * // Output: { _id: 'Option', _tag: 'Some', value: 1 }\n *\n * console.log(parseOption(\"not a number\"))\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @category Conversions\n * @since 2.0.0\n */\nexport const liftNullable = f => (...a) => fromNullable(f(...a));\n/**\n * Returns the value contained in the `Option` if it is `Some`; otherwise,\n * returns `null`.\n *\n * **Details**\n *\n * This function provides a way to extract the value of an `Option` while\n * falling back to `null` if the `Option` is `None`.\n *\n * It is particularly useful in scenarios where `null` is an acceptable\n * placeholder for the absence of a value, such as when interacting with APIs or\n * systems that use `null` as a default for missing values.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.getOrNull(Option.some(1)))\n * // Output: 1\n *\n * console.log(Option.getOrNull(Option.none()))\n * // Output: null\n * ```\n *\n * @category Getters\n * @since 2.0.0\n */\nexport const getOrNull = /*#__PURE__*/getOrElse(constNull);\n/**\n * Returns the value contained in the `Option` if it is `Some`; otherwise,\n * returns `undefined`.\n *\n * **Details**\n *\n * This function provides a way to extract the value of an `Option` while\n * falling back to `undefined` if the `Option` is `None`.\n *\n * It is particularly useful in scenarios where `undefined` is an acceptable\n * placeholder for the absence of a value, such as when interacting with APIs or\n * systems that use `undefined` as a default for missing values.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.getOrUndefined(Option.some(1)))\n * // Output: 1\n *\n * console.log(Option.getOrUndefined(Option.none()))\n * // Output: undefined\n * ```\n *\n * @category Getters\n * @since 2.0.0\n */\nexport const getOrUndefined = /*#__PURE__*/getOrElse(constUndefined);\n/**\n * Lifts a function that throws exceptions into a function that returns an\n * `Option`.\n *\n * **Details**\n *\n * This utility function takes a function `f` that might throw an exception and\n * transforms it into a safer function that returns an `Option`. If the original\n * function executes successfully, the result is wrapped in a `Some`. If an\n * exception is thrown, the result is `None`, allowing the developer to handle\n * errors in a functional, type-safe way.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * const parse = Option.liftThrowable(JSON.parse)\n *\n * console.log(parse(\"1\"))\n * // Output: { _id: 'Option', _tag: 'Some', value: 1 }\n *\n * console.log(parse(\"\"))\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @category Conversions\n * @since 2.0.0\n */\nexport const liftThrowable = f => (...a) => {\n try {\n return some(f(...a));\n } catch {\n return none();\n }\n};\n/**\n * Extracts the value of an `Option` or throws an error if the `Option` is\n * `None`, using a custom error factory.\n *\n * **Details**\n *\n * This function allows you to extract the value of an `Option` when it is\n * `Some`. If the `Option` is `None`, it throws an error generated by the\n * provided `onNone` function. This utility is particularly useful when you need\n * a fail-fast behavior for empty `Option` values and want to provide a custom\n * error message or object.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Option } from \"effect\"\n *\n * assert.deepStrictEqual(\n * Option.getOrThrowWith(Option.some(1), () => new Error('Unexpected None')),\n * 1\n * )\n * assert.throws(() => Option.getOrThrowWith(Option.none(), () => new Error('Unexpected None')))\n * ```\n *\n * @see {@link getOrThrow} for a version that throws a default error.\n *\n * @category Conversions\n * @since 2.0.0\n */\nexport const getOrThrowWith = /*#__PURE__*/dual(2, (self, onNone) => {\n if (isSome(self)) {\n return self.value;\n }\n throw onNone();\n});\n/**\n * Extracts the value of an `Option` or throws a default error if the `Option`\n * is `None`.\n *\n * **Details**\n *\n * This function extracts the value from an `Option` if it is `Some`. If the\n * `Option` is `None`, it throws a default error. It is useful for fail-fast\n * scenarios where the absence of a value is treated as an exceptional case and\n * a default error is sufficient.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Option } from \"effect\"\n *\n * assert.deepStrictEqual(Option.getOrThrow(Option.some(1)), 1)\n * assert.throws(() => Option.getOrThrow(Option.none()))\n * ```\n *\n * @see {@link getOrThrowWith} for a version that allows you to provide a custom error.\n *\n * @category Conversions\n * @since 2.0.0\n */\nexport const getOrThrow = /*#__PURE__*/getOrThrowWith(() => new Error(\"getOrThrow called on a None\"));\n/**\n * Transforms the value inside a `Some` to a new value using the provided\n * function, while leaving `None` unchanged.\n *\n * **Details**\n *\n * This function applies a mapping function `f` to the value inside an `Option`\n * if it is a `Some`. If the `Option` is `None`, it remains unchanged. The\n * result is a new `Option` with the transformed value (if it was a `Some`) or\n * still `None`.\n *\n * This utility is particularly useful for chaining transformations in a\n * functional way without needing to manually handle `None` cases.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * // Mapping over a `Some`\n * const someValue = Option.some(2)\n *\n * console.log(Option.map(someValue, (n) => n * 2))\n * // Output: { _id: 'Option', _tag: 'Some', value: 4 }\n *\n * // Mapping over a `None`\n * const noneValue = Option.none()\n *\n * console.log(Option.map(noneValue, (n) => n * 2))\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @category Mapping\n * @since 2.0.0\n */\nexport const map = /*#__PURE__*/dual(2, (self, f) => isNone(self) ? none() : some(f(self.value)));\n/**\n * Replaces the value inside a `Some` with the specified constant value, leaving\n * `None` unchanged.\n *\n * **Details**\n *\n * This function transforms an `Option` by replacing the value inside a `Some`\n * with the given constant value `b`. If the `Option` is `None`, it remains\n * unchanged.\n *\n * This is useful when you want to preserve the presence of a value (`Some`) but\n * replace its content with a fixed value.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * // Replacing the value of a `Some`\n * const someValue = Option.some(42)\n *\n * console.log(Option.as(someValue, \"new value\"))\n * // Output: { _id: 'Option', _tag: 'Some', value: 'new value' }\n *\n * // Replacing a `None` (no effect)\n * const noneValue = Option.none()\n *\n * console.log(Option.as(noneValue, \"new value\"))\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @category Mapping\n * @since 2.0.0\n */\nexport const as = /*#__PURE__*/dual(2, (self, b) => map(self, () => b));\n/**\n * Replaces the value inside a `Some` with the constant value `void`, leaving\n * `None` unchanged.\n *\n * **Details**\n *\n * This function transforms an `Option` by replacing the value inside a `Some`\n * with `void`. If the `Option` is `None`, it remains unchanged.\n *\n * This is particularly useful in scenarios where the presence or absence of a\n * value is significant, but the actual content of the value is irrelevant.\n *\n * @category Mapping\n * @since 2.0.0\n */\nexport const asVoid = /*#__PURE__*/as(undefined);\nconst void_ = /*#__PURE__*/some(undefined);\nexport {\n/**\n * @since 2.0.0\n */\nvoid_ as void };\n/**\n * Applies a function to the value of a `Some` and flattens the resulting\n * `Option`. If the input is `None`, it remains `None`.\n *\n * **Details**\n *\n * This function allows you to chain computations that return `Option` values.\n * If the input `Option` is `Some`, the provided function `f` is applied to the\n * contained value, and the resulting `Option` is returned. If the input is\n * `None`, the function is not applied, and the result remains `None`.\n *\n * This utility is particularly useful for sequencing operations that may fail\n * or produce optional results, enabling clean and concise workflows for\n * handling such cases.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * interface Address {\n * readonly city: string\n * readonly street: Option.Option\n * }\n *\n * interface User {\n * readonly id: number\n * readonly username: string\n * readonly email: Option.Option\n * readonly address: Option.Option
\n * }\n *\n * const user: User = {\n * id: 1,\n * username: \"john_doe\",\n * email: Option.some(\"john.doe@example.com\"),\n * address: Option.some({\n * city: \"New York\",\n * street: Option.some(\"123 Main St\")\n * })\n * }\n *\n * // Use flatMap to extract the street value\n * const street = user.address.pipe(\n * Option.flatMap((address) => address.street)\n * )\n *\n * console.log(street)\n * // Output: { _id: 'Option', _tag: 'Some', value: '123 Main St' }\n * ```\n *\n * @category Sequencing\n * @since 2.0.0\n */\nexport const flatMap = /*#__PURE__*/dual(2, (self, f) => isNone(self) ? none() : f(self.value));\n/**\n * Chains two `Option`s together. The second `Option` can either be a static\n * value or depend on the result of the first `Option`.\n *\n * **Details**\n *\n * This function enables sequencing of two `Option` computations. If the first\n * `Option` is `Some`, the second `Option` is evaluated. The second `Option` can\n * either:\n *\n * - Be a static `Option` value.\n * - Be a function that produces an `Option`, optionally based on the value of\n * the first `Option`.\n *\n * If the first `Option` is `None`, the function skips the evaluation of the\n * second `Option` and directly returns `None`.\n *\n * @category Sequencing\n * @since 2.0.0\n */\nexport const andThen = /*#__PURE__*/dual(2, (self, f) => flatMap(self, a => {\n const b = isFunction(f) ? f(a) : f;\n return isOption(b) ? b : some(b);\n}));\n/**\n * Combines `flatMap` and `fromNullable`, transforming the value inside a `Some`\n * using a function that may return `null` or `undefined`.\n *\n * **Details**\n *\n * This function applies a transformation function `f` to the value inside a\n * `Some`. The function `f` may return a value, `null`, or `undefined`. If `f`\n * returns a value, it is wrapped in a `Some`. If `f` returns `null` or\n * `undefined`, the result is `None`. If the input `Option` is `None`, the\n * function is not applied, and `None` is returned.\n *\n * This utility is particularly useful when working with deeply nested optional\n * values or chaining computations that may result in `null` or `undefined` at\n * some point.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * interface Employee {\n * company?: {\n * address?: {\n * street?: {\n * name?: string\n * }\n * }\n * }\n * }\n *\n * const employee1: Employee = { company: { address: { street: { name: \"high street\" } } } }\n *\n * // Extracting a deeply nested property\n * console.log(\n * Option.some(employee1)\n * .pipe(Option.flatMapNullable((employee) => employee.company?.address?.street?.name))\n * )\n * // Output: { _id: 'Option', _tag: 'Some', value: 'high street' }\n *\n * const employee2: Employee = { company: { address: { street: {} } } }\n *\n * // Property does not exist\n * console.log(\n * Option.some(employee2)\n * .pipe(Option.flatMapNullable((employee) => employee.company?.address?.street?.name))\n * )\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @category Sequencing\n * @since 2.0.0\n */\nexport const flatMapNullable = /*#__PURE__*/dual(2, (self, f) => isNone(self) ? none() : fromNullable(f(self.value)));\n/**\n * Flattens an `Option` of `Option` into a single `Option`.\n *\n * **Details**\n *\n * This function takes an `Option` that wraps another `Option` and flattens it\n * into a single `Option`. If the outer `Option` is `Some`, the function\n * extracts the inner `Option`. If the outer `Option` is `None`, the result\n * remains `None`.\n *\n * This is useful for simplifying nested `Option` structures that may arise\n * during functional operations.\n *\n * @category Sequencing\n * @since 2.0.0\n */\nexport const flatten = /*#__PURE__*/flatMap(identity);\n/**\n * Combines two `Option`s, keeping the value from the second `Option` if both\n * are `Some`.\n *\n * **Details**\n *\n * This function takes two `Option`s and returns the second one if the first is\n * `Some`. If the first `Option` is `None`, the result will also be `None`,\n * regardless of the second `Option`. It effectively \"zips\" the two `Option`s\n * while discarding the value from the first `Option`.\n *\n * This is particularly useful when sequencing computations where the result of\n * the first computation is not needed, and you only care about the result of\n * the second computation.\n *\n * @category Zipping\n * @since 2.0.0\n */\nexport const zipRight = /*#__PURE__*/dual(2, (self, that) => flatMap(self, () => that));\n/**\n * Combines two `Option`s, keeping the value from the first `Option` if both are\n * `Some`.\n *\n * **Details**\n *\n * This function takes two `Option`s and returns the first one if it is `Some`.\n * If either the first `Option` or the second `Option` is `None`, the result\n * will be `None`. This operation \"zips\" the two `Option`s while discarding the\n * value from the second `Option`.\n *\n * This is useful when sequencing computations where the second `Option`\n * represents a dependency or condition that must hold, but its value is\n * irrelevant.\n *\n * @category Zipping\n * @since 2.0.0\n */\nexport const zipLeft = /*#__PURE__*/dual(2, (self, that) => tap(self, () => that));\n/**\n * Composes two functions that return `Option` values, creating a new function\n * that chains them together.\n *\n * **Details**\n *\n * This function allows you to compose two computations, each represented by a\n * function that returns an `Option`. The result of the first function is passed\n * to the second function if it is `Some`. If the first function returns `None`,\n * the composed function short-circuits and returns `None` without invoking the\n * second function.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * const parse = (s: string): Option.Option => isNaN(Number(s)) ? Option.none() : Option.some(Number(s))\n *\n * const double = (n: number): Option.Option => n > 0 ? Option.some(n * 2) : Option.none()\n *\n * const parseAndDouble = Option.composeK(parse, double)\n *\n * console.log(parseAndDouble(\"42\"))\n * // Output: { _id: 'Option', _tag: 'Some', value: 84 }\n *\n * console.log(parseAndDouble(\"not a number\"))\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @category Sequencing\n * @since 2.0.0\n */\nexport const composeK = /*#__PURE__*/dual(2, (afb, bfc) => a => flatMap(afb(a), bfc));\n/**\n * Applies the provided function `f` to the value of the `Option` if it is\n * `Some` and returns the original `Option`, unless `f` returns `None`, in which\n * case it returns `None`.\n *\n * **Details**\n *\n * This function allows you to perform additional computations on the value of\n * an `Option` without modifying its original value. If the `Option` is `Some`,\n * the provided function `f` is executed with the value, and its result\n * determines whether the original `Option` is returned (`Some`) or the result\n * is `None` if `f` returns `None`. If the input `Option` is `None`, the\n * function is not executed, and `None` is returned.\n *\n * This is particularly useful for applying side conditions or performing\n * validation checks while retaining the original `Option`'s value.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * const getInteger = (n: number) => Number.isInteger(n) ? Option.some(n) : Option.none()\n *\n * console.log(Option.tap(Option.none(), getInteger))\n * // Output: { _id: 'Option', _tag: 'None' }\n *\n * console.log(Option.tap(Option.some(1), getInteger))\n * // Output: { _id: 'Option', _tag: 'Some', value: 1 }\n *\n * console.log(Option.tap(Option.some(1.14), getInteger))\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @category Sequencing\n * @since 2.0.0\n */\nexport const tap = /*#__PURE__*/dual(2, (self, f) => flatMap(self, a => map(f(a), () => a)));\n/**\n * Combines two `Option` values into a single `Option` containing a tuple of\n * their values if both are `Some`.\n *\n * **Details**\n *\n * This function takes two `Option`s and combines their values into a tuple `[A,\n * B]` if both are `Some`. If either of the `Option`s is `None`, the result is\n * `None`. This is particularly useful for combining multiple `Option` values\n * into a single one, ensuring both contain valid values.\n *\n * @category Combining\n * @since 2.0.0\n */\nexport const product = (self, that) => isSome(self) && isSome(that) ? some([self.value, that.value]) : none();\n/**\n * Combines an `Option` with a collection of `Option`s into a single `Option`\n * containing a tuple of their values if all are `Some`.\n *\n * **Details**\n *\n * This function takes a primary `Option` and a collection of `Option`s and\n * combines their values into a tuple `[A, ...Array]` if all are `Some`. If\n * the primary `Option` or any `Option` in the collection is `None`, the result\n * is `None`.\n *\n * @category Combining\n * @since 2.0.0\n */\nexport const productMany = (self, collection) => {\n if (isNone(self)) {\n return none();\n }\n const out = [self.value];\n for (const o of collection) {\n if (isNone(o)) {\n return none();\n }\n out.push(o.value);\n }\n return some(out);\n};\n/**\n * Combines a structure of `Option`s into a single `Option` containing the\n * values with the same structure.\n *\n * **Details**\n *\n * This function takes a structure of `Option`s (a tuple, struct, or iterable)\n * and produces a single `Option` that contains the values from the input\n * structure if all `Option`s are `Some`. If any `Option` in the input is\n * `None`, the result is `None`. The structure of the input is preserved in the\n * output.\n *\n * - If the input is a tuple (e.g., an array), the result will be an `Option`\n * containing a tuple with the same length.\n * - If the input is a struct (e.g., an object), the result will be an `Option`\n * containing a struct with the same keys.\n * - If the input is an iterable, the result will be an `Option` containing an\n * array.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * const maybeName: Option.Option = Option.some(\"John\")\n * const maybeAge: Option.Option = Option.some(25)\n *\n * // ┌─── Option<[string, number]>\n * // ▼\n * const tuple = Option.all([maybeName, maybeAge])\n * console.log(tuple)\n * // Output:\n * // { _id: 'Option', _tag: 'Some', value: [ 'John', 25 ] }\n *\n * // ┌─── Option<{ name: string; age: number; }>\n * // ▼\n * const struct = Option.all({ name: maybeName, age: maybeAge })\n * console.log(struct)\n * // Output:\n * // { _id: 'Option', _tag: 'Some', value: { name: 'John', age: 25 } }\n * ```\n *\n * @category Combining\n * @since 2.0.0\n */\n// @ts-expect-error\nexport const all = input => {\n if (Symbol.iterator in input) {\n const out = [];\n for (const o of input) {\n if (isNone(o)) {\n return none();\n }\n out.push(o.value);\n }\n return some(out);\n }\n const out = {};\n for (const key of Object.keys(input)) {\n const o = input[key];\n if (isNone(o)) {\n return none();\n }\n out[key] = o.value;\n }\n return some(out);\n};\n/**\n * Combines two `Option` values into a new `Option` by applying a provided\n * function to their values.\n *\n * **Details**\n *\n * This function takes two `Option` values (`self` and `that`) and a combining\n * function `f`. If both `Option` values are `Some`, the function `f` is applied\n * to their values, and the result is wrapped in a new `Some`. If either\n * `Option` is `None`, the result is `None`.\n *\n * This utility is useful for combining two optional computations into a single\n * result while maintaining type safety and avoiding explicit checks for `None`.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * const maybeName: Option.Option = Option.some(\"John\")\n * const maybeAge: Option.Option = Option.some(25)\n *\n * // Combine the name and age into a person object\n * const person = Option.zipWith(maybeName, maybeAge, (name, age) => ({\n * name: name.toUpperCase(),\n * age\n * }))\n *\n * console.log(person)\n * // Output:\n * // { _id: 'Option', _tag: 'Some', value: { name: 'JOHN', age: 25 } }\n * ```\n *\n * @category Zipping\n * @since 2.0.0\n */\nexport const zipWith = /*#__PURE__*/dual(3, (self, that, f) => map(product(self, that), ([a, b]) => f(a, b)));\n/**\n * Applies a function inside a `Some` to a value inside another `Some`,\n * combining them into a new `Option`.\n *\n * **Details**\n *\n * This function allows you to apply a function wrapped in an `Option` (`self`)\n * to a value wrapped in another `Option` (`that`). If both `Option`s are\n * `Some`, the function is applied to the value, and the result is wrapped in a\n * new `Some`. If either `Option` is `None`, the result is `None`.\n *\n * @category Combining\n * @since 2.0.0\n */\nexport const ap = /*#__PURE__*/dual(2, (self, that) => zipWith(self, that, (f, a) => f(a)));\n/**\n * Reduces an `Iterable` of `Option` to a single value of type `B`, ignoring\n * elements that are `None`.\n *\n * **Details**\n *\n * This function takes an initial value of type `B` and a reducing function `f`\n * that combines the accumulator with values of type `A`. It processes an\n * iterable of `Option`, applying `f` only to the `Some` values while\n * ignoring the `None` values. The result is a single value of type `B`.\n *\n * This utility is particularly useful for aggregating values from an iterable\n * of `Option`s while skipping the absent (`None`) values.\n *\n * @example\n * ```ts\n * import { Option, pipe } from \"effect\"\n *\n * const iterable = [Option.some(1), Option.none(), Option.some(2), Option.none()]\n *\n * console.log(pipe(iterable, Option.reduceCompact(0, (b, a) => b + a)))\n * // Output: 3\n * ```\n *\n * @category Reducing\n * @since 2.0.0\n */\nexport const reduceCompact = /*#__PURE__*/dual(3, (self, b, f) => {\n let out = b;\n for (const oa of self) {\n if (isSome(oa)) {\n out = f(out, oa.value);\n }\n }\n return out;\n});\n/**\n * Converts an `Option` into an `Array`.\n * If the input is `None`, an empty array is returned.\n * If the input is `Some`, its value is wrapped in a single-element array.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.toArray(Option.some(1)))\n * // Output: [1]\n *\n * console.log(Option.toArray(Option.none()))\n * // Output: []\n * ```\n *\n * @category Conversions\n * @since 2.0.0\n */\nexport const toArray = self => isNone(self) ? [] : [self.value];\n/**\n * Splits an `Option` into two `Option`s based on the result of a mapping\n * function that produces an `Either`.\n *\n * **Details**\n *\n * This function takes an `Option` and a mapping function `f` that converts its\n * value into an `Either`. It returns a tuple of two `Option`s:\n *\n * - The first `Option` (`left`) contains the value from the `Left` side of the\n * `Either` if it exists, otherwise `None`.\n * - The second `Option` (`right`) contains the value from the `Right` side of\n * the `Either` if it exists, otherwise `None`.\n *\n * If the input `Option` is `None`, both returned `Option`s are `None`.\n *\n * This utility is useful for filtering and categorizing the contents of an\n * `Option` based on a bifurcating computation.\n *\n * @category Filtering\n * @since 2.0.0\n */\nexport const partitionMap = /*#__PURE__*/dual(2, (self, f) => {\n if (isNone(self)) {\n return [none(), none()];\n }\n const e = f(self.value);\n return either.isLeft(e) ? [some(e.left), none()] : [none(), some(e.right)];\n});\n// TODO(4.0): remove?\n/**\n * Alias of {@link flatMap}.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * // Transform and filter numbers\n * const transformEven = (n: Option.Option): Option.Option =>\n * Option.filterMap(n, (n) => (n % 2 === 0 ? Option.some(`Even: ${n}`) : Option.none()))\n *\n * console.log(transformEven(Option.none()))\n * // Output: { _id: 'Option', _tag: 'None' }\n *\n * console.log(transformEven(Option.some(1)))\n * // Output: { _id: 'Option', _tag: 'None' }\n *\n * console.log(transformEven(Option.some(2)))\n * // Output: { _id: 'Option', _tag: 'Some', value: 'Even: 2' }\n * ```\n *\n * @category Filtering\n * @since 2.0.0\n */\nexport const filterMap = flatMap;\n/**\n * Filters an `Option` using a predicate. If the predicate is not satisfied or the `Option` is `None` returns `None`.\n *\n * If you need to change the type of the `Option` in addition to filtering, see `filterMap`.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * const removeEmptyString = (input: Option.Option) =>\n * Option.filter(input, (value) => value !== \"\")\n *\n * console.log(removeEmptyString(Option.none()))\n * // Output: { _id: 'Option', _tag: 'None' }\n *\n * console.log(removeEmptyString(Option.some(\"\")))\n * // Output: { _id: 'Option', _tag: 'None' }\n *\n * console.log(removeEmptyString(Option.some(\"a\")))\n * // Output: { _id: 'Option', _tag: 'Some', value: 'a' }\n * ```\n *\n * @category Filtering\n * @since 2.0.0\n */\nexport const filter = /*#__PURE__*/dual(2, (self, predicate) => filterMap(self, b => predicate(b) ? option.some(b) : option.none));\n/**\n * Creates an `Equivalence` instance for comparing `Option` values, using a\n * provided `Equivalence` for the inner type.\n *\n * **Details**\n *\n * This function takes an `Equivalence` instance for a specific type `A` and\n * produces an `Equivalence` instance for `Option`. The resulting\n * `Equivalence` determines whether two `Option` values are equivalent:\n *\n * - Two `None`s are considered equivalent.\n * - A `Some` and a `None` are not equivalent.\n * - Two `Some` values are equivalent if their inner values are equivalent\n * according to the provided `Equivalence`.\n *\n * **Example** (Comparing Optional Numbers for Equivalence)\n *\n * ```ts\n * import { Number, Option } from \"effect\"\n *\n * const isEquivalent = Option.getEquivalence(Number.Equivalence)\n *\n * console.log(isEquivalent(Option.none(), Option.none()))\n * // Output: true\n *\n * console.log(isEquivalent(Option.none(), Option.some(1)))\n * // Output: false\n *\n * console.log(isEquivalent(Option.some(1), Option.none()))\n * // Output: false\n *\n * console.log(isEquivalent(Option.some(1), Option.some(2)))\n * // Output: false\n *\n * console.log(isEquivalent(Option.some(1), Option.some(1)))\n * // Output: true\n * ```\n *\n * @category Equivalence\n * @since 2.0.0\n */\nexport const getEquivalence = isEquivalent => Equivalence.make((x, y) => isNone(x) ? isNone(y) : isNone(y) ? false : isEquivalent(x.value, y.value));\n/**\n * Creates an `Order` instance for comparing `Option` values, using a provided\n * `Order` for the inner type.\n *\n * **Details**\n *\n * This function produces an `Order` instance for `Option`, allowing `Option`\n * values to be compared:\n *\n * - `None` is always considered less than any `Some` value.\n * - If both are `Some`, their inner values are compared using the provided\n * `Order` instance.\n *\n * @example\n * ```ts\n * import { Number, Option } from \"effect\"\n *\n * const order = Option.getOrder(Number.Order)\n *\n * console.log(order(Option.none(), Option.none()))\n * // Output: 0\n *\n * console.log(order(Option.none(), Option.some(1)))\n * // Output: -1\n *\n * console.log(order(Option.some(1), Option.none()))\n * // Output: 1\n *\n * console.log(order(Option.some(1), Option.some(2)))\n * // Output: -1\n *\n * console.log(order(Option.some(1), Option.some(1)))\n * // Output: 0\n * ```\n *\n * @category Sorting\n * @since 2.0.0\n */\nexport const getOrder = O => order.make((self, that) => isSome(self) ? isSome(that) ? O(self.value, that.value) : 1 : -1);\n/**\n * Lifts a binary function to work with `Option` values, allowing the function\n * to operate on two `Option`s.\n *\n * **Details**\n *\n * This function takes a binary function `f` and returns a new function that\n * applies `f` to the values of two `Option`s (`self` and `that`). If both\n * `Option`s are `Some`, the binary function `f` is applied to their values, and\n * the result is wrapped in a new `Some`. If either `Option` is `None`, the\n * result is `None`.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * // A binary function to add two numbers\n * const add = (a: number, b: number): number => a + b\n *\n * // Lift the `add` function to work with `Option` values\n * const addOptions = Option.lift2(add)\n *\n * // Both `Option`s are `Some`\n * console.log(addOptions(Option.some(2), Option.some(3)))\n * // Output: { _id: 'Option', _tag: 'Some', value: 5 }\n *\n * // One `Option` is `None`\n * console.log(addOptions(Option.some(2), Option.none()))\n * // Output: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @category Lifting\n * @since 2.0.0\n */\nexport const lift2 = f => dual(2, (self, that) => zipWith(self, that, f));\n/**\n * Lifts a `Predicate` or `Refinement` into the `Option` context, returning a\n * `Some` of the input value if the predicate is satisfied, or `None` otherwise.\n *\n * **Details**\n *\n * This function transforms a `Predicate` (or a more specific `Refinement`) into\n * a function that produces an `Option`. If the predicate evaluates to `true`,\n * the input value is wrapped in a `Some`. If the predicate evaluates to\n * `false`, the result is `None`.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * // Check if a number is positive\n * const isPositive = (n: number) => n > 0\n *\n * // ┌─── (b: number) => Option\n * // ▼\n * const parsePositive = Option.liftPredicate(isPositive)\n *\n * console.log(parsePositive(1))\n * // Output: { _id: 'Option', _tag: 'Some', value: 1 }\n *\n * console.log(parsePositive(-1))\n * // OUtput: { _id: 'Option', _tag: 'None' }\n * ```\n *\n * @category Lifting\n * @since 2.0.0\n */\nexport const liftPredicate = /*#__PURE__*/dual(2, (b, predicate) => predicate(b) ? some(b) : none());\n/**\n * Returns a function that checks if an `Option` contains a specified value,\n * using a provided equivalence function.\n *\n * **Details**\n *\n * This function allows you to check whether an `Option` contains a specific\n * value. It uses an equivalence function `isEquivalent` to compare the value\n * inside the `Option` to the provided value. If the `Option` is `Some` and the\n * equivalence function returns `true`, the result is `true`. If the `Option` is\n * `None` or the values are not equivalent, the result is `false`.\n *\n * @example\n * ```ts\n * import { Number, Option } from \"effect\"\n *\n * const contains = Option.containsWith(Number.Equivalence)\n *\n * console.log(Option.some(2).pipe(contains(2)))\n * // Output: true\n *\n * console.log(Option.some(1).pipe(contains(2)))\n * // Output: false\n *\n * console.log(Option.none().pipe(contains(2)))\n * // Output: false\n * ```\n *\n * @see {@link contains} for a version that uses the default `Equivalence`.\n *\n * @category Elements\n * @since 2.0.0\n */\nexport const containsWith = isEquivalent => dual(2, (self, a) => isNone(self) ? false : isEquivalent(self.value, a));\nconst _equivalence = /*#__PURE__*/Equal.equivalence();\n/**\n * Returns a function that checks if an `Option` contains a specified value\n * using the default `Equivalence`.\n *\n * **Details**\n *\n * This function allows you to check whether an `Option` contains a specific\n * value. It uses the default `Equivalence` for equality comparison. If the\n * `Option` is `Some` and its value is equivalent to the provided value, the\n * result is `true`. If the `Option` is `None` or the values are not equivalent,\n * the result is `false`.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * console.log(Option.some(2).pipe(Option.contains(2)))\n * // Output: true\n *\n * console.log(Option.some(1).pipe(Option.contains(2)))\n * // Output: false\n *\n * console.log(Option.none().pipe(Option.contains(2)))\n * // Output: false\n * ```\n *\n * @see {@link containsWith} for a version that allows you to specify a custom equivalence function.\n *\n * @category Elements\n * @since 2.0.0\n */\nexport const contains = /*#__PURE__*/containsWith(_equivalence);\n/**\n * Checks if a value in an `Option` satisfies a given predicate or refinement.\n *\n * **Details**\n *\n * This function allows you to check if a value inside a `Some` meets a\n * specified condition. If the `Option` is `None`, the result is `false`. If the\n * `Option` is `Some`, the provided predicate or refinement is applied to the\n * value:\n *\n * - If the condition is met, the result is `true`.\n * - If the condition is not met, the result is `false`.\n *\n * @example\n * ```ts\n * import { Option } from \"effect\"\n *\n * const isEven = (n: number) => n % 2 === 0\n *\n * console.log(Option.some(2).pipe(Option.exists(isEven)))\n * // Output: true\n *\n * console.log(Option.some(1).pipe(Option.exists(isEven)))\n * // Output: false\n *\n * console.log(Option.none().pipe(Option.exists(isEven)))\n * // Output: false\n * ```\n *\n * @category Elements\n * @since 2.0.0\n */\nexport const exists = /*#__PURE__*/dual(2, (self, refinement) => isNone(self) ? false : refinement(self.value));\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * The \"do simulation\" in Effect allows you to write code in a more declarative style, similar to the \"do notation\" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Option` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n * 5. Regular `Option` functions like `map` and `filter` can still be used within the do simulation. These functions will receive the accumulated variables as arguments within the scope\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Option, pipe } from \"effect\"\n *\n * const result = pipe(\n * Option.Do,\n * Option.bind(\"x\", () => Option.some(2)),\n * Option.bind(\"y\", () => Option.some(3)),\n * Option.let(\"sum\", ({ x, y }) => x + y),\n * Option.filter(({ x, y }) => x * y > 5)\n * )\n * assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))\n * ```\n *\n * @see {@link Do}\n * @see {@link bind}\n * @see {@link let_ let}\n *\n * @category Do notation\n * @since 2.0.0\n */\nexport const bindTo = /*#__PURE__*/doNotation.bindTo(map);\nconst let_ = /*#__PURE__*/doNotation.let_(map);\nexport {\n/**\n * The \"do simulation\" in Effect allows you to write code in a more declarative style, similar to the \"do notation\" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Option` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n * 5. Regular `Option` functions like `map` and `filter` can still be used within the do simulation. These functions will receive the accumulated variables as arguments within the scope\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Option, pipe } from \"effect\"\n *\n * const result = pipe(\n * Option.Do,\n * Option.bind(\"x\", () => Option.some(2)),\n * Option.bind(\"y\", () => Option.some(3)),\n * Option.let(\"sum\", ({ x, y }) => x + y),\n * Option.filter(({ x, y }) => x * y > 5)\n * )\n * assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))\n * ```\n *\n * @see {@link Do}\n * @see {@link bind}\n * @see {@link bindTo}\n *\n * @category Do notation\n * @since 2.0.0\n */\nlet_ as let };\n/**\n * The \"do simulation\" in Effect allows you to write code in a more declarative style, similar to the \"do notation\" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Option` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n * 5. Regular `Option` functions like `map` and `filter` can still be used within the do simulation. These functions will receive the accumulated variables as arguments within the scope\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Option, pipe } from \"effect\"\n *\n * const result = pipe(\n * Option.Do,\n * Option.bind(\"x\", () => Option.some(2)),\n * Option.bind(\"y\", () => Option.some(3)),\n * Option.let(\"sum\", ({ x, y }) => x + y),\n * Option.filter(({ x, y }) => x * y > 5)\n * )\n * assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))\n * ```\n *\n * @see {@link Do}\n * @see {@link bindTo}\n * @see {@link let_ let}\n *\n * @category Do notation\n * @since 2.0.0\n */\nexport const bind = /*#__PURE__*/doNotation.bind(map, flatMap);\n/**\n * The \"do simulation\" in Effect allows you to write code in a more declarative style, similar to the \"do notation\" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.\n *\n * Here's how the do simulation works:\n *\n * 1. Start the do simulation using the `Do` value\n * 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Option` values\n * 3. You can accumulate multiple `bind` statements to define multiple variables within the scope\n * 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values\n * 5. Regular `Option` functions like `map` and `filter` can still be used within the do simulation. These functions will receive the accumulated variables as arguments within the scope\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Option, pipe } from \"effect\"\n *\n * const result = pipe(\n * Option.Do,\n * Option.bind(\"x\", () => Option.some(2)),\n * Option.bind(\"y\", () => Option.some(3)),\n * Option.let(\"sum\", ({ x, y }) => x + y),\n * Option.filter(({ x, y }) => x * y > 5)\n * )\n * assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))\n * ```\n *\n * @see {@link bindTo}\n * @see {@link bind}\n * @see {@link let_ let}\n *\n * @category Do notation\n * @since 2.0.0\n */\nexport const Do = /*#__PURE__*/some({});\nconst adapter = /*#__PURE__*/Gen.adapter();\n/**\n * Similar to `Effect.gen`, `Option.gen` provides a more readable,\n * generator-based syntax for working with `Option` values, making code that\n * involves `Option` easier to write and understand. This approach is similar to\n * using `async/await` but tailored for `Option`.\n *\n * **Example** (Using `Option.gen` to Create a Combined Value)\n *\n * ```ts\n * import { Option } from \"effect\"\n *\n * const maybeName: Option.Option = Option.some(\"John\")\n * const maybeAge: Option.Option = Option.some(25)\n *\n * const person = Option.gen(function* () {\n * const name = (yield* maybeName).toUpperCase()\n * const age = yield* maybeAge\n * return { name, age }\n * })\n *\n * console.log(person)\n * // Output:\n * // { _id: 'Option', _tag: 'Some', value: { name: 'JOHN', age: 25 } }\n * ```\n *\n * @category Generators\n * @since 2.0.0\n */\nexport const gen = (...args) => {\n const f = args.length === 1 ? args[0] : args[1].bind(args[0]);\n const iterator = f(adapter);\n let state = iterator.next();\n while (!state.done) {\n const current = Gen.isGenKind(state.value) ? state.value.value : Gen.yieldWrapGet(state.value);\n if (isNone(current)) {\n return current;\n }\n state = iterator.next(current.value);\n }\n return some(state.value);\n};\n/**\n * Merges two optional values, applying a function if both exist.\n * Unlike {@link zipWith}, this function returns `None` only if both inputs are `None`.\n *\n * @internal\n */\nexport const mergeWith = f => (o1, o2) => {\n if (isNone(o1)) {\n return o2;\n } else if (isNone(o2)) {\n return o1;\n }\n return some(f(o1.value, o2.value));\n};\n//# sourceMappingURL=Option.js.map","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = [\n\t'Float16Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\n];\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","/**\n * Destroys a [`Filter`](https://viem.sh/docs/glossary/types#filter).\n *\n * - Docs: https://viem.sh/docs/actions/public/uninstallFilter\n * - JSON-RPC Methods: [`eth_uninstallFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_uninstallFilter)\n *\n * Destroys a Filter that was created from one of the following Actions:\n * - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter)\n * - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter)\n * - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter)\n *\n * @param client - Client to use\n * @param parameters - {@link UninstallFilterParameters}\n * @returns A boolean indicating if the Filter was successfully uninstalled. {@link UninstallFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createPendingTransactionFilter, uninstallFilter } from 'viem/public'\n *\n * const filter = await createPendingTransactionFilter(client)\n * const uninstalled = await uninstallFilter(client, { filter })\n * // true\n */\nexport async function uninstallFilter(_client, { filter }) {\n return filter.request({\n method: 'eth_uninstallFilter',\n params: [filter.id],\n });\n}\n//# sourceMappingURL=uninstallFilter.js.map","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n var lines = data.toString().split(/[\\r\\n]+/g);\n\n var label = options.label.toUpperCase();\n\n var re = /^-----(BEGIN|END) ([^-]+)-----$/;\n var start = -1;\n var end = -1;\n for (var i = 0; i < lines.length; i++) {\n var match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n var base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9\\+\\/=]+/gi, '');\n\n var input = new Buffer(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","export function defineChain(chain) {\n const chainInstance = {\n formatters: undefined,\n fees: undefined,\n serializers: undefined,\n ...chain,\n };\n function extend(base) {\n return (fnOrExtended) => {\n const properties = (typeof fnOrExtended === 'function' ? fnOrExtended(base) : fnOrExtended);\n const combined = { ...base, ...properties };\n return Object.assign(combined, { extend: extend(combined) });\n };\n }\n return Object.assign(chainInstance, {\n extend: extend(chainInstance),\n });\n}\nexport function extendSchema() {\n return {};\n}\n//# sourceMappingURL=defineChain.js.map","var asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","export const crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! 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 (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\n/** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */\nexport function isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is positive integer. */\nexport function anumber(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error('positive integer expected, got ' + n);\n}\n/** Asserts something is Uint8Array. */\nexport function abytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n/** Asserts something is hash */\nexport function ahash(h) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.createHasher');\n anumber(h.outputLen);\n anumber(h.blockLen);\n}\n/** Asserts a hash instance has not been destroyed / finished */\nexport function aexists(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}\n/** Asserts output is properly-sized byte array */\nexport function aoutput(out, instance) {\n abytes(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}\n/** Cast u8 / u16 / u32 to u8. */\nexport function u8(arr) {\n return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** Cast u8 / u16 / u32 to u32. */\nexport function u32(arr) {\n return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n/** Zeroize a byte array. Warning: JS provides no guarantees. */\nexport function clean(...arrays) {\n for (let i = 0; i < arrays.length; i++) {\n arrays[i].fill(0);\n }\n}\n/** Create DataView of an array for easy byte-level manipulation. */\nexport function createView(arr) {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** The rotate right (circular right shift) operation for uint32 */\nexport function rotr(word, shift) {\n return (word << (32 - shift)) | (word >>> shift);\n}\n/** The rotate left (circular left shift) operation for uint32 */\nexport function rotl(word, shift) {\n return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nexport const isLE = /* @__PURE__ */ (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n/** The byte swap operation for uint32 */\nexport function byteSwap(word) {\n return (((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff));\n}\n/** Conditionally byte swap if on a big-endian platform */\nexport const swap8IfBE = isLE\n ? (n) => n\n : (n) => byteSwap(n);\n/** @deprecated */\nexport const byteSwapIfBE = swap8IfBE;\n/** In place byte swap for Uint32Array */\nexport function byteSwap32(arr) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n return arr;\n}\nexport const swap32IfBE = isLE\n ? (u) => u\n : byteSwap32;\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = /* @__PURE__ */ (() => \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function')();\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin)\n return bytes.toHex();\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// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n if (ch >= asciis._0 && ch <= asciis._9)\n return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F)\n return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f)\n return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\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 // @ts-ignore\n if (hasHexBuiltin)\n return Uint8Array.fromHex(hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n }\n return array;\n}\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.\n */\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 * Converts string to bytes using UTF8 encoding.\n * @example utf8ToBytes('abc') // Uint8Array.from([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Converts bytes to string using UTF8 encoding.\n * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'\n */\nexport function bytesToUtf8(bytes) {\n return new TextDecoder().decode(bytes);\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 abytes(data);\n return data;\n}\n/**\n * Helper for KDFs: consumes uint8array or string.\n * When string is passed, does utf8 decoding, using TextDecoder.\n */\nexport function kdfInputToBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/** Copies several Uint8Arrays into one. */\nexport function concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && {}.toString.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}\n/** For runtime check if class implements interface */\nexport class Hash {\n}\n/** Wraps hash function, creating an interface on top of it */\nexport function createHasher(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 createOptHasher(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 createXOFer(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 const wrapConstructor = createHasher;\nexport const wrapConstructorWithOpts = createOptHasher;\nexport const wrapXOFConstructorWithOpts = createXOFer;\n/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nexport function randomBytes(bytesLength = 32) {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto && typeof crypto.randomBytes === 'function') {\n return Uint8Array.from(crypto.randomBytes(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","import { BaseError } from './base.js';\nexport class NegativeOffsetError extends BaseError {\n constructor({ offset }) {\n super(`Offset \\`${offset}\\` cannot be negative.`, {\n name: 'NegativeOffsetError',\n });\n }\n}\nexport class PositionOutOfBoundsError extends BaseError {\n constructor({ length, position }) {\n super(`Position \\`${position}\\` is out of bounds (\\`0 < position < ${length}\\`).`, { name: 'PositionOutOfBoundsError' });\n }\n}\nexport class RecursiveReadLimitExceededError extends BaseError {\n constructor({ count, limit }) {\n super(`Recursive read limit of \\`${limit}\\` exceeded (recursive read count: \\`${count}\\`).`, { name: 'RecursiveReadLimitExceededError' });\n }\n}\n//# sourceMappingURL=cursor.js.map","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError, } from '../../errors/account.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getContractError, } from '../../utils/errors/getContractError.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { sendTransaction, } from './sendTransaction.js';\n/**\n * Executes a write function on a contract.\n *\n * - Docs: https://viem.sh/docs/contract/writeContract\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\n *\n * A \"write\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\n *\n * Internally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n *\n * __Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\n *\n * @param client - Client to use\n * @param parameters - {@link WriteContractParameters}\n * @returns A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\n *\n * @example\n * import { createWalletClient, custom, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { writeContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const hash = await writeContract(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\n * functionName: 'mint',\n * args: [69420],\n * })\n *\n * @example\n * // With Validation\n * import { createWalletClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { simulateContract, writeContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const { request } = await simulateContract(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\n * functionName: 'mint',\n * args: [69420],\n * }\n * const hash = await writeContract(client, request)\n */\nexport async function writeContract(client, parameters) {\n return writeContract.internal(client, sendTransaction, 'sendTransaction', parameters);\n}\n(function (writeContract) {\n async function internal(client, actionFn, name, parameters) {\n const { abi, account: account_ = client.account, address, args, dataSuffix, functionName, ...request } = parameters;\n if (typeof account_ === 'undefined')\n throw new AccountNotFoundError({\n docsPath: '/docs/contract/writeContract',\n });\n const account = account_ ? parseAccount(account_) : null;\n const data = encodeFunctionData({\n abi,\n args,\n functionName,\n });\n try {\n return await getAction(client, actionFn, name)({\n data: `${data}${dataSuffix ? dataSuffix.replace('0x', '') : ''}`,\n to: address,\n account,\n ...request,\n });\n }\n catch (error) {\n throw getContractError(error, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/writeContract',\n functionName,\n sender: account?.address,\n });\n }\n }\n writeContract.internal = internal;\n})(writeContract || (writeContract = {}));\n//# sourceMappingURL=writeContract.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { maxUint256 } from '../../constants/number.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { FeeCapTooHighError, TipAboveFeeCapError, } from '../../errors/node.js';\nimport { isAddress } from '../address/isAddress.js';\nexport function assertRequest(args) {\n const { account: account_, maxFeePerGas, maxPriorityFeePerGas, to } = args;\n const account = account_ ? parseAccount(account_) : undefined;\n if (account && !isAddress(account.address))\n throw new InvalidAddressError({ address: account.address });\n if (to && !isAddress(to))\n throw new InvalidAddressError({ address: to });\n if (maxFeePerGas && maxFeePerGas > maxUint256)\n throw new FeeCapTooHighError({ maxFeePerGas });\n if (maxPriorityFeePerGas &&\n maxFeePerGas &&\n maxPriorityFeePerGas > maxFeePerGas)\n throw new TipAboveFeeCapError({ maxFeePerGas, maxPriorityFeePerGas });\n}\n//# sourceMappingURL=assertRequest.js.map","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","\"use strict\";\n/*\nMIT License\n\nCopyright (c) 2021 Cyril Dever\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyPath = exports.Path = void 0;\nvar Path = function (account, scope, keyIndex) { return ({\n account: account,\n scope: scope,\n keyIndex: keyIndex\n}); };\nexports.Path = Path;\nvar parse = function (value) {\n var parts = value.split('/');\n if (parts.length !== 4 || parts[0] !== 'm') {\n throw new Error('invalid value for path');\n }\n return (0, exports.Path)(parts[1], parts[2], parts[3]);\n};\nvar next = function (value, increment) {\n var parsed = parse(value);\n var index = parseInt(parsed.keyIndex);\n var actualIncrement = increment !== undefined && increment > 1 ? increment : 1;\n var newValue = 'm/' + parsed.account + '/' + parsed.scope + '/' + (index + actualIncrement).toString(10);\n return (0, exports.KeyPath)(newValue);\n};\nvar setValue = function (value) {\n var parsed = parse(value);\n if (parseInt(parsed.account) > Math.pow(2, 16) - 1 || parseInt(parsed.scope) > Math.pow(2, 16) - 1 || parseInt(parsed.keyIndex) > Math.pow(2, 21) - 1) {\n throw new Error('invalid path with value exceeding its limits');\n }\n return value;\n};\nvar valueOf = function (value) { return function () {\n var parsed = parse(value);\n return parseInt(parsed.account) * Math.pow(2, 37) + parseInt(parsed.scope) * Math.pow(2, 21) + parseInt(parsed.keyIndex);\n}; };\n/**\n * Build an immutable key path\n *\n * @param {string} value - The path string\n * @returns an instance of KeyPath\n * @throws invalid value for path\n * @throws invalid path with value exceeding its limits\n */\nvar KeyPath = function (value) { return ({\n value: setValue(value),\n parse: function () { return parse(value); },\n next: function (increment) { return next(value, increment); },\n valueOf: valueOf(value)\n}); };\nexports.KeyPath = KeyPath;\n//# sourceMappingURL=model.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","'use strict';\n\n/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [\n\t0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n];\n\nvar W = new Array(80);\n\nfunction Sha1() {\n\tthis.init();\n\tthis._w = W;\n\n\tHash.call(this, 64, 56);\n}\n\ninherits(Sha1, Hash);\n\nSha1.prototype.init = function () {\n\tthis._a = 0x67452301;\n\tthis._b = 0xefcdab89;\n\tthis._c = 0x98badcfe;\n\tthis._d = 0x10325476;\n\tthis._e = 0xc3d2e1f0;\n\n\treturn this;\n};\n\nfunction rotl1(num) {\n\treturn (num << 1) | (num >>> 31);\n}\n\nfunction rotl5(num) {\n\treturn (num << 5) | (num >>> 27);\n}\n\nfunction rotl30(num) {\n\treturn (num << 30) | (num >>> 2);\n}\n\nfunction ft(s, b, c, d) {\n\tif (s === 0) {\n\t\treturn (b & c) | (~b & d);\n\t}\n\tif (s === 2) {\n\t\treturn (b & c) | (b & d) | (c & d);\n\t}\n\treturn b ^ c ^ d;\n}\n\nSha1.prototype._update = function (M) {\n\tvar w = this._w;\n\n\tvar a = this._a | 0;\n\tvar b = this._b | 0;\n\tvar c = this._c | 0;\n\tvar d = this._d | 0;\n\tvar e = this._e | 0;\n\n\tfor (var i = 0; i < 16; ++i) {\n\t\tw[i] = M.readInt32BE(i * 4);\n\t}\n\tfor (; i < 80; ++i) {\n\t\tw[i] = rotl1(w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16]);\n\t}\n\n\tfor (var j = 0; j < 80; ++j) {\n\t\tvar s = ~~(j / 20);\n\t\tvar t = (rotl5(a) + ft(s, b, c, d) + e + w[j] + K[s]) | 0;\n\n\t\te = d;\n\t\td = c;\n\t\tc = rotl30(b);\n\t\tb = a;\n\t\ta = t;\n\t}\n\n\tthis._a = (a + this._a) | 0;\n\tthis._b = (b + this._b) | 0;\n\tthis._c = (c + this._c) | 0;\n\tthis._d = (d + this._d) | 0;\n\tthis._e = (e + this._e) | 0;\n};\n\nSha1.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(20);\n\n\tH.writeInt32BE(this._a | 0, 0);\n\tH.writeInt32BE(this._b | 0, 4);\n\tH.writeInt32BE(this._c | 0, 8);\n\tH.writeInt32BE(this._d | 0, 12);\n\tH.writeInt32BE(this._e | 0, 16);\n\n\treturn H;\n};\n\nmodule.exports = Sha1;\n","/** @internal */\nexport const promiseCache = /*#__PURE__*/ new Map();\n/** @internal */\nexport const responseCache = /*#__PURE__*/ new Map();\nexport function getCache(cacheKey) {\n const buildCache = (cacheKey, cache) => ({\n clear: () => cache.delete(cacheKey),\n get: () => cache.get(cacheKey),\n set: (data) => cache.set(cacheKey, data),\n });\n const promise = buildCache(cacheKey, promiseCache);\n const response = buildCache(cacheKey, responseCache);\n return {\n clear: () => {\n promise.clear();\n response.clear();\n },\n promise,\n response,\n };\n}\n/**\n * @description Returns the result of a given promise, and caches the result for\n * subsequent invocations against a provided cache key.\n */\nexport async function withCache(fn, { cacheKey, cacheTime = Number.POSITIVE_INFINITY }) {\n const cache = getCache(cacheKey);\n // If a response exists in the cache, and it's not expired, return it\n // and do not invoke the promise.\n // If the max age is 0, the cache is disabled.\n const response = cache.response.get();\n if (response && cacheTime > 0) {\n const age = Date.now() - response.created.getTime();\n if (age < cacheTime)\n return response.data;\n }\n let promise = cache.promise.get();\n if (!promise) {\n promise = fn();\n // Store the promise in the cache so that subsequent invocations\n // will wait for the same promise to resolve (deduping).\n cache.promise.set(promise);\n }\n try {\n const data = await promise;\n // Store the response in the cache so that subsequent invocations\n // will return the same response.\n cache.response.set({ created: new Date(), data });\n return data;\n }\n finally {\n // Clear the promise cache so that subsequent invocations will\n // invoke the promise again.\n cache.promise.clear();\n }\n}\n//# sourceMappingURL=withCache.js.map","import { getCache, withCache, } from '../../utils/promise/withCache.js';\nconst cacheKey = (id) => `blockNumber.${id}`;\n/** @internal */\nexport function getBlockNumberCache(id) {\n return getCache(cacheKey(id));\n}\n/**\n * Returns the number of the most recent block seen.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlockNumber\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\n * - JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)\n *\n * @param client - Client to use\n * @param parameters - {@link GetBlockNumberParameters}\n * @returns The number of the block. {@link GetBlockNumberReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlockNumber } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const blockNumber = await getBlockNumber(client)\n * // 69420n\n */\nexport async function getBlockNumber(client, { cacheTime = client.cacheTime } = {}) {\n const blockNumberHex = await withCache(() => client.request({\n method: 'eth_blockNumber',\n }), { cacheKey: cacheKey(client.uid), cacheTime });\n return BigInt(blockNumberHex);\n}\n//# sourceMappingURL=getBlockNumber.js.map","import { formatGwei } from '../utils/unit/formatGwei.js';\nimport { BaseError } from './base.js';\nexport class BaseFeeScalarError extends BaseError {\n constructor() {\n super('`baseFeeMultiplier` must be greater than 1.', {\n name: 'BaseFeeScalarError',\n });\n }\n}\nexport class Eip1559FeesNotSupportedError extends BaseError {\n constructor() {\n super('Chain does not support EIP-1559 fees.', {\n name: 'Eip1559FeesNotSupportedError',\n });\n }\n}\nexport class MaxFeePerGasTooLowError extends BaseError {\n constructor({ maxPriorityFeePerGas }) {\n super(`\\`maxFeePerGas\\` cannot be less than the \\`maxPriorityFeePerGas\\` (${formatGwei(maxPriorityFeePerGas)} gwei).`, { name: 'MaxFeePerGasTooLowError' });\n }\n}\n//# sourceMappingURL=fee.js.map","// TODO(v3): checksum address.\nimport { isAddressEqual } from '../address/isAddressEqual.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { toEventSelector } from '../hash/toEventSelector.js';\nimport { decodeEventLog, } from './decodeEventLog.js';\n/**\n * Extracts & decodes logs matching the provided signature(s) (`abi` + optional `eventName`)\n * from a set of opaque logs.\n *\n * @param parameters - {@link ParseEventLogsParameters}\n * @returns The logs. {@link ParseEventLogsReturnType}\n *\n * @example\n * import { createClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { parseEventLogs } from 'viem/op-stack'\n *\n * const client = createClient({\n * chain: mainnet,\n * transport: http(),\n * })\n *\n * const receipt = await getTransactionReceipt(client, {\n * hash: '0xec23b2ba4bc59ba61554507c1b1bc91649e6586eb2dd00c728e8ed0db8bb37ea',\n * })\n *\n * const logs = parseEventLogs({ logs: receipt.logs })\n * // [{ args: { ... }, eventName: 'TransactionDeposited', ... }, ...]\n */\nexport function parseEventLogs(parameters) {\n const { abi, args, logs, strict = true } = parameters;\n const eventName = (() => {\n if (!parameters.eventName)\n return undefined;\n if (Array.isArray(parameters.eventName))\n return parameters.eventName;\n return [parameters.eventName];\n })();\n return logs\n .map((log) => {\n // Find all matching ABI items with the same selector.\n // Multiple events can share the same selector but differ in indexed parameters\n // (e.g., ERC20 vs ERC721 Transfer events).\n const abiItems = abi.filter((abiItem) => abiItem.type === 'event' &&\n log.topics[0] === toEventSelector(abiItem));\n if (abiItems.length === 0)\n return null;\n // Try each matching ABI item until one successfully decodes.\n let event;\n let abiItem;\n for (const item of abiItems) {\n try {\n event = decodeEventLog({\n ...log,\n abi: [item],\n strict: true,\n });\n abiItem = item;\n break;\n }\n catch {\n // Try next ABI item\n }\n }\n // If strict decoding failed for all, and we're in non-strict mode,\n // fall back to the first matching ABI item.\n if (!event && !strict) {\n abiItem = abiItems[0];\n try {\n event = decodeEventLog({\n ...log,\n abi: [abiItem],\n strict: false,\n });\n }\n catch {\n // If decoding still fails, return partial log in non-strict mode.\n const isUnnamed = abiItem.inputs?.some((x) => !('name' in x && x.name));\n return {\n ...log,\n args: isUnnamed ? [] : {},\n eventName: abiItem.name,\n };\n }\n }\n // If no event was found, return null.\n if (!event || !abiItem)\n return null;\n // Check that the decoded event name matches the provided event name.\n if (eventName && !eventName.includes(event.eventName))\n return null;\n // Check that the decoded event args match the provided args.\n if (!includesArgs({\n args: event.args,\n inputs: abiItem.inputs,\n matchArgs: args,\n }))\n return null;\n return { ...event, ...log };\n })\n .filter(Boolean);\n}\nfunction includesArgs(parameters) {\n const { args, inputs, matchArgs } = parameters;\n if (!matchArgs)\n return true;\n if (!args)\n return false;\n function isEqual(input, value, arg) {\n try {\n if (input.type === 'address')\n return isAddressEqual(value, arg);\n if (input.type === 'string' || input.type === 'bytes')\n return keccak256(toBytes(value)) === arg;\n return value === arg;\n }\n catch {\n return false;\n }\n }\n if (Array.isArray(args) && Array.isArray(matchArgs)) {\n return matchArgs.every((value, index) => {\n if (value === null || value === undefined)\n return true;\n const input = inputs[index];\n if (!input)\n return false;\n const value_ = Array.isArray(value) ? value : [value];\n return value_.some((value) => isEqual(input, value, args[index]));\n });\n }\n if (typeof args === 'object' &&\n !Array.isArray(args) &&\n typeof matchArgs === 'object' &&\n !Array.isArray(matchArgs))\n return Object.entries(matchArgs).every(([key, value]) => {\n if (value === null || value === undefined)\n return true;\n const input = inputs.find((input) => input.name === key);\n if (!input)\n return false;\n const value_ = Array.isArray(value) ? value : [value];\n return value_.some((value) => isEqual(input, value, args[key]));\n });\n return false;\n}\n//# sourceMappingURL=parseEventLogs.js.map","import * as Equal from \"../Equal.js\";\nimport { dual } from \"../Function.js\";\nimport * as Hash from \"../Hash.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"../Inspectable.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport { hasProperty } from \"../Predicate.js\";\nimport * as HM from \"./hashMap.js\";\nconst HashSetSymbolKey = \"effect/HashSet\";\n/** @internal */\nexport const HashSetTypeId = /*#__PURE__*/Symbol.for(HashSetSymbolKey);\nconst HashSetProto = {\n [HashSetTypeId]: HashSetTypeId,\n [Symbol.iterator]() {\n return HM.keys(this._keyMap);\n },\n [Hash.symbol]() {\n return Hash.cached(this, Hash.combine(Hash.hash(this._keyMap))(Hash.hash(HashSetSymbolKey)));\n },\n [Equal.symbol](that) {\n if (isHashSet(that)) {\n return HM.size(this._keyMap) === HM.size(that._keyMap) && Equal.equals(this._keyMap, that._keyMap);\n }\n return false;\n },\n toString() {\n return format(this.toJSON());\n },\n toJSON() {\n return {\n _id: \"HashSet\",\n values: Array.from(this).map(toJSON)\n };\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\n/** @internal */\nexport const makeImpl = keyMap => {\n const set = Object.create(HashSetProto);\n set._keyMap = keyMap;\n return set;\n};\n/** @internal */\nexport const isHashSet = u => hasProperty(u, HashSetTypeId);\nconst _empty = /*#__PURE__*/makeImpl(/*#__PURE__*/HM.empty());\n/** @internal */\nexport const empty = () => _empty;\n/** @internal */\nexport const fromIterable = elements => {\n const set = beginMutation(empty());\n for (const value of elements) {\n add(set, value);\n }\n return endMutation(set);\n};\n/** @internal */\nexport const make = (...elements) => {\n const set = beginMutation(empty());\n for (const value of elements) {\n add(set, value);\n }\n return endMutation(set);\n};\n/** @internal */\nexport const has = /*#__PURE__*/dual(2, (self, value) => HM.has(self._keyMap, value));\n/** @internal */\nexport const some = /*#__PURE__*/dual(2, (self, f) => {\n let found = false;\n for (const value of self) {\n found = f(value);\n if (found) {\n break;\n }\n }\n return found;\n});\n/** @internal */\nexport const every = /*#__PURE__*/dual(2, (self, refinement) => !some(self, a => !refinement(a)));\n/** @internal */\nexport const isSubset = /*#__PURE__*/dual(2, (self, that) => every(self, value => has(that, value)));\n/** @internal */\nexport const values = self => HM.keys(self._keyMap);\n/** @internal */\nexport const size = self => HM.size(self._keyMap);\n/** @internal */\nexport const beginMutation = self => makeImpl(HM.beginMutation(self._keyMap));\n/** @internal */\nexport const endMutation = self => {\n ;\n self._keyMap._editable = false;\n return self;\n};\n/** @internal */\nexport const mutate = /*#__PURE__*/dual(2, (self, f) => {\n const transient = beginMutation(self);\n f(transient);\n return endMutation(transient);\n});\n/** @internal */\nexport const add = /*#__PURE__*/dual(2, (self, value) => self._keyMap._editable ? (HM.set(value, true)(self._keyMap), self) : makeImpl(HM.set(value, true)(self._keyMap)));\n/** @internal */\nexport const remove = /*#__PURE__*/dual(2, (self, value) => self._keyMap._editable ? (HM.remove(value)(self._keyMap), self) : makeImpl(HM.remove(value)(self._keyMap)));\n/** @internal */\nexport const difference = /*#__PURE__*/dual(2, (self, that) => mutate(self, set => {\n for (const value of that) {\n remove(set, value);\n }\n}));\n/** @internal */\nexport const intersection = /*#__PURE__*/dual(2, (self, that) => mutate(empty(), set => {\n for (const value of that) {\n if (has(value)(self)) {\n add(value)(set);\n }\n }\n}));\n/** @internal */\nexport const union = /*#__PURE__*/dual(2, (self, that) => mutate(empty(), set => {\n forEach(self, value => add(set, value));\n for (const value of that) {\n add(set, value);\n }\n}));\n/** @internal */\nexport const toggle = /*#__PURE__*/dual(2, (self, value) => has(self, value) ? remove(self, value) : add(self, value));\n/** @internal */\nexport const map = /*#__PURE__*/dual(2, (self, f) => mutate(empty(), set => {\n forEach(self, a => {\n const b = f(a);\n if (!has(set, b)) {\n add(set, b);\n }\n });\n}));\n/** @internal */\nexport const flatMap = /*#__PURE__*/dual(2, (self, f) => mutate(empty(), set => {\n forEach(self, a => {\n for (const b of f(a)) {\n if (!has(set, b)) {\n add(set, b);\n }\n }\n });\n}));\n/** @internal */\nexport const forEach = /*#__PURE__*/dual(2, (self, f) => HM.forEach(self._keyMap, (_, k) => f(k)));\n/** @internal */\nexport const reduce = /*#__PURE__*/dual(3, (self, zero, f) => HM.reduce(self._keyMap, zero, (z, _, a) => f(z, a)));\n/** @internal */\nexport const filter = /*#__PURE__*/dual(2, (self, f) => {\n return mutate(empty(), set => {\n const iterator = values(self);\n let next;\n while (!(next = iterator.next()).done) {\n const value = next.value;\n if (f(value)) {\n add(set, value);\n }\n }\n });\n});\n/** @internal */\nexport const partition = /*#__PURE__*/dual(2, (self, predicate) => {\n const iterator = values(self);\n let next;\n const right = beginMutation(empty());\n const left = beginMutation(empty());\n while (!(next = iterator.next()).done) {\n const value = next.value;\n if (predicate(value)) {\n add(right, value);\n } else {\n add(left, value);\n }\n }\n return [endMutation(left), endMutation(right)];\n});\n//# sourceMappingURL=hashSet.js.map","import { isStructSignature } from './runtime/signatures.js';\nimport { parseStructs } from './runtime/structs.js';\nimport { parseSignature } from './runtime/utils.js';\n/**\n * Parses human-readable ABI into JSON {@link Abi}\n *\n * @param signatures - Human-Readable ABI\n * @returns Parsed {@link Abi}\n *\n * @example\n * const abi = parseAbi([\n * // ^? const abi: readonly [{ name: \"balanceOf\"; type: \"function\"; stateMutability:...\n * 'function balanceOf(address owner) view returns (uint256)',\n * 'event Transfer(address indexed from, address indexed to, uint256 amount)',\n * ])\n */\nexport function parseAbi(signatures) {\n const structs = parseStructs(signatures);\n const abi = [];\n const length = signatures.length;\n for (let i = 0; i < length; i++) {\n const signature = signatures[i];\n if (isStructSignature(signature))\n continue;\n abi.push(parseSignature(signature, structs));\n }\n return abi;\n}\n//# sourceMappingURL=parseAbi.js.map","import { parseAbi } from 'abitype';\nimport * as BlockOverrides from 'ox/BlockOverrides';\nimport { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { multicall3Abi } from '../../constants/abis.js';\nimport { aggregate3Signature } from '../../constants/contract.js';\nimport { deploylessCallViaBytecodeBytecode, deploylessCallViaFactoryBytecode, multicall3Bytecode, } from '../../constants/contracts.js';\nimport { BaseError } from '../../errors/base.js';\nimport { ChainDoesNotSupportContract, ClientChainNotConfiguredError, } from '../../errors/chain.js';\nimport { CounterfactualDeploymentFailedError, RawContractError, } from '../../errors/contract.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeDeployData, } from '../../utils/abi/encodeDeployData.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { getCallError, } from '../../utils/errors/getCallError.js';\nimport { extract } from '../../utils/formatters/extract.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { createBatchScheduler, } from '../../utils/promise/createBatchScheduler.js';\nimport { serializeStateOverride, } from '../../utils/stateOverride.js';\nimport { assertRequest } from '../../utils/transaction/assertRequest.js';\n/**\n * Executes a new message call immediately without submitting a transaction to the network.\n *\n * - Docs: https://viem.sh/docs/actions/public/call\n * - JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\n *\n * @param client - Client to use\n * @param parameters - {@link CallParameters}\n * @returns The call data. {@link CallReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { call } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const data = await call(client, {\n * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * })\n */\nexport async function call(client, args) {\n const { account: account_ = client.account, authorizationList, batch = Boolean(client.batch?.multicall), blockNumber, blockTag = client.experimental_blockTag ?? 'latest', accessList, blobs, blockOverrides, code, data: data_, factory, factoryData, gas, gasPrice, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, stateOverride, ...rest } = args;\n const account = account_ ? parseAccount(account_) : undefined;\n if (code && (factory || factoryData))\n throw new BaseError('Cannot provide both `code` & `factory`/`factoryData` as parameters.');\n if (code && to)\n throw new BaseError('Cannot provide both `code` & `to` as parameters.');\n // Check if the call is deployless via bytecode.\n const deploylessCallViaBytecode = code && data_;\n // Check if the call is deployless via a factory.\n const deploylessCallViaFactory = factory && factoryData && to && data_;\n const deploylessCall = deploylessCallViaBytecode || deploylessCallViaFactory;\n const data = (() => {\n if (deploylessCallViaBytecode)\n return toDeploylessCallViaBytecodeData({\n code,\n data: data_,\n });\n if (deploylessCallViaFactory)\n return toDeploylessCallViaFactoryData({\n data: data_,\n factory,\n factoryData,\n to,\n });\n return data_;\n })();\n try {\n assertRequest(args);\n const blockNumberHex = typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\n const rpcBlockOverrides = blockOverrides\n ? BlockOverrides.toRpc(blockOverrides)\n : undefined;\n const rpcStateOverride = serializeStateOverride(stateOverride);\n const chainFormat = client.chain?.formatters?.transactionRequest?.format;\n const format = chainFormat || formatTransactionRequest;\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n accessList,\n account,\n authorizationList,\n blobs,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to: deploylessCall ? undefined : to,\n value,\n }, 'call');\n if (batch &&\n shouldPerformMulticall({ request }) &&\n !rpcStateOverride &&\n !rpcBlockOverrides) {\n try {\n return await scheduleMulticall(client, {\n ...request,\n blockNumber,\n blockTag,\n });\n }\n catch (err) {\n if (!(err instanceof ClientChainNotConfiguredError) &&\n !(err instanceof ChainDoesNotSupportContract))\n throw err;\n }\n }\n const params = (() => {\n const base = [\n request,\n block,\n ];\n if (rpcStateOverride && rpcBlockOverrides)\n return [...base, rpcStateOverride, rpcBlockOverrides];\n if (rpcStateOverride)\n return [...base, rpcStateOverride];\n if (rpcBlockOverrides)\n return [...base, {}, rpcBlockOverrides];\n return base;\n })();\n const response = await client.request({\n method: 'eth_call',\n params,\n });\n if (response === '0x')\n return { data: undefined };\n return { data: response };\n }\n catch (err) {\n const data = getRevertErrorData(err);\n // Check for CCIP-Read offchain lookup signature.\n const { offchainLookup, offchainLookupSignature } = await import('../../utils/ccip.js');\n if (client.ccipRead !== false &&\n data?.slice(0, 10) === offchainLookupSignature &&\n to)\n return { data: await offchainLookup(client, { data, to }) };\n // Check for counterfactual deployment error.\n if (deploylessCall && data?.slice(0, 10) === '0x101bb98d')\n throw new CounterfactualDeploymentFailedError({ factory });\n throw getCallError(err, {\n ...args,\n account,\n chain: client.chain,\n });\n }\n}\n// We only want to perform a scheduled multicall if:\n// - The request has calldata,\n// - The request has a target address,\n// - The target address is not already the aggregate3 signature,\n// - The request has no other properties (`nonce`, `gas`, etc cannot be sent with a multicall).\nfunction shouldPerformMulticall({ request }) {\n const { data, to, ...request_ } = request;\n if (!data)\n return false;\n if (data.startsWith(aggregate3Signature))\n return false;\n if (!to)\n return false;\n if (Object.values(request_).filter((x) => typeof x !== 'undefined').length > 0)\n return false;\n return true;\n}\nasync function scheduleMulticall(client, args) {\n const { batchSize = 1024, deployless = false, wait = 0, } = typeof client.batch?.multicall === 'object' ? client.batch.multicall : {};\n const { blockNumber, blockTag = client.experimental_blockTag ?? 'latest', data, to, } = args;\n const multicallAddress = (() => {\n if (deployless)\n return null;\n if (args.multicallAddress)\n return args.multicallAddress;\n if (client.chain) {\n return getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'multicall3',\n });\n }\n throw new ClientChainNotConfiguredError();\n })();\n const blockNumberHex = typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\n const { schedule } = createBatchScheduler({\n id: `${client.uid}.${block}`,\n wait,\n shouldSplitBatch(args) {\n const size = args.reduce((size, { data }) => size + (data.length - 2), 0);\n return size > batchSize * 2;\n },\n fn: async (requests) => {\n const calls = requests.map((request) => ({\n allowFailure: true,\n callData: request.data,\n target: request.to,\n }));\n const calldata = encodeFunctionData({\n abi: multicall3Abi,\n args: [calls],\n functionName: 'aggregate3',\n });\n const data = await client.request({\n method: 'eth_call',\n params: [\n {\n ...(multicallAddress === null\n ? {\n data: toDeploylessCallViaBytecodeData({\n code: multicall3Bytecode,\n data: calldata,\n }),\n }\n : { to: multicallAddress, data: calldata }),\n },\n block,\n ],\n });\n return decodeFunctionResult({\n abi: multicall3Abi,\n args: [calls],\n functionName: 'aggregate3',\n data: data || '0x',\n });\n },\n });\n const [{ returnData, success }] = await schedule({ data, to });\n if (!success)\n throw new RawContractError({ data: returnData });\n if (returnData === '0x')\n return { data: undefined };\n return { data: returnData };\n}\nfunction toDeploylessCallViaBytecodeData(parameters) {\n const { code, data } = parameters;\n return encodeDeployData({\n abi: parseAbi(['constructor(bytes, bytes)']),\n bytecode: deploylessCallViaBytecodeBytecode,\n args: [code, data],\n });\n}\nfunction toDeploylessCallViaFactoryData(parameters) {\n const { data, factory, factoryData, to } = parameters;\n return encodeDeployData({\n abi: parseAbi(['constructor(address, bytes, address, bytes)']),\n bytecode: deploylessCallViaFactoryBytecode,\n args: [to, data, factory, factoryData],\n });\n}\n/** @internal */\nexport function getRevertErrorData(err) {\n if (!(err instanceof BaseError))\n return undefined;\n const error = err.walk();\n return typeof error?.data === 'object' ? error.data?.data : error.data;\n}\n//# sourceMappingURL=call.js.map","export const aggregate3Signature = '0x82ad56cb';\n//# sourceMappingURL=contract.js.map","/**\n * HMAC: RFC2104 message authentication code.\n * @module\n */\nimport { abytes, aexists, ahash, clean, Hash, toBytes } from \"./utils.js\";\nexport class HMAC extends Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n ahash(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 clean(pad);\n }\n update(buf) {\n aexists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n aexists(this);\n abytes(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 clone() {\n return this._cloneInto();\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 * @example\n * import { hmac } from '@noble/hashes/hmac';\n * import { sha256 } from '@noble/hashes/sha2';\n * const mac1 = hmac(sha256, 'key', 'message');\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","/**\n * Hex, bytes and number utilities.\n * @module\n */\n/*! 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 = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nexport function isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\nexport function abytes(item) {\n if (!isBytes(item))\n throw new Error('Uint8Array expected');\n}\nexport function abool(title, value) {\n if (typeof value !== 'boolean')\n throw new Error(title + ' boolean expected, got ' + value);\n}\n// Used in weierstrass, der\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 return hex === '' ? _0n : BigInt('0x' + hex); // Big Endian\n}\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function';\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin)\n return bytes.toHex();\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// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n if (ch >= asciis._0 && ch <= asciis._9)\n return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F)\n return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f)\n return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\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 // @ts-ignore\n if (hasHexBuiltin)\n return Uint8Array.fromHex(hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\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 abytes(bytes);\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 hex string or Uint8Array, cause: ' + e);\n }\n }\n else if (isBytes(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 + ' of length ' + expectedLength + ' expected, got ' + len);\n return res;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n// Compares 2 u8a-s in kinda constant time\nexport function equalBytes(a, b) {\n if (a.length !== b.length)\n return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++)\n diff |= a[i] ^ b[i];\n return diff === 0;\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('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n// Is positive bigint\nconst isPosBig = (n) => typeof n === 'bigint' && _0n <= n;\nexport function inRange(n, min, max) {\n return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max;\n}\n/**\n * Asserts min <= n < max. NOTE: It's < max and not <= max.\n * @example\n * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)\n */\nexport function aInRange(title, n, min, max) {\n // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)?\n // consider P=256n, min=0n, max=P\n // - a for min=0 would require -1: `inRange('x', x, -1n, P)`\n // - b would commonly require subtraction: `inRange('x', x, 0n, P - 1n)`\n // - our way is the cleanest: `inRange('x', x, 0n, P)\n if (!inRange(n, min, max))\n throw new Error('expected valid ' + title + ': ' + min + ' <= n < ' + max + ', got ' + n);\n}\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n * TODO: merge with nLength in modular\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 function 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) => (_1n << BigInt(n)) - _1n;\n// DRBG\nconst u8n = (len) => new Uint8Array(len); // 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(0)) => {\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' || isBytes(val),\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 function');\n const val = object[fieldName];\n if (isOptional && val === undefined)\n return;\n if (!checkVal(val, object)) {\n throw new Error('param ' + String(fieldName) + ' is invalid. Expected ' + type + ', got ' + val);\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/**\n * throws not implemented error\n */\nexport const notImplemented = () => {\n throw new Error('not implemented');\n};\n/**\n * Memoizes (caches) computation result.\n * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.\n */\nexport function memoized(fn) {\n const map = new WeakMap();\n return (arg, ...args) => {\n const val = map.get(arg);\n if (val !== undefined)\n return val;\n const computed = fn(arg, ...args);\n map.set(arg, computed);\n return computed;\n };\n}\n//# sourceMappingURL=utils.js.map","/**\n * Utils for modular division and finite fields.\n * A finite field over 11 is integer number operations `mod 11`.\n * There is no division: it is replaced by modular multiplicative inverse.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { anumber } from '@noble/hashes/utils';\nimport { bitMask, bytesToNumberBE, bytesToNumberLE, ensureBytes, numberToBytesBE, numberToBytesLE, validateObject, } from \"./utils.js\";\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = /* @__PURE__ */ BigInt(2), _3n = /* @__PURE__ */ BigInt(3);\n// prettier-ignore\nconst _4n = /* @__PURE__ */ BigInt(4), _5n = /* @__PURE__ */ BigInt(5), _8n = /* @__PURE__ */ BigInt(8);\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 * TODO: remove.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\nexport function pow(num, power, modulo) {\n return FpPow(Field(modulo), num, power);\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/**\n * Inverses number over modulo.\n * Implemented using [Euclidean GCD](https://brilliant.org/wiki/extended-euclidean-algorithm/).\n */\nexport function invert(number, modulo) {\n if (number === _0n)\n throw new Error('invert: expected non-zero number');\n if (modulo <= _0n)\n throw new Error('invert: expected positive modulus, got ' + modulo);\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// Not all roots are possible! Example which will throw:\n// const NUM =\n// n = 72057594037927816n;\n// Fp = Field(BigInt('0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab'));\nfunction sqrt3mod4(Fp, n) {\n const p1div4 = (Fp.ORDER + _1n) / _4n;\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}\nfunction sqrt5mod8(Fp, n) {\n const p5div8 = (Fp.ORDER - _5n) / _8n;\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, p5div8);\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// TODO: Commented-out for now. Provide test vectors.\n// Tonelli is too slow for extension fields Fp2.\n// That means we can't use sqrt (c1, c2...) even for initialization constants.\n// if (P % _16n === _9n) return sqrt9mod16;\n// // prettier-ignore\n// function sqrt9mod16(Fp: IField, n: T, p7div16?: bigint) {\n// if (p7div16 === undefined) p7div16 = (Fp.ORDER + BigInt(7)) / _16n;\n// const c1 = Fp.sqrt(Fp.neg(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.neg(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n// const c4 = p7div16; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n// let tv1 = Fp.pow(n, 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.eql(Fp.sqr(tv2), n); // 5. e1 = (tv2^2) == x\n// const e2 = Fp.eql(Fp.sqr(tv3), n); // 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.eql(Fp.sqr(tv2), n); // 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 * 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 * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nexport function tonelliShanks(P) {\n // Initialization (precomputation).\n if (P < BigInt(3))\n throw new Error('sqrt is not defined for small field');\n // Factor P - 1 = Q * 2^S, where Q is odd\n let Q = P - _1n;\n let S = 0;\n while (Q % _2n === _0n) {\n Q /= _2n;\n S++;\n }\n // Find the first quadratic non-residue Z >= 2\n let Z = _2n;\n const _Fp = Field(P);\n while (FpLegendre(_Fp, Z) === 1) {\n // Basic primality test for P. After x iterations, chance of\n // not finding quadratic non-residue is 2^x, so 2^1000.\n if (Z++ > 1000)\n throw new Error('Cannot find square root: probably non-prime P');\n }\n // Fast-path; usually done before Z, but we do \"primality test\".\n if (S === 1)\n return sqrt3mod4;\n // Slow-path\n // TODO: test on Fp2 and others\n let cc = _Fp.pow(Z, Q); // c = z^Q\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp, n) {\n if (Fp.is0(n))\n return n;\n // Check if n is a quadratic residue using Legendre symbol\n if (FpLegendre(Fp, n) !== 1)\n throw new Error('Cannot find square root');\n // Initialize variables for the main loop\n let M = S;\n let c = Fp.mul(Fp.ONE, cc); // c = z^Q, move cc from field _Fp into field Fp\n let t = Fp.pow(n, Q); // t = n^Q, first guess at the fudge factor\n let R = Fp.pow(n, Q1div2); // R = n^((Q+1)/2), first guess at the square root\n // Main loop\n // while t != 1\n while (!Fp.eql(t, Fp.ONE)) {\n if (Fp.is0(t))\n return Fp.ZERO; // if t=0 return R=0\n let i = 1;\n // Find the smallest i >= 1 such that t^(2^i) ≡ 1 (mod P)\n let t_tmp = Fp.sqr(t); // t^(2^1)\n while (!Fp.eql(t_tmp, Fp.ONE)) {\n i++;\n t_tmp = Fp.sqr(t_tmp); // t^(2^2)...\n if (i === M)\n throw new Error('Cannot find square root');\n }\n // Calculate the exponent for b: 2^(M - i - 1)\n const exponent = _1n << BigInt(M - i - 1); // bigint is important\n const b = Fp.pow(c, exponent); // b = 2^(M - i - 1)\n // Update variables\n M = i;\n c = Fp.sqr(b); // c = b^2\n t = Fp.mul(t, c); // t = (t * b^2)\n R = Fp.mul(R, b); // R = R*b\n }\n return R;\n };\n}\n/**\n * Square root for a finite field. Will try optimized versions first:\n *\n * 1. P ≡ 3 (mod 4)\n * 2. P ≡ 5 (mod 8)\n * 3. Tonelli-Shanks algorithm\n *\n * 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 */\nexport function FpSqrt(P) {\n // P ≡ 3 (mod 4) => √n = n^((P+1)/4)\n if (P % _4n === _3n)\n return sqrt3mod4;\n // P ≡ 5 (mod 8) => Atkin algorithm, page 10 of https://eprint.iacr.org/2012/685.pdf\n if (P % _8n === _5n)\n return sqrt5mod8;\n // P ≡ 9 (mod 16) not implemented, see above\n // 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(Fp, num, power) {\n if (power < _0n)\n throw new Error('invalid exponent, negatives unsupported');\n if (power === _0n)\n return Fp.ONE;\n if (power === _1n)\n return num;\n let p = Fp.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n)\n p = Fp.mul(p, d);\n d = Fp.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n/**\n * Efficiently invert an array of Field elements.\n * Exception-free. Will return `undefined` for 0 elements.\n * @param passZero map 0 to 0 (instead of undefined)\n */\nexport function FpInvertBatch(Fp, nums, passZero = false) {\n const inverted = new Array(nums.length).fill(passZero ? Fp.ZERO : undefined);\n // Walk from first to last, multiply them by each other MOD p\n const multipliedAcc = nums.reduce((acc, num, i) => {\n if (Fp.is0(num))\n return acc;\n inverted[i] = acc;\n return Fp.mul(acc, num);\n }, Fp.ONE);\n // Invert last element\n const invertedAcc = Fp.inv(multipliedAcc);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (Fp.is0(num))\n return acc;\n inverted[i] = Fp.mul(acc, inverted[i]);\n return Fp.mul(acc, num);\n }, invertedAcc);\n return inverted;\n}\n// TODO: remove\nexport function FpDiv(Fp, lhs, rhs) {\n return Fp.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, Fp.ORDER) : Fp.inv(rhs));\n}\n/**\n * Legendre symbol.\n * Legendre constant is used to calculate Legendre symbol (a | p)\n * which denotes the value of a^((p-1)/2) (mod p).\n *\n * * (a | p) ≡ 1 if a is a square (mod p), quadratic residue\n * * (a | p) ≡ -1 if a is not a square (mod p), quadratic non residue\n * * (a | p) ≡ 0 if a ≡ 0 (mod p)\n */\nexport function FpLegendre(Fp, n) {\n // We can use 3rd argument as optional cache of this value\n // but seems unneeded for now. The operation is very fast.\n const p1mod2 = (Fp.ORDER - _1n) / _2n;\n const powered = Fp.pow(n, p1mod2);\n const yes = Fp.eql(powered, Fp.ONE);\n const zero = Fp.eql(powered, Fp.ZERO);\n const no = Fp.eql(powered, Fp.neg(Fp.ONE));\n if (!yes && !zero && !no)\n throw new Error('invalid Legendre symbol result');\n return yes ? 1 : zero ? 0 : -1;\n}\n// This function returns True whenever the value x is a square in the field F.\nexport function FpIsSquare(Fp, n) {\n const l = FpLegendre(Fp, n);\n return l === 1;\n}\n// CURVE.n lengths\nexport function nLength(n, nBitLength) {\n // Bit size, byte size of CURVE.n\n if (nBitLength !== undefined)\n anumber(nBitLength);\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.\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 * Fragile: always run a benchmark on a change.\n * Security note: operations don't check 'isValid' for all elements for performance reasons,\n * it is caller responsibility to check this.\n * This is low-level code, please make sure you know what you're doing.\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('invalid field: expected ORDER > 0, got ' + ORDER);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048)\n throw new Error('invalid field: expected ORDER of <= 2048 bytes');\n let sqrtP; // cached sqrtP\n const f = Object.freeze({\n ORDER,\n isLE,\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 ((n) => {\n if (!sqrtP)\n sqrtP = FpSqrt(ORDER);\n return sqrtP(f, n);\n }),\n toBytes: (num) => (isLE ? numberToBytesLE(num, BYTES) : numberToBytesBE(num, BYTES)),\n fromBytes: (bytes) => {\n if (bytes.length !== BYTES)\n throw new Error('Field.fromBytes: expected ' + BYTES + ' bytes, got ' + bytes.length);\n return isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n },\n // TODO: we don't need it here, move out to separate fn\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // We can't move this out because Fp6, Fp12 implement it\n // and it's unclear what to return in there.\n cmov: (a, b, c) => (c ? b : a),\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 ? bytesToNumberLE(key) : bytesToNumberBE(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","/**\n * Methods for elliptic curve multiplication by scalars.\n * Contains wNAF, pippenger\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { nLength, validateField } from \"./modular.js\";\nimport { bitLen, bitMask, validateObject } from \"./utils.js\";\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nfunction constTimeNegate(condition, item) {\n const neg = item.negate();\n return condition ? neg : item;\n}\nfunction validateW(W, bits) {\n if (!Number.isSafeInteger(W) || W <= 0 || W > bits)\n throw new Error('invalid window size, expected [1..' + bits + '], got W=' + W);\n}\nfunction calcWOpts(W, scalarBits) {\n validateW(W, scalarBits);\n const windows = Math.ceil(scalarBits / W) + 1; // W=8 33. Not 32, because we skip zero\n const windowSize = 2 ** (W - 1); // W=8 128. Not 256, because we skip zero\n const maxNumber = 2 ** W; // W=8 256\n const mask = bitMask(W); // W=8 255 == mask 0b11111111\n const shiftBy = BigInt(W); // W=8 8\n return { windows, windowSize, mask, maxNumber, shiftBy };\n}\nfunction calcOffsets(n, window, wOpts) {\n const { windowSize, mask, maxNumber, shiftBy } = wOpts;\n let wbits = Number(n & mask); // extract W bits.\n let nextN = n >> shiftBy; // shift number by W bits.\n // What actually happens here:\n // const highestBit = Number(mask ^ (mask >> 1n));\n // let wbits2 = wbits - 1; // skip zero\n // if (wbits2 & highestBit) { wbits2 ^= Number(mask); // (~);\n // split if bits > max: +224 => 256-32\n if (wbits > windowSize) {\n // we skip zero, which means instead of `>= size-1`, we do `> size`\n wbits -= maxNumber; // -32, can be maxNumber - wbits, but then we need to set isNeg here.\n nextN += _1n; // +256 (carry)\n }\n const offsetStart = window * windowSize;\n const offset = offsetStart + Math.abs(wbits) - 1; // -1 because we skip zero\n const isZero = wbits === 0; // is current window slice a 0?\n const isNeg = wbits < 0; // is current window slice negative?\n const isNegF = window % 2 !== 0; // fake random statement for noise\n const offsetF = offsetStart; // fake offset for noise\n return { nextN, offset, isZero, isNeg, isNegF, offsetF };\n}\nfunction validateMSMPoints(points, c) {\n if (!Array.isArray(points))\n throw new Error('array expected');\n points.forEach((p, i) => {\n if (!(p instanceof c))\n throw new Error('invalid point at index ' + i);\n });\n}\nfunction validateMSMScalars(scalars, field) {\n if (!Array.isArray(scalars))\n throw new Error('array of scalars expected');\n scalars.forEach((s, i) => {\n if (!field.isValid(s))\n throw new Error('invalid scalar at index ' + i);\n });\n}\n// Since points in different groups cannot be equal (different object constructor),\n// we can have single place to store precomputes.\n// Allows to make points frozen / immutable.\nconst pointPrecomputes = new WeakMap();\nconst pointWindowSizes = new WeakMap();\nfunction getW(P) {\n return pointWindowSizes.get(P) || 1;\n}\n/**\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 *\n * @todo Research returning 2d JS array of windows, instead of a single window.\n * This would allow windows to be in different memory locations\n */\nexport function wNAF(c, bits) {\n return {\n constTimeNegate,\n hasPrecomputes(elm) {\n return getW(elm) !== 1;\n },\n // non-const time multiplication ladder\n unsafeLadder(elm, n, 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 * @param elm Point instance\n * @param W window size\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(elm, W) {\n const { windows, windowSize } = calcWOpts(W, bits);\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 // i=1, bc we skip 0\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 // Smaller version:\n // https://github.com/paulmillr/noble-secp256k1/blob/47cb1669b6e506ad66b35fe7d76132ae97465da2/index.ts#L502-L541\n // TODO: check the scalar is less than group order?\n // wNAF behavior is undefined otherwise. But have to carefully remove\n // other checks before wNAF. ORDER == bits here.\n // Accumulators\n let p = c.ZERO;\n let f = c.BASE;\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 const wo = calcWOpts(W, bits);\n for (let window = 0; window < wo.windows; window++) {\n // (n === _0n) is handled and not early-exited. isEven and offsetF are used for noise\n const { nextN, offset, isZero, isNeg, isNegF, offsetF } = calcOffsets(n, window, wo);\n n = nextN;\n if (isZero) {\n // bits are 0: add garbage to fake point\n // Important part for const-time getPublicKey: add random \"noise\" point to f.\n f = f.add(constTimeNegate(isNegF, precomputes[offsetF]));\n }\n else {\n // bits are 1: add to result point\n p = p.add(constTimeNegate(isNeg, precomputes[offset]));\n }\n }\n // Return both real and fake points: JIT won't eliminate f.\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 /**\n * Implements ec unsafe (non const-time) 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 * @param acc accumulator point to add result of multiplication\n * @returns point\n */\n wNAFUnsafe(W, precomputes, n, acc = c.ZERO) {\n const wo = calcWOpts(W, bits);\n for (let window = 0; window < wo.windows; window++) {\n if (n === _0n)\n break; // Early-exit, skip 0 value\n const { nextN, offset, isZero, isNeg } = calcOffsets(n, window, wo);\n n = nextN;\n if (isZero) {\n // Window bits are 0: skip processing.\n // Move to next window.\n continue;\n }\n else {\n const item = precomputes[offset];\n acc = acc.add(isNeg ? item.negate() : item); // Re-using acc allows to save adds in MSM\n }\n }\n return acc;\n },\n getPrecomputes(W, P, transform) {\n // Calculate precomputes on a first run, reuse them after\n let comp = pointPrecomputes.get(P);\n if (!comp) {\n comp = this.precomputeWindow(P, W);\n if (W !== 1)\n pointPrecomputes.set(P, transform(comp));\n }\n return comp;\n },\n wNAFCached(P, n, transform) {\n const W = getW(P);\n return this.wNAF(W, this.getPrecomputes(W, P, transform), n);\n },\n wNAFCachedUnsafe(P, n, transform, prev) {\n const W = getW(P);\n if (W === 1)\n return this.unsafeLadder(P, n, prev); // For W=1 ladder is ~x2 faster\n return this.wNAFUnsafe(W, this.getPrecomputes(W, P, transform), n, prev);\n },\n // We calculate precomputes for elliptic curve point multiplication\n // using windowed method. This specifies window size and\n // stores precomputed values. Usually only base point would be precomputed.\n setWindowSize(P, W) {\n validateW(W, bits);\n pointWindowSizes.set(P, W);\n pointPrecomputes.delete(P);\n },\n };\n}\n/**\n * Pippenger algorithm for multi-scalar multiplication (MSM, Pa + Qb + Rc + ...).\n * 30x faster vs naive addition on L=4096, 10x faster than precomputes.\n * For N=254bit, L=1, it does: 1024 ADD + 254 DBL. For L=5: 1536 ADD + 254 DBL.\n * Algorithmically constant-time (for same L), even when 1 point + scalar, or when scalar = 0.\n * @param c Curve Point constructor\n * @param fieldN field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @param scalars array of L scalars (aka private keys / bigints)\n */\nexport function pippenger(c, fieldN, points, scalars) {\n // If we split scalars by some window (let's say 8 bits), every chunk will only\n // take 256 buckets even if there are 4096 scalars, also re-uses double.\n // TODO:\n // - https://eprint.iacr.org/2024/750.pdf\n // - https://tches.iacr.org/index.php/TCHES/article/view/10287\n // 0 is accepted in scalars\n validateMSMPoints(points, c);\n validateMSMScalars(scalars, fieldN);\n const plength = points.length;\n const slength = scalars.length;\n if (plength !== slength)\n throw new Error('arrays of points and scalars must have equal length');\n // if (plength === 0) throw new Error('array must be of length >= 2');\n const zero = c.ZERO;\n const wbits = bitLen(BigInt(plength));\n let windowSize = 1; // bits\n if (wbits > 12)\n windowSize = wbits - 3;\n else if (wbits > 4)\n windowSize = wbits - 2;\n else if (wbits > 0)\n windowSize = 2;\n const MASK = bitMask(windowSize);\n const buckets = new Array(Number(MASK) + 1).fill(zero); // +1 for zero array\n const lastBits = Math.floor((fieldN.BITS - 1) / windowSize) * windowSize;\n let sum = zero;\n for (let i = lastBits; i >= 0; i -= windowSize) {\n buckets.fill(zero);\n for (let j = 0; j < slength; j++) {\n const scalar = scalars[j];\n const wbits = Number((scalar >> BigInt(i)) & MASK);\n buckets[wbits] = buckets[wbits].add(points[j]);\n }\n let resI = zero; // not using this will do small speed-up, but will lose ct\n // Skip first bucket, because it is zero\n for (let j = buckets.length - 1, sumI = zero; j > 0; j--) {\n sumI = sumI.add(buckets[j]);\n resI = resI.add(sumI);\n }\n sum = sum.add(resI);\n if (i !== 0)\n for (let j = 0; j < windowSize; j++)\n sum = sum.double();\n }\n return sum;\n}\n/**\n * Precomputed multi-scalar multiplication (MSM, Pa + Qb + Rc + ...).\n * @param c Curve Point constructor\n * @param fieldN field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @returns function which multiplies points with scaars\n */\nexport function precomputeMSMUnsafe(c, fieldN, points, windowSize) {\n /**\n * Performance Analysis of Window-based Precomputation\n *\n * Base Case (256-bit scalar, 8-bit window):\n * - Standard precomputation requires:\n * - 31 additions per scalar × 256 scalars = 7,936 ops\n * - Plus 255 summary additions = 8,191 total ops\n * Note: Summary additions can be optimized via accumulator\n *\n * Chunked Precomputation Analysis:\n * - Using 32 chunks requires:\n * - 255 additions per chunk\n * - 256 doublings\n * - Total: (255 × 32) + 256 = 8,416 ops\n *\n * Memory Usage Comparison:\n * Window Size | Standard Points | Chunked Points\n * ------------|-----------------|---------------\n * 4-bit | 520 | 15\n * 8-bit | 4,224 | 255\n * 10-bit | 13,824 | 1,023\n * 16-bit | 557,056 | 65,535\n *\n * Key Advantages:\n * 1. Enables larger window sizes due to reduced memory overhead\n * 2. More efficient for smaller scalar counts:\n * - 16 chunks: (16 × 255) + 256 = 4,336 ops\n * - ~2x faster than standard 8,191 ops\n *\n * Limitations:\n * - Not suitable for plain precomputes (requires 256 constant doublings)\n * - Performance degrades with larger scalar counts:\n * - Optimal for ~256 scalars\n * - Less efficient for 4096+ scalars (Pippenger preferred)\n */\n validateW(windowSize, fieldN.BITS);\n validateMSMPoints(points, c);\n const zero = c.ZERO;\n const tableSize = 2 ** windowSize - 1; // table size (without zero)\n const chunks = Math.ceil(fieldN.BITS / windowSize); // chunks of item\n const MASK = bitMask(windowSize);\n const tables = points.map((p) => {\n const res = [];\n for (let i = 0, acc = p; i < tableSize; i++) {\n res.push(acc);\n acc = acc.add(p);\n }\n return res;\n });\n return (scalars) => {\n validateMSMScalars(scalars, fieldN);\n if (scalars.length > points.length)\n throw new Error('array of scalars must be smaller than array of points');\n let res = zero;\n for (let i = 0; i < chunks; i++) {\n // No need to double if accumulator is still zero.\n if (res !== zero)\n for (let j = 0; j < windowSize; j++)\n res = res.double();\n const shiftBy = BigInt(chunks * windowSize - (i + 1) * windowSize);\n for (let j = 0; j < scalars.length; j++) {\n const n = scalars[j];\n const curr = Number((n >> shiftBy) & MASK);\n if (!curr)\n continue; // skip zero scalars chunks\n res = res.add(tables[j][curr - 1]);\n }\n }\n return res;\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","/**\n * Short Weierstrass curve methods. The formula is: y² = x³ + ax + b.\n *\n * ### Parameters\n *\n * To initialize a weierstrass curve, one needs to pass following params:\n *\n * * a: formula param\n * * b: formula param\n * * Fp: finite field of prime characteristic P; may be complex (Fp2). Arithmetics is done in field\n * * n: order of prime subgroup a.k.a total amount of valid curve points\n * * Gx: Base point (x, y) aka generator point. Gx = x coordinate\n * * Gy: ...y coordinate\n * * h: cofactor, usually 1. h*n = curve group order (n is only subgroup order)\n * * lowS: whether to enable (default) or disable \"low-s\" non-malleable signatures\n *\n * ### Design rationale for types\n *\n * * Interaction between classes from different curves should fail:\n * `k256.Point.BASE.add(p256.Point.BASE)`\n * * For this purpose we want to use `instanceof` operator, which is fast and works during runtime\n * * Different calls of `curve()` would return different classes -\n * `curve(params) !== curve(params)`: if somebody decided to monkey-patch their curve,\n * it won't affect others\n *\n * TypeScript can't infer types for classes created inside a function. Classes is one instance\n * of nominative types in TypeScript and interfaces only check for shape, so it's hard to create\n * unique type for every function call.\n *\n * We can use generic types via some param, like curve opts, but that would:\n * 1. Enable interaction between `curve(params)` and `curve(params)` (curves of same params)\n * which is hard to debug.\n * 2. Params can be generic and we can't enforce them to be constant value:\n * if somebody creates curve from non-constant params,\n * it would be allowed to interact with other curves with non-constant params\n *\n * @todo https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#unique-symbol\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// prettier-ignore\nimport { pippenger, validateBasic, wNAF } from \"./curve.js\";\n// prettier-ignore\nimport { Field, FpInvertBatch, getMinHashLength, invert, mapHashToField, mod, validateField } from \"./modular.js\";\n// prettier-ignore\nimport { aInRange, abool, bitMask, bytesToHex, bytesToNumberBE, concatBytes, createHmacDrbg, ensureBytes, hexToBytes, inRange, isBytes, memoized, numberToBytesBE, numberToHexUnpadded, validateObject } from \"./utils.js\";\nfunction validateSigVerOpts(opts) {\n if (opts.lowS !== undefined)\n abool('lowS', opts.lowS);\n if (opts.prehash !== undefined)\n abool('prehash', opts.prehash);\n}\nfunction validatePointOpts(curve) {\n const opts = validateBasic(curve);\n validateObject(opts, {\n a: 'field',\n b: 'field',\n }, {\n allowInfinityPoint: 'boolean',\n allowedPrivateKeyLengths: 'array',\n clearCofactor: 'function',\n fromBytes: 'function',\n isTorsionFree: 'function',\n toBytes: 'function',\n wrapPrivateKey: 'boolean',\n });\n const { endo, Fp, a } = opts;\n if (endo) {\n if (!Fp.eql(a, Fp.ZERO)) {\n throw new Error('invalid endo: CURVE.a must be 0');\n }\n if (typeof endo !== 'object' ||\n typeof endo.beta !== 'bigint' ||\n typeof endo.splitScalar !== 'function') {\n throw new Error('invalid endo: expected \"beta\": bigint and \"splitScalar\": function');\n }\n }\n return Object.freeze({ ...opts });\n}\nexport class DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n}\n/**\n * ASN.1 DER encoding utilities. ASN is very complex & fragile. Format:\n *\n * [0x30 (SEQUENCE), bytelength, 0x02 (INTEGER), intLength, R, 0x02 (INTEGER), intLength, S]\n *\n * Docs: https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/, https://luca.ntop.org/Teaching/Appunti/asn1.html\n */\nexport const DER = {\n // asn.1 DER encoding utils\n Err: DERErr,\n // Basic building block is TLV (Tag-Length-Value)\n _tlv: {\n encode: (tag, data) => {\n const { Err: E } = DER;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length & 1)\n throw new E('tlv.encode: unpadded data');\n const dataLen = data.length / 2;\n const len = numberToHexUnpadded(dataLen);\n if ((len.length / 2) & 128)\n throw new E('tlv.encode: long form length too big');\n // length of length with long form flag\n const lenLen = dataLen > 127 ? numberToHexUnpadded((len.length / 2) | 128) : '';\n const t = numberToHexUnpadded(tag);\n return t + lenLen + len + data;\n },\n // v - value, l - left bytes (unparsed)\n decode(tag, data) {\n const { Err: E } = DER;\n let pos = 0;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length < 2 || data[pos++] !== tag)\n throw new E('tlv.decode: wrong tlv');\n const first = data[pos++];\n const isLong = !!(first & 128); // First bit of first length byte is flag for short/long form\n let length = 0;\n if (!isLong)\n length = first;\n else {\n // Long form: [longFlag(1bit), lengthLength(7bit), length (BE)]\n const lenLen = first & 127;\n if (!lenLen)\n throw new E('tlv.decode(long): indefinite length not supported');\n if (lenLen > 4)\n throw new E('tlv.decode(long): byte length is too big'); // this will overflow u32 in js\n const lengthBytes = data.subarray(pos, pos + lenLen);\n if (lengthBytes.length !== lenLen)\n throw new E('tlv.decode: length bytes not complete');\n if (lengthBytes[0] === 0)\n throw new E('tlv.decode(long): zero leftmost byte');\n for (const b of lengthBytes)\n length = (length << 8) | b;\n pos += lenLen;\n if (length < 128)\n throw new E('tlv.decode(long): not minimal encoding');\n }\n const v = data.subarray(pos, pos + length);\n if (v.length !== length)\n throw new E('tlv.decode: wrong value length');\n return { v, l: data.subarray(pos + length) };\n },\n },\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 _int: {\n encode(num) {\n const { Err: E } = DER;\n if (num < _0n)\n throw new E('integer: negative integers are not allowed');\n let hex = numberToHexUnpadded(num);\n // Pad with zero byte if negative flag is present\n if (Number.parseInt(hex[0], 16) & 0b1000)\n hex = '00' + hex;\n if (hex.length & 1)\n throw new E('unexpected DER parsing assertion: unpadded hex');\n return hex;\n },\n decode(data) {\n const { Err: E } = DER;\n if (data[0] & 128)\n throw new E('invalid signature integer: negative');\n if (data[0] === 0x00 && !(data[1] & 128))\n throw new E('invalid signature integer: unnecessary leading zero');\n return bytesToNumberBE(data);\n },\n },\n toSig(hex) {\n // parse DER signature\n const { Err: E, _int: int, _tlv: tlv } = DER;\n const data = ensureBytes('signature', hex);\n const { v: seqBytes, l: seqLeftBytes } = tlv.decode(0x30, data);\n if (seqLeftBytes.length)\n throw new E('invalid signature: left bytes after parsing');\n const { v: rBytes, l: rLeftBytes } = tlv.decode(0x02, seqBytes);\n const { v: sBytes, l: sLeftBytes } = tlv.decode(0x02, rLeftBytes);\n if (sLeftBytes.length)\n throw new E('invalid signature: left bytes after parsing');\n return { r: int.decode(rBytes), s: int.decode(sBytes) };\n },\n hexFromSig(sig) {\n const { _tlv: tlv, _int: int } = DER;\n const rs = tlv.encode(0x02, int.encode(sig.r));\n const ss = tlv.encode(0x02, int.encode(sig.s));\n const seq = rs + ss;\n return tlv.encode(0x30, seq);\n },\n};\nfunction numToSizedHex(num, size) {\n return bytesToHex(numberToBytesBE(num, size));\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 Fn = Field(CURVE.n, CURVE.nBitLength);\n const toBytes = CURVE.toBytes ||\n ((_c, point, _isCompressed) => {\n const a = point.toAffine();\n return 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. Takes x, returns y².\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); // x² * x\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x³ + a * x + b\n }\n function isValidXY(x, y) {\n const left = Fp.sqr(y); // y²\n const right = weierstrassEquation(x); // x³ + ax + b\n return Fp.eql(left, right);\n }\n // Validate whether the passed curve params are valid.\n // Test 1: equation y² = x³ + ax + b should work for generator point.\n if (!isValidXY(CURVE.Gx, CURVE.Gy))\n throw new Error('bad curve params: generator point');\n // Test 2: discriminant Δ part should be non-zero: 4a³ + 27b² != 0.\n // Guarantees curve is genus-1, smooth (non-singular).\n const _4a3 = Fp.mul(Fp.pow(CURVE.a, _3n), _4n);\n const _27b2 = Fp.mul(Fp.sqr(CURVE.b), BigInt(27));\n if (Fp.is0(Fp.add(_4a3, _27b2)))\n throw new Error('bad curve params: a or b');\n // Valid group elements reside in range 1..n-1\n function isWithinCurveOrder(num) {\n return inRange(num, _1n, 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: N } = CURVE;\n if (lengths && typeof key !== 'bigint') {\n if (isBytes(key))\n key = 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 private key');\n key = key.padStart(nByteLength * 2, '0');\n }\n let num;\n try {\n num =\n typeof key === 'bigint'\n ? key\n : bytesToNumberBE(ensureBytes('private key', key, nByteLength));\n }\n catch (error) {\n throw new Error('invalid private key, expected hex or ' + nByteLength + ' bytes, got ' + typeof key);\n }\n if (wrapPrivateKey)\n num = mod(num, N); // disabled by default, enabled for BLS\n aInRange('private key', num, _1n, N); // num in range [1..N-1]\n return num;\n }\n function aprjpoint(other) {\n if (!(other instanceof Point))\n throw new Error('ProjectivePoint expected');\n }\n // Memoized toAffine / validity check. They are heavy. Points are immutable.\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 const toAffineMemo = memoized((p, iz) => {\n const { px: x, py: y, pz: z } = p;\n // Fast-path for normalized points\n if (Fp.eql(z, Fp.ONE))\n return { x, y };\n const is0 = p.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 // NOTE: on exception this will crash 'cached' and no value will be set.\n // Otherwise true will be return\n const assertValidMemo = memoized((p) => {\n if (p.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 invalid representation of ZERO.\n if (CURVE.allowInfinityPoint && !Fp.is0(p.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 } = p.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 if (!isValidXY(x, y))\n throw new Error('bad point: equation left != right');\n if (!p.isTorsionFree())\n throw new Error('bad point: not in prime-order subgroup');\n return true;\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 if (px == null || !Fp.isValid(px))\n throw new Error('x required');\n if (py == null || !Fp.isValid(py) || Fp.is0(py))\n throw new Error('y required');\n if (pz == null || !Fp.isValid(pz))\n throw new Error('z required');\n this.px = px;\n this.py = py;\n this.pz = pz;\n Object.freeze(this);\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 = FpInvertBatch(Fp, 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 // Multiscalar Multiplication\n static msm(points, scalars) {\n return pippenger(Point, Fn, points, scalars);\n }\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize) {\n wnaf.setWindowSize(this, windowSize);\n }\n // A point on curve is valid if it conforms to equation.\n assertValidity() {\n assertValidMemo(this);\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 aprjpoint(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 aprjpoint(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, n, Point.normalizeZ);\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(sc) {\n const { endo, n: N } = CURVE;\n aInRange('scalar', sc, _0n, N);\n const I = Point.ZERO;\n if (sc === _0n)\n return I;\n if (this.is0() || sc === _1n)\n return this;\n // Case a: no endomorphism. Case b: has precomputes.\n if (!endo || wnaf.hasPrecomputes(this))\n return wnaf.wNAFCachedUnsafe(this, sc, Point.normalizeZ);\n // Case c: endomorphism\n /** See docs for {@link EndomorphismOpts} */\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(sc);\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 const { endo, n: N } = CURVE;\n aInRange('scalar', scalar, _1n, N);\n let point, fake; // Fake point is used to const-time mult\n /** See docs for {@link EndomorphismOpts} */\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(scalar);\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(scalar);\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 return toAffineMemo(this, iz);\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 abool('isCompressed', isCompressed);\n this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n toHex(isCompressed = true) {\n abool('isCompressed', isCompressed);\n return bytesToHex(this.toRawBytes(isCompressed));\n }\n }\n // base / generator point\n Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n // zero / infinity / identity point\n Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO); // 0, 1, 0\n const { endo, nBitLength } = CURVE;\n const wnaf = wNAF(Point, endo ? Math.ceil(nBitLength / 2) : nBitLength);\n return {\n CURVE,\n ProjectivePoint: Point,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n };\n}\nfunction validateOpts(curve) {\n const opts = validateBasic(curve);\n 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}\n/**\n * Creates short weierstrass curve and ECDSA signature methods for it.\n * @example\n * import { Field } from '@noble/curves/abstract/modular';\n * // Before that, define BigInt-s: a, b, p, n, Gx, Gy\n * const curve = weierstrass({ a, b, Fp: Field(p), n, Gx, Gy, h: 1n })\n */\nexport function weierstrass(curveDef) {\n const CURVE = validateOpts(curveDef);\n const { Fp, n: CURVE_ORDER, nByteLength, nBitLength } = 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 modN(a) {\n return mod(a, CURVE_ORDER);\n }\n function invN(a) {\n return 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 = concatBytes;\n abool('isCompressed', isCompressed);\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 = bytesToNumberBE(tail);\n if (!inRange(x, _1n, Fp.ORDER))\n throw new Error('Point is not on curve');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y;\n try {\n y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n }\n catch (sqrtError) {\n const suffix = sqrtError instanceof Error ? ': ' + sqrtError.message : '';\n throw new Error('Point is not on curve' + suffix);\n }\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 const cl = compressedLen;\n const ul = uncompressedLen;\n throw new Error('invalid Point, expected length of ' + cl + ', or uncompressed ' + ul + ', got ' + len);\n }\n },\n });\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) => 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 aInRange('r', r, _1n, CURVE_ORDER); // r in [1..N]\n aInRange('s', s, _1n, CURVE_ORDER); // s in [1..N]\n this.r = r;\n this.s = s;\n if (recovery != null)\n this.recovery = recovery;\n Object.freeze(this);\n }\n // pair (bytes of r, bytes of s)\n static fromCompact(hex) {\n const l = 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 /**\n * @todo remove\n * @deprecated\n */\n assertValidity() { }\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 + numToSizedHex(radj, Fp.BYTES));\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 hexToBytes(this.toDERHex());\n }\n toDERHex() {\n return DER.hexFromSig(this);\n }\n // padded bytes of r, then padded bytes of s\n toCompactRawBytes() {\n return hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n const l = nByteLength;\n return numToSizedHex(this.r, l) + numToSizedHex(this.s, l);\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 = getMinHashLength(CURVE.n);\n return 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 if (typeof item === 'bigint')\n return false;\n if (item instanceof Point)\n return true;\n const arr = ensureBytes('key', item);\n const len = arr.length;\n const fpl = Fp.BYTES;\n const compLen = fpl + 1; // e.g. 33 for 32\n const uncompLen = 2 * fpl + 1; // e.g. 65 for 32\n if (CURVE.allowedPrivateKeyLengths || nByteLength === compLen) {\n return undefined;\n }\n else {\n return len === compLen || len === uncompLen;\n }\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) === true)\n throw new Error('first arg must be private key');\n if (isProbPub(publicB) === false)\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 // Our custom check \"just in case\", for protection against DoS\n if (bytes.length > 8192)\n throw new Error('input is too large');\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 = bytesToNumberBE(bytes); // check for == u8 done here\n const delta = bytes.length * 8 - 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 = bitMask(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 aInRange('num < 2^' + nBitLength, num, _0n, ORDER_MASK);\n // works with order, can have different size than numToField!\n return numberToBytesBE(num, 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,\n // this will be invalid at least for P521. 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 validateSigVerOpts(opts);\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 && ent !== false) {\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 = 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 = 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 const { lowS, prehash, format } = opts;\n // Verify opts, deduce signature format\n validateSigVerOpts(opts);\n if ('strict' in opts)\n throw new Error('options.strict was renamed to lowS');\n if (format !== undefined && format !== 'compact' && format !== 'der')\n throw new Error('format must be compact or der');\n const isHex = typeof sg === 'string' || isBytes(sg);\n const isObj = !isHex &&\n !format &&\n typeof sg === 'object' &&\n sg !== null &&\n typeof sg.r === 'bigint' &&\n typeof sg.s === 'bigint';\n if (!isHex && !isObj)\n throw new Error('invalid signature, expected Uint8Array, hex string or Signature instance');\n let _sig = undefined;\n let P;\n try {\n if (isObj)\n _sig = new Signature(sg.r, sg.s);\n if (isHex) {\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 if (format !== 'compact')\n _sig = Signature.fromDER(sg);\n }\n catch (derError) {\n if (!(derError instanceof DER.Err))\n throw derError;\n }\n if (!_sig && format !== 'der')\n _sig = Signature.fromCompact(sg);\n }\n P = Point.fromHex(publicKey);\n }\n catch (error) {\n return false;\n }\n if (!_sig)\n return false;\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 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 const tv4_inv = FpInvertBatch(Fp, [tv4], true)[0];\n x = Fp.mul(x, tv4_inv); // 25. x = x / tv4\n return { x, y };\n };\n}\n//# sourceMappingURL=weierstrass.js.map","/**\n * Utilities for short weierstrass curves, combined with noble-hashes.\n * @module\n */\n/*! 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 { ...create(defHash), create };\n}\n//# sourceMappingURL=_shortw_utils.js.map","/**\n * NIST secp256k1. See [pdf](https://www.secg.org/sec2-v2.pdf).\n *\n * Seems to be rigid (not backdoored)\n * [as per discussion](https://bitcointalk.org/index.php?topic=289795.msg3183975#msg3183975).\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 * [See explanation](https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066).\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha256 } from '@noble/hashes/sha2';\nimport { randomBytes } from '@noble/hashes/utils';\nimport { createCurve } from \"./_shortw_utils.js\";\nimport { createHasher, isogenyMap } from \"./abstract/hash-to-curve.js\";\nimport { Field, mod, pow2 } from \"./abstract/modular.js\";\nimport { aInRange, bytesToNumberBE, concatBytes, ensureBytes, inRange, numberToBytesBE, } from \"./abstract/utils.js\";\nimport { mapToCurveSimpleSWU } from \"./abstract/weierstrass.js\";\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nconst _0n = BigInt(0);\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 (!Fpk1.eql(Fpk1.sqr(root), y))\n throw new Error('Cannot find square root');\n return root;\n}\nconst Fpk1 = Field(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\n/**\n * secp256k1 curve, ECDSA and ECDH methods.\n *\n * Field: `2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n`\n *\n * @example\n * ```js\n * import { secp256k1 } from '@noble/curves/secp256k1';\n * const priv = secp256k1.utils.randomPrivateKey();\n * const pub = secp256k1.getPublicKey(priv);\n * const msg = new Uint8Array(32).fill(1); // message hash (not message) in ecdsa\n * const sig = secp256k1.sign(msg, priv); // `{prehash: true}` option is available\n * const isValid = secp256k1.verify(sig, msg, pub) === true;\n * ```\n */\nexport const secp256k1 = createCurve({\n a: _0n,\n b: BigInt(7),\n Fp: Fpk1,\n n: secp256k1N,\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1),\n lowS: true, // Allow only low-S signatures by default in sign() and verify()\n endo: {\n // Endomorphism, see above\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\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 = /* @__PURE__ */ (() => 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 aInRange('x', x, _1n, secp256k1P); // 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}\nconst num = bytesToNumberBE;\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args) {\n return modN(num(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 ^ num(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(num(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(num(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = num(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!inRange(r, _1n, secp256k1P))\n return false;\n const s = num(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!inRange(s, _1n, secp256k1N))\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}\n/**\n * Schnorr signatures over secp256k1.\n * https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\n * @example\n * ```js\n * import { schnorr } from '@noble/curves/secp256k1';\n * const priv = schnorr.utils.randomPrivateKey();\n * const pub = schnorr.getPublicKey(priv);\n * const msg = new TextEncoder().encode('hello');\n * const sig = schnorr.sign(msg, priv);\n * const isValid = schnorr.verify(sig, msg, pub);\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(Fpk1, [\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(Fpk1, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fpk1.create(BigInt('-11')),\n}))();\n/** Hashing / encoding to secp256k1 points / field. RFC 9380 methods. */\nexport const secp256k1_hasher = /* @__PURE__ */ (() => createHasher(secp256k1.ProjectivePoint, (scalars) => {\n const { x, y } = mapSWU(Fpk1.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: Fpk1.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha256,\n}))();\nexport const hashToCurve = /* @__PURE__ */ (() => secp256k1_hasher.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => secp256k1_hasher.encodeToCurve)();\n//# sourceMappingURL=secp256k1.js.map","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar asn1 = require('./asn1');\nvar aesid = require('./aesid.json');\nvar fixProc = require('./fixProc');\nvar ciphers = require('browserify-aes');\nvar pbkdf2Sync = require('pbkdf2').pbkdf2Sync;\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction decrypt(data, password) {\n\tvar salt = data.algorithm.decrypt.kde.kdeparams.salt;\n\tvar iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10);\n\tvar algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')];\n\tvar iv = data.algorithm.decrypt.cipher.iv;\n\tvar cipherText = data.subjectPrivateKey;\n\tvar keylen = parseInt(algo.split('-')[1], 10) / 8;\n\tvar key = pbkdf2Sync(password, salt, iters, keylen, 'sha1');\n\tvar cipher = ciphers.createDecipheriv(algo, key, iv);\n\tvar out = [];\n\tout.push(cipher.update(cipherText));\n\tout.push(cipher['final']());\n\treturn Buffer.concat(out);\n}\n\nfunction parseKeys(buffer) {\n\tvar password;\n\tif (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n\t\tpassword = buffer.passphrase;\n\t\tbuffer = buffer.key;\n\t}\n\tif (typeof buffer === 'string') {\n\t\tbuffer = Buffer.from(buffer);\n\t}\n\n\tvar stripped = fixProc(buffer, password);\n\n\tvar type = stripped.tag;\n\tvar data = stripped.data;\n\tvar subtype, ndata;\n\tswitch (type) {\n\t\tcase 'CERTIFICATE':\n\t\t\tndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo;\n\t\t\t// falls through\n\t\tcase 'PUBLIC KEY':\n\t\t\tif (!ndata) {\n\t\t\t\tndata = asn1.PublicKey.decode(data, 'der');\n\t\t\t}\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\tndata.subjectPrivateKey = ndata.subjectPublicKey;\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'ec',\n\t\t\t\t\t\tdata: ndata\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tdata: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'ENCRYPTED PRIVATE KEY':\n\t\t\tdata = asn1.EncryptedPrivateKey.decode(data, 'der');\n\t\t\tdata = decrypt(data, password);\n\t\t\t// falls through\n\t\tcase 'PRIVATE KEY':\n\t\t\tndata = asn1.PrivateKey.decode(data, 'der');\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcurve: ndata.algorithm.curve,\n\t\t\t\t\t\tprivateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tparams: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'RSA PUBLIC KEY':\n\t\t\treturn asn1.RSAPublicKey.decode(data, 'der');\n\t\tcase 'RSA PRIVATE KEY':\n\t\t\treturn asn1.RSAPrivateKey.decode(data, 'der');\n\t\tcase 'DSA PRIVATE KEY':\n\t\t\treturn {\n\t\t\t\ttype: 'dsa',\n\t\t\t\tparams: asn1.DSAPrivateKey.decode(data, 'der')\n\t\t\t};\n\t\tcase 'EC PRIVATE KEY':\n\t\t\tdata = asn1.ECPrivateKey.decode(data, 'der');\n\t\t\treturn {\n\t\t\t\tcurve: data.parameters.value,\n\t\t\t\tprivateKey: data.privateKey\n\t\t\t};\n\t\tdefault: throw new Error('unknown key type ' + type);\n\t}\n}\nparseKeys.signature = asn1.signature;\n\nmodule.exports = parseKeys;\n","import { withResolvers } from './withResolvers.js';\nconst schedulerCache = /*#__PURE__*/ new Map();\n/** @internal */\nexport function createBatchScheduler({ fn, id, shouldSplitBatch, wait = 0, sort, }) {\n const exec = async () => {\n const scheduler = getScheduler();\n flush();\n const args = scheduler.map(({ args }) => args);\n if (args.length === 0)\n return;\n fn(args)\n .then((data) => {\n if (sort && Array.isArray(data))\n data.sort(sort);\n for (let i = 0; i < scheduler.length; i++) {\n const { resolve } = scheduler[i];\n resolve?.([data[i], data]);\n }\n })\n .catch((err) => {\n for (let i = 0; i < scheduler.length; i++) {\n const { reject } = scheduler[i];\n reject?.(err);\n }\n });\n };\n const flush = () => schedulerCache.delete(id);\n const getBatchedArgs = () => getScheduler().map(({ args }) => args);\n const getScheduler = () => schedulerCache.get(id) || [];\n const setScheduler = (item) => schedulerCache.set(id, [...getScheduler(), item]);\n return {\n flush,\n async schedule(args) {\n const { promise, resolve, reject } = withResolvers();\n const split = shouldSplitBatch?.([...getBatchedArgs(), args]);\n if (split)\n exec();\n const hasActiveScheduler = getScheduler().length > 0;\n if (hasActiveScheduler) {\n setScheduler({ args, resolve, reject });\n return promise;\n }\n setScheduler({ args, resolve, reject });\n setTimeout(exec, wait);\n return promise;\n },\n };\n}\n//# sourceMappingURL=createBatchScheduler.js.map","import * as Arr from \"../../Array.js\";\nimport { equals } from \"../../Equal.js\";\nimport { dual } from \"../../Function.js\";\nimport * as fiberRefs_ from \"../fiberRefs.js\";\n/** @internal */\nexport const OP_EMPTY = \"Empty\";\n/** @internal */\nexport const OP_ADD = \"Add\";\n/** @internal */\nexport const OP_REMOVE = \"Remove\";\n/** @internal */\nexport const OP_UPDATE = \"Update\";\n/** @internal */\nexport const OP_AND_THEN = \"AndThen\";\n/** @internal */\nexport const empty = {\n _tag: OP_EMPTY\n};\n/** @internal */\nexport const diff = (oldValue, newValue) => {\n const missingLocals = new Map(oldValue.locals);\n let patch = empty;\n for (const [fiberRef, pairs] of newValue.locals.entries()) {\n const newValue = Arr.headNonEmpty(pairs)[1];\n const old = missingLocals.get(fiberRef);\n if (old !== undefined) {\n const oldValue = Arr.headNonEmpty(old)[1];\n if (!equals(oldValue, newValue)) {\n patch = combine({\n _tag: OP_UPDATE,\n fiberRef,\n patch: fiberRef.diff(oldValue, newValue)\n })(patch);\n }\n } else {\n patch = combine({\n _tag: OP_ADD,\n fiberRef,\n value: newValue\n })(patch);\n }\n missingLocals.delete(fiberRef);\n }\n for (const [fiberRef] of missingLocals.entries()) {\n patch = combine({\n _tag: OP_REMOVE,\n fiberRef\n })(patch);\n }\n return patch;\n};\n/** @internal */\nexport const combine = /*#__PURE__*/dual(2, (self, that) => ({\n _tag: OP_AND_THEN,\n first: self,\n second: that\n}));\n/** @internal */\nexport const patch = /*#__PURE__*/dual(3, (self, fiberId, oldValue) => {\n let fiberRefs = oldValue;\n let patches = Arr.of(self);\n while (Arr.isNonEmptyReadonlyArray(patches)) {\n const head = Arr.headNonEmpty(patches);\n const tail = Arr.tailNonEmpty(patches);\n switch (head._tag) {\n case OP_EMPTY:\n {\n patches = tail;\n break;\n }\n case OP_ADD:\n {\n fiberRefs = fiberRefs_.updateAs(fiberRefs, {\n fiberId,\n fiberRef: head.fiberRef,\n value: head.value\n });\n patches = tail;\n break;\n }\n case OP_REMOVE:\n {\n fiberRefs = fiberRefs_.delete_(fiberRefs, head.fiberRef);\n patches = tail;\n break;\n }\n case OP_UPDATE:\n {\n const value = fiberRefs_.getOrDefault(fiberRefs, head.fiberRef);\n fiberRefs = fiberRefs_.updateAs(fiberRefs, {\n fiberId,\n fiberRef: head.fiberRef,\n value: head.fiberRef.patch(head.patch)(value)\n });\n patches = tail;\n break;\n }\n case OP_AND_THEN:\n {\n patches = Arr.prepend(head.first)(Arr.prepend(head.second)(tail));\n break;\n }\n }\n }\n return fiberRefs;\n});\n//# sourceMappingURL=patch.js.map","/**\n * @since 2.0.0\n */\nimport { pipe } from \"./Function.js\";\nimport { globalValue } from \"./GlobalValue.js\";\nimport { hasProperty } from \"./Predicate.js\";\nimport { structuralRegionState } from \"./Utils.js\";\n/** @internal */\nconst randomHashCache = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Hash/randomHashCache\"), () => new WeakMap());\n/**\n * @since 2.0.0\n * @category symbols\n */\nexport const symbol = /*#__PURE__*/Symbol.for(\"effect/Hash\");\n/**\n * @since 2.0.0\n * @category hashing\n */\nexport const hash = self => {\n if (structuralRegionState.enabled === true) {\n return 0;\n }\n switch (typeof self) {\n case \"number\":\n return number(self);\n case \"bigint\":\n return string(self.toString(10));\n case \"boolean\":\n return string(String(self));\n case \"symbol\":\n return string(String(self));\n case \"string\":\n return string(self);\n case \"undefined\":\n return string(\"undefined\");\n case \"function\":\n case \"object\":\n {\n if (self === null) {\n return string(\"null\");\n } else if (self instanceof Date) {\n if (Number.isNaN(self.getTime())) {\n return string(\"Invalid Date\");\n }\n return hash(self.toISOString());\n } else if (self instanceof URL) {\n return hash(self.href);\n } else if (isHash(self)) {\n return self[symbol]();\n } else {\n return random(self);\n }\n }\n default:\n throw new Error(`BUG: unhandled typeof ${typeof self} - please report an issue at https://github.com/Effect-TS/effect/issues`);\n }\n};\n/**\n * @since 2.0.0\n * @category hashing\n */\nexport const random = self => {\n if (!randomHashCache.has(self)) {\n randomHashCache.set(self, number(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER)));\n }\n return randomHashCache.get(self);\n};\n/**\n * @since 2.0.0\n * @category hashing\n */\nexport const combine = b => self => self * 53 ^ b;\n/**\n * @since 2.0.0\n * @category hashing\n */\nexport const optimize = n => n & 0xbfffffff | n >>> 1 & 0x40000000;\n/**\n * @since 2.0.0\n * @category guards\n */\nexport const isHash = u => hasProperty(u, symbol);\n/**\n * @since 2.0.0\n * @category hashing\n */\nexport const number = n => {\n if (n !== n || n === Infinity) {\n return 0;\n }\n let h = n | 0;\n if (h !== n) {\n h ^= n * 0xffffffff;\n }\n while (n > 0xffffffff) {\n h ^= n /= 0xffffffff;\n }\n return optimize(h);\n};\n/**\n * @since 2.0.0\n * @category hashing\n */\nexport const string = str => {\n let h = 5381,\n i = str.length;\n while (i) {\n h = h * 33 ^ str.charCodeAt(--i);\n }\n return optimize(h);\n};\n/**\n * @since 2.0.0\n * @category hashing\n */\nexport const structureKeys = (o, keys) => {\n let h = 12289;\n for (let i = 0; i < keys.length; i++) {\n h ^= pipe(string(keys[i]), combine(hash(o[keys[i]])));\n }\n return optimize(h);\n};\n/**\n * @since 2.0.0\n * @category hashing\n */\nexport const structure = o => structureKeys(o, Object.keys(o));\n/**\n * @since 2.0.0\n * @category hashing\n */\nexport const array = arr => {\n let h = 6151;\n for (let i = 0; i < arr.length; i++) {\n h = pipe(h, combine(hash(arr[i])));\n }\n return optimize(h);\n};\n/**\n * @since 2.0.0\n * @category hashing\n */\nexport const cached = function () {\n if (arguments.length === 1) {\n const self = arguments[0];\n return function (hash) {\n Object.defineProperty(self, symbol, {\n value() {\n return hash;\n },\n enumerable: false\n });\n return hash;\n };\n }\n const self = arguments[0];\n const hash = arguments[1];\n Object.defineProperty(self, symbol, {\n value() {\n return hash;\n },\n enumerable: false\n });\n return hash;\n};\n//# sourceMappingURL=Hash.js.map","import { wait } from './wait.js';\n/**\n * @description Polls a function at a specified interval.\n */\nexport function poll(fn, { emitOnBegin, initialWaitTime, interval }) {\n let active = true;\n const unwatch = () => (active = false);\n const watch = async () => {\n let data;\n if (emitOnBegin)\n data = await fn({ unpoll: unwatch });\n const initialWait = (await initialWaitTime?.(data)) ?? interval;\n await wait(initialWait);\n const poll = async () => {\n if (!active)\n return;\n await fn({ unpoll: unwatch });\n await wait(interval);\n poll();\n };\n poll();\n };\n watch();\n return unwatch;\n}\n//# sourceMappingURL=poll.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","var decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","import { keccak256 } from '../hash/keccak256.js';\nimport { toPrefixedMessage } from './toPrefixedMessage.js';\nexport function hashMessage(message, to_) {\n return keccak256(toPrefixedMessage(message), to_);\n}\n//# sourceMappingURL=hashMessage.js.map","import { presignMessagePrefix } from '../../constants/strings.js';\nimport { concat } from '../data/concat.js';\nimport { size } from '../data/size.js';\nimport { bytesToHex, stringToHex, } from '../encoding/toHex.js';\nexport function toPrefixedMessage(message_) {\n const message = (() => {\n if (typeof message_ === 'string')\n return stringToHex(message_);\n if (typeof message_.raw === 'string')\n return message_.raw;\n return bytesToHex(message_.raw);\n })();\n const prefix = stringToHex(`${presignMessagePrefix}${size(message)}`);\n return concat([prefix, message]);\n}\n//# sourceMappingURL=toPrefixedMessage.js.map","import { hexToNumber } from '../encoding/fromHex.js';\nimport { defineFormatter } from './formatter.js';\nexport const transactionType = {\n '0x0': 'legacy',\n '0x1': 'eip2930',\n '0x2': 'eip1559',\n '0x3': 'eip4844',\n '0x4': 'eip7702',\n};\nexport function formatTransaction(transaction, _) {\n const transaction_ = {\n ...transaction,\n blockHash: transaction.blockHash ? transaction.blockHash : null,\n blockNumber: transaction.blockNumber\n ? BigInt(transaction.blockNumber)\n : null,\n chainId: transaction.chainId ? hexToNumber(transaction.chainId) : undefined,\n gas: transaction.gas ? BigInt(transaction.gas) : undefined,\n gasPrice: transaction.gasPrice ? BigInt(transaction.gasPrice) : undefined,\n maxFeePerBlobGas: transaction.maxFeePerBlobGas\n ? BigInt(transaction.maxFeePerBlobGas)\n : undefined,\n maxFeePerGas: transaction.maxFeePerGas\n ? BigInt(transaction.maxFeePerGas)\n : undefined,\n maxPriorityFeePerGas: transaction.maxPriorityFeePerGas\n ? BigInt(transaction.maxPriorityFeePerGas)\n : undefined,\n nonce: transaction.nonce ? hexToNumber(transaction.nonce) : undefined,\n to: transaction.to ? transaction.to : null,\n transactionIndex: transaction.transactionIndex\n ? Number(transaction.transactionIndex)\n : null,\n type: transaction.type\n ? transactionType[transaction.type]\n : undefined,\n typeHex: transaction.type ? transaction.type : undefined,\n value: transaction.value ? BigInt(transaction.value) : undefined,\n v: transaction.v ? BigInt(transaction.v) : undefined,\n };\n if (transaction.authorizationList)\n transaction_.authorizationList = formatAuthorizationList(transaction.authorizationList);\n transaction_.yParity = (() => {\n // If `yParity` is provided, we will use it.\n if (transaction.yParity)\n return Number(transaction.yParity);\n // If no `yParity` provided, try derive from `v`.\n if (typeof transaction_.v === 'bigint') {\n if (transaction_.v === 0n || transaction_.v === 27n)\n return 0;\n if (transaction_.v === 1n || transaction_.v === 28n)\n return 1;\n if (transaction_.v >= 35n)\n return transaction_.v % 2n === 0n ? 1 : 0;\n }\n return undefined;\n })();\n if (transaction_.type === 'legacy') {\n delete transaction_.accessList;\n delete transaction_.maxFeePerBlobGas;\n delete transaction_.maxFeePerGas;\n delete transaction_.maxPriorityFeePerGas;\n delete transaction_.yParity;\n }\n if (transaction_.type === 'eip2930') {\n delete transaction_.maxFeePerBlobGas;\n delete transaction_.maxFeePerGas;\n delete transaction_.maxPriorityFeePerGas;\n }\n if (transaction_.type === 'eip1559')\n delete transaction_.maxFeePerBlobGas;\n return transaction_;\n}\nexport const defineTransaction = /*#__PURE__*/ defineFormatter('transaction', formatTransaction);\n//////////////////////////////////////////////////////////////////////////////\nfunction formatAuthorizationList(authorizationList) {\n return authorizationList.map((authorization) => ({\n address: authorization.address,\n chainId: Number(authorization.chainId),\n nonce: Number(authorization.nonce),\n r: authorization.r,\n s: authorization.s,\n yParity: Number(authorization.yParity),\n }));\n}\n//# sourceMappingURL=transaction.js.map","/**\n * Internal helpers for u64. BigUint64Array is too slow as per 2025, so we implement it using Uint32Array.\n * @todo re-check https://issues.chromium.org/issues/42212588\n * @module\n */\nconst U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\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 const len = lst.length;\n let Ah = new Uint32Array(len);\n let Al = new Uint32Array(len);\n for (let i = 0; i < len; 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 { add, add3H, add3L, add4H, add4L, add5H, add5L, fromBig, rotlBH, rotlBL, rotlSH, rotlSL, rotr32H, rotr32L, rotrBH, rotrBL, rotrSH, rotrSL, shrSH, shrSL, split, toBig };\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 * as internal from \"./internal/context.js\";\n/**\n * @since 2.0.0\n * @category symbol\n */\nexport const TagTypeId = internal.TagTypeId;\n/**\n * @since 3.11.0\n * @category symbol\n */\nexport const ReferenceTypeId = internal.ReferenceTypeId;\n/**\n * Creates a new `Tag` instance with an optional key parameter.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context } from \"effect\"\n *\n * assert.strictEqual(Context.GenericTag(\"PORT\").key === Context.GenericTag(\"PORT\").key, true)\n * ```\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const GenericTag = internal.makeGenericTag;\nconst TypeId = internal.TypeId;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const unsafeMake = internal.makeContext;\n/**\n * Checks if the provided argument is a `Context`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context } from \"effect\"\n *\n * assert.strictEqual(Context.isContext(Context.empty()), true)\n * ```\n *\n * @since 2.0.0\n * @category guards\n */\nexport const isContext = internal.isContext;\n/**\n * Checks if the provided argument is a `Tag`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context } from \"effect\"\n *\n * assert.strictEqual(Context.isTag(Context.GenericTag(\"Tag\")), true)\n * ```\n *\n * @since 2.0.0\n * @category guards\n */\nexport const isTag = internal.isTag;\n/**\n * Checks if the provided argument is a `Reference`.\n *\n * @since 3.11.0\n * @category guards\n * @experimental\n */\nexport const isReference = internal.isReference;\n/**\n * Returns an empty `Context`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context } from \"effect\"\n *\n * assert.strictEqual(Context.isContext(Context.empty()), true)\n * ```\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const empty = internal.empty;\n/**\n * Creates a new `Context` with a single service associated to the tag.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context } from \"effect\"\n *\n * const Port = Context.GenericTag<{ PORT: number }>(\"Port\")\n *\n * const Services = Context.make(Port, { PORT: 8080 })\n *\n * assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })\n * ```\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const make = internal.make;\n/**\n * Adds a service to a given `Context`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context, pipe } from \"effect\"\n *\n * const Port = Context.GenericTag<{ PORT: number }>(\"Port\")\n * const Timeout = Context.GenericTag<{ TIMEOUT: number }>(\"Timeout\")\n *\n * const someContext = Context.make(Port, { PORT: 8080 })\n *\n * const Services = pipe(\n * someContext,\n * Context.add(Timeout, { TIMEOUT: 5000 })\n * )\n *\n * assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })\n * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })\n * ```\n *\n * @since 2.0.0\n */\nexport const add = internal.add;\n/**\n * Get a service from the context that corresponds to the given tag.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { pipe, Context } from \"effect\"\n *\n * const Port = Context.GenericTag<{ PORT: number }>(\"Port\")\n * const Timeout = Context.GenericTag<{ TIMEOUT: number }>(\"Timeout\")\n *\n * const Services = pipe(\n * Context.make(Port, { PORT: 8080 }),\n * Context.add(Timeout, { TIMEOUT: 5000 })\n * )\n *\n * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })\n * ```\n *\n * @since 2.0.0\n * @category getters\n */\nexport const get = internal.get;\n/**\n * Get a service from the context that corresponds to the given tag, or\n * use the fallback value.\n *\n * @since 3.7.0\n * @category getters\n */\nexport const getOrElse = internal.getOrElse;\n/**\n * Get a service from the context that corresponds to the given tag.\n * This function is unsafe because if the tag is not present in the context, a runtime error will be thrown.\n *\n * For a safer version see {@link getOption}.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context } from \"effect\"\n *\n * const Port = Context.GenericTag<{ PORT: number }>(\"Port\")\n * const Timeout = Context.GenericTag<{ TIMEOUT: number }>(\"Timeout\")\n *\n * const Services = Context.make(Port, { PORT: 8080 })\n *\n * assert.deepStrictEqual(Context.unsafeGet(Services, Port), { PORT: 8080 })\n * assert.throws(() => Context.unsafeGet(Services, Timeout))\n * ```\n *\n * @since 2.0.0\n * @category unsafe\n */\nexport const unsafeGet = internal.unsafeGet;\n/**\n * Get the value associated with the specified tag from the context wrapped in an `Option` object. If the tag is not\n * found, the `Option` object will be `None`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context, Option } from \"effect\"\n *\n * const Port = Context.GenericTag<{ PORT: number }>(\"Port\")\n * const Timeout = Context.GenericTag<{ TIMEOUT: number }>(\"Timeout\")\n *\n * const Services = Context.make(Port, { PORT: 8080 })\n *\n * assert.deepStrictEqual(Context.getOption(Services, Port), Option.some({ PORT: 8080 }))\n * assert.deepStrictEqual(Context.getOption(Services, Timeout), Option.none())\n * ```\n *\n * @since 2.0.0\n * @category getters\n */\nexport const getOption = internal.getOption;\n/**\n * Merges two `Context`s, returning a new `Context` containing the services of both.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context } from \"effect\"\n *\n * const Port = Context.GenericTag<{ PORT: number }>(\"Port\")\n * const Timeout = Context.GenericTag<{ TIMEOUT: number }>(\"Timeout\")\n *\n * const firstContext = Context.make(Port, { PORT: 8080 })\n * const secondContext = Context.make(Timeout, { TIMEOUT: 5000 })\n *\n * const Services = Context.merge(firstContext, secondContext)\n *\n * assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })\n * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })\n * ```\n *\n * @since 2.0.0\n */\nexport const merge = internal.merge;\n/**\n * Merges any number of `Context`s, returning a new `Context` containing the services of all.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context } from \"effect\"\n *\n * const Port = Context.GenericTag<{ PORT: number }>(\"Port\")\n * const Timeout = Context.GenericTag<{ TIMEOUT: number }>(\"Timeout\")\n * const Host = Context.GenericTag<{ HOST: string }>(\"Host\")\n *\n * const firstContext = Context.make(Port, { PORT: 8080 })\n * const secondContext = Context.make(Timeout, { TIMEOUT: 5000 })\n * const thirdContext = Context.make(Host, { HOST: \"localhost\" })\n *\n * const Services = Context.mergeAll(firstContext, secondContext, thirdContext)\n *\n * assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })\n * assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })\n * assert.deepStrictEqual(Context.get(Services, Host), { HOST: \"localhost\" })\n * ```\n *\n * @since 3.12.0\n */\nexport const mergeAll = internal.mergeAll;\n/**\n * Returns a new `Context` that contains only the specified services.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { pipe, Context, Option } from \"effect\"\n *\n * const Port = Context.GenericTag<{ PORT: number }>(\"Port\")\n * const Timeout = Context.GenericTag<{ TIMEOUT: number }>(\"Timeout\")\n *\n * const someContext = pipe(\n * Context.make(Port, { PORT: 8080 }),\n * Context.add(Timeout, { TIMEOUT: 5000 })\n * )\n *\n * const Services = pipe(someContext, Context.pick(Port))\n *\n * assert.deepStrictEqual(Context.getOption(Services, Port), Option.some({ PORT: 8080 }))\n * assert.deepStrictEqual(Context.getOption(Services, Timeout), Option.none())\n * ```\n *\n * @since 2.0.0\n */\nexport const pick = internal.pick;\n/**\n * @since 2.0.0\n */\nexport const omit = internal.omit;\n/**\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context, Layer } from \"effect\"\n *\n * class MyTag extends Context.Tag(\"MyTag\")<\n * MyTag,\n * { readonly myNum: number }\n * >() {\n * static Live = Layer.succeed(this, { myNum: 108 })\n * }\n * ```\n *\n * @since 2.0.0\n * @category constructors\n */\nexport const Tag = internal.Tag;\n/**\n * Creates a context tag with a default value.\n *\n * **Details**\n *\n * `Context.Reference` allows you to create a tag that can hold a value. You can\n * provide a default value for the service, which will automatically be used\n * when the context is accessed, or override it with a custom implementation\n * when needed.\n *\n * **Example** (Declaring a Tag with a default value)\n *\n * ```ts\n * import * as assert from \"node:assert\"\n * import { Context, Effect } from \"effect\"\n *\n * class SpecialNumber extends Context.Reference()(\n * \"SpecialNumber\",\n * { defaultValue: () => 2048 }\n * ) {}\n *\n * // ┌─── Effect\n * // ▼\n * const program = Effect.gen(function* () {\n * const specialNumber = yield* SpecialNumber\n * console.log(`The special number is ${specialNumber}`)\n * })\n *\n * // No need to provide the SpecialNumber implementation\n * Effect.runPromise(program)\n * // Output: The special number is 2048\n * ```\n *\n * **Example** (Overriding the default value)\n *\n * ```ts\n * import { Context, Effect } from \"effect\"\n *\n * class SpecialNumber extends Context.Reference()(\n * \"SpecialNumber\",\n * { defaultValue: () => 2048 }\n * ) {}\n *\n * const program = Effect.gen(function* () {\n * const specialNumber = yield* SpecialNumber\n * console.log(`The special number is ${specialNumber}`)\n * })\n *\n * Effect.runPromise(program.pipe(Effect.provideService(SpecialNumber, -1)))\n * // Output: The special number is -1\n * ```\n *\n * @since 3.11.0\n * @category constructors\n * @experimental\n */\nexport const Reference = internal.Reference;\n//# sourceMappingURL=Context.js.map","/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray;\nfunction noop() {}\nvar ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, props) {\n var refProp = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== refProp ? refProp : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, oldElement.props);\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\nexports.Activity = REACT_ACTIVITY_TYPE;\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cacheSignal = function () {\n return null;\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useEffectEvent = function (callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.2.3\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","import * as Arr from \"../../Array.js\";\nimport * as Equal from \"../../Equal.js\";\nimport * as Dual from \"../../Function.js\";\nimport * as Data from \"../data.js\";\n/** @internal */\nexport const ReadonlyArrayPatchTypeId = /*#__PURE__*/Symbol.for(\"effect/DifferReadonlyArrayPatch\");\nfunction variance(a) {\n return a;\n}\nconst PatchProto = {\n ...Data.Structural.prototype,\n [ReadonlyArrayPatchTypeId]: {\n _Value: variance,\n _Patch: variance\n }\n};\nconst EmptyProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Empty\"\n});\nconst _empty = /*#__PURE__*/Object.create(EmptyProto);\n/**\n * @internal\n */\nexport const empty = () => _empty;\nconst AndThenProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"AndThen\"\n});\nconst makeAndThen = (first, second) => {\n const o = Object.create(AndThenProto);\n o.first = first;\n o.second = second;\n return o;\n};\nconst AppendProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Append\"\n});\nconst makeAppend = values => {\n const o = Object.create(AppendProto);\n o.values = values;\n return o;\n};\nconst SliceProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Slice\"\n});\nconst makeSlice = (from, until) => {\n const o = Object.create(SliceProto);\n o.from = from;\n o.until = until;\n return o;\n};\nconst UpdateProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Update\"\n});\nconst makeUpdate = (index, patch) => {\n const o = Object.create(UpdateProto);\n o.index = index;\n o.patch = patch;\n return o;\n};\n/** @internal */\nexport const diff = options => {\n let i = 0;\n let patch = empty();\n while (i < options.oldValue.length && i < options.newValue.length) {\n const oldElement = options.oldValue[i];\n const newElement = options.newValue[i];\n const valuePatch = options.differ.diff(oldElement, newElement);\n if (!Equal.equals(valuePatch, options.differ.empty)) {\n patch = combine(patch, makeUpdate(i, valuePatch));\n }\n i = i + 1;\n }\n if (i < options.oldValue.length) {\n patch = combine(patch, makeSlice(0, i));\n }\n if (i < options.newValue.length) {\n patch = combine(patch, makeAppend(Arr.drop(i)(options.newValue)));\n }\n return patch;\n};\n/** @internal */\nexport const combine = /*#__PURE__*/Dual.dual(2, (self, that) => makeAndThen(self, that));\n/** @internal */\nexport const patch = /*#__PURE__*/Dual.dual(3, (self, oldValue, differ) => {\n if (self._tag === \"Empty\") {\n return oldValue;\n }\n let readonlyArray = oldValue.slice();\n let patches = Arr.of(self);\n while (Arr.isNonEmptyArray(patches)) {\n const head = Arr.headNonEmpty(patches);\n const tail = Arr.tailNonEmpty(patches);\n switch (head._tag) {\n case \"Empty\":\n {\n patches = tail;\n break;\n }\n case \"AndThen\":\n {\n tail.unshift(head.first, head.second);\n patches = tail;\n break;\n }\n case \"Append\":\n {\n for (const value of head.values) {\n readonlyArray.push(value);\n }\n patches = tail;\n break;\n }\n case \"Slice\":\n {\n readonlyArray = readonlyArray.slice(head.from, head.until);\n patches = tail;\n break;\n }\n case \"Update\":\n {\n readonlyArray[head.index] = differ.patch(head.patch, readonlyArray[head.index]);\n patches = tail;\n break;\n }\n }\n }\n return readonlyArray;\n});\n//# sourceMappingURL=readonlyArrayPatch.js.map","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","import * as Chunk from \"../../Chunk.js\";\nimport * as Equal from \"../../Equal.js\";\nimport * as Dual from \"../../Function.js\";\nimport * as HashMap from \"../../HashMap.js\";\nimport { Structural } from \"../data.js\";\n/** @internal */\nexport const HashMapPatchTypeId = /*#__PURE__*/Symbol.for(\"effect/DifferHashMapPatch\");\nfunction variance(a) {\n return a;\n}\n/** @internal */\nconst PatchProto = {\n ...Structural.prototype,\n [HashMapPatchTypeId]: {\n _Value: variance,\n _Key: variance,\n _Patch: variance\n }\n};\nconst EmptyProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Empty\"\n});\nconst _empty = /*#__PURE__*/Object.create(EmptyProto);\n/** @internal */\nexport const empty = () => _empty;\nconst AndThenProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"AndThen\"\n});\nconst makeAndThen = (first, second) => {\n const o = Object.create(AndThenProto);\n o.first = first;\n o.second = second;\n return o;\n};\nconst AddProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Add\"\n});\nconst makeAdd = (key, value) => {\n const o = Object.create(AddProto);\n o.key = key;\n o.value = value;\n return o;\n};\nconst RemoveProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Remove\"\n});\nconst makeRemove = key => {\n const o = Object.create(RemoveProto);\n o.key = key;\n return o;\n};\nconst UpdateProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Update\"\n});\nconst makeUpdate = (key, patch) => {\n const o = Object.create(UpdateProto);\n o.key = key;\n o.patch = patch;\n return o;\n};\n/** @internal */\nexport const diff = options => {\n const [removed, patch] = HashMap.reduce([options.oldValue, empty()], ([map, patch], newValue, key) => {\n const option = HashMap.get(key)(map);\n switch (option._tag) {\n case \"Some\":\n {\n const valuePatch = options.differ.diff(option.value, newValue);\n if (Equal.equals(valuePatch, options.differ.empty)) {\n return [HashMap.remove(key)(map), patch];\n }\n return [HashMap.remove(key)(map), combine(makeUpdate(key, valuePatch))(patch)];\n }\n case \"None\":\n {\n return [map, combine(makeAdd(key, newValue))(patch)];\n }\n }\n })(options.newValue);\n return HashMap.reduce(patch, (patch, _, key) => combine(makeRemove(key))(patch))(removed);\n};\n/** @internal */\nexport const combine = /*#__PURE__*/Dual.dual(2, (self, that) => makeAndThen(self, that));\n/** @internal */\nexport const patch = /*#__PURE__*/Dual.dual(3, (self, oldValue, differ) => {\n if (self._tag === \"Empty\") {\n return oldValue;\n }\n let map = oldValue;\n let patches = Chunk.of(self);\n while (Chunk.isNonEmpty(patches)) {\n const head = Chunk.headNonEmpty(patches);\n const tail = Chunk.tailNonEmpty(patches);\n switch (head._tag) {\n case \"Empty\":\n {\n patches = tail;\n break;\n }\n case \"AndThen\":\n {\n patches = Chunk.prepend(head.first)(Chunk.prepend(head.second)(tail));\n break;\n }\n case \"Add\":\n {\n map = HashMap.set(head.key, head.value)(map);\n patches = tail;\n break;\n }\n case \"Remove\":\n {\n map = HashMap.remove(head.key)(map);\n patches = tail;\n break;\n }\n case \"Update\":\n {\n const option = HashMap.get(head.key)(map);\n if (option._tag === \"Some\") {\n map = HashMap.set(head.key, differ.patch(head.patch, option.value))(map);\n }\n patches = tail;\n break;\n }\n }\n }\n return map;\n});\n//# sourceMappingURL=hashMapPatch.js.map","/** @internal */\nexport const SIZE = 5;\n/** @internal */\nexport const BUCKET_SIZE = /*#__PURE__*/Math.pow(2, SIZE);\n/** @internal */\nexport const MASK = BUCKET_SIZE - 1;\n/** @internal */\nexport const MAX_INDEX_NODE = BUCKET_SIZE / 2;\n/** @internal */\nexport const MIN_ARRAY_NODE = BUCKET_SIZE / 4;\n//# sourceMappingURL=config.js.map","import { MASK } from \"./config.js\";\n/**\n * Hamming weight.\n *\n * Taken from: http://jsperf.com/hamming-weight\n *\n * @internal\n */\nexport function popcount(x) {\n x -= x >> 1 & 0x55555555;\n x = (x & 0x33333333) + (x >> 2 & 0x33333333);\n x = x + (x >> 4) & 0x0f0f0f0f;\n x += x >> 8;\n x += x >> 16;\n return x & 0x7f;\n}\n/** @internal */\nexport function hashFragment(shift, h) {\n return h >>> shift & MASK;\n}\n/** @internal */\nexport function toBitmap(x) {\n return 1 << x;\n}\n/** @internal */\nexport function fromBitmap(bitmap, bit) {\n return popcount(bitmap & bit - 1);\n}\n//# sourceMappingURL=bitwise.js.map","export const make = (value, previous) => ({\n value,\n previous\n});\n//# sourceMappingURL=stack.js.map","/** @internal */\nexport function arrayUpdate(mutate, at, v, arr) {\n let out = arr;\n if (!mutate) {\n const len = arr.length;\n out = new Array(len);\n for (let i = 0; i < len; ++i) out[i] = arr[i];\n }\n out[at] = v;\n return out;\n}\n/** @internal */\nexport function arraySpliceOut(mutate, at, arr) {\n const newLen = arr.length - 1;\n let i = 0;\n let g = 0;\n let out = arr;\n if (mutate) {\n i = g = at;\n } else {\n out = new Array(newLen);\n while (i < at) out[g++] = arr[i++];\n }\n ++i;\n while (i <= newLen) out[g++] = arr[i++];\n if (mutate) {\n out.length = newLen;\n }\n return out;\n}\n/** @internal */\nexport function arraySpliceIn(mutate, at, v, arr) {\n const len = arr.length;\n if (mutate) {\n let i = len;\n while (i >= at) arr[i--] = arr[i];\n arr[at] = v;\n return arr;\n }\n let i = 0,\n g = 0;\n const out = new Array(len + 1);\n while (i < at) out[g++] = arr[i++];\n out[at] = v;\n while (i < len) out[++g] = arr[i++];\n return out;\n}\n//# sourceMappingURL=array.js.map","import { equals } from \"../../Equal.js\";\nimport * as O from \"../../Option.js\";\nimport { isTagged } from \"../../Predicate.js\";\nimport * as Stack from \"../stack.js\";\nimport { arraySpliceIn, arraySpliceOut, arrayUpdate } from \"./array.js\";\nimport { fromBitmap, hashFragment, toBitmap } from \"./bitwise.js\";\nimport { MAX_INDEX_NODE, MIN_ARRAY_NODE, SIZE } from \"./config.js\";\n/** @internal */\nexport class EmptyNode {\n _tag = \"EmptyNode\";\n modify(edit, _shift, f, hash, key, size) {\n const v = f(O.none());\n if (O.isNone(v)) return new EmptyNode();\n ++size.value;\n return new LeafNode(edit, hash, key, v);\n }\n}\n/** @internal */\nexport function isEmptyNode(a) {\n return isTagged(a, \"EmptyNode\");\n}\n/** @internal */\nexport function isLeafNode(node) {\n return isEmptyNode(node) || node._tag === \"LeafNode\" || node._tag === \"CollisionNode\";\n}\n/** @internal */\nexport function canEditNode(node, edit) {\n return isEmptyNode(node) ? false : edit === node.edit;\n}\n/** @internal */\nexport class LeafNode {\n edit;\n hash;\n key;\n value;\n _tag = \"LeafNode\";\n constructor(edit, hash, key, value) {\n this.edit = edit;\n this.hash = hash;\n this.key = key;\n this.value = value;\n }\n modify(edit, shift, f, hash, key, size) {\n if (equals(key, this.key)) {\n const v = f(this.value);\n if (v === this.value) return this;else if (O.isNone(v)) {\n --size.value;\n return new EmptyNode();\n }\n if (canEditNode(this, edit)) {\n this.value = v;\n return this;\n }\n return new LeafNode(edit, hash, key, v);\n }\n const v = f(O.none());\n if (O.isNone(v)) return this;\n ++size.value;\n return mergeLeaves(edit, shift, this.hash, this, hash, new LeafNode(edit, hash, key, v));\n }\n}\n/** @internal */\nexport class CollisionNode {\n edit;\n hash;\n children;\n _tag = \"CollisionNode\";\n constructor(edit, hash, children) {\n this.edit = edit;\n this.hash = hash;\n this.children = children;\n }\n modify(edit, shift, f, hash, key, size) {\n if (hash === this.hash) {\n const canEdit = canEditNode(this, edit);\n const list = this.updateCollisionList(canEdit, edit, this.hash, this.children, f, key, size);\n if (list === this.children) return this;\n return list.length > 1 ? new CollisionNode(edit, this.hash, list) : list[0]; // collapse single element collision list\n }\n const v = f(O.none());\n if (O.isNone(v)) return this;\n ++size.value;\n return mergeLeaves(edit, shift, this.hash, this, hash, new LeafNode(edit, hash, key, v));\n }\n updateCollisionList(mutate, edit, hash, list, f, key, size) {\n const len = list.length;\n for (let i = 0; i < len; ++i) {\n const child = list[i];\n if (\"key\" in child && equals(key, child.key)) {\n const value = child.value;\n const newValue = f(value);\n if (newValue === value) return list;\n if (O.isNone(newValue)) {\n --size.value;\n return arraySpliceOut(mutate, i, list);\n }\n return arrayUpdate(mutate, i, new LeafNode(edit, hash, key, newValue), list);\n }\n }\n const newValue = f(O.none());\n if (O.isNone(newValue)) return list;\n ++size.value;\n return arrayUpdate(mutate, len, new LeafNode(edit, hash, key, newValue), list);\n }\n}\n/** @internal */\nexport class IndexedNode {\n edit;\n mask;\n children;\n _tag = \"IndexedNode\";\n constructor(edit, mask, children) {\n this.edit = edit;\n this.mask = mask;\n this.children = children;\n }\n modify(edit, shift, f, hash, key, size) {\n const mask = this.mask;\n const children = this.children;\n const frag = hashFragment(shift, hash);\n const bit = toBitmap(frag);\n const indx = fromBitmap(mask, bit);\n const exists = mask & bit;\n const canEdit = canEditNode(this, edit);\n if (!exists) {\n const _newChild = new EmptyNode().modify(edit, shift + SIZE, f, hash, key, size);\n if (!_newChild) return this;\n return children.length >= MAX_INDEX_NODE ? expand(edit, frag, _newChild, mask, children) : new IndexedNode(edit, mask | bit, arraySpliceIn(canEdit, indx, _newChild, children));\n }\n const current = children[indx];\n const child = current.modify(edit, shift + SIZE, f, hash, key, size);\n if (current === child) return this;\n let bitmap = mask;\n let newChildren;\n if (isEmptyNode(child)) {\n // remove\n bitmap &= ~bit;\n if (!bitmap) return new EmptyNode();\n if (children.length <= 2 && isLeafNode(children[indx ^ 1])) {\n return children[indx ^ 1]; // collapse\n }\n newChildren = arraySpliceOut(canEdit, indx, children);\n } else {\n // modify\n newChildren = arrayUpdate(canEdit, indx, child, children);\n }\n if (canEdit) {\n this.mask = bitmap;\n this.children = newChildren;\n return this;\n }\n return new IndexedNode(edit, bitmap, newChildren);\n }\n}\n/** @internal */\nexport class ArrayNode {\n edit;\n size;\n children;\n _tag = \"ArrayNode\";\n constructor(edit, size, children) {\n this.edit = edit;\n this.size = size;\n this.children = children;\n }\n modify(edit, shift, f, hash, key, size) {\n let count = this.size;\n const children = this.children;\n const frag = hashFragment(shift, hash);\n const child = children[frag];\n const newChild = (child || new EmptyNode()).modify(edit, shift + SIZE, f, hash, key, size);\n if (child === newChild) return this;\n const canEdit = canEditNode(this, edit);\n let newChildren;\n if (isEmptyNode(child) && !isEmptyNode(newChild)) {\n // add\n ++count;\n newChildren = arrayUpdate(canEdit, frag, newChild, children);\n } else if (!isEmptyNode(child) && isEmptyNode(newChild)) {\n // remove\n --count;\n if (count <= MIN_ARRAY_NODE) {\n return pack(edit, count, frag, children);\n }\n newChildren = arrayUpdate(canEdit, frag, new EmptyNode(), children);\n } else {\n // modify\n newChildren = arrayUpdate(canEdit, frag, newChild, children);\n }\n if (canEdit) {\n this.size = count;\n this.children = newChildren;\n return this;\n }\n return new ArrayNode(edit, count, newChildren);\n }\n}\nfunction pack(edit, count, removed, elements) {\n const children = new Array(count - 1);\n let g = 0;\n let bitmap = 0;\n for (let i = 0, len = elements.length; i < len; ++i) {\n if (i !== removed) {\n const elem = elements[i];\n if (elem && !isEmptyNode(elem)) {\n children[g++] = elem;\n bitmap |= 1 << i;\n }\n }\n }\n return new IndexedNode(edit, bitmap, children);\n}\nfunction expand(edit, frag, child, bitmap, subNodes) {\n const arr = [];\n let bit = bitmap;\n let count = 0;\n for (let i = 0; bit; ++i) {\n if (bit & 1) arr[i] = subNodes[count++];\n bit >>>= 1;\n }\n arr[frag] = child;\n return new ArrayNode(edit, count + 1, arr);\n}\nfunction mergeLeavesInner(edit, shift, h1, n1, h2, n2) {\n if (h1 === h2) return new CollisionNode(edit, h1, [n2, n1]);\n const subH1 = hashFragment(shift, h1);\n const subH2 = hashFragment(shift, h2);\n if (subH1 === subH2) {\n return child => new IndexedNode(edit, toBitmap(subH1) | toBitmap(subH2), [child]);\n } else {\n const children = subH1 < subH2 ? [n1, n2] : [n2, n1];\n return new IndexedNode(edit, toBitmap(subH1) | toBitmap(subH2), children);\n }\n}\nfunction mergeLeaves(edit, shift, h1, n1, h2, n2) {\n let stack = undefined;\n let currentShift = shift;\n while (true) {\n const res = mergeLeavesInner(edit, currentShift, h1, n1, h2, n2);\n if (typeof res === \"function\") {\n stack = Stack.make(res, stack);\n currentShift = currentShift + SIZE;\n } else {\n let final = res;\n while (stack != null) {\n final = stack.value(final);\n stack = stack.previous;\n }\n return final;\n }\n }\n}\n//# sourceMappingURL=node.js.map","import * as Equal from \"../Equal.js\";\nimport * as Dual from \"../Function.js\";\nimport { identity, pipe } from \"../Function.js\";\nimport * as Hash from \"../Hash.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"../Inspectable.js\";\nimport * as Option from \"../Option.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport { hasProperty } from \"../Predicate.js\";\nimport { fromBitmap, hashFragment, toBitmap } from \"./hashMap/bitwise.js\";\nimport { SIZE } from \"./hashMap/config.js\";\nimport * as Node from \"./hashMap/node.js\";\nconst HashMapSymbolKey = \"effect/HashMap\";\n/** @internal */\nexport const HashMapTypeId = /*#__PURE__*/Symbol.for(HashMapSymbolKey);\nconst HashMapProto = {\n [HashMapTypeId]: HashMapTypeId,\n [Symbol.iterator]() {\n return new HashMapIterator(this, (k, v) => [k, v]);\n },\n [Hash.symbol]() {\n let hash = Hash.hash(HashMapSymbolKey);\n for (const item of this) {\n hash ^= pipe(Hash.hash(item[0]), Hash.combine(Hash.hash(item[1])));\n }\n return Hash.cached(this, hash);\n },\n [Equal.symbol](that) {\n if (isHashMap(that)) {\n if (that._size !== this._size) {\n return false;\n }\n for (const item of this) {\n const elem = pipe(that, getHash(item[0], Hash.hash(item[0])));\n if (Option.isNone(elem)) {\n return false;\n } else {\n if (!Equal.equals(item[1], elem.value)) {\n return false;\n }\n }\n }\n return true;\n }\n return false;\n },\n toString() {\n return format(this.toJSON());\n },\n toJSON() {\n return {\n _id: \"HashMap\",\n values: Array.from(this).map(toJSON)\n };\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\nconst makeImpl = (editable, edit, root, size) => {\n const map = Object.create(HashMapProto);\n map._editable = editable;\n map._edit = edit;\n map._root = root;\n map._size = size;\n return map;\n};\nclass HashMapIterator {\n map;\n f;\n v;\n constructor(map, f) {\n this.map = map;\n this.f = f;\n this.v = visitLazy(this.map._root, this.f, undefined);\n }\n next() {\n if (Option.isNone(this.v)) {\n return {\n done: true,\n value: undefined\n };\n }\n const v0 = this.v.value;\n this.v = applyCont(v0.cont);\n return {\n done: false,\n value: v0.value\n };\n }\n [Symbol.iterator]() {\n return new HashMapIterator(this.map, this.f);\n }\n}\nconst applyCont = cont => cont ? visitLazyChildren(cont[0], cont[1], cont[2], cont[3], cont[4]) : Option.none();\nconst visitLazy = (node, f, cont = undefined) => {\n switch (node._tag) {\n case \"LeafNode\":\n {\n if (Option.isSome(node.value)) {\n return Option.some({\n value: f(node.key, node.value.value),\n cont\n });\n }\n return applyCont(cont);\n }\n case \"CollisionNode\":\n case \"ArrayNode\":\n case \"IndexedNode\":\n {\n const children = node.children;\n return visitLazyChildren(children.length, children, 0, f, cont);\n }\n default:\n {\n return applyCont(cont);\n }\n }\n};\nconst visitLazyChildren = (len, children, i, f, cont) => {\n while (i < len) {\n const child = children[i++];\n if (child && !Node.isEmptyNode(child)) {\n return visitLazy(child, f, [len, children, i, f, cont]);\n }\n }\n return applyCont(cont);\n};\nconst _empty = /*#__PURE__*/makeImpl(false, 0, /*#__PURE__*/new Node.EmptyNode(), 0);\n/** @internal */\nexport const empty = () => _empty;\n/** @internal */\nexport const make = (...entries) => fromIterable(entries);\n/** @internal */\nexport const fromIterable = entries => {\n const map = beginMutation(empty());\n for (const entry of entries) {\n set(map, entry[0], entry[1]);\n }\n return endMutation(map);\n};\n/** @internal */\nexport const isHashMap = u => hasProperty(u, HashMapTypeId);\n/** @internal */\nexport const isEmpty = self => self && Node.isEmptyNode(self._root);\n/** @internal */\nexport const get = /*#__PURE__*/Dual.dual(2, (self, key) => getHash(self, key, Hash.hash(key)));\n/** @internal */\nexport const getHash = /*#__PURE__*/Dual.dual(3, (self, key, hash) => {\n let node = self._root;\n let shift = 0;\n while (true) {\n switch (node._tag) {\n case \"LeafNode\":\n {\n return Equal.equals(key, node.key) ? node.value : Option.none();\n }\n case \"CollisionNode\":\n {\n if (hash === node.hash) {\n const children = node.children;\n for (let i = 0, len = children.length; i < len; ++i) {\n const child = children[i];\n if (\"key\" in child && Equal.equals(key, child.key)) {\n return child.value;\n }\n }\n }\n return Option.none();\n }\n case \"IndexedNode\":\n {\n const frag = hashFragment(shift, hash);\n const bit = toBitmap(frag);\n if (node.mask & bit) {\n node = node.children[fromBitmap(node.mask, bit)];\n shift += SIZE;\n break;\n }\n return Option.none();\n }\n case \"ArrayNode\":\n {\n node = node.children[hashFragment(shift, hash)];\n if (node) {\n shift += SIZE;\n break;\n }\n return Option.none();\n }\n default:\n return Option.none();\n }\n }\n});\n/** @internal */\nexport const unsafeGet = /*#__PURE__*/Dual.dual(2, (self, key) => {\n const element = getHash(self, key, Hash.hash(key));\n if (Option.isNone(element)) {\n throw new Error(\"Expected map to contain key\");\n }\n return element.value;\n});\n/** @internal */\nexport const has = /*#__PURE__*/Dual.dual(2, (self, key) => Option.isSome(getHash(self, key, Hash.hash(key))));\n/** @internal */\nexport const hasHash = /*#__PURE__*/Dual.dual(3, (self, key, hash) => Option.isSome(getHash(self, key, hash)));\n/** @internal */\nexport const hasBy = /*#__PURE__*/Dual.dual(2, (self, predicate) => Option.isSome(findFirst(self, predicate)));\n/** @internal */\nexport const set = /*#__PURE__*/Dual.dual(3, (self, key, value) => modifyAt(self, key, () => Option.some(value)));\n/** @internal */\nexport const setTree = /*#__PURE__*/Dual.dual(3, (self, newRoot, newSize) => {\n if (self._editable) {\n ;\n self._root = newRoot;\n self._size = newSize;\n return self;\n }\n return newRoot === self._root ? self : makeImpl(self._editable, self._edit, newRoot, newSize);\n});\n/** @internal */\nexport const keys = self => new HashMapIterator(self, key => key);\n/** @internal */\nexport const values = self => new HashMapIterator(self, (_, value) => value);\n/** @internal */\nexport const entries = self => new HashMapIterator(self, (key, value) => [key, value]);\n/** @internal */\nexport const size = self => self._size;\n/** @internal */\nexport const countBy = /*#__PURE__*/Dual.dual(2, (self, f) => {\n let count = 0;\n for (const [k, a] of self) {\n if (f(a, k)) {\n count++;\n }\n }\n return count;\n});\n/** @internal */\nexport const beginMutation = self => makeImpl(true, self._edit + 1, self._root, self._size);\n/** @internal */\nexport const endMutation = self => {\n ;\n self._editable = false;\n return self;\n};\n/** @internal */\nexport const mutate = /*#__PURE__*/Dual.dual(2, (self, f) => {\n const transient = beginMutation(self);\n f(transient);\n return endMutation(transient);\n});\n/** @internal */\nexport const modifyAt = /*#__PURE__*/Dual.dual(3, (self, key, f) => modifyHash(self, key, Hash.hash(key), f));\n/** @internal */\nexport const modifyHash = /*#__PURE__*/Dual.dual(4, (self, key, hash, f) => {\n const size = {\n value: self._size\n };\n const newRoot = self._root.modify(self._editable ? self._edit : NaN, 0, f, hash, key, size);\n return pipe(self, setTree(newRoot, size.value));\n});\n/** @internal */\nexport const modify = /*#__PURE__*/Dual.dual(3, (self, key, f) => modifyAt(self, key, Option.map(f)));\n/** @internal */\nexport const union = /*#__PURE__*/Dual.dual(2, (self, that) => {\n const result = beginMutation(self);\n forEach(that, (v, k) => set(result, k, v));\n return endMutation(result);\n});\n/** @internal */\nexport const remove = /*#__PURE__*/Dual.dual(2, (self, key) => modifyAt(self, key, Option.none));\n/** @internal */\nexport const removeMany = /*#__PURE__*/Dual.dual(2, (self, keys) => mutate(self, map => {\n for (const key of keys) {\n remove(key)(map);\n }\n}));\n/**\n * Maps over the entries of the `HashMap` using the specified function.\n *\n * @since 2.0.0\n * @category mapping\n */\nexport const map = /*#__PURE__*/Dual.dual(2, (self, f) => reduce(self, empty(), (map, value, key) => set(map, key, f(value, key))));\n/** @internal */\nexport const flatMap = /*#__PURE__*/Dual.dual(2, (self, f) => reduce(self, empty(), (zero, value, key) => mutate(zero, map => forEach(f(value, key), (value, key) => set(map, key, value)))));\n/** @internal */\nexport const forEach = /*#__PURE__*/Dual.dual(2, (self, f) => reduce(self, void 0, (_, value, key) => f(value, key)));\n/** @internal */\nexport const reduce = /*#__PURE__*/Dual.dual(3, (self, zero, f) => {\n const root = self._root;\n if (root._tag === \"LeafNode\") {\n return Option.isSome(root.value) ? f(zero, root.value.value, root.key) : zero;\n }\n if (root._tag === \"EmptyNode\") {\n return zero;\n }\n const toVisit = [root.children];\n let children;\n while (children = toVisit.pop()) {\n for (let i = 0, len = children.length; i < len;) {\n const child = children[i++];\n if (child && !Node.isEmptyNode(child)) {\n if (child._tag === \"LeafNode\") {\n if (Option.isSome(child.value)) {\n zero = f(zero, child.value.value, child.key);\n }\n } else {\n toVisit.push(child.children);\n }\n }\n }\n }\n return zero;\n});\n/** @internal */\nexport const filter = /*#__PURE__*/Dual.dual(2, (self, f) => mutate(empty(), map => {\n for (const [k, a] of self) {\n if (f(a, k)) {\n set(map, k, a);\n }\n }\n}));\n/** @internal */\nexport const compact = self => filterMap(self, identity);\n/** @internal */\nexport const filterMap = /*#__PURE__*/Dual.dual(2, (self, f) => mutate(empty(), map => {\n for (const [k, a] of self) {\n const option = f(a, k);\n if (Option.isSome(option)) {\n set(map, k, option.value);\n }\n }\n}));\n/** @internal */\nexport const findFirst = /*#__PURE__*/Dual.dual(2, (self, predicate) => {\n for (const ka of self) {\n if (predicate(ka[1], ka[0])) {\n return Option.some(ka);\n }\n }\n return Option.none();\n});\n/** @internal */\nexport const some = /*#__PURE__*/Dual.dual(2, (self, predicate) => {\n for (const ka of self) {\n if (predicate(ka[1], ka[0])) {\n return true;\n }\n }\n return false;\n});\n/** @internal */\nexport const every = /*#__PURE__*/Dual.dual(2, (self, predicate) => !some(self, (a, k) => !predicate(a, k)));\n//# sourceMappingURL=hashMap.js.map","import { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { parseEventLogs } from '../../utils/abi/parseEventLogs.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatLog, } from '../../utils/formatters/log.js';\n/**\n * Returns a list of event logs matching the provided parameters.\n *\n * - Docs: https://viem.sh/docs/actions/public/getLogs\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/logs_event-logs\n * - JSON-RPC Methods: [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs)\n *\n * @param client - Client to use\n * @param parameters - {@link GetLogsParameters}\n * @returns A list of event logs. {@link GetLogsReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbiItem } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getLogs } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const logs = await getLogs(client)\n */\nexport async function getLogs(client, { address, blockHash, fromBlock, toBlock, event, events: events_, args, strict: strict_, } = {}) {\n const strict = strict_ ?? false;\n const events = events_ ?? (event ? [event] : undefined);\n let topics = [];\n if (events) {\n const encoded = events.flatMap((event) => encodeEventTopics({\n abi: [event],\n eventName: event.name,\n args: events_ ? undefined : args,\n }));\n // TODO: Clean up type casting\n topics = [encoded];\n if (event)\n topics = topics[0];\n }\n let logs;\n if (blockHash) {\n logs = await client.request({\n method: 'eth_getLogs',\n params: [{ address, topics, blockHash }],\n });\n }\n else {\n logs = await client.request({\n method: 'eth_getLogs',\n params: [\n {\n address,\n topics,\n fromBlock: typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n },\n ],\n });\n }\n const formattedLogs = logs.map((log) => formatLog(log));\n if (!events)\n return formattedLogs;\n return parseEventLogs({\n abi: events,\n args: args,\n logs: formattedLogs,\n strict,\n });\n}\n//# sourceMappingURL=getLogs.js.map","import { etherUnits } from '../../constants/unit.js';\nimport { formatUnits } from './formatUnits.js';\n/**\n * Converts numerical wei to a string representation of ether.\n *\n * - Docs: https://viem.sh/docs/utilities/formatEther\n *\n * @example\n * import { formatEther } from 'viem'\n *\n * formatEther(1000000000000000000n)\n * // '1'\n */\nexport function formatEther(wei, unit = 'wei') {\n return formatUnits(wei, etherUnits[unit]);\n}\n//# sourceMappingURL=formatEther.js.map","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n this.padding = options.padding !== false\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","import * as array_ from \"../../Array.js\";\nimport * as Inspectable from \"../../Inspectable.js\";\nimport * as util_ from \"./util.js\";\nconst getErrorMessage = (reason, details, path, ast) => {\n let out = reason;\n if (path && array_.isNonEmptyReadonlyArray(path)) {\n out += `\\nat path: ${util_.formatPath(path)}`;\n }\n if (details !== undefined) {\n out += `\\ndetails: ${details}`;\n }\n if (ast) {\n out += `\\nschema (${ast._tag}): ${ast}`;\n }\n return out;\n};\n// ---------------------------------------------\n// generic\n// ---------------------------------------------\n/** @internal */\nexport const getInvalidArgumentErrorMessage = details => getErrorMessage(\"Invalid Argument\", details);\nconst getUnsupportedSchemaErrorMessage = (details, path, ast) => getErrorMessage(\"Unsupported schema\", details, path, ast);\nconst getMissingAnnotationErrorMessage = (details, path, ast) => getErrorMessage(\"Missing annotation\", details, path, ast);\n// ---------------------------------------------\n// Arbitrary\n// ---------------------------------------------\n/** @internal */\nexport const getArbitraryUnsupportedErrorMessage = (path, ast) => getUnsupportedSchemaErrorMessage(\"Cannot build an Arbitrary for this schema\", path, ast);\n/** @internal */\nexport const getArbitraryMissingAnnotationErrorMessage = (path, ast) => getMissingAnnotationErrorMessage(`Generating an Arbitrary for this schema requires an \"arbitrary\" annotation`, path, ast);\n/** @internal */\nexport const getArbitraryEmptyEnumErrorMessage = path => getErrorMessage(\"Empty Enums schema\", \"Generating an Arbitrary for this schema requires at least one enum\", path);\n// ---------------------------------------------\n// Equivalence\n// ---------------------------------------------\n/** @internal */\nexport const getEquivalenceUnsupportedErrorMessage = (ast, path) => getUnsupportedSchemaErrorMessage(\"Cannot build an Equivalence\", path, ast);\n// ---------------------------------------------\n// JSON Schema\n// ---------------------------------------------\n/** @internal */\nexport const getJSONSchemaMissingAnnotationErrorMessage = (path, ast) => getMissingAnnotationErrorMessage(`Generating a JSON Schema for this schema requires a \"jsonSchema\" annotation`, path, ast);\n/** @internal */\nexport const getJSONSchemaMissingIdentifierAnnotationErrorMessage = (path, ast) => getMissingAnnotationErrorMessage(`Generating a JSON Schema for this schema requires an \"identifier\" annotation`, path, ast);\n/** @internal */\nexport const getJSONSchemaUnsupportedPostRestElementsErrorMessage = path => getErrorMessage(\"Generating a JSON Schema for post-rest elements is not currently supported. You're welcome to contribute by submitting a Pull Request\", undefined, path);\n/** @internal */\nexport const getJSONSchemaUnsupportedKeyErrorMessage = (key, path) => getErrorMessage(\"Unsupported key\", `Cannot encode ${Inspectable.formatPropertyKey(key)} key to JSON Schema`, path);\n// ---------------------------------------------\n// Pretty\n// ---------------------------------------------\n/** @internal */\nexport const getPrettyMissingAnnotationErrorMessage = (path, ast) => getMissingAnnotationErrorMessage(`Generating a Pretty for this schema requires a \"pretty\" annotation`, path, ast);\n/** @internal */\nexport const getPrettyNeverErrorMessage = \"Cannot pretty print a `never` value\";\n/** @internal */\nexport const getPrettyNoMatchingSchemaErrorMessage = (actual, path, ast) => getErrorMessage(\"Unexpected Error\", `Cannot find a matching schema for ${Inspectable.formatUnknown(actual)}`, path, ast);\n// ---------------------------------------------\n// Schema\n// ---------------------------------------------\n/** @internal */\nexport const getSchemaExtendErrorMessage = (x, y, path) => getErrorMessage(\"Unsupported schema or overlapping types\", `cannot extend ${x} with ${y}`, path);\n/** @internal */\nexport const getSchemaUnsupportedLiteralSpanErrorMessage = ast => getErrorMessage(\"Unsupported template literal span\", undefined, undefined, ast);\n// ---------------------------------------------\n// AST\n// ---------------------------------------------\n/** @internal */\nexport const getASTUnsupportedSchemaErrorMessage = ast => getUnsupportedSchemaErrorMessage(undefined, undefined, ast);\n/** @internal */\nexport const getASTUnsupportedKeySchemaErrorMessage = ast => getErrorMessage(\"Unsupported key schema\", undefined, undefined, ast);\n/** @internal */\nexport const getASTUnsupportedLiteralErrorMessage = literal => getErrorMessage(\"Unsupported literal\", `literal value: ${Inspectable.formatUnknown(literal)}`);\n/** @internal */\nexport const getASTDuplicateIndexSignatureErrorMessage = type => getErrorMessage(\"Duplicate index signature\", `${type} index signature`);\n/** @internal */\nexport const getASTIndexSignatureParameterErrorMessage = /*#__PURE__*/getErrorMessage(\"Unsupported index signature parameter\", \"An index signature parameter type must be `string`, `symbol`, a template literal type or a refinement of the previous types\");\n/** @internal */\nexport const getASTRequiredElementFollowinAnOptionalElementErrorMessage = /*#__PURE__*/getErrorMessage(\"Invalid element\", \"A required element cannot follow an optional element. ts(1257)\");\n/** @internal */\nexport const getASTDuplicatePropertySignatureTransformationErrorMessage = key => getErrorMessage(\"Duplicate property signature transformation\", `Duplicate key ${Inspectable.formatUnknown(key)}`);\n/** @internal */\nexport const getASTUnsupportedRenameSchemaErrorMessage = ast => getUnsupportedSchemaErrorMessage(undefined, undefined, ast);\n/** @internal */\nexport const getASTDuplicatePropertySignatureErrorMessage = key => getErrorMessage(\"Duplicate property signature\", `Duplicate key ${Inspectable.formatUnknown(key)}`);\n//# sourceMappingURL=errors.js.map","/**\n * @since 3.10.0\n */\nimport * as Arr from \"./Array.js\";\nimport { dual, identity } from \"./Function.js\";\nimport { globalValue } from \"./GlobalValue.js\";\nimport * as Inspectable from \"./Inspectable.js\";\nimport * as errors_ from \"./internal/schema/errors.js\";\nimport * as util_ from \"./internal/schema/util.js\";\nimport * as Number from \"./Number.js\";\nimport * as Option from \"./Option.js\";\nimport * as Order from \"./Order.js\";\nimport * as Predicate from \"./Predicate.js\";\nimport * as regexp from \"./RegExp.js\";\n/**\n * @category annotations\n * @since 3.19.0\n * @experimental\n */\nexport const TypeConstructorAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/TypeConstructor\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const BrandAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Brand\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const SchemaIdAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/SchemaId\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const MessageAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Message\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const MissingMessageAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/MissingMessage\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const IdentifierAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Identifier\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const TitleAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Title\");\n/** @internal */\nexport const AutoTitleAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/AutoTitle\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const DescriptionAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Description\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const ExamplesAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Examples\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const DefaultAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Default\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const JSONSchemaAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/JSONSchema\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const ArbitraryAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Arbitrary\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const PrettyAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Pretty\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const EquivalenceAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Equivalence\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const DocumentationAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Documentation\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const ConcurrencyAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Concurrency\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const BatchingAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Batching\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const ParseIssueTitleAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/ParseIssueTitle\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const ParseOptionsAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/ParseOptions\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const DecodingFallbackAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/DecodingFallback\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const SurrogateAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/Surrogate\");\n/** @internal */\nexport const StableFilterAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/StableFilter\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getAnnotation = /*#__PURE__*/dual(2, (annotated, key) => Object.prototype.hasOwnProperty.call(annotated.annotations, key) ? Option.some(annotated.annotations[key]) : Option.none());\n/**\n * @category annotations\n * @since 3.19.0\n * @experimental\n */\nexport const getTypeConstructorAnnotation = /*#__PURE__*/getAnnotation(TypeConstructorAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getBrandAnnotation = /*#__PURE__*/getAnnotation(BrandAnnotationId);\n/**\n * @category annotations\n * @since 3.14.2\n */\nexport const getSchemaIdAnnotation = /*#__PURE__*/getAnnotation(SchemaIdAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getMessageAnnotation = /*#__PURE__*/getAnnotation(MessageAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getMissingMessageAnnotation = /*#__PURE__*/getAnnotation(MissingMessageAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getTitleAnnotation = /*#__PURE__*/getAnnotation(TitleAnnotationId);\n/** @internal */\nexport const getAutoTitleAnnotation = /*#__PURE__*/getAnnotation(AutoTitleAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getIdentifierAnnotation = /*#__PURE__*/getAnnotation(IdentifierAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getDescriptionAnnotation = /*#__PURE__*/getAnnotation(DescriptionAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getExamplesAnnotation = /*#__PURE__*/getAnnotation(ExamplesAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getDefaultAnnotation = /*#__PURE__*/getAnnotation(DefaultAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getJSONSchemaAnnotation = /*#__PURE__*/getAnnotation(JSONSchemaAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getDocumentationAnnotation = /*#__PURE__*/getAnnotation(DocumentationAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getConcurrencyAnnotation = /*#__PURE__*/getAnnotation(ConcurrencyAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getBatchingAnnotation = /*#__PURE__*/getAnnotation(BatchingAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getParseIssueTitleAnnotation = /*#__PURE__*/getAnnotation(ParseIssueTitleAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getParseOptionsAnnotation = /*#__PURE__*/getAnnotation(ParseOptionsAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getDecodingFallbackAnnotation = /*#__PURE__*/getAnnotation(DecodingFallbackAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getSurrogateAnnotation = /*#__PURE__*/getAnnotation(SurrogateAnnotationId);\nconst getStableFilterAnnotation = /*#__PURE__*/getAnnotation(StableFilterAnnotationId);\n/** @internal */\nexport const hasStableFilter = annotated => Option.exists(getStableFilterAnnotation(annotated), b => b === true);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const JSONIdentifierAnnotationId = /*#__PURE__*/Symbol.for(\"effect/annotation/JSONIdentifier\");\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getJSONIdentifierAnnotation = /*#__PURE__*/getAnnotation(JSONIdentifierAnnotationId);\n/**\n * @category annotations\n * @since 3.10.0\n */\nexport const getJSONIdentifier = annotated => Option.orElse(getJSONIdentifierAnnotation(annotated), () => getIdentifierAnnotation(annotated));\n// -------------------------------------------------------------------------------------\n// schema ids\n// -------------------------------------------------------------------------------------\n/**\n * @category schema id\n * @since 3.10.0\n */\nexport const ParseJsonSchemaId = /*#__PURE__*/Symbol.for(\"effect/schema/ParseJson\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class Declaration {\n typeParameters;\n decodeUnknown;\n encodeUnknown;\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"Declaration\";\n constructor(typeParameters, decodeUnknown, encodeUnknown, annotations = {}) {\n this.typeParameters = typeParameters;\n this.decodeUnknown = decodeUnknown;\n this.encodeUnknown = encodeUnknown;\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return Option.getOrElse(getExpected(this), () => \"\");\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n typeParameters: this.typeParameters.map(ast => ast.toJSON()),\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\nconst createASTGuard = tag => ast => ast._tag === tag;\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isDeclaration = /*#__PURE__*/createASTGuard(\"Declaration\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class Literal {\n literal;\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"Literal\";\n constructor(literal, annotations = {}) {\n this.literal = literal;\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return Option.getOrElse(getExpected(this), () => Inspectable.formatUnknown(this.literal));\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n literal: Predicate.isBigInt(this.literal) ? String(this.literal) : this.literal,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isLiteral = /*#__PURE__*/createASTGuard(\"Literal\");\nconst $null = /*#__PURE__*/new Literal(null);\nexport {\n/**\n * @category constructors\n * @since 3.10.0\n */\n$null as null };\n/**\n * @category model\n * @since 3.10.0\n */\nexport class UniqueSymbol {\n symbol;\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"UniqueSymbol\";\n constructor(symbol, annotations = {}) {\n this.symbol = symbol;\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return Option.getOrElse(getExpected(this), () => Inspectable.formatUnknown(this.symbol));\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n symbol: String(this.symbol),\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isUniqueSymbol = /*#__PURE__*/createASTGuard(\"UniqueSymbol\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class UndefinedKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"UndefinedKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const undefinedKeyword = /*#__PURE__*/new UndefinedKeyword({\n [TitleAnnotationId]: \"undefined\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isUndefinedKeyword = /*#__PURE__*/createASTGuard(\"UndefinedKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class VoidKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"VoidKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const voidKeyword = /*#__PURE__*/new VoidKeyword({\n [TitleAnnotationId]: \"void\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isVoidKeyword = /*#__PURE__*/createASTGuard(\"VoidKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class NeverKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"NeverKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const neverKeyword = /*#__PURE__*/new NeverKeyword({\n [TitleAnnotationId]: \"never\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isNeverKeyword = /*#__PURE__*/createASTGuard(\"NeverKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class UnknownKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"UnknownKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const unknownKeyword = /*#__PURE__*/new UnknownKeyword({\n [TitleAnnotationId]: \"unknown\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isUnknownKeyword = /*#__PURE__*/createASTGuard(\"UnknownKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class AnyKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"AnyKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const anyKeyword = /*#__PURE__*/new AnyKeyword({\n [TitleAnnotationId]: \"any\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isAnyKeyword = /*#__PURE__*/createASTGuard(\"AnyKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class StringKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"StringKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const stringKeyword = /*#__PURE__*/new StringKeyword({\n [TitleAnnotationId]: \"string\",\n [DescriptionAnnotationId]: \"a string\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isStringKeyword = /*#__PURE__*/createASTGuard(\"StringKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class NumberKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"NumberKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const numberKeyword = /*#__PURE__*/new NumberKeyword({\n [TitleAnnotationId]: \"number\",\n [DescriptionAnnotationId]: \"a number\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isNumberKeyword = /*#__PURE__*/createASTGuard(\"NumberKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class BooleanKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"BooleanKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const booleanKeyword = /*#__PURE__*/new BooleanKeyword({\n [TitleAnnotationId]: \"boolean\",\n [DescriptionAnnotationId]: \"a boolean\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isBooleanKeyword = /*#__PURE__*/createASTGuard(\"BooleanKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class BigIntKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"BigIntKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const bigIntKeyword = /*#__PURE__*/new BigIntKeyword({\n [TitleAnnotationId]: \"bigint\",\n [DescriptionAnnotationId]: \"a bigint\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isBigIntKeyword = /*#__PURE__*/createASTGuard(\"BigIntKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class SymbolKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"SymbolKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const symbolKeyword = /*#__PURE__*/new SymbolKeyword({\n [TitleAnnotationId]: \"symbol\",\n [DescriptionAnnotationId]: \"a symbol\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isSymbolKeyword = /*#__PURE__*/createASTGuard(\"SymbolKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class ObjectKeyword {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"ObjectKeyword\";\n constructor(annotations = {}) {\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return formatKeyword(this);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const objectKeyword = /*#__PURE__*/new ObjectKeyword({\n [TitleAnnotationId]: \"object\",\n [DescriptionAnnotationId]: \"an object in the TypeScript meaning, i.e. the `object` type\"\n});\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isObjectKeyword = /*#__PURE__*/createASTGuard(\"ObjectKeyword\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class Enums {\n enums;\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"Enums\";\n constructor(enums, annotations = {}) {\n this.enums = enums;\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return Option.getOrElse(getExpected(this), () => ` JSON.stringify(value)).join(\" | \")}>`);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n enums: this.enums,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isEnums = /*#__PURE__*/createASTGuard(\"Enums\");\nconst isTemplateLiteralSpanType = ast => {\n switch (ast._tag) {\n case \"Literal\":\n case \"NumberKeyword\":\n case \"StringKeyword\":\n case \"TemplateLiteral\":\n return true;\n case \"Union\":\n return ast.types.every(isTemplateLiteralSpanType);\n }\n return false;\n};\nconst templateLiteralSpanUnionTypeToString = type => {\n switch (type._tag) {\n case \"Literal\":\n return JSON.stringify(String(type.literal));\n case \"StringKeyword\":\n return \"string\";\n case \"NumberKeyword\":\n return \"number\";\n case \"TemplateLiteral\":\n return String(type);\n case \"Union\":\n return type.types.map(templateLiteralSpanUnionTypeToString).join(\" | \");\n }\n};\nconst templateLiteralSpanTypeToString = type => {\n switch (type._tag) {\n case \"Literal\":\n return String(type.literal);\n case \"StringKeyword\":\n return \"${string}\";\n case \"NumberKeyword\":\n return \"${number}\";\n case \"TemplateLiteral\":\n return \"${\" + String(type) + \"}\";\n case \"Union\":\n return \"${\" + type.types.map(templateLiteralSpanUnionTypeToString).join(\" | \") + \"}\";\n }\n};\n/**\n * @category model\n * @since 3.10.0\n */\nexport class TemplateLiteralSpan {\n literal;\n /**\n * @since 3.10.0\n */\n type;\n constructor(type, literal) {\n this.literal = literal;\n if (isTemplateLiteralSpanType(type)) {\n this.type = type;\n } else {\n throw new Error(errors_.getSchemaUnsupportedLiteralSpanErrorMessage(type));\n }\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return templateLiteralSpanTypeToString(this.type) + this.literal;\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n type: this.type.toJSON(),\n literal: this.literal\n };\n }\n}\n/**\n * @category model\n * @since 3.10.0\n */\nexport class TemplateLiteral {\n head;\n spans;\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"TemplateLiteral\";\n constructor(head, spans, annotations = {}) {\n this.head = head;\n this.spans = spans;\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return Option.getOrElse(getExpected(this), () => formatTemplateLiteral(this));\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n head: this.head,\n spans: this.spans.map(span => span.toJSON()),\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\nconst formatTemplateLiteral = ast => \"`\" + ast.head + ast.spans.map(String).join(\"\") + \"`\";\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isTemplateLiteral = /*#__PURE__*/createASTGuard(\"TemplateLiteral\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class Type {\n type;\n annotations;\n constructor(type, annotations = {}) {\n this.type = type;\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n type: this.type.toJSON(),\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return String(this.type);\n }\n}\n/**\n * @category model\n * @since 3.10.0\n */\nexport class OptionalType extends Type {\n isOptional;\n constructor(type, isOptional, annotations = {}) {\n super(type, annotations);\n this.isOptional = isOptional;\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n type: this.type.toJSON(),\n isOptional: this.isOptional,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return String(this.type) + (this.isOptional ? \"?\" : \"\");\n }\n}\nconst getRestASTs = rest => rest.map(annotatedAST => annotatedAST.type);\n/**\n * @category model\n * @since 3.10.0\n */\nexport class TupleType {\n elements;\n rest;\n isReadonly;\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"TupleType\";\n constructor(elements, rest, isReadonly, annotations = {}) {\n this.elements = elements;\n this.rest = rest;\n this.isReadonly = isReadonly;\n this.annotations = annotations;\n let hasOptionalElement = false;\n let hasIllegalRequiredElement = false;\n for (const e of elements) {\n if (e.isOptional) {\n hasOptionalElement = true;\n } else if (hasOptionalElement) {\n hasIllegalRequiredElement = true;\n break;\n }\n }\n if (hasIllegalRequiredElement || hasOptionalElement && rest.length > 1) {\n throw new Error(errors_.getASTRequiredElementFollowinAnOptionalElementErrorMessage);\n }\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return Option.getOrElse(getExpected(this), () => formatTuple(this));\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n elements: this.elements.map(e => e.toJSON()),\n rest: this.rest.map(ast => ast.toJSON()),\n isReadonly: this.isReadonly,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\nconst formatTuple = ast => {\n const formattedElements = ast.elements.map(String).join(\", \");\n return Arr.matchLeft(ast.rest, {\n onEmpty: () => `readonly [${formattedElements}]`,\n onNonEmpty: (head, tail) => {\n const formattedHead = String(head);\n const wrappedHead = formattedHead.includes(\" | \") ? `(${formattedHead})` : formattedHead;\n if (tail.length > 0) {\n const formattedTail = tail.map(String).join(\", \");\n if (ast.elements.length > 0) {\n return `readonly [${formattedElements}, ...${wrappedHead}[], ${formattedTail}]`;\n } else {\n return `readonly [...${wrappedHead}[], ${formattedTail}]`;\n }\n } else {\n if (ast.elements.length > 0) {\n return `readonly [${formattedElements}, ...${wrappedHead}[]]`;\n } else {\n return `ReadonlyArray<${formattedHead}>`;\n }\n }\n }\n });\n};\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isTupleType = /*#__PURE__*/createASTGuard(\"TupleType\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class PropertySignature extends OptionalType {\n name;\n isReadonly;\n constructor(name, type, isOptional, isReadonly, annotations) {\n super(type, isOptional, annotations);\n this.name = name;\n this.isReadonly = isReadonly;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return (this.isReadonly ? \"readonly \" : \"\") + String(this.name) + (this.isOptional ? \"?\" : \"\") + \": \" + this.type;\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n name: String(this.name),\n type: this.type.toJSON(),\n isOptional: this.isOptional,\n isReadonly: this.isReadonly,\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @since 3.10.0\n */\nexport const isParameter = ast => {\n switch (ast._tag) {\n case \"StringKeyword\":\n case \"SymbolKeyword\":\n case \"TemplateLiteral\":\n return true;\n case \"Refinement\":\n return isParameter(ast.from);\n }\n return false;\n};\n/**\n * @category model\n * @since 3.10.0\n */\nexport class IndexSignature {\n type;\n isReadonly;\n /**\n * @since 3.10.0\n */\n parameter;\n constructor(parameter, type, isReadonly) {\n this.type = type;\n this.isReadonly = isReadonly;\n if (isParameter(parameter)) {\n this.parameter = parameter;\n } else {\n throw new Error(errors_.getASTIndexSignatureParameterErrorMessage);\n }\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return (this.isReadonly ? \"readonly \" : \"\") + `[x: ${this.parameter}]: ${this.type}`;\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n parameter: this.parameter.toJSON(),\n type: this.type.toJSON(),\n isReadonly: this.isReadonly\n };\n }\n}\n/**\n * @category model\n * @since 3.10.0\n */\nexport class TypeLiteral {\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"TypeLiteral\";\n /**\n * @since 3.10.0\n */\n propertySignatures;\n /**\n * @since 3.10.0\n */\n indexSignatures;\n constructor(propertySignatures, indexSignatures, annotations = {}) {\n this.annotations = annotations;\n // check for duplicate property signatures\n const keys = {};\n for (let i = 0; i < propertySignatures.length; i++) {\n const name = propertySignatures[i].name;\n if (Object.prototype.hasOwnProperty.call(keys, name)) {\n throw new Error(errors_.getASTDuplicatePropertySignatureErrorMessage(name));\n }\n keys[name] = null;\n }\n // check for duplicate index signatures\n const parameters = {\n string: false,\n symbol: false\n };\n for (let i = 0; i < indexSignatures.length; i++) {\n const encodedParameter = getEncodedParameter(indexSignatures[i].parameter);\n if (isStringKeyword(encodedParameter)) {\n if (parameters.string) {\n throw new Error(errors_.getASTDuplicateIndexSignatureErrorMessage(\"string\"));\n }\n parameters.string = true;\n } else if (isSymbolKeyword(encodedParameter)) {\n if (parameters.symbol) {\n throw new Error(errors_.getASTDuplicateIndexSignatureErrorMessage(\"symbol\"));\n }\n parameters.symbol = true;\n }\n }\n this.propertySignatures = propertySignatures;\n this.indexSignatures = indexSignatures;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return Option.getOrElse(getExpected(this), () => formatTypeLiteral(this));\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n propertySignatures: this.propertySignatures.map(ps => ps.toJSON()),\n indexSignatures: this.indexSignatures.map(ps => ps.toJSON()),\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\nconst formatIndexSignatures = iss => iss.map(String).join(\"; \");\nconst formatTypeLiteral = ast => {\n if (ast.propertySignatures.length > 0) {\n const pss = ast.propertySignatures.map(String).join(\"; \");\n if (ast.indexSignatures.length > 0) {\n return `{ ${pss}; ${formatIndexSignatures(ast.indexSignatures)} }`;\n } else {\n return `{ ${pss} }`;\n }\n } else {\n if (ast.indexSignatures.length > 0) {\n return `{ ${formatIndexSignatures(ast.indexSignatures)} }`;\n } else {\n return \"{}\";\n }\n }\n};\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isTypeLiteral = /*#__PURE__*/createASTGuard(\"TypeLiteral\");\nconst sortCandidates = /*#__PURE__*/Arr.sort(/*#__PURE__*/Order.mapInput(Number.Order, ast => {\n switch (ast._tag) {\n case \"AnyKeyword\":\n return 0;\n case \"UnknownKeyword\":\n return 1;\n case \"ObjectKeyword\":\n return 2;\n case \"StringKeyword\":\n case \"NumberKeyword\":\n case \"BooleanKeyword\":\n case \"BigIntKeyword\":\n case \"SymbolKeyword\":\n return 3;\n }\n return 4;\n}));\nconst literalMap = {\n string: \"StringKeyword\",\n number: \"NumberKeyword\",\n boolean: \"BooleanKeyword\",\n bigint: \"BigIntKeyword\"\n};\n/** @internal */\nexport const flatten = candidates => Arr.flatMap(candidates, ast => isUnion(ast) ? flatten(ast.types) : [ast]);\n/** @internal */\nexport const unify = candidates => {\n const cs = sortCandidates(candidates);\n const out = [];\n const uniques = {};\n const literals = [];\n for (const ast of cs) {\n switch (ast._tag) {\n case \"NeverKeyword\":\n break;\n case \"AnyKeyword\":\n return [anyKeyword];\n case \"UnknownKeyword\":\n return [unknownKeyword];\n // uniques\n case \"ObjectKeyword\":\n case \"UndefinedKeyword\":\n case \"VoidKeyword\":\n case \"StringKeyword\":\n case \"NumberKeyword\":\n case \"BooleanKeyword\":\n case \"BigIntKeyword\":\n case \"SymbolKeyword\":\n {\n if (!uniques[ast._tag]) {\n uniques[ast._tag] = ast;\n out.push(ast);\n }\n break;\n }\n case \"Literal\":\n {\n const type = typeof ast.literal;\n switch (type) {\n case \"string\":\n case \"number\":\n case \"bigint\":\n case \"boolean\":\n {\n const _tag = literalMap[type];\n if (!uniques[_tag] && !literals.includes(ast.literal)) {\n literals.push(ast.literal);\n out.push(ast);\n }\n break;\n }\n // null\n case \"object\":\n {\n if (!literals.includes(ast.literal)) {\n literals.push(ast.literal);\n out.push(ast);\n }\n break;\n }\n }\n break;\n }\n case \"UniqueSymbol\":\n {\n if (!uniques[\"SymbolKeyword\"] && !literals.includes(ast.symbol)) {\n literals.push(ast.symbol);\n out.push(ast);\n }\n break;\n }\n case \"TupleType\":\n {\n if (!uniques[\"ObjectKeyword\"]) {\n out.push(ast);\n }\n break;\n }\n case \"TypeLiteral\":\n {\n if (ast.propertySignatures.length === 0 && ast.indexSignatures.length === 0) {\n if (!uniques[\"{}\"]) {\n uniques[\"{}\"] = ast;\n out.push(ast);\n }\n } else if (!uniques[\"ObjectKeyword\"]) {\n out.push(ast);\n }\n break;\n }\n default:\n out.push(ast);\n }\n }\n return out;\n};\n/**\n * @category model\n * @since 3.10.0\n */\nexport class Union {\n types;\n annotations;\n static make = (types, annotations) => {\n return isMembers(types) ? new Union(types, annotations) : types.length === 1 ? types[0] : neverKeyword;\n };\n /** @internal */\n static unify = (candidates, annotations) => {\n return Union.make(unify(flatten(candidates)), annotations);\n };\n /**\n * @since 3.10.0\n */\n _tag = \"Union\";\n constructor(types, annotations = {}) {\n this.types = types;\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return Option.getOrElse(getExpected(this), () => this.types.map(String).join(\" | \"));\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n types: this.types.map(ast => ast.toJSON()),\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/** @internal */\nexport const mapMembers = (members, f) => members.map(f);\n/** @internal */\nexport const isMembers = as => as.length > 1;\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isUnion = /*#__PURE__*/createASTGuard(\"Union\");\nconst toJSONMemoMap = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/Schema/AST/toJSONMemoMap\"), () => new WeakMap());\n/**\n * @category model\n * @since 3.10.0\n */\nexport class Suspend {\n f;\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"Suspend\";\n constructor(f, annotations = {}) {\n this.f = f;\n this.annotations = annotations;\n this.f = util_.memoizeThunk(f);\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return getExpected(this).pipe(Option.orElse(() => Option.flatMap(Option.liftThrowable(this.f)(), ast => getExpected(ast))), Option.getOrElse(() => \"\"));\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n const ast = this.f();\n let out = toJSONMemoMap.get(ast);\n if (out) {\n return out;\n }\n toJSONMemoMap.set(ast, {\n _tag: this._tag\n });\n out = {\n _tag: this._tag,\n ast: ast.toJSON(),\n annotations: toJSONAnnotations(this.annotations)\n };\n toJSONMemoMap.set(ast, out);\n return out;\n }\n}\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isSuspend = /*#__PURE__*/createASTGuard(\"Suspend\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class Refinement {\n from;\n filter;\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"Refinement\";\n constructor(from, filter, annotations = {}) {\n this.from = from;\n this.filter = filter;\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return getIdentifierAnnotation(this).pipe(Option.getOrElse(() => Option.match(getOrElseExpected(this), {\n onNone: () => `{ ${this.from} | filter }`,\n onSome: expected => isRefinement(this.from) ? String(this.from) + \" & \" + expected : expected\n })));\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n from: this.from.toJSON(),\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isRefinement = /*#__PURE__*/createASTGuard(\"Refinement\");\n/**\n * @since 3.10.0\n */\nexport const defaultParseOption = {};\n/**\n * @category model\n * @since 3.10.0\n */\nexport class Transformation {\n from;\n to;\n transformation;\n annotations;\n /**\n * @since 3.10.0\n */\n _tag = \"Transformation\";\n constructor(from, to, transformation, annotations = {}) {\n this.from = from;\n this.to = to;\n this.transformation = transformation;\n this.annotations = annotations;\n }\n /**\n * @since 3.10.0\n */\n toString() {\n return Option.getOrElse(getExpected(this), () => `(${String(this.from)} <-> ${String(this.to)})`);\n }\n /**\n * @since 3.10.0\n */\n toJSON() {\n return {\n _tag: this._tag,\n from: this.from.toJSON(),\n to: this.to.toJSON(),\n annotations: toJSONAnnotations(this.annotations)\n };\n }\n}\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isTransformation = /*#__PURE__*/createASTGuard(\"Transformation\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class FinalTransformation {\n decode;\n encode;\n /**\n * @since 3.10.0\n */\n _tag = \"FinalTransformation\";\n constructor(decode, encode) {\n this.decode = decode;\n this.encode = encode;\n }\n}\nconst createTransformationGuard = tag => ast => ast._tag === tag;\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isFinalTransformation = /*#__PURE__*/createTransformationGuard(\"FinalTransformation\");\n/**\n * @category model\n * @since 3.10.0\n */\nexport class ComposeTransformation {\n /**\n * @since 3.10.0\n */\n _tag = \"ComposeTransformation\";\n}\n/**\n * @category constructors\n * @since 3.10.0\n */\nexport const composeTransformation = /*#__PURE__*/new ComposeTransformation();\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isComposeTransformation = /*#__PURE__*/createTransformationGuard(\"ComposeTransformation\");\n/**\n * Represents a `PropertySignature -> PropertySignature` transformation\n *\n * The semantic of `decode` is:\n * - `none()` represents the absence of the key/value pair\n * - `some(value)` represents the presence of the key/value pair\n *\n * The semantic of `encode` is:\n * - `none()` you don't want to output the key/value pair\n * - `some(value)` you want to output the key/value pair\n *\n * @category model\n * @since 3.10.0\n */\nexport class PropertySignatureTransformation {\n from;\n to;\n decode;\n encode;\n constructor(from, to, decode, encode) {\n this.from = from;\n this.to = to;\n this.decode = decode;\n this.encode = encode;\n }\n}\nconst isRenamingPropertySignatureTransformation = t => t.decode === identity && t.encode === identity;\n/**\n * @category model\n * @since 3.10.0\n */\nexport class TypeLiteralTransformation {\n propertySignatureTransformations;\n /**\n * @since 3.10.0\n */\n _tag = \"TypeLiteralTransformation\";\n constructor(propertySignatureTransformations) {\n this.propertySignatureTransformations = propertySignatureTransformations;\n // check for duplicate property signature transformations\n const fromKeys = {};\n const toKeys = {};\n for (const pst of propertySignatureTransformations) {\n const from = pst.from;\n if (fromKeys[from]) {\n throw new Error(errors_.getASTDuplicatePropertySignatureTransformationErrorMessage(from));\n }\n fromKeys[from] = true;\n const to = pst.to;\n if (toKeys[to]) {\n throw new Error(errors_.getASTDuplicatePropertySignatureTransformationErrorMessage(to));\n }\n toKeys[to] = true;\n }\n }\n}\n/**\n * @category guards\n * @since 3.10.0\n */\nexport const isTypeLiteralTransformation = /*#__PURE__*/createTransformationGuard(\"TypeLiteralTransformation\");\n// -------------------------------------------------------------------------------------\n// API\n// -------------------------------------------------------------------------------------\n/**\n * Merges a set of new annotations with existing ones, potentially overwriting\n * any duplicates.\n *\n * Any previously existing identifier annotations are deleted.\n *\n * @since 3.10.0\n */\nexport const annotations = (ast, overrides) => {\n const d = Object.getOwnPropertyDescriptors(ast);\n const base = {\n ...ast.annotations\n };\n delete base[IdentifierAnnotationId];\n const value = {\n ...base,\n ...overrides\n };\n const surrogate = getSurrogateAnnotation(ast);\n if (Option.isSome(surrogate)) {\n value[SurrogateAnnotationId] = annotations(surrogate.value, overrides);\n }\n d.annotations.value = value;\n return Object.create(Object.getPrototypeOf(ast), d);\n};\n/**\n * Equivalent at runtime to the TypeScript type-level `keyof` operator.\n *\n * @since 3.10.0\n */\nexport const keyof = ast => Union.unify(_keyof(ast));\nconst STRING_KEYWORD_PATTERN = \"[\\\\s\\\\S]*?\"; // any string, including newlines\nconst NUMBER_KEYWORD_PATTERN = \"[+-]?\\\\d*\\\\.?\\\\d+(?:[Ee][+-]?\\\\d+)?\";\nconst getTemplateLiteralSpanTypePattern = (type, capture) => {\n switch (type._tag) {\n case \"Literal\":\n return regexp.escape(String(type.literal));\n case \"StringKeyword\":\n return STRING_KEYWORD_PATTERN;\n case \"NumberKeyword\":\n return NUMBER_KEYWORD_PATTERN;\n case \"TemplateLiteral\":\n return getTemplateLiteralPattern(type, capture, false);\n case \"Union\":\n return type.types.map(type => getTemplateLiteralSpanTypePattern(type, capture)).join(\"|\");\n }\n};\nconst handleTemplateLiteralSpanTypeParens = (type, s, capture, top) => {\n if (isUnion(type)) {\n if (capture && !top) {\n return `(?:${s})`;\n }\n } else if (!capture || !top) {\n return s;\n }\n return `(${s})`;\n};\nconst getTemplateLiteralPattern = (ast, capture, top) => {\n let pattern = ``;\n if (ast.head !== \"\") {\n const head = regexp.escape(ast.head);\n pattern += capture && top ? `(${head})` : head;\n }\n for (const span of ast.spans) {\n const spanPattern = getTemplateLiteralSpanTypePattern(span.type, capture);\n pattern += handleTemplateLiteralSpanTypeParens(span.type, spanPattern, capture, top);\n if (span.literal !== \"\") {\n const literal = regexp.escape(span.literal);\n pattern += capture && top ? `(${literal})` : literal;\n }\n }\n return pattern;\n};\n/**\n * Generates a regular expression from a `TemplateLiteral` AST node.\n *\n * @see {@link getTemplateLiteralCapturingRegExp} for a variant that captures the pattern.\n *\n * @since 3.10.0\n */\nexport const getTemplateLiteralRegExp = ast => new RegExp(`^${getTemplateLiteralPattern(ast, false, true)}$`);\n/**\n * Generates a regular expression that captures the pattern defined by the given `TemplateLiteral` AST.\n *\n * @see {@link getTemplateLiteralRegExp} for a variant that does not capture the pattern.\n *\n * @since 3.10.0\n */\nexport const getTemplateLiteralCapturingRegExp = ast => new RegExp(`^${getTemplateLiteralPattern(ast, true, true)}$`);\n/**\n * @since 3.10.0\n */\nexport const getPropertySignatures = ast => {\n const annotation = getSurrogateAnnotation(ast);\n if (Option.isSome(annotation)) {\n return getPropertySignatures(annotation.value);\n }\n switch (ast._tag) {\n case \"TypeLiteral\":\n return ast.propertySignatures.slice();\n case \"Suspend\":\n return getPropertySignatures(ast.f());\n case \"Refinement\":\n return getPropertySignatures(ast.from);\n }\n return getPropertyKeys(ast).map(name => getPropertyKeyIndexedAccess(ast, name));\n};\nconst getIndexSignatures = ast => {\n const annotation = getSurrogateAnnotation(ast);\n if (Option.isSome(annotation)) {\n return getIndexSignatures(annotation.value);\n }\n switch (ast._tag) {\n case \"TypeLiteral\":\n return ast.indexSignatures.slice();\n case \"Suspend\":\n return getIndexSignatures(ast.f());\n case \"Refinement\":\n return getIndexSignatures(ast.from);\n }\n return [];\n};\n/** @internal */\nexport const getNumberIndexedAccess = ast => {\n switch (ast._tag) {\n case \"TupleType\":\n {\n let hasOptional = false;\n let out = [];\n for (const e of ast.elements) {\n if (e.isOptional) {\n hasOptional = true;\n }\n out.push(e.type);\n }\n if (hasOptional) {\n out.push(undefinedKeyword);\n }\n out = out.concat(getRestASTs(ast.rest));\n return Union.make(out);\n }\n case \"Refinement\":\n return getNumberIndexedAccess(ast.from);\n case \"Union\":\n return Union.make(ast.types.map(getNumberIndexedAccess));\n case \"Suspend\":\n return getNumberIndexedAccess(ast.f());\n }\n throw new Error(errors_.getASTUnsupportedSchemaErrorMessage(ast));\n};\nconst getTypeLiteralPropertySignature = (ast, name) => {\n // from property signatures...\n const ops = Arr.findFirst(ast.propertySignatures, ps => ps.name === name);\n if (Option.isSome(ops)) {\n return ops.value;\n }\n // from index signatures...\n if (Predicate.isString(name)) {\n let out = undefined;\n for (const is of ast.indexSignatures) {\n const encodedParameter = getEncodedParameter(is.parameter);\n switch (encodedParameter._tag) {\n case \"TemplateLiteral\":\n {\n const regex = getTemplateLiteralRegExp(encodedParameter);\n if (regex.test(name)) {\n return new PropertySignature(name, is.type, false, true);\n }\n break;\n }\n case \"StringKeyword\":\n {\n if (out === undefined) {\n out = new PropertySignature(name, is.type, false, true);\n }\n }\n }\n }\n if (out) {\n return out;\n }\n } else if (Predicate.isSymbol(name)) {\n for (const is of ast.indexSignatures) {\n const encodedParameter = getEncodedParameter(is.parameter);\n if (isSymbolKeyword(encodedParameter)) {\n return new PropertySignature(name, is.type, false, true);\n }\n }\n }\n};\n/** @internal */\nexport const getPropertyKeyIndexedAccess = (ast, name) => {\n const annotation = getSurrogateAnnotation(ast);\n if (Option.isSome(annotation)) {\n return getPropertyKeyIndexedAccess(annotation.value, name);\n }\n switch (ast._tag) {\n case \"TypeLiteral\":\n {\n const ps = getTypeLiteralPropertySignature(ast, name);\n if (ps) {\n return ps;\n }\n break;\n }\n case \"Union\":\n return new PropertySignature(name, Union.make(ast.types.map(ast => getPropertyKeyIndexedAccess(ast, name).type)), false, true);\n case \"Suspend\":\n return getPropertyKeyIndexedAccess(ast.f(), name);\n case \"Refinement\":\n return getPropertyKeyIndexedAccess(ast.from, name);\n }\n throw new Error(errors_.getASTUnsupportedSchemaErrorMessage(ast));\n};\nconst getPropertyKeys = ast => {\n const annotation = getSurrogateAnnotation(ast);\n if (Option.isSome(annotation)) {\n return getPropertyKeys(annotation.value);\n }\n switch (ast._tag) {\n case \"TypeLiteral\":\n return ast.propertySignatures.map(ps => ps.name);\n case \"Union\":\n return ast.types.slice(1).reduce((out, ast) => Arr.intersection(out, getPropertyKeys(ast)), getPropertyKeys(ast.types[0]));\n case \"Suspend\":\n return getPropertyKeys(ast.f());\n case \"Refinement\":\n return getPropertyKeys(ast.from);\n case \"Transformation\":\n return getPropertyKeys(ast.to);\n }\n return [];\n};\n/** @internal */\nexport const record = (key, value) => {\n const propertySignatures = [];\n const indexSignatures = [];\n const go = key => {\n switch (key._tag) {\n case \"NeverKeyword\":\n break;\n case \"StringKeyword\":\n case \"SymbolKeyword\":\n case \"TemplateLiteral\":\n case \"Refinement\":\n indexSignatures.push(new IndexSignature(key, value, true));\n break;\n case \"Literal\":\n if (Predicate.isString(key.literal) || Predicate.isNumber(key.literal)) {\n propertySignatures.push(new PropertySignature(key.literal, value, false, true));\n } else {\n throw new Error(errors_.getASTUnsupportedLiteralErrorMessage(key.literal));\n }\n break;\n case \"Enums\":\n {\n for (const [_, name] of key.enums) {\n propertySignatures.push(new PropertySignature(name, value, false, true));\n }\n break;\n }\n case \"UniqueSymbol\":\n propertySignatures.push(new PropertySignature(key.symbol, value, false, true));\n break;\n case \"Union\":\n key.types.forEach(go);\n break;\n default:\n throw new Error(errors_.getASTUnsupportedKeySchemaErrorMessage(key));\n }\n };\n go(key);\n return {\n propertySignatures,\n indexSignatures\n };\n};\n/**\n * Equivalent at runtime to the built-in TypeScript utility type `Pick`.\n *\n * @since 3.10.0\n */\nexport const pick = (ast, keys) => {\n const annotation = getSurrogateAnnotation(ast);\n if (Option.isSome(annotation)) {\n return pick(annotation.value, keys);\n }\n switch (ast._tag) {\n case \"TypeLiteral\":\n {\n const pss = [];\n const names = {};\n for (const ps of ast.propertySignatures) {\n names[ps.name] = null;\n if (keys.includes(ps.name)) {\n pss.push(ps);\n }\n }\n for (const key of keys) {\n if (!(key in names)) {\n const ps = getTypeLiteralPropertySignature(ast, key);\n if (ps) {\n pss.push(ps);\n }\n }\n }\n return new TypeLiteral(pss, []);\n }\n case \"Union\":\n return new TypeLiteral(keys.map(name => getPropertyKeyIndexedAccess(ast, name)), []);\n case \"Suspend\":\n return pick(ast.f(), keys);\n case \"Refinement\":\n return pick(ast.from, keys);\n case \"Transformation\":\n {\n switch (ast.transformation._tag) {\n case \"ComposeTransformation\":\n return new Transformation(pick(ast.from, keys), pick(ast.to, keys), composeTransformation);\n case \"TypeLiteralTransformation\":\n {\n const ts = [];\n const fromKeys = [];\n for (const k of keys) {\n const t = ast.transformation.propertySignatureTransformations.find(t => t.to === k);\n if (t) {\n ts.push(t);\n fromKeys.push(t.from);\n } else {\n fromKeys.push(k);\n }\n }\n return Arr.isNonEmptyReadonlyArray(ts) ? new Transformation(pick(ast.from, fromKeys), pick(ast.to, keys), new TypeLiteralTransformation(ts)) : pick(ast.from, fromKeys);\n }\n }\n }\n }\n throw new Error(errors_.getASTUnsupportedSchemaErrorMessage(ast));\n};\n/**\n * Equivalent at runtime to the built-in TypeScript utility type `Omit`.\n *\n * @since 3.10.0\n */\nexport const omit = (ast, keys) => {\n let indexSignatures = getIndexSignatures(ast);\n if (indexSignatures.length > 0) {\n if (indexSignatures.some(is => isStringKeyword(getEncodedParameter(is.parameter)))) {\n indexSignatures = indexSignatures.filter(is => !isTemplateLiteral(getEncodedParameter(is.parameter)));\n }\n return new TypeLiteral([], indexSignatures);\n }\n return pick(ast, getPropertyKeys(ast).filter(name => !keys.includes(name)));\n};\n/** @internal */\nexport const orUndefined = ast => Union.make([ast, undefinedKeyword]);\n/**\n * Equivalent at runtime to the built-in TypeScript utility type `Partial`.\n *\n * @since 3.10.0\n */\nexport const partial = (ast, options) => {\n const exact = options?.exact === true;\n switch (ast._tag) {\n case \"TupleType\":\n return new TupleType(ast.elements.map(e => new OptionalType(exact ? e.type : orUndefined(e.type), true)), Arr.match(ast.rest, {\n onEmpty: () => ast.rest,\n onNonEmpty: rest => [new Type(Union.make([...getRestASTs(rest), undefinedKeyword]))]\n }), ast.isReadonly);\n case \"TypeLiteral\":\n return new TypeLiteral(ast.propertySignatures.map(ps => new PropertySignature(ps.name, exact ? ps.type : orUndefined(ps.type), true, ps.isReadonly, ps.annotations)), ast.indexSignatures.map(is => new IndexSignature(is.parameter, orUndefined(is.type), is.isReadonly)));\n case \"Union\":\n return Union.make(ast.types.map(member => partial(member, options)));\n case \"Suspend\":\n return new Suspend(() => partial(ast.f(), options));\n case \"Declaration\":\n case \"Refinement\":\n throw new Error(errors_.getASTUnsupportedSchemaErrorMessage(ast));\n case \"Transformation\":\n {\n if (isTypeLiteralTransformation(ast.transformation) && ast.transformation.propertySignatureTransformations.every(isRenamingPropertySignatureTransformation)) {\n return new Transformation(partial(ast.from, options), partial(ast.to, options), ast.transformation);\n }\n throw new Error(errors_.getASTUnsupportedSchemaErrorMessage(ast));\n }\n }\n return ast;\n};\n/**\n * Equivalent at runtime to the built-in TypeScript utility type `Required`.\n *\n * @since 3.10.0\n */\nexport const required = ast => {\n switch (ast._tag) {\n case \"TupleType\":\n return new TupleType(ast.elements.map(e => new OptionalType(e.type, false)), ast.rest, ast.isReadonly);\n case \"TypeLiteral\":\n return new TypeLiteral(ast.propertySignatures.map(f => new PropertySignature(f.name, f.type, false, f.isReadonly, f.annotations)), ast.indexSignatures);\n case \"Union\":\n return Union.make(ast.types.map(member => required(member)));\n case \"Suspend\":\n return new Suspend(() => required(ast.f()));\n case \"Declaration\":\n case \"Refinement\":\n throw new Error(errors_.getASTUnsupportedSchemaErrorMessage(ast));\n case \"Transformation\":\n {\n if (isTypeLiteralTransformation(ast.transformation) && ast.transformation.propertySignatureTransformations.every(isRenamingPropertySignatureTransformation)) {\n return new Transformation(required(ast.from), required(ast.to), ast.transformation);\n }\n throw new Error(errors_.getASTUnsupportedSchemaErrorMessage(ast));\n }\n }\n return ast;\n};\n/**\n * Creates a new AST with shallow mutability applied to its properties.\n *\n * @since 3.10.0\n */\nexport const mutable = ast => {\n switch (ast._tag) {\n case \"TupleType\":\n return ast.isReadonly === false ? ast : new TupleType(ast.elements, ast.rest, false, ast.annotations);\n case \"TypeLiteral\":\n {\n const propertySignatures = changeMap(ast.propertySignatures, ps => ps.isReadonly === false ? ps : new PropertySignature(ps.name, ps.type, ps.isOptional, false, ps.annotations));\n const indexSignatures = changeMap(ast.indexSignatures, is => is.isReadonly === false ? is : new IndexSignature(is.parameter, is.type, false));\n return propertySignatures === ast.propertySignatures && indexSignatures === ast.indexSignatures ? ast : new TypeLiteral(propertySignatures, indexSignatures, ast.annotations);\n }\n case \"Union\":\n {\n const types = changeMap(ast.types, mutable);\n return types === ast.types ? ast : Union.make(types, ast.annotations);\n }\n case \"Suspend\":\n return new Suspend(() => mutable(ast.f()), ast.annotations);\n case \"Refinement\":\n {\n const from = mutable(ast.from);\n return from === ast.from ? ast : new Refinement(from, ast.filter, ast.annotations);\n }\n case \"Transformation\":\n {\n const from = mutable(ast.from);\n const to = mutable(ast.to);\n return from === ast.from && to === ast.to ? ast : new Transformation(from, to, ast.transformation, ast.annotations);\n }\n }\n return ast;\n};\n/**\n * @since 3.10.0\n */\nexport const getCompiler = match => {\n const compile = (ast, path) => match[ast._tag](ast, compile, path);\n return compile;\n};\n/** @internal */\nexport const pickAnnotations = annotationIds => annotated => {\n let out = undefined;\n for (const id of annotationIds) {\n if (Object.prototype.hasOwnProperty.call(annotated.annotations, id)) {\n if (out === undefined) {\n out = {};\n }\n out[id] = annotated.annotations[id];\n }\n }\n return out;\n};\n/** @internal */\nexport const omitAnnotations = annotationIds => annotated => {\n const out = {\n ...annotated.annotations\n };\n for (const id of annotationIds) {\n delete out[id];\n }\n return out;\n};\nconst preserveTransformationAnnotations = /*#__PURE__*/pickAnnotations([ExamplesAnnotationId, DefaultAnnotationId, JSONSchemaAnnotationId, ArbitraryAnnotationId, PrettyAnnotationId, EquivalenceAnnotationId]);\n/**\n * @since 3.10.0\n */\nexport const typeAST = ast => {\n switch (ast._tag) {\n case \"Declaration\":\n {\n const typeParameters = changeMap(ast.typeParameters, typeAST);\n return typeParameters === ast.typeParameters ? ast : new Declaration(typeParameters, ast.decodeUnknown, ast.encodeUnknown, ast.annotations);\n }\n case \"TupleType\":\n {\n const elements = changeMap(ast.elements, e => {\n const type = typeAST(e.type);\n return type === e.type ? e : new OptionalType(type, e.isOptional);\n });\n const restASTs = getRestASTs(ast.rest);\n const rest = changeMap(restASTs, typeAST);\n return elements === ast.elements && rest === restASTs ? ast : new TupleType(elements, rest.map(type => new Type(type)), ast.isReadonly, ast.annotations);\n }\n case \"TypeLiteral\":\n {\n const propertySignatures = changeMap(ast.propertySignatures, p => {\n const type = typeAST(p.type);\n return type === p.type ? p : new PropertySignature(p.name, type, p.isOptional, p.isReadonly);\n });\n const indexSignatures = changeMap(ast.indexSignatures, is => {\n const type = typeAST(is.type);\n return type === is.type ? is : new IndexSignature(is.parameter, type, is.isReadonly);\n });\n return propertySignatures === ast.propertySignatures && indexSignatures === ast.indexSignatures ? ast : new TypeLiteral(propertySignatures, indexSignatures, ast.annotations);\n }\n case \"Union\":\n {\n const types = changeMap(ast.types, typeAST);\n return types === ast.types ? ast : Union.make(types, ast.annotations);\n }\n case \"Suspend\":\n return new Suspend(() => typeAST(ast.f()), ast.annotations);\n case \"Refinement\":\n {\n const from = typeAST(ast.from);\n return from === ast.from ? ast : new Refinement(from, ast.filter, ast.annotations);\n }\n case \"Transformation\":\n {\n const preserve = preserveTransformationAnnotations(ast);\n return typeAST(preserve !== undefined ? annotations(ast.to, preserve) : ast.to);\n }\n }\n return ast;\n};\nfunction changeMap(as, f) {\n let changed = false;\n const out = Arr.allocate(as.length);\n for (let i = 0; i < as.length; i++) {\n const a = as[i];\n const fa = f(a);\n if (fa !== a) {\n changed = true;\n }\n out[i] = fa;\n }\n return changed ? out : as;\n}\n/**\n * Returns the from part of a transformation if it exists\n *\n * @internal\n */\nexport const getTransformationFrom = ast => {\n switch (ast._tag) {\n case \"Transformation\":\n return ast.from;\n case \"Refinement\":\n return getTransformationFrom(ast.from);\n case \"Suspend\":\n return getTransformationFrom(ast.f());\n }\n};\nconst encodedAST_ = (ast, isBound) => {\n switch (ast._tag) {\n case \"Declaration\":\n {\n const typeParameters = changeMap(ast.typeParameters, ast => encodedAST_(ast, isBound));\n return typeParameters === ast.typeParameters ? ast : new Declaration(typeParameters, ast.decodeUnknown, ast.encodeUnknown);\n }\n case \"TupleType\":\n {\n const elements = changeMap(ast.elements, e => {\n const type = encodedAST_(e.type, isBound);\n return type === e.type ? e : new OptionalType(type, e.isOptional);\n });\n const restASTs = getRestASTs(ast.rest);\n const rest = changeMap(restASTs, ast => encodedAST_(ast, isBound));\n return elements === ast.elements && rest === restASTs ? ast : new TupleType(elements, rest.map(ast => new Type(ast)), ast.isReadonly);\n }\n case \"TypeLiteral\":\n {\n const propertySignatures = changeMap(ast.propertySignatures, ps => {\n const type = encodedAST_(ps.type, isBound);\n return type === ps.type ? ps : new PropertySignature(ps.name, type, ps.isOptional, ps.isReadonly);\n });\n const indexSignatures = changeMap(ast.indexSignatures, is => {\n const type = encodedAST_(is.type, isBound);\n return type === is.type ? is : new IndexSignature(is.parameter, type, is.isReadonly);\n });\n return propertySignatures === ast.propertySignatures && indexSignatures === ast.indexSignatures ? ast : new TypeLiteral(propertySignatures, indexSignatures);\n }\n case \"Union\":\n {\n const types = changeMap(ast.types, ast => encodedAST_(ast, isBound));\n return types === ast.types ? ast : Union.make(types);\n }\n case \"Suspend\":\n {\n let borrowedAnnotations = undefined;\n const identifier = getJSONIdentifier(ast);\n if (Option.isSome(identifier)) {\n const suffix = isBound ? \"Bound\" : \"\";\n borrowedAnnotations = {\n [JSONIdentifierAnnotationId]: `${identifier.value}Encoded${suffix}`\n };\n }\n return new Suspend(() => encodedAST_(ast.f(), isBound), borrowedAnnotations);\n }\n case \"Refinement\":\n {\n const from = encodedAST_(ast.from, isBound);\n if (isBound) {\n if (from === ast.from) return ast;\n if (getTransformationFrom(ast.from) === undefined && hasStableFilter(ast)) {\n return new Refinement(from, ast.filter, ast.annotations);\n }\n return from;\n } else {\n return from;\n }\n }\n case \"Transformation\":\n return encodedAST_(ast.from, isBound);\n }\n return ast;\n};\n/**\n * @since 3.10.0\n */\nexport const encodedAST = ast => encodedAST_(ast, false);\n/**\n * @since 3.10.0\n */\nexport const encodedBoundAST = ast => encodedAST_(ast, true);\nconst toJSONAnnotations = annotations => {\n const out = {};\n for (const k of Object.getOwnPropertySymbols(annotations)) {\n out[String(k)] = annotations[k];\n }\n return out;\n};\n/** @internal */\nexport const getEncodedParameter = ast => {\n switch (ast._tag) {\n case \"StringKeyword\":\n case \"SymbolKeyword\":\n case \"TemplateLiteral\":\n return ast;\n case \"Refinement\":\n return getEncodedParameter(ast.from);\n }\n};\n/** @internal */\nexport const equals = (self, that) => {\n switch (self._tag) {\n case \"Literal\":\n return isLiteral(that) && that.literal === self.literal;\n case \"UniqueSymbol\":\n return isUniqueSymbol(that) && that.symbol === self.symbol;\n case \"UndefinedKeyword\":\n case \"VoidKeyword\":\n case \"NeverKeyword\":\n case \"UnknownKeyword\":\n case \"AnyKeyword\":\n case \"StringKeyword\":\n case \"NumberKeyword\":\n case \"BooleanKeyword\":\n case \"BigIntKeyword\":\n case \"SymbolKeyword\":\n case \"ObjectKeyword\":\n return that._tag === self._tag;\n case \"TemplateLiteral\":\n return isTemplateLiteral(that) && that.head === self.head && equalsTemplateLiteralSpan(that.spans, self.spans);\n case \"Enums\":\n return isEnums(that) && equalsEnums(that.enums, self.enums);\n case \"Union\":\n return isUnion(that) && equalsUnion(self.types, that.types);\n case \"Refinement\":\n case \"TupleType\":\n case \"TypeLiteral\":\n case \"Suspend\":\n case \"Transformation\":\n case \"Declaration\":\n return self === that;\n }\n};\nconst equalsTemplateLiteralSpan = /*#__PURE__*/Arr.getEquivalence((self, that) => {\n return self.literal === that.literal && equals(self.type, that.type);\n});\nconst equalsEnums = /*#__PURE__*/Arr.getEquivalence((self, that) => that[0] === self[0] && that[1] === self[1]);\nconst equalsUnion = /*#__PURE__*/Arr.getEquivalence(equals);\nconst intersection = /*#__PURE__*/Arr.intersectionWith(equals);\nconst _keyof = ast => {\n switch (ast._tag) {\n case \"Declaration\":\n {\n const annotation = getSurrogateAnnotation(ast);\n if (Option.isSome(annotation)) {\n return _keyof(annotation.value);\n }\n break;\n }\n case \"TypeLiteral\":\n return ast.propertySignatures.map(p => Predicate.isSymbol(p.name) ? new UniqueSymbol(p.name) : new Literal(p.name)).concat(ast.indexSignatures.map(is => getEncodedParameter(is.parameter)));\n case \"Suspend\":\n return _keyof(ast.f());\n case \"Union\":\n return ast.types.slice(1).reduce((out, ast) => intersection(out, _keyof(ast)), _keyof(ast.types[0]));\n case \"Transformation\":\n return _keyof(ast.to);\n }\n throw new Error(errors_.getASTUnsupportedSchemaErrorMessage(ast));\n};\n/** @internal */\nexport const compose = (ab, cd) => new Transformation(ab, cd, composeTransformation);\n/** @internal */\nexport const rename = (ast, mapping) => {\n switch (ast._tag) {\n case \"TypeLiteral\":\n {\n const propertySignatureTransformations = [];\n for (const key of Reflect.ownKeys(mapping)) {\n const name = mapping[key];\n if (name !== undefined) {\n propertySignatureTransformations.push(new PropertySignatureTransformation(key, name, identity, identity));\n }\n }\n if (propertySignatureTransformations.length === 0) {\n return ast;\n }\n return new Transformation(ast, new TypeLiteral(ast.propertySignatures.map(ps => {\n const name = mapping[ps.name];\n return new PropertySignature(name === undefined ? ps.name : name, typeAST(ps.type), ps.isOptional, ps.isReadonly, ps.annotations);\n }), ast.indexSignatures), new TypeLiteralTransformation(propertySignatureTransformations));\n }\n case \"Union\":\n return Union.make(ast.types.map(ast => rename(ast, mapping)));\n case \"Suspend\":\n return new Suspend(() => rename(ast.f(), mapping));\n case \"Transformation\":\n return compose(ast, rename(typeAST(ast), mapping));\n }\n throw new Error(errors_.getASTUnsupportedRenameSchemaErrorMessage(ast));\n};\nconst formatKeyword = ast => Option.getOrElse(getExpected(ast), () => ast._tag);\nfunction getBrands(ast) {\n return Option.match(getBrandAnnotation(ast), {\n onNone: () => \"\",\n onSome: brands => brands.map(brand => ` & Brand<${Inspectable.formatUnknown(brand)}>`).join(\"\")\n });\n}\nconst getOrElseExpected = ast => getTitleAnnotation(ast).pipe(Option.orElse(() => getDescriptionAnnotation(ast)), Option.orElse(() => getAutoTitleAnnotation(ast)), Option.map(s => s + getBrands(ast)));\nconst getExpected = ast => Option.orElse(getIdentifierAnnotation(ast), () => getOrElseExpected(ast));\n/** @internal */\nexport const pruneUndefined = (ast, self, onTransformation) => {\n switch (ast._tag) {\n case \"UndefinedKeyword\":\n return neverKeyword;\n case \"Union\":\n {\n const types = [];\n let hasUndefined = false;\n for (const type of ast.types) {\n const pruned = self(type);\n if (pruned) {\n hasUndefined = true;\n if (!isNeverKeyword(pruned)) {\n types.push(pruned);\n }\n } else {\n types.push(type);\n }\n }\n if (hasUndefined) {\n return Union.make(types);\n }\n break;\n }\n case \"Suspend\":\n return self(ast.f());\n case \"Transformation\":\n return onTransformation(ast);\n }\n};\n//# sourceMappingURL=SchemaAST.js.map","import { AbiFunctionNotFoundError, AbiFunctionOutputsNotFoundError, } from '../../errors/abi.js';\nimport { decodeAbiParameters, } from './decodeAbiParameters.js';\nimport { getAbiItem } from './getAbiItem.js';\nconst docsPath = '/docs/contract/decodeFunctionResult';\nexport function decodeFunctionResult(parameters) {\n const { abi, args, functionName, data } = parameters;\n let abiItem = abi[0];\n if (functionName) {\n const item = getAbiItem({ abi, args, name: functionName });\n if (!item)\n throw new AbiFunctionNotFoundError(functionName, { docsPath });\n abiItem = item;\n }\n if (abiItem.type !== 'function')\n throw new AbiFunctionNotFoundError(undefined, { docsPath });\n if (!abiItem.outputs)\n throw new AbiFunctionOutputsNotFoundError(abiItem.name, { docsPath });\n const values = decodeAbiParameters(abiItem.outputs, data);\n if (values && values.length > 1)\n return values;\n if (values && values.length === 1)\n return values[0];\n return undefined;\n}\n//# sourceMappingURL=decodeFunctionResult.js.map","module.exports = require('events').EventEmitter;\n","module.exports = require('./lib')(require('./lib/elliptic'))\n","import { wait } from '../wait.js';\nexport function withRetry(fn, { delay: delay_ = 100, retryCount = 2, shouldRetry = () => true, } = {}) {\n return new Promise((resolve, reject) => {\n const attemptRetry = async ({ count = 0 } = {}) => {\n const retry = async ({ error }) => {\n const delay = typeof delay_ === 'function' ? delay_({ count, error }) : delay_;\n if (delay)\n await wait(delay);\n attemptRetry({ count: count + 1 });\n };\n try {\n const data = await fn();\n resolve(data);\n }\n catch (err) {\n if (count < retryCount &&\n (await shouldRetry({ count, error: err })))\n return retry({ error: err });\n reject(err);\n }\n };\n attemptRetry();\n });\n}\n//# sourceMappingURL=withRetry.js.map","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","import { AbiConstructorNotFoundError, AbiConstructorParamsNotFoundError, } from '../../errors/abi.js';\nimport { concatHex } from '../data/concat.js';\nimport { encodeAbiParameters, } from './encodeAbiParameters.js';\nconst docsPath = '/docs/contract/encodeDeployData';\nexport function encodeDeployData(parameters) {\n const { abi, args, bytecode } = parameters;\n if (!args || args.length === 0)\n return bytecode;\n const description = abi.find((x) => 'type' in x && x.type === 'constructor');\n if (!description)\n throw new AbiConstructorNotFoundError({ docsPath });\n if (!('inputs' in description))\n throw new AbiConstructorParamsNotFoundError({ docsPath });\n if (!description.inputs || description.inputs.length === 0)\n throw new AbiConstructorParamsNotFoundError({ docsPath });\n const data = encodeAbiParameters(description.inputs, args);\n return concatHex([bytecode, data]);\n}\n//# sourceMappingURL=encodeDeployData.js.map","'use strict';\n\nexports.pbkdf2 = require('./lib/async');\nexports.pbkdf2Sync = require('./lib/sync');\n","var inherits = require('inherits');\n\nvar DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n var buf = DEREncoder.prototype.encode.call(this, data);\n\n var p = buf.toString('base64');\n var out = [ '-----BEGIN ' + options.label + '-----' ];\n for (var i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","var indexOf = function (xs, item) {\n if (xs.indexOf) return xs.indexOf(item);\n else for (var i = 0; i < xs.length; i++) {\n if (xs[i] === item) return i;\n }\n return -1;\n};\nvar Object_keys = function (obj) {\n if (Object.keys) return Object.keys(obj)\n else {\n var res = [];\n for (var key in obj) res.push(key)\n return res;\n }\n};\n\nvar forEach = function (xs, fn) {\n if (xs.forEach) return xs.forEach(fn)\n else for (var i = 0; i < xs.length; i++) {\n fn(xs[i], i, xs);\n }\n};\n\nvar defineProp = (function() {\n try {\n Object.defineProperty({}, '_', {});\n return function(obj, name, value) {\n Object.defineProperty(obj, name, {\n writable: true,\n enumerable: false,\n configurable: true,\n value: value\n })\n };\n } catch(e) {\n return function(obj, name, value) {\n obj[name] = value;\n };\n }\n}());\n\nvar globals = ['Array', 'Boolean', 'Date', 'Error', 'EvalError', 'Function',\n'Infinity', 'JSON', 'Math', 'NaN', 'Number', 'Object', 'RangeError',\n'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError',\n'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape',\n'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'undefined', 'unescape'];\n\nfunction Context() {}\nContext.prototype = {};\n\nvar Script = exports.Script = function NodeScript (code) {\n if (!(this instanceof Script)) return new Script(code);\n this.code = code;\n};\n\nScript.prototype.runInContext = function (context) {\n if (!(context instanceof Context)) {\n throw new TypeError(\"needs a 'context' argument.\");\n }\n \n var iframe = document.createElement('iframe');\n if (!iframe.style) iframe.style = {};\n iframe.style.display = 'none';\n \n document.body.appendChild(iframe);\n \n var win = iframe.contentWindow;\n var wEval = win.eval, wExecScript = win.execScript;\n\n if (!wEval && wExecScript) {\n // win.eval() magically appears when this is called in IE:\n wExecScript.call(win, 'null');\n wEval = win.eval;\n }\n \n forEach(Object_keys(context), function (key) {\n win[key] = context[key];\n });\n forEach(globals, function (key) {\n if (context[key]) {\n win[key] = context[key];\n }\n });\n \n var winKeys = Object_keys(win);\n\n var res = wEval.call(win, this.code);\n \n forEach(Object_keys(win), function (key) {\n // Avoid copying circular objects like `top` and `window` by only\n // updating existing context properties or new properties in the `win`\n // that was only introduced after the eval.\n if (key in context || indexOf(winKeys, key) === -1) {\n context[key] = win[key];\n }\n });\n\n forEach(globals, function (key) {\n if (!(key in context)) {\n defineProp(context, key, win[key]);\n }\n });\n \n document.body.removeChild(iframe);\n \n return res;\n};\n\nScript.prototype.runInThisContext = function () {\n return eval(this.code); // maybe...\n};\n\nScript.prototype.runInNewContext = function (context) {\n var ctx = Script.createContext(context);\n var res = this.runInContext(ctx);\n\n if (context) {\n forEach(Object_keys(ctx), function (key) {\n context[key] = ctx[key];\n });\n }\n\n return res;\n};\n\nforEach(Object_keys(Script.prototype), function (name) {\n exports[name] = Script[name] = function (code) {\n var s = Script(code);\n return s[name].apply(s, [].slice.call(arguments, 1));\n };\n});\n\nexports.isContext = function (context) {\n return context instanceof Context;\n};\n\nexports.createScript = function (code) {\n return exports.Script(code);\n};\n\nexports.createContext = Script.createContext = function (context) {\n var copy = new Context();\n if(typeof context === 'object') {\n forEach(Object_keys(context), function (key) {\n copy[key] = context[key];\n });\n }\n return copy;\n};\n","import { stringify } from '../utils/stringify.js';\nimport { BaseError } from './base.js';\nimport { getUrl } from './utils.js';\nexport class OffchainLookupError extends BaseError {\n constructor({ callbackSelector, cause, data, extraData, sender, urls, }) {\n super(cause.shortMessage ||\n 'An error occurred while fetching for an offchain result.', {\n cause,\n metaMessages: [\n ...(cause.metaMessages || []),\n cause.metaMessages?.length ? '' : [],\n 'Offchain Gateway Call:',\n urls && [\n ' Gateway URL(s):',\n ...urls.map((url) => ` ${getUrl(url)}`),\n ],\n ` Sender: ${sender}`,\n ` Data: ${data}`,\n ` Callback selector: ${callbackSelector}`,\n ` Extra data: ${extraData}`,\n ].flat(),\n name: 'OffchainLookupError',\n });\n }\n}\nexport class OffchainLookupResponseMalformedError extends BaseError {\n constructor({ result, url }) {\n super('Offchain gateway response is malformed. Response data must be a hex value.', {\n metaMessages: [\n `Gateway URL: ${getUrl(url)}`,\n `Response: ${stringify(result)}`,\n ],\n name: 'OffchainLookupResponseMalformedError',\n });\n }\n}\nexport class OffchainLookupSenderMismatchError extends BaseError {\n constructor({ sender, to }) {\n super('Reverted sender address does not match target contract address (`to`).', {\n metaMessages: [\n `Contract address: ${to}`,\n `OffchainLookup sender address: ${sender}`,\n ],\n name: 'OffchainLookupSenderMismatchError',\n });\n }\n}\n//# sourceMappingURL=ccip.js.map","import { call } from '../actions/public/call.js';\nimport { OffchainLookupError, OffchainLookupResponseMalformedError, OffchainLookupSenderMismatchError, } from '../errors/ccip.js';\nimport { HttpRequestError, } from '../errors/request.js';\nimport { decodeErrorResult } from './abi/decodeErrorResult.js';\nimport { encodeAbiParameters } from './abi/encodeAbiParameters.js';\nimport { isAddressEqual } from './address/isAddressEqual.js';\nimport { concat } from './data/concat.js';\nimport { isHex } from './data/isHex.js';\nimport { localBatchGatewayRequest, localBatchGatewayUrl, } from './ens/localBatchGatewayRequest.js';\nimport { stringify } from './stringify.js';\nexport const offchainLookupSignature = '0x556f1830';\nexport const offchainLookupAbiItem = {\n name: 'OffchainLookup',\n type: 'error',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'urls',\n type: 'string[]',\n },\n {\n name: 'callData',\n type: 'bytes',\n },\n {\n name: 'callbackFunction',\n type: 'bytes4',\n },\n {\n name: 'extraData',\n type: 'bytes',\n },\n ],\n};\nexport async function offchainLookup(client, { blockNumber, blockTag, data, to, }) {\n const { args } = decodeErrorResult({\n data,\n abi: [offchainLookupAbiItem],\n });\n const [sender, urls, callData, callbackSelector, extraData] = args;\n const { ccipRead } = client;\n const ccipRequest_ = ccipRead && typeof ccipRead?.request === 'function'\n ? ccipRead.request\n : ccipRequest;\n try {\n if (!isAddressEqual(to, sender))\n throw new OffchainLookupSenderMismatchError({ sender, to });\n const result = urls.includes(localBatchGatewayUrl)\n ? await localBatchGatewayRequest({\n data: callData,\n ccipRequest: ccipRequest_,\n })\n : await ccipRequest_({ data: callData, sender, urls });\n const { data: data_ } = await call(client, {\n blockNumber,\n blockTag,\n data: concat([\n callbackSelector,\n encodeAbiParameters([{ type: 'bytes' }, { type: 'bytes' }], [result, extraData]),\n ]),\n to,\n });\n return data_;\n }\n catch (err) {\n throw new OffchainLookupError({\n callbackSelector,\n cause: err,\n data,\n extraData,\n sender,\n urls,\n });\n }\n}\nexport async function ccipRequest({ data, sender, urls, }) {\n let error = new Error('An unknown error occurred.');\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n const method = url.includes('{data}') ? 'GET' : 'POST';\n const body = method === 'POST' ? { data, sender } : undefined;\n const headers = method === 'POST' ? { 'Content-Type': 'application/json' } : {};\n try {\n const response = await fetch(url.replace('{sender}', sender.toLowerCase()).replace('{data}', data), {\n body: JSON.stringify(body),\n headers,\n method,\n });\n let result;\n if (response.headers.get('Content-Type')?.startsWith('application/json')) {\n result = (await response.json()).data;\n }\n else {\n result = (await response.text());\n }\n if (!response.ok) {\n error = new HttpRequestError({\n body,\n details: result?.error\n ? stringify(result.error)\n : response.statusText,\n headers: response.headers,\n status: response.status,\n url,\n });\n continue;\n }\n if (!isHex(result)) {\n error = new OffchainLookupResponseMalformedError({\n result,\n url,\n });\n continue;\n }\n return result;\n }\n catch (err) {\n error = new HttpRequestError({\n body,\n details: err.message,\n url,\n });\n }\n }\n throw error;\n}\n//# sourceMappingURL=ccip.js.map","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","import { getVersion } from './internal/errors.js';\n/**\n * Base error class inherited by all errors thrown by ox.\n *\n * @example\n * ```ts\n * import { Errors } from 'ox'\n * throw new Errors.BaseError('An error occurred')\n * ```\n */\nexport class BaseError extends Error {\n static setStaticOptions(options) {\n BaseError.prototype.docsOrigin = options.docsOrigin;\n BaseError.prototype.showVersion = options.showVersion;\n BaseError.prototype.version = options.version;\n }\n constructor(shortMessage, options = {}) {\n const details = (() => {\n if (options.cause instanceof BaseError) {\n if (options.cause.details)\n return options.cause.details;\n if (options.cause.shortMessage)\n return options.cause.shortMessage;\n }\n if (options.cause &&\n 'details' in options.cause &&\n typeof options.cause.details === 'string')\n return options.cause.details;\n if (options.cause?.message)\n return options.cause.message;\n return options.details;\n })();\n const docsPath = (() => {\n if (options.cause instanceof BaseError)\n return options.cause.docsPath || options.docsPath;\n return options.docsPath;\n })();\n const docsBaseUrl = options.docsOrigin ?? BaseError.prototype.docsOrigin;\n const docs = `${docsBaseUrl}${docsPath ?? ''}`;\n const showVersion = Boolean(options.version ?? BaseError.prototype.showVersion);\n const version = options.version ?? BaseError.prototype.version;\n const message = [\n shortMessage || 'An error occurred.',\n ...(options.metaMessages ? ['', ...options.metaMessages] : []),\n ...(details || docsPath || showVersion\n ? [\n '',\n details ? `Details: ${details}` : undefined,\n docsPath ? `See: ${docs}` : undefined,\n showVersion ? `Version: ${version}` : undefined,\n ]\n : []),\n ]\n .filter((x) => typeof x === 'string')\n .join('\\n');\n super(message, options.cause ? { cause: options.cause } : undefined);\n Object.defineProperty(this, \"details\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"docs\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"docsOrigin\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"docsPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"shortMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"showVersion\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"cause\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'BaseError'\n });\n this.cause = options.cause;\n this.details = details;\n this.docs = docs;\n this.docsOrigin = docsBaseUrl;\n this.docsPath = docsPath;\n this.shortMessage = shortMessage;\n this.showVersion = showVersion;\n this.version = version;\n }\n walk(fn) {\n return walk(this, fn);\n }\n}\nObject.defineProperty(BaseError, \"defaultStaticOptions\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n docsOrigin: 'https://oxlib.sh',\n showVersion: false,\n version: `ox@${getVersion()}`,\n }\n});\n(() => {\n BaseError.setStaticOptions(BaseError.defaultStaticOptions);\n})();\n/** @internal */\nfunction walk(err, fn) {\n if (fn?.(err))\n return err;\n if (err && typeof err === 'object' && 'cause' in err && err.cause)\n return walk(err.cause, fn);\n return fn ? null : err;\n}\n//# sourceMappingURL=Errors.js.map","import * as Equal from \"../Equal.js\";\nimport * as Hash from \"../Hash.js\";\nimport { StructuralPrototype } from \"./effectable.js\";\n/** @internal */\nexport const ArrayProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(Array.prototype), {\n [Hash.symbol]() {\n return Hash.cached(this, Hash.array(this));\n },\n [Equal.symbol](that) {\n if (Array.isArray(that) && this.length === that.length) {\n return this.every((v, i) => Equal.equals(v, that[i]));\n } else {\n return false;\n }\n }\n});\n/** @internal */\nexport const Structural = /*#__PURE__*/function () {\n function Structural(args) {\n if (args) {\n Object.assign(this, args);\n }\n }\n Structural.prototype = StructuralPrototype;\n return Structural;\n}();\n/** @internal */\nexport const struct = as => Object.assign(Object.create(StructuralPrototype), as);\n//# sourceMappingURL=data.js.map","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar createHmac = require('create-hmac');\nvar crt = require('browserify-rsa');\nvar EC = require('elliptic').ec;\nvar BN = require('bn.js');\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nvar RSA_PKCS1_PADDING = 1;\n\nfunction sign(hash, key, hashType, signType, tag) {\n var priv = parseKeys(key);\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n return ecSign(hash, priv);\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong private key type'); }\n return dsaSign(hash, priv, hashType);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n if (key.padding !== undefined && key.padding !== RSA_PKCS1_PADDING) { throw new Error('illegal or unsupported padding mode'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = priv.modulus.byteLength();\n var pad = [0, 1];\n while (hash.length + pad.length + 1 < len) { pad.push(0xff); }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) { pad.push(hash[i]); }\n\n var out = crt(pad, priv);\n return out;\n}\n\nfunction ecSign(hash, priv) {\n var curveId = curves[priv.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + priv.curve.join('.')); }\n\n var curve = new EC(curveId);\n var key = curve.keyFromPrivate(priv.privateKey);\n var out = key.sign(hash);\n\n return Buffer.from(out.toDER());\n}\n\nfunction dsaSign(hash, priv, algo) {\n var x = priv.params.priv_key;\n var p = priv.params.p;\n var q = priv.params.q;\n var g = priv.params.g;\n var r = new BN(0);\n var k;\n var H = bits2int(hash, q).mod(q);\n var s = false;\n var kv = getKey(x, q, hash, algo);\n while (s === false) {\n k = makeKey(q, kv, algo);\n r = makeR(g, k, p, q);\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q);\n if (s.cmpn(0) === 0) {\n s = false;\n r = new BN(0);\n }\n }\n return toDER(r, s);\n}\n\nfunction toDER(r, s) {\n r = r.toArray();\n s = s.toArray();\n\n // Pad values\n if (r[0] & 0x80) { r = [0].concat(r); }\n if (s[0] & 0x80) { s = [0].concat(s); }\n\n var total = r.length + s.length + 4;\n var res = [\n 0x30, total, 0x02, r.length\n ];\n res = res.concat(r, [0x02, s.length], s);\n return Buffer.from(res);\n}\n\nfunction getKey(x, q, hash, algo) {\n x = Buffer.from(x.toArray());\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length);\n x = Buffer.concat([zeros, x]);\n }\n var hlen = hash.length;\n var hbits = bits2octets(hash, q);\n var v = Buffer.alloc(hlen);\n v.fill(1);\n var k = Buffer.alloc(hlen);\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n return { k: k, v: v };\n}\n\nfunction bits2int(obits, q) {\n var bits = new BN(obits);\n var shift = (obits.length << 3) - q.bitLength();\n if (shift > 0) { bits.ishrn(shift); }\n return bits;\n}\n\nfunction bits2octets(bits, q) {\n bits = bits2int(bits, q);\n bits = bits.mod(q);\n var out = Buffer.from(bits.toArray());\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length);\n out = Buffer.concat([zeros, out]);\n }\n return out;\n}\n\nfunction makeKey(q, kv, algo) {\n var t;\n var k;\n\n do {\n t = Buffer.alloc(0);\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n t = Buffer.concat([t, kv.v]);\n }\n\n k = bits2int(t, q);\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest();\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n } while (k.cmp(q) !== -1);\n\n return k;\n}\n\nfunction makeR(g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q);\n}\n\nmodule.exports = sign;\nmodule.exports.getKey = getKey;\nmodule.exports.makeKey = makeKey;\n","/**\n * @since 2.0.0\n */\nimport * as internal from \"./internal/logSpan.js\";\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const make = internal.make;\n/**\n * @since 2.0.0\n * @category destructors\n */\nexport const render = internal.render;\n//# sourceMappingURL=LogSpan.js.map","import * as defaultServices from \"./internal/defaultServices.js\";\nimport * as internal from \"./internal/tracer.js\";\n/**\n * @since 2.0.0\n */\nexport const TracerTypeId = internal.TracerTypeId;\n/**\n * @since 2.0.0\n * @category tags\n */\nexport const ParentSpan = internal.spanTag;\n/**\n * @since 2.0.0\n * @category tags\n */\nexport const Tracer = internal.tracerTag;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const make = internal.make;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const externalSpan = internal.externalSpan;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const tracerWith = defaultServices.tracerWith;\n/**\n * @since 3.12.0\n * @category annotations\n */\nexport const DisablePropagation = internal.DisablePropagation;\n//# sourceMappingURL=Tracer.js.map","import { dual } from \"../Function.js\";\n/** @internal */\nexport const let_ = map => dual(3, (self, name, f) => map(self, a => ({\n ...a,\n [name]: f(a)\n})));\n/** @internal */\nexport const bindTo = map => dual(2, (self, name) => map(self, a => ({\n [name]: a\n})));\n/** @internal */\nexport const bind = (map, flatMap) => dual(3, (self, name, f) => flatMap(self, a => map(f(a), b => ({\n ...a,\n [name]: b\n}))));\n//# sourceMappingURL=doNotation.js.map","import * as Arr from \"../Array.js\";\nimport * as Chunk from \"../Chunk.js\";\nimport * as Clock from \"../Clock.js\";\nimport * as Context from \"../Context.js\";\nimport * as Duration from \"../Duration.js\";\nimport * as FiberRefs from \"../FiberRefs.js\";\nimport { constFalse, constTrue, constVoid, dual, identity, pipe } from \"../Function.js\";\nimport * as HashMap from \"../HashMap.js\";\nimport * as HashSet from \"../HashSet.js\";\nimport * as List from \"../List.js\";\nimport * as LogLevel from \"../LogLevel.js\";\nimport * as LogSpan from \"../LogSpan.js\";\nimport * as Option from \"../Option.js\";\nimport * as Predicate from \"../Predicate.js\";\nimport * as Ref from \"../Ref.js\";\nimport * as Tracer from \"../Tracer.js\";\nimport { internalCall } from \"../Utils.js\";\nimport * as internalCause from \"./cause.js\";\nimport { clockTag } from \"./clock.js\";\nimport * as core from \"./core.js\";\nimport * as defaultServices from \"./defaultServices.js\";\nimport * as doNotation from \"./doNotation.js\";\nimport * as fiberRefsPatch from \"./fiberRefs/patch.js\";\nimport * as metricLabel from \"./metric/label.js\";\nimport * as runtimeFlags from \"./runtimeFlags.js\";\nimport * as internalTracer from \"./tracer.js\";\n/* @internal */\nexport const annotateLogs = /*#__PURE__*/dual(args => core.isEffect(args[0]), function () {\n const args = arguments;\n return core.fiberRefLocallyWith(args[0], core.currentLogAnnotations, typeof args[1] === \"string\" ? HashMap.set(args[1], args[2]) : annotations => Object.entries(args[1]).reduce((acc, [key, value]) => HashMap.set(acc, key, value), annotations));\n});\n/* @internal */\nexport const asSome = self => core.map(self, Option.some);\n/* @internal */\nexport const asSomeError = self => core.mapError(self, Option.some);\n/* @internal */\nexport const try_ = arg => {\n let evaluate;\n let onFailure = undefined;\n if (typeof arg === \"function\") {\n evaluate = arg;\n } else {\n evaluate = arg.try;\n onFailure = arg.catch;\n }\n return core.suspend(() => {\n try {\n return core.succeed(internalCall(evaluate));\n } catch (error) {\n return core.fail(onFailure ? internalCall(() => onFailure(error)) : new core.UnknownException(error, \"An unknown error occurred in Effect.try\"));\n }\n });\n};\n/* @internal */\nexport const _catch = /*#__PURE__*/dual(3, (self, tag, options) => core.catchAll(self, e => {\n if (Predicate.hasProperty(e, tag) && e[tag] === options.failure) {\n return options.onFailure(e);\n }\n return core.fail(e);\n}));\n/* @internal */\nexport const catchAllDefect = /*#__PURE__*/dual(2, (self, f) => core.catchAllCause(self, cause => {\n const option = internalCause.find(cause, _ => internalCause.isDieType(_) ? Option.some(_) : Option.none());\n switch (option._tag) {\n case \"None\":\n {\n return core.failCause(cause);\n }\n case \"Some\":\n {\n return f(option.value.defect);\n }\n }\n}));\n/* @internal */\nexport const catchSomeCause = /*#__PURE__*/dual(2, (self, f) => core.matchCauseEffect(self, {\n onFailure: cause => {\n const option = f(cause);\n switch (option._tag) {\n case \"None\":\n {\n return core.failCause(cause);\n }\n case \"Some\":\n {\n return option.value;\n }\n }\n },\n onSuccess: core.succeed\n}));\n/* @internal */\nexport const catchSomeDefect = /*#__PURE__*/dual(2, (self, pf) => core.catchAllCause(self, cause => {\n const option = internalCause.find(cause, _ => internalCause.isDieType(_) ? Option.some(_) : Option.none());\n switch (option._tag) {\n case \"None\":\n {\n return core.failCause(cause);\n }\n case \"Some\":\n {\n const optionEffect = pf(option.value.defect);\n return optionEffect._tag === \"Some\" ? optionEffect.value : core.failCause(cause);\n }\n }\n}));\n/* @internal */\nexport const catchTag = /*#__PURE__*/dual(args => core.isEffect(args[0]), (self, ...args) => {\n const f = args[args.length - 1];\n let predicate;\n if (args.length === 2) {\n predicate = Predicate.isTagged(args[0]);\n } else {\n predicate = e => {\n const tag = Predicate.hasProperty(e, \"_tag\") ? e[\"_tag\"] : undefined;\n if (!tag) return false;\n for (let i = 0; i < args.length - 1; i++) {\n if (args[i] === tag) return true;\n }\n return false;\n };\n }\n return core.catchIf(self, predicate, f);\n});\n/** @internal */\nexport const catchTags = /*#__PURE__*/dual(2, (self, cases) => {\n let keys;\n return core.catchIf(self, e => {\n keys ??= Object.keys(cases);\n return Predicate.hasProperty(e, \"_tag\") && Predicate.isString(e[\"_tag\"]) && keys.includes(e[\"_tag\"]);\n }, e => cases[e[\"_tag\"]](e));\n});\n/* @internal */\nexport const cause = self => core.matchCause(self, {\n onFailure: identity,\n onSuccess: () => internalCause.empty\n});\n/* @internal */\nexport const clockWith = Clock.clockWith;\n/* @internal */\nexport const clock = /*#__PURE__*/clockWith(core.succeed);\n/* @internal */\nexport const delay = /*#__PURE__*/dual(2, (self, duration) => core.zipRight(Clock.sleep(duration), self));\n/* @internal */\nexport const descriptorWith = f => core.withFiberRuntime((state, status) => f({\n id: state.id(),\n status,\n interruptors: internalCause.interruptors(state.getFiberRef(core.currentInterruptedCause))\n}));\n/* @internal */\nexport const allowInterrupt = /*#__PURE__*/descriptorWith(descriptor => HashSet.size(descriptor.interruptors) > 0 ? core.interrupt : core.void);\n/* @internal */\nexport const descriptor = /*#__PURE__*/descriptorWith(core.succeed);\n/* @internal */\nexport const diffFiberRefs = self => summarized(self, fiberRefs, fiberRefsPatch.diff);\n/* @internal */\nexport const diffFiberRefsAndRuntimeFlags = self => summarized(self, core.zip(fiberRefs, core.runtimeFlags), ([refs, flags], [refsNew, flagsNew]) => [fiberRefsPatch.diff(refs, refsNew), runtimeFlags.diff(flags, flagsNew)]);\n/* @internal */\nexport const Do = /*#__PURE__*/core.succeed({});\n/* @internal */\nexport const bind = /*#__PURE__*/doNotation.bind(core.map, core.flatMap);\n/* @internal */\nexport const bindTo = /*#__PURE__*/doNotation.bindTo(core.map);\n/* @internal */\nexport const let_ = /*#__PURE__*/doNotation.let_(core.map);\n/* @internal */\nexport const dropUntil = /*#__PURE__*/dual(2, (elements, predicate) => core.suspend(() => {\n const iterator = elements[Symbol.iterator]();\n const builder = [];\n let next;\n let dropping = core.succeed(false);\n let i = 0;\n while ((next = iterator.next()) && !next.done) {\n const a = next.value;\n const index = i++;\n dropping = core.flatMap(dropping, bool => {\n if (bool) {\n builder.push(a);\n return core.succeed(true);\n }\n return predicate(a, index);\n });\n }\n return core.map(dropping, () => builder);\n}));\n/* @internal */\nexport const dropWhile = /*#__PURE__*/dual(2, (elements, predicate) => core.suspend(() => {\n const iterator = elements[Symbol.iterator]();\n const builder = [];\n let next;\n let dropping = core.succeed(true);\n let i = 0;\n while ((next = iterator.next()) && !next.done) {\n const a = next.value;\n const index = i++;\n dropping = core.flatMap(dropping, d => core.map(d ? predicate(a, index) : core.succeed(false), b => {\n if (!b) {\n builder.push(a);\n }\n return b;\n }));\n }\n return core.map(dropping, () => builder);\n}));\n/* @internal */\nexport const contextWith = f => core.map(core.context(), f);\n/* @internal */\nexport const eventually = self => core.orElse(self, () => core.flatMap(core.yieldNow(), () => eventually(self)));\n/* @internal */\nexport const filterMap = /*#__PURE__*/dual(2, (elements, pf) => core.map(core.forEachSequential(elements, identity), Arr.filterMap(pf)));\n/* @internal */\nexport const filterOrDie = /*#__PURE__*/dual(3, (self, predicate, orDieWith) => filterOrElse(self, predicate, a => core.dieSync(() => orDieWith(a))));\n/* @internal */\nexport const filterOrDieMessage = /*#__PURE__*/dual(3, (self, predicate, message) => filterOrElse(self, predicate, () => core.dieMessage(message)));\n/* @internal */\nexport const filterOrElse = /*#__PURE__*/dual(3, (self, predicate, orElse) => core.flatMap(self, a => predicate(a) ? core.succeed(a) : orElse(a)));\n/** @internal */\nexport const liftPredicate = /*#__PURE__*/dual(3, (self, predicate, orFailWith) => core.suspend(() => predicate(self) ? core.succeed(self) : core.fail(orFailWith(self))));\n/* @internal */\nexport const filterOrFail = /*#__PURE__*/dual(args => core.isEffect(args[0]), (self, predicate, orFailWith) => filterOrElse(self, predicate, a => orFailWith === undefined ? core.fail(new core.NoSuchElementException()) : core.failSync(() => orFailWith(a))));\n/* @internal */\nexport const findFirst = /*#__PURE__*/dual(2, (elements, predicate) => core.suspend(() => {\n const iterator = elements[Symbol.iterator]();\n const next = iterator.next();\n if (!next.done) {\n return findLoop(iterator, 0, predicate, next.value);\n }\n return core.succeed(Option.none());\n}));\nconst findLoop = (iterator, index, f, value) => core.flatMap(f(value, index), result => {\n if (result) {\n return core.succeed(Option.some(value));\n }\n const next = iterator.next();\n if (!next.done) {\n return findLoop(iterator, index + 1, f, next.value);\n }\n return core.succeed(Option.none());\n});\n/* @internal */\nexport const firstSuccessOf = effects => core.suspend(() => {\n const list = Chunk.fromIterable(effects);\n if (!Chunk.isNonEmpty(list)) {\n return core.dieSync(() => new core.IllegalArgumentException(`Received an empty collection of effects`));\n }\n return pipe(Chunk.tailNonEmpty(list), Arr.reduce(Chunk.headNonEmpty(list), (left, right) => core.orElse(left, () => right)));\n});\n/* @internal */\nexport const flipWith = /*#__PURE__*/dual(2, (self, f) => core.flip(f(core.flip(self))));\n/* @internal */\nexport const match = /*#__PURE__*/dual(2, (self, options) => core.matchEffect(self, {\n onFailure: e => core.succeed(options.onFailure(e)),\n onSuccess: a => core.succeed(options.onSuccess(a))\n}));\n/* @internal */\nexport const every = /*#__PURE__*/dual(2, (elements, predicate) => core.suspend(() => forAllLoop(elements[Symbol.iterator](), 0, predicate)));\nconst forAllLoop = (iterator, index, f) => {\n const next = iterator.next();\n return next.done ? core.succeed(true) : core.flatMap(f(next.value, index), b => b ? forAllLoop(iterator, index + 1, f) : core.succeed(b));\n};\n/* @internal */\nexport const forever = self => {\n const loop = core.flatMap(core.flatMap(self, () => core.yieldNow()), () => loop);\n return loop;\n};\n/* @internal */\nexport const fiberRefs = /*#__PURE__*/core.withFiberRuntime(state => core.succeed(state.getFiberRefs()));\n/* @internal */\nexport const head = self => core.flatMap(self, as => {\n const iterator = as[Symbol.iterator]();\n const next = iterator.next();\n if (next.done) {\n return core.fail(new core.NoSuchElementException());\n }\n return core.succeed(next.value);\n});\n/* @internal */\nexport const ignore = self => match(self, {\n onFailure: constVoid,\n onSuccess: constVoid\n});\n/* @internal */\nexport const ignoreLogged = self => core.matchCauseEffect(self, {\n onFailure: cause => logDebug(cause, \"An error was silently ignored because it is not anticipated to be useful\"),\n onSuccess: () => core.void\n});\n/* @internal */\nexport const inheritFiberRefs = childFiberRefs => updateFiberRefs((parentFiberId, parentFiberRefs) => FiberRefs.joinAs(parentFiberRefs, parentFiberId, childFiberRefs));\n/* @internal */\nexport const isFailure = self => match(self, {\n onFailure: constTrue,\n onSuccess: constFalse\n});\n/* @internal */\nexport const isSuccess = self => match(self, {\n onFailure: constFalse,\n onSuccess: constTrue\n});\n/* @internal */\nexport const iterate = (initial, options) => core.suspend(() => {\n if (options.while(initial)) {\n return core.flatMap(options.body(initial), z2 => iterate(z2, options));\n }\n return core.succeed(initial);\n});\n/** @internal */\nexport const logWithLevel = level => (...message) => {\n const levelOption = Option.fromNullable(level);\n let cause = undefined;\n for (let i = 0, len = message.length; i < len; i++) {\n const msg = message[i];\n if (internalCause.isCause(msg)) {\n if (cause !== undefined) {\n cause = internalCause.sequential(cause, msg);\n } else {\n cause = msg;\n }\n message = [...message.slice(0, i), ...message.slice(i + 1)];\n i--;\n }\n }\n if (cause === undefined) {\n cause = internalCause.empty;\n }\n return core.withFiberRuntime(fiberState => {\n fiberState.log(message, cause, levelOption);\n return core.void;\n });\n};\n/** @internal */\nexport const log = /*#__PURE__*/logWithLevel();\n/** @internal */\nexport const logTrace = /*#__PURE__*/logWithLevel(LogLevel.Trace);\n/** @internal */\nexport const logDebug = /*#__PURE__*/logWithLevel(LogLevel.Debug);\n/** @internal */\nexport const logInfo = /*#__PURE__*/logWithLevel(LogLevel.Info);\n/** @internal */\nexport const logWarning = /*#__PURE__*/logWithLevel(LogLevel.Warning);\n/** @internal */\nexport const logError = /*#__PURE__*/logWithLevel(LogLevel.Error);\n/** @internal */\nexport const logFatal = /*#__PURE__*/logWithLevel(LogLevel.Fatal);\n/* @internal */\nexport const withLogSpan = /*#__PURE__*/dual(2, (effect, label) => core.flatMap(Clock.currentTimeMillis, now => core.fiberRefLocallyWith(effect, core.currentLogSpan, List.prepend(LogSpan.make(label, now)))));\n/* @internal */\nexport const logAnnotations = /*#__PURE__*/core.fiberRefGet(core.currentLogAnnotations);\n/* @internal */\nexport const loop = (initial, options) => options.discard ? loopDiscard(initial, options.while, options.step, options.body) : core.map(loopInternal(initial, options.while, options.step, options.body), Arr.fromIterable);\nconst loopInternal = (initial, cont, inc, body) => core.suspend(() => cont(initial) ? core.flatMap(body(initial), a => core.map(loopInternal(inc(initial), cont, inc, body), List.prepend(a))) : core.sync(() => List.empty()));\nconst loopDiscard = (initial, cont, inc, body) => core.suspend(() => cont(initial) ? core.flatMap(body(initial), () => loopDiscard(inc(initial), cont, inc, body)) : core.void);\n/* @internal */\nexport const mapAccum = /*#__PURE__*/dual(3, (elements, initial, f) => core.suspend(() => {\n const iterator = elements[Symbol.iterator]();\n const builder = [];\n let result = core.succeed(initial);\n let next;\n let i = 0;\n while (!(next = iterator.next()).done) {\n const index = i++;\n const value = next.value;\n result = core.flatMap(result, state => core.map(f(state, value, index), ([z, b]) => {\n builder.push(b);\n return z;\n }));\n }\n return core.map(result, z => [z, builder]);\n}));\n/* @internal */\nexport const mapErrorCause = /*#__PURE__*/dual(2, (self, f) => core.matchCauseEffect(self, {\n onFailure: c => core.failCauseSync(() => f(c)),\n onSuccess: core.succeed\n}));\n/* @internal */\nexport const memoize = self => pipe(core.deferredMake(), core.flatMap(deferred => pipe(diffFiberRefsAndRuntimeFlags(self), core.intoDeferred(deferred), once, core.map(complete => core.zipRight(complete, pipe(core.deferredAwait(deferred), core.flatMap(([patch, a]) => core.as(core.zip(patchFiberRefs(patch[0]), core.updateRuntimeFlags(patch[1])), a))))))));\n/* @internal */\nexport const merge = self => core.matchEffect(self, {\n onFailure: e => core.succeed(e),\n onSuccess: core.succeed\n});\n/* @internal */\nexport const negate = self => core.map(self, b => !b);\n/* @internal */\nexport const none = self => core.flatMap(self, option => {\n switch (option._tag) {\n case \"None\":\n return core.void;\n case \"Some\":\n return core.fail(new core.NoSuchElementException());\n }\n});\n/* @internal */\nexport const once = self => core.map(Ref.make(true), ref => core.asVoid(core.whenEffect(self, Ref.getAndSet(ref, false))));\n/* @internal */\nexport const option = self => core.matchEffect(self, {\n onFailure: () => core.succeed(Option.none()),\n onSuccess: a => core.succeed(Option.some(a))\n});\n/* @internal */\nexport const orElseFail = /*#__PURE__*/dual(2, (self, evaluate) => core.orElse(self, () => core.failSync(evaluate)));\n/* @internal */\nexport const orElseSucceed = /*#__PURE__*/dual(2, (self, evaluate) => core.orElse(self, () => core.sync(evaluate)));\n/* @internal */\nexport const parallelErrors = self => core.matchCauseEffect(self, {\n onFailure: cause => {\n const errors = Arr.fromIterable(internalCause.failures(cause));\n return errors.length === 0 ? core.failCause(cause) : core.fail(errors);\n },\n onSuccess: core.succeed\n});\n/* @internal */\nexport const patchFiberRefs = patch => updateFiberRefs((fiberId, fiberRefs) => pipe(patch, fiberRefsPatch.patch(fiberId, fiberRefs)));\n/* @internal */\nexport const promise = evaluate => evaluate.length >= 1 ? core.async((resolve, signal) => {\n try {\n evaluate(signal).then(a => resolve(core.succeed(a)), e => resolve(core.die(e)));\n } catch (e) {\n resolve(core.die(e));\n }\n}) : core.async(resolve => {\n try {\n ;\n evaluate().then(a => resolve(core.succeed(a)), e => resolve(core.die(e)));\n } catch (e) {\n resolve(core.die(e));\n }\n});\n/* @internal */\nexport const provideService = /*#__PURE__*/dual(3, (self, tag, service) => core.contextWithEffect(env => core.provideContext(self, Context.add(env, tag, service))));\n/* @internal */\nexport const provideServiceEffect = /*#__PURE__*/dual(3, (self, tag, effect) => core.contextWithEffect(env => core.flatMap(effect, service => core.provideContext(self, pipe(env, Context.add(tag, service))))));\n/* @internal */\nexport const random = /*#__PURE__*/defaultServices.randomWith(core.succeed);\n/* @internal */\nexport const reduce = /*#__PURE__*/dual(3, (elements, zero, f) => Arr.fromIterable(elements).reduce((acc, el, i) => core.flatMap(acc, a => f(a, el, i)), core.succeed(zero)));\n/* @internal */\nexport const reduceRight = /*#__PURE__*/dual(3, (elements, zero, f) => Arr.fromIterable(elements).reduceRight((acc, el, i) => core.flatMap(acc, a => f(el, a, i)), core.succeed(zero)));\n/* @internal */\nexport const reduceWhile = /*#__PURE__*/dual(3, (elements, zero, options) => core.flatMap(core.sync(() => elements[Symbol.iterator]()), iterator => reduceWhileLoop(iterator, 0, zero, options.while, options.body)));\nconst reduceWhileLoop = (iterator, index, state, predicate, f) => {\n const next = iterator.next();\n if (!next.done && predicate(state)) {\n return core.flatMap(f(state, next.value, index), nextState => reduceWhileLoop(iterator, index + 1, nextState, predicate, f));\n }\n return core.succeed(state);\n};\n/* @internal */\nexport const repeatN = /*#__PURE__*/dual(2, (self, n) => core.suspend(() => repeatNLoop(self, n)));\n/* @internal */\nconst repeatNLoop = (self, n) => core.flatMap(self, a => n <= 0 ? core.succeed(a) : core.zipRight(core.yieldNow(), repeatNLoop(self, n - 1)));\n/* @internal */\nexport const sandbox = self => core.matchCauseEffect(self, {\n onFailure: core.fail,\n onSuccess: core.succeed\n});\n/* @internal */\nexport const setFiberRefs = fiberRefs => core.suspend(() => FiberRefs.setAll(fiberRefs));\n/* @internal */\nexport const sleep = Clock.sleep;\n/* @internal */\nexport const succeedNone = /*#__PURE__*/core.succeed(/*#__PURE__*/Option.none());\n/* @internal */\nexport const succeedSome = value => core.succeed(Option.some(value));\n/* @internal */\nexport const summarized = /*#__PURE__*/dual(3, (self, summary, f) => core.flatMap(summary, start => core.flatMap(self, value => core.map(summary, end => [f(start, end), value]))));\n/* @internal */\nexport const tagMetrics = /*#__PURE__*/dual(args => core.isEffect(args[0]), function () {\n return labelMetrics(arguments[0], typeof arguments[1] === \"string\" ? [metricLabel.make(arguments[1], arguments[2])] : Object.entries(arguments[1]).map(([k, v]) => metricLabel.make(k, v)));\n});\n/* @internal */\nexport const labelMetrics = /*#__PURE__*/dual(2, (self, labels) => core.fiberRefLocallyWith(self, core.currentMetricLabels, old => Arr.union(old, labels)));\n/* @internal */\nexport const takeUntil = /*#__PURE__*/dual(2, (elements, predicate) => core.suspend(() => {\n const iterator = elements[Symbol.iterator]();\n const builder = [];\n let next;\n let effect = core.succeed(false);\n let i = 0;\n while ((next = iterator.next()) && !next.done) {\n const a = next.value;\n const index = i++;\n effect = core.flatMap(effect, bool => {\n if (bool) {\n return core.succeed(true);\n }\n builder.push(a);\n return predicate(a, index);\n });\n }\n return core.map(effect, () => builder);\n}));\n/* @internal */\nexport const takeWhile = /*#__PURE__*/dual(2, (elements, predicate) => core.suspend(() => {\n const iterator = elements[Symbol.iterator]();\n const builder = [];\n let next;\n let taking = core.succeed(true);\n let i = 0;\n while ((next = iterator.next()) && !next.done) {\n const a = next.value;\n const index = i++;\n taking = core.flatMap(taking, taking => pipe(taking ? predicate(a, index) : core.succeed(false), core.map(bool => {\n if (bool) {\n builder.push(a);\n }\n return bool;\n })));\n }\n return core.map(taking, () => builder);\n}));\n/* @internal */\nexport const tapBoth = /*#__PURE__*/dual(2, (self, {\n onFailure,\n onSuccess\n}) => core.matchCauseEffect(self, {\n onFailure: cause => {\n const either = internalCause.failureOrCause(cause);\n switch (either._tag) {\n case \"Left\":\n {\n return core.zipRight(onFailure(either.left), core.failCause(cause));\n }\n case \"Right\":\n {\n return core.failCause(cause);\n }\n }\n },\n onSuccess: a => core.as(onSuccess(a), a)\n}));\n/* @internal */\nexport const tapDefect = /*#__PURE__*/dual(2, (self, f) => core.catchAllCause(self, cause => Option.match(internalCause.keepDefects(cause), {\n onNone: () => core.failCause(cause),\n onSome: a => core.zipRight(f(a), core.failCause(cause))\n})));\n/* @internal */\nexport const tapError = /*#__PURE__*/dual(2, (self, f) => core.matchCauseEffect(self, {\n onFailure: cause => {\n const either = internalCause.failureOrCause(cause);\n switch (either._tag) {\n case \"Left\":\n return core.zipRight(f(either.left), core.failCause(cause));\n case \"Right\":\n return core.failCause(cause);\n }\n },\n onSuccess: core.succeed\n}));\n/* @internal */\nexport const tapErrorTag = /*#__PURE__*/dual(3, (self, k, f) => tapError(self, e => {\n if (Predicate.isTagged(e, k)) {\n return f(e);\n }\n return core.void;\n}));\n/* @internal */\nexport const tapErrorCause = /*#__PURE__*/dual(2, (self, f) => core.matchCauseEffect(self, {\n onFailure: cause => core.zipRight(f(cause), core.failCause(cause)),\n onSuccess: core.succeed\n}));\n/* @internal */\nexport const timed = self => timedWith(self, Clock.currentTimeNanos);\n/* @internal */\nexport const timedWith = /*#__PURE__*/dual(2, (self, nanos) => summarized(self, nanos, (start, end) => Duration.nanos(end - start)));\n/* @internal */\nexport const tracerWith = Tracer.tracerWith;\n/** @internal */\nexport const tracer = /*#__PURE__*/tracerWith(core.succeed);\n/* @internal */\nexport const tryPromise = arg => {\n let evaluate;\n let catcher = undefined;\n if (typeof arg === \"function\") {\n evaluate = arg;\n } else {\n evaluate = arg.try;\n catcher = arg.catch;\n }\n const fail = e => catcher ? core.failSync(() => catcher(e)) : core.fail(new core.UnknownException(e, \"An unknown error occurred in Effect.tryPromise\"));\n if (evaluate.length >= 1) {\n return core.async((resolve, signal) => {\n try {\n evaluate(signal).then(a => resolve(core.succeed(a)), e => resolve(fail(e)));\n } catch (e) {\n resolve(fail(e));\n }\n });\n }\n return core.async(resolve => {\n try {\n evaluate().then(a => resolve(core.succeed(a)), e => resolve(fail(e)));\n } catch (e) {\n resolve(fail(e));\n }\n });\n};\n/* @internal */\nexport const tryMap = /*#__PURE__*/dual(2, (self, options) => core.flatMap(self, a => try_({\n try: () => options.try(a),\n catch: options.catch\n})));\n/* @internal */\nexport const tryMapPromise = /*#__PURE__*/dual(2, (self, options) => core.flatMap(self, a => tryPromise({\n try: options.try.length >= 1 ? signal => options.try(a, signal) : () => options.try(a),\n catch: options.catch\n})));\n/* @internal */\nexport const unless = /*#__PURE__*/dual(2, (self, condition) => core.suspend(() => condition() ? succeedNone : asSome(self)));\n/* @internal */\nexport const unlessEffect = /*#__PURE__*/dual(2, (self, condition) => core.flatMap(condition, b => b ? succeedNone : asSome(self)));\n/* @internal */\nexport const unsandbox = self => mapErrorCause(self, internalCause.flatten);\n/* @internal */\nexport const updateFiberRefs = f => core.withFiberRuntime(state => {\n state.setFiberRefs(f(state.id(), state.getFiberRefs()));\n return core.void;\n});\n/* @internal */\nexport const updateService = /*#__PURE__*/dual(3, (self, tag, f) => core.mapInputContext(self, context => Context.add(context, tag, f(Context.unsafeGet(context, tag)))));\n/* @internal */\nexport const when = /*#__PURE__*/dual(2, (self, condition) => core.suspend(() => condition() ? core.map(self, Option.some) : core.succeed(Option.none())));\n/* @internal */\nexport const whenFiberRef = /*#__PURE__*/dual(3, (self, fiberRef, predicate) => core.flatMap(core.fiberRefGet(fiberRef), s => predicate(s) ? core.map(self, a => [s, Option.some(a)]) : core.succeed([s, Option.none()])));\n/* @internal */\nexport const whenRef = /*#__PURE__*/dual(3, (self, ref, predicate) => core.flatMap(Ref.get(ref), s => predicate(s) ? core.map(self, a => [s, Option.some(a)]) : core.succeed([s, Option.none()])));\n/* @internal */\nexport const withMetric = /*#__PURE__*/dual(2, (self, metric) => metric(self));\n/** @internal */\nexport const serviceFunctionEffect = (getService, f) => (...args) => core.flatMap(getService, a => f(a)(...args));\n/** @internal */\nexport const serviceFunction = (getService, f) => (...args) => core.map(getService, a => f(a)(...args));\n/** @internal */\nexport const serviceFunctions = getService => new Proxy({}, {\n get(_target, prop, _receiver) {\n return (...args) => core.flatMap(getService, s => s[prop](...args));\n }\n});\n/** @internal */\nexport const serviceConstants = getService => new Proxy({}, {\n get(_target, prop, _receiver) {\n return core.flatMap(getService, s => core.isEffect(s[prop]) ? s[prop] : core.succeed(s[prop]));\n }\n});\n/** @internal */\nexport const serviceMembers = getService => ({\n functions: serviceFunctions(getService),\n constants: serviceConstants(getService)\n});\n/** @internal */\nexport const serviceOption = tag => core.map(core.context(), Context.getOption(tag));\n/** @internal */\nexport const serviceOptional = tag => core.flatMap(core.context(), Context.getOption(tag));\n// -----------------------------------------------------------------------------\n// tracing\n// -----------------------------------------------------------------------------\n/* @internal */\nexport const annotateCurrentSpan = function () {\n const args = arguments;\n return ignore(core.flatMap(currentSpan, span => core.sync(() => {\n if (typeof args[0] === \"string\") {\n span.attribute(args[0], args[1]);\n } else {\n for (const key in args[0]) {\n span.attribute(key, args[0][key]);\n }\n }\n })));\n};\n/* @internal */\nexport const linkSpanCurrent = function () {\n const args = arguments;\n const links = Array.isArray(args[0]) ? args[0] : [{\n _tag: \"SpanLink\",\n span: args[0],\n attributes: args[1] ?? {}\n }];\n return ignore(core.flatMap(currentSpan, span => core.sync(() => span.addLinks(links))));\n};\n/* @internal */\nexport const annotateSpans = /*#__PURE__*/dual(args => core.isEffect(args[0]), function () {\n const args = arguments;\n return core.fiberRefLocallyWith(args[0], core.currentTracerSpanAnnotations, typeof args[1] === \"string\" ? HashMap.set(args[1], args[2]) : annotations => Object.entries(args[1]).reduce((acc, [key, value]) => HashMap.set(acc, key, value), annotations));\n});\n/** @internal */\nexport const currentParentSpan = /*#__PURE__*/serviceOptional(internalTracer.spanTag);\n/** @internal */\nexport const currentSpan = /*#__PURE__*/core.flatMap(/*#__PURE__*/core.context(), context => {\n const span = context.unsafeMap.get(internalTracer.spanTag.key);\n return span !== undefined && span._tag === \"Span\" ? core.succeed(span) : core.fail(new core.NoSuchElementException());\n});\n/* @internal */\nexport const linkSpans = /*#__PURE__*/dual(args => core.isEffect(args[0]), (self, span, attributes) => core.fiberRefLocallyWith(self, core.currentTracerSpanLinks, Chunk.append({\n _tag: \"SpanLink\",\n span,\n attributes: attributes ?? {}\n})));\nconst bigint0 = /*#__PURE__*/BigInt(0);\nconst filterDisablePropagation = /*#__PURE__*/Option.flatMap(span => Context.get(span.context, internalTracer.DisablePropagation) ? span._tag === \"Span\" ? filterDisablePropagation(span.parent) : Option.none() : Option.some(span));\n/** @internal */\nexport const unsafeMakeSpan = (fiber, name, options) => {\n const disablePropagation = !fiber.getFiberRef(core.currentTracerEnabled) || options.context && Context.get(options.context, internalTracer.DisablePropagation);\n const context = fiber.getFiberRef(core.currentContext);\n const parent = options.parent ? Option.some(options.parent) : options.root ? Option.none() : filterDisablePropagation(Context.getOption(context, internalTracer.spanTag));\n let span;\n if (disablePropagation) {\n span = core.noopSpan({\n name,\n parent,\n context: Context.add(options.context ?? Context.empty(), internalTracer.DisablePropagation, true)\n });\n } else {\n const services = fiber.getFiberRef(defaultServices.currentServices);\n const tracer = Context.get(services, internalTracer.tracerTag);\n const clock = Context.get(services, Clock.Clock);\n const timingEnabled = fiber.getFiberRef(core.currentTracerTimingEnabled);\n const fiberRefs = fiber.getFiberRefs();\n const annotationsFromEnv = FiberRefs.get(fiberRefs, core.currentTracerSpanAnnotations);\n const linksFromEnv = FiberRefs.get(fiberRefs, core.currentTracerSpanLinks);\n const links = linksFromEnv._tag === \"Some\" ? options.links !== undefined ? [...Chunk.toReadonlyArray(linksFromEnv.value), ...(options.links ?? [])] : Chunk.toReadonlyArray(linksFromEnv.value) : options.links ?? Arr.empty();\n span = tracer.span(name, parent, options.context ?? Context.empty(), links, timingEnabled ? clock.unsafeCurrentTimeNanos() : bigint0, options.kind ?? \"internal\", options);\n if (annotationsFromEnv._tag === \"Some\") {\n HashMap.forEach(annotationsFromEnv.value, (value, key) => span.attribute(key, value));\n }\n if (options.attributes !== undefined) {\n Object.entries(options.attributes).forEach(([k, v]) => span.attribute(k, v));\n }\n }\n if (typeof options.captureStackTrace === \"function\") {\n internalCause.spanToTrace.set(span, options.captureStackTrace);\n }\n return span;\n};\n/** @internal */\nexport const makeSpan = (name, options) => {\n options = internalTracer.addSpanStackTrace(options);\n return core.withFiberRuntime(fiber => core.succeed(unsafeMakeSpan(fiber, name, options)));\n};\n/* @internal */\nexport const spanAnnotations = /*#__PURE__*/core.fiberRefGet(core.currentTracerSpanAnnotations);\n/* @internal */\nexport const spanLinks = /*#__PURE__*/core.fiberRefGet(core.currentTracerSpanLinks);\n/** @internal */\nexport const endSpan = (span, exit, clock, timingEnabled) => core.sync(() => {\n if (span.status._tag === \"Ended\") {\n return;\n }\n if (core.exitIsFailure(exit) && internalCause.spanToTrace.has(span)) {\n // https://opentelemetry.io/docs/specs/semconv/registry/attributes/code/#code-stacktrace\n span.attribute(\"code.stacktrace\", internalCause.spanToTrace.get(span)());\n }\n span.end(timingEnabled ? clock.unsafeCurrentTimeNanos() : bigint0, exit);\n});\n/** @internal */\nexport const useSpan = (name, ...args) => {\n const options = internalTracer.addSpanStackTrace(args.length === 1 ? undefined : args[0]);\n const evaluate = args[args.length - 1];\n return core.withFiberRuntime(fiber => {\n const span = unsafeMakeSpan(fiber, name, options);\n const timingEnabled = fiber.getFiberRef(core.currentTracerTimingEnabled);\n const clock = Context.get(fiber.getFiberRef(defaultServices.currentServices), clockTag);\n return core.onExit(evaluate(span), exit => endSpan(span, exit, clock, timingEnabled));\n });\n};\n/** @internal */\nexport const withParentSpan = /*#__PURE__*/dual(2, (self, span) => provideService(self, internalTracer.spanTag, span));\n/** @internal */\nexport const withSpan = function () {\n const dataFirst = typeof arguments[0] !== \"string\";\n const name = dataFirst ? arguments[1] : arguments[0];\n const options = internalTracer.addSpanStackTrace(dataFirst ? arguments[2] : arguments[1]);\n if (dataFirst) {\n const self = arguments[0];\n return useSpan(name, options, span => withParentSpan(self, span));\n }\n return self => useSpan(name, options, span => withParentSpan(self, span));\n};\nexport const functionWithSpan = options => function () {\n let captureStackTrace = options.captureStackTrace ?? false;\n if (options.captureStackTrace !== false) {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 2;\n const error = new Error();\n Error.stackTraceLimit = limit;\n let cache = false;\n captureStackTrace = () => {\n if (cache !== false) {\n return cache;\n }\n if (error.stack) {\n const stack = error.stack.trim().split(\"\\n\");\n cache = stack.slice(2).join(\"\\n\").trim();\n return cache;\n }\n };\n }\n return core.suspend(() => {\n const opts = typeof options.options === \"function\" ? options.options.apply(null, arguments) : options.options;\n return withSpan(core.suspend(() => internalCall(() => options.body.apply(this, arguments))), opts.name, {\n ...opts,\n captureStackTrace\n });\n });\n};\n// -------------------------------------------------------------------------------------\n// optionality\n// -------------------------------------------------------------------------------------\n/* @internal */\nexport const fromNullable = value => value == null ? core.fail(new core.NoSuchElementException()) : core.succeed(value);\n/* @internal */\nexport const optionFromOptional = self => core.catchAll(core.map(self, Option.some), error => core.isNoSuchElementException(error) ? succeedNone : core.fail(error));\n//# sourceMappingURL=core-effect.js.map","import { parseAccount } from '../../accounts/utils/parseAccount.js';\nimport { BaseFeeScalarError } from '../../errors/fee.js';\nimport { getTransactionError, } from '../../utils/errors/getTransactionError.js';\nimport { extract } from '../../utils/formatters/extract.js';\nimport { formatTransaction, } from '../../utils/formatters/transaction.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { assertRequest } from '../../utils/transaction/assertRequest.js';\nimport { getBlock } from './getBlock.js';\nimport { getChainId as getChainId_ } from './getChainId.js';\n/**\n * Fills a transaction request with the necessary fields to be signed over.\n *\n * - Docs: https://viem.sh/docs/actions/public/fillTransaction\n *\n * @param client - Client to use\n * @param parameters - {@link FillTransactionParameters}\n * @returns The filled transaction. {@link FillTransactionReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { fillTransaction } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const result = await fillTransaction(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: parseEther('1'),\n * })\n */\nexport async function fillTransaction(client, parameters) {\n const { account = client.account, accessList, authorizationList, chain = client.chain, blobVersionedHashes, blobs, data, gas, gasPrice, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, nonce: nonce_, nonceManager, to, type, value, ...rest } = parameters;\n const nonce = await (async () => {\n if (!account)\n return nonce_;\n if (!nonceManager)\n return nonce_;\n if (typeof nonce_ !== 'undefined')\n return nonce_;\n const account_ = parseAccount(account);\n const chainId = chain\n ? chain.id\n : await getAction(client, getChainId_, 'getChainId')({});\n return await nonceManager.consume({\n address: account_.address,\n chainId,\n client,\n });\n })();\n assertRequest(parameters);\n const chainFormat = chain?.formatters?.transactionRequest?.format;\n const format = chainFormat || formatTransactionRequest;\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n account: account ? parseAccount(account) : undefined,\n accessList,\n authorizationList,\n blobs,\n blobVersionedHashes,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n type,\n value,\n }, 'fillTransaction');\n try {\n const response = await client.request({\n method: 'eth_fillTransaction',\n params: [request],\n });\n const format = chain?.formatters?.transaction?.format || formatTransaction;\n const transaction = format(response.tx);\n // Remove unnecessary fields.\n delete transaction.blockHash;\n delete transaction.blockNumber;\n delete transaction.r;\n delete transaction.s;\n delete transaction.transactionIndex;\n delete transaction.v;\n delete transaction.yParity;\n // Rewrite fields.\n transaction.data = transaction.input;\n // Preference supplied fees (some nodes do not take these preferences).\n if (transaction.gas)\n transaction.gas = parameters.gas ?? transaction.gas;\n if (transaction.gasPrice)\n transaction.gasPrice = parameters.gasPrice ?? transaction.gasPrice;\n if (transaction.maxFeePerBlobGas)\n transaction.maxFeePerBlobGas =\n parameters.maxFeePerBlobGas ?? transaction.maxFeePerBlobGas;\n if (transaction.maxFeePerGas)\n transaction.maxFeePerGas =\n parameters.maxFeePerGas ?? transaction.maxFeePerGas;\n if (transaction.maxPriorityFeePerGas)\n transaction.maxPriorityFeePerGas =\n parameters.maxPriorityFeePerGas ?? transaction.maxPriorityFeePerGas;\n if (transaction.nonce)\n transaction.nonce = parameters.nonce ?? transaction.nonce;\n // Build fee multiplier function.\n const feeMultiplier = await (async () => {\n if (typeof chain?.fees?.baseFeeMultiplier === 'function') {\n const block = await getAction(client, getBlock, 'getBlock')({});\n return chain.fees.baseFeeMultiplier({\n block,\n client,\n request: parameters,\n });\n }\n return chain?.fees?.baseFeeMultiplier ?? 1.2;\n })();\n if (feeMultiplier < 1)\n throw new BaseFeeScalarError();\n const decimals = feeMultiplier.toString().split('.')[1]?.length ?? 0;\n const denominator = 10 ** decimals;\n const multiplyFee = (base) => (base * BigInt(Math.ceil(feeMultiplier * denominator))) /\n BigInt(denominator);\n // Apply fee multiplier.\n if (transaction.maxFeePerGas && !parameters.maxFeePerGas)\n transaction.maxFeePerGas = multiplyFee(transaction.maxFeePerGas);\n if (transaction.gasPrice && !parameters.gasPrice)\n transaction.gasPrice = multiplyFee(transaction.gasPrice);\n return {\n raw: response.raw,\n transaction: {\n from: request.from,\n ...transaction,\n },\n };\n }\n catch (err) {\n throw getTransactionError(err, {\n ...parameters,\n chain: client.chain,\n });\n }\n}\n//# sourceMappingURL=fillTransaction.js.map","var base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","'use strict';\n\nvar defaultEncoding;\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n\tdefaultEncoding = 'utf-8';\n} else if (global.process && global.process.version) {\n\tvar pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10);\n\n\tdefaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary';\n} else {\n\tdefaultEncoding = 'utf-8';\n}\nmodule.exports = defaultEncoding;\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","import * as Array from \"../Array.js\";\nimport * as Context from \"../Context.js\";\nimport * as Duration from \"../Duration.js\";\nimport { dual, pipe } from \"../Function.js\";\nimport { globalValue } from \"../GlobalValue.js\";\nimport * as clock from \"./clock.js\";\nimport * as configProvider from \"./configProvider.js\";\nimport * as core from \"./core.js\";\nimport * as console_ from \"./defaultServices/console.js\";\nimport * as random from \"./random.js\";\nimport * as tracer from \"./tracer.js\";\n/** @internal */\nexport const liveServices = /*#__PURE__*/pipe(/*#__PURE__*/Context.empty(), /*#__PURE__*/Context.add(clock.clockTag, /*#__PURE__*/clock.make()), /*#__PURE__*/Context.add(console_.consoleTag, console_.defaultConsole), /*#__PURE__*/Context.add(random.randomTag, /*#__PURE__*/random.make(/*#__PURE__*/Math.random())), /*#__PURE__*/Context.add(configProvider.configProviderTag, /*#__PURE__*/configProvider.fromEnv()), /*#__PURE__*/Context.add(tracer.tracerTag, tracer.nativeTracer));\n/**\n * The `FiberRef` holding the default `Effect` services.\n *\n * @since 2.0.0\n * @category fiberRefs\n */\nexport const currentServices = /*#__PURE__*/globalValue(/*#__PURE__*/Symbol.for(\"effect/DefaultServices/currentServices\"), () => core.fiberRefUnsafeMakeContext(liveServices));\n// circular with Clock\n/** @internal */\nexport const sleep = duration => {\n const decodedDuration = Duration.decode(duration);\n return clockWith(clock => clock.sleep(decodedDuration));\n};\n/** @internal */\nexport const defaultServicesWith = f => core.withFiberRuntime(fiber => f(fiber.currentDefaultServices));\n/** @internal */\nexport const clockWith = f => defaultServicesWith(services => f(services.unsafeMap.get(clock.clockTag.key)));\n/** @internal */\nexport const currentTimeMillis = /*#__PURE__*/clockWith(clock => clock.currentTimeMillis);\n/** @internal */\nexport const currentTimeNanos = /*#__PURE__*/clockWith(clock => clock.currentTimeNanos);\n/** @internal */\nexport const withClock = /*#__PURE__*/dual(2, (effect, c) => core.fiberRefLocallyWith(currentServices, Context.add(clock.clockTag, c))(effect));\n// circular with ConfigProvider\n/** @internal */\nexport const withConfigProvider = /*#__PURE__*/dual(2, (self, provider) => core.fiberRefLocallyWith(currentServices, Context.add(configProvider.configProviderTag, provider))(self));\n/** @internal */\nexport const configProviderWith = f => defaultServicesWith(services => f(services.unsafeMap.get(configProvider.configProviderTag.key)));\n/** @internal */\nexport const config = config => configProviderWith(_ => _.load(config));\n/** @internal */\nexport const configOrDie = config => core.orDie(configProviderWith(_ => _.load(config)));\n// circular with Random\n/** @internal */\nexport const randomWith = f => defaultServicesWith(services => f(services.unsafeMap.get(random.randomTag.key)));\n/** @internal */\nexport const withRandom = /*#__PURE__*/dual(2, (effect, value) => core.fiberRefLocallyWith(currentServices, Context.add(random.randomTag, value))(effect));\n/** @internal */\nexport const next = /*#__PURE__*/randomWith(random => random.next);\n/** @internal */\nexport const nextInt = /*#__PURE__*/randomWith(random => random.nextInt);\n/** @internal */\nexport const nextBoolean = /*#__PURE__*/randomWith(random => random.nextBoolean);\n/** @internal */\nexport const nextRange = (min, max) => randomWith(random => random.nextRange(min, max));\n/** @internal */\nexport const nextIntBetween = (min, max) => randomWith(random => random.nextIntBetween(min, max));\n/** @internal */\nexport const shuffle = elements => randomWith(random => random.shuffle(elements));\n/** @internal */\nexport const choice = elements => {\n const array = Array.fromIterable(elements);\n return core.map(array.length === 0 ? core.fail(new core.NoSuchElementException(\"Cannot select a random element from an empty array\")) : randomWith(random => random.nextIntBetween(0, array.length)), i => array[i]);\n};\n// circular with Tracer\n/** @internal */\nexport const tracerWith = f => defaultServicesWith(services => f(services.unsafeMap.get(tracer.tracerTag.key)));\n/** @internal */\nexport const withTracer = /*#__PURE__*/dual(2, (effect, value) => core.fiberRefLocallyWith(currentServices, Context.add(tracer.tracerTag, value))(effect));\n//# sourceMappingURL=defaultServices.js.map","(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 this.length = num === 0 ? 1 : this.length;\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","/**\n * The `GlobalValue` module ensures that a single instance of a value is created globally,\n * even when modules are imported multiple times (e.g., due to mixing CommonJS and ESM builds)\n * or during hot-reloading in development environments like Next.js or Remix.\n *\n * It achieves this by using a versioned global store, identified by a unique `Symbol` tied to\n * the current version of the `effect` library. The store holds values that are keyed by an identifier,\n * allowing the reuse of previously computed instances across imports or reloads.\n *\n * This pattern is particularly useful in scenarios where frequent reloading can cause services or\n * single-instance objects to be recreated unnecessarily, such as in development environments with hot-reloading.\n *\n * @since 2.0.0\n */\nconst globalStoreId = `effect/GlobalValue`;\nlet globalStore;\n/**\n * Retrieves or computes a global value associated with the given `id`. If the value for this `id`\n * has already been computed, it will be returned from the global store. If it does not exist yet,\n * the provided `compute` function will be executed to compute the value, store it, and then return it.\n *\n * This ensures that even in cases where the module is imported multiple times (e.g., in mixed environments\n * like CommonJS and ESM, or during hot-reloading in development), the value is computed only once and reused\n * thereafter.\n *\n * @example\n * ```ts\n * import { globalValue } from \"effect/GlobalValue\"\n *\n * // This cache will persist as long as the module is running,\n * // even if reloaded or imported elsewhere\n * const myCache = globalValue(\n * Symbol.for(\"myCache\"),\n * () => new WeakMap()\n * )\n * ```\n *\n * @since 2.0.0\n */\nexport const globalValue = (id, compute) => {\n if (!globalStore) {\n // @ts-expect-error\n globalThis[globalStoreId] ??= new Map();\n // @ts-expect-error\n globalStore = globalThis[globalStoreId];\n }\n if (!globalStore.has(id)) {\n globalStore.set(id, compute());\n }\n return globalStore.get(id);\n};\n//# sourceMappingURL=GlobalValue.js.map","import { BaseError } from '../../errors/base.js';\nimport { ContractFunctionRevertedError } from '../../errors/contract.js';\n/*\n * @description Checks if error is a valid null result UniversalResolver error\n */\nexport function isNullUniversalResolverError(err) {\n if (!(err instanceof BaseError))\n return false;\n const cause = err.walk((e) => e instanceof ContractFunctionRevertedError);\n if (!(cause instanceof ContractFunctionRevertedError))\n return false;\n if (cause.data?.errorName === 'HttpError')\n return true;\n if (cause.data?.errorName === 'ResolverError')\n return true;\n if (cause.data?.errorName === 'ResolverNotContract')\n return true;\n if (cause.data?.errorName === 'ResolverNotFound')\n return true;\n if (cause.data?.errorName === 'ReverseAddressMismatch')\n return true;\n if (cause.data?.errorName === 'UnsupportedResolverProfile')\n return true;\n return false;\n}\n//# sourceMappingURL=errors.js.map","import { isHex } from '../data/isHex.js';\nexport function encodedLabelToLabelhash(label) {\n if (label.length !== 66)\n return null;\n if (label.indexOf('[') !== 0)\n return null;\n if (label.indexOf(']') !== 65)\n return null;\n const hash = `0x${label.slice(1, 65)}`;\n if (!isHex(hash))\n return null;\n return hash;\n}\n//# sourceMappingURL=encodedLabelToLabelhash.js.map","import { concat } from '../data/concat.js';\nimport { stringToBytes, toBytes, } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { encodedLabelToLabelhash, } from './encodedLabelToLabelhash.js';\n/**\n * @description Hashes ENS name\n *\n * - Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `namehash`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @example\n * namehash('wevm.eth')\n * '0x08c85f2f4059e930c45a6aeff9dcd3bd95dc3c5c1cddef6a0626b31152248560'\n *\n * @link https://eips.ethereum.org/EIPS/eip-137\n */\nexport function namehash(name) {\n let result = new Uint8Array(32).fill(0);\n if (!name)\n return bytesToHex(result);\n const labels = name.split('.');\n // Iterate in reverse order building up hash\n for (let i = labels.length - 1; i >= 0; i -= 1) {\n const hashFromEncodedLabel = encodedLabelToLabelhash(labels[i]);\n const hashed = hashFromEncodedLabel\n ? toBytes(hashFromEncodedLabel)\n : keccak256(stringToBytes(labels[i]), 'bytes');\n result = keccak256(concat([result, hashed]), 'bytes');\n }\n return bytesToHex(result);\n}\n//# sourceMappingURL=namehash.js.map","export function encodeLabelhash(hash) {\n return `[${hash.slice(2)}]`;\n}\n//# sourceMappingURL=encodeLabelhash.js.map","import { stringToBytes, } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { encodedLabelToLabelhash, } from './encodedLabelToLabelhash.js';\n/**\n * @description Hashes ENS label\n *\n * - Since ENS labels prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS labels](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `labelhash`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @example\n * labelhash('eth')\n * '0x4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0'\n */\nexport function labelhash(label) {\n const result = new Uint8Array(32).fill(0);\n if (!label)\n return bytesToHex(result);\n return encodedLabelToLabelhash(label) || keccak256(stringToBytes(label));\n}\n//# sourceMappingURL=labelhash.js.map","import { stringToBytes, } from '../encoding/toBytes.js';\nimport { encodeLabelhash, } from './encodeLabelhash.js';\nimport { labelhash } from './labelhash.js';\n/*\n * @description Encodes a DNS packet into a ByteArray containing a UDP payload.\n *\n * @example\n * packetToBytes('awkweb.eth')\n * '0x0661776b7765620365746800'\n *\n * @see https://docs.ens.domains/resolution/names#dns\n *\n */\nexport function packetToBytes(packet) {\n // strip leading and trailing `.`\n const value = packet.replace(/^\\.|\\.$/gm, '');\n if (value.length === 0)\n return new Uint8Array(1);\n const bytes = new Uint8Array(stringToBytes(value).byteLength + 2);\n let offset = 0;\n const list = value.split('.');\n for (let i = 0; i < list.length; i++) {\n let encoded = stringToBytes(list[i]);\n // if the length is > 255, make the encoded label value a labelhash\n // this is compatible with the universal resolver\n if (encoded.byteLength > 255)\n encoded = stringToBytes(encodeLabelhash(labelhash(list[i])));\n bytes[offset] = encoded.length;\n bytes.set(encoded, offset + 1);\n offset += encoded.length + 1;\n }\n if (bytes.byteLength !== offset + 1)\n return bytes.slice(0, offset + 1);\n return bytes;\n}\n//# sourceMappingURL=packetToBytes.js.map","import { BaseError } from './base.js';\nexport class EnsAvatarInvalidMetadataError extends BaseError {\n constructor({ data }) {\n super('Unable to extract image from metadata. The metadata may be malformed or invalid.', {\n metaMessages: [\n '- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.',\n '',\n `Provided data: ${JSON.stringify(data)}`,\n ],\n name: 'EnsAvatarInvalidMetadataError',\n });\n }\n}\nexport class EnsAvatarInvalidNftUriError extends BaseError {\n constructor({ reason }) {\n super(`ENS NFT avatar URI is invalid. ${reason}`, {\n name: 'EnsAvatarInvalidNftUriError',\n });\n }\n}\nexport class EnsAvatarUriResolutionError extends BaseError {\n constructor({ uri }) {\n super(`Unable to resolve ENS avatar URI \"${uri}\". The URI may be malformed, invalid, or does not respond with a valid image.`, { name: 'EnsAvatarUriResolutionError' });\n }\n}\nexport class EnsAvatarUnsupportedNamespaceError extends BaseError {\n constructor({ namespace }) {\n super(`ENS NFT avatar namespace \"${namespace}\" is not supported. Must be \"erc721\" or \"erc1155\".`, { name: 'EnsAvatarUnsupportedNamespaceError' });\n }\n}\nexport class EnsInvalidChainIdError extends BaseError {\n constructor({ chainId }) {\n super(`Invalid ENSIP-11 chainId: ${chainId}. Must be between 0 and 0x7fffffff, or 1.`, {\n name: 'EnsInvalidChainIdError',\n });\n }\n}\n//# sourceMappingURL=ens.js.map","import { readContract, } from '../../../actions/public/readContract.js';\nimport { EnsAvatarInvalidMetadataError, EnsAvatarInvalidNftUriError, EnsAvatarUnsupportedNamespaceError, EnsAvatarUriResolutionError, } from '../../../errors/ens.js';\nconst networkRegex = /(?https?:\\/\\/[^/]*|ipfs:\\/|ipns:\\/|ar:\\/)?(?\\/)?(?ipfs\\/|ipns\\/)?(?[\\w\\-.]+)(?\\/.*)?/;\nconst ipfsHashRegex = /^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\\/(?[\\w\\-.]+))?(?\\/.*)?$/;\nconst base64Regex = /^data:([a-zA-Z\\-/+]*);base64,([^\"].*)/;\nconst dataURIRegex = /^data:([a-zA-Z\\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;\n/** @internal */\nexport async function isImageUri(uri) {\n try {\n const res = await fetch(uri, { method: 'HEAD' });\n // retrieve content type header to check if content is image\n if (res.status === 200) {\n const contentType = res.headers.get('content-type');\n return contentType?.startsWith('image/');\n }\n return false;\n }\n catch (error) {\n // if error is not cors related then fail\n if (typeof error === 'object' && typeof error.response !== 'undefined') {\n return false;\n }\n // fail in NodeJS, since the error is not cors but any other network issue\n if (!Object.hasOwn(globalThis, 'Image'))\n return false;\n // in case of cors, use image api to validate if given url is an actual image\n return new Promise((resolve) => {\n const img = new Image();\n img.onload = () => {\n resolve(true);\n };\n img.onerror = () => {\n resolve(false);\n };\n img.src = uri;\n });\n }\n}\n/** @internal */\nexport function getGateway(custom, defaultGateway) {\n if (!custom)\n return defaultGateway;\n if (custom.endsWith('/'))\n return custom.slice(0, -1);\n return custom;\n}\nexport function resolveAvatarUri({ uri, gatewayUrls, }) {\n const isEncoded = base64Regex.test(uri);\n if (isEncoded)\n return { uri, isOnChain: true, isEncoded };\n const ipfsGateway = getGateway(gatewayUrls?.ipfs, 'https://ipfs.io');\n const arweaveGateway = getGateway(gatewayUrls?.arweave, 'https://arweave.net');\n const networkRegexMatch = uri.match(networkRegex);\n const { protocol, subpath, target, subtarget = '', } = networkRegexMatch?.groups || {};\n const isIPNS = protocol === 'ipns:/' || subpath === 'ipns/';\n const isIPFS = protocol === 'ipfs:/' || subpath === 'ipfs/' || ipfsHashRegex.test(uri);\n if (uri.startsWith('http') && !isIPNS && !isIPFS) {\n let replacedUri = uri;\n if (gatewayUrls?.arweave)\n replacedUri = uri.replace(/https:\\/\\/arweave.net/g, gatewayUrls?.arweave);\n return { uri: replacedUri, isOnChain: false, isEncoded: false };\n }\n if ((isIPNS || isIPFS) && target) {\n return {\n uri: `${ipfsGateway}/${isIPNS ? 'ipns' : 'ipfs'}/${target}${subtarget}`,\n isOnChain: false,\n isEncoded: false,\n };\n }\n if (protocol === 'ar:/' && target) {\n return {\n uri: `${arweaveGateway}/${target}${subtarget || ''}`,\n isOnChain: false,\n isEncoded: false,\n };\n }\n let parsedUri = uri.replace(dataURIRegex, '');\n if (parsedUri.startsWith(' res.json());\n const image = await parseAvatarUri({\n gatewayUrls,\n uri: getJsonImage(res),\n });\n return image;\n }\n catch {\n throw new EnsAvatarUriResolutionError({ uri });\n }\n}\nexport async function parseAvatarUri({ gatewayUrls, uri, }) {\n const { uri: resolvedURI, isOnChain } = resolveAvatarUri({ uri, gatewayUrls });\n if (isOnChain)\n return resolvedURI;\n // check if resolvedURI is an image, if it is return the url\n const isImage = await isImageUri(resolvedURI);\n if (isImage)\n return resolvedURI;\n throw new EnsAvatarUriResolutionError({ uri });\n}\nexport function parseNftUri(uri_) {\n let uri = uri_;\n // parse valid nft spec (CAIP-22/CAIP-29)\n // @see: https://github.com/ChainAgnostic/CAIPs/tree/master/CAIPs\n if (uri.startsWith('did:nft:')) {\n // convert DID to CAIP\n uri = uri.replace('did:nft:', '').replace(/_/g, '/');\n }\n const [reference, asset_namespace, tokenID] = uri.split('/');\n const [eip_namespace, chainID] = reference.split(':');\n const [erc_namespace, contractAddress] = asset_namespace.split(':');\n if (!eip_namespace || eip_namespace.toLowerCase() !== 'eip155')\n throw new EnsAvatarInvalidNftUriError({ reason: 'Only EIP-155 supported' });\n if (!chainID)\n throw new EnsAvatarInvalidNftUriError({ reason: 'Chain ID not found' });\n if (!contractAddress)\n throw new EnsAvatarInvalidNftUriError({\n reason: 'Contract address not found',\n });\n if (!tokenID)\n throw new EnsAvatarInvalidNftUriError({ reason: 'Token ID not found' });\n if (!erc_namespace)\n throw new EnsAvatarInvalidNftUriError({ reason: 'ERC namespace not found' });\n return {\n chainID: Number.parseInt(chainID, 10),\n namespace: erc_namespace.toLowerCase(),\n contractAddress: contractAddress,\n tokenID,\n };\n}\nexport async function getNftTokenUri(client, { nft }) {\n if (nft.namespace === 'erc721') {\n return readContract(client, {\n address: nft.contractAddress,\n abi: [\n {\n name: 'tokenURI',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: 'tokenId', type: 'uint256' }],\n outputs: [{ name: '', type: 'string' }],\n },\n ],\n functionName: 'tokenURI',\n args: [BigInt(nft.tokenID)],\n });\n }\n if (nft.namespace === 'erc1155') {\n return readContract(client, {\n address: nft.contractAddress,\n abi: [\n {\n name: 'uri',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: '_id', type: 'uint256' }],\n outputs: [{ name: '', type: 'string' }],\n },\n ],\n functionName: 'uri',\n args: [BigInt(nft.tokenID)],\n });\n }\n throw new EnsAvatarUnsupportedNamespaceError({ namespace: nft.namespace });\n}\n//# sourceMappingURL=utils.js.map","import { textResolverAbi, universalResolverResolveAbi, } from '../../constants/abis.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { toHex } from '../../utils/encoding/toHex.js';\nimport { isNullUniversalResolverError } from '../../utils/ens/errors.js';\nimport { localBatchGatewayUrl } from '../../utils/ens/localBatchGatewayRequest.js';\nimport { namehash } from '../../utils/ens/namehash.js';\nimport { packetToBytes, } from '../../utils/ens/packetToBytes.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from '../public/readContract.js';\n/**\n * Gets a text record for specified ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsTextParameters}\n * @returns Address for ENS resolver. {@link GetEnsTextReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsText, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const twitterRecord = await getEnsText(client, {\n * name: normalize('wevm.eth'),\n * key: 'com.twitter',\n * })\n * // 'wevm_dev'\n */\nexport async function getEnsText(client, parameters) {\n const { blockNumber, blockTag, key, name, gatewayUrls, strict } = parameters;\n const { chain } = client;\n const universalResolverAddress = (() => {\n if (parameters.universalResolverAddress)\n return parameters.universalResolverAddress;\n if (!chain)\n throw new Error('client chain not configured. universalResolverAddress is required.');\n return getChainContractAddress({\n blockNumber,\n chain,\n contract: 'ensUniversalResolver',\n });\n })();\n const tlds = chain?.ensTlds;\n if (tlds && !tlds.some((tld) => name.endsWith(tld)))\n return null;\n try {\n const readContractParameters = {\n address: universalResolverAddress,\n abi: universalResolverResolveAbi,\n args: [\n toHex(packetToBytes(name)),\n encodeFunctionData({\n abi: textResolverAbi,\n functionName: 'text',\n args: [namehash(name), key],\n }),\n gatewayUrls ?? [localBatchGatewayUrl],\n ],\n functionName: 'resolveWithGateways',\n blockNumber,\n blockTag,\n };\n const readContractAction = getAction(client, readContract, 'readContract');\n const res = await readContractAction(readContractParameters);\n if (res[0] === '0x')\n return null;\n const record = decodeFunctionResult({\n abi: textResolverAbi,\n functionName: 'text',\n data: res[0],\n });\n return record === '' ? null : record;\n }\n catch (err) {\n if (strict)\n throw err;\n if (isNullUniversalResolverError(err))\n return null;\n throw err;\n }\n}\n//# sourceMappingURL=getEnsText.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { getCallError, } from '../../utils/errors/getCallError.js';\nimport { extract } from '../../utils/formatters/extract.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { assertRequest } from '../../utils/transaction/assertRequest.js';\n/**\n * Creates an EIP-2930 access list.\n *\n * - Docs: https://viem.sh/docs/actions/public/createAccessList\n * - JSON-RPC Methods: `eth_createAccessList`\n *\n * @param client - Client to use\n * @param parameters - {@link CreateAccessListParameters}\n * @returns The access list. {@link CreateAccessListReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createAccessList } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const data = await createAccessList(client, {\n * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * })\n */\nexport async function createAccessList(client, args) {\n const { account: account_ = client.account, blockNumber, blockTag = 'latest', blobs, data, gas, gasPrice, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, to, value, ...rest } = args;\n const account = account_ ? parseAccount(account_) : undefined;\n try {\n assertRequest(args);\n const blockNumberHex = typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\n const chainFormat = client.chain?.formatters?.transactionRequest?.format;\n const format = chainFormat || formatTransactionRequest;\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n account,\n blobs,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n to,\n value,\n }, 'createAccessList');\n const response = await client.request({\n method: 'eth_createAccessList',\n params: [request, block],\n });\n return {\n accessList: response.accessList,\n gasUsed: BigInt(response.gasUsed),\n };\n }\n catch (err) {\n throw getCallError(err, {\n ...args,\n account,\n chain: client.chain,\n });\n }\n}\n//# sourceMappingURL=createAccessList.js.map","import { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js';\n/**\n * Creates a [`Filter`](https://viem.sh/docs/glossary/types#filter) to listen for new events that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).\n *\n * - Docs: https://viem.sh/docs/actions/public/createEventFilter\n * - JSON-RPC Methods: [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter)\n *\n * @param client - Client to use\n * @param parameters - {@link CreateEventFilterParameters}\n * @returns [`Filter`](https://viem.sh/docs/glossary/types#filter). {@link CreateEventFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createEventFilter } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createEventFilter(client, {\n * address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',\n * })\n */\nexport async function createEventFilter(client, { address, args, event, events: events_, fromBlock, strict, toBlock, } = {}) {\n const events = events_ ?? (event ? [event] : undefined);\n const getRequest = createFilterRequestScope(client, {\n method: 'eth_newFilter',\n });\n let topics = [];\n if (events) {\n const encoded = events.flatMap((event) => encodeEventTopics({\n abi: [event],\n eventName: event.name,\n args,\n }));\n // TODO: Clean up type casting\n topics = [encoded];\n if (event)\n topics = topics[0];\n }\n const id = await client.request({\n method: 'eth_newFilter',\n params: [\n {\n address,\n fromBlock: typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n ...(topics.length ? { topics } : {}),\n },\n ],\n });\n return {\n abi: events,\n args,\n eventName: event ? event.name : undefined,\n fromBlock,\n id,\n request: getRequest(id),\n strict: Boolean(strict),\n toBlock,\n type: 'event',\n };\n}\n//# sourceMappingURL=createEventFilter.js.map","import { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js';\n/**\n * Creates a Filter to listen for new pending transaction hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).\n *\n * - Docs: https://viem.sh/docs/actions/public/createPendingTransactionFilter\n * - JSON-RPC Methods: [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter)\n *\n * @param client - Client to use\n * @returns [`Filter`](https://viem.sh/docs/glossary/types#filter). {@link CreateBlockFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createPendingTransactionFilter } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createPendingTransactionFilter(client)\n * // { id: \"0x345a6572337856574a76364e457a4366\", type: 'transaction' }\n */\nexport async function createPendingTransactionFilter(client) {\n const getRequest = createFilterRequestScope(client, {\n method: 'eth_newPendingTransactionFilter',\n });\n const id = await client.request({\n method: 'eth_newPendingTransactionFilter',\n });\n return { id, request: getRequest(id), type: 'transaction' };\n}\n//# sourceMappingURL=createPendingTransactionFilter.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Retrieves the bytecode at an address.\n *\n * - Docs: https://viem.sh/docs/contract/getCode\n * - JSON-RPC Methods: [`eth_getCode`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getcode)\n *\n * @param client - Client to use\n * @param parameters - {@link GetCodeParameters}\n * @returns The contract's bytecode. {@link GetCodeReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getCode } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const code = await getCode(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * })\n */\nexport async function getCode(client, { address, blockNumber, blockTag = 'latest' }) {\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n const hex = await client.request({\n method: 'eth_getCode',\n params: [address, blockNumberHex || blockTag],\n }, { dedupe: Boolean(blockNumberHex) });\n if (hex === '0x')\n return undefined;\n return hex;\n}\n//# sourceMappingURL=getCode.js.map","import { BaseError } from './base.js';\nexport class Eip712DomainNotFoundError extends BaseError {\n constructor({ address }) {\n super(`No EIP-712 domain found on contract \"${address}\".`, {\n metaMessages: [\n 'Ensure that:',\n `- The contract is deployed at the address \"${address}\".`,\n '- `eip712Domain()` function exists on the contract.',\n '- `eip712Domain()` function matches signature to ERC-5267 specification.',\n ],\n name: 'Eip712DomainNotFoundError',\n });\n }\n}\n//# sourceMappingURL=eip712.js.map","import { Eip712DomainNotFoundError, } from '../../errors/eip712.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from './readContract.js';\n/**\n * Reads the EIP-712 domain from a contract, based on the ERC-5267 specification.\n *\n * @param client - A {@link Client} instance.\n * @param parameters - The parameters of the action. {@link GetEip712DomainParameters}\n * @returns The EIP-712 domain, fields, and extensions. {@link GetEip712DomainReturnType}\n *\n * @example\n * ```ts\n * import { createPublicClient, http, getEip712Domain } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n *\n * const domain = await getEip712Domain(client, {\n * address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n * })\n * // {\n * // domain: {\n * // name: 'ExampleContract',\n * // version: '1',\n * // chainId: 1,\n * // verifyingContract: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n * // },\n * // fields: '0x0f',\n * // extensions: [],\n * // }\n * ```\n */\nexport async function getEip712Domain(client, parameters) {\n const { address, factory, factoryData } = parameters;\n try {\n const [fields, name, version, chainId, verifyingContract, salt, extensions,] = await getAction(client, readContract, 'readContract')({\n abi,\n address,\n functionName: 'eip712Domain',\n factory,\n factoryData,\n });\n return {\n domain: {\n name,\n version,\n chainId: Number(chainId),\n verifyingContract,\n salt,\n },\n extensions,\n fields,\n };\n }\n catch (e) {\n const error = e;\n if (error.name === 'ContractFunctionExecutionError' &&\n error.cause.name === 'ContractFunctionZeroDataError') {\n throw new Eip712DomainNotFoundError({ address });\n }\n throw error;\n }\n}\nconst abi = [\n {\n inputs: [],\n name: 'eip712Domain',\n outputs: [\n { name: 'fields', type: 'bytes1' },\n { name: 'name', type: 'string' },\n { name: 'version', type: 'string' },\n { name: 'chainId', type: 'uint256' },\n { name: 'verifyingContract', type: 'address' },\n { name: 'salt', type: 'bytes32' },\n { name: 'extensions', type: 'uint256[]' },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\n//# sourceMappingURL=getEip712Domain.js.map","import * as BlockOverrides from 'ox/BlockOverrides';\nimport { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AbiDecodingZeroDataError } from '../../errors/abi.js';\nimport { RawContractError } from '../../errors/contract.js';\nimport { UnknownNodeError } from '../../errors/node.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { concat } from '../../utils/data/concat.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { getContractError } from '../../utils/errors/getContractError.js';\nimport { getNodeError, } from '../../utils/errors/getNodeError.js';\nimport { formatBlock, } from '../../utils/formatters/block.js';\nimport { formatLog } from '../../utils/formatters/log.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { serializeStateOverride, } from '../../utils/stateOverride.js';\nimport { assertRequest, } from '../../utils/transaction/assertRequest.js';\n/**\n * Simulates a set of calls on block(s) with optional block and state overrides.\n *\n * @example\n * ```ts\n * import { createClient, http, parseEther } from 'viem'\n * import { simulate } from 'viem/actions'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createClient({\n * chain: mainnet,\n * transport: http(),\n * })\n *\n * const result = await simulate(client, {\n * blocks: [{\n * blockOverrides: {\n * number: 69420n,\n * },\n * calls: [{\n * {\n * account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n * data: '0xdeadbeef',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * },\n * {\n * account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: parseEther('1'),\n * },\n * }],\n * stateOverrides: [{\n * address: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n * balance: parseEther('10'),\n * }],\n * }]\n * })\n * ```\n *\n * @param client - Client to use.\n * @param parameters - {@link SimulateBlocksParameters}\n * @returns Simulated blocks. {@link SimulateBlocksReturnType}\n */\nexport async function simulateBlocks(client, parameters) {\n const { blockNumber, blockTag = client.experimental_blockTag ?? 'latest', blocks, returnFullTransactions, traceTransfers, validation, } = parameters;\n try {\n const blockStateCalls = [];\n for (const block of blocks) {\n const blockOverrides = block.blockOverrides\n ? BlockOverrides.toRpc(block.blockOverrides)\n : undefined;\n const calls = block.calls.map((call_) => {\n const call = call_;\n const account = call.account ? parseAccount(call.account) : undefined;\n const data = call.abi ? encodeFunctionData(call) : call.data;\n const request = {\n ...call,\n account,\n data: call.dataSuffix\n ? concat([data || '0x', call.dataSuffix])\n : data,\n from: call.from ?? account?.address,\n };\n assertRequest(request);\n return formatTransactionRequest(request);\n });\n const stateOverrides = block.stateOverrides\n ? serializeStateOverride(block.stateOverrides)\n : undefined;\n blockStateCalls.push({\n blockOverrides,\n calls,\n stateOverrides,\n });\n }\n const blockNumberHex = typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\n const result = await client.request({\n method: 'eth_simulateV1',\n params: [\n { blockStateCalls, returnFullTransactions, traceTransfers, validation },\n block,\n ],\n });\n return result.map((block, i) => ({\n ...formatBlock(block),\n calls: block.calls.map((call, j) => {\n const { abi, args, functionName, to } = blocks[i].calls[j];\n const data = call.error?.data ?? call.returnData;\n const gasUsed = BigInt(call.gasUsed);\n const logs = call.logs?.map((log) => formatLog(log));\n const status = call.status === '0x1' ? 'success' : 'failure';\n const result = abi && status === 'success' && data !== '0x'\n ? decodeFunctionResult({\n abi,\n data,\n functionName,\n })\n : null;\n const error = (() => {\n if (status === 'success')\n return undefined;\n let error;\n if (call.error?.data === '0x')\n error = new AbiDecodingZeroDataError();\n else if (call.error)\n error = new RawContractError(call.error);\n if (!error)\n return undefined;\n return getContractError(error, {\n abi: (abi ?? []),\n address: to ?? '0x',\n args,\n functionName: functionName ?? '',\n });\n })();\n return {\n data,\n gasUsed,\n logs,\n status,\n ...(status === 'success'\n ? {\n result,\n }\n : {\n error,\n }),\n };\n }),\n }));\n }\n catch (e) {\n const cause = e;\n const error = getNodeError(cause, {});\n if (error instanceof UnknownNodeError)\n throw cause;\n throw error;\n }\n}\n//# sourceMappingURL=simulateBlocks.js.map","import * as Bytes from '../Bytes.js';\n/** @internal */\nexport function assertSize(bytes, size_) {\n if (Bytes.size(bytes) > size_)\n throw new Bytes.SizeOverflowError({\n givenSize: Bytes.size(bytes),\n maxSize: size_,\n });\n}\n/** @internal */\nexport function assertStartOffset(value, start) {\n if (typeof start === 'number' && start > 0 && start > Bytes.size(value) - 1)\n throw new Bytes.SliceOffsetOutOfBoundsError({\n offset: start,\n position: 'start',\n size: Bytes.size(value),\n });\n}\n/** @internal */\nexport function assertEndOffset(value, start, end) {\n if (typeof start === 'number' &&\n typeof end === 'number' &&\n Bytes.size(value) !== end - start) {\n throw new Bytes.SliceOffsetOutOfBoundsError({\n offset: end,\n position: 'end',\n size: Bytes.size(value),\n });\n }\n}\n/** @internal */\nexport const charCodeMap = {\n zero: 48,\n nine: 57,\n A: 65,\n F: 70,\n a: 97,\n f: 102,\n};\n/** @internal */\nexport function charCodeToBase16(char) {\n if (char >= charCodeMap.zero && char <= charCodeMap.nine)\n return char - charCodeMap.zero;\n if (char >= charCodeMap.A && char <= charCodeMap.F)\n return char - (charCodeMap.A - 10);\n if (char >= charCodeMap.a && char <= charCodeMap.f)\n return char - (charCodeMap.a - 10);\n return undefined;\n}\n/** @internal */\nexport function pad(bytes, options = {}) {\n const { dir, size = 32 } = options;\n if (size === 0)\n return bytes;\n if (bytes.length > size)\n throw new Bytes.SizeExceedsPaddingSizeError({\n size: bytes.length,\n targetSize: size,\n type: 'Bytes',\n });\n const paddedBytes = new Uint8Array(size);\n for (let i = 0; i < size; i++) {\n const padEnd = dir === 'right';\n paddedBytes[padEnd ? i : size - i - 1] =\n bytes[padEnd ? i : bytes.length - i - 1];\n }\n return paddedBytes;\n}\n/** @internal */\nexport function trim(value, options = {}) {\n const { dir = 'left' } = options;\n let data = value;\n let sliceLength = 0;\n for (let i = 0; i < data.length - 1; i++) {\n if (data[dir === 'left' ? i : data.length - i - 1].toString() === '0')\n sliceLength++;\n else\n break;\n }\n data =\n dir === 'left'\n ? data.slice(sliceLength)\n : data.slice(0, data.length - sliceLength);\n return data;\n}\n//# sourceMappingURL=bytes.js.map","import { equalBytes } from '@noble/curves/abstract/utils';\nimport * as Errors from './Errors.js';\nimport * as Hex from './Hex.js';\nimport * as internal from './internal/bytes.js';\nimport * as internal_hex from './internal/hex.js';\nimport * as Json from './Json.js';\nconst decoder = /*#__PURE__*/ new TextDecoder();\nconst encoder = /*#__PURE__*/ new TextEncoder();\n/**\n * Asserts if the given value is {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.assert('abc')\n * // @error: Bytes.InvalidBytesTypeError:\n * // @error: Value `\"abc\"` of type `string` is an invalid Bytes value.\n * // @error: Bytes values must be of type `Uint8Array`.\n * ```\n *\n * @param value - Value to assert.\n */\nexport function assert(value) {\n if (value instanceof Uint8Array)\n return;\n if (!value)\n throw new InvalidBytesTypeError(value);\n if (typeof value !== 'object')\n throw new InvalidBytesTypeError(value);\n if (!('BYTES_PER_ELEMENT' in value))\n throw new InvalidBytesTypeError(value);\n if (value.BYTES_PER_ELEMENT !== 1 || value.constructor.name !== 'Uint8Array')\n throw new InvalidBytesTypeError(value);\n}\n/**\n * Concatenates two or more {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const bytes = Bytes.concat(\n * Bytes.from([1]),\n * Bytes.from([69]),\n * Bytes.from([420, 69]),\n * )\n * // @log: Uint8Array [ 1, 69, 420, 69 ]\n * ```\n *\n * @param values - Values to concatenate.\n * @returns Concatenated {@link ox#Bytes.Bytes}.\n */\nexport function concat(...values) {\n let length = 0;\n for (const arr of values) {\n length += arr.length;\n }\n const result = new Uint8Array(length);\n for (let i = 0, index = 0; i < values.length; i++) {\n const arr = values[i];\n result.set(arr, index);\n index += arr.length;\n }\n return result;\n}\n/**\n * Instantiates a {@link ox#Bytes.Bytes} value from a `Uint8Array`, a hex string, or an array of unsigned 8-bit integers.\n *\n * :::tip\n *\n * To instantiate from a **Boolean**, **String**, or **Number**, use one of the following:\n *\n * - `Bytes.fromBoolean`\n *\n * - `Bytes.fromString`\n *\n * - `Bytes.fromNumber`\n *\n * :::\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.from([255, 124, 5, 4])\n * // @log: Uint8Array([255, 124, 5, 4])\n *\n * const data = Bytes.from('0xdeadbeef')\n * // @log: Uint8Array([222, 173, 190, 239])\n * ```\n *\n * @param value - Value to convert.\n * @returns A {@link ox#Bytes.Bytes} instance.\n */\nexport function from(value) {\n if (value instanceof Uint8Array)\n return value;\n if (typeof value === 'string')\n return fromHex(value);\n return fromArray(value);\n}\n/**\n * Converts an array of unsigned 8-bit integers into {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromArray([255, 124, 5, 4])\n * // @log: Uint8Array([255, 124, 5, 4])\n * ```\n *\n * @param value - Value to convert.\n * @returns A {@link ox#Bytes.Bytes} instance.\n */\nexport function fromArray(value) {\n return value instanceof Uint8Array ? value : new Uint8Array(value);\n}\n/**\n * Encodes a boolean value into {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromBoolean(true)\n * // @log: Uint8Array([1])\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromBoolean(true, { size: 32 })\n * // @log: Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1])\n * ```\n *\n * @param value - Boolean value to encode.\n * @param options - Encoding options.\n * @returns Encoded {@link ox#Bytes.Bytes}.\n */\nexport function fromBoolean(value, options = {}) {\n const { size } = options;\n const bytes = new Uint8Array(1);\n bytes[0] = Number(value);\n if (typeof size === 'number') {\n internal.assertSize(bytes, size);\n return padLeft(bytes, size);\n }\n return bytes;\n}\n/**\n * Encodes a {@link ox#Hex.Hex} value into {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromHex('0x48656c6c6f20776f726c6421')\n * // @log: Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromHex('0x48656c6c6f20776f726c6421', { size: 32 })\n * // @log: Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n * ```\n *\n * @param value - {@link ox#Hex.Hex} value to encode.\n * @param options - Encoding options.\n * @returns Encoded {@link ox#Bytes.Bytes}.\n */\nexport function fromHex(value, options = {}) {\n const { size } = options;\n let hex = value;\n if (size) {\n internal_hex.assertSize(value, size);\n hex = Hex.padRight(value, size);\n }\n let hexString = hex.slice(2);\n if (hexString.length % 2)\n hexString = `0${hexString}`;\n const length = hexString.length / 2;\n const bytes = new Uint8Array(length);\n for (let index = 0, j = 0; index < length; index++) {\n const nibbleLeft = internal.charCodeToBase16(hexString.charCodeAt(j++));\n const nibbleRight = internal.charCodeToBase16(hexString.charCodeAt(j++));\n if (nibbleLeft === undefined || nibbleRight === undefined) {\n throw new Errors.BaseError(`Invalid byte sequence (\"${hexString[j - 2]}${hexString[j - 1]}\" in \"${hexString}\").`);\n }\n bytes[index] = (nibbleLeft << 4) | nibbleRight;\n }\n return bytes;\n}\n/**\n * Encodes a number value into {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromNumber(420)\n * // @log: Uint8Array([1, 164])\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromNumber(420, { size: 4 })\n * // @log: Uint8Array([0, 0, 1, 164])\n * ```\n *\n * @param value - Number value to encode.\n * @param options - Encoding options.\n * @returns Encoded {@link ox#Bytes.Bytes}.\n */\nexport function fromNumber(value, options) {\n const hex = Hex.fromNumber(value, options);\n return fromHex(hex);\n}\n/**\n * Encodes a string into {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromString('Hello world!')\n * // @log: Uint8Array([72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33])\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromString('Hello world!', { size: 32 })\n * // @log: Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n * ```\n *\n * @param value - String to encode.\n * @param options - Encoding options.\n * @returns Encoded {@link ox#Bytes.Bytes}.\n */\nexport function fromString(value, options = {}) {\n const { size } = options;\n const bytes = encoder.encode(value);\n if (typeof size === 'number') {\n internal.assertSize(bytes, size);\n return padRight(bytes, size);\n }\n return bytes;\n}\n/**\n * Checks if two {@link ox#Bytes.Bytes} values are equal.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.isEqual(Bytes.from([1]), Bytes.from([1]))\n * // @log: true\n *\n * Bytes.isEqual(Bytes.from([1]), Bytes.from([2]))\n * // @log: false\n * ```\n *\n * @param bytesA - First {@link ox#Bytes.Bytes} value.\n * @param bytesB - Second {@link ox#Bytes.Bytes} value.\n * @returns `true` if the two values are equal, otherwise `false`.\n */\nexport function isEqual(bytesA, bytesB) {\n return equalBytes(bytesA, bytesB);\n}\n/**\n * Pads a {@link ox#Bytes.Bytes} value to the left with zero bytes until it reaches the given `size` (default: 32 bytes).\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.padLeft(Bytes.from([1]), 4)\n * // @log: Uint8Array([0, 0, 0, 1])\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} value to pad.\n * @param size - Size to pad the {@link ox#Bytes.Bytes} value to.\n * @returns Padded {@link ox#Bytes.Bytes} value.\n */\nexport function padLeft(value, size) {\n return internal.pad(value, { dir: 'left', size });\n}\n/**\n * Pads a {@link ox#Bytes.Bytes} value to the right with zero bytes until it reaches the given `size` (default: 32 bytes).\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.padRight(Bytes.from([1]), 4)\n * // @log: Uint8Array([1, 0, 0, 0])\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} value to pad.\n * @param size - Size to pad the {@link ox#Bytes.Bytes} value to.\n * @returns Padded {@link ox#Bytes.Bytes} value.\n */\nexport function padRight(value, size) {\n return internal.pad(value, { dir: 'right', size });\n}\n/**\n * Generates random {@link ox#Bytes.Bytes} of the specified length.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const bytes = Bytes.random(32)\n * // @log: Uint8Array([... x32])\n * ```\n *\n * @param length - Length of the random {@link ox#Bytes.Bytes} to generate.\n * @returns Random {@link ox#Bytes.Bytes} of the specified length.\n */\nexport function random(length) {\n return crypto.getRandomValues(new Uint8Array(length));\n}\n/**\n * Retrieves the size of a {@link ox#Bytes.Bytes} value.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.size(Bytes.from([1, 2, 3, 4]))\n * // @log: 4\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} value.\n * @returns Size of the {@link ox#Bytes.Bytes} value.\n */\nexport function size(value) {\n return value.length;\n}\n/**\n * Returns a section of a {@link ox#Bytes.Bytes} value given a start/end bytes offset.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.slice(\n * Bytes.from([1, 2, 3, 4, 5, 6, 7, 8, 9]),\n * 1,\n * 4,\n * )\n * // @log: Uint8Array([2, 3, 4])\n * ```\n *\n * @param value - The {@link ox#Bytes.Bytes} value.\n * @param start - Start offset.\n * @param end - End offset.\n * @param options - Slice options.\n * @returns Sliced {@link ox#Bytes.Bytes} value.\n */\nexport function slice(value, start, end, options = {}) {\n const { strict } = options;\n internal.assertStartOffset(value, start);\n const value_ = value.slice(start, end);\n if (strict)\n internal.assertEndOffset(value_, start, end);\n return value_;\n}\n/**\n * Decodes a {@link ox#Bytes.Bytes} into a bigint.\n *\n * @example\n * ```ts\n * import { Bytes } from 'ox'\n *\n * Bytes.toBigInt(Bytes.from([1, 164]))\n * // @log: 420n\n * ```\n *\n * @param bytes - The {@link ox#Bytes.Bytes} to decode.\n * @param options - Decoding options.\n * @returns Decoded bigint.\n */\nexport function toBigInt(bytes, options = {}) {\n const { size } = options;\n if (typeof size !== 'undefined')\n internal.assertSize(bytes, size);\n const hex = Hex.fromBytes(bytes, options);\n return Hex.toBigInt(hex, options);\n}\n/**\n * Decodes a {@link ox#Bytes.Bytes} into a boolean.\n *\n * @example\n * ```ts\n * import { Bytes } from 'ox'\n *\n * Bytes.toBoolean(Bytes.from([1]))\n * // @log: true\n * ```\n *\n * @param bytes - The {@link ox#Bytes.Bytes} to decode.\n * @param options - Decoding options.\n * @returns Decoded boolean.\n */\nexport function toBoolean(bytes, options = {}) {\n const { size } = options;\n let bytes_ = bytes;\n if (typeof size !== 'undefined') {\n internal.assertSize(bytes_, size);\n bytes_ = trimLeft(bytes_);\n }\n if (bytes_.length > 1 || bytes_[0] > 1)\n throw new InvalidBytesBooleanError(bytes_);\n return Boolean(bytes_[0]);\n}\n/**\n * Encodes a {@link ox#Bytes.Bytes} value into a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.toHex(Bytes.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))\n * // '0x48656c6c6f20576f726c6421'\n * ```\n *\n * @param value - The {@link ox#Bytes.Bytes} to decode.\n * @param options - Options.\n * @returns Decoded {@link ox#Hex.Hex} value.\n */\nexport function toHex(value, options = {}) {\n return Hex.fromBytes(value, options);\n}\n/**\n * Decodes a {@link ox#Bytes.Bytes} into a number.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.toNumber(Bytes.from([1, 164]))\n * // @log: 420\n * ```\n */\nexport function toNumber(bytes, options = {}) {\n const { size } = options;\n if (typeof size !== 'undefined')\n internal.assertSize(bytes, size);\n const hex = Hex.fromBytes(bytes, options);\n return Hex.toNumber(hex, options);\n}\n/**\n * Decodes a {@link ox#Bytes.Bytes} into a string.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.toString(Bytes.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))\n * // @log: 'Hello world'\n * ```\n *\n * @param bytes - The {@link ox#Bytes.Bytes} to decode.\n * @param options - Options.\n * @returns Decoded string.\n */\nexport function toString(bytes, options = {}) {\n const { size } = options;\n let bytes_ = bytes;\n if (typeof size !== 'undefined') {\n internal.assertSize(bytes_, size);\n bytes_ = trimRight(bytes_);\n }\n return decoder.decode(bytes_);\n}\n/**\n * Trims leading zeros from a {@link ox#Bytes.Bytes} value.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.trimLeft(Bytes.from([0, 0, 0, 0, 1, 2, 3]))\n * // @log: Uint8Array([1, 2, 3])\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} value.\n * @returns Trimmed {@link ox#Bytes.Bytes} value.\n */\nexport function trimLeft(value) {\n return internal.trim(value, { dir: 'left' });\n}\n/**\n * Trims trailing zeros from a {@link ox#Bytes.Bytes} value.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.trimRight(Bytes.from([1, 2, 3, 0, 0, 0, 0]))\n * // @log: Uint8Array([1, 2, 3])\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} value.\n * @returns Trimmed {@link ox#Bytes.Bytes} value.\n */\nexport function trimRight(value) {\n return internal.trim(value, { dir: 'right' });\n}\n/**\n * Checks if the given value is {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.validate('0x')\n * // @log: false\n *\n * Bytes.validate(Bytes.from([1, 2, 3]))\n * // @log: true\n * ```\n *\n * @param value - Value to check.\n * @returns `true` if the value is {@link ox#Bytes.Bytes}, otherwise `false`.\n */\nexport function validate(value) {\n try {\n assert(value);\n return true;\n }\n catch {\n return false;\n }\n}\n/**\n * Thrown when the bytes value cannot be represented as a boolean.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.toBoolean(Bytes.from([5]))\n * // @error: Bytes.InvalidBytesBooleanError: Bytes value `[5]` is not a valid boolean.\n * // @error: The bytes array must contain a single byte of either a `0` or `1` value.\n * ```\n */\nexport class InvalidBytesBooleanError extends Errors.BaseError {\n constructor(bytes) {\n super(`Bytes value \\`${bytes}\\` is not a valid boolean.`, {\n metaMessages: [\n 'The bytes array must contain a single byte of either a `0` or `1` value.',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Bytes.InvalidBytesBooleanError'\n });\n }\n}\n/**\n * Thrown when a value cannot be converted to bytes.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Bytes } from 'ox'\n *\n * Bytes.from('foo')\n * // @error: Bytes.InvalidBytesTypeError: Value `foo` of type `string` is an invalid Bytes value.\n * ```\n */\nexport class InvalidBytesTypeError extends Errors.BaseError {\n constructor(value) {\n super(`Value \\`${typeof value === 'object' ? Json.stringify(value) : value}\\` of type \\`${typeof value}\\` is an invalid Bytes value.`, {\n metaMessages: ['Bytes values must be of type `Bytes`.'],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Bytes.InvalidBytesTypeError'\n });\n }\n}\n/**\n * Thrown when a size exceeds the maximum allowed size.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.fromString('Hello World!', { size: 8 })\n * // @error: Bytes.SizeOverflowError: Size cannot exceed `8` bytes. Given size: `12` bytes.\n * ```\n */\nexport class SizeOverflowError extends Errors.BaseError {\n constructor({ givenSize, maxSize }) {\n super(`Size cannot exceed \\`${maxSize}\\` bytes. Given size: \\`${givenSize}\\` bytes.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Bytes.SizeOverflowError'\n });\n }\n}\n/**\n * Thrown when a slice offset is out-of-bounds.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.slice(Bytes.from([1, 2, 3]), 4)\n * // @error: Bytes.SliceOffsetOutOfBoundsError: Slice starting at offset `4` is out-of-bounds (size: `3`).\n * ```\n */\nexport class SliceOffsetOutOfBoundsError extends Errors.BaseError {\n constructor({ offset, position, size, }) {\n super(`Slice ${position === 'start' ? 'starting' : 'ending'} at offset \\`${offset}\\` is out-of-bounds (size: \\`${size}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Bytes.SliceOffsetOutOfBoundsError'\n });\n }\n}\n/**\n * Thrown when a the padding size exceeds the maximum allowed size.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.padLeft(Bytes.fromString('Hello World!'), 8)\n * // @error: [Bytes.SizeExceedsPaddingSizeError: Bytes size (`12`) exceeds padding size (`8`).\n * ```\n */\nexport class SizeExceedsPaddingSizeError extends Errors.BaseError {\n constructor({ size, targetSize, type, }) {\n super(`${type.charAt(0).toUpperCase()}${type\n .slice(1)\n .toLowerCase()} size (\\`${size}\\`) exceeds padding size (\\`${targetSize}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Bytes.SizeExceedsPaddingSizeError'\n });\n }\n}\n//# sourceMappingURL=Bytes.js.map","import { ripemd160 as noble_ripemd160 } from '@noble/hashes/ripemd160';\nimport { keccak_256 as noble_keccak256 } from '@noble/hashes/sha3';\nimport { sha256 as noble_sha256 } from '@noble/hashes/sha256';\nimport * as Bytes from './Bytes.js';\nimport * as Hex from './Hex.js';\n/**\n * Calculates the [Keccak256](https://en.wikipedia.org/wiki/SHA-3) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n *\n * This function is a re-export of `keccak_256` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library.\n *\n * @example\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.keccak256('0xdeadbeef')\n * // @log: '0xd4fd4e189132273036449fc9e11198c739161b4c0116a9a2dccdfa1c492006f1'\n * ```\n *\n * @example\n * ### Calculate Hash of a String\n *\n * ```ts twoslash\n * import { Hash, Hex } from 'ox'\n *\n * Hash.keccak256(Hex.fromString('hello world'))\n * // @log: '0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0'\n * ```\n *\n * @example\n * ### Configure Return Type\n *\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.keccak256('0xdeadbeef', { as: 'Bytes' })\n * // @log: Uint8Array [...]\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n * @param options - Options.\n * @returns Keccak256 hash.\n */\nexport function keccak256(value, options = {}) {\n const { as = typeof value === 'string' ? 'Hex' : 'Bytes' } = options;\n const bytes = noble_keccak256(Bytes.from(value));\n if (as === 'Bytes')\n return bytes;\n return Hex.fromBytes(bytes);\n}\n/**\n * Calculates the [Ripemd160](https://en.wikipedia.org/wiki/RIPEMD) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n *\n * This function is a re-export of `ripemd160` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library.\n *\n * @example\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.ripemd160('0xdeadbeef')\n * // '0x226821c2f5423e11fe9af68bd285c249db2e4b5a'\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n * @param options - Options.\n * @returns Ripemd160 hash.\n */\nexport function ripemd160(value, options = {}) {\n const { as = typeof value === 'string' ? 'Hex' : 'Bytes' } = options;\n const bytes = noble_ripemd160(Bytes.from(value));\n if (as === 'Bytes')\n return bytes;\n return Hex.fromBytes(bytes);\n}\n/**\n * Calculates the [Sha256](https://en.wikipedia.org/wiki/SHA-256) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n *\n * This function is a re-export of `sha256` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library.\n *\n * @example\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.sha256('0xdeadbeef')\n * // '0x5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953'\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n * @param options - Options.\n * @returns Sha256 hash.\n */\nexport function sha256(value, options = {}) {\n const { as = typeof value === 'string' ? 'Hex' : 'Bytes' } = options;\n const bytes = noble_sha256(Bytes.from(value));\n if (as === 'Bytes')\n return bytes;\n return Hex.fromBytes(bytes);\n}\n/**\n * Checks if a string is a valid hash value.\n *\n * @example\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.validate('0x')\n * // @log: false\n *\n * Hash.validate('0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0')\n * // @log: true\n * ```\n *\n * @param value - Value to check.\n * @returns Whether the value is a valid hash.\n */\nexport function validate(value) {\n return Hex.validate(value) && Hex.size(value) === 32;\n}\n//# sourceMappingURL=Hash.js.map","/**\n * @internal\n *\n * Map with a LRU (Least recently used) policy.\n * @see https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU\n */\nexport class LruMap extends Map {\n constructor(size) {\n super();\n Object.defineProperty(this, \"maxSize\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.maxSize = size;\n }\n get(key) {\n const value = super.get(key);\n if (super.has(key) && value !== undefined) {\n this.delete(key);\n super.set(key, value);\n }\n return value;\n }\n set(key, value) {\n super.set(key, value);\n if (this.maxSize && this.size > this.maxSize) {\n const firstKey = this.keys().next().value;\n if (firstKey)\n this.delete(firstKey);\n }\n return this;\n }\n}\n//# sourceMappingURL=lru.js.map","import { LruMap } from './internal/lru.js';\nconst caches = {\n checksum: /*#__PURE__*/ new LruMap(8192),\n};\nexport const checksum = caches.checksum;\n/**\n * Clears all global caches.\n *\n * @example\n * ```ts\n * import { Caches } from 'ox'\n * Caches.clear()\n * ```\n */\nexport function clear() {\n for (const cache of Object.values(caches))\n cache.clear();\n}\n//# sourceMappingURL=Caches.js.map","import * as Bytes from './Bytes.js';\nimport * as Caches from './Caches.js';\nimport * as Errors from './Errors.js';\nimport * as Hash from './Hash.js';\nimport * as PublicKey from './PublicKey.js';\nconst addressRegex = /^0x[a-fA-F0-9]{40}$/;\n/**\n * Asserts that the given value is a valid {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.assert('0xA0Cf798816D4b9b9866b5330EEa46a18382f251e')\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.assert('0xdeadbeef')\n * // @error: InvalidAddressError: Address \"0xdeadbeef\" is invalid.\n * ```\n *\n * @param value - Value to assert if it is a valid address.\n * @param options - Assertion options.\n */\nexport function assert(value, options = {}) {\n const { strict = true } = options;\n if (!addressRegex.test(value))\n throw new InvalidAddressError({\n address: value,\n cause: new InvalidInputError(),\n });\n if (strict) {\n if (value.toLowerCase() === value)\n return;\n if (checksum(value) !== value)\n throw new InvalidAddressError({\n address: value,\n cause: new InvalidChecksumError(),\n });\n }\n}\n/**\n * Computes the checksum address for the given {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.checksum('0xa0cf798816d4b9b9866b5330eea46a18382f251e')\n * // @log: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'\n * ```\n *\n * @param address - The address to compute the checksum for.\n * @returns The checksummed address.\n */\nexport function checksum(address) {\n if (Caches.checksum.has(address))\n return Caches.checksum.get(address);\n assert(address, { strict: false });\n const hexAddress = address.substring(2).toLowerCase();\n const hash = Hash.keccak256(Bytes.fromString(hexAddress), { as: 'Bytes' });\n const characters = hexAddress.split('');\n for (let i = 0; i < 40; i += 2) {\n if (hash[i >> 1] >> 4 >= 8 && characters[i]) {\n characters[i] = characters[i].toUpperCase();\n }\n if ((hash[i >> 1] & 0x0f) >= 8 && characters[i + 1]) {\n characters[i + 1] = characters[i + 1].toUpperCase();\n }\n }\n const result = `0x${characters.join('')}`;\n Caches.checksum.set(address, result);\n return result;\n}\n/**\n * Converts a stringified address to a typed (optionally checksummed) {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.from('0xa0cf798816d4b9b9866b5330eea46a18382f251e')\n * // @log: '0xa0cf798816d4b9b9866b5330eea46a18382f251e'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.from('0xa0cf798816d4b9b9866b5330eea46a18382f251e', {\n * checksum: true\n * })\n * // @log: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.from('hello')\n * // @error: InvalidAddressError: Address \"0xa\" is invalid.\n * ```\n *\n * @param address - An address string to convert to a typed Address.\n * @param options - Conversion options.\n * @returns The typed Address.\n */\nexport function from(address, options = {}) {\n const { checksum: checksumVal = false } = options;\n assert(address);\n if (checksumVal)\n return checksum(address);\n return address;\n}\n/**\n * Converts an ECDSA public key to an {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address, PublicKey } from 'ox'\n *\n * const publicKey = PublicKey.from(\n * '0x048318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5',\n * )\n * const address = Address.fromPublicKey(publicKey)\n * // @log: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\n * ```\n *\n * @param publicKey - The ECDSA public key to convert to an {@link ox#Address.Address}.\n * @param options - Conversion options.\n * @returns The {@link ox#Address.Address} corresponding to the public key.\n */\nexport function fromPublicKey(publicKey, options = {}) {\n const address = Hash.keccak256(`0x${PublicKey.toHex(publicKey).slice(4)}`).substring(26);\n return from(`0x${address}`, options);\n}\n/**\n * Checks if two {@link ox#Address.Address} are equal.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.isEqual(\n * '0xa0cf798816d4b9b9866b5330eea46a18382f251e',\n * '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'\n * )\n * // @log: true\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.isEqual(\n * '0xa0cf798816d4b9b9866b5330eea46a18382f251e',\n * '0xA0Cf798816D4b9b9866b5330EEa46a18382f251f'\n * )\n * // @log: false\n * ```\n *\n * @param addressA - The first address to compare.\n * @param addressB - The second address to compare.\n * @returns Whether the addresses are equal.\n */\nexport function isEqual(addressA, addressB) {\n assert(addressA, { strict: false });\n assert(addressB, { strict: false });\n return addressA.toLowerCase() === addressB.toLowerCase();\n}\n/**\n * Checks if the given address is a valid {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.validate('0xA0Cf798816D4b9b9866b5330EEa46a18382f251e')\n * // @log: true\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.validate('0xdeadbeef')\n * // @log: false\n * ```\n *\n * @param address - Value to check if it is a valid address.\n * @param options - Check options.\n * @returns Whether the address is a valid address.\n */\nexport function validate(address, options = {}) {\n const { strict = true } = options ?? {};\n try {\n assert(address, { strict });\n return true;\n }\n catch {\n return false;\n }\n}\n/**\n * Thrown when an address is invalid.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.from('0x123')\n * // @error: Address.InvalidAddressError: Address `0x123` is invalid.\n * ```\n */\nexport class InvalidAddressError extends Errors.BaseError {\n constructor({ address, cause }) {\n super(`Address \"${address}\" is invalid.`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Address.InvalidAddressError'\n });\n }\n}\n/** Thrown when an address is not a 20 byte (40 hexadecimal character) value. */\nexport class InvalidInputError extends Errors.BaseError {\n constructor() {\n super('Address is not a 20 byte (40 hexadecimal character) value.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Address.InvalidInputError'\n });\n }\n}\n/** Thrown when an address does not match its checksum counterpart. */\nexport class InvalidChecksumError extends Errors.BaseError {\n constructor() {\n super('Address does not match its checksum counterpart.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Address.InvalidChecksumError'\n });\n }\n}\n//# sourceMappingURL=Address.js.map","import * as Address from '../Address.js';\nimport * as Errors from '../Errors.js';\n/** @internal */\nexport function normalizeSignature(signature) {\n let active = true;\n let current = '';\n let level = 0;\n let result = '';\n let valid = false;\n for (let i = 0; i < signature.length; i++) {\n const char = signature[i];\n // If the character is a separator, we want to reactivate.\n if (['(', ')', ','].includes(char))\n active = true;\n // If the character is a \"level\" token, we want to increment/decrement.\n if (char === '(')\n level++;\n if (char === ')')\n level--;\n // If we aren't active, we don't want to mutate the result.\n if (!active)\n continue;\n // If level === 0, we are at the definition level.\n if (level === 0) {\n if (char === ' ' && ['event', 'function', 'error', ''].includes(result))\n result = '';\n else {\n result += char;\n // If we are at the end of the definition, we must be finished.\n if (char === ')') {\n valid = true;\n break;\n }\n }\n continue;\n }\n // Ignore spaces\n if (char === ' ') {\n // If the previous character is a separator, and the current section isn't empty, we want to deactivate.\n if (signature[i - 1] !== ',' && current !== ',' && current !== ',(') {\n current = '';\n active = false;\n }\n continue;\n }\n result += char;\n current += char;\n }\n if (!valid)\n throw new Errors.BaseError('Unable to normalize signature.');\n return result;\n}\n/** @internal */\nexport function isArgOfType(arg, abiParameter) {\n const argType = typeof arg;\n const abiParameterType = abiParameter.type;\n switch (abiParameterType) {\n case 'address':\n return Address.validate(arg, { strict: false });\n case 'bool':\n return argType === 'boolean';\n case 'function':\n return argType === 'string';\n case 'string':\n return argType === 'string';\n default: {\n if (abiParameterType === 'tuple' && 'components' in abiParameter)\n return Object.values(abiParameter.components).every((component, index) => {\n return isArgOfType(Object.values(arg)[index], component);\n });\n // `(u)int`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n // https://regexr.com/6v8hp\n if (/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(abiParameterType))\n return argType === 'number' || argType === 'bigint';\n // `bytes`: binary type of `M` bytes, `0 < M <= 32`\n // https://regexr.com/6va55\n if (/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(abiParameterType))\n return argType === 'string' || arg instanceof Uint8Array;\n // fixed-length (`[M]`) and dynamic (`[]`) arrays\n // https://regexr.com/6va6i\n if (/[a-z]+[1-9]{0,3}(\\[[0-9]{0,}\\])+$/.test(abiParameterType)) {\n return (Array.isArray(arg) &&\n arg.every((x) => isArgOfType(x, {\n ...abiParameter,\n // Pop off `[]` or `[M]` from end of type\n type: abiParameterType.replace(/(\\[[0-9]{0,}\\])$/, ''),\n })));\n }\n return false;\n }\n }\n}\n/** @internal */\nexport function getAmbiguousTypes(sourceParameters, targetParameters, args) {\n for (const parameterIndex in sourceParameters) {\n const sourceParameter = sourceParameters[parameterIndex];\n const targetParameter = targetParameters[parameterIndex];\n if (sourceParameter.type === 'tuple' &&\n targetParameter.type === 'tuple' &&\n 'components' in sourceParameter &&\n 'components' in targetParameter)\n return getAmbiguousTypes(sourceParameter.components, targetParameter.components, args[parameterIndex]);\n const types = [sourceParameter.type, targetParameter.type];\n const ambiguous = (() => {\n if (types.includes('address') && types.includes('bytes20'))\n return true;\n if (types.includes('address') && types.includes('string'))\n return Address.validate(args[parameterIndex], {\n strict: false,\n });\n if (types.includes('address') && types.includes('bytes'))\n return Address.validate(args[parameterIndex], {\n strict: false,\n });\n return false;\n })();\n if (ambiguous)\n return types;\n }\n return;\n}\n//# sourceMappingURL=abiItem.js.map","import * as abitype from 'abitype';\nimport * as Errors from './Errors.js';\nimport * as Hash from './Hash.js';\nimport * as Hex from './Hex.js';\nimport * as internal from './internal/abiItem.js';\n/**\n * Formats an {@link ox#AbiItem.AbiItem} into a **Human Readable ABI Item**.\n *\n * @example\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const formatted = AbiItem.format({\n * type: 'function',\n * name: 'approve',\n * stateMutability: 'nonpayable',\n * inputs: [\n * {\n * name: 'spender',\n * type: 'address',\n * },\n * {\n * name: 'amount',\n * type: 'uint256',\n * },\n * ],\n * outputs: [{ type: 'bool' }],\n * })\n *\n * formatted\n * // ^?\n *\n *\n * ```\n *\n * @param abiItem - The ABI Item to format.\n * @returns The formatted ABI Item .\n */\nexport function format(abiItem) {\n return abitype.formatAbiItem(abiItem);\n}\n/**\n * Parses an arbitrary **JSON ABI Item** or **Human Readable ABI Item** into a typed {@link ox#AbiItem.AbiItem}.\n *\n * @example\n * ### JSON ABIs\n *\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const abiItem = AbiItem.from({\n * type: 'function',\n * name: 'approve',\n * stateMutability: 'nonpayable',\n * inputs: [\n * {\n * name: 'spender',\n * type: 'address',\n * },\n * {\n * name: 'amount',\n * type: 'uint256',\n * },\n * ],\n * outputs: [{ type: 'bool' }],\n * })\n *\n * abiItem\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Human Readable ABIs\n *\n * A Human Readable ABI can be parsed into a typed ABI object:\n *\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const abiItem = AbiItem.from(\n * 'function approve(address spender, uint256 amount) returns (bool)' // [!code hl]\n * )\n *\n * abiItem\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * It is possible to specify `struct`s along with your definitions:\n *\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const abiItem = AbiItem.from([\n * 'struct Foo { address spender; uint256 amount; }', // [!code hl]\n * 'function approve(Foo foo) returns (bool)',\n * ])\n *\n * abiItem\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n *\n *\n * @param abiItem - The ABI Item to parse.\n * @returns The typed ABI Item.\n */\nexport function from(abiItem, options = {}) {\n const { prepare = true } = options;\n const item = (() => {\n if (Array.isArray(abiItem))\n return abitype.parseAbiItem(abiItem);\n if (typeof abiItem === 'string')\n return abitype.parseAbiItem(abiItem);\n return abiItem;\n })();\n return {\n ...item,\n ...(prepare ? { hash: getSignatureHash(item) } : {}),\n };\n}\n/**\n * Extracts an {@link ox#AbiItem.AbiItem} from an {@link ox#Abi.Abi} given a name and optional arguments.\n *\n * @example\n * ABI Items can be extracted by their name using the `name` option:\n *\n * ```ts twoslash\n * import { Abi, AbiItem } from 'ox'\n *\n * const abi = Abi.from([\n * 'function foo()',\n * 'event Transfer(address owner, address to, uint256 tokenId)',\n * 'function bar(string a) returns (uint256 x)',\n * ])\n *\n * const item = AbiItem.fromAbi(abi, 'Transfer') // [!code focus]\n * // ^?\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Extracting by Selector\n *\n * ABI Items can be extract by their selector when {@link ox#Hex.Hex} is provided to `name`.\n *\n * ```ts twoslash\n * import { Abi, AbiItem } from 'ox'\n *\n * const abi = Abi.from([\n * 'function foo()',\n * 'event Transfer(address owner, address to, uint256 tokenId)',\n * 'function bar(string a) returns (uint256 x)',\n * ])\n * const item = AbiItem.fromAbi(abi, '0x095ea7b3') // [!code focus]\n * // ^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * :::note\n *\n * Extracting via a hex selector is useful when extracting an ABI Item from an `eth_call` RPC response,\n * a Transaction `input`, or from Event Log `topics`.\n *\n * :::\n *\n * @param abi - The ABI to extract from.\n * @param name - The name (or selector) of the ABI item to extract.\n * @param options - Extraction options.\n * @returns The ABI item.\n */\nexport function fromAbi(abi, name, options) {\n const { args = [], prepare = true } = (options ??\n {});\n const isSelector = Hex.validate(name, { strict: false });\n const abiItems = abi.filter((abiItem) => {\n if (isSelector) {\n if (abiItem.type === 'function' || abiItem.type === 'error')\n return getSelector(abiItem) === Hex.slice(name, 0, 4);\n if (abiItem.type === 'event')\n return getSignatureHash(abiItem) === name;\n return false;\n }\n return 'name' in abiItem && abiItem.name === name;\n });\n if (abiItems.length === 0)\n throw new NotFoundError({ name: name });\n if (abiItems.length === 1)\n return {\n ...abiItems[0],\n ...(prepare ? { hash: getSignatureHash(abiItems[0]) } : {}),\n };\n let matchedAbiItem;\n for (const abiItem of abiItems) {\n if (!('inputs' in abiItem))\n continue;\n if (!args || args.length === 0) {\n if (!abiItem.inputs || abiItem.inputs.length === 0)\n return {\n ...abiItem,\n ...(prepare ? { hash: getSignatureHash(abiItem) } : {}),\n };\n continue;\n }\n if (!abiItem.inputs)\n continue;\n if (abiItem.inputs.length === 0)\n continue;\n if (abiItem.inputs.length !== args.length)\n continue;\n const matched = args.every((arg, index) => {\n const abiParameter = 'inputs' in abiItem && abiItem.inputs[index];\n if (!abiParameter)\n return false;\n return internal.isArgOfType(arg, abiParameter);\n });\n if (matched) {\n // Check for ambiguity against already matched parameters (e.g. `address` vs `bytes20`).\n if (matchedAbiItem &&\n 'inputs' in matchedAbiItem &&\n matchedAbiItem.inputs) {\n const ambiguousTypes = internal.getAmbiguousTypes(abiItem.inputs, matchedAbiItem.inputs, args);\n if (ambiguousTypes)\n throw new AmbiguityError({\n abiItem,\n type: ambiguousTypes[0],\n }, {\n abiItem: matchedAbiItem,\n type: ambiguousTypes[1],\n });\n }\n matchedAbiItem = abiItem;\n }\n }\n const abiItem = (() => {\n if (matchedAbiItem)\n return matchedAbiItem;\n const [abiItem, ...overloads] = abiItems;\n return { ...abiItem, overloads };\n })();\n if (!abiItem)\n throw new NotFoundError({ name: name });\n return {\n ...abiItem,\n ...(prepare ? { hash: getSignatureHash(abiItem) } : {}),\n };\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function getSelector(...parameters) {\n const abiItem = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name] = parameters;\n return fromAbi(abi, name);\n }\n return parameters[0];\n })();\n return Hex.slice(getSignatureHash(abiItem), 0, 4);\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function getSignature(...parameters) {\n const abiItem = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name] = parameters;\n return fromAbi(abi, name);\n }\n return parameters[0];\n })();\n const signature = (() => {\n if (typeof abiItem === 'string')\n return abiItem;\n return abitype.formatAbiItem(abiItem);\n })();\n return internal.normalizeSignature(signature);\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function getSignatureHash(...parameters) {\n const abiItem = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name] = parameters;\n return fromAbi(abi, name);\n }\n return parameters[0];\n })();\n if (typeof abiItem !== 'string' && 'hash' in abiItem && abiItem.hash)\n return abiItem.hash;\n return Hash.keccak256(Hex.fromString(getSignature(abiItem)));\n}\n/**\n * Throws when ambiguous types are found on overloaded ABI items.\n *\n * @example\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from(['function foo(address)', 'function foo(bytes20)'])\n * AbiFunction.fromAbi(foo, 'foo', {\n * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n * })\n * // @error: AbiItem.AmbiguityError: Found ambiguous types in overloaded ABI Items.\n * // @error: `bytes20` in `foo(bytes20)`, and\n * // @error: `address` in `foo(address)`\n * // @error: These types encode differently and cannot be distinguished at runtime.\n * // @error: Remove one of the ambiguous items in the ABI.\n * ```\n *\n * ### Solution\n *\n * Remove one of the ambiguous types from the ABI.\n *\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n * 'function foo(address)',\n * 'function foo(bytes20)' // [!code --]\n * ])\n * AbiFunction.fromAbi(foo, 'foo', {\n * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n * })\n * // @error: AbiItem.AmbiguityError: Found ambiguous types in overloaded ABI Items.\n * // @error: `bytes20` in `foo(bytes20)`, and\n * // @error: `address` in `foo(address)`\n * // @error: These types encode differently and cannot be distinguished at runtime.\n * // @error: Remove one of the ambiguous items in the ABI.\n * ```\n */\nexport class AmbiguityError extends Errors.BaseError {\n constructor(x, y) {\n super('Found ambiguous types in overloaded ABI Items.', {\n metaMessages: [\n // TODO: abitype to add support for signature-formatted ABI items.\n `\\`${x.type}\\` in \\`${internal.normalizeSignature(abitype.formatAbiItem(x.abiItem))}\\`, and`,\n `\\`${y.type}\\` in \\`${internal.normalizeSignature(abitype.formatAbiItem(y.abiItem))}\\``,\n '',\n 'These types encode differently and cannot be distinguished at runtime.',\n 'Remove one of the ambiguous items in the ABI.',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiItem.AmbiguityError'\n });\n }\n}\n/**\n * Throws when an ABI item is not found in the ABI.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n * 'function foo(address)',\n * 'function bar(uint)'\n * ])\n * AbiFunction.fromAbi(foo, 'baz')\n * // @error: AbiItem.NotFoundError: ABI function with name \"baz\" not found.\n * ```\n *\n * ### Solution\n *\n * Ensure the ABI item exists on the ABI.\n *\n * ```ts twoslash\n * // @noErrors\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n * 'function foo(address)',\n * 'function bar(uint)',\n * 'function baz(bool)' // [!code ++]\n * ])\n * AbiFunction.fromAbi(foo, 'baz')\n * ```\n */\nexport class NotFoundError extends Errors.BaseError {\n constructor({ name, data, type = 'item', }) {\n const selector = (() => {\n if (name)\n return ` with name \"${name}\"`;\n if (data)\n return ` with data \"${data}\"`;\n return '';\n })();\n super(`ABI ${type}${selector} not found.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiItem.NotFoundError'\n });\n }\n}\n/**\n * Throws when the selector size is invalid.\n *\n * @example\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n * 'function foo(address)',\n * 'function bar(uint)'\n * ])\n * AbiFunction.fromAbi(foo, '0xaaa')\n * // @error: AbiItem.InvalidSelectorSizeError: Selector size is invalid. Expected 4 bytes. Received 2 bytes (\"0xaaa\").\n * ```\n *\n * ### Solution\n *\n * Ensure the selector size is 4 bytes.\n *\n * ```ts twoslash\n * // @noErrors\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n * 'function foo(address)',\n * 'function bar(uint)'\n * ])\n * AbiFunction.fromAbi(foo, '0x7af82b1a')\n * ```\n */\nexport class InvalidSelectorSizeError extends Errors.BaseError {\n constructor({ data }) {\n super(`Selector size is invalid. Expected 4 bytes. Received ${Hex.size(data)} bytes (\"${data}\").`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiItem.InvalidSelectorSizeError'\n });\n }\n}\n//# sourceMappingURL=AbiItem.js.map","import { InvalidAbiItemError } from './errors/abiItem.js';\nimport { isStructSignature } from './runtime/signatures.js';\nimport { parseStructs } from './runtime/structs.js';\nimport { parseSignature } from './runtime/utils.js';\n/**\n * Parses human-readable ABI item (e.g. error, event, function) into {@link Abi} item\n *\n * @param signature - Human-readable ABI item\n * @returns Parsed {@link Abi} item\n *\n * @example\n * const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\n * // ^? const abiItem: { name: \"balanceOf\"; type: \"function\"; stateMutability: \"view\";...\n *\n * @example\n * const abiItem = parseAbiItem([\n * // ^? const abiItem: { name: \"foo\"; type: \"function\"; stateMutability: \"view\"; inputs:...\n * 'function foo(Baz bar) view returns (string)',\n * 'struct Baz { string name; }',\n * ])\n */\nexport function parseAbiItem(signature) {\n let abiItem;\n if (typeof signature === 'string')\n abiItem = parseSignature(signature);\n else {\n const structs = parseStructs(signature);\n const length = signature.length;\n for (let i = 0; i < length; i++) {\n const signature_ = signature[i];\n if (isStructSignature(signature_))\n continue;\n abiItem = parseSignature(signature_, structs);\n break;\n }\n }\n if (!abiItem)\n throw new InvalidAbiItemError({ signature });\n return abiItem;\n}\n//# sourceMappingURL=parseAbiItem.js.map","export const arrayRegex = /^(.*)\\[([0-9]*)\\]$/;\n// `bytes`: binary type of `M` bytes, `0 < M <= 32`\n// https://regexr.com/6va55\nexport const bytesRegex = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/;\n// `(u)int`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n// https://regexr.com/6v8hp\nexport const integerRegex = /^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;\nexport const maxInt8 = 2n ** (8n - 1n) - 1n;\nexport const maxInt16 = 2n ** (16n - 1n) - 1n;\nexport const maxInt24 = 2n ** (24n - 1n) - 1n;\nexport const maxInt32 = 2n ** (32n - 1n) - 1n;\nexport const maxInt40 = 2n ** (40n - 1n) - 1n;\nexport const maxInt48 = 2n ** (48n - 1n) - 1n;\nexport const maxInt56 = 2n ** (56n - 1n) - 1n;\nexport const maxInt64 = 2n ** (64n - 1n) - 1n;\nexport const maxInt72 = 2n ** (72n - 1n) - 1n;\nexport const maxInt80 = 2n ** (80n - 1n) - 1n;\nexport const maxInt88 = 2n ** (88n - 1n) - 1n;\nexport const maxInt96 = 2n ** (96n - 1n) - 1n;\nexport const maxInt104 = 2n ** (104n - 1n) - 1n;\nexport const maxInt112 = 2n ** (112n - 1n) - 1n;\nexport const maxInt120 = 2n ** (120n - 1n) - 1n;\nexport const maxInt128 = 2n ** (128n - 1n) - 1n;\nexport const maxInt136 = 2n ** (136n - 1n) - 1n;\nexport const maxInt144 = 2n ** (144n - 1n) - 1n;\nexport const maxInt152 = 2n ** (152n - 1n) - 1n;\nexport const maxInt160 = 2n ** (160n - 1n) - 1n;\nexport const maxInt168 = 2n ** (168n - 1n) - 1n;\nexport const maxInt176 = 2n ** (176n - 1n) - 1n;\nexport const maxInt184 = 2n ** (184n - 1n) - 1n;\nexport const maxInt192 = 2n ** (192n - 1n) - 1n;\nexport const maxInt200 = 2n ** (200n - 1n) - 1n;\nexport const maxInt208 = 2n ** (208n - 1n) - 1n;\nexport const maxInt216 = 2n ** (216n - 1n) - 1n;\nexport const maxInt224 = 2n ** (224n - 1n) - 1n;\nexport const maxInt232 = 2n ** (232n - 1n) - 1n;\nexport const maxInt240 = 2n ** (240n - 1n) - 1n;\nexport const maxInt248 = 2n ** (248n - 1n) - 1n;\nexport const maxInt256 = 2n ** (256n - 1n) - 1n;\nexport const minInt8 = -(2n ** (8n - 1n));\nexport const minInt16 = -(2n ** (16n - 1n));\nexport const minInt24 = -(2n ** (24n - 1n));\nexport const minInt32 = -(2n ** (32n - 1n));\nexport const minInt40 = -(2n ** (40n - 1n));\nexport const minInt48 = -(2n ** (48n - 1n));\nexport const minInt56 = -(2n ** (56n - 1n));\nexport const minInt64 = -(2n ** (64n - 1n));\nexport const minInt72 = -(2n ** (72n - 1n));\nexport const minInt80 = -(2n ** (80n - 1n));\nexport const minInt88 = -(2n ** (88n - 1n));\nexport const minInt96 = -(2n ** (96n - 1n));\nexport const minInt104 = -(2n ** (104n - 1n));\nexport const minInt112 = -(2n ** (112n - 1n));\nexport const minInt120 = -(2n ** (120n - 1n));\nexport const minInt128 = -(2n ** (128n - 1n));\nexport const minInt136 = -(2n ** (136n - 1n));\nexport const minInt144 = -(2n ** (144n - 1n));\nexport const minInt152 = -(2n ** (152n - 1n));\nexport const minInt160 = -(2n ** (160n - 1n));\nexport const minInt168 = -(2n ** (168n - 1n));\nexport const minInt176 = -(2n ** (176n - 1n));\nexport const minInt184 = -(2n ** (184n - 1n));\nexport const minInt192 = -(2n ** (192n - 1n));\nexport const minInt200 = -(2n ** (200n - 1n));\nexport const minInt208 = -(2n ** (208n - 1n));\nexport const minInt216 = -(2n ** (216n - 1n));\nexport const minInt224 = -(2n ** (224n - 1n));\nexport const minInt232 = -(2n ** (232n - 1n));\nexport const minInt240 = -(2n ** (240n - 1n));\nexport const minInt248 = -(2n ** (248n - 1n));\nexport const minInt256 = -(2n ** (256n - 1n));\nexport const maxUint8 = 2n ** 8n - 1n;\nexport const maxUint16 = 2n ** 16n - 1n;\nexport const maxUint24 = 2n ** 24n - 1n;\nexport const maxUint32 = 2n ** 32n - 1n;\nexport const maxUint40 = 2n ** 40n - 1n;\nexport const maxUint48 = 2n ** 48n - 1n;\nexport const maxUint56 = 2n ** 56n - 1n;\nexport const maxUint64 = 2n ** 64n - 1n;\nexport const maxUint72 = 2n ** 72n - 1n;\nexport const maxUint80 = 2n ** 80n - 1n;\nexport const maxUint88 = 2n ** 88n - 1n;\nexport const maxUint96 = 2n ** 96n - 1n;\nexport const maxUint104 = 2n ** 104n - 1n;\nexport const maxUint112 = 2n ** 112n - 1n;\nexport const maxUint120 = 2n ** 120n - 1n;\nexport const maxUint128 = 2n ** 128n - 1n;\nexport const maxUint136 = 2n ** 136n - 1n;\nexport const maxUint144 = 2n ** 144n - 1n;\nexport const maxUint152 = 2n ** 152n - 1n;\nexport const maxUint160 = 2n ** 160n - 1n;\nexport const maxUint168 = 2n ** 168n - 1n;\nexport const maxUint176 = 2n ** 176n - 1n;\nexport const maxUint184 = 2n ** 184n - 1n;\nexport const maxUint192 = 2n ** 192n - 1n;\nexport const maxUint200 = 2n ** 200n - 1n;\nexport const maxUint208 = 2n ** 208n - 1n;\nexport const maxUint216 = 2n ** 216n - 1n;\nexport const maxUint224 = 2n ** 224n - 1n;\nexport const maxUint232 = 2n ** 232n - 1n;\nexport const maxUint240 = 2n ** 240n - 1n;\nexport const maxUint248 = 2n ** 248n - 1n;\nexport const maxUint256 = 2n ** 256n - 1n;\n//# sourceMappingURL=Solidity.js.map","import * as AbiParameters from '../AbiParameters.js';\nimport * as Address from '../Address.js';\nimport * as Bytes from '../Bytes.js';\nimport * as Errors from '../Errors.js';\nimport * as Hex from '../Hex.js';\nimport { integerRegex } from '../Solidity.js';\n/** @internal */\nexport function decodeParameter(cursor, param, options) {\n const { checksumAddress, staticPosition } = options;\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents) {\n const [length, type] = arrayComponents;\n return decodeArray(cursor, { ...param, type }, { checksumAddress, length, staticPosition });\n }\n if (param.type === 'tuple')\n return decodeTuple(cursor, param, {\n checksumAddress,\n staticPosition,\n });\n if (param.type === 'address')\n return decodeAddress(cursor, { checksum: checksumAddress });\n if (param.type === 'bool')\n return decodeBool(cursor);\n if (param.type.startsWith('bytes'))\n return decodeBytes(cursor, param, { staticPosition });\n if (param.type.startsWith('uint') || param.type.startsWith('int'))\n return decodeNumber(cursor, param);\n if (param.type === 'string')\n return decodeString(cursor, { staticPosition });\n throw new AbiParameters.InvalidTypeError(param.type);\n}\nconst sizeOfLength = 32;\nconst sizeOfOffset = 32;\n/** @internal */\nexport function decodeAddress(cursor, options = {}) {\n const { checksum = false } = options;\n const value = cursor.readBytes(32);\n const wrap = (address) => checksum ? Address.checksum(address) : address;\n return [wrap(Hex.fromBytes(Bytes.slice(value, -20))), 32];\n}\n/** @internal */\nexport function decodeArray(cursor, param, options) {\n const { checksumAddress, length, staticPosition } = options;\n // If the length of the array is not known in advance (dynamic array),\n // this means we will need to wonder off to the pointer and decode.\n if (!length) {\n // Dealing with a dynamic type, so get the offset of the array data.\n const offset = Bytes.toNumber(cursor.readBytes(sizeOfOffset));\n // Start is the static position of current slot + offset.\n const start = staticPosition + offset;\n const startOfData = start + sizeOfLength;\n // Get the length of the array from the offset.\n cursor.setPosition(start);\n const length = Bytes.toNumber(cursor.readBytes(sizeOfLength));\n // Check if the array has any dynamic children.\n const dynamicChild = hasDynamicChild(param);\n let consumed = 0;\n const value = [];\n for (let i = 0; i < length; ++i) {\n // If any of the children is dynamic, then all elements will be offset pointer, thus size of one slot (32 bytes).\n // Otherwise, elements will be the size of their encoding (consumed bytes).\n cursor.setPosition(startOfData + (dynamicChild ? i * 32 : consumed));\n const [data, consumed_] = decodeParameter(cursor, param, {\n checksumAddress,\n staticPosition: startOfData,\n });\n consumed += consumed_;\n value.push(data);\n }\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n }\n // If the length of the array is known in advance,\n // and the length of an element deeply nested in the array is not known,\n // we need to decode the offset of the array data.\n if (hasDynamicChild(param)) {\n // Dealing with dynamic types, so get the offset of the array data.\n const offset = Bytes.toNumber(cursor.readBytes(sizeOfOffset));\n // Start is the static position of current slot + offset.\n const start = staticPosition + offset;\n const value = [];\n for (let i = 0; i < length; ++i) {\n // Move cursor along to the next slot (next offset pointer).\n cursor.setPosition(start + i * 32);\n const [data] = decodeParameter(cursor, param, {\n checksumAddress,\n staticPosition: start,\n });\n value.push(data);\n }\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n }\n // If the length of the array is known in advance and the array is deeply static,\n // then we can just decode each element in sequence.\n let consumed = 0;\n const value = [];\n for (let i = 0; i < length; ++i) {\n const [data, consumed_] = decodeParameter(cursor, param, {\n checksumAddress,\n staticPosition: staticPosition + consumed,\n });\n consumed += consumed_;\n value.push(data);\n }\n return [value, consumed];\n}\n/** @internal */\nexport function decodeBool(cursor) {\n return [Bytes.toBoolean(cursor.readBytes(32), { size: 32 }), 32];\n}\n/** @internal */\nexport function decodeBytes(cursor, param, { staticPosition }) {\n const [_, size] = param.type.split('bytes');\n if (!size) {\n // Dealing with dynamic types, so get the offset of the bytes data.\n const offset = Bytes.toNumber(cursor.readBytes(32));\n // Set position of the cursor to start of bytes data.\n cursor.setPosition(staticPosition + offset);\n const length = Bytes.toNumber(cursor.readBytes(32));\n // If there is no length, we have zero data.\n if (length === 0) {\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return ['0x', 32];\n }\n const data = cursor.readBytes(length);\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [Hex.fromBytes(data), 32];\n }\n const value = Hex.fromBytes(cursor.readBytes(Number.parseInt(size, 10), 32));\n return [value, 32];\n}\n/** @internal */\nexport function decodeNumber(cursor, param) {\n const signed = param.type.startsWith('int');\n const size = Number.parseInt(param.type.split('int')[1] || '256', 10);\n const value = cursor.readBytes(32);\n return [\n size > 48\n ? Bytes.toBigInt(value, { signed })\n : Bytes.toNumber(value, { signed }),\n 32,\n ];\n}\n/** @internal */\nexport function decodeTuple(cursor, param, options) {\n const { checksumAddress, staticPosition } = options;\n // Tuples can have unnamed components (i.e. they are arrays), so we must\n // determine whether the tuple is named or unnamed. In the case of a named\n // tuple, the value will be an object where each property is the name of the\n // component. In the case of an unnamed tuple, the value will be an array.\n const hasUnnamedChild = param.components.length === 0 || param.components.some(({ name }) => !name);\n // Initialize the value to an object or an array, depending on whether the\n // tuple is named or unnamed.\n const value = hasUnnamedChild ? [] : {};\n let consumed = 0;\n // If the tuple has a dynamic child, we must first decode the offset to the\n // tuple data.\n if (hasDynamicChild(param)) {\n // Dealing with dynamic types, so get the offset of the tuple data.\n const offset = Bytes.toNumber(cursor.readBytes(sizeOfOffset));\n // Start is the static position of referencing slot + offset.\n const start = staticPosition + offset;\n for (let i = 0; i < param.components.length; ++i) {\n const component = param.components[i];\n cursor.setPosition(start + consumed);\n const [data, consumed_] = decodeParameter(cursor, component, {\n checksumAddress,\n staticPosition: start,\n });\n consumed += consumed_;\n value[hasUnnamedChild ? i : component?.name] = data;\n }\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n }\n // If the tuple has static children, we can just decode each component\n // in sequence.\n for (let i = 0; i < param.components.length; ++i) {\n const component = param.components[i];\n const [data, consumed_] = decodeParameter(cursor, component, {\n checksumAddress,\n staticPosition,\n });\n value[hasUnnamedChild ? i : component?.name] = data;\n consumed += consumed_;\n }\n return [value, consumed];\n}\n/** @internal */\nexport function decodeString(cursor, { staticPosition }) {\n // Get offset to start of string data.\n const offset = Bytes.toNumber(cursor.readBytes(32));\n // Start is the static position of current slot + offset.\n const start = staticPosition + offset;\n cursor.setPosition(start);\n const length = Bytes.toNumber(cursor.readBytes(32));\n // If there is no length, we have zero data (empty string).\n if (length === 0) {\n cursor.setPosition(staticPosition + 32);\n return ['', 32];\n }\n const data = cursor.readBytes(length, 32);\n const value = Bytes.toString(Bytes.trimLeft(data));\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n}\n/** @internal */\nexport function prepareParameters({ checksumAddress, parameters, values, }) {\n const preparedParameters = [];\n for (let i = 0; i < parameters.length; i++) {\n preparedParameters.push(prepareParameter({\n checksumAddress,\n parameter: parameters[i],\n value: values[i],\n }));\n }\n return preparedParameters;\n}\n/** @internal */\nexport function prepareParameter({ checksumAddress = false, parameter: parameter_, value, }) {\n const parameter = parameter_;\n const arrayComponents = getArrayComponents(parameter.type);\n if (arrayComponents) {\n const [length, type] = arrayComponents;\n return encodeArray(value, {\n checksumAddress,\n length,\n parameter: {\n ...parameter,\n type,\n },\n });\n }\n if (parameter.type === 'tuple') {\n return encodeTuple(value, {\n checksumAddress,\n parameter: parameter,\n });\n }\n if (parameter.type === 'address') {\n return encodeAddress(value, {\n checksum: checksumAddress,\n });\n }\n if (parameter.type === 'bool') {\n return encodeBoolean(value);\n }\n if (parameter.type.startsWith('uint') || parameter.type.startsWith('int')) {\n const signed = parameter.type.startsWith('int');\n const [, , size = '256'] = integerRegex.exec(parameter.type) ?? [];\n return encodeNumber(value, {\n signed,\n size: Number(size),\n });\n }\n if (parameter.type.startsWith('bytes')) {\n return encodeBytes(value, { type: parameter.type });\n }\n if (parameter.type === 'string') {\n return encodeString(value);\n }\n throw new AbiParameters.InvalidTypeError(parameter.type);\n}\n/** @internal */\nexport function encode(preparedParameters) {\n // 1. Compute the size of the static part of the parameters.\n let staticSize = 0;\n for (let i = 0; i < preparedParameters.length; i++) {\n const { dynamic, encoded } = preparedParameters[i];\n if (dynamic)\n staticSize += 32;\n else\n staticSize += Hex.size(encoded);\n }\n // 2. Split the parameters into static and dynamic parts.\n const staticParameters = [];\n const dynamicParameters = [];\n let dynamicSize = 0;\n for (let i = 0; i < preparedParameters.length; i++) {\n const { dynamic, encoded } = preparedParameters[i];\n if (dynamic) {\n staticParameters.push(Hex.fromNumber(staticSize + dynamicSize, { size: 32 }));\n dynamicParameters.push(encoded);\n dynamicSize += Hex.size(encoded);\n }\n else {\n staticParameters.push(encoded);\n }\n }\n // 3. Concatenate static and dynamic parts.\n return Hex.concat(...staticParameters, ...dynamicParameters);\n}\n/** @internal */\nexport function encodeAddress(value, options) {\n const { checksum = false } = options;\n Address.assert(value, { strict: checksum });\n return {\n dynamic: false,\n encoded: Hex.padLeft(value.toLowerCase()),\n };\n}\n/** @internal */\nexport function encodeArray(value, options) {\n const { checksumAddress, length, parameter } = options;\n const dynamic = length === null;\n if (!Array.isArray(value))\n throw new AbiParameters.InvalidArrayError(value);\n if (!dynamic && value.length !== length)\n throw new AbiParameters.ArrayLengthMismatchError({\n expectedLength: length,\n givenLength: value.length,\n type: `${parameter.type}[${length}]`,\n });\n let dynamicChild = false;\n const preparedParameters = [];\n for (let i = 0; i < value.length; i++) {\n const preparedParam = prepareParameter({\n checksumAddress,\n parameter,\n value: value[i],\n });\n if (preparedParam.dynamic)\n dynamicChild = true;\n preparedParameters.push(preparedParam);\n }\n if (dynamic || dynamicChild) {\n const data = encode(preparedParameters);\n if (dynamic) {\n const length = Hex.fromNumber(preparedParameters.length, { size: 32 });\n return {\n dynamic: true,\n encoded: preparedParameters.length > 0 ? Hex.concat(length, data) : length,\n };\n }\n if (dynamicChild)\n return { dynamic: true, encoded: data };\n }\n return {\n dynamic: false,\n encoded: Hex.concat(...preparedParameters.map(({ encoded }) => encoded)),\n };\n}\n/** @internal */\nexport function encodeBytes(value, { type }) {\n const [, parametersize] = type.split('bytes');\n const bytesSize = Hex.size(value);\n if (!parametersize) {\n let value_ = value;\n // If the size is not divisible by 32 bytes, pad the end\n // with empty bytes to the ceiling 32 bytes.\n if (bytesSize % 32 !== 0)\n value_ = Hex.padRight(value_, Math.ceil((value.length - 2) / 2 / 32) * 32);\n return {\n dynamic: true,\n encoded: Hex.concat(Hex.padLeft(Hex.fromNumber(bytesSize, { size: 32 })), value_),\n };\n }\n if (bytesSize !== Number.parseInt(parametersize, 10))\n throw new AbiParameters.BytesSizeMismatchError({\n expectedSize: Number.parseInt(parametersize, 10),\n value,\n });\n return { dynamic: false, encoded: Hex.padRight(value) };\n}\n/** @internal */\nexport function encodeBoolean(value) {\n if (typeof value !== 'boolean')\n throw new Errors.BaseError(`Invalid boolean value: \"${value}\" (type: ${typeof value}). Expected: \\`true\\` or \\`false\\`.`);\n return { dynamic: false, encoded: Hex.padLeft(Hex.fromBoolean(value)) };\n}\n/** @internal */\nexport function encodeNumber(value, { signed, size }) {\n if (typeof size === 'number') {\n const max = 2n ** (BigInt(size) - (signed ? 1n : 0n)) - 1n;\n const min = signed ? -max - 1n : 0n;\n if (value > max || value < min)\n throw new Hex.IntegerOutOfRangeError({\n max: max.toString(),\n min: min.toString(),\n signed,\n size: size / 8,\n value: value.toString(),\n });\n }\n return {\n dynamic: false,\n encoded: Hex.fromNumber(value, {\n size: 32,\n signed,\n }),\n };\n}\n/** @internal */\nexport function encodeString(value) {\n const hexValue = Hex.fromString(value);\n const partsLength = Math.ceil(Hex.size(hexValue) / 32);\n const parts = [];\n for (let i = 0; i < partsLength; i++) {\n parts.push(Hex.padRight(Hex.slice(hexValue, i * 32, (i + 1) * 32)));\n }\n return {\n dynamic: true,\n encoded: Hex.concat(Hex.padRight(Hex.fromNumber(Hex.size(hexValue), { size: 32 })), ...parts),\n };\n}\n/** @internal */\nexport function encodeTuple(value, options) {\n const { checksumAddress, parameter } = options;\n let dynamic = false;\n const preparedParameters = [];\n for (let i = 0; i < parameter.components.length; i++) {\n const param_ = parameter.components[i];\n const index = Array.isArray(value) ? i : param_.name;\n const preparedParam = prepareParameter({\n checksumAddress,\n parameter: param_,\n value: value[index],\n });\n preparedParameters.push(preparedParam);\n if (preparedParam.dynamic)\n dynamic = true;\n }\n return {\n dynamic,\n encoded: dynamic\n ? encode(preparedParameters)\n : Hex.concat(...preparedParameters.map(({ encoded }) => encoded)),\n };\n}\n/** @internal */\nexport function getArrayComponents(type) {\n const matches = type.match(/^(.*)\\[(\\d+)?\\]$/);\n return matches\n ? // Return `null` if the array is dynamic.\n [matches[2] ? Number(matches[2]) : null, matches[1]]\n : undefined;\n}\n/** @internal */\nexport function hasDynamicChild(param) {\n const { type } = param;\n if (type === 'string')\n return true;\n if (type === 'bytes')\n return true;\n if (type.endsWith('[]'))\n return true;\n if (type === 'tuple')\n return param.components?.some(hasDynamicChild);\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents &&\n hasDynamicChild({\n ...param,\n type: arrayComponents[1],\n }))\n return true;\n return false;\n}\n//# sourceMappingURL=abiParameters.js.map","import * as Errors from '../Errors.js';\nconst staticCursor = {\n bytes: new Uint8Array(),\n dataView: new DataView(new ArrayBuffer(0)),\n position: 0,\n positionReadCount: new Map(),\n recursiveReadCount: 0,\n recursiveReadLimit: Number.POSITIVE_INFINITY,\n assertReadLimit() {\n if (this.recursiveReadCount >= this.recursiveReadLimit)\n throw new RecursiveReadLimitExceededError({\n count: this.recursiveReadCount + 1,\n limit: this.recursiveReadLimit,\n });\n },\n assertPosition(position) {\n if (position < 0 || position > this.bytes.length - 1)\n throw new PositionOutOfBoundsError({\n length: this.bytes.length,\n position,\n });\n },\n decrementPosition(offset) {\n if (offset < 0)\n throw new NegativeOffsetError({ offset });\n const position = this.position - offset;\n this.assertPosition(position);\n this.position = position;\n },\n getReadCount(position) {\n return this.positionReadCount.get(position || this.position) || 0;\n },\n incrementPosition(offset) {\n if (offset < 0)\n throw new NegativeOffsetError({ offset });\n const position = this.position + offset;\n this.assertPosition(position);\n this.position = position;\n },\n inspectByte(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position);\n return this.bytes[position];\n },\n inspectBytes(length, position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + length - 1);\n return this.bytes.subarray(position, position + length);\n },\n inspectUint8(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position);\n return this.bytes[position];\n },\n inspectUint16(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + 1);\n return this.dataView.getUint16(position);\n },\n inspectUint24(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + 2);\n return ((this.dataView.getUint16(position) << 8) +\n this.dataView.getUint8(position + 2));\n },\n inspectUint32(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + 3);\n return this.dataView.getUint32(position);\n },\n pushByte(byte) {\n this.assertPosition(this.position);\n this.bytes[this.position] = byte;\n this.position++;\n },\n pushBytes(bytes) {\n this.assertPosition(this.position + bytes.length - 1);\n this.bytes.set(bytes, this.position);\n this.position += bytes.length;\n },\n pushUint8(value) {\n this.assertPosition(this.position);\n this.bytes[this.position] = value;\n this.position++;\n },\n pushUint16(value) {\n this.assertPosition(this.position + 1);\n this.dataView.setUint16(this.position, value);\n this.position += 2;\n },\n pushUint24(value) {\n this.assertPosition(this.position + 2);\n this.dataView.setUint16(this.position, value >> 8);\n this.dataView.setUint8(this.position + 2, value & ~4294967040);\n this.position += 3;\n },\n pushUint32(value) {\n this.assertPosition(this.position + 3);\n this.dataView.setUint32(this.position, value);\n this.position += 4;\n },\n readByte() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectByte();\n this.position++;\n return value;\n },\n readBytes(length, size) {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectBytes(length);\n this.position += size ?? length;\n return value;\n },\n readUint8() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint8();\n this.position += 1;\n return value;\n },\n readUint16() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint16();\n this.position += 2;\n return value;\n },\n readUint24() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint24();\n this.position += 3;\n return value;\n },\n readUint32() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint32();\n this.position += 4;\n return value;\n },\n get remaining() {\n return this.bytes.length - this.position;\n },\n setPosition(position) {\n const oldPosition = this.position;\n this.assertPosition(position);\n this.position = position;\n return () => (this.position = oldPosition);\n },\n _touch() {\n if (this.recursiveReadLimit === Number.POSITIVE_INFINITY)\n return;\n const count = this.getReadCount();\n this.positionReadCount.set(this.position, count + 1);\n if (count > 0)\n this.recursiveReadCount++;\n },\n};\n/** @internal */\nexport function create(bytes, { recursiveReadLimit = 8_192 } = {}) {\n const cursor = Object.create(staticCursor);\n cursor.bytes = bytes;\n cursor.dataView = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n cursor.positionReadCount = new Map();\n cursor.recursiveReadLimit = recursiveReadLimit;\n return cursor;\n}\n/** @internal */\nexport class NegativeOffsetError extends Errors.BaseError {\n constructor({ offset }) {\n super(`Offset \\`${offset}\\` cannot be negative.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Cursor.NegativeOffsetError'\n });\n }\n}\n/** @internal */\nexport class PositionOutOfBoundsError extends Errors.BaseError {\n constructor({ length, position }) {\n super(`Position \\`${position}\\` is out of bounds (\\`0 < position < ${length}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Cursor.PositionOutOfBoundsError'\n });\n }\n}\n/** @internal */\nexport class RecursiveReadLimitExceededError extends Errors.BaseError {\n constructor({ count, limit }) {\n super(`Recursive read limit of \\`${limit}\\` exceeded (recursive read count: \\`${count}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Cursor.RecursiveReadLimitExceededError'\n });\n }\n}\n//# sourceMappingURL=cursor.js.map","import * as abitype from 'abitype';\nimport * as Address from './Address.js';\nimport * as Bytes from './Bytes.js';\nimport * as Errors from './Errors.js';\nimport * as Hex from './Hex.js';\nimport * as internal from './internal/abiParameters.js';\nimport * as Cursor from './internal/cursor.js';\nimport * as Solidity from './Solidity.js';\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function decode(parameters, data, options = {}) {\n const { as = 'Array', checksumAddress = false } = options;\n const bytes = typeof data === 'string' ? Bytes.fromHex(data) : data;\n const cursor = Cursor.create(bytes);\n if (Bytes.size(bytes) === 0 && parameters.length > 0)\n throw new ZeroDataError();\n if (Bytes.size(bytes) && Bytes.size(bytes) < 32)\n throw new DataSizeTooSmallError({\n data: typeof data === 'string' ? data : Hex.fromBytes(data),\n parameters: parameters,\n size: Bytes.size(bytes),\n });\n let consumed = 0;\n const values = as === 'Array' ? [] : {};\n for (let i = 0; i < parameters.length; ++i) {\n const param = parameters[i];\n cursor.setPosition(consumed);\n const [data, consumed_] = internal.decodeParameter(cursor, param, {\n checksumAddress,\n staticPosition: 0,\n });\n consumed += consumed_;\n if (as === 'Array')\n values.push(data);\n else\n values[param.name ?? i] = data;\n }\n return values;\n}\n/**\n * Encodes primitive values into ABI encoded data as per the [Application Binary Interface (ABI) Specification](https://docs.soliditylang.org/en/latest/abi-spec).\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const data = AbiParameters.encode(\n * AbiParameters.from(['string', 'uint', 'bool']),\n * ['wagmi', 420n, true],\n * )\n * ```\n *\n * @example\n * ### JSON Parameters\n *\n * Specify **JSON ABI** Parameters as schema:\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const data = AbiParameters.encode(\n * [\n * { type: 'string', name: 'name' },\n * { type: 'uint', name: 'age' },\n * { type: 'bool', name: 'isOwner' },\n * ],\n * ['wagmi', 420n, true],\n * )\n * ```\n *\n * @param parameters - The set of ABI parameters to encode, in the shape of the `inputs` or `outputs` attribute of an ABI Item. These parameters must include valid [ABI types](https://docs.soliditylang.org/en/latest/types.html).\n * @param values - The set of primitive values that correspond to the ABI types defined in `parameters`.\n * @returns ABI encoded data.\n */\nexport function encode(parameters, values, options) {\n const { checksumAddress = false } = options ?? {};\n if (parameters.length !== values.length)\n throw new LengthMismatchError({\n expectedLength: parameters.length,\n givenLength: values.length,\n });\n // Prepare the parameters to determine dynamic types to encode.\n const preparedParameters = internal.prepareParameters({\n checksumAddress,\n parameters: parameters,\n values: values,\n });\n const data = internal.encode(preparedParameters);\n if (data.length === 0)\n return '0x';\n return data;\n}\n/**\n * Encodes an array of primitive values to a [packed ABI encoding](https://docs.soliditylang.org/en/latest/abi-spec.html#non-standard-packed-mode).\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const encoded = AbiParameters.encodePacked(\n * ['address', 'string'],\n * ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 'hello world'],\n * )\n * // @log: '0xd8da6bf26964af9d7eed9e03e53415d37aa9604568656c6c6f20776f726c64'\n * ```\n *\n * @param types - Set of ABI types to pack encode.\n * @param values - The set of primitive values that correspond to the ABI types defined in `types`.\n * @returns The encoded packed data.\n */\nexport function encodePacked(types, values) {\n if (types.length !== values.length)\n throw new LengthMismatchError({\n expectedLength: types.length,\n givenLength: values.length,\n });\n const data = [];\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n const value = values[i];\n data.push(encodePacked.encode(type, value));\n }\n return Hex.concat(...data);\n}\n(function (encodePacked) {\n // eslint-disable-next-line jsdoc/require-jsdoc\n function encode(type, value, isArray = false) {\n if (type === 'address') {\n const address = value;\n Address.assert(address);\n return Hex.padLeft(address.toLowerCase(), isArray ? 32 : 0);\n }\n if (type === 'string')\n return Hex.fromString(value);\n if (type === 'bytes')\n return value;\n if (type === 'bool')\n return Hex.padLeft(Hex.fromBoolean(value), isArray ? 32 : 1);\n const intMatch = type.match(Solidity.integerRegex);\n if (intMatch) {\n const [_type, baseType, bits = '256'] = intMatch;\n const size = Number.parseInt(bits, 10) / 8;\n return Hex.fromNumber(value, {\n size: isArray ? 32 : size,\n signed: baseType === 'int',\n });\n }\n const bytesMatch = type.match(Solidity.bytesRegex);\n if (bytesMatch) {\n const [_type, size] = bytesMatch;\n if (Number.parseInt(size, 10) !== (value.length - 2) / 2)\n throw new BytesSizeMismatchError({\n expectedSize: Number.parseInt(size, 10),\n value: value,\n });\n return Hex.padRight(value, isArray ? 32 : 0);\n }\n const arrayMatch = type.match(Solidity.arrayRegex);\n if (arrayMatch && Array.isArray(value)) {\n const [_type, childType] = arrayMatch;\n const data = [];\n for (let i = 0; i < value.length; i++) {\n data.push(encode(childType, value[i], true));\n }\n if (data.length === 0)\n return '0x';\n return Hex.concat(...data);\n }\n throw new InvalidTypeError(type);\n }\n encodePacked.encode = encode;\n})(encodePacked || (encodePacked = {}));\n/**\n * Formats {@link ox#AbiParameters.AbiParameters} into **Human Readable ABI Parameters**.\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const formatted = AbiParameters.format([\n * {\n * name: 'spender',\n * type: 'address',\n * },\n * {\n * name: 'amount',\n * type: 'uint256',\n * },\n * ])\n *\n * formatted\n * // ^?\n *\n *\n * ```\n *\n * @param parameters - The ABI Parameters to format.\n * @returns The formatted ABI Parameters .\n */\nexport function format(parameters) {\n return abitype.formatAbiParameters(parameters);\n}\n/**\n * Parses arbitrary **JSON ABI Parameters** or **Human Readable ABI Parameters** into typed {@link ox#AbiParameters.AbiParameters}.\n *\n * @example\n * ### JSON Parameters\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const parameters = AbiParameters.from([\n * {\n * name: 'spender',\n * type: 'address',\n * },\n * {\n * name: 'amount',\n * type: 'uint256',\n * },\n * ])\n *\n * parameters\n * //^?\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Human Readable Parameters\n *\n * Human Readable ABI Parameters can be parsed into a typed {@link ox#AbiParameters.AbiParameters}:\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const parameters = AbiParameters.from('address spender, uint256 amount')\n *\n * parameters\n * //^?\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * It is possible to specify `struct`s along with your definitions:\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const parameters = AbiParameters.from([\n * 'struct Foo { address spender; uint256 amount; }', // [!code hl]\n * 'Foo foo, address bar',\n * ])\n *\n * parameters\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n *\n *\n * @param parameters - The ABI Parameters to parse.\n * @returns The typed ABI Parameters.\n */\nexport function from(parameters) {\n if (Array.isArray(parameters) && typeof parameters[0] === 'string')\n return abitype.parseAbiParameters(parameters);\n if (typeof parameters === 'string')\n return abitype.parseAbiParameters(parameters);\n return parameters;\n}\n/**\n * Throws when the data size is too small for the given parameters.\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * AbiParameters.decode([{ type: 'uint256' }], '0x010f')\n * // ↑ ❌ 2 bytes\n * // @error: AbiParameters.DataSizeTooSmallError: Data size of 2 bytes is too small for given parameters.\n * // @error: Params: (uint256)\n * // @error: Data: 0x010f (2 bytes)\n * ```\n *\n * ### Solution\n *\n * Pass a valid data size.\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * AbiParameters.decode([{ type: 'uint256' }], '0x00000000000000000000000000000000000000000000000000000000000010f')\n * // ↑ ✅ 32 bytes\n * ```\n */\nexport class DataSizeTooSmallError extends Errors.BaseError {\n constructor({ data, parameters, size, }) {\n super(`Data size of ${size} bytes is too small for given parameters.`, {\n metaMessages: [\n `Params: (${abitype.formatAbiParameters(parameters)})`,\n `Data: ${data} (${size} bytes)`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiParameters.DataSizeTooSmallError'\n });\n }\n}\n/**\n * Throws when zero data is provided, but data is expected.\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * AbiParameters.decode([{ type: 'uint256' }], '0x')\n * // ↑ ❌ zero data\n * // @error: AbiParameters.DataSizeTooSmallError: Data size of 2 bytes is too small for given parameters.\n * // @error: Params: (uint256)\n * // @error: Data: 0x010f (2 bytes)\n * ```\n *\n * ### Solution\n *\n * Pass valid data.\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * AbiParameters.decode([{ type: 'uint256' }], '0x00000000000000000000000000000000000000000000000000000000000010f')\n * // ↑ ✅ 32 bytes\n * ```\n */\nexport class ZeroDataError extends Errors.BaseError {\n constructor() {\n super('Cannot decode zero data (\"0x\") with ABI parameters.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiParameters.ZeroDataError'\n });\n }\n}\n/**\n * The length of the array value does not match the length specified in the corresponding ABI parameter.\n *\n * ### Example\n *\n * ```ts twoslash\n * // @noErrors\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from('uint256[3]'), [[69n, 420n]])\n * // ↑ expected: 3 ↑ ❌ length: 2\n * // @error: AbiParameters.ArrayLengthMismatchError: ABI encoding array length mismatch\n * // @error: for type `uint256[3]`. Expected: `3`. Given: `2`.\n * ```\n *\n * ### Solution\n *\n * Pass an array of the correct length.\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from(['uint256[3]']), [[69n, 420n, 69n]])\n * // ↑ ✅ length: 3\n * ```\n */\nexport class ArrayLengthMismatchError extends Errors.BaseError {\n constructor({ expectedLength, givenLength, type, }) {\n super(`Array length mismatch for type \\`${type}\\`. Expected: \\`${expectedLength}\\`. Given: \\`${givenLength}\\`.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiParameters.ArrayLengthMismatchError'\n });\n }\n}\n/**\n * The size of the bytes value does not match the size specified in the corresponding ABI parameter.\n *\n * ### Example\n *\n * ```ts twoslash\n * // @noErrors\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from('bytes8'), [['0xdeadbeefdeadbeefdeadbeef']])\n * // ↑ expected: 8 bytes ↑ ❌ size: 12 bytes\n * // @error: BytesSizeMismatchError: Size of bytes \"0xdeadbeefdeadbeefdeadbeef\"\n * // @error: (bytes12) does not match expected size (bytes8).\n * ```\n *\n * ### Solution\n *\n * Pass a bytes value of the correct size.\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from(['bytes8']), ['0xdeadbeefdeadbeef'])\n * // ↑ ✅ size: 8 bytes\n * ```\n */\nexport class BytesSizeMismatchError extends Errors.BaseError {\n constructor({ expectedSize, value, }) {\n super(`Size of bytes \"${value}\" (bytes${Hex.size(value)}) does not match expected size (bytes${expectedSize}).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiParameters.BytesSizeMismatchError'\n });\n }\n}\n/**\n * The length of the values to encode does not match the length of the ABI parameters.\n *\n * ### Example\n *\n * ```ts twoslash\n * // @noErrors\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from(['string', 'uint256']), ['hello'])\n * // @error: LengthMismatchError: ABI encoding params/values length mismatch.\n * // @error: Expected length (params): 2\n * // @error: Given length (values): 1\n * ```\n *\n * ### Solution\n *\n * Pass the correct number of values to encode.\n *\n * ### Solution\n *\n * Pass a [valid ABI type](https://docs.soliditylang.org/en/develop/abi-spec.html#types).\n */\nexport class LengthMismatchError extends Errors.BaseError {\n constructor({ expectedLength, givenLength, }) {\n super([\n 'ABI encoding parameters/values length mismatch.',\n `Expected length (parameters): ${expectedLength}`,\n `Given length (values): ${givenLength}`,\n ].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiParameters.LengthMismatchError'\n });\n }\n}\n/**\n * The value provided is not a valid array as specified in the corresponding ABI parameter.\n *\n * ### Example\n *\n * ```ts twoslash\n * // @noErrors\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from(['uint256[3]']), [69])\n * ```\n *\n * ### Solution\n *\n * Pass an array value.\n */\nexport class InvalidArrayError extends Errors.BaseError {\n constructor(value) {\n super(`Value \\`${value}\\` is not a valid array.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiParameters.InvalidArrayError'\n });\n }\n}\n/**\n * Throws when the ABI parameter type is invalid.\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * AbiParameters.decode([{ type: 'lol' }], '0x00000000000000000000000000000000000000000000000000000000000010f')\n * // ↑ ❌ invalid type\n * // @error: AbiParameters.InvalidTypeError: Type `lol` is not a valid ABI Type.\n * ```\n */\nexport class InvalidTypeError extends Errors.BaseError {\n constructor(type) {\n super(`Type \\`${type}\\` is not a valid ABI Type.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiParameters.InvalidTypeError'\n });\n }\n}\n//# sourceMappingURL=AbiParameters.js.map","import { InvalidAbiParametersError } from './errors/abiParameter.js';\nimport { isStructSignature, modifiers } from './runtime/signatures.js';\nimport { parseStructs } from './runtime/structs.js';\nimport { splitParameters } from './runtime/utils.js';\nimport { parseAbiParameter as parseAbiParameter_ } from './runtime/utils.js';\n/**\n * Parses human-readable ABI parameters into {@link AbiParameter}s\n *\n * @param params - Human-readable ABI parameters\n * @returns Parsed {@link AbiParameter}s\n *\n * @example\n * const abiParameters = parseAbiParameters('address from, address to, uint256 amount')\n * // ^? const abiParameters: [{ type: \"address\"; name: \"from\"; }, { type: \"address\";...\n *\n * @example\n * const abiParameters = parseAbiParameters([\n * // ^? const abiParameters: [{ type: \"tuple\"; components: [{ type: \"string\"; name:...\n * 'Baz bar',\n * 'struct Baz { string name; }',\n * ])\n */\nexport function parseAbiParameters(params) {\n const abiParameters = [];\n if (typeof params === 'string') {\n const parameters = splitParameters(params);\n const length = parameters.length;\n for (let i = 0; i < length; i++) {\n abiParameters.push(parseAbiParameter_(parameters[i], { modifiers }));\n }\n }\n else {\n const structs = parseStructs(params);\n const length = params.length;\n for (let i = 0; i < length; i++) {\n const signature = params[i];\n if (isStructSignature(signature))\n continue;\n const parameters = splitParameters(signature);\n const length = parameters.length;\n for (let k = 0; k < length; k++) {\n abiParameters.push(parseAbiParameter_(parameters[k], { modifiers, structs }));\n }\n }\n }\n if (abiParameters.length === 0)\n throw new InvalidAbiParametersError({ params });\n return abiParameters;\n}\n//# sourceMappingURL=parseAbiParameters.js.map","import * as abitype from 'abitype';\nimport * as AbiItem from './AbiItem.js';\nimport * as AbiParameters from './AbiParameters.js';\nimport * as Hex from './Hex.js';\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function decode(...parameters) {\n const [abiConstructor, options] = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, options] = parameters;\n return [fromAbi(abi), options];\n }\n return parameters;\n })();\n const { bytecode } = options;\n if (abiConstructor.inputs?.length === 0)\n return undefined;\n const data = options.data.replace(bytecode, '0x');\n return AbiParameters.decode(abiConstructor.inputs, data);\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function encode(...parameters) {\n const [abiConstructor, options] = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, options] = parameters;\n return [fromAbi(abi), options];\n }\n return parameters;\n })();\n const { bytecode, args } = options;\n return Hex.concat(bytecode, abiConstructor.inputs?.length && args?.length\n ? AbiParameters.encode(abiConstructor.inputs, args)\n : '0x');\n}\n/** @internal */\nexport function format(abiConstructor) {\n return abitype.formatAbiItem(abiConstructor);\n}\n/** @internal */\nexport function from(abiConstructor) {\n return AbiItem.from(abiConstructor);\n}\n/** @internal */\nexport function fromAbi(abi) {\n const item = abi.find((item) => item.type === 'constructor');\n if (!item)\n throw new AbiItem.NotFoundError({ name: 'constructor' });\n return item;\n}\n//# sourceMappingURL=AbiConstructor.js.map","import * as abitype from 'abitype';\nimport * as AbiItem from './AbiItem.js';\nimport * as AbiParameters from './AbiParameters.js';\nimport * as Hex from './Hex.js';\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function decodeData(...parameters) {\n const [abiFunction, data] = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name, data] = parameters;\n return [fromAbi(abi, name), data];\n }\n return parameters;\n })();\n const { overloads } = abiFunction;\n if (Hex.size(data) < 4)\n throw new AbiItem.InvalidSelectorSizeError({ data });\n if (abiFunction.inputs?.length === 0)\n return undefined;\n const item = overloads\n ? fromAbi([abiFunction, ...overloads], data)\n : abiFunction;\n if (Hex.size(data) <= 4)\n return undefined;\n return AbiParameters.decode(item.inputs, Hex.slice(data, 4));\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function decodeResult(...parameters) {\n const [abiFunction, data, options = {}] = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name, data, options] = parameters;\n return [fromAbi(abi, name), data, options];\n }\n return parameters;\n })();\n const values = AbiParameters.decode(abiFunction.outputs, data, options);\n if (values && Object.keys(values).length === 0)\n return undefined;\n if (values && Object.keys(values).length === 1) {\n if (Array.isArray(values))\n return values[0];\n return Object.values(values)[0];\n }\n return values;\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function encodeData(...parameters) {\n const [abiFunction, args = []] = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name, args] = parameters;\n return [fromAbi(abi, name, { args }), args];\n }\n const [abiFunction, args] = parameters;\n return [abiFunction, args];\n })();\n const { overloads } = abiFunction;\n const item = overloads\n ? fromAbi([abiFunction, ...overloads], abiFunction.name, {\n args,\n })\n : abiFunction;\n const selector = getSelector(item);\n const data = args.length > 0 ? AbiParameters.encode(item.inputs, args) : undefined;\n return data ? Hex.concat(selector, data) : selector;\n}\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function encodeResult(...parameters) {\n const [abiFunction, output, options = {}] = (() => {\n if (Array.isArray(parameters[0])) {\n const [abi, name, output, options] = parameters;\n return [fromAbi(abi, name), output, options];\n }\n return parameters;\n })();\n const { as = 'Array' } = options;\n const values = (() => {\n if (abiFunction.outputs.length === 1)\n return [output];\n if (Array.isArray(output))\n return output;\n if (as === 'Object')\n return Object.values(output);\n return [output];\n })();\n return AbiParameters.encode(abiFunction.outputs, values);\n}\n/**\n * Formats an {@link ox#AbiFunction.AbiFunction} into a **Human Readable ABI Function**.\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const formatted = AbiFunction.format({\n * type: 'function',\n * name: 'approve',\n * stateMutability: 'nonpayable',\n * inputs: [\n * {\n * name: 'spender',\n * type: 'address',\n * },\n * {\n * name: 'amount',\n * type: 'uint256',\n * },\n * ],\n * outputs: [{ type: 'bool' }],\n * })\n *\n * formatted\n * // ^?\n *\n *\n * ```\n *\n * @param abiFunction - The ABI Function to format.\n * @returns The formatted ABI Function.\n */\nexport function format(abiFunction) {\n return abitype.formatAbiItem(abiFunction);\n}\n/**\n * Parses an arbitrary **JSON ABI Function** or **Human Readable ABI Function** into a typed {@link ox#AbiFunction.AbiFunction}.\n *\n * @example\n * ### JSON ABIs\n *\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const approve = AbiFunction.from({\n * type: 'function',\n * name: 'approve',\n * stateMutability: 'nonpayable',\n * inputs: [\n * {\n * name: 'spender',\n * type: 'address',\n * },\n * {\n * name: 'amount',\n * type: 'uint256',\n * },\n * ],\n * outputs: [{ type: 'bool' }],\n * })\n *\n * approve\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Human Readable ABIs\n *\n * A Human Readable ABI can be parsed into a typed ABI object:\n *\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const approve = AbiFunction.from(\n * 'function approve(address spender, uint256 amount) returns (bool)' // [!code hl]\n * )\n *\n * approve\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * It is possible to specify `struct`s along with your definitions:\n *\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const approve = AbiFunction.from([\n * 'struct Foo { address spender; uint256 amount; }', // [!code hl]\n * 'function approve(Foo foo) returns (bool)',\n * ])\n *\n * approve\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n *\n *\n * @param abiFunction - The ABI Function to parse.\n * @returns Typed ABI Function.\n */\nexport function from(abiFunction, options = {}) {\n return AbiItem.from(abiFunction, options);\n}\n/**\n * Extracts an {@link ox#AbiFunction.AbiFunction} from an {@link ox#Abi.Abi} given a name and optional arguments.\n *\n * @example\n * ### Extracting by Name\n *\n * ABI Functions can be extracted by their name using the `name` option:\n *\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const abi = Abi.from([\n * 'function foo()',\n * 'event Transfer(address owner, address to, uint256 tokenId)',\n * 'function bar(string a) returns (uint256 x)',\n * ])\n *\n * const item = AbiFunction.fromAbi(abi, 'foo') // [!code focus]\n * // ^?\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Extracting by Selector\n *\n * ABI Functions can be extract by their selector when {@link ox#Hex.Hex} is provided to `name`.\n *\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const abi = Abi.from([\n * 'function foo()',\n * 'event Transfer(address owner, address to, uint256 tokenId)',\n * 'function bar(string a) returns (uint256 x)',\n * ])\n * const item = AbiFunction.fromAbi(abi, '0x095ea7b3') // [!code focus]\n * // ^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * :::note\n *\n * Extracting via a hex selector is useful when extracting an ABI Function from an `eth_call` RPC response or\n * from a Transaction `input`.\n *\n * :::\n *\n * @param abi - The ABI to extract from.\n * @param name - The name (or selector) of the ABI item to extract.\n * @param options - Extraction options.\n * @returns The ABI item.\n */\nexport function fromAbi(abi, name, options) {\n const item = AbiItem.fromAbi(abi, name, options);\n if (item.type !== 'function')\n throw new AbiItem.NotFoundError({ name, type: 'function' });\n return item;\n}\n/**\n * Computes the [4-byte selector](https://solidity-by-example.org/function-selector/) for an {@link ox#AbiFunction.AbiFunction}.\n *\n * Useful for computing function selectors for calldata.\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const selector = AbiFunction.getSelector('function ownerOf(uint256 tokenId)')\n * // @log: '0x6352211e'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const selector = AbiFunction.getSelector({\n * inputs: [{ type: 'uint256' }],\n * name: 'ownerOf',\n * outputs: [],\n * stateMutability: 'view',\n * type: 'function'\n * })\n * // @log: '0x6352211e'\n * ```\n *\n * @param abiItem - The ABI item to compute the selector for.\n * @returns The first 4 bytes of the {@link ox#Hash.(keccak256:function)} hash of the function signature.\n */\nexport function getSelector(abiItem) {\n return AbiItem.getSelector(abiItem);\n}\n//# sourceMappingURL=AbiFunction.js.map","import * as AbiParameters from '../core/AbiParameters.js';\nimport * as Errors from '../core/Errors.js';\nimport * as Hex from '../core/Hex.js';\n/**\n * Magic bytes used to identify ERC-6492 wrapped signatures.\n */\nexport const magicBytes = '0x6492649264926492649264926492649264926492649264926492649264926492';\n/**\n * Deployless ERC-6492 signature verification bytecode.\n */\nexport const universalSignatureValidatorBytecode = '0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572';\n/**\n * ABI for the ERC-6492 universal deployless signature validator contract.\n *\n * Constructor return value is `0x1` (valid) or `0x0` (invalid).\n */\nexport const universalSignatureValidatorAbi = [\n {\n inputs: [\n {\n name: '_signer',\n type: 'address',\n },\n {\n name: '_hash',\n type: 'bytes32',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [\n {\n name: '_signer',\n type: 'address',\n },\n {\n name: '_hash',\n type: 'bytes32',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n name: 'isValidSig',\n },\n];\n/**\n * Asserts that the wrapped signature is valid.\n *\n * @example\n * ```ts twoslash\n * import { SignatureErc6492 } from 'ox/erc6492'\n *\n * SignatureErc6492.assert('0xdeadbeef')\n * // @error: InvalidWrappedSignatureError: Value `0xdeadbeef` is an invalid ERC-6492 wrapped signature.\n * ```\n *\n * @param wrapped - The wrapped signature to assert.\n */\nexport function assert(wrapped) {\n if (Hex.slice(wrapped, -32) !== magicBytes)\n throw new InvalidWrappedSignatureError(wrapped);\n}\n/**\n * Parses an [ERC-6492 wrapped signature](https://eips.ethereum.org/EIPS/eip-6492#specification) into its constituent parts.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Secp256k1 } from 'ox'\n * import { SignatureErc6492 } from 'ox/erc6492' // [!code focus]\n *\n * const signature = Secp256k1.sign({\n * payload: '0x...',\n * privateKey: '0x...',\n * })\n *\n * // Instantiate from serialized format. // [!code focus]\n * const wrapped = SignatureErc6492.from('0x...') // [!code focus]\n * // @log: { data: '0x...', signature: { ... }, to: '0x...', } // [!code focus]\n *\n * // Instantiate from constituent parts. // [!code focus]\n * const wrapped = SignatureErc6492.from({ // [!code focus]\n * data: '0x...', // [!code focus]\n * signature, // [!code focus]\n * to: '0x...', // [!code focus]\n * })\n * // @log: { data: '0x...', signature: { ... }, to: '0x...', }\n * ```\n *\n * @param wrapped - Wrapped signature to parse.\n * @returns Wrapped signature.\n */\nexport function from(wrapped) {\n if (typeof wrapped === 'string')\n return unwrap(wrapped);\n return wrapped;\n}\n/**\n * Parses an [ERC-6492 wrapped signature](https://eips.ethereum.org/EIPS/eip-6492#specification) into its constituent parts.\n *\n * @example\n * ```ts twoslash\n * import { SignatureErc6492 } from 'ox/erc6492'\n *\n * const { data, signature, to } = SignatureErc6492.unwrap('0x...')\n * ```\n *\n * @param wrapped - Wrapped signature to parse.\n * @returns Wrapped signature.\n */\nexport function unwrap(wrapped) {\n assert(wrapped);\n const [to, data, signature] = AbiParameters.decode(AbiParameters.from('address, bytes, bytes'), wrapped);\n return { data, signature, to };\n}\n/**\n * Serializes an [ERC-6492 wrapped signature](https://eips.ethereum.org/EIPS/eip-6492#specification).\n *\n * @example\n * ```ts twoslash\n * import { Secp256k1, Signature } from 'ox'\n * import { SignatureErc6492 } from 'ox/erc6492' // [!code focus]\n *\n * const signature = Secp256k1.sign({\n * payload: '0x...',\n * privateKey: '0x...',\n * })\n *\n * const wrapped = SignatureErc6492.wrap({ // [!code focus]\n * data: '0xdeadbeef', // [!code focus]\n * signature: Signature.toHex(signature), // [!code focus]\n * to: '0x00000000219ab540356cBB839Cbe05303d7705Fa', // [!code focus]\n * }) // [!code focus]\n * ```\n *\n * @param value - Wrapped signature to serialize.\n * @returns Serialized wrapped signature.\n */\nexport function wrap(value) {\n const { data, signature, to } = value;\n return Hex.concat(AbiParameters.encode(AbiParameters.from('address, bytes, bytes'), [\n to,\n data,\n signature,\n ]), magicBytes);\n}\n/**\n * Validates a wrapped signature. Returns `true` if the wrapped signature is valid, `false` otherwise.\n *\n * @example\n * ```ts twoslash\n * import { SignatureErc6492 } from 'ox/erc6492'\n *\n * const valid = SignatureErc6492.validate('0xdeadbeef')\n * // @log: false\n * ```\n *\n * @param wrapped - The wrapped signature to validate.\n * @returns `true` if the wrapped signature is valid, `false` otherwise.\n */\nexport function validate(wrapped) {\n try {\n assert(wrapped);\n return true;\n }\n catch {\n return false;\n }\n}\n/** Thrown when the ERC-6492 wrapped signature is invalid. */\nexport class InvalidWrappedSignatureError extends Errors.BaseError {\n constructor(wrapped) {\n super(`Value \\`${wrapped}\\` is an invalid ERC-6492 wrapped signature.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'SignatureErc6492.InvalidWrappedSignatureError'\n });\n }\n}\n//# sourceMappingURL=SignatureErc6492.js.map","import { secp256k1 } from '@noble/curves/secp256k1';\nimport * as Bytes from './Bytes.js';\nimport * as Errors from './Errors.js';\nimport * as Hex from './Hex.js';\nimport * as Json from './Json.js';\nimport * as Solidity from './Solidity.js';\n/**\n * Asserts that a Signature is valid.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * Signature.assert({\n * r: -49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1,\n * })\n * // @error: InvalidSignatureRError:\n * // @error: Value `-549...n` is an invalid r value.\n * // @error: r must be a positive integer less than 2^256.\n * ```\n *\n * @param signature - The signature object to assert.\n */\nexport function assert(signature, options = {}) {\n const { recovered } = options;\n if (typeof signature.r === 'undefined')\n throw new MissingPropertiesError({ signature });\n if (typeof signature.s === 'undefined')\n throw new MissingPropertiesError({ signature });\n if (recovered && typeof signature.yParity === 'undefined')\n throw new MissingPropertiesError({ signature });\n if (signature.r < 0n || signature.r > Solidity.maxUint256)\n throw new InvalidRError({ value: signature.r });\n if (signature.s < 0n || signature.s > Solidity.maxUint256)\n throw new InvalidSError({ value: signature.s });\n if (typeof signature.yParity === 'number' &&\n signature.yParity !== 0 &&\n signature.yParity !== 1)\n throw new InvalidYParityError({ value: signature.yParity });\n}\n/**\n * Deserializes a {@link ox#Bytes.Bytes} signature into a structured {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Signature } from 'ox'\n *\n * Signature.fromBytes(new Uint8Array([128, 3, 131, ...]))\n * // @log: { r: 5231...n, s: 3522...n, yParity: 0 }\n * ```\n *\n * @param signature - The serialized signature.\n * @returns The deserialized {@link ox#Signature.Signature}.\n */\nexport function fromBytes(signature) {\n return fromHex(Hex.fromBytes(signature));\n}\n/**\n * Deserializes a {@link ox#Hex.Hex} signature into a structured {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * Signature.fromHex('0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c')\n * // @log: { r: 5231...n, s: 3522...n, yParity: 0 }\n * ```\n *\n * @param serialized - The serialized signature.\n * @returns The deserialized {@link ox#Signature.Signature}.\n */\nexport function fromHex(signature) {\n if (signature.length !== 130 && signature.length !== 132)\n throw new InvalidSerializedSizeError({ signature });\n const r = BigInt(Hex.slice(signature, 0, 32));\n const s = BigInt(Hex.slice(signature, 32, 64));\n const yParity = (() => {\n const yParity = Number(`0x${signature.slice(130)}`);\n if (Number.isNaN(yParity))\n return undefined;\n try {\n return vToYParity(yParity);\n }\n catch {\n throw new InvalidYParityError({ value: yParity });\n }\n })();\n if (typeof yParity === 'undefined')\n return {\n r,\n s,\n };\n return {\n r,\n s,\n yParity,\n };\n}\n/**\n * Extracts a {@link ox#Signature.Signature} from an arbitrary object that may include signature properties.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Signature } from 'ox'\n *\n * Signature.extract({\n * baz: 'barry',\n * foo: 'bar',\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1,\n * zebra: 'stripes',\n * })\n * // @log: {\n * // @log: r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * // @log: s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * // @log: yParity: 1\n * // @log: }\n * ```\n *\n * @param value - The arbitrary object to extract the signature from.\n * @returns The extracted {@link ox#Signature.Signature}.\n */\nexport function extract(value) {\n if (typeof value.r === 'undefined')\n return undefined;\n if (typeof value.s === 'undefined')\n return undefined;\n return from(value);\n}\n/**\n * Instantiates a typed {@link ox#Signature.Signature} object from a {@link ox#Signature.Signature}, {@link ox#Signature.Legacy}, {@link ox#Bytes.Bytes}, or {@link ox#Hex.Hex}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * Signature.from({\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1,\n * })\n * // @log: {\n * // @log: r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * // @log: s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * // @log: yParity: 1\n * // @log: }\n * ```\n *\n * @example\n * ### From Serialized\n *\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * Signature.from('0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db801')\n * // @log: {\n * // @log: r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * // @log: s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * // @log: yParity: 1,\n * // @log: }\n * ```\n *\n * @example\n * ### From Legacy\n *\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * Signature.from({\n * r: 47323457007453657207889730243826965761922296599680473886588287015755652701072n,\n * s: 57228803202727131502949358313456071280488184270258293674242124340113824882788n,\n * v: 27,\n * })\n * // @log: {\n * // @log: r: 47323457007453657207889730243826965761922296599680473886588287015755652701072n,\n * // @log: s: 57228803202727131502949358313456071280488184270258293674242124340113824882788n,\n * // @log: yParity: 0\n * // @log: }\n * ```\n *\n * @param signature - The signature value to instantiate.\n * @returns The instantiated {@link ox#Signature.Signature}.\n */\nexport function from(signature) {\n const signature_ = (() => {\n if (typeof signature === 'string')\n return fromHex(signature);\n if (signature instanceof Uint8Array)\n return fromBytes(signature);\n if (typeof signature.r === 'string')\n return fromRpc(signature);\n if (signature.v)\n return fromLegacy(signature);\n return {\n r: signature.r,\n s: signature.s,\n ...(typeof signature.yParity !== 'undefined'\n ? { yParity: signature.yParity }\n : {}),\n };\n })();\n assert(signature_);\n return signature_;\n}\n/**\n * Converts a DER-encoded signature to a {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Signature } from 'ox'\n *\n * const signature = Signature.fromDerBytes(new Uint8Array([132, 51, 23, ...]))\n * // @log: {\n * // @log: r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * // @log: s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * // @log: }\n * ```\n *\n * @param signature - The DER-encoded signature to convert.\n * @returns The {@link ox#Signature.Signature}.\n */\nexport function fromDerBytes(signature) {\n return fromDerHex(Hex.fromBytes(signature));\n}\n/**\n * Converts a DER-encoded signature to a {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.fromDerHex('0x304402206e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf02204a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db8')\n * // @log: {\n * // @log: r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * // @log: s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * // @log: }\n * ```\n *\n * @param signature - The DER-encoded signature to convert.\n * @returns The {@link ox#Signature.Signature}.\n */\nexport function fromDerHex(signature) {\n const { r, s } = secp256k1.Signature.fromDER(Hex.from(signature).slice(2));\n return { r, s };\n}\n/**\n * Converts a {@link ox#Signature.Legacy} into a {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const legacy = Signature.fromLegacy({ r: 1n, s: 2n, v: 28 })\n * // @log: { r: 1n, s: 2n, yParity: 1 }\n * ```\n *\n * @param signature - The {@link ox#Signature.Legacy} to convert.\n * @returns The converted {@link ox#Signature.Signature}.\n */\nexport function fromLegacy(signature) {\n return {\n r: signature.r,\n s: signature.s,\n yParity: vToYParity(signature.v),\n };\n}\n/**\n * Converts a {@link ox#Signature.Rpc} into a {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.fromRpc({\n * r: '0x635dc2033e60185bb36709c29c75d64ea51dfbd91c32ef4be198e4ceb169fb4d',\n * s: '0x50c2667ac4c771072746acfdcf1f1483336dcca8bd2df47cd83175dbe60f0540',\n * yParity: '0x0',\n * })\n * ```\n *\n * @param signature - The {@link ox#Signature.Rpc} to convert.\n * @returns The converted {@link ox#Signature.Signature}.\n */\nexport function fromRpc(signature) {\n const yParity = (() => {\n const v = signature.v ? Number(signature.v) : undefined;\n let yParity = signature.yParity ? Number(signature.yParity) : undefined;\n if (typeof v === 'number' && typeof yParity !== 'number')\n yParity = vToYParity(v);\n if (typeof yParity !== 'number')\n throw new InvalidYParityError({ value: signature.yParity });\n return yParity;\n })();\n return {\n r: BigInt(signature.r),\n s: BigInt(signature.s),\n yParity,\n };\n}\n/**\n * Converts a {@link ox#Signature.Tuple} to a {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.fromTuple(['0x01', '0x7b', '0x1c8'])\n * // @log: {\n * // @log: r: 123n,\n * // @log: s: 456n,\n * // @log: yParity: 1,\n * // @log: }\n * ```\n *\n * @param tuple - The {@link ox#Signature.Tuple} to convert.\n * @returns The {@link ox#Signature.Signature}.\n */\nexport function fromTuple(tuple) {\n const [yParity, r, s] = tuple;\n return from({\n r: r === '0x' ? 0n : BigInt(r),\n s: s === '0x' ? 0n : BigInt(s),\n yParity: yParity === '0x' ? 0 : Number(yParity),\n });\n}\n/**\n * Serializes a {@link ox#Signature.Signature} to {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.toBytes({\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1\n * })\n * // @log: Uint8Array [102, 16, 10, ...]\n * ```\n *\n * @param signature - The signature to serialize.\n * @returns The serialized signature.\n */\nexport function toBytes(signature) {\n return Bytes.fromHex(toHex(signature));\n}\n/**\n * Serializes a {@link ox#Signature.Signature} to {@link ox#Hex.Hex}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.toHex({\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1\n * })\n * // @log: '0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c'\n * ```\n *\n * @param signature - The signature to serialize.\n * @returns The serialized signature.\n */\nexport function toHex(signature) {\n assert(signature);\n const r = signature.r;\n const s = signature.s;\n const signature_ = Hex.concat(Hex.fromNumber(r, { size: 32 }), Hex.fromNumber(s, { size: 32 }), \n // If the signature is recovered, add the recovery byte to the signature.\n typeof signature.yParity === 'number'\n ? Hex.fromNumber(yParityToV(signature.yParity), { size: 1 })\n : '0x');\n return signature_;\n}\n/**\n * Converts a {@link ox#Signature.Signature} to DER-encoded format.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.from({\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * })\n *\n * const signature_der = Signature.toDerBytes(signature)\n * // @log: Uint8Array [132, 51, 23, ...]\n * ```\n *\n * @param signature - The signature to convert.\n * @returns The DER-encoded signature.\n */\nexport function toDerBytes(signature) {\n const sig = new secp256k1.Signature(signature.r, signature.s);\n return sig.toDERRawBytes();\n}\n/**\n * Converts a {@link ox#Signature.Signature} to DER-encoded format.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.from({\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * })\n *\n * const signature_der = Signature.toDerHex(signature)\n * // @log: '0x304402206e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf02204a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db8'\n * ```\n *\n * @param signature - The signature to convert.\n * @returns The DER-encoded signature.\n */\nexport function toDerHex(signature) {\n const sig = new secp256k1.Signature(signature.r, signature.s);\n return `0x${sig.toDERHex()}`;\n}\n/**\n * Converts a {@link ox#Signature.Signature} into a {@link ox#Signature.Legacy}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const legacy = Signature.toLegacy({ r: 1n, s: 2n, yParity: 1 })\n * // @log: { r: 1n, s: 2n, v: 28 }\n * ```\n *\n * @param signature - The {@link ox#Signature.Signature} to convert.\n * @returns The converted {@link ox#Signature.Legacy}.\n */\nexport function toLegacy(signature) {\n return {\n r: signature.r,\n s: signature.s,\n v: yParityToV(signature.yParity),\n };\n}\n/**\n * Converts a {@link ox#Signature.Signature} into a {@link ox#Signature.Rpc}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.toRpc({\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1\n * })\n * ```\n *\n * @param signature - The {@link ox#Signature.Signature} to convert.\n * @returns The converted {@link ox#Signature.Rpc}.\n */\nexport function toRpc(signature) {\n const { r, s, yParity } = signature;\n return {\n r: Hex.fromNumber(r, { size: 32 }),\n s: Hex.fromNumber(s, { size: 32 }),\n yParity: yParity === 0 ? '0x0' : '0x1',\n };\n}\n/**\n * Converts a {@link ox#Signature.Signature} to a serialized {@link ox#Signature.Tuple} to be used for signatures in Transaction Envelopes, EIP-7702 Authorization Lists, etc.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signatureTuple = Signature.toTuple({\n * r: 123n,\n * s: 456n,\n * yParity: 1,\n * })\n * // @log: [yParity: '0x01', r: '0x7b', s: '0x1c8']\n * ```\n *\n * @param signature - The {@link ox#Signature.Signature} to convert.\n * @returns The {@link ox#Signature.Tuple}.\n */\nexport function toTuple(signature) {\n const { r, s, yParity } = signature;\n return [\n yParity ? '0x01' : '0x',\n r === 0n ? '0x' : Hex.trimLeft(Hex.fromNumber(r)),\n s === 0n ? '0x' : Hex.trimLeft(Hex.fromNumber(s)),\n ];\n}\n/**\n * Validates a Signature. Returns `true` if the signature is valid, `false` otherwise.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const valid = Signature.validate({\n * r: -49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1,\n * })\n * // @log: false\n * ```\n *\n * @param signature - The signature object to assert.\n */\nexport function validate(signature, options = {}) {\n try {\n assert(signature, options);\n return true;\n }\n catch {\n return false;\n }\n}\n/**\n * Converts a ECDSA `v` value to a `yParity` value.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const yParity = Signature.vToYParity(28)\n * // @log: 1\n * ```\n *\n * @param v - The ECDSA `v` value to convert.\n * @returns The `yParity` value.\n */\nexport function vToYParity(v) {\n if (v === 0 || v === 27)\n return 0;\n if (v === 1 || v === 28)\n return 1;\n if (v >= 35)\n return v % 2 === 0 ? 1 : 0;\n throw new InvalidVError({ value: v });\n}\n/**\n * Converts a ECDSA `v` value to a `yParity` value.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const v = Signature.yParityToV(1)\n * // @log: 28\n * ```\n *\n * @param yParity - The ECDSA `yParity` value to convert.\n * @returns The `v` value.\n */\nexport function yParityToV(yParity) {\n if (yParity === 0)\n return 27;\n if (yParity === 1)\n return 28;\n throw new InvalidYParityError({ value: yParity });\n}\n/** Thrown when the serialized signature is of an invalid size. */\nexport class InvalidSerializedSizeError extends Errors.BaseError {\n constructor({ signature }) {\n super(`Value \\`${signature}\\` is an invalid signature size.`, {\n metaMessages: [\n 'Expected: 64 bytes or 65 bytes.',\n `Received ${Hex.size(Hex.from(signature))} bytes.`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Signature.InvalidSerializedSizeError'\n });\n }\n}\n/** Thrown when the signature is missing either an `r`, `s`, or `yParity` property. */\nexport class MissingPropertiesError extends Errors.BaseError {\n constructor({ signature }) {\n super(`Signature \\`${Json.stringify(signature)}\\` is missing either an \\`r\\`, \\`s\\`, or \\`yParity\\` property.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Signature.MissingPropertiesError'\n });\n }\n}\n/** Thrown when the signature has an invalid `r` value. */\nexport class InvalidRError extends Errors.BaseError {\n constructor({ value }) {\n super(`Value \\`${value}\\` is an invalid r value. r must be a positive integer less than 2^256.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Signature.InvalidRError'\n });\n }\n}\n/** Thrown when the signature has an invalid `s` value. */\nexport class InvalidSError extends Errors.BaseError {\n constructor({ value }) {\n super(`Value \\`${value}\\` is an invalid s value. s must be a positive integer less than 2^256.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Signature.InvalidSError'\n });\n }\n}\n/** Thrown when the signature has an invalid `yParity` value. */\nexport class InvalidYParityError extends Errors.BaseError {\n constructor({ value }) {\n super(`Value \\`${value}\\` is an invalid y-parity value. Y-parity must be 0 or 1.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Signature.InvalidYParityError'\n });\n }\n}\n/** Thrown when the signature has an invalid `v` value. */\nexport class InvalidVError extends Errors.BaseError {\n constructor({ value }) {\n super(`Value \\`${value}\\` is an invalid v value. v must be 27, 28 or >=35.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Signature.InvalidVError'\n });\n }\n}\n//# sourceMappingURL=Signature.js.map","import * as Hash from './Hash.js';\nimport * as Hex from './Hex.js';\nimport * as Rlp from './Rlp.js';\nimport * as Signature from './Signature.js';\n/**\n * Converts an [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) Authorization object into a typed {@link ox#Authorization.Authorization}.\n *\n * @example\n * An Authorization can be instantiated from an [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) Authorization tuple in object format.\n *\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorization = Authorization.from({\n * address: '0x1234567890abcdef1234567890abcdef12345678',\n * chainId: 1,\n * nonce: 69n,\n * })\n * ```\n *\n * @example\n * ### Attaching Signatures\n *\n * A {@link ox#Signature.Signature} can be attached with the `signature` option. The example below demonstrates signing\n * an Authorization with {@link ox#Secp256k1.(sign:function)}.\n *\n * ```ts twoslash\n * import { Authorization, Secp256k1 } from 'ox'\n *\n * const authorization = Authorization.from({\n * address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',\n * chainId: 1,\n * nonce: 40n,\n * })\n *\n * const signature = Secp256k1.sign({\n * payload: Authorization.getSignPayload(authorization),\n * privateKey: '0x...',\n * })\n *\n * const authorization_signed = Authorization.from(authorization, { signature }) // [!code focus]\n * ```\n *\n * @param authorization - An [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) Authorization tuple in object format.\n * @param options - Authorization options.\n * @returns The {@link ox#Authorization.Authorization}.\n */\nexport function from(authorization, options = {}) {\n if (typeof authorization.chainId === 'string')\n return fromRpc(authorization);\n return { ...authorization, ...options.signature };\n}\n/**\n * Converts an {@link ox#Authorization.Rpc} to an {@link ox#Authorization.Authorization}.\n *\n * @example\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorization = Authorization.fromRpc({\n * address: '0x0000000000000000000000000000000000000000',\n * chainId: '0x1',\n * nonce: '0x1',\n * r: '0x635dc2033e60185bb36709c29c75d64ea51dfbd91c32ef4be198e4ceb169fb4d',\n * s: '0x50c2667ac4c771072746acfdcf1f1483336dcca8bd2df47cd83175dbe60f0540',\n * yParity: '0x0',\n * })\n * ```\n *\n * @param authorization - The RPC-formatted Authorization.\n * @returns A signed {@link ox#Authorization.Authorization}.\n */\nexport function fromRpc(authorization) {\n const { address, chainId, nonce } = authorization;\n const signature = Signature.extract(authorization);\n return {\n address,\n chainId: Number(chainId),\n nonce: BigInt(nonce),\n ...signature,\n };\n}\n/**\n * Converts an {@link ox#Authorization.ListRpc} to an {@link ox#Authorization.List}.\n *\n * @example\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorizationList = Authorization.fromRpcList([{\n * address: '0x0000000000000000000000000000000000000000',\n * chainId: '0x1',\n * nonce: '0x1',\n * r: '0x635dc2033e60185bb36709c29c75d64ea51dfbd91c32ef4be198e4ceb169fb4d',\n * s: '0x50c2667ac4c771072746acfdcf1f1483336dcca8bd2df47cd83175dbe60f0540',\n * yParity: '0x0',\n * }])\n * ```\n *\n * @param authorizationList - The RPC-formatted Authorization list.\n * @returns A signed {@link ox#Authorization.List}.\n */\nexport function fromRpcList(authorizationList) {\n return authorizationList.map(fromRpc);\n}\n/**\n * Converts an {@link ox#Authorization.Tuple} to an {@link ox#Authorization.Authorization}.\n *\n * @example\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorization = Authorization.fromTuple([\n * '0x1',\n * '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',\n * '0x3'\n * ])\n * // @log: {\n * // @log: address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',\n * // @log: chainId: 1,\n * // @log: nonce: 3n\n * // @log: }\n * ```\n *\n * @example\n * It is also possible to append a Signature tuple to the end of an Authorization tuple.\n *\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorization = Authorization.fromTuple([\n * '0x1',\n * '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',\n * '0x3',\n * '0x1',\n * '0x68a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b90',\n * '0x7e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064',\n * ])\n * // @log: {\n * // @log: address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',\n * // @log: chainId: 1,\n * // @log: nonce: 3n\n * // @log: r: BigInt('0x68a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b90'),\n * // @log: s: BigInt('0x7e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064'),\n * // @log: yParity: 0,\n * // @log: }\n * ```\n *\n * @param tuple - The [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) Authorization tuple.\n * @returns The {@link ox#Authorization.Authorization}.\n */\nexport function fromTuple(tuple) {\n const [chainId, address, nonce, yParity, r, s] = tuple;\n let args = {\n address,\n chainId: chainId === '0x' ? 0 : Number(chainId),\n nonce: nonce === '0x' ? 0n : BigInt(nonce),\n };\n if (yParity && r && s)\n args = { ...args, ...Signature.fromTuple([yParity, r, s]) };\n return from(args);\n}\n/**\n * Converts an {@link ox#Authorization.TupleList} to an {@link ox#Authorization.List}.\n *\n * @example\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorizationList = Authorization.fromTupleList([\n * ['0x1', '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c', '0x3'],\n * ['0x3', '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c', '0x14'],\n * ])\n * // @log: [\n * // @log: {\n * // @log: address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',\n * // @log: chainId: 1,\n * // @log: nonce: 3n,\n * // @log: },\n * // @log: {\n * // @log: address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',\n * // @log: chainId: 3,\n * // @log: nonce: 20n,\n * // @log: },\n * // @log: ]\n * ```\n *\n * @example\n * It is also possible to append a Signature tuple to the end of an Authorization tuple.\n *\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorizationList = Authorization.fromTupleList([\n * ['0x1', '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c', '0x3', '0x1', '0x68a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b90', '0x7e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064'],\n * ['0x3', '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c', '0x14', '0x1', '0x68a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b90', '0x7e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064'],\n * ])\n * // @log: [\n * // @log: {\n * // @log: address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',\n * // @log: chainId: 1,\n * // @log: nonce: 3n,\n * // @log: r: BigInt('0x68a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b90'),\n * // @log: s: BigInt('0x7e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064'),\n * // @log: yParity: 0,\n * // @log: },\n * // @log: {\n * // @log: address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',\n * // @log: chainId: 3,\n * // @log: nonce: 20n,\n * // @log: r: BigInt('0x68a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b90'),\n * // @log: s: BigInt('0x7e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064'),\n * // @log: yParity: 0,\n * // @log: },\n * // @log: ]\n * ```\n *\n * @param tupleList - The [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) Authorization tuple list.\n * @returns An {@link ox#Authorization.List}.\n */\nexport function fromTupleList(tupleList) {\n const list = [];\n for (const tuple of tupleList)\n list.push(fromTuple(tuple));\n return list;\n}\n/**\n * Computes the sign payload for an {@link ox#Authorization.Authorization} in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\n *\n * @example\n * The example below demonstrates computing the sign payload for an {@link ox#Authorization.Authorization}. This payload\n * can then be passed to signing functions like {@link ox#Secp256k1.(sign:function)}.\n *\n * ```ts twoslash\n * import { Authorization, Secp256k1 } from 'ox'\n *\n * const authorization = Authorization.from({\n * address: '0x1234567890abcdef1234567890abcdef12345678',\n * chainId: 1,\n * nonce: 69n,\n * })\n *\n * const payload = Authorization.getSignPayload(authorization) // [!code focus]\n *\n * const signature = Secp256k1.sign({\n * payload,\n * privateKey: '0x...',\n * })\n * ```\n *\n * @param authorization - The {@link ox#Authorization.Authorization}.\n * @returns The sign payload.\n */\nexport function getSignPayload(authorization) {\n return hash(authorization, { presign: true });\n}\n/**\n * Computes the hash for an {@link ox#Authorization.Authorization} in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\n *\n * @example\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorization = Authorization.from({\n * address: '0x1234567890abcdef1234567890abcdef12345678',\n * chainId: 1,\n * nonce: 69n,\n * })\n *\n * const hash = Authorization.hash(authorization) // [!code focus]\n * ```\n *\n * @param authorization - The {@link ox#Authorization.Authorization}.\n * @returns The hash.\n */\nexport function hash(authorization, options = {}) {\n const { presign } = options;\n return Hash.keccak256(Hex.concat('0x05', Rlp.fromHex(toTuple(presign\n ? {\n address: authorization.address,\n chainId: authorization.chainId,\n nonce: authorization.nonce,\n }\n : authorization))));\n}\n/**\n * Converts an {@link ox#Authorization.Authorization} to an {@link ox#Authorization.Rpc}.\n *\n * @example\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorization = Authorization.toRpc({\n * address: '0x0000000000000000000000000000000000000000',\n * chainId: 1,\n * nonce: 1n,\n * r: 44944627813007772897391531230081695102703289123332187696115181104739239197517n,\n * s: 36528503505192438307355164441104001310566505351980369085208178712678799181120n,\n * yParity: 0,\n * })\n * ```\n *\n * @param authorization - An Authorization.\n * @returns An RPC-formatted Authorization.\n */\nexport function toRpc(authorization) {\n const { address, chainId, nonce, ...signature } = authorization;\n return {\n address,\n chainId: Hex.fromNumber(chainId),\n nonce: Hex.fromNumber(nonce),\n ...Signature.toRpc(signature),\n };\n}\n/**\n * Converts an {@link ox#Authorization.List} to an {@link ox#Authorization.ListRpc}.\n *\n * @example\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorization = Authorization.toRpcList([{\n * address: '0x0000000000000000000000000000000000000000',\n * chainId: 1,\n * nonce: 1n,\n * r: 44944627813007772897391531230081695102703289123332187696115181104739239197517n,\n * s: 36528503505192438307355164441104001310566505351980369085208178712678799181120n,\n * yParity: 0,\n * }])\n * ```\n *\n * @param authorizationList - An Authorization List.\n * @returns An RPC-formatted Authorization List.\n */\nexport function toRpcList(authorizationList) {\n return authorizationList.map(toRpc);\n}\n/**\n * Converts an {@link ox#Authorization.Authorization} to an {@link ox#Authorization.Tuple}.\n *\n * @example\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorization = Authorization.from({\n * address: '0x1234567890abcdef1234567890abcdef12345678',\n * chainId: 1,\n * nonce: 69n,\n * })\n *\n * const tuple = Authorization.toTuple(authorization) // [!code focus]\n * // @log: [\n * // @log: address: '0x1234567890abcdef1234567890abcdef12345678',\n * // @log: chainId: 1,\n * // @log: nonce: 69n,\n * // @log: ]\n * ```\n *\n * @param authorization - The {@link ox#Authorization.Authorization}.\n * @returns An [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) Authorization tuple.\n */\nexport function toTuple(authorization) {\n const { address, chainId, nonce } = authorization;\n const signature = Signature.extract(authorization);\n return [\n chainId ? Hex.fromNumber(chainId) : '0x',\n address,\n nonce ? Hex.fromNumber(nonce) : '0x',\n ...(signature ? Signature.toTuple(signature) : []),\n ];\n}\n/**\n * Converts an {@link ox#Authorization.List} to an {@link ox#Authorization.TupleList}.\n *\n * @example\n * ```ts twoslash\n * import { Authorization } from 'ox'\n *\n * const authorization_1 = Authorization.from({\n * address: '0x1234567890abcdef1234567890abcdef12345678',\n * chainId: 1,\n * nonce: 69n,\n * })\n * const authorization_2 = Authorization.from({\n * address: '0x1234567890abcdef1234567890abcdef12345678',\n * chainId: 3,\n * nonce: 20n,\n * })\n *\n * const tuple = Authorization.toTupleList([authorization_1, authorization_2]) // [!code focus]\n * // @log: [\n * // @log: [\n * // @log: address: '0x1234567890abcdef1234567890abcdef12345678',\n * // @log: chainId: 1,\n * // @log: nonce: 69n,\n * // @log: ],\n * // @log: [\n * // @log: address: '0x1234567890abcdef1234567890abcdef12345678',\n * // @log: chainId: 3,\n * // @log: nonce: 20n,\n * // @log: ],\n * // @log: ]\n * ```\n *\n * @param list - An {@link ox#Authorization.List}.\n * @returns An [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) Authorization tuple list.\n */\nexport function toTupleList(list) {\n if (!list || list.length === 0)\n return [];\n const tupleList = [];\n for (const authorization of list)\n tupleList.push(toTuple(authorization));\n return tupleList;\n}\n//# sourceMappingURL=Authorization.js.map","import * as AbiParameters from '../core/AbiParameters.js';\nimport * as Authorization from '../core/Authorization.js';\nimport * as Errors from '../core/Errors.js';\nimport * as Hex from '../core/Hex.js';\nimport * as Secp256k1 from '../core/Secp256k1.js';\nimport * as Signature from '../core/Signature.js';\n/**\n * Magic bytes used to identify ERC-8010 wrapped signatures.\n */\nexport const magicBytes = '0x8010801080108010801080108010801080108010801080108010801080108010';\n/** Suffix ABI parameters for the ERC-8010 wrapped signature. */\nexport const suffixParameters = AbiParameters.from('(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data');\n/**\n * Asserts that the wrapped signature is valid.\n *\n * @example\n * ```ts twoslash\n * import { SignatureErc8010 } from 'ox/erc8010'\n *\n * SignatureErc8010.assert('0xdeadbeef')\n * // @error: InvalidWrappedSignatureError: Value `0xdeadbeef` is an invalid ERC-8010 wrapped signature.\n * ```\n *\n * @param value - The value to assert.\n */\nexport function assert(value) {\n if (typeof value === 'string') {\n if (Hex.slice(value, -32) !== magicBytes)\n throw new InvalidWrappedSignatureError(value);\n }\n else\n Signature.assert(value.authorization);\n}\n/**\n * Parses an [ERC-8010 wrapped signature](https://github.com/jxom/ERCs/blob/16f7e3891fff2e1e9c25dea0485497739db8a816/ERCS/erc-8010.md) into its constituent parts.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Secp256k1 } from 'ox'\n * import { SignatureErc8010 } from 'ox/erc8010' // [!code focus]\n *\n * const signature = Secp256k1.sign({\n * payload: '0x...',\n * privateKey: '0x...',\n * })\n *\n * // Instantiate from serialized format. // [!code focus]\n * const wrapped = SignatureErc8010.from('0x...') // [!code focus]\n * // @log: { authorization: { ... }, data: '0x...', signature: { ... } } // [!code focus]\n *\n * // Instantiate from constituent parts. // [!code focus]\n * const wrapped = SignatureErc8010.from({ // [!code focus]\n * authorization: { ... }, // [!code focus]\n * data: '0x...', // [!code focus]\n * signature, // [!code focus]\n * })\n * // @log: { authorization: { ... }, data: '0x...', signature: { ... } }\n * ```\n *\n * @param value - Value to parse.\n * @returns Parsed value.\n */\nexport function from(value) {\n if (typeof value === 'string')\n return unwrap(value);\n return value;\n}\n/**\n * Unwraps an [ERC-8010 wrapped signature](https://github.com/jxom/ERCs/blob/16f7e3891fff2e1e9c25dea0485497739db8a816/ERCS/erc-8010.md) into its constituent parts.\n *\n * @example\n * ```ts twoslash\n * import { SignatureErc8010 } from 'ox/erc8010'\n *\n * const { authorization, data, signature } = SignatureErc8010.unwrap('0x...')\n * ```\n *\n * @param wrapped - Wrapped signature to unwrap.\n * @returns Unwrapped signature.\n */\nexport function unwrap(wrapped) {\n assert(wrapped);\n const suffixLength = Hex.toNumber(Hex.slice(wrapped, -64, -32));\n const suffix = Hex.slice(wrapped, -suffixLength - 64, -64);\n const signature = Hex.slice(wrapped, 0, -suffixLength - 64);\n const [auth, to, data] = AbiParameters.decode(suffixParameters, suffix);\n const authorization = Authorization.from({\n address: auth.delegation,\n chainId: Number(auth.chainId),\n nonce: auth.nonce,\n yParity: auth.yParity,\n r: auth.r,\n s: auth.s,\n });\n return {\n authorization,\n signature,\n ...(data && data !== '0x' ? { data, to } : {}),\n };\n}\n/**\n * Wraps a signature into [ERC-8010 format](https://github.com/jxom/ERCs/blob/16f7e3891fff2e1e9c25dea0485497739db8a816/ERCS/erc-8010.md).\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Secp256k1, Signature } from 'ox'\n * import { SignatureErc8010 } from 'ox/erc8010' // [!code focus]\n *\n * const signature = Secp256k1.sign({\n * payload: '0x...',\n * privateKey: '0x...',\n * })\n *\n * const wrapped = SignatureErc8010.wrap({ // [!code focus]\n * authorization: { ... }, // [!code focus]\n * data: '0xdeadbeef', // [!code focus]\n * signature: Signature.toHex(signature), // [!code focus]\n * }) // [!code focus]\n * ```\n *\n * @param value - Values to wrap.\n * @returns Wrapped signature.\n */\nexport function wrap(value) {\n const { data, signature } = value;\n assert(value);\n const self = Secp256k1.recoverAddress({\n payload: Authorization.getSignPayload(value.authorization),\n signature: Signature.from(value.authorization),\n });\n const suffix = AbiParameters.encode(suffixParameters, [\n {\n ...value.authorization,\n delegation: value.authorization.address,\n chainId: BigInt(value.authorization.chainId),\n },\n value.to ?? self,\n data ?? '0x',\n ]);\n const suffixLength = Hex.fromNumber(Hex.size(suffix), { size: 32 });\n return Hex.concat(signature, suffix, suffixLength, magicBytes);\n}\n/**\n * Validates a wrapped signature. Returns `true` if the wrapped signature is valid, `false` otherwise.\n *\n * @example\n * ```ts twoslash\n * import { SignatureErc8010 } from 'ox/erc8010'\n *\n * const valid = SignatureErc8010.validate('0xdeadbeef')\n * // @log: false\n * ```\n *\n * @param value - The value to validate.\n * @returns `true` if the value is valid, `false` otherwise.\n */\nexport function validate(value) {\n try {\n assert(value);\n return true;\n }\n catch {\n return false;\n }\n}\n/** Thrown when the ERC-8010 wrapped signature is invalid. */\nexport class InvalidWrappedSignatureError extends Errors.BaseError {\n constructor(wrapped) {\n super(`Value \\`${wrapped}\\` is an invalid ERC-8010 wrapped signature.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'SignatureErc8010.InvalidWrappedSignatureError'\n });\n }\n}\n//# sourceMappingURL=SignatureErc8010.js.map","import { SignatureErc6492 } from 'ox/erc6492';\nimport { SignatureErc8010 } from 'ox/erc8010';\nimport { erc1271Abi, erc6492SignatureValidatorAbi, multicall3Abi, } from '../../constants/abis.js';\nimport { erc6492SignatureValidatorByteCode, multicall3Bytecode, } from '../../constants/contracts.js';\nimport { CallExecutionError, ContractFunctionExecutionError, } from '../../errors/contract.js';\nimport { encodeDeployData, } from '../../utils/abi/encodeDeployData.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getAddress, } from '../../utils/address/getAddress.js';\nimport { isAddressEqual, } from '../../utils/address/isAddressEqual.js';\nimport { verifyAuthorization } from '../../utils/authorization/verifyAuthorization.js';\nimport { concatHex } from '../../utils/data/concat.js';\nimport { isHex } from '../../utils/data/isHex.js';\nimport { hexToBool } from '../../utils/encoding/fromHex.js';\nimport { bytesToHex, numberToHex, } from '../../utils/encoding/toHex.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { recoverAddress, } from '../../utils/signature/recoverAddress.js';\nimport { serializeSignature, } from '../../utils/signature/serializeSignature.js';\nimport { call } from './call.js';\nimport { getCode } from './getCode.js';\nimport { readContract } from './readContract.js';\n/**\n * Verifies a message hash onchain using ERC-6492.\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifyHashParameters}\n * @returns Whether or not the signature is valid. {@link VerifyHashReturnType}\n */\nexport async function verifyHash(client, parameters) {\n const { address, chain = client.chain, hash, erc6492VerifierAddress: verifierAddress = parameters.universalSignatureVerifierAddress ??\n chain?.contracts?.erc6492Verifier?.address, multicallAddress = parameters.multicallAddress ??\n chain?.contracts?.multicall3?.address, } = parameters;\n if (chain?.verifyHash)\n return await chain.verifyHash(client, parameters);\n const signature = (() => {\n const signature = parameters.signature;\n if (isHex(signature))\n return signature;\n if (typeof signature === 'object' && 'r' in signature && 's' in signature)\n return serializeSignature(signature);\n return bytesToHex(signature);\n })();\n try {\n if (SignatureErc8010.validate(signature))\n return await verifyErc8010(client, {\n ...parameters,\n multicallAddress,\n signature,\n });\n return await verifyErc6492(client, {\n ...parameters,\n verifierAddress,\n signature,\n });\n }\n catch (error) {\n // Fallback attempt to verify the signature via ECDSA recovery.\n try {\n const verified = isAddressEqual(getAddress(address), await recoverAddress({ hash, signature }));\n if (verified)\n return true;\n }\n catch { }\n if (error instanceof VerificationError) {\n // if the execution fails, the signature was not valid and an internal method inside of the validator reverted\n // this can happen for many reasons, for example if signer can not be recovered from the signature\n // or if the signature has no valid format\n return false;\n }\n throw error;\n }\n}\n/** @internal */\nexport async function verifyErc8010(client, parameters) {\n const { address, blockNumber, blockTag, hash, multicallAddress } = parameters;\n const { authorization: authorization_ox, data: initData, signature, to, } = SignatureErc8010.unwrap(parameters.signature);\n // Check if already delegated\n const code = await getCode(client, {\n address,\n blockNumber,\n blockTag,\n });\n // If already delegated, perform standard ERC-1271 verification.\n if (code === concatHex(['0xef0100', authorization_ox.address]))\n return await verifyErc1271(client, {\n address,\n blockNumber,\n blockTag,\n hash,\n signature,\n });\n const authorization = {\n address: authorization_ox.address,\n chainId: Number(authorization_ox.chainId),\n nonce: Number(authorization_ox.nonce),\n r: numberToHex(authorization_ox.r, { size: 32 }),\n s: numberToHex(authorization_ox.s, { size: 32 }),\n yParity: authorization_ox.yParity,\n };\n const valid = await verifyAuthorization({\n address,\n authorization,\n });\n if (!valid)\n throw new VerificationError();\n // Deployless verification.\n const results = await getAction(client, readContract, 'readContract')({\n ...(multicallAddress\n ? { address: multicallAddress }\n : { code: multicall3Bytecode }),\n authorizationList: [authorization],\n abi: multicall3Abi,\n blockNumber,\n blockTag: 'pending',\n functionName: 'aggregate3',\n args: [\n [\n ...(initData\n ? [\n {\n allowFailure: true,\n target: to ?? address,\n callData: initData,\n },\n ]\n : []),\n {\n allowFailure: true,\n target: address,\n callData: encodeFunctionData({\n abi: erc1271Abi,\n functionName: 'isValidSignature',\n args: [hash, signature],\n }),\n },\n ],\n ],\n });\n const data = results[results.length - 1]?.returnData;\n if (data?.startsWith('0x1626ba7e'))\n return true;\n throw new VerificationError();\n}\n/** @internal */\n// biome-ignore lint/correctness/noUnusedVariables: _\nasync function verifyErc6492(client, parameters) {\n const { address, factory, factoryData, hash, signature, verifierAddress, ...rest } = parameters;\n const wrappedSignature = await (async () => {\n // If no `factory` or `factoryData` is provided, it is assumed that the\n // address is not a Smart Account, or the Smart Account is already deployed.\n if (!factory && !factoryData)\n return signature;\n // If the signature is already wrapped, return the signature.\n if (SignatureErc6492.validate(signature))\n return signature;\n // If the Smart Account is not deployed, wrap the signature with a 6492 wrapper\n // to perform counterfactual validation.\n return SignatureErc6492.wrap({\n data: factoryData,\n signature,\n to: factory,\n });\n })();\n const args = verifierAddress\n ? {\n to: verifierAddress,\n data: encodeFunctionData({\n abi: erc6492SignatureValidatorAbi,\n functionName: 'isValidSig',\n args: [address, hash, wrappedSignature],\n }),\n ...rest,\n }\n : {\n data: encodeDeployData({\n abi: erc6492SignatureValidatorAbi,\n args: [address, hash, wrappedSignature],\n bytecode: erc6492SignatureValidatorByteCode,\n }),\n ...rest,\n };\n const { data } = await getAction(client, call, 'call')(args).catch((error) => {\n if (error instanceof CallExecutionError)\n throw new VerificationError();\n throw error;\n });\n if (hexToBool(data ?? '0x0'))\n return true;\n throw new VerificationError();\n}\n/** @internal */\nexport async function verifyErc1271(client, parameters) {\n const { address, blockNumber, blockTag, hash, signature } = parameters;\n const result = await getAction(client, readContract, 'readContract')({\n address,\n abi: erc1271Abi,\n args: [hash, signature],\n blockNumber,\n blockTag,\n functionName: 'isValidSignature',\n }).catch((error) => {\n if (error instanceof ContractFunctionExecutionError)\n throw new VerificationError();\n throw error;\n });\n if (result.startsWith('0x1626ba7e'))\n return true;\n throw new VerificationError();\n}\nclass VerificationError extends Error {\n}\n//# sourceMappingURL=verifyHash.js.map","import { getAddress } from '../address/getAddress.js';\nimport { isAddressEqual, } from '../address/isAddressEqual.js';\nimport { recoverAuthorizationAddress, } from './recoverAuthorizationAddress.js';\n/**\n * Verify that an Authorization object was signed by the provided address.\n *\n * - Docs {@link https://viem.sh/docs/utilities/verifyAuthorization}\n *\n * @param parameters - {@link VerifyAuthorizationParameters}\n * @returns Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\n */\nexport async function verifyAuthorization({ address, authorization, signature, }) {\n return isAddressEqual(getAddress(address), await recoverAuthorizationAddress({\n authorization,\n signature,\n }));\n}\n//# sourceMappingURL=verifyAuthorization.js.map","/**\n * @description Parses EIP-4361 formatted message into message fields object.\n *\n * @see https://eips.ethereum.org/EIPS/eip-4361\n *\n * @returns EIP-4361 fields object\n */\nexport function parseSiweMessage(message) {\n const { scheme, statement, ...prefix } = (message.match(prefixRegex)\n ?.groups ?? {});\n const { chainId, expirationTime, issuedAt, notBefore, requestId, ...suffix } = (message.match(suffixRegex)?.groups ?? {});\n const resources = message.split('Resources:')[1]?.split('\\n- ').slice(1);\n return {\n ...prefix,\n ...suffix,\n ...(chainId ? { chainId: Number(chainId) } : {}),\n ...(expirationTime ? { expirationTime: new Date(expirationTime) } : {}),\n ...(issuedAt ? { issuedAt: new Date(issuedAt) } : {}),\n ...(notBefore ? { notBefore: new Date(notBefore) } : {}),\n ...(requestId ? { requestId } : {}),\n ...(resources ? { resources } : {}),\n ...(scheme ? { scheme } : {}),\n ...(statement ? { statement } : {}),\n };\n}\n// https://regexr.com/80gdj\nconst prefixRegex = /^(?:(?[a-zA-Z][a-zA-Z0-9+-.]*):\\/\\/)?(?[a-zA-Z0-9+-.]*(?::[0-9]{1,5})?) (?:wants you to sign in with your Ethereum account:\\n)(?
0x[a-fA-F0-9]{40})\\n\\n(?:(?.*)\\n\\n)?/;\n// https://regexr.com/80gf9\nconst suffixRegex = /(?:URI: (?.+))\\n(?:Version: (?.+))\\n(?:Chain ID: (?\\d+))\\n(?:Nonce: (?[a-zA-Z0-9]+))\\n(?:Issued At: (?.+))(?:\\nExpiration Time: (?.+))?(?:\\nNot Before: (?.+))?(?:\\nRequest ID: (?.+))?/;\n//# sourceMappingURL=parseSiweMessage.js.map","import { getEnsAddress, } from '../../actions/ens/getEnsAddress.js';\nimport { getEnsAvatar, } from '../../actions/ens/getEnsAvatar.js';\nimport { getEnsName, } from '../../actions/ens/getEnsName.js';\nimport { getEnsResolver, } from '../../actions/ens/getEnsResolver.js';\nimport { getEnsText, } from '../../actions/ens/getEnsText.js';\nimport { call, } from '../../actions/public/call.js';\nimport { createAccessList, } from '../../actions/public/createAccessList.js';\nimport { createBlockFilter, } from '../../actions/public/createBlockFilter.js';\nimport { createContractEventFilter, } from '../../actions/public/createContractEventFilter.js';\nimport { createEventFilter, } from '../../actions/public/createEventFilter.js';\nimport { createPendingTransactionFilter, } from '../../actions/public/createPendingTransactionFilter.js';\nimport { estimateContractGas, } from '../../actions/public/estimateContractGas.js';\nimport { estimateFeesPerGas, } from '../../actions/public/estimateFeesPerGas.js';\nimport { estimateGas, } from '../../actions/public/estimateGas.js';\nimport { estimateMaxPriorityFeePerGas, } from '../../actions/public/estimateMaxPriorityFeePerGas.js';\nimport { fillTransaction, } from '../../actions/public/fillTransaction.js';\nimport { getBalance, } from '../../actions/public/getBalance.js';\nimport { getBlobBaseFee, } from '../../actions/public/getBlobBaseFee.js';\nimport { getBlock, } from '../../actions/public/getBlock.js';\nimport { getBlockNumber, } from '../../actions/public/getBlockNumber.js';\nimport { getBlockTransactionCount, } from '../../actions/public/getBlockTransactionCount.js';\nimport { getChainId, } from '../../actions/public/getChainId.js';\nimport { getCode, } from '../../actions/public/getCode.js';\nimport { getContractEvents, } from '../../actions/public/getContractEvents.js';\nimport { getEip712Domain, } from '../../actions/public/getEip712Domain.js';\nimport { getFeeHistory, } from '../../actions/public/getFeeHistory.js';\nimport { getFilterChanges, } from '../../actions/public/getFilterChanges.js';\nimport { getFilterLogs, } from '../../actions/public/getFilterLogs.js';\nimport { getGasPrice, } from '../../actions/public/getGasPrice.js';\nimport { getLogs, } from '../../actions/public/getLogs.js';\nimport { getProof, } from '../../actions/public/getProof.js';\nimport { getStorageAt, } from '../../actions/public/getStorageAt.js';\nimport { getTransaction, } from '../../actions/public/getTransaction.js';\nimport { getTransactionConfirmations, } from '../../actions/public/getTransactionConfirmations.js';\nimport { getTransactionCount, } from '../../actions/public/getTransactionCount.js';\nimport { getTransactionReceipt, } from '../../actions/public/getTransactionReceipt.js';\nimport { multicall, } from '../../actions/public/multicall.js';\nimport { readContract, } from '../../actions/public/readContract.js';\nimport { simulateBlocks, } from '../../actions/public/simulateBlocks.js';\nimport { simulateCalls, } from '../../actions/public/simulateCalls.js';\nimport { simulateContract, } from '../../actions/public/simulateContract.js';\nimport { uninstallFilter, } from '../../actions/public/uninstallFilter.js';\nimport { verifyHash, } from '../../actions/public/verifyHash.js';\nimport { verifyMessage, } from '../../actions/public/verifyMessage.js';\nimport { verifyTypedData, } from '../../actions/public/verifyTypedData.js';\nimport { waitForTransactionReceipt, } from '../../actions/public/waitForTransactionReceipt.js';\nimport { watchBlockNumber, } from '../../actions/public/watchBlockNumber.js';\nimport { watchBlocks, } from '../../actions/public/watchBlocks.js';\nimport { watchContractEvent, } from '../../actions/public/watchContractEvent.js';\nimport { watchEvent, } from '../../actions/public/watchEvent.js';\nimport { watchPendingTransactions, } from '../../actions/public/watchPendingTransactions.js';\nimport { verifySiweMessage, } from '../../actions/siwe/verifySiweMessage.js';\nimport { prepareTransactionRequest, } from '../../actions/wallet/prepareTransactionRequest.js';\nimport { sendRawTransaction, } from '../../actions/wallet/sendRawTransaction.js';\nimport { sendRawTransactionSync, } from '../../actions/wallet/sendRawTransactionSync.js';\nexport function publicActions(client) {\n return {\n call: (args) => call(client, args),\n createAccessList: (args) => createAccessList(client, args),\n createBlockFilter: () => createBlockFilter(client),\n createContractEventFilter: (args) => createContractEventFilter(client, args),\n createEventFilter: (args) => createEventFilter(client, args),\n createPendingTransactionFilter: () => createPendingTransactionFilter(client),\n estimateContractGas: (args) => estimateContractGas(client, args),\n estimateGas: (args) => estimateGas(client, args),\n getBalance: (args) => getBalance(client, args),\n getBlobBaseFee: () => getBlobBaseFee(client),\n getBlock: (args) => getBlock(client, args),\n getBlockNumber: (args) => getBlockNumber(client, args),\n getBlockTransactionCount: (args) => getBlockTransactionCount(client, args),\n getBytecode: (args) => getCode(client, args),\n getChainId: () => getChainId(client),\n getCode: (args) => getCode(client, args),\n getContractEvents: (args) => getContractEvents(client, args),\n getEip712Domain: (args) => getEip712Domain(client, args),\n getEnsAddress: (args) => getEnsAddress(client, args),\n getEnsAvatar: (args) => getEnsAvatar(client, args),\n getEnsName: (args) => getEnsName(client, args),\n getEnsResolver: (args) => getEnsResolver(client, args),\n getEnsText: (args) => getEnsText(client, args),\n getFeeHistory: (args) => getFeeHistory(client, args),\n estimateFeesPerGas: (args) => estimateFeesPerGas(client, args),\n getFilterChanges: (args) => getFilterChanges(client, args),\n getFilterLogs: (args) => getFilterLogs(client, args),\n getGasPrice: () => getGasPrice(client),\n getLogs: (args) => getLogs(client, args),\n getProof: (args) => getProof(client, args),\n estimateMaxPriorityFeePerGas: (args) => estimateMaxPriorityFeePerGas(client, args),\n fillTransaction: (args) => fillTransaction(client, args),\n getStorageAt: (args) => getStorageAt(client, args),\n getTransaction: (args) => getTransaction(client, args),\n getTransactionConfirmations: (args) => getTransactionConfirmations(client, args),\n getTransactionCount: (args) => getTransactionCount(client, args),\n getTransactionReceipt: (args) => getTransactionReceipt(client, args),\n multicall: (args) => multicall(client, args),\n prepareTransactionRequest: (args) => prepareTransactionRequest(client, args),\n readContract: (args) => readContract(client, args),\n sendRawTransaction: (args) => sendRawTransaction(client, args),\n sendRawTransactionSync: (args) => sendRawTransactionSync(client, args),\n simulate: (args) => simulateBlocks(client, args),\n simulateBlocks: (args) => simulateBlocks(client, args),\n simulateCalls: (args) => simulateCalls(client, args),\n simulateContract: (args) => simulateContract(client, args),\n verifyHash: (args) => verifyHash(client, args),\n verifyMessage: (args) => verifyMessage(client, args),\n verifySiweMessage: (args) => verifySiweMessage(client, args),\n verifyTypedData: (args) => verifyTypedData(client, args),\n uninstallFilter: (args) => uninstallFilter(client, args),\n waitForTransactionReceipt: (args) => waitForTransactionReceipt(client, args),\n watchBlocks: (args) => watchBlocks(client, args),\n watchBlockNumber: (args) => watchBlockNumber(client, args),\n watchContractEvent: (args) => watchContractEvent(client, args),\n watchEvent: (args) => watchEvent(client, args),\n watchPendingTransactions: (args) => watchPendingTransactions(client, args),\n };\n}\n//# sourceMappingURL=public.js.map","import { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js';\n/**\n * Creates a [`Filter`](https://viem.sh/docs/glossary/types#filter) to listen for new block hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).\n *\n * - Docs: https://viem.sh/docs/actions/public/createBlockFilter\n * - JSON-RPC Methods: [`eth_newBlockFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newBlockFilter)\n *\n * @param client - Client to use\n * @returns [`Filter`](https://viem.sh/docs/glossary/types#filter). {@link CreateBlockFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createBlockFilter } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createBlockFilter(client)\n * // { id: \"0x345a6572337856574a76364e457a4366\", type: 'block' }\n */\nexport async function createBlockFilter(client) {\n const getRequest = createFilterRequestScope(client, {\n method: 'eth_newBlockFilter',\n });\n const id = await client.request({\n method: 'eth_newBlockFilter',\n });\n return { id, request: getRequest(id), type: 'block' };\n}\n//# sourceMappingURL=createBlockFilter.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Returns the balance of an address in wei.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBalance\n * - JSON-RPC Methods: [`eth_getBalance`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getbalance)\n *\n * You can convert the balance to ether units with [`formatEther`](https://viem.sh/docs/utilities/formatEther).\n *\n * ```ts\n * const balance = await getBalance(client, {\n * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * blockTag: 'safe'\n * })\n * const balanceAsEther = formatEther(balance)\n * // \"6.942\"\n * ```\n *\n * @param client - Client to use\n * @param parameters - {@link GetBalanceParameters}\n * @returns The balance of the address in wei. {@link GetBalanceReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBalance } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const balance = await getBalance(client, {\n * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n * // 10000000000000000000000n (wei)\n */\nexport async function getBalance(client, { address, blockNumber, blockTag = client.experimental_blockTag ?? 'latest', }) {\n const blockNumberHex = typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined;\n const balance = await client.request({\n method: 'eth_getBalance',\n params: [address, blockNumberHex || blockTag],\n });\n return BigInt(balance);\n}\n//# sourceMappingURL=getBalance.js.map","/**\n * Returns the base fee per blob gas in wei.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlobBaseFee\n * - JSON-RPC Methods: [`eth_blobBaseFee`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blobBaseFee)\n *\n * @param client - Client to use\n * @returns The blob base fee (in wei). {@link GetBlobBaseFeeReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlobBaseFee } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const blobBaseFee = await getBlobBaseFee(client)\n */\nexport async function getBlobBaseFee(client) {\n const baseFee = await client.request({\n method: 'eth_blobBaseFee',\n });\n return BigInt(baseFee);\n}\n//# sourceMappingURL=getBlobBaseFee.js.map","import { hexToNumber, } from '../../utils/encoding/fromHex.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Returns the number of Transactions at a block number, hash, or tag.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlockTransactionCount\n * - JSON-RPC Methods:\n * - Calls [`eth_getBlockTransactionCountByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbynumber) for `blockNumber` & `blockTag`.\n * - Calls [`eth_getBlockTransactionCountByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbyhash) for `blockHash`.\n *\n * @param client - Client to use\n * @param parameters - {@link GetBlockTransactionCountParameters}\n * @returns The block transaction count. {@link GetBlockTransactionCountReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlockTransactionCount } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const count = await getBlockTransactionCount(client)\n */\nexport async function getBlockTransactionCount(client, { blockHash, blockNumber, blockTag = 'latest', } = {}) {\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n let count;\n if (blockHash) {\n count = await client.request({\n method: 'eth_getBlockTransactionCountByHash',\n params: [blockHash],\n }, { dedupe: true });\n }\n else {\n count = await client.request({\n method: 'eth_getBlockTransactionCountByNumber',\n params: [blockNumberHex || blockTag],\n }, { dedupe: Boolean(blockNumberHex) });\n }\n return hexToNumber(count);\n}\n//# sourceMappingURL=getBlockTransactionCount.js.map","import { addressResolverAbi, universalResolverResolveAbi, } from '../../constants/abis.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { trim } from '../../utils/data/trim.js';\nimport { toHex } from '../../utils/encoding/toHex.js';\nimport { isNullUniversalResolverError } from '../../utils/ens/errors.js';\nimport { localBatchGatewayUrl } from '../../utils/ens/localBatchGatewayRequest.js';\nimport { namehash } from '../../utils/ens/namehash.js';\nimport { packetToBytes, } from '../../utils/ens/packetToBytes.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from '../public/readContract.js';\n/**\n * Gets address for ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsAddress\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsAddressParameters}\n * @returns Address for ENS name or `null` if not found. {@link GetEnsAddressReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsAddress, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const ensAddress = await getEnsAddress(client, {\n * name: normalize('wevm.eth'),\n * })\n * // '0xd2135CfB216b74109775236E36d4b433F1DF507B'\n */\nexport async function getEnsAddress(client, parameters) {\n const { blockNumber, blockTag, coinType, name, gatewayUrls, strict } = parameters;\n const { chain } = client;\n const universalResolverAddress = (() => {\n if (parameters.universalResolverAddress)\n return parameters.universalResolverAddress;\n if (!chain)\n throw new Error('client chain not configured. universalResolverAddress is required.');\n return getChainContractAddress({\n blockNumber,\n chain,\n contract: 'ensUniversalResolver',\n });\n })();\n const tlds = chain?.ensTlds;\n if (tlds && !tlds.some((tld) => name.endsWith(tld)))\n return null;\n const args = (() => {\n if (coinType != null)\n return [namehash(name), BigInt(coinType)];\n return [namehash(name)];\n })();\n try {\n const functionData = encodeFunctionData({\n abi: addressResolverAbi,\n functionName: 'addr',\n args,\n });\n const readContractParameters = {\n address: universalResolverAddress,\n abi: universalResolverResolveAbi,\n functionName: 'resolveWithGateways',\n args: [\n toHex(packetToBytes(name)),\n functionData,\n gatewayUrls ?? [localBatchGatewayUrl],\n ],\n blockNumber,\n blockTag,\n };\n const readContractAction = getAction(client, readContract, 'readContract');\n const res = await readContractAction(readContractParameters);\n if (res[0] === '0x')\n return null;\n const address = decodeFunctionResult({\n abi: addressResolverAbi,\n args,\n functionName: 'addr',\n data: res[0],\n });\n if (address === '0x')\n return null;\n if (trim(address) === '0x00')\n return null;\n return address;\n }\n catch (err) {\n if (strict)\n throw err;\n if (isNullUniversalResolverError(err))\n return null;\n throw err;\n }\n}\n//# sourceMappingURL=getEnsAddress.js.map","import { parseAvatarRecord, } from '../../utils/ens/avatar/parseAvatarRecord.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { getEnsText, } from './getEnsText.js';\n/**\n * Gets the avatar of an ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsAvatar\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls [`getEnsText`](https://viem.sh/docs/ens/actions/getEnsText) with `key` set to `'avatar'`.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsAvatarParameters}\n * @returns Avatar URI or `null` if not found. {@link GetEnsAvatarReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsAvatar, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const ensAvatar = await getEnsAvatar(client, {\n * name: normalize('wevm.eth'),\n * })\n * // 'https://ipfs.io/ipfs/Qma8mnp6xV3J2cRNf3mTth5C8nV11CAnceVinc3y8jSbio'\n */\nexport async function getEnsAvatar(client, { blockNumber, blockTag, assetGatewayUrls, name, gatewayUrls, strict, universalResolverAddress, }) {\n const record = await getAction(client, getEnsText, 'getEnsText')({\n blockNumber,\n blockTag,\n key: 'avatar',\n name,\n universalResolverAddress,\n gatewayUrls,\n strict,\n });\n if (!record)\n return null;\n try {\n return await parseAvatarRecord(client, {\n record,\n gatewayUrls: assetGatewayUrls,\n });\n }\n catch {\n return null;\n }\n}\n//# sourceMappingURL=getEnsAvatar.js.map","import { getJsonImage, getMetadataAvatarUri, getNftTokenUri, parseAvatarUri, parseNftUri, resolveAvatarUri, } from './utils.js';\n/*\n * @description Parses an ENS avatar record.\n *\n * @example\n * parseAvatarRecord('eip155:1/erc1155:0xb32979486938aa9694bfc898f35dbed459f44424/10063')\n * 'https://ipfs.io/ipfs/QmSP4nq9fnN9dAiCj42ug9Wa79rqmQerZXZch82VqpiH7U/image.gif'\n *\n * @see https://docs.ens.domains/web/avatars\n *\n */\nexport async function parseAvatarRecord(client, { gatewayUrls, record, }) {\n if (/eip155:/i.test(record))\n return parseNftAvatarUri(client, { gatewayUrls, record });\n return parseAvatarUri({ uri: record, gatewayUrls });\n}\nasync function parseNftAvatarUri(client, { gatewayUrls, record, }) {\n // parse NFT URI into properties\n const nft = parseNftUri(record);\n // fetch tokenURI from the NFT contract\n const nftUri = await getNftTokenUri(client, { nft });\n // resolve the URI from the fetched tokenURI\n const { uri: resolvedNftUri, isOnChain, isEncoded, } = resolveAvatarUri({ uri: nftUri, gatewayUrls });\n // if the resolved URI is on chain, return the data\n if (isOnChain &&\n (resolvedNftUri.includes('data:application/json;base64,') ||\n resolvedNftUri.startsWith('{'))) {\n const encodedJson = isEncoded\n ? // if it is encoded, decode it\n atob(resolvedNftUri.replace('data:application/json;base64,', ''))\n : // if it isn't encoded assume it is a JSON string, but it could be anything (it will error if it is)\n resolvedNftUri;\n const decoded = JSON.parse(encodedJson);\n return parseAvatarUri({ uri: getJsonImage(decoded), gatewayUrls });\n }\n let uriTokenId = nft.tokenID;\n if (nft.namespace === 'erc1155')\n uriTokenId = uriTokenId.replace('0x', '').padStart(64, '0');\n return getMetadataAvatarUri({\n gatewayUrls,\n uri: resolvedNftUri.replace(/(?:0x)?{id}/, uriTokenId),\n });\n}\n//# sourceMappingURL=parseAvatarRecord.js.map","import { universalResolverReverseAbi } from '../../constants/abis.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { isNullUniversalResolverError } from '../../utils/ens/errors.js';\nimport { localBatchGatewayUrl } from '../../utils/ens/localBatchGatewayRequest.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from '../public/readContract.js';\n/**\n * Gets primary name for specified address.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsName\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `reverse(bytes)` on ENS Universal Resolver Contract to \"reverse resolve\" the address to the primary ENS name.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsNameParameters}\n * @returns Name or `null` if not found. {@link GetEnsNameReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsName } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const ensName = await getEnsName(client, {\n * address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\n * })\n * // 'wevm.eth'\n */\nexport async function getEnsName(client, parameters) {\n const { address, blockNumber, blockTag, coinType = 60n, gatewayUrls, strict, } = parameters;\n const { chain } = client;\n const universalResolverAddress = (() => {\n if (parameters.universalResolverAddress)\n return parameters.universalResolverAddress;\n if (!chain)\n throw new Error('client chain not configured. universalResolverAddress is required.');\n return getChainContractAddress({\n blockNumber,\n chain,\n contract: 'ensUniversalResolver',\n });\n })();\n try {\n const readContractParameters = {\n address: universalResolverAddress,\n abi: universalResolverReverseAbi,\n args: [address, coinType, gatewayUrls ?? [localBatchGatewayUrl]],\n functionName: 'reverseWithGateways',\n blockNumber,\n blockTag,\n };\n const readContractAction = getAction(client, readContract, 'readContract');\n const [name] = await readContractAction(readContractParameters);\n return name || null;\n }\n catch (err) {\n if (strict)\n throw err;\n if (isNullUniversalResolverError(err))\n return null;\n throw err;\n }\n}\n//# sourceMappingURL=getEnsName.js.map","import { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { toHex } from '../../utils/encoding/toHex.js';\nimport { packetToBytes, } from '../../utils/ens/packetToBytes.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from '../public/readContract.js';\n/**\n * Gets resolver for ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `findResolver(bytes)` on ENS Universal Resolver Contract to retrieve the resolver of an ENS name.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsResolverParameters}\n * @returns Address for ENS resolver. {@link GetEnsResolverReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsResolver, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const resolverAddress = await getEnsResolver(client, {\n * name: normalize('wevm.eth'),\n * })\n * // '0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41'\n */\nexport async function getEnsResolver(client, parameters) {\n const { blockNumber, blockTag, name } = parameters;\n const { chain } = client;\n const universalResolverAddress = (() => {\n if (parameters.universalResolverAddress)\n return parameters.universalResolverAddress;\n if (!chain)\n throw new Error('client chain not configured. universalResolverAddress is required.');\n return getChainContractAddress({\n blockNumber,\n chain,\n contract: 'ensUniversalResolver',\n });\n })();\n const tlds = chain?.ensTlds;\n if (tlds && !tlds.some((tld) => name.endsWith(tld)))\n throw new Error(`${name} is not a valid ENS TLD (${tlds?.join(', ')}) for chain \"${chain.name}\" (id: ${chain.id}).`);\n const [resolverAddress] = await getAction(client, readContract, 'readContract')({\n address: universalResolverAddress,\n abi: [\n {\n inputs: [{ type: 'bytes' }],\n name: 'findResolver',\n outputs: [\n { type: 'address' },\n { type: 'bytes32' },\n { type: 'uint256' },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n ],\n functionName: 'findResolver',\n args: [toHex(packetToBytes(name))],\n blockNumber,\n blockTag,\n });\n return resolverAddress;\n}\n//# sourceMappingURL=getEnsResolver.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatFeeHistory, } from '../../utils/formatters/feeHistory.js';\n/**\n * Returns a collection of historical gas information.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFeeHistory\n * - JSON-RPC Methods: [`eth_feeHistory`](https://docs.alchemy.com/reference/eth-feehistory)\n *\n * @param client - Client to use\n * @param parameters - {@link GetFeeHistoryParameters}\n * @returns The gas estimate (in wei). {@link GetFeeHistoryReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getFeeHistory } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const feeHistory = await getFeeHistory(client, {\n * blockCount: 4,\n * rewardPercentiles: [25, 75],\n * })\n */\nexport async function getFeeHistory(client, { blockCount, blockNumber, blockTag = 'latest', rewardPercentiles, }) {\n const blockNumberHex = typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined;\n const feeHistory = await client.request({\n method: 'eth_feeHistory',\n params: [\n numberToHex(blockCount),\n blockNumberHex || blockTag,\n rewardPercentiles,\n ],\n }, { dedupe: Boolean(blockNumberHex) });\n return formatFeeHistory(feeHistory);\n}\n//# sourceMappingURL=getFeeHistory.js.map","export function formatFeeHistory(feeHistory) {\n return {\n baseFeePerGas: feeHistory.baseFeePerGas.map((value) => BigInt(value)),\n gasUsedRatio: feeHistory.gasUsedRatio,\n oldestBlock: BigInt(feeHistory.oldestBlock),\n reward: feeHistory.reward?.map((reward) => reward.map((value) => BigInt(value))),\n };\n}\n//# sourceMappingURL=feeHistory.js.map","import { parseEventLogs } from '../../utils/abi/parseEventLogs.js';\nimport { formatLog, } from '../../utils/formatters/log.js';\n/**\n * Returns a list of event logs since the filter was created.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFilterLogs\n * - JSON-RPC Methods: [`eth_getFilterLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterlogs)\n *\n * `getFilterLogs` is only compatible with **event filters**.\n *\n * @param client - Client to use\n * @param parameters - {@link GetFilterLogsParameters}\n * @returns A list of event logs. {@link GetFilterLogsReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbiItem } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createEventFilter, getFilterLogs } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createEventFilter(client, {\n * address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n * event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),\n * })\n * const logs = await getFilterLogs(client, { filter })\n */\nexport async function getFilterLogs(_client, { filter, }) {\n const strict = filter.strict ?? false;\n const logs = await filter.request({\n method: 'eth_getFilterLogs',\n params: [filter.id],\n });\n const formattedLogs = logs.map((log) => formatLog(log));\n if (!filter.abi)\n return formattedLogs;\n return parseEventLogs({\n abi: filter.abi,\n logs: formattedLogs,\n strict,\n });\n}\n//# sourceMappingURL=getFilterLogs.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatProof, } from '../../utils/formatters/proof.js';\n/**\n * Returns the account and storage values of the specified account including the Merkle-proof.\n *\n * - Docs: https://viem.sh/docs/actions/public/getProof\n * - JSON-RPC Methods:\n * - Calls [`eth_getProof`](https://eips.ethereum.org/EIPS/eip-1186)\n *\n * @param client - Client to use\n * @param parameters - {@link GetProofParameters}\n * @returns Proof data. {@link GetProofReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getProof } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const block = await getProof(client, {\n * address: '0x...',\n * storageKeys: ['0x...'],\n * })\n */\nexport async function getProof(client, { address, blockNumber, blockTag: blockTag_, storageKeys, }) {\n const blockTag = blockTag_ ?? 'latest';\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n const proof = await client.request({\n method: 'eth_getProof',\n params: [address, storageKeys, blockNumberHex || blockTag],\n });\n return formatProof(proof);\n}\n//# sourceMappingURL=getProof.js.map","import { hexToNumber } from '../index.js';\nfunction formatStorageProof(storageProof) {\n return storageProof.map((proof) => ({\n ...proof,\n value: BigInt(proof.value),\n }));\n}\nexport function formatProof(proof) {\n return {\n ...proof,\n balance: proof.balance ? BigInt(proof.balance) : undefined,\n nonce: proof.nonce ? hexToNumber(proof.nonce) : undefined,\n storageProof: proof.storageProof\n ? formatStorageProof(proof.storageProof)\n : undefined,\n };\n}\n//# sourceMappingURL=proof.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Returns the value from a storage slot at a given address.\n *\n * - Docs: https://viem.sh/docs/contract/getStorageAt\n * - JSON-RPC Methods: [`eth_getStorageAt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getstorageat)\n *\n * @param client - Client to use\n * @param parameters - {@link GetStorageAtParameters}\n * @returns The value of the storage slot. {@link GetStorageAtReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getStorageAt } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const code = await getStorageAt(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * slot: toHex(0),\n * })\n */\nexport async function getStorageAt(client, { address, blockNumber, blockTag = 'latest', slot }) {\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n const data = await client.request({\n method: 'eth_getStorageAt',\n params: [address, slot, blockNumberHex || blockTag],\n });\n return data;\n}\n//# sourceMappingURL=getStorageAt.js.map","import { getAction } from '../../utils/getAction.js';\nimport { getBlockNumber, } from './getBlockNumber.js';\nimport { getTransaction, } from './getTransaction.js';\n/**\n * Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\n * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\n * - JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionConfirmationsParameters}\n * @returns The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransactionConfirmations } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const confirmations = await getTransactionConfirmations(client, {\n * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\nexport async function getTransactionConfirmations(client, { hash, transactionReceipt }) {\n const [blockNumber, transaction] = await Promise.all([\n getAction(client, getBlockNumber, 'getBlockNumber')({}),\n hash\n ? getAction(client, getTransaction, 'getTransaction')({ hash })\n : undefined,\n ]);\n const transactionBlockNumber = transactionReceipt?.blockNumber || transaction?.blockNumber;\n if (!transactionBlockNumber)\n return 0n;\n return blockNumber - transactionBlockNumber + 1n;\n}\n//# sourceMappingURL=getTransactionConfirmations.js.map","import { multicall3Abi } from '../../constants/abis.js';\nimport { multicall3Bytecode } from '../../constants/contracts.js';\nimport { AbiDecodingZeroDataError } from '../../errors/abi.js';\nimport { BaseError } from '../../errors/base.js';\nimport { RawContractError } from '../../errors/contract.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { getContractError, } from '../../utils/errors/getContractError.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract } from './readContract.js';\n/**\n * Similar to [`readContract`](https://viem.sh/docs/contract/readContract), but batches up multiple functions on a contract in a single RPC call via the [`multicall3` contract](https://github.com/mds1/multicall).\n *\n * - Docs: https://viem.sh/docs/contract/multicall\n *\n * @param client - Client to use\n * @param parameters - {@link MulticallParameters}\n * @returns An array of results with accompanying status. {@link MulticallReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { multicall } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const abi = parseAbi([\n * 'function balanceOf(address) view returns (uint256)',\n * 'function totalSupply() view returns (uint256)',\n * ])\n * const results = await multicall(client, {\n * contracts: [\n * {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi,\n * functionName: 'balanceOf',\n * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n * },\n * {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi,\n * functionName: 'totalSupply',\n * },\n * ],\n * })\n * // [{ result: 424122n, status: 'success' }, { result: 1000000n, status: 'success' }]\n */\nexport async function multicall(client, parameters) {\n const { account, authorizationList, allowFailure = true, blockNumber, blockOverrides, blockTag, stateOverride, } = parameters;\n const contracts = parameters.contracts;\n const { batchSize = parameters.batchSize ?? 1024, deployless = parameters.deployless ?? false, } = typeof client.batch?.multicall === 'object' ? client.batch.multicall : {};\n const multicallAddress = (() => {\n if (parameters.multicallAddress)\n return parameters.multicallAddress;\n if (deployless)\n return null;\n if (client.chain) {\n return getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'multicall3',\n });\n }\n throw new Error('client chain not configured. multicallAddress is required.');\n })();\n const chunkedCalls = [[]];\n let currentChunk = 0;\n let currentChunkSize = 0;\n for (let i = 0; i < contracts.length; i++) {\n const { abi, address, args, functionName } = contracts[i];\n try {\n const callData = encodeFunctionData({ abi, args, functionName });\n currentChunkSize += (callData.length - 2) / 2;\n // Check to see if we need to create a new chunk.\n if (\n // Check if batching is enabled.\n batchSize > 0 &&\n // Check if the current size of the batch exceeds the size limit.\n currentChunkSize > batchSize &&\n // Check if the current chunk is not already empty.\n chunkedCalls[currentChunk].length > 0) {\n currentChunk++;\n currentChunkSize = (callData.length - 2) / 2;\n chunkedCalls[currentChunk] = [];\n }\n chunkedCalls[currentChunk] = [\n ...chunkedCalls[currentChunk],\n {\n allowFailure: true,\n callData,\n target: address,\n },\n ];\n }\n catch (err) {\n const error = getContractError(err, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/multicall',\n functionName,\n sender: account,\n });\n if (!allowFailure)\n throw error;\n chunkedCalls[currentChunk] = [\n ...chunkedCalls[currentChunk],\n {\n allowFailure: true,\n callData: '0x',\n target: address,\n },\n ];\n }\n }\n const aggregate3Results = await Promise.allSettled(chunkedCalls.map((calls) => getAction(client, readContract, 'readContract')({\n ...(multicallAddress === null\n ? { code: multicall3Bytecode }\n : { address: multicallAddress }),\n abi: multicall3Abi,\n account,\n args: [calls],\n authorizationList,\n blockNumber,\n blockOverrides,\n blockTag,\n functionName: 'aggregate3',\n stateOverride,\n })));\n const results = [];\n for (let i = 0; i < aggregate3Results.length; i++) {\n const result = aggregate3Results[i];\n // If an error occurred in a `readContract` invocation (ie. network error),\n // then append the failure reason to each contract result.\n if (result.status === 'rejected') {\n if (!allowFailure)\n throw result.reason;\n for (let j = 0; j < chunkedCalls[i].length; j++) {\n results.push({\n status: 'failure',\n error: result.reason,\n result: undefined,\n });\n }\n continue;\n }\n // If the `readContract` call was successful, then decode the results.\n const aggregate3Result = result.value;\n for (let j = 0; j < aggregate3Result.length; j++) {\n // Extract the response from `readContract`\n const { returnData, success } = aggregate3Result[j];\n // Extract the request call data from the original call.\n const { callData } = chunkedCalls[i][j];\n // Extract the contract config for this call from the `contracts` argument\n // for decoding.\n const { abi, address, functionName, args } = contracts[results.length];\n try {\n if (callData === '0x')\n throw new AbiDecodingZeroDataError();\n if (!success)\n throw new RawContractError({ data: returnData });\n const result = decodeFunctionResult({\n abi,\n args,\n data: returnData,\n functionName,\n });\n results.push(allowFailure ? { result, status: 'success' } : result);\n }\n catch (err) {\n const error = getContractError(err, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/multicall',\n functionName,\n });\n if (!allowFailure)\n throw error;\n results.push({ error, result: undefined, status: 'failure' });\n }\n }\n }\n if (results.length !== contracts.length)\n throw new BaseError('multicall results mismatch');\n return results;\n}\n//# sourceMappingURL=multicall.js.map","import * as AbiConstructor from 'ox/AbiConstructor';\nimport * as AbiFunction from 'ox/AbiFunction';\nimport { parseAccount } from '../../accounts/utils/parseAccount.js';\nimport { ethAddress, zeroAddress } from '../../constants/address.js';\nimport { deploylessCallViaBytecodeBytecode } from '../../constants/contracts.js';\nimport { BaseError } from '../../errors/base.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { hexToBigInt } from '../../utils/index.js';\nimport { createAccessList, } from './createAccessList.js';\nimport { simulateBlocks, } from './simulateBlocks.js';\nconst getBalanceCode = '0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033';\n/**\n * Simulates execution of a batch of calls.\n *\n * @param client - Client to use\n * @param parameters - {@link SimulateCallsParameters}\n * @returns Results. {@link SimulateCallsReturnType}\n *\n * @example\n * ```ts\n * import { createPublicClient, http, parseEther } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { simulateCalls } from 'viem/actions'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n *\n * const result = await simulateCalls(client, {\n * account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n * calls: [{\n * {\n * data: '0xdeadbeef',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * },\n * {\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: parseEther('1'),\n * },\n * ]\n * })\n * ```\n */\nexport async function simulateCalls(client, parameters) {\n const { blockNumber, blockTag, calls, stateOverrides, traceAssetChanges, traceTransfers, validation, } = parameters;\n const account = parameters.account\n ? parseAccount(parameters.account)\n : undefined;\n if (traceAssetChanges && !account)\n throw new BaseError('`account` is required when `traceAssetChanges` is true');\n // Derive bytecode to extract ETH balance via a contract call.\n const getBalanceData = account\n ? AbiConstructor.encode(AbiConstructor.from('constructor(bytes, bytes)'), {\n bytecode: deploylessCallViaBytecodeBytecode,\n args: [\n getBalanceCode,\n AbiFunction.encodeData(AbiFunction.from('function getBalance(address)'), [account.address]),\n ],\n })\n : undefined;\n // Fetch ERC20/721 addresses that were \"touched\" from the calls.\n const assetAddresses = traceAssetChanges\n ? await Promise.all(parameters.calls.map(async (call) => {\n if (!call.data && !call.abi)\n return;\n const { accessList } = await createAccessList(client, {\n account: account.address,\n ...call,\n data: call.abi ? encodeFunctionData(call) : call.data,\n });\n return accessList.map(({ address, storageKeys }) => storageKeys.length > 0 ? address : null);\n })).then((x) => x.flat().filter(Boolean))\n : [];\n const blocks = await simulateBlocks(client, {\n blockNumber,\n blockTag: blockTag,\n blocks: [\n ...(traceAssetChanges\n ? [\n // ETH pre balances\n {\n calls: [{ data: getBalanceData }],\n stateOverrides,\n },\n // Asset pre balances\n {\n calls: assetAddresses.map((address, i) => ({\n abi: [\n AbiFunction.from('function balanceOf(address) returns (uint256)'),\n ],\n functionName: 'balanceOf',\n args: [account.address],\n to: address,\n from: zeroAddress,\n nonce: i,\n })),\n stateOverrides: [\n {\n address: zeroAddress,\n nonce: 0,\n },\n ],\n },\n ]\n : []),\n {\n calls: [...calls, {}].map((call) => ({\n ...call,\n from: account?.address,\n })),\n stateOverrides,\n },\n ...(traceAssetChanges\n ? [\n // ETH post balances\n {\n calls: [{ data: getBalanceData }],\n },\n // Asset post balances\n {\n calls: assetAddresses.map((address, i) => ({\n abi: [\n AbiFunction.from('function balanceOf(address) returns (uint256)'),\n ],\n functionName: 'balanceOf',\n args: [account.address],\n to: address,\n from: zeroAddress,\n nonce: i,\n })),\n stateOverrides: [\n {\n address: zeroAddress,\n nonce: 0,\n },\n ],\n },\n // Decimals\n {\n calls: assetAddresses.map((address, i) => ({\n to: address,\n abi: [\n AbiFunction.from('function decimals() returns (uint256)'),\n ],\n functionName: 'decimals',\n from: zeroAddress,\n nonce: i,\n })),\n stateOverrides: [\n {\n address: zeroAddress,\n nonce: 0,\n },\n ],\n },\n // Token URI\n {\n calls: assetAddresses.map((address, i) => ({\n to: address,\n abi: [\n AbiFunction.from('function tokenURI(uint256) returns (string)'),\n ],\n functionName: 'tokenURI',\n args: [0n],\n from: zeroAddress,\n nonce: i,\n })),\n stateOverrides: [\n {\n address: zeroAddress,\n nonce: 0,\n },\n ],\n },\n // Symbols\n {\n calls: assetAddresses.map((address, i) => ({\n to: address,\n abi: [AbiFunction.from('function symbol() returns (string)')],\n functionName: 'symbol',\n from: zeroAddress,\n nonce: i,\n })),\n stateOverrides: [\n {\n address: zeroAddress,\n nonce: 0,\n },\n ],\n },\n ]\n : []),\n ],\n traceTransfers,\n validation,\n });\n const block_results = traceAssetChanges ? blocks[2] : blocks[0];\n const [block_ethPre, block_assetsPre, , block_ethPost, block_assetsPost, block_decimals, block_tokenURI, block_symbols,] = traceAssetChanges ? blocks : [];\n // Extract call results from the simulation.\n const { calls: block_calls, ...block } = block_results;\n const results = block_calls.slice(0, -1) ?? [];\n // Extract pre-execution ETH and asset balances.\n const ethPre = block_ethPre?.calls ?? [];\n const assetsPre = block_assetsPre?.calls ?? [];\n const balancesPre = [...ethPre, ...assetsPre].map((call) => call.status === 'success' ? hexToBigInt(call.data) : null);\n // Extract post-execution ETH and asset balances.\n const ethPost = block_ethPost?.calls ?? [];\n const assetsPost = block_assetsPost?.calls ?? [];\n const balancesPost = [...ethPost, ...assetsPost].map((call) => call.status === 'success' ? hexToBigInt(call.data) : null);\n // Extract asset symbols & decimals.\n const decimals = (block_decimals?.calls ?? []).map((x) => x.status === 'success' ? x.result : null);\n const symbols = (block_symbols?.calls ?? []).map((x) => x.status === 'success' ? x.result : null);\n const tokenURI = (block_tokenURI?.calls ?? []).map((x) => x.status === 'success' ? x.result : null);\n const changes = [];\n for (const [i, balancePost] of balancesPost.entries()) {\n const balancePre = balancesPre[i];\n if (typeof balancePost !== 'bigint')\n continue;\n if (typeof balancePre !== 'bigint')\n continue;\n const decimals_ = decimals[i - 1];\n const symbol_ = symbols[i - 1];\n const tokenURI_ = tokenURI[i - 1];\n const token = (() => {\n if (i === 0)\n return {\n address: ethAddress,\n decimals: 18,\n symbol: 'ETH',\n };\n return {\n address: assetAddresses[i - 1],\n decimals: tokenURI_ || decimals_ ? Number(decimals_ ?? 1) : undefined,\n symbol: symbol_ ?? undefined,\n };\n })();\n if (changes.some((change) => change.token.address === token.address))\n continue;\n changes.push({\n token,\n value: {\n pre: balancePre,\n post: balancePost,\n diff: balancePost - balancePre,\n },\n });\n }\n return {\n assetChanges: changes,\n block,\n results,\n };\n}\n//# sourceMappingURL=simulateCalls.js.map","import { getAction } from '../../utils/getAction.js';\nimport { hashMessage } from '../../utils/signature/hashMessage.js';\nimport { verifyHash, } from './verifyHash.js';\n/**\n * Verify that a message was signed by the provided address.\n *\n * Compatible with Smart Contract Accounts & Externally Owned Accounts via [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492).\n *\n * - Docs {@link https://viem.sh/docs/actions/public/verifyMessage}\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifyMessageParameters}\n * @returns Whether or not the signature is valid. {@link VerifyMessageReturnType}\n */\nexport async function verifyMessage(client, { address, message, factory, factoryData, signature, ...callRequest }) {\n const hash = hashMessage(message);\n return getAction(client, verifyHash, 'verifyHash')({\n address,\n factory: factory,\n factoryData: factoryData,\n hash,\n signature,\n ...callRequest,\n });\n}\n//# sourceMappingURL=verifyMessage.js.map","import { hashMessage } from '../../utils/signature/hashMessage.js';\nimport { parseSiweMessage } from '../../utils/siwe/parseSiweMessage.js';\nimport { validateSiweMessage, } from '../../utils/siwe/validateSiweMessage.js';\nimport { verifyHash, } from '../public/verifyHash.js';\n/**\n * Verifies [EIP-4361](https://eips.ethereum.org/EIPS/eip-4361) formatted message was signed.\n *\n * Compatible with Smart Contract Accounts & Externally Owned Accounts via [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492).\n *\n * - Docs {@link https://viem.sh/docs/siwe/actions/verifySiweMessage}\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifySiweMessageParameters}\n * @returns Whether or not the signature is valid. {@link VerifySiweMessageReturnType}\n */\nexport async function verifySiweMessage(client, parameters) {\n const { address, domain, message, nonce, scheme, signature, time = new Date(), ...callRequest } = parameters;\n const parsed = parseSiweMessage(message);\n if (!parsed.address)\n return false;\n const isValid = validateSiweMessage({\n address,\n domain,\n message: parsed,\n nonce,\n scheme,\n time,\n });\n if (!isValid)\n return false;\n const hash = hashMessage(message);\n return verifyHash(client, {\n address: parsed.address,\n hash,\n signature,\n ...callRequest,\n });\n}\n//# sourceMappingURL=verifySiweMessage.js.map","import { isAddress } from '../address/isAddress.js';\nimport { isAddressEqual } from '../address/isAddressEqual.js';\n/**\n * @description Validates EIP-4361 message.\n *\n * @see https://eips.ethereum.org/EIPS/eip-4361\n */\nexport function validateSiweMessage(parameters) {\n const { address, domain, message, nonce, scheme, time = new Date(), } = parameters;\n if (domain && message.domain !== domain)\n return false;\n if (nonce && message.nonce !== nonce)\n return false;\n if (scheme && message.scheme !== scheme)\n return false;\n if (message.expirationTime && time >= message.expirationTime)\n return false;\n if (message.notBefore && time < message.notBefore)\n return false;\n try {\n if (!message.address)\n return false;\n if (!isAddress(message.address, { strict: false }))\n return false;\n if (address && !isAddressEqual(message.address, address))\n return false;\n }\n catch {\n return false;\n }\n return true;\n}\n//# sourceMappingURL=validateSiweMessage.js.map","import { getAction } from '../../utils/getAction.js';\nimport { hashTypedData, } from '../../utils/signature/hashTypedData.js';\nimport { verifyHash, } from './verifyHash.js';\n/**\n * Verify that typed data was signed by the provided address.\n *\n * - Docs {@link https://viem.sh/docs/actions/public/verifyTypedData}\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifyTypedDataParameters}\n * @returns Whether or not the signature is valid. {@link VerifyTypedDataReturnType}\n */\nexport async function verifyTypedData(client, parameters) {\n const { address, factory, factoryData, signature, message, primaryType, types, domain, ...callRequest } = parameters;\n const hash = hashTypedData({ message, primaryType, types, domain });\n return getAction(client, verifyHash, 'verifyHash')({\n address,\n factory: factory,\n factoryData: factoryData,\n hash,\n signature,\n ...callRequest,\n });\n}\n//# sourceMappingURL=verifyTypedData.js.map","import { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { getBlock } from './getBlock.js';\n/**\n * Watches and returns information for incoming blocks.\n *\n * - Docs: https://viem.sh/docs/actions/public/watchBlocks\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\n * - JSON-RPC Methods:\n * - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\n * - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\"newHeads\"` event.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchBlocksParameters}\n * @returns A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\n *\n * @example\n * import { createPublicClient, watchBlocks, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = watchBlocks(client, {\n * onBlock: (block) => console.log(block),\n * })\n */\nexport function watchBlocks(client, { blockTag = client.experimental_blockTag ?? 'latest', emitMissed = false, emitOnBegin = false, onBlock, onError, includeTransactions: includeTransactions_, poll: poll_, pollingInterval = client.pollingInterval, }) {\n const enablePolling = (() => {\n if (typeof poll_ !== 'undefined')\n return poll_;\n if (client.transport.type === 'webSocket' ||\n client.transport.type === 'ipc')\n return false;\n if (client.transport.type === 'fallback' &&\n (client.transport.transports[0].config.type === 'webSocket' ||\n client.transport.transports[0].config.type === 'ipc'))\n return false;\n return true;\n })();\n const includeTransactions = includeTransactions_ ?? false;\n let prevBlock;\n const pollBlocks = () => {\n const observerId = stringify([\n 'watchBlocks',\n client.uid,\n blockTag,\n emitMissed,\n emitOnBegin,\n includeTransactions,\n pollingInterval,\n ]);\n return observe(observerId, { onBlock, onError }, (emit) => poll(async () => {\n try {\n const block = await getAction(client, getBlock, 'getBlock')({\n blockTag,\n includeTransactions,\n });\n if (block.number !== null && prevBlock?.number != null) {\n // If the current block number is the same as the previous,\n // we can skip.\n if (block.number === prevBlock.number)\n return;\n // If we have missed out on some previous blocks, and the\n // `emitMissed` flag is truthy, let's emit those blocks.\n if (block.number - prevBlock.number > 1 && emitMissed) {\n for (let i = prevBlock?.number + 1n; i < block.number; i++) {\n const block = (await getAction(client, getBlock, 'getBlock')({\n blockNumber: i,\n includeTransactions,\n }));\n emit.onBlock(block, prevBlock);\n prevBlock = block;\n }\n }\n }\n if (\n // If no previous block exists, emit.\n prevBlock?.number == null ||\n // If the block tag is \"pending\" with no block number, emit.\n (blockTag === 'pending' && block?.number == null) ||\n // If the next block number is greater than the previous block number, emit.\n // We don't want to emit blocks in the past.\n (block.number !== null && block.number > prevBlock.number)) {\n emit.onBlock(block, prevBlock);\n prevBlock = block;\n }\n }\n catch (err) {\n emit.onError?.(err);\n }\n }, {\n emitOnBegin,\n interval: pollingInterval,\n }));\n };\n const subscribeBlocks = () => {\n let active = true;\n let emitFetched = true;\n let unsubscribe = () => (active = false);\n (async () => {\n try {\n if (emitOnBegin) {\n getAction(client, getBlock, 'getBlock')({\n blockTag,\n includeTransactions,\n })\n .then((block) => {\n if (!active)\n return;\n if (!emitFetched)\n return;\n onBlock(block, undefined);\n emitFetched = false;\n })\n .catch(onError);\n }\n const transport = (() => {\n if (client.transport.type === 'fallback') {\n const transport = client.transport.transports.find((transport) => transport.config.type === 'webSocket' ||\n transport.config.type === 'ipc');\n if (!transport)\n return client.transport;\n return transport.value;\n }\n return client.transport;\n })();\n const { unsubscribe: unsubscribe_ } = await transport.subscribe({\n params: ['newHeads'],\n async onData(data) {\n if (!active)\n return;\n const block = (await getAction(client, getBlock, 'getBlock')({\n blockNumber: data.result?.number,\n includeTransactions,\n }).catch(() => { }));\n if (!active)\n return;\n onBlock(block, prevBlock);\n emitFetched = false;\n prevBlock = block;\n },\n onError(error) {\n onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return () => unsubscribe();\n };\n return enablePolling ? pollBlocks() : subscribeBlocks();\n}\n//# sourceMappingURL=watchBlocks.js.map","import { DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';\nimport { InvalidInputRpcError } from '../../errors/rpc.js';\nimport { decodeEventLog } from '../../utils/abi/decodeEventLog.js';\nimport { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { formatLog } from '../../utils/formatters/log.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { createEventFilter, } from './createEventFilter.js';\nimport { getBlockNumber } from './getBlockNumber.js';\nimport { getFilterChanges } from './getFilterChanges.js';\nimport { getLogs } from './getLogs.js';\nimport { uninstallFilter } from './uninstallFilter.js';\n/**\n * Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\n *\n * - Docs: https://viem.sh/docs/actions/public/watchEvent\n * - JSON-RPC Methods:\n * - **RPC Provider supports `eth_newFilter`:**\n * - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\n * - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\n * - **RPC Provider does not support `eth_newFilter`:**\n * - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\n *\n * This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\n *\n * `watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchEventParameters}\n * @returns A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchEvent } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = watchEvent(client, {\n * onLogs: (logs) => console.log(logs),\n * })\n */\nexport function watchEvent(client, { address, args, batch = true, event, events, fromBlock, onError, onLogs, poll: poll_, pollingInterval = client.pollingInterval, strict: strict_, }) {\n const enablePolling = (() => {\n if (typeof poll_ !== 'undefined')\n return poll_;\n if (typeof fromBlock === 'bigint')\n return true;\n if (client.transport.type === 'webSocket' ||\n client.transport.type === 'ipc')\n return false;\n if (client.transport.type === 'fallback' &&\n (client.transport.transports[0].config.type === 'webSocket' ||\n client.transport.transports[0].config.type === 'ipc'))\n return false;\n return true;\n })();\n const strict = strict_ ?? false;\n const pollEvent = () => {\n const observerId = stringify([\n 'watchEvent',\n address,\n args,\n batch,\n client.uid,\n event,\n pollingInterval,\n fromBlock,\n ]);\n return observe(observerId, { onLogs, onError }, (emit) => {\n let previousBlockNumber;\n if (fromBlock !== undefined)\n previousBlockNumber = fromBlock - 1n;\n let filter;\n let initialized = false;\n const unwatch = poll(async () => {\n if (!initialized) {\n try {\n filter = (await getAction(client, createEventFilter, 'createEventFilter')({\n address,\n args,\n event: event,\n events,\n strict,\n fromBlock,\n }));\n }\n catch { }\n initialized = true;\n return;\n }\n try {\n let logs;\n if (filter) {\n logs = await getAction(client, getFilterChanges, 'getFilterChanges')({ filter });\n }\n else {\n // If the filter doesn't exist, we will fall back to use `getLogs`.\n // The fall back exists because some RPC Providers do not support filters.\n // Fetch the block number to use for `getLogs`.\n const blockNumber = await getAction(client, getBlockNumber, 'getBlockNumber')({});\n // If the block number has changed, we will need to fetch the logs.\n // If the block number doesn't exist, we are yet to reach the first poll interval,\n // so do not emit any logs.\n if (previousBlockNumber && previousBlockNumber !== blockNumber) {\n logs = await getAction(client, getLogs, 'getLogs')({\n address,\n args,\n event: event,\n events,\n fromBlock: previousBlockNumber + 1n,\n toBlock: blockNumber,\n });\n }\n else {\n logs = [];\n }\n previousBlockNumber = blockNumber;\n }\n if (logs.length === 0)\n return;\n if (batch)\n emit.onLogs(logs);\n else\n for (const log of logs)\n emit.onLogs([log]);\n }\n catch (err) {\n // If a filter has been set and gets uninstalled, providers will throw an InvalidInput error.\n // Reinitialize the filter when this occurs\n if (filter && err instanceof InvalidInputRpcError)\n initialized = false;\n emit.onError?.(err);\n }\n }, {\n emitOnBegin: true,\n interval: pollingInterval,\n });\n return async () => {\n if (filter)\n await getAction(client, uninstallFilter, 'uninstallFilter')({ filter });\n unwatch();\n };\n });\n };\n const subscribeEvent = () => {\n let active = true;\n let unsubscribe = () => (active = false);\n (async () => {\n try {\n const transport = (() => {\n if (client.transport.type === 'fallback') {\n const transport = client.transport.transports.find((transport) => transport.config.type === 'webSocket' ||\n transport.config.type === 'ipc');\n if (!transport)\n return client.transport;\n return transport.value;\n }\n return client.transport;\n })();\n const events_ = events ?? (event ? [event] : undefined);\n let topics = [];\n if (events_) {\n const encoded = events_.flatMap((event) => encodeEventTopics({\n abi: [event],\n eventName: event.name,\n args,\n }));\n // TODO: Clean up type casting\n topics = [encoded];\n if (event)\n topics = topics[0];\n }\n const { unsubscribe: unsubscribe_ } = await transport.subscribe({\n params: ['logs', { address, topics }],\n onData(data) {\n if (!active)\n return;\n const log = data.result;\n try {\n const { eventName, args } = decodeEventLog({\n abi: events_ ?? [],\n data: log.data,\n topics: log.topics,\n strict,\n });\n const formatted = formatLog(log, { args, eventName });\n onLogs([formatted]);\n }\n catch (err) {\n let eventName;\n let isUnnamed;\n if (err instanceof DecodeLogDataMismatch ||\n err instanceof DecodeLogTopicsMismatch) {\n // If strict mode is on, and log data/topics do not match event definition, skip.\n if (strict_)\n return;\n eventName = err.abiItem.name;\n isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));\n }\n // Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).\n const formatted = formatLog(log, {\n args: isUnnamed ? [] : {},\n eventName,\n });\n onLogs([formatted]);\n }\n },\n onError(error) {\n onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return () => unsubscribe();\n };\n return enablePolling ? pollEvent() : subscribeEvent();\n}\n//# sourceMappingURL=watchEvent.js.map","import { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { createPendingTransactionFilter } from './createPendingTransactionFilter.js';\nimport { getFilterChanges } from './getFilterChanges.js';\nimport { uninstallFilter } from './uninstallFilter.js';\n/**\n * Watches and returns pending transaction hashes.\n *\n * - Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\n * - JSON-RPC Methods:\n * - When `poll: true`\n * - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\n * - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\n * - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\"newPendingTransactions\"` event.\n *\n * This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\n *\n * @param client - Client to use\n * @param parameters - {@link WatchPendingTransactionsParameters}\n * @returns A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchPendingTransactions } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = await watchPendingTransactions(client, {\n * onTransactions: (hashes) => console.log(hashes),\n * })\n */\nexport function watchPendingTransactions(client, { batch = true, onError, onTransactions, poll: poll_, pollingInterval = client.pollingInterval, }) {\n const enablePolling = typeof poll_ !== 'undefined'\n ? poll_\n : client.transport.type !== 'webSocket' && client.transport.type !== 'ipc';\n const pollPendingTransactions = () => {\n const observerId = stringify([\n 'watchPendingTransactions',\n client.uid,\n batch,\n pollingInterval,\n ]);\n return observe(observerId, { onTransactions, onError }, (emit) => {\n let filter;\n const unwatch = poll(async () => {\n try {\n if (!filter) {\n try {\n filter = await getAction(client, createPendingTransactionFilter, 'createPendingTransactionFilter')({});\n return;\n }\n catch (err) {\n unwatch();\n throw err;\n }\n }\n const hashes = await getAction(client, getFilterChanges, 'getFilterChanges')({ filter });\n if (hashes.length === 0)\n return;\n if (batch)\n emit.onTransactions(hashes);\n else\n for (const hash of hashes)\n emit.onTransactions([hash]);\n }\n catch (err) {\n emit.onError?.(err);\n }\n }, {\n emitOnBegin: true,\n interval: pollingInterval,\n });\n return async () => {\n if (filter)\n await getAction(client, uninstallFilter, 'uninstallFilter')({ filter });\n unwatch();\n };\n });\n };\n const subscribePendingTransactions = () => {\n let active = true;\n let unsubscribe = () => (active = false);\n (async () => {\n try {\n const { unsubscribe: unsubscribe_ } = await client.transport.subscribe({\n params: ['newPendingTransactions'],\n onData(data) {\n if (!active)\n return;\n const transaction = data.result;\n onTransactions([transaction]);\n },\n onError(error) {\n onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return () => unsubscribe();\n };\n return enablePolling\n ? pollPendingTransactions()\n : subscribePendingTransactions();\n}\n//# sourceMappingURL=watchPendingTransactions.js.map","import { createClient, } from './createClient.js';\nimport { publicActions } from './decorators/public.js';\n/**\n * Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\n *\n * - Docs: https://viem.sh/docs/clients/public\n *\n * A Public Client is an interface to \"public\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\n *\n * @param config - {@link PublicClientConfig}\n * @returns A Public Client. {@link PublicClient}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n */\nexport function createPublicClient(parameters) {\n const { key = 'public', name = 'Public Client' } = parameters;\n const client = createClient({\n ...parameters,\n key,\n name,\n type: 'publicClient',\n });\n return client.extend(publicActions);\n}\n//# sourceMappingURL=createPublicClient.js.map","var asn1 = require('../asn1');\nvar inherits = require('inherits');\n\nvar api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n};\n\nEntity.prototype._createNamed = function createNamed(base) {\n var named;\n try {\n named = require('vm').runInThisContext(\n '(function ' + this.name + '(entity) {\\n' +\n ' this._initNamed(entity);\\n' +\n '})'\n );\n } catch (e) {\n named = function (entity) {\n this._initNamed(entity);\n };\n }\n inherits(named, base);\n named.prototype._initNamed = function initnamed(entity) {\n base.call(this, entity);\n };\n\n return new named(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(asn1.decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(asn1.encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","import { dual } from \"../Function.js\";\n/** @internal */\nconst BIT_MASK = 0xff;\n/** @internal */\nconst BIT_SHIFT = 0x08;\n/** @internal */\nexport const active = patch => patch & BIT_MASK;\n/** @internal */\nexport const enabled = patch => patch >> BIT_SHIFT & BIT_MASK;\n/** @internal */\nexport const make = (active, enabled) => (active & BIT_MASK) + ((enabled & active & BIT_MASK) << BIT_SHIFT);\n/** @internal */\nexport const empty = /*#__PURE__*/make(0, 0);\n/** @internal */\nexport const enable = flag => make(flag, flag);\n/** @internal */\nexport const disable = flag => make(flag, 0);\n/** @internal */\nexport const isEmpty = patch => patch === 0;\n/** @internal */\nexport const isActive = /*#__PURE__*/dual(2, (self, flag) => (active(self) & flag) !== 0);\n/** @internal */\nexport const isEnabled = /*#__PURE__*/dual(2, (self, flag) => (enabled(self) & flag) !== 0);\n/** @internal */\nexport const isDisabled = /*#__PURE__*/dual(2, (self, flag) => (active(self) & flag) !== 0 && (enabled(self) & flag) === 0);\n/** @internal */\nexport const exclude = /*#__PURE__*/dual(2, (self, flag) => make(active(self) & ~flag, enabled(self)));\n/** @internal */\nexport const both = /*#__PURE__*/dual(2, (self, that) => make(active(self) | active(that), enabled(self) & enabled(that)));\n/** @internal */\nexport const either = /*#__PURE__*/dual(2, (self, that) => make(active(self) | active(that), enabled(self) | enabled(that)));\n/** @internal */\nexport const andThen = /*#__PURE__*/dual(2, (self, that) => self | that);\n/** @internal */\nexport const inverse = patch => make(enabled(patch), invert(active(patch)));\n/** @internal */\nexport const invert = n => ~n >>> 0 & BIT_MASK;\n//# sourceMappingURL=runtimeFlagsPatch.js.map","/* [Multicall3](https://github.com/mds1/multicall) */\nexport const multicall3Abi = [\n {\n inputs: [\n {\n components: [\n {\n name: 'target',\n type: 'address',\n },\n {\n name: 'allowFailure',\n type: 'bool',\n },\n {\n name: 'callData',\n type: 'bytes',\n },\n ],\n name: 'calls',\n type: 'tuple[]',\n },\n ],\n name: 'aggregate3',\n outputs: [\n {\n components: [\n {\n name: 'success',\n type: 'bool',\n },\n {\n name: 'returnData',\n type: 'bytes',\n },\n ],\n name: 'returnData',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getCurrentBlockTimestamp',\n outputs: [\n {\n internalType: 'uint256',\n name: 'timestamp',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nexport const batchGatewayAbi = [\n {\n name: 'query',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n {\n type: 'tuple[]',\n name: 'queries',\n components: [\n {\n type: 'address',\n name: 'sender',\n },\n {\n type: 'string[]',\n name: 'urls',\n },\n {\n type: 'bytes',\n name: 'data',\n },\n ],\n },\n ],\n outputs: [\n {\n type: 'bool[]',\n name: 'failures',\n },\n {\n type: 'bytes[]',\n name: 'responses',\n },\n ],\n },\n {\n name: 'HttpError',\n type: 'error',\n inputs: [\n {\n type: 'uint16',\n name: 'status',\n },\n {\n type: 'string',\n name: 'message',\n },\n ],\n },\n];\nconst universalResolverErrors = [\n {\n inputs: [\n {\n name: 'dns',\n type: 'bytes',\n },\n ],\n name: 'DNSDecodingFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n name: 'ens',\n type: 'string',\n },\n ],\n name: 'DNSEncodingFailed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'EmptyAddress',\n type: 'error',\n },\n {\n inputs: [\n {\n name: 'status',\n type: 'uint16',\n },\n {\n name: 'message',\n type: 'string',\n },\n ],\n name: 'HttpError',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidBatchGatewayResponse',\n type: 'error',\n },\n {\n inputs: [\n {\n name: 'errorData',\n type: 'bytes',\n },\n ],\n name: 'ResolverError',\n type: 'error',\n },\n {\n inputs: [\n {\n name: 'name',\n type: 'bytes',\n },\n {\n name: 'resolver',\n type: 'address',\n },\n ],\n name: 'ResolverNotContract',\n type: 'error',\n },\n {\n inputs: [\n {\n name: 'name',\n type: 'bytes',\n },\n ],\n name: 'ResolverNotFound',\n type: 'error',\n },\n {\n inputs: [\n {\n name: 'primary',\n type: 'string',\n },\n {\n name: 'primaryAddress',\n type: 'bytes',\n },\n ],\n name: 'ReverseAddressMismatch',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'selector',\n type: 'bytes4',\n },\n ],\n name: 'UnsupportedResolverProfile',\n type: 'error',\n },\n];\nexport const universalResolverResolveAbi = [\n ...universalResolverErrors,\n {\n name: 'resolveWithGateways',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes' },\n { name: 'data', type: 'bytes' },\n { name: 'gateways', type: 'string[]' },\n ],\n outputs: [\n { name: '', type: 'bytes' },\n { name: 'address', type: 'address' },\n ],\n },\n];\nexport const universalResolverReverseAbi = [\n ...universalResolverErrors,\n {\n name: 'reverseWithGateways',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { type: 'bytes', name: 'reverseName' },\n { type: 'uint256', name: 'coinType' },\n { type: 'string[]', name: 'gateways' },\n ],\n outputs: [\n { type: 'string', name: 'resolvedName' },\n { type: 'address', name: 'resolver' },\n { type: 'address', name: 'reverseResolver' },\n ],\n },\n];\nexport const textResolverAbi = [\n {\n name: 'text',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes32' },\n { name: 'key', type: 'string' },\n ],\n outputs: [{ name: '', type: 'string' }],\n },\n];\nexport const addressResolverAbi = [\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: 'name', type: 'bytes32' }],\n outputs: [{ name: '', type: 'address' }],\n },\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes32' },\n { name: 'coinType', type: 'uint256' },\n ],\n outputs: [{ name: '', type: 'bytes' }],\n },\n];\n// ERC-1271\n// isValidSignature(bytes32 hash, bytes signature) → bytes4 magicValue\n/** @internal */\nexport const erc1271Abi = [\n {\n name: 'isValidSignature',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'hash', type: 'bytes32' },\n { name: 'signature', type: 'bytes' },\n ],\n outputs: [{ name: '', type: 'bytes4' }],\n },\n];\n// ERC-6492 - universal deployless signature validator contract\n// constructor(address _signer, bytes32 _hash, bytes _signature) → bytes4 returnValue\n// returnValue is either 0x1 (valid) or 0x0 (invalid)\nexport const erc6492SignatureValidatorAbi = [\n {\n inputs: [\n {\n name: '_signer',\n type: 'address',\n },\n {\n name: '_hash',\n type: 'bytes32',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [\n {\n name: '_signer',\n type: 'address',\n },\n {\n name: '_hash',\n type: 'bytes32',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n name: 'isValidSig',\n },\n];\n/** [ERC-20 Token Standard](https://ethereum.org/en/developers/docs/standards/tokens/erc-20) */\nexport const erc20Abi = [\n {\n type: 'event',\n name: 'Approval',\n inputs: [\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n name: 'spender',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'event',\n name: 'Transfer',\n inputs: [\n {\n indexed: true,\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n name: 'to',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'allowance',\n stateMutability: 'view',\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n {\n name: 'spender',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'approve',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'spender',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n {\n type: 'function',\n name: 'balanceOf',\n stateMutability: 'view',\n inputs: [\n {\n name: 'account',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'decimals',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'uint8',\n },\n ],\n },\n {\n type: 'function',\n name: 'name',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'string',\n },\n ],\n },\n {\n type: 'function',\n name: 'symbol',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'string',\n },\n ],\n },\n {\n type: 'function',\n name: 'totalSupply',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'transfer',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'recipient',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n {\n type: 'function',\n name: 'transferFrom',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'recipient',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n];\n/**\n * [bytes32-flavored ERC-20](https://docs.makerdao.com/smart-contract-modules/mkr-module#4.-gotchas-potential-source-of-user-error)\n * for tokens (ie. Maker) that use bytes32 instead of string.\n */\nexport const erc20Abi_bytes32 = [\n {\n type: 'event',\n name: 'Approval',\n inputs: [\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n name: 'spender',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'event',\n name: 'Transfer',\n inputs: [\n {\n indexed: true,\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n name: 'to',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'allowance',\n stateMutability: 'view',\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n {\n name: 'spender',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'approve',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'spender',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n {\n type: 'function',\n name: 'balanceOf',\n stateMutability: 'view',\n inputs: [\n {\n name: 'account',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'decimals',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'uint8',\n },\n ],\n },\n {\n type: 'function',\n name: 'name',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'bytes32',\n },\n ],\n },\n {\n type: 'function',\n name: 'symbol',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'bytes32',\n },\n ],\n },\n {\n type: 'function',\n name: 'totalSupply',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'transfer',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'recipient',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n {\n type: 'function',\n name: 'transferFrom',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'recipient',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n];\n/** [ERC-1155 Multi Token Standard](https://ethereum.org/en/developers/docs/standards/tokens/erc-1155) */\nexport const erc1155Abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'balance',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'needed',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n name: 'ERC1155InsufficientBalance',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'approver',\n type: 'address',\n },\n ],\n name: 'ERC1155InvalidApprover',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'idsLength',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'valuesLength',\n type: 'uint256',\n },\n ],\n name: 'ERC1155InvalidArrayLength',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n ],\n name: 'ERC1155InvalidOperator',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n ],\n name: 'ERC1155InvalidReceiver',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'ERC1155InvalidSender',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'ERC1155MissingApprovalForAll',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'approved',\n type: 'bool',\n },\n ],\n name: 'ApprovalForAll',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256[]',\n name: 'ids',\n type: 'uint256[]',\n },\n {\n indexed: false,\n internalType: 'uint256[]',\n name: 'values',\n type: 'uint256[]',\n },\n ],\n name: 'TransferBatch',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'id',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'value',\n type: 'uint256',\n },\n ],\n name: 'TransferSingle',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'string',\n name: 'value',\n type: 'string',\n },\n {\n indexed: true,\n internalType: 'uint256',\n name: 'id',\n type: 'uint256',\n },\n ],\n name: 'URI',\n type: 'event',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'id',\n type: 'uint256',\n },\n ],\n name: 'balanceOf',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'accounts',\n type: 'address[]',\n },\n {\n internalType: 'uint256[]',\n name: 'ids',\n type: 'uint256[]',\n },\n ],\n name: 'balanceOfBatch',\n outputs: [\n {\n internalType: 'uint256[]',\n name: '',\n type: 'uint256[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n ],\n name: 'isApprovedForAll',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'from',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n {\n internalType: 'uint256[]',\n name: 'ids',\n type: 'uint256[]',\n },\n {\n internalType: 'uint256[]',\n name: 'values',\n type: 'uint256[]',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n ],\n name: 'safeBatchTransferFrom',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'from',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'id',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'value',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n ],\n name: 'safeTransferFrom',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n internalType: 'bool',\n name: 'approved',\n type: 'bool',\n },\n ],\n name: 'setApprovalForAll',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'uri',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\n/** [ERC-721 Non-Fungible Token Standard](https://ethereum.org/en/developers/docs/standards/tokens/erc-721) */\nexport const erc721Abi = [\n {\n type: 'event',\n name: 'Approval',\n inputs: [\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n name: 'spender',\n type: 'address',\n },\n {\n indexed: true,\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'event',\n name: 'ApprovalForAll',\n inputs: [\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n name: 'operator',\n type: 'address',\n },\n {\n indexed: false,\n name: 'approved',\n type: 'bool',\n },\n ],\n },\n {\n type: 'event',\n name: 'Transfer',\n inputs: [\n {\n indexed: true,\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n name: 'to',\n type: 'address',\n },\n {\n indexed: true,\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'approve',\n stateMutability: 'payable',\n inputs: [\n {\n name: 'spender',\n type: 'address',\n },\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [],\n },\n {\n type: 'function',\n name: 'balanceOf',\n stateMutability: 'view',\n inputs: [\n {\n name: 'account',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'getApproved',\n stateMutability: 'view',\n inputs: [\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'address',\n },\n ],\n },\n {\n type: 'function',\n name: 'isApprovedForAll',\n stateMutability: 'view',\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n {\n name: 'operator',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n {\n type: 'function',\n name: 'name',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'string',\n },\n ],\n },\n {\n type: 'function',\n name: 'ownerOf',\n stateMutability: 'view',\n inputs: [\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'owner',\n type: 'address',\n },\n ],\n },\n {\n type: 'function',\n name: 'safeTransferFrom',\n stateMutability: 'payable',\n inputs: [\n {\n name: 'from',\n type: 'address',\n },\n {\n name: 'to',\n type: 'address',\n },\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [],\n },\n {\n type: 'function',\n name: 'safeTransferFrom',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'from',\n type: 'address',\n },\n {\n name: 'to',\n type: 'address',\n },\n {\n name: 'id',\n type: 'uint256',\n },\n {\n name: 'data',\n type: 'bytes',\n },\n ],\n outputs: [],\n },\n {\n type: 'function',\n name: 'setApprovalForAll',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'operator',\n type: 'address',\n },\n {\n name: 'approved',\n type: 'bool',\n },\n ],\n outputs: [],\n },\n {\n type: 'function',\n name: 'symbol',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'string',\n },\n ],\n },\n {\n type: 'function',\n name: 'tokenByIndex',\n stateMutability: 'view',\n inputs: [\n {\n name: 'index',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'tokenByIndex',\n stateMutability: 'view',\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n {\n name: 'index',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'tokenURI',\n stateMutability: 'view',\n inputs: [\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'string',\n },\n ],\n },\n {\n type: 'function',\n name: 'totalSupply',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'transferFrom',\n stateMutability: 'payable',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'recipient',\n type: 'address',\n },\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [],\n },\n];\n/** [ERC-4626 Tokenized Vaults Standard](https://ethereum.org/en/developers/docs/standards/tokens/erc-4626) */\nexport const erc4626Abi = [\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n name: 'spender',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n name: 'Approval',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: false,\n name: 'assets',\n type: 'uint256',\n },\n {\n indexed: false,\n name: 'shares',\n type: 'uint256',\n },\n ],\n name: 'Deposit',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n name: 'to',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n name: 'Transfer',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: false,\n name: 'assets',\n type: 'uint256',\n },\n {\n indexed: false,\n name: 'shares',\n type: 'uint256',\n },\n ],\n name: 'Withdraw',\n type: 'event',\n },\n {\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n {\n name: 'spender',\n type: 'address',\n },\n ],\n name: 'allowance',\n outputs: [\n {\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'spender',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'approve',\n outputs: [\n {\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'asset',\n outputs: [\n {\n name: 'assetTokenAddress',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'account',\n type: 'address',\n },\n ],\n name: 'balanceOf',\n outputs: [\n {\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n name: 'convertToAssets',\n outputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n name: 'convertToShares',\n outputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n {\n name: 'receiver',\n type: 'address',\n },\n ],\n name: 'deposit',\n outputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'caller',\n type: 'address',\n },\n ],\n name: 'maxDeposit',\n outputs: [\n {\n name: 'maxAssets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'caller',\n type: 'address',\n },\n ],\n name: 'maxMint',\n outputs: [\n {\n name: 'maxShares',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'maxRedeem',\n outputs: [\n {\n name: 'maxShares',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'maxWithdraw',\n outputs: [\n {\n name: 'maxAssets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n {\n name: 'receiver',\n type: 'address',\n },\n ],\n name: 'mint',\n outputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n name: 'previewDeposit',\n outputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n name: 'previewMint',\n outputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n name: 'previewRedeem',\n outputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n name: 'previewWithdraw',\n outputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n {\n name: 'receiver',\n type: 'address',\n },\n {\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'redeem',\n outputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'totalAssets',\n outputs: [\n {\n name: 'totalManagedAssets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'totalSupply',\n outputs: [\n {\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'to',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'transfer',\n outputs: [\n {\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'from',\n type: 'address',\n },\n {\n name: 'to',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'transferFrom',\n outputs: [\n {\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n {\n name: 'receiver',\n type: 'address',\n },\n {\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'withdraw',\n outputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\n//# sourceMappingURL=abis.js.map","/**\n * @since 2.0.0\n */\nimport * as Equal from \"../Equal.js\";\nimport { dual } from \"../Function.js\";\nimport * as Hash from \"../Hash.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"../Inspectable.js\";\nimport { hasProperty } from \"../Predicate.js\";\nimport { EffectPrototype } from \"./effectable.js\";\nimport * as option from \"./option.js\";\n/**\n * @internal\n */\nexport const TypeId = /*#__PURE__*/Symbol.for(\"effect/Either\");\nconst CommonProto = {\n ...EffectPrototype,\n [TypeId]: {\n _R: _ => _\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n toString() {\n return format(this.toJSON());\n }\n};\nconst RightProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(CommonProto), {\n _tag: \"Right\",\n _op: \"Right\",\n [Equal.symbol](that) {\n return isEither(that) && isRight(that) && Equal.equals(this.right, that.right);\n },\n [Hash.symbol]() {\n return Hash.combine(Hash.hash(this._tag))(Hash.hash(this.right));\n },\n toJSON() {\n return {\n _id: \"Either\",\n _tag: this._tag,\n right: toJSON(this.right)\n };\n }\n});\nconst LeftProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(CommonProto), {\n _tag: \"Left\",\n _op: \"Left\",\n [Equal.symbol](that) {\n return isEither(that) && isLeft(that) && Equal.equals(this.left, that.left);\n },\n [Hash.symbol]() {\n return Hash.combine(Hash.hash(this._tag))(Hash.hash(this.left));\n },\n toJSON() {\n return {\n _id: \"Either\",\n _tag: this._tag,\n left: toJSON(this.left)\n };\n }\n});\n/** @internal */\nexport const isEither = input => hasProperty(input, TypeId);\n/** @internal */\nexport const isLeft = ma => ma._tag === \"Left\";\n/** @internal */\nexport const isRight = ma => ma._tag === \"Right\";\n/** @internal */\nexport const left = left => {\n const a = Object.create(LeftProto);\n a.left = left;\n return a;\n};\n/** @internal */\nexport const right = right => {\n const a = Object.create(RightProto);\n a.right = right;\n return a;\n};\n/** @internal */\nexport const getLeft = self => isRight(self) ? option.none : option.some(self.left);\n/** @internal */\nexport const getRight = self => isLeft(self) ? option.none : option.some(self.right);\n/** @internal */\nexport const fromOption = /*#__PURE__*/dual(2, (self, onNone) => option.isNone(self) ? left(onNone()) : right(self.value));\n//# sourceMappingURL=either.js.map","/** @internal */\nexport const make = (label, startTime) => ({\n label,\n startTime\n});\n/**\n * Sanitize a given string by replacing spaces, equal signs, and double quotes with underscores.\n *\n * @internal\n */\nexport const formatLabel = key => key.replace(/[\\s=\"]/g, \"_\");\n/** @internal */\nexport const render = now => self => {\n const label = formatLabel(self.label);\n return `${label}=${now - self.startTime}ms`;\n};\n//# sourceMappingURL=logSpan.js.map","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","import { BaseError } from './base.js';\nexport class ChainDoesNotSupportContract extends BaseError {\n constructor({ blockNumber, chain, contract, }) {\n super(`Chain \"${chain.name}\" does not support contract \"${contract.name}\".`, {\n metaMessages: [\n 'This could be due to any of the following:',\n ...(blockNumber &&\n contract.blockCreated &&\n contract.blockCreated > blockNumber\n ? [\n `- The contract \"${contract.name}\" was not deployed until block ${contract.blockCreated} (current block ${blockNumber}).`,\n ]\n : [\n `- The chain does not have the contract \"${contract.name}\" configured.`,\n ]),\n ],\n name: 'ChainDoesNotSupportContract',\n });\n }\n}\nexport class ChainMismatchError extends BaseError {\n constructor({ chain, currentChainId, }) {\n super(`The current chain of the wallet (id: ${currentChainId}) does not match the target chain for the transaction (id: ${chain.id} – ${chain.name}).`, {\n metaMessages: [\n `Current Chain ID: ${currentChainId}`,\n `Expected Chain ID: ${chain.id} – ${chain.name}`,\n ],\n name: 'ChainMismatchError',\n });\n }\n}\nexport class ChainNotFoundError extends BaseError {\n constructor() {\n super([\n 'No chain was provided to the request.',\n 'Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient.',\n ].join('\\n'), {\n name: 'ChainNotFoundError',\n });\n }\n}\nexport class ClientChainNotConfiguredError extends BaseError {\n constructor() {\n super('No chain was provided to the Client.', {\n name: 'ClientChainNotConfiguredError',\n });\n }\n}\nexport class InvalidChainIdError extends BaseError {\n constructor({ chainId }) {\n super(typeof chainId === 'number'\n ? `Chain ID \"${chainId}\" is invalid.`\n : 'Chain ID is invalid.', { name: 'InvalidChainIdError' });\n }\n}\n//# sourceMappingURL=chain.js.map","import { InvalidHexBooleanError, SizeOverflowError, } from '../../errors/encoding.js';\nimport { size as size_ } from '../data/size.js';\nimport { trim } from '../data/trim.js';\nimport { hexToBytes } from './toBytes.js';\nexport function assertSize(hexOrBytes, { size }) {\n if (size_(hexOrBytes) > size)\n throw new SizeOverflowError({\n givenSize: size_(hexOrBytes),\n maxSize: size,\n });\n}\n/**\n * Decodes a hex string into a string, number, bigint, boolean, or byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex\n * - Example: https://viem.sh/docs/utilities/fromHex#usage\n *\n * @param hex Hex string to decode.\n * @param toOrOpts Type to convert to or options.\n * @returns Decoded value.\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x1a4', 'number')\n * // 420\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c6421', 'string')\n * // 'Hello world'\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * to: 'string'\n * })\n * // 'Hello world'\n */\nexport function fromHex(hex, toOrOpts) {\n const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts;\n const to = opts.to;\n if (to === 'number')\n return hexToNumber(hex, opts);\n if (to === 'bigint')\n return hexToBigInt(hex, opts);\n if (to === 'string')\n return hexToString(hex, opts);\n if (to === 'boolean')\n return hexToBool(hex, opts);\n return hexToBytes(hex, opts);\n}\n/**\n * Decodes a hex value into a bigint.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextobigint\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns BigInt value.\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x1a4', { signed: true })\n * // 420n\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420n\n */\nexport function hexToBigInt(hex, opts = {}) {\n const { signed } = opts;\n if (opts.size)\n assertSize(hex, { size: opts.size });\n const value = BigInt(hex);\n if (!signed)\n return value;\n const size = (hex.length - 2) / 2;\n const max = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n if (value <= max)\n return value;\n return value - BigInt(`0x${'f'.padStart(size * 2, 'f')}`) - 1n;\n}\n/**\n * Decodes a hex value into a boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextobool\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Boolean value.\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x01')\n * // true\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x0000000000000000000000000000000000000000000000000000000000000001', { size: 32 })\n * // true\n */\nexport function hexToBool(hex_, opts = {}) {\n let hex = hex_;\n if (opts.size) {\n assertSize(hex, { size: opts.size });\n hex = trim(hex);\n }\n if (trim(hex) === '0x00')\n return false;\n if (trim(hex) === '0x01')\n return true;\n throw new InvalidHexBooleanError(hex);\n}\n/**\n * Decodes a hex string into a number.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextonumber\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Number value.\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToNumber('0x1a4')\n * // 420\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420\n */\nexport function hexToNumber(hex, opts = {}) {\n return Number(hexToBigInt(hex, opts));\n}\n/**\n * Decodes a hex value into a UTF-8 string.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextostring\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns String value.\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c6421')\n * // 'Hello world!'\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * })\n * // 'Hello world'\n */\nexport function hexToString(hex, opts = {}) {\n let bytes = hexToBytes(hex);\n if (opts.size) {\n assertSize(bytes, { size: opts.size });\n bytes = trim(bytes, { dir: 'right' });\n }\n return new TextDecoder().decode(bytes);\n}\n//# sourceMappingURL=fromHex.js.map","import { BaseError } from './base.js';\nexport class BlockNotFoundError extends BaseError {\n constructor({ blockHash, blockNumber, }) {\n let identifier = 'Block';\n if (blockHash)\n identifier = `Block at hash \"${blockHash}\"`;\n if (blockNumber)\n identifier = `Block at number \"${blockNumber}\"`;\n super(`${identifier} could not be found.`, { name: 'BlockNotFoundError' });\n }\n}\n//# sourceMappingURL=block.js.map","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n assert(sig.length === eddsa.encodingLength * 2, 'Signature has invalid size');\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","import { BaseError } from './base.js';\nexport class UrlRequiredError extends BaseError {\n constructor() {\n super('No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.', {\n docsPath: '/docs/clients/intro',\n name: 'UrlRequiredError',\n });\n }\n}\n//# sourceMappingURL=transport.js.map","function createIdStore() {\n return {\n current: 0,\n take() {\n return this.current++;\n },\n reset() {\n this.current = 0;\n },\n };\n}\nexport const idCache = /*#__PURE__*/ createIdStore();\n//# sourceMappingURL=id.js.map","import { LruMap } from '../lru.js';\n/** @internal */\nexport const promiseCache = /*#__PURE__*/ new LruMap(8192);\n/** Deduplicates in-flight promises. */\nexport function withDedupe(fn, { enabled = true, id }) {\n if (!enabled || !id)\n return fn();\n if (promiseCache.get(id))\n return promiseCache.get(id);\n const promise = fn().finally(() => promiseCache.delete(id));\n promiseCache.set(id, promise);\n return promise;\n}\n//# sourceMappingURL=withDedupe.js.map","import { BaseError } from '../errors/base.js';\nimport { HttpRequestError, } from '../errors/request.js';\nimport { AtomicityNotSupportedError, AtomicReadyWalletRejectedUpgradeError, BundleTooLargeError, ChainDisconnectedError, DuplicateIdError, InternalRpcError, InvalidInputRpcError, InvalidParamsRpcError, InvalidRequestRpcError, JsonRpcVersionUnsupportedError, LimitExceededRpcError, MethodNotFoundRpcError, MethodNotSupportedRpcError, ParseRpcError, ProviderDisconnectedError, ResourceNotFoundRpcError, ResourceUnavailableRpcError, SwitchChainError, TransactionRejectedRpcError, UnauthorizedProviderError, UnknownBundleIdError, UnknownRpcError, UnsupportedChainIdError, UnsupportedNonOptionalCapabilityError, UnsupportedProviderMethodError, UserRejectedRequestError, } from '../errors/rpc.js';\nimport { stringToHex } from './encoding/toHex.js';\nimport { withDedupe } from './promise/withDedupe.js';\nimport { withRetry } from './promise/withRetry.js';\nimport { stringify } from './stringify.js';\nexport function buildRequest(request, options = {}) {\n return async (args, overrideOptions = {}) => {\n const { dedupe = false, methods, retryDelay = 150, retryCount = 3, uid, } = {\n ...options,\n ...overrideOptions,\n };\n const { method } = args;\n if (methods?.exclude?.includes(method))\n throw new MethodNotSupportedRpcError(new Error('method not supported'), {\n method,\n });\n if (methods?.include && !methods.include.includes(method))\n throw new MethodNotSupportedRpcError(new Error('method not supported'), {\n method,\n });\n const requestId = dedupe\n ? stringToHex(`${uid}.${stringify(args)}`)\n : undefined;\n return withDedupe(() => withRetry(async () => {\n try {\n return await request(args);\n }\n catch (err_) {\n const err = err_;\n switch (err.code) {\n // -32700\n case ParseRpcError.code:\n throw new ParseRpcError(err);\n // -32600\n case InvalidRequestRpcError.code:\n throw new InvalidRequestRpcError(err);\n // -32601\n case MethodNotFoundRpcError.code:\n throw new MethodNotFoundRpcError(err, { method: args.method });\n // -32602\n case InvalidParamsRpcError.code:\n throw new InvalidParamsRpcError(err);\n // -32603\n case InternalRpcError.code:\n throw new InternalRpcError(err);\n // -32000\n case InvalidInputRpcError.code:\n throw new InvalidInputRpcError(err);\n // -32001\n case ResourceNotFoundRpcError.code:\n throw new ResourceNotFoundRpcError(err);\n // -32002\n case ResourceUnavailableRpcError.code:\n throw new ResourceUnavailableRpcError(err);\n // -32003\n case TransactionRejectedRpcError.code:\n throw new TransactionRejectedRpcError(err);\n // -32004\n case MethodNotSupportedRpcError.code:\n throw new MethodNotSupportedRpcError(err, {\n method: args.method,\n });\n // -32005\n case LimitExceededRpcError.code:\n throw new LimitExceededRpcError(err);\n // -32006\n case JsonRpcVersionUnsupportedError.code:\n throw new JsonRpcVersionUnsupportedError(err);\n // 4001\n case UserRejectedRequestError.code:\n throw new UserRejectedRequestError(err);\n // 4100\n case UnauthorizedProviderError.code:\n throw new UnauthorizedProviderError(err);\n // 4200\n case UnsupportedProviderMethodError.code:\n throw new UnsupportedProviderMethodError(err);\n // 4900\n case ProviderDisconnectedError.code:\n throw new ProviderDisconnectedError(err);\n // 4901\n case ChainDisconnectedError.code:\n throw new ChainDisconnectedError(err);\n // 4902\n case SwitchChainError.code:\n throw new SwitchChainError(err);\n // 5700\n case UnsupportedNonOptionalCapabilityError.code:\n throw new UnsupportedNonOptionalCapabilityError(err);\n // 5710\n case UnsupportedChainIdError.code:\n throw new UnsupportedChainIdError(err);\n // 5720\n case DuplicateIdError.code:\n throw new DuplicateIdError(err);\n // 5730\n case UnknownBundleIdError.code:\n throw new UnknownBundleIdError(err);\n // 5740\n case BundleTooLargeError.code:\n throw new BundleTooLargeError(err);\n // 5750\n case AtomicReadyWalletRejectedUpgradeError.code:\n throw new AtomicReadyWalletRejectedUpgradeError(err);\n // 5760\n case AtomicityNotSupportedError.code:\n throw new AtomicityNotSupportedError(err);\n // CAIP-25: User Rejected Error\n // https://docs.walletconnect.com/2.0/specs/clients/sign/error-codes#rejected-caip-25\n case 5000:\n throw new UserRejectedRequestError(err);\n default:\n if (err_ instanceof BaseError)\n throw err_;\n throw new UnknownRpcError(err);\n }\n }\n }, {\n delay: ({ count, error }) => {\n // If we find a Retry-After header, let's retry after the given time.\n if (error && error instanceof HttpRequestError) {\n const retryAfter = error?.headers?.get('Retry-After');\n if (retryAfter?.match(/\\d/))\n return Number.parseInt(retryAfter, 10) * 1000;\n }\n // Otherwise, let's retry with an exponential backoff.\n return ~~(1 << count) * retryDelay;\n },\n retryCount,\n shouldRetry: ({ error }) => shouldRetry(error),\n }), { enabled: dedupe, id: requestId });\n };\n}\n/** @internal */\nexport function shouldRetry(error) {\n if ('code' in error && typeof error.code === 'number') {\n if (error.code === -1)\n return true; // Unknown error\n if (error.code === LimitExceededRpcError.code)\n return true;\n if (error.code === InternalRpcError.code)\n return true;\n return false;\n }\n if (error instanceof HttpRequestError && error.status) {\n // Forbidden\n if (error.status === 403)\n return true;\n // Request Timeout\n if (error.status === 408)\n return true;\n // Request Entity Too Large\n if (error.status === 413)\n return true;\n // Too Many Requests\n if (error.status === 429)\n return true;\n // Internal Server Error\n if (error.status === 500)\n return true;\n // Bad Gateway\n if (error.status === 502)\n return true;\n // Service Unavailable\n if (error.status === 503)\n return true;\n // Gateway Timeout\n if (error.status === 504)\n return true;\n return false;\n }\n return true;\n}\n//# sourceMappingURL=buildRequest.js.map","import { RpcRequestError } from '../../errors/request.js';\nimport { UrlRequiredError, } from '../../errors/transport.js';\nimport { createBatchScheduler } from '../../utils/promise/createBatchScheduler.js';\nimport { getHttpRpcClient, } from '../../utils/rpc/http.js';\nimport { createTransport, } from './createTransport.js';\n/**\n * @description Creates a HTTP transport that connects to a JSON-RPC API.\n */\nexport function http(\n/** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */\nurl, config = {}) {\n const { batch, fetchFn, fetchOptions, key = 'http', methods, name = 'HTTP JSON-RPC', onFetchRequest, onFetchResponse, retryDelay, raw, } = config;\n return ({ chain, retryCount: retryCount_, timeout: timeout_ }) => {\n const { batchSize = 1000, wait = 0 } = typeof batch === 'object' ? batch : {};\n const retryCount = config.retryCount ?? retryCount_;\n const timeout = timeout_ ?? config.timeout ?? 10_000;\n const url_ = url || chain?.rpcUrls.default.http[0];\n if (!url_)\n throw new UrlRequiredError();\n const rpcClient = getHttpRpcClient(url_, {\n fetchFn,\n fetchOptions,\n onRequest: onFetchRequest,\n onResponse: onFetchResponse,\n timeout,\n });\n return createTransport({\n key,\n methods,\n name,\n async request({ method, params }) {\n const body = { method, params };\n const { schedule } = createBatchScheduler({\n id: url_,\n wait,\n shouldSplitBatch(requests) {\n return requests.length > batchSize;\n },\n fn: (body) => rpcClient.request({\n body,\n }),\n sort: (a, b) => a.id - b.id,\n });\n const fn = async (body) => batch\n ? schedule(body)\n : [\n await rpcClient.request({\n body,\n }),\n ];\n const [{ error, result }] = await fn(body);\n if (raw)\n return { error, result };\n if (error)\n throw new RpcRequestError({\n body,\n error,\n url: url_,\n });\n return result;\n },\n retryCount,\n retryDelay,\n timeout,\n type: 'http',\n }, {\n fetchOptions,\n url: url_,\n });\n };\n}\n//# sourceMappingURL=http.js.map","import { HttpRequestError, TimeoutError, } from '../../errors/request.js';\nimport { withTimeout, } from '../promise/withTimeout.js';\nimport { stringify } from '../stringify.js';\nimport { idCache } from './id.js';\nexport function getHttpRpcClient(url, options = {}) {\n return {\n async request(params) {\n const { body, fetchFn = options.fetchFn ?? fetch, onRequest = options.onRequest, onResponse = options.onResponse, timeout = options.timeout ?? 10_000, } = params;\n const fetchOptions = {\n ...(options.fetchOptions ?? {}),\n ...(params.fetchOptions ?? {}),\n };\n const { headers, method, signal: signal_ } = fetchOptions;\n try {\n const response = await withTimeout(async ({ signal }) => {\n const init = {\n ...fetchOptions,\n body: Array.isArray(body)\n ? stringify(body.map((body) => ({\n jsonrpc: '2.0',\n id: body.id ?? idCache.take(),\n ...body,\n })))\n : stringify({\n jsonrpc: '2.0',\n id: body.id ?? idCache.take(),\n ...body,\n }),\n headers: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n method: method || 'POST',\n signal: signal_ || (timeout > 0 ? signal : null),\n };\n const request = new Request(url, init);\n const args = (await onRequest?.(request, init)) ?? { ...init, url };\n const response = await fetchFn(args.url ?? url, args);\n return response;\n }, {\n errorInstance: new TimeoutError({ body, url }),\n timeout,\n signal: true,\n });\n if (onResponse)\n await onResponse(response);\n let data;\n if (response.headers.get('Content-Type')?.startsWith('application/json'))\n data = await response.json();\n else {\n data = await response.text();\n try {\n data = JSON.parse(data || '{}');\n }\n catch (err) {\n if (response.ok)\n throw err;\n data = { error: data };\n }\n }\n if (!response.ok) {\n throw new HttpRequestError({\n body,\n details: stringify(data.error) || response.statusText,\n headers: response.headers,\n status: response.status,\n url,\n });\n }\n return data;\n }\n catch (err) {\n if (err instanceof HttpRequestError)\n throw err;\n if (err instanceof TimeoutError)\n throw err;\n throw new HttpRequestError({\n body,\n cause: err,\n url,\n });\n }\n },\n };\n}\n//# sourceMappingURL=http.js.map","export function withTimeout(fn, { errorInstance = new Error('timed out'), timeout, signal, }) {\n return new Promise((resolve, reject) => {\n ;\n (async () => {\n let timeoutId;\n try {\n const controller = new AbortController();\n if (timeout > 0) {\n timeoutId = setTimeout(() => {\n if (signal) {\n controller.abort();\n }\n else {\n reject(errorInstance);\n }\n }, timeout); // need to cast because bun globals.d.ts overrides @types/node\n }\n resolve(await fn({ signal: controller?.signal || null }));\n }\n catch (err) {\n if (err?.name === 'AbortError')\n reject(errorInstance);\n reject(err);\n }\n finally {\n clearTimeout(timeoutId);\n }\n })();\n });\n}\n//# sourceMappingURL=withTimeout.js.map","import { buildRequest } from '../../utils/buildRequest.js';\nimport { uid as uid_ } from '../../utils/uid.js';\n/**\n * @description Creates an transport intended to be used with a client.\n */\nexport function createTransport({ key, methods, name, request, retryCount = 3, retryDelay = 150, timeout, type, }, value) {\n const uid = uid_();\n return {\n config: {\n key,\n methods,\n name,\n request,\n retryCount,\n retryDelay,\n timeout,\n type,\n },\n request: buildRequest(request, { methods, retryCount, retryDelay, uid }),\n value,\n };\n}\n//# sourceMappingURL=createTransport.js.map","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","/**\n * Tests if a value is a `function`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { isFunction } from \"effect/Predicate\"\n *\n * assert.deepStrictEqual(isFunction(isFunction), true)\n * assert.deepStrictEqual(isFunction(\"function\"), false)\n * ```\n *\n * @category guards\n * @since 2.0.0\n */\nexport const isFunction = input => typeof input === \"function\";\n/**\n * Creates a function that can be used in a data-last (aka `pipe`able) or\n * data-first style.\n *\n * The first parameter to `dual` is either the arity of the uncurried function\n * or a predicate that determines if the function is being used in a data-first\n * or data-last style.\n *\n * Using the arity is the most common use case, but there are some cases where\n * you may want to use a predicate. For example, if you have a function that\n * takes an optional argument, you can use a predicate to determine if the\n * function is being used in a data-first or data-last style.\n *\n * You can pass either the arity of the uncurried function or a predicate\n * which determines if the function is being used in a data-first or\n * data-last style.\n *\n * **Example** (Using arity to determine data-first or data-last style)\n *\n * ```ts\n * import { dual, pipe } from \"effect/Function\"\n *\n * const sum = dual<\n * (that: number) => (self: number) => number,\n * (self: number, that: number) => number\n * >(2, (self, that) => self + that)\n *\n * console.log(sum(2, 3)) // 5\n * console.log(pipe(2, sum(3))) // 5\n * ```\n *\n * **Example** (Using call signatures to define the overloads)\n *\n * ```ts\n * import { dual, pipe } from \"effect/Function\"\n *\n * const sum: {\n * (that: number): (self: number) => number\n * (self: number, that: number): number\n * } = dual(2, (self: number, that: number): number => self + that)\n *\n * console.log(sum(2, 3)) // 5\n * console.log(pipe(2, sum(3))) // 5\n * ```\n *\n * **Example** (Using a predicate to determine data-first or data-last style)\n *\n * ```ts\n * import { dual, pipe } from \"effect/Function\"\n *\n * const sum = dual<\n * (that: number) => (self: number) => number,\n * (self: number, that: number) => number\n * >(\n * (args) => args.length === 2,\n * (self, that) => self + that\n * )\n *\n * console.log(sum(2, 3)) // 5\n * console.log(pipe(2, sum(3))) // 5\n * ```\n *\n * @since 2.0.0\n */\nexport const dual = function (arity, body) {\n if (typeof arity === \"function\") {\n return function () {\n if (arity(arguments)) {\n // @ts-expect-error\n return body.apply(this, arguments);\n }\n return self => body(self, ...arguments);\n };\n }\n switch (arity) {\n case 0:\n case 1:\n throw new RangeError(`Invalid arity ${arity}`);\n case 2:\n return function (a, b) {\n if (arguments.length >= 2) {\n return body(a, b);\n }\n return function (self) {\n return body(self, a);\n };\n };\n case 3:\n return function (a, b, c) {\n if (arguments.length >= 3) {\n return body(a, b, c);\n }\n return function (self) {\n return body(self, a, b);\n };\n };\n case 4:\n return function (a, b, c, d) {\n if (arguments.length >= 4) {\n return body(a, b, c, d);\n }\n return function (self) {\n return body(self, a, b, c);\n };\n };\n case 5:\n return function (a, b, c, d, e) {\n if (arguments.length >= 5) {\n return body(a, b, c, d, e);\n }\n return function (self) {\n return body(self, a, b, c, d);\n };\n };\n default:\n return function () {\n if (arguments.length >= arity) {\n // @ts-expect-error\n return body.apply(this, arguments);\n }\n const args = arguments;\n return function (self) {\n return body(self, ...args);\n };\n };\n }\n};\n/**\n * Apply a function to given values.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { pipe, apply } from \"effect/Function\"\n * import { length } from \"effect/String\"\n *\n * assert.deepStrictEqual(pipe(length, apply(\"hello\")), 5)\n * ```\n *\n * @since 2.0.0\n */\nexport const apply = (...a) => self => self(...a);\n/**\n * The identity function, i.e. A function that returns its input argument.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { identity } from \"effect/Function\"\n *\n * assert.deepStrictEqual(identity(5), 5)\n * ```\n *\n * @since 2.0.0\n */\nexport const identity = a => a;\n/**\n * A function that ensures that the type of an expression matches some type,\n * without changing the resulting type of that expression.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { satisfies } from \"effect/Function\"\n *\n * const test1 = satisfies()(5 as const)\n * //^? const test: 5\n * // @ts-expect-error\n * const test2 = satisfies()(5)\n * //^? Argument of type 'number' is not assignable to parameter of type 'string'\n *\n * assert.deepStrictEqual(satisfies()(5), 5)\n * ```\n *\n * @since 2.0.0\n */\nexport const satisfies = () => b => b;\n/**\n * Casts the result to the specified type.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { unsafeCoerce, identity } from \"effect/Function\"\n *\n * assert.deepStrictEqual(unsafeCoerce, identity)\n * ```\n *\n * @since 2.0.0\n */\nexport const unsafeCoerce = identity;\n/**\n * Creates a constant value that never changes.\n *\n * This is useful when you want to pass a value to a higher-order function (a function that takes another function as its argument)\n * and want that inner function to always use the same value, no matter how many times it is called.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { constant } from \"effect/Function\"\n *\n * const constNull = constant(null)\n *\n * assert.deepStrictEqual(constNull(), null)\n * assert.deepStrictEqual(constNull(), null)\n * ```\n *\n * @since 2.0.0\n */\nexport const constant = value => () => value;\n/**\n * A thunk that returns always `true`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { constTrue } from \"effect/Function\"\n *\n * assert.deepStrictEqual(constTrue(), true)\n * ```\n *\n * @since 2.0.0\n */\nexport const constTrue = /*#__PURE__*/constant(true);\n/**\n * A thunk that returns always `false`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { constFalse } from \"effect/Function\"\n *\n * assert.deepStrictEqual(constFalse(), false)\n * ```\n *\n * @since 2.0.0\n */\nexport const constFalse = /*#__PURE__*/constant(false);\n/**\n * A thunk that returns always `null`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { constNull } from \"effect/Function\"\n *\n * assert.deepStrictEqual(constNull(), null)\n * ```\n *\n * @since 2.0.0\n */\nexport const constNull = /*#__PURE__*/constant(null);\n/**\n * A thunk that returns always `undefined`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { constUndefined } from \"effect/Function\"\n *\n * assert.deepStrictEqual(constUndefined(), undefined)\n * ```\n *\n * @since 2.0.0\n */\nexport const constUndefined = /*#__PURE__*/constant(undefined);\n/**\n * A thunk that returns always `void`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { constVoid } from \"effect/Function\"\n *\n * assert.deepStrictEqual(constVoid(), undefined)\n * ```\n *\n * @since 2.0.0\n */\nexport const constVoid = constUndefined;\n/**\n * Reverses the order of arguments for a curried function.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { flip } from \"effect/Function\"\n *\n * const f = (a: number) => (b: string) => a - b.length\n *\n * assert.deepStrictEqual(flip(f)('aaa')(2), -1)\n * ```\n *\n * @since 2.0.0\n */\nexport const flip = f => (...b) => (...a) => f(...a)(...b);\n/**\n * Composes two functions, `ab` and `bc` into a single function that takes in an argument `a` of type `A` and returns a result of type `C`.\n * The result is obtained by first applying the `ab` function to `a` and then applying the `bc` function to the result of `ab`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { compose } from \"effect/Function\"\n *\n * const increment = (n: number) => n + 1;\n * const square = (n: number) => n * n;\n *\n * assert.strictEqual(compose(increment, square)(2), 9);\n * ```\n *\n * @since 2.0.0\n */\nexport const compose = /*#__PURE__*/dual(2, (ab, bc) => a => bc(ab(a)));\n/**\n * The `absurd` function is a stub for cases where a value of type `never` is encountered in your code,\n * meaning that it should be impossible for this code to be executed.\n *\n * This function is particularly useful when it's necessary to specify that certain cases are impossible.\n *\n * @since 2.0.0\n */\nexport const absurd = _ => {\n throw new Error(\"Called `absurd` function which should be uncallable\");\n};\n/**\n * Creates a version of this function: instead of `n` arguments, it accepts a single tuple argument.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { tupled } from \"effect/Function\"\n *\n * const sumTupled = tupled((x: number, y: number): number => x + y)\n *\n * assert.deepStrictEqual(sumTupled([1, 2]), 3)\n * ```\n *\n * @since 2.0.0\n */\nexport const tupled = f => a => f(...a);\n/**\n * Inverse function of `tupled`\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { untupled } from \"effect/Function\"\n *\n * const getFirst = untupled((tuple: [A, B]): A => tuple[0])\n *\n * assert.deepStrictEqual(getFirst(1, 2), 1)\n * ```\n *\n * @since 2.0.0\n */\nexport const untupled = f => (...a) => f(a);\nexport function pipe(a, ab, bc, cd, de, ef, fg, gh, hi) {\n switch (arguments.length) {\n case 1:\n return a;\n case 2:\n return ab(a);\n case 3:\n return bc(ab(a));\n case 4:\n return cd(bc(ab(a)));\n case 5:\n return de(cd(bc(ab(a))));\n case 6:\n return ef(de(cd(bc(ab(a)))));\n case 7:\n return fg(ef(de(cd(bc(ab(a))))));\n case 8:\n return gh(fg(ef(de(cd(bc(ab(a)))))));\n case 9:\n return hi(gh(fg(ef(de(cd(bc(ab(a))))))));\n default:\n {\n let ret = arguments[0];\n for (let i = 1; i < arguments.length; i++) {\n ret = arguments[i](ret);\n }\n return ret;\n }\n }\n}\nexport function flow(ab, bc, cd, de, ef, fg, gh, hi, ij) {\n switch (arguments.length) {\n case 1:\n return ab;\n case 2:\n return function () {\n return bc(ab.apply(this, arguments));\n };\n case 3:\n return function () {\n return cd(bc(ab.apply(this, arguments)));\n };\n case 4:\n return function () {\n return de(cd(bc(ab.apply(this, arguments))));\n };\n case 5:\n return function () {\n return ef(de(cd(bc(ab.apply(this, arguments)))));\n };\n case 6:\n return function () {\n return fg(ef(de(cd(bc(ab.apply(this, arguments))))));\n };\n case 7:\n return function () {\n return gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))));\n };\n case 8:\n return function () {\n return hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))));\n };\n case 9:\n return function () {\n return ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))))));\n };\n }\n return;\n}\n/**\n * Type hole simulation.\n *\n * @since 2.0.0\n */\nexport const hole = /*#__PURE__*/unsafeCoerce(absurd);\n/**\n * The SK combinator, also known as the \"S-K combinator\" or \"S-combinator\", is a fundamental combinator in the\n * lambda calculus and the SKI combinator calculus.\n *\n * This function is useful for discarding the first argument passed to it and returning the second argument.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { SK } from \"effect/Function\";\n *\n * assert.deepStrictEqual(SK(0, \"hello\"), \"hello\")\n * ```\n *\n * @since 2.0.0\n */\nexport const SK = (_, b) => b;\n//# sourceMappingURL=Function.js.map","import { AbiDecodingDataSizeTooSmallError, AbiEventSignatureEmptyTopicsError, AbiEventSignatureNotFoundError, DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';\nimport { PositionOutOfBoundsError } from '../../errors/cursor.js';\nimport { size } from '../data/size.js';\nimport { toEventSelector, } from '../hash/toEventSelector.js';\nimport { decodeAbiParameters, } from './decodeAbiParameters.js';\nimport { formatAbiItem } from './formatAbiItem.js';\nconst docsPath = '/docs/contract/decodeEventLog';\nexport function decodeEventLog(parameters) {\n const { abi, data, strict: strict_, topics, } = parameters;\n const strict = strict_ ?? true;\n const [signature, ...argTopics] = topics;\n if (!signature)\n throw new AbiEventSignatureEmptyTopicsError({ docsPath });\n const abiItem = abi.find((x) => x.type === 'event' &&\n signature === toEventSelector(formatAbiItem(x)));\n if (!(abiItem && 'name' in abiItem) || abiItem.type !== 'event')\n throw new AbiEventSignatureNotFoundError(signature, { docsPath });\n const { name, inputs } = abiItem;\n const isUnnamed = inputs?.some((x) => !('name' in x && x.name));\n const args = isUnnamed ? [] : {};\n // Decode topics (indexed args).\n const indexedInputs = inputs\n .map((x, i) => [x, i])\n .filter(([x]) => 'indexed' in x && x.indexed);\n for (let i = 0; i < indexedInputs.length; i++) {\n const [param, argIndex] = indexedInputs[i];\n const topic = argTopics[i];\n if (!topic)\n throw new DecodeLogTopicsMismatch({\n abiItem,\n param: param,\n });\n args[isUnnamed ? argIndex : param.name || argIndex] = decodeTopic({\n param,\n value: topic,\n });\n }\n // Decode data (non-indexed args).\n const nonIndexedInputs = inputs.filter((x) => !('indexed' in x && x.indexed));\n if (nonIndexedInputs.length > 0) {\n if (data && data !== '0x') {\n try {\n const decodedData = decodeAbiParameters(nonIndexedInputs, data);\n if (decodedData) {\n if (isUnnamed)\n for (let i = 0; i < inputs.length; i++)\n args[i] = args[i] ?? decodedData.shift();\n else\n for (let i = 0; i < nonIndexedInputs.length; i++)\n args[nonIndexedInputs[i].name] = decodedData[i];\n }\n }\n catch (err) {\n if (strict) {\n if (err instanceof AbiDecodingDataSizeTooSmallError ||\n err instanceof PositionOutOfBoundsError)\n throw new DecodeLogDataMismatch({\n abiItem,\n data: data,\n params: nonIndexedInputs,\n size: size(data),\n });\n throw err;\n }\n }\n }\n else if (strict) {\n throw new DecodeLogDataMismatch({\n abiItem,\n data: '0x',\n params: nonIndexedInputs,\n size: 0,\n });\n }\n }\n return {\n eventName: name,\n args: Object.values(args).length > 0 ? args : undefined,\n };\n}\nfunction decodeTopic({ param, value }) {\n if (param.type === 'string' ||\n param.type === 'bytes' ||\n param.type === 'tuple' ||\n param.type.match(/^(.*)\\[(\\d+)?\\]$/))\n return value;\n const decodedArg = decodeAbiParameters([param], value) || [];\n return decodedArg[0];\n}\n//# sourceMappingURL=decodeEventLog.js.map","/** @internal */\nexport const OP_DIE = \"Die\";\n/** @internal */\nexport const OP_EMPTY = \"Empty\";\n/** @internal */\nexport const OP_FAIL = \"Fail\";\n/** @internal */\nexport const OP_INTERRUPT = \"Interrupt\";\n/** @internal */\nexport const OP_PARALLEL = \"Parallel\";\n/** @internal */\nexport const OP_SEQUENTIAL = \"Sequential\";\n//# sourceMappingURL=cause.js.map","import * as Arr from \"../Array.js\";\nimport * as Chunk from \"../Chunk.js\";\nimport * as Either from \"../Either.js\";\nimport * as Equal from \"../Equal.js\";\nimport { constFalse, constTrue, dual, identity, pipe } from \"../Function.js\";\nimport { globalValue } from \"../GlobalValue.js\";\nimport * as Hash from \"../Hash.js\";\nimport * as HashSet from \"../HashSet.js\";\nimport { NodeInspectSymbol, stringifyCircular, toJSON } from \"../Inspectable.js\";\nimport * as Option from \"../Option.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport { hasProperty, isFunction } from \"../Predicate.js\";\nimport { getBugErrorMessage } from \"./errors.js\";\nimport * as OpCodes from \"./opCodes/cause.js\";\n// -----------------------------------------------------------------------------\n// Models\n// -----------------------------------------------------------------------------\n/** @internal */\nconst CauseSymbolKey = \"effect/Cause\";\n/** @internal */\nexport const CauseTypeId = /*#__PURE__*/Symbol.for(CauseSymbolKey);\nconst variance = {\n /* c8 ignore next */\n _E: _ => _\n};\n/** @internal */\nconst proto = {\n [CauseTypeId]: variance,\n [Hash.symbol]() {\n return pipe(Hash.hash(CauseSymbolKey), Hash.combine(Hash.hash(flattenCause(this))), Hash.cached(this));\n },\n [Equal.symbol](that) {\n return isCause(that) && causeEquals(this, that);\n },\n pipe() {\n return pipeArguments(this, arguments);\n },\n toJSON() {\n switch (this._tag) {\n case \"Empty\":\n return {\n _id: \"Cause\",\n _tag: this._tag\n };\n case \"Die\":\n return {\n _id: \"Cause\",\n _tag: this._tag,\n defect: toJSON(this.defect)\n };\n case \"Interrupt\":\n return {\n _id: \"Cause\",\n _tag: this._tag,\n fiberId: this.fiberId.toJSON()\n };\n case \"Fail\":\n return {\n _id: \"Cause\",\n _tag: this._tag,\n failure: toJSON(this.error)\n };\n case \"Sequential\":\n case \"Parallel\":\n return {\n _id: \"Cause\",\n _tag: this._tag,\n left: toJSON(this.left),\n right: toJSON(this.right)\n };\n }\n },\n toString() {\n return pretty(this);\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n }\n};\n// -----------------------------------------------------------------------------\n// Constructors\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const empty = /*#__PURE__*/(() => {\n const o = /*#__PURE__*/Object.create(proto);\n o._tag = OpCodes.OP_EMPTY;\n return o;\n})();\n/** @internal */\nexport const fail = error => {\n const o = Object.create(proto);\n o._tag = OpCodes.OP_FAIL;\n o.error = error;\n return o;\n};\n/** @internal */\nexport const die = defect => {\n const o = Object.create(proto);\n o._tag = OpCodes.OP_DIE;\n o.defect = defect;\n return o;\n};\n/** @internal */\nexport const interrupt = fiberId => {\n const o = Object.create(proto);\n o._tag = OpCodes.OP_INTERRUPT;\n o.fiberId = fiberId;\n return o;\n};\n/** @internal */\nexport const parallel = (left, right) => {\n const o = Object.create(proto);\n o._tag = OpCodes.OP_PARALLEL;\n o.left = left;\n o.right = right;\n return o;\n};\n/** @internal */\nexport const sequential = (left, right) => {\n const o = Object.create(proto);\n o._tag = OpCodes.OP_SEQUENTIAL;\n o.left = left;\n o.right = right;\n return o;\n};\n// -----------------------------------------------------------------------------\n// Refinements\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const isCause = u => hasProperty(u, CauseTypeId);\n/** @internal */\nexport const isEmptyType = self => self._tag === OpCodes.OP_EMPTY;\n/** @internal */\nexport const isFailType = self => self._tag === OpCodes.OP_FAIL;\n/** @internal */\nexport const isDieType = self => self._tag === OpCodes.OP_DIE;\n/** @internal */\nexport const isInterruptType = self => self._tag === OpCodes.OP_INTERRUPT;\n/** @internal */\nexport const isSequentialType = self => self._tag === OpCodes.OP_SEQUENTIAL;\n/** @internal */\nexport const isParallelType = self => self._tag === OpCodes.OP_PARALLEL;\n// -----------------------------------------------------------------------------\n// Getters\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const size = self => reduceWithContext(self, void 0, SizeCauseReducer);\n/** @internal */\nexport const isEmpty = self => {\n if (self._tag === OpCodes.OP_EMPTY) {\n return true;\n }\n return reduce(self, true, (acc, cause) => {\n switch (cause._tag) {\n case OpCodes.OP_EMPTY:\n {\n return Option.some(acc);\n }\n case OpCodes.OP_DIE:\n case OpCodes.OP_FAIL:\n case OpCodes.OP_INTERRUPT:\n {\n return Option.some(false);\n }\n default:\n {\n return Option.none();\n }\n }\n });\n};\n/** @internal */\nexport const isFailure = self => Option.isSome(failureOption(self));\n/** @internal */\nexport const isDie = self => Option.isSome(dieOption(self));\n/** @internal */\nexport const isInterrupted = self => Option.isSome(interruptOption(self));\n/** @internal */\nexport const isInterruptedOnly = self => reduceWithContext(undefined, IsInterruptedOnlyCauseReducer)(self);\n/** @internal */\nexport const failures = self => Chunk.reverse(reduce(self, Chunk.empty(), (list, cause) => cause._tag === OpCodes.OP_FAIL ? Option.some(pipe(list, Chunk.prepend(cause.error))) : Option.none()));\n/** @internal */\nexport const defects = self => Chunk.reverse(reduce(self, Chunk.empty(), (list, cause) => cause._tag === OpCodes.OP_DIE ? Option.some(pipe(list, Chunk.prepend(cause.defect))) : Option.none()));\n/** @internal */\nexport const interruptors = self => reduce(self, HashSet.empty(), (set, cause) => cause._tag === OpCodes.OP_INTERRUPT ? Option.some(pipe(set, HashSet.add(cause.fiberId))) : Option.none());\n/** @internal */\nexport const failureOption = self => find(self, cause => cause._tag === OpCodes.OP_FAIL ? Option.some(cause.error) : Option.none());\n/** @internal */\nexport const failureOrCause = self => {\n const option = failureOption(self);\n switch (option._tag) {\n case \"None\":\n {\n // no `E` inside this `Cause`, so it can be safely cast to `never`\n return Either.right(self);\n }\n case \"Some\":\n {\n return Either.left(option.value);\n }\n }\n};\n/** @internal */\nexport const dieOption = self => find(self, cause => cause._tag === OpCodes.OP_DIE ? Option.some(cause.defect) : Option.none());\n/** @internal */\nexport const flipCauseOption = self => match(self, {\n onEmpty: Option.some(empty),\n onFail: Option.map(fail),\n onDie: defect => Option.some(die(defect)),\n onInterrupt: fiberId => Option.some(interrupt(fiberId)),\n onSequential: Option.mergeWith(sequential),\n onParallel: Option.mergeWith(parallel)\n});\n/** @internal */\nexport const interruptOption = self => find(self, cause => cause._tag === OpCodes.OP_INTERRUPT ? Option.some(cause.fiberId) : Option.none());\n/** @internal */\nexport const keepDefects = self => match(self, {\n onEmpty: Option.none(),\n onFail: () => Option.none(),\n onDie: defect => Option.some(die(defect)),\n onInterrupt: () => Option.none(),\n onSequential: Option.mergeWith(sequential),\n onParallel: Option.mergeWith(parallel)\n});\n/** @internal */\nexport const keepDefectsAndElectFailures = self => match(self, {\n onEmpty: Option.none(),\n onFail: failure => Option.some(die(failure)),\n onDie: defect => Option.some(die(defect)),\n onInterrupt: () => Option.none(),\n onSequential: Option.mergeWith(sequential),\n onParallel: Option.mergeWith(parallel)\n});\n/** @internal */\nexport const linearize = self => match(self, {\n onEmpty: HashSet.empty(),\n onFail: error => HashSet.make(fail(error)),\n onDie: defect => HashSet.make(die(defect)),\n onInterrupt: fiberId => HashSet.make(interrupt(fiberId)),\n onSequential: (leftSet, rightSet) => HashSet.flatMap(leftSet, leftCause => HashSet.map(rightSet, rightCause => sequential(leftCause, rightCause))),\n onParallel: (leftSet, rightSet) => HashSet.flatMap(leftSet, leftCause => HashSet.map(rightSet, rightCause => parallel(leftCause, rightCause)))\n});\n/** @internal */\nexport const stripFailures = self => match(self, {\n onEmpty: empty,\n onFail: () => empty,\n onDie: die,\n onInterrupt: interrupt,\n onSequential: sequential,\n onParallel: parallel\n});\n/** @internal */\nexport const electFailures = self => match(self, {\n onEmpty: empty,\n onFail: die,\n onDie: die,\n onInterrupt: interrupt,\n onSequential: sequential,\n onParallel: parallel\n});\n/** @internal */\nexport const stripSomeDefects = /*#__PURE__*/dual(2, (self, pf) => match(self, {\n onEmpty: Option.some(empty),\n onFail: error => Option.some(fail(error)),\n onDie: defect => {\n const option = pf(defect);\n return Option.isSome(option) ? Option.none() : Option.some(die(defect));\n },\n onInterrupt: fiberId => Option.some(interrupt(fiberId)),\n onSequential: Option.mergeWith(sequential),\n onParallel: Option.mergeWith(parallel)\n}));\n// -----------------------------------------------------------------------------\n// Mapping\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const as = /*#__PURE__*/dual(2, (self, error) => map(self, () => error));\n/** @internal */\nexport const map = /*#__PURE__*/dual(2, (self, f) => flatMap(self, e => fail(f(e))));\n// -----------------------------------------------------------------------------\n// Sequencing\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const flatMap = /*#__PURE__*/dual(2, (self, f) => match(self, {\n onEmpty: empty,\n onFail: error => f(error),\n onDie: defect => die(defect),\n onInterrupt: fiberId => interrupt(fiberId),\n onSequential: (left, right) => sequential(left, right),\n onParallel: (left, right) => parallel(left, right)\n}));\n/** @internal */\nexport const flatten = self => flatMap(self, identity);\n/** @internal */\nexport const andThen = /*#__PURE__*/dual(2, (self, f) => isFunction(f) ? flatMap(self, f) : flatMap(self, () => f));\n// -----------------------------------------------------------------------------\n// Equality\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const contains = /*#__PURE__*/dual(2, (self, that) => {\n if (that._tag === OpCodes.OP_EMPTY || self === that) {\n return true;\n }\n return reduce(self, false, (accumulator, cause) => {\n return Option.some(accumulator || causeEquals(cause, that));\n });\n});\n/** @internal */\nconst causeEquals = (left, right) => {\n let leftStack = Chunk.of(left);\n let rightStack = Chunk.of(right);\n while (Chunk.isNonEmpty(leftStack) && Chunk.isNonEmpty(rightStack)) {\n const [leftParallel, leftSequential] = pipe(Chunk.headNonEmpty(leftStack), reduce([HashSet.empty(), Chunk.empty()], ([parallel, sequential], cause) => {\n const [par, seq] = evaluateCause(cause);\n return Option.some([pipe(parallel, HashSet.union(par)), pipe(sequential, Chunk.appendAll(seq))]);\n }));\n const [rightParallel, rightSequential] = pipe(Chunk.headNonEmpty(rightStack), reduce([HashSet.empty(), Chunk.empty()], ([parallel, sequential], cause) => {\n const [par, seq] = evaluateCause(cause);\n return Option.some([pipe(parallel, HashSet.union(par)), pipe(sequential, Chunk.appendAll(seq))]);\n }));\n if (!Equal.equals(leftParallel, rightParallel)) {\n return false;\n }\n leftStack = leftSequential;\n rightStack = rightSequential;\n }\n return true;\n};\n// -----------------------------------------------------------------------------\n// Flattening\n// -----------------------------------------------------------------------------\n/**\n * Flattens a cause to a sequence of sets of causes, where each set represents\n * causes that fail in parallel and sequential sets represent causes that fail\n * after each other.\n *\n * @internal\n */\nconst flattenCause = cause => {\n return flattenCauseLoop(Chunk.of(cause), Chunk.empty());\n};\n/** @internal */\nconst flattenCauseLoop = (causes, flattened) => {\n // eslint-disable-next-line no-constant-condition\n while (1) {\n const [parallel, sequential] = pipe(causes, Arr.reduce([HashSet.empty(), Chunk.empty()], ([parallel, sequential], cause) => {\n const [par, seq] = evaluateCause(cause);\n return [pipe(parallel, HashSet.union(par)), pipe(sequential, Chunk.appendAll(seq))];\n }));\n const updated = HashSet.size(parallel) > 0 ? pipe(flattened, Chunk.prepend(parallel)) : flattened;\n if (Chunk.isEmpty(sequential)) {\n return Chunk.reverse(updated);\n }\n causes = sequential;\n flattened = updated;\n }\n throw new Error(getBugErrorMessage(\"Cause.flattenCauseLoop\"));\n};\n// -----------------------------------------------------------------------------\n// Finding\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const find = /*#__PURE__*/dual(2, (self, pf) => {\n const stack = [self];\n while (stack.length > 0) {\n const item = stack.pop();\n const option = pf(item);\n switch (option._tag) {\n case \"None\":\n {\n switch (item._tag) {\n case OpCodes.OP_SEQUENTIAL:\n case OpCodes.OP_PARALLEL:\n {\n stack.push(item.right);\n stack.push(item.left);\n break;\n }\n }\n break;\n }\n case \"Some\":\n {\n return option;\n }\n }\n }\n return Option.none();\n});\n// -----------------------------------------------------------------------------\n// Filtering\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const filter = /*#__PURE__*/dual(2, (self, predicate) => reduceWithContext(self, void 0, FilterCauseReducer(predicate)));\n// -----------------------------------------------------------------------------\n// Evaluation\n// -----------------------------------------------------------------------------\n/**\n * Takes one step in evaluating a cause, returning a set of causes that fail\n * in parallel and a list of causes that fail sequentially after those causes.\n *\n * @internal\n */\nconst evaluateCause = self => {\n let cause = self;\n const stack = [];\n let _parallel = HashSet.empty();\n let _sequential = Chunk.empty();\n while (cause !== undefined) {\n switch (cause._tag) {\n case OpCodes.OP_EMPTY:\n {\n if (stack.length === 0) {\n return [_parallel, _sequential];\n }\n cause = stack.pop();\n break;\n }\n case OpCodes.OP_FAIL:\n {\n _parallel = HashSet.add(_parallel, Chunk.make(cause._tag, cause.error));\n if (stack.length === 0) {\n return [_parallel, _sequential];\n }\n cause = stack.pop();\n break;\n }\n case OpCodes.OP_DIE:\n {\n _parallel = HashSet.add(_parallel, Chunk.make(cause._tag, cause.defect));\n if (stack.length === 0) {\n return [_parallel, _sequential];\n }\n cause = stack.pop();\n break;\n }\n case OpCodes.OP_INTERRUPT:\n {\n _parallel = HashSet.add(_parallel, Chunk.make(cause._tag, cause.fiberId));\n if (stack.length === 0) {\n return [_parallel, _sequential];\n }\n cause = stack.pop();\n break;\n }\n case OpCodes.OP_SEQUENTIAL:\n {\n switch (cause.left._tag) {\n case OpCodes.OP_EMPTY:\n {\n cause = cause.right;\n break;\n }\n case OpCodes.OP_SEQUENTIAL:\n {\n cause = sequential(cause.left.left, sequential(cause.left.right, cause.right));\n break;\n }\n case OpCodes.OP_PARALLEL:\n {\n cause = parallel(sequential(cause.left.left, cause.right), sequential(cause.left.right, cause.right));\n break;\n }\n default:\n {\n _sequential = Chunk.prepend(_sequential, cause.right);\n cause = cause.left;\n break;\n }\n }\n break;\n }\n case OpCodes.OP_PARALLEL:\n {\n stack.push(cause.right);\n cause = cause.left;\n break;\n }\n }\n }\n throw new Error(getBugErrorMessage(\"Cause.evaluateCauseLoop\"));\n};\n// -----------------------------------------------------------------------------\n// Reducing\n// -----------------------------------------------------------------------------\n/** @internal */\nconst SizeCauseReducer = {\n emptyCase: () => 0,\n failCase: () => 1,\n dieCase: () => 1,\n interruptCase: () => 1,\n sequentialCase: (_, left, right) => left + right,\n parallelCase: (_, left, right) => left + right\n};\n/** @internal */\nconst IsInterruptedOnlyCauseReducer = {\n emptyCase: constTrue,\n failCase: constFalse,\n dieCase: constFalse,\n interruptCase: constTrue,\n sequentialCase: (_, left, right) => left && right,\n parallelCase: (_, left, right) => left && right\n};\n/** @internal */\nconst FilterCauseReducer = predicate => ({\n emptyCase: () => empty,\n failCase: (_, error) => fail(error),\n dieCase: (_, defect) => die(defect),\n interruptCase: (_, fiberId) => interrupt(fiberId),\n sequentialCase: (_, left, right) => {\n if (predicate(left)) {\n if (predicate(right)) {\n return sequential(left, right);\n }\n return left;\n }\n if (predicate(right)) {\n return right;\n }\n return empty;\n },\n parallelCase: (_, left, right) => {\n if (predicate(left)) {\n if (predicate(right)) {\n return parallel(left, right);\n }\n return left;\n }\n if (predicate(right)) {\n return right;\n }\n return empty;\n }\n});\nconst OP_SEQUENTIAL_CASE = \"SequentialCase\";\nconst OP_PARALLEL_CASE = \"ParallelCase\";\n/** @internal */\nexport const match = /*#__PURE__*/dual(2, (self, {\n onDie,\n onEmpty,\n onFail,\n onInterrupt,\n onParallel,\n onSequential\n}) => {\n return reduceWithContext(self, void 0, {\n emptyCase: () => onEmpty,\n failCase: (_, error) => onFail(error),\n dieCase: (_, defect) => onDie(defect),\n interruptCase: (_, fiberId) => onInterrupt(fiberId),\n sequentialCase: (_, left, right) => onSequential(left, right),\n parallelCase: (_, left, right) => onParallel(left, right)\n });\n});\n/** @internal */\nexport const reduce = /*#__PURE__*/dual(3, (self, zero, pf) => {\n let accumulator = zero;\n let cause = self;\n const causes = [];\n while (cause !== undefined) {\n const option = pf(accumulator, cause);\n accumulator = Option.isSome(option) ? option.value : accumulator;\n switch (cause._tag) {\n case OpCodes.OP_SEQUENTIAL:\n {\n causes.push(cause.right);\n cause = cause.left;\n break;\n }\n case OpCodes.OP_PARALLEL:\n {\n causes.push(cause.right);\n cause = cause.left;\n break;\n }\n default:\n {\n cause = undefined;\n break;\n }\n }\n if (cause === undefined && causes.length > 0) {\n cause = causes.pop();\n }\n }\n return accumulator;\n});\n/** @internal */\nexport const reduceWithContext = /*#__PURE__*/dual(3, (self, context, reducer) => {\n const input = [self];\n const output = [];\n while (input.length > 0) {\n const cause = input.pop();\n switch (cause._tag) {\n case OpCodes.OP_EMPTY:\n {\n output.push(Either.right(reducer.emptyCase(context)));\n break;\n }\n case OpCodes.OP_FAIL:\n {\n output.push(Either.right(reducer.failCase(context, cause.error)));\n break;\n }\n case OpCodes.OP_DIE:\n {\n output.push(Either.right(reducer.dieCase(context, cause.defect)));\n break;\n }\n case OpCodes.OP_INTERRUPT:\n {\n output.push(Either.right(reducer.interruptCase(context, cause.fiberId)));\n break;\n }\n case OpCodes.OP_SEQUENTIAL:\n {\n input.push(cause.right);\n input.push(cause.left);\n output.push(Either.left({\n _tag: OP_SEQUENTIAL_CASE\n }));\n break;\n }\n case OpCodes.OP_PARALLEL:\n {\n input.push(cause.right);\n input.push(cause.left);\n output.push(Either.left({\n _tag: OP_PARALLEL_CASE\n }));\n break;\n }\n }\n }\n const accumulator = [];\n while (output.length > 0) {\n const either = output.pop();\n switch (either._tag) {\n case \"Left\":\n {\n switch (either.left._tag) {\n case OP_SEQUENTIAL_CASE:\n {\n const left = accumulator.pop();\n const right = accumulator.pop();\n const value = reducer.sequentialCase(context, left, right);\n accumulator.push(value);\n break;\n }\n case OP_PARALLEL_CASE:\n {\n const left = accumulator.pop();\n const right = accumulator.pop();\n const value = reducer.parallelCase(context, left, right);\n accumulator.push(value);\n break;\n }\n }\n break;\n }\n case \"Right\":\n {\n accumulator.push(either.right);\n break;\n }\n }\n }\n if (accumulator.length === 0) {\n throw new Error(\"BUG: Cause.reduceWithContext - please report an issue at https://github.com/Effect-TS/effect/issues\");\n }\n return accumulator.pop();\n});\n// -----------------------------------------------------------------------------\n// Pretty Printing\n// -----------------------------------------------------------------------------\n/** @internal */\nexport const pretty = (cause, options) => {\n if (isInterruptedOnly(cause)) {\n return \"All fibers interrupted without errors.\";\n }\n return prettyErrors(cause).map(function (e) {\n if (options?.renderErrorCause !== true || e.cause === undefined) {\n return e.stack;\n }\n return `${e.stack} {\\n${renderErrorCause(e.cause, \" \")}\\n}`;\n }).join(\"\\n\");\n};\nconst renderErrorCause = (cause, prefix) => {\n const lines = cause.stack.split(\"\\n\");\n let stack = `${prefix}[cause]: ${lines[0]}`;\n for (let i = 1, len = lines.length; i < len; i++) {\n stack += `\\n${prefix}${lines[i]}`;\n }\n if (cause.cause) {\n stack += ` {\\n${renderErrorCause(cause.cause, `${prefix} `)}\\n${prefix}}`;\n }\n return stack;\n};\n/** @internal */\nexport class PrettyError extends globalThis.Error {\n span = undefined;\n constructor(originalError) {\n const originalErrorIsObject = typeof originalError === \"object\" && originalError !== null;\n const prevLimit = Error.stackTraceLimit;\n Error.stackTraceLimit = 1;\n super(prettyErrorMessage(originalError), originalErrorIsObject && \"cause\" in originalError && typeof originalError.cause !== \"undefined\" ? {\n cause: new PrettyError(originalError.cause)\n } : undefined);\n if (this.message === \"\") {\n this.message = \"An error has occurred\";\n }\n Error.stackTraceLimit = prevLimit;\n this.name = originalError instanceof Error ? originalError.name : \"Error\";\n if (originalErrorIsObject) {\n if (spanSymbol in originalError) {\n this.span = originalError[spanSymbol];\n }\n Object.keys(originalError).forEach(key => {\n if (!(key in this)) {\n // @ts-expect-error\n this[key] = originalError[key];\n }\n });\n }\n this.stack = prettyErrorStack(`${this.name}: ${this.message}`, originalError instanceof Error && originalError.stack ? originalError.stack : \"\", this.span);\n }\n}\n/**\n * A utility function for generating human-readable error messages from a generic error of type `unknown`.\n *\n * Rules:\n *\n * 1) If the input `u` is already a string, it's considered a message.\n * 2) If `u` is an Error instance with a message defined, it uses the message.\n * 3) If `u` has a user-defined `toString()` method, it uses that method.\n * 4) Otherwise, it uses `Inspectable.stringifyCircular` to produce a string representation and uses it as the error message,\n * with \"Error\" added as a prefix.\n *\n * @internal\n */\nexport const prettyErrorMessage = u => {\n // 1)\n if (typeof u === \"string\") {\n return u;\n }\n // 2)\n if (typeof u === \"object\" && u !== null && u instanceof Error) {\n return u.message;\n }\n // 3)\n try {\n if (hasProperty(u, \"toString\") && isFunction(u[\"toString\"]) && u[\"toString\"] !== Object.prototype.toString && u[\"toString\"] !== globalThis.Array.prototype.toString) {\n return u[\"toString\"]();\n }\n } catch {\n // something's off, rollback to json\n }\n // 4)\n return stringifyCircular(u);\n};\nconst locationRegex = /\\((.*)\\)/g;\n/** @internal */\nexport const spanToTrace = /*#__PURE__*/globalValue(\"effect/Tracer/spanToTrace\", () => new WeakMap());\nconst prettyErrorStack = (message, stack, span) => {\n const out = [message];\n const lines = stack.startsWith(message) ? stack.slice(message.length).split(\"\\n\") : stack.split(\"\\n\");\n for (let i = 1; i < lines.length; i++) {\n if (lines[i].includes(\" at new BaseEffectError\") || lines[i].includes(\" at new YieldableError\")) {\n i++;\n continue;\n }\n if (lines[i].includes(\"Generator.next\")) {\n break;\n }\n if (lines[i].includes(\"effect_internal_function\")) {\n break;\n }\n out.push(lines[i].replace(/at .*effect_instruction_i.*\\((.*)\\)/, \"at $1\").replace(/EffectPrimitive\\.\\w+/, \"\"));\n }\n if (span) {\n let current = span;\n let i = 0;\n while (current && current._tag === \"Span\" && i < 10) {\n const stackFn = spanToTrace.get(current);\n if (typeof stackFn === \"function\") {\n const stack = stackFn();\n if (typeof stack === \"string\") {\n const locationMatchAll = stack.matchAll(locationRegex);\n let match = false;\n for (const [, location] of locationMatchAll) {\n match = true;\n out.push(` at ${current.name} (${location})`);\n }\n if (!match) {\n out.push(` at ${current.name} (${stack.replace(/^at /, \"\")})`);\n }\n } else {\n out.push(` at ${current.name}`);\n }\n } else {\n out.push(` at ${current.name}`);\n }\n current = Option.getOrUndefined(current.parent);\n i++;\n }\n }\n return out.join(\"\\n\");\n};\n/** @internal */\nexport const spanSymbol = /*#__PURE__*/Symbol.for(\"effect/SpanAnnotation\");\n/** @internal */\nexport const prettyErrors = cause => reduceWithContext(cause, void 0, {\n emptyCase: () => [],\n dieCase: (_, unknownError) => {\n return [new PrettyError(unknownError)];\n },\n failCase: (_, error) => {\n return [new PrettyError(error)];\n },\n interruptCase: () => [],\n parallelCase: (_, l, r) => [...l, ...r],\n sequentialCase: (_, l, r) => [...l, ...r]\n});\n//# sourceMappingURL=cause.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\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 }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, { hasUnpiped: false });\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","import { parseAccount } from '../../accounts/utils/parseAccount.js';\nimport { BaseError } from '../../errors/base.js';\nimport { AtomicityNotSupportedError, UnsupportedNonOptionalCapabilityError, } from '../../errors/rpc.js';\nimport { encodeFunctionData } from '../../utils/abi/encodeFunctionData.js';\nimport { concat } from '../../utils/data/concat.js';\nimport { hexToBigInt } from '../../utils/encoding/fromHex.js';\nimport { numberToHex } from '../../utils/encoding/toHex.js';\nimport { getTransactionError } from '../../utils/errors/getTransactionError.js';\nimport { sendTransaction } from './sendTransaction.js';\nexport const fallbackMagicIdentifier = '0x5792579257925792579257925792579257925792579257925792579257925792';\nexport const fallbackTransactionErrorMagicIdentifier = numberToHex(0, {\n size: 32,\n});\n/**\n * Requests the connected wallet to send a batch of calls.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendCalls\n * - JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\n *\n * @param client - Client to use\n * @returns Transaction identifier. {@link SendCallsReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendCalls } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const id = await sendCalls(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * calls: [\n * {\n * data: '0xdeadbeef',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * },\n * {\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 69420n,\n * },\n * ],\n * })\n */\nexport async function sendCalls(client, parameters) {\n const { account: account_ = client.account, capabilities, chain = client.chain, experimental_fallback, experimental_fallbackDelay = 32, forceAtomic = false, id, version = '2.0.0', } = parameters;\n const account = account_ ? parseAccount(account_) : null;\n const calls = parameters.calls.map((call_) => {\n const call = call_;\n const data = call.abi\n ? encodeFunctionData({\n abi: call.abi,\n functionName: call.functionName,\n args: call.args,\n })\n : call.data;\n return {\n data: call.dataSuffix && data ? concat([data, call.dataSuffix]) : data,\n to: call.to,\n value: call.value ? numberToHex(call.value) : undefined,\n };\n });\n try {\n const response = await client.request({\n method: 'wallet_sendCalls',\n params: [\n {\n atomicRequired: forceAtomic,\n calls,\n capabilities,\n chainId: numberToHex(chain.id),\n from: account?.address,\n id,\n version,\n },\n ],\n }, { retryCount: 0 });\n if (typeof response === 'string')\n return { id: response };\n return response;\n }\n catch (err) {\n const error = err;\n // If the transport does not support EIP-5792, fall back to\n // `eth_sendTransaction`.\n if (experimental_fallback &&\n (error.name === 'MethodNotFoundRpcError' ||\n error.name === 'MethodNotSupportedRpcError' ||\n error.name === 'UnknownRpcError' ||\n error.details\n .toLowerCase()\n .includes('does not exist / is not available') ||\n error.details.toLowerCase().includes('missing or invalid. request()') ||\n error.details\n .toLowerCase()\n .includes('did not match any variant of untagged enum') ||\n error.details\n .toLowerCase()\n .includes('account upgraded to unsupported contract') ||\n error.details.toLowerCase().includes('eip-7702 not supported') ||\n error.details.toLowerCase().includes('unsupported wc_ method') ||\n // magic.link\n error.details\n .toLowerCase()\n .includes('feature toggled misconfigured') ||\n // Trust Wallet\n error.details\n .toLowerCase()\n .includes('jsonrpcengine: response has no error or result for request'))) {\n if (capabilities) {\n const hasNonOptionalCapability = Object.values(capabilities).some((capability) => !capability.optional);\n if (hasNonOptionalCapability) {\n const message = 'non-optional `capabilities` are not supported on fallback to `eth_sendTransaction`.';\n throw new UnsupportedNonOptionalCapabilityError(new BaseError(message, {\n details: message,\n }));\n }\n }\n if (forceAtomic && calls.length > 1) {\n const message = '`forceAtomic` is not supported on fallback to `eth_sendTransaction`.';\n throw new AtomicityNotSupportedError(new BaseError(message, {\n details: message,\n }));\n }\n const promises = [];\n for (const call of calls) {\n const promise = sendTransaction(client, {\n account,\n chain,\n data: call.data,\n to: call.to,\n value: call.value ? hexToBigInt(call.value) : undefined,\n });\n promises.push(promise);\n // Note: some browser wallets require a small delay between transactions\n // to prevent duplicate JSON-RPC requests.\n if (experimental_fallbackDelay > 0)\n await new Promise((resolve) => setTimeout(resolve, experimental_fallbackDelay));\n }\n const results = await Promise.allSettled(promises);\n if (results.every((r) => r.status === 'rejected'))\n throw results[0].reason;\n const hashes = results.map((result) => {\n if (result.status === 'fulfilled')\n return result.value;\n return fallbackTransactionErrorMagicIdentifier;\n });\n return {\n id: concat([\n ...hashes,\n numberToHex(chain.id, { size: 32 }),\n fallbackMagicIdentifier,\n ]),\n };\n }\n throw getTransactionError(err, {\n ...parameters,\n account,\n chain: parameters.chain,\n });\n }\n}\n//# sourceMappingURL=sendCalls.js.map","import { sliceHex } from '../../utils/data/slice.js';\nimport { trim } from '../../utils/data/trim.js';\nimport { hexToBigInt, hexToNumber } from '../../utils/encoding/fromHex.js';\nimport { receiptStatuses } from '../../utils/formatters/transactionReceipt.js';\nimport { fallbackMagicIdentifier, fallbackTransactionErrorMagicIdentifier, } from './sendCalls.js';\n/**\n * Returns the status of a call batch that was sent via `sendCalls`.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getCallsStatus\n * - JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\n *\n * @param client - Client to use\n * @returns Status of the calls. {@link GetCallsStatusReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getCallsStatus } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const { receipts, status } = await getCallsStatus(client, { id: '0xdeadbeef' })\n */\nexport async function getCallsStatus(client, parameters) {\n async function getStatus(id) {\n const isTransactions = id.endsWith(fallbackMagicIdentifier.slice(2));\n if (isTransactions) {\n const chainId = trim(sliceHex(id, -64, -32));\n const hashes = sliceHex(id, 0, -64)\n .slice(2)\n .match(/.{1,64}/g);\n const receipts = await Promise.all(hashes.map((hash) => fallbackTransactionErrorMagicIdentifier.slice(2) !== hash\n ? client.request({\n method: 'eth_getTransactionReceipt',\n params: [`0x${hash}`],\n }, { dedupe: true })\n : undefined));\n const status = (() => {\n if (receipts.some((r) => r === null))\n return 100; // pending\n if (receipts.every((r) => r?.status === '0x1'))\n return 200; // success\n if (receipts.every((r) => r?.status === '0x0'))\n return 500; // complete failure\n return 600; // partial failure\n })();\n return {\n atomic: false,\n chainId: hexToNumber(chainId),\n receipts: receipts.filter(Boolean),\n status,\n version: '2.0.0',\n };\n }\n return client.request({\n method: 'wallet_getCallsStatus',\n params: [id],\n });\n }\n const { atomic = false, chainId, receipts, version = '2.0.0', ...response } = await getStatus(parameters.id);\n const [status, statusCode] = (() => {\n const statusCode = response.status;\n if (statusCode >= 100 && statusCode < 200)\n return ['pending', statusCode];\n if (statusCode >= 200 && statusCode < 300)\n return ['success', statusCode];\n if (statusCode >= 300 && statusCode < 700)\n return ['failure', statusCode];\n // @ts-expect-error: for backwards compatibility\n if (statusCode === 'CONFIRMED')\n return ['success', 200];\n // @ts-expect-error: for backwards compatibility\n if (statusCode === 'PENDING')\n return ['pending', 100];\n return [undefined, statusCode];\n })();\n return {\n ...response,\n atomic,\n // @ts-expect-error: for backwards compatibility\n chainId: chainId ? hexToNumber(chainId) : undefined,\n receipts: receipts?.map((receipt) => ({\n ...receipt,\n blockNumber: hexToBigInt(receipt.blockNumber),\n gasUsed: hexToBigInt(receipt.gasUsed),\n status: receiptStatuses[receipt.status],\n })) ?? [],\n statusCode,\n status,\n version,\n };\n}\n//# sourceMappingURL=getCallsStatus.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError, } from '../../errors/account.js';\nimport { isAddressEqual } from '../../utils/address/isAddressEqual.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { getChainId } from '../public/getChainId.js';\nimport { getTransactionCount } from '../public/getTransactionCount.js';\n/**\n * Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\n * This Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\n *\n * With the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\n *\n * @param client - Client to use\n * @param parameters - {@link PrepareAuthorizationParameters}\n * @returns The prepared Authorization object. {@link PrepareAuthorizationReturnType}\n *\n * @example\n * import { createClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { prepareAuthorization } from 'viem/experimental'\n *\n * const client = createClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const authorization = await prepareAuthorization(client, {\n * account: privateKeyToAccount('0x..'),\n * contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n *\n * @example\n * // Account Hoisting\n * import { createClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { prepareAuthorization } from 'viem/experimental'\n *\n * const client = createClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const authorization = await prepareAuthorization(client, {\n * contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function prepareAuthorization(client, parameters) {\n const { account: account_ = client.account, chainId, nonce } = parameters;\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/eip7702/prepareAuthorization',\n });\n const account = parseAccount(account_);\n const executor = (() => {\n if (!parameters.executor)\n return undefined;\n if (parameters.executor === 'self')\n return parameters.executor;\n return parseAccount(parameters.executor);\n })();\n const authorization = {\n address: parameters.contractAddress ?? parameters.address,\n chainId,\n nonce,\n };\n if (typeof authorization.chainId === 'undefined')\n authorization.chainId =\n client.chain?.id ??\n (await getAction(client, getChainId, 'getChainId')({}));\n if (typeof authorization.nonce === 'undefined') {\n authorization.nonce = await getAction(client, getTransactionCount, 'getTransactionCount')({\n address: account.address,\n blockTag: 'pending',\n });\n if (executor === 'self' ||\n (executor?.address && isAddressEqual(executor.address, account.address)))\n authorization.nonce += 1;\n }\n return authorization;\n}\n//# sourceMappingURL=prepareAuthorization.js.map","import { BaseError } from './base.js';\nexport class BundleFailedError extends BaseError {\n constructor(result) {\n super(`Call bundle failed with status: ${result.statusCode}`, {\n name: 'BundleFailedError',\n });\n Object.defineProperty(this, \"result\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.result = result;\n }\n}\n//# sourceMappingURL=calls.js.map","import { BaseError } from '../../errors/base.js';\nimport { BundleFailedError } from '../../errors/calls.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { withResolvers } from '../../utils/promise/withResolvers.js';\nimport { withRetry, } from '../../utils/promise/withRetry.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { getCallsStatus, } from './getCallsStatus.js';\n/**\n * Waits for the status & receipts of a call bundle that was sent via `sendCalls`.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/waitForCallsStatus\n * - JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\n *\n * @param client - Client to use\n * @param parameters - {@link WaitForCallsStatusParameters}\n * @returns Status & receipts of the call bundle. {@link WaitForCallsStatusReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { waitForCallsStatus } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n *\n * const { receipts, status } = await waitForCallsStatus(client, { id: '0xdeadbeef' })\n */\nexport async function waitForCallsStatus(client, parameters) {\n const { id, pollingInterval = client.pollingInterval, status = ({ statusCode }) => statusCode === 200 || statusCode >= 300, retryCount = 4, retryDelay = ({ count }) => ~~(1 << count) * 200, // exponential backoff\n timeout = 60_000, throwOnFailure = false, } = parameters;\n const observerId = stringify(['waitForCallsStatus', client.uid, id]);\n const { promise, resolve, reject } = withResolvers();\n let timer;\n const unobserve = observe(observerId, { resolve, reject }, (emit) => {\n const unpoll = poll(async () => {\n const done = (fn) => {\n clearTimeout(timer);\n unpoll();\n fn();\n unobserve();\n };\n try {\n const result = await withRetry(async () => {\n const result = await getAction(client, getCallsStatus, 'getCallsStatus')({ id });\n if (throwOnFailure && result.status === 'failure')\n throw new BundleFailedError(result);\n return result;\n }, {\n retryCount,\n delay: retryDelay,\n });\n if (!status(result))\n return;\n done(() => emit.resolve(result));\n }\n catch (error) {\n done(() => emit.reject(error));\n }\n }, {\n interval: pollingInterval,\n emitOnBegin: true,\n });\n return unpoll;\n });\n timer = timeout\n ? setTimeout(() => {\n unobserve();\n clearTimeout(timer);\n reject(new WaitForCallsStatusTimeoutError({ id }));\n }, timeout)\n : undefined;\n return await promise;\n}\nexport class WaitForCallsStatusTimeoutError extends BaseError {\n constructor({ id }) {\n super(`Timed out while waiting for call bundle with id \"${id}\" to be confirmed.`, { name: 'WaitForCallsStatusTimeoutError' });\n }\n}\n//# sourceMappingURL=waitForCallsStatus.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError, AccountTypeNotSupportedError, } from '../../errors/account.js';\nimport { BaseError } from '../../errors/base.js';\nimport { TransactionReceiptRevertedError, } from '../../errors/transaction.js';\nimport { recoverAuthorizationAddress, } from '../../utils/authorization/recoverAuthorizationAddress.js';\nimport { assertCurrentChain, } from '../../utils/chain/assertCurrentChain.js';\nimport { getTransactionError, } from '../../utils/errors/getTransactionError.js';\nimport { extract } from '../../utils/formatters/extract.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { LruMap } from '../../utils/lru.js';\nimport { assertRequest, } from '../../utils/transaction/assertRequest.js';\nimport { getChainId } from '../public/getChainId.js';\nimport { waitForTransactionReceipt, } from '../public/waitForTransactionReceipt.js';\nimport { defaultParameters, prepareTransactionRequest, } from './prepareTransactionRequest.js';\nimport { sendRawTransactionSync, } from './sendRawTransactionSync.js';\nconst supportsWalletNamespace = new LruMap(128);\n/**\n * Creates, signs, and sends a new transaction to the network synchronously.\n * Returns the transaction receipt.\n *\n * @param client - Client to use\n * @param parameters - {@link SendTransactionSyncParameters}\n * @returns The transaction receipt. {@link SendTransactionSyncReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendTransactionSync } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const receipt = await sendTransactionSync(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 1000000000000000000n,\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { sendTransactionSync } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const receipt = await sendTransactionSync(client, {\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 1000000000000000000n,\n * })\n */\nexport async function sendTransactionSync(client, parameters) {\n const { account: account_ = client.account, chain = client.chain, accessList, authorizationList, blobs, data, gas, gasPrice, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, nonce, pollingInterval, throwOnReceiptRevert, type, value, ...rest } = parameters;\n const timeout = parameters.timeout ?? Math.max((chain?.blockTime ?? 0) * 3, 5_000);\n if (typeof account_ === 'undefined')\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/sendTransactionSync',\n });\n const account = account_ ? parseAccount(account_) : null;\n try {\n assertRequest(parameters);\n const to = await (async () => {\n // If `to` exists on the parameters, use that.\n if (parameters.to)\n return parameters.to;\n // If `to` is null, we are sending a deployment transaction.\n if (parameters.to === null)\n return undefined;\n // If no `to` exists, and we are sending a EIP-7702 transaction, use the\n // address of the first authorization in the list.\n if (authorizationList && authorizationList.length > 0)\n return await recoverAuthorizationAddress({\n authorization: authorizationList[0],\n }).catch(() => {\n throw new BaseError('`to` is required. Could not infer from `authorizationList`.');\n });\n // Otherwise, we are sending a deployment transaction.\n return undefined;\n })();\n if (account?.type === 'json-rpc' || account === null) {\n let chainId;\n if (chain !== null) {\n chainId = await getAction(client, getChainId, 'getChainId')({});\n assertCurrentChain({\n currentChainId: chainId,\n chain,\n });\n }\n const chainFormat = client.chain?.formatters?.transactionRequest?.format;\n const format = chainFormat || formatTransactionRequest;\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n accessList,\n account,\n authorizationList,\n blobs,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n type,\n value,\n }, 'sendTransaction');\n const isWalletNamespaceSupported = supportsWalletNamespace.get(client.uid);\n const method = isWalletNamespaceSupported\n ? 'wallet_sendTransaction'\n : 'eth_sendTransaction';\n const hash = await (async () => {\n try {\n return await client.request({\n method,\n params: [request],\n }, { retryCount: 0 });\n }\n catch (e) {\n if (isWalletNamespaceSupported === false)\n throw e;\n const error = e;\n // If the transport does not support the method or input, attempt to use the\n // `wallet_sendTransaction` method.\n if (error.name === 'InvalidInputRpcError' ||\n error.name === 'InvalidParamsRpcError' ||\n error.name === 'MethodNotFoundRpcError' ||\n error.name === 'MethodNotSupportedRpcError') {\n return (await client\n .request({\n method: 'wallet_sendTransaction',\n params: [request],\n }, { retryCount: 0 })\n .then((hash) => {\n supportsWalletNamespace.set(client.uid, true);\n return hash;\n })\n .catch((e) => {\n const walletNamespaceError = e;\n if (walletNamespaceError.name === 'MethodNotFoundRpcError' ||\n walletNamespaceError.name === 'MethodNotSupportedRpcError') {\n supportsWalletNamespace.set(client.uid, false);\n throw error;\n }\n throw walletNamespaceError;\n }));\n }\n throw error;\n }\n })();\n const receipt = await getAction(client, waitForTransactionReceipt, 'waitForTransactionReceipt')({\n checkReplacement: false,\n hash,\n pollingInterval,\n timeout,\n });\n if (throwOnReceiptRevert && receipt.status === 'reverted')\n throw new TransactionReceiptRevertedError({ receipt });\n return receipt;\n }\n if (account?.type === 'local') {\n // Prepare the request for signing (assign appropriate fees, etc.)\n const request = await getAction(client, prepareTransactionRequest, 'prepareTransactionRequest')({\n account,\n accessList,\n authorizationList,\n blobs,\n chain,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n nonceManager: account.nonceManager,\n parameters: [...defaultParameters, 'sidecars'],\n type,\n value,\n ...rest,\n to,\n });\n const serializer = chain?.serializers?.transaction;\n const serializedTransaction = (await account.signTransaction(request, {\n serializer,\n }));\n return (await getAction(client, sendRawTransactionSync, 'sendRawTransactionSync')({\n serializedTransaction,\n throwOnReceiptRevert,\n }));\n }\n if (account?.type === 'smart')\n throw new AccountTypeNotSupportedError({\n metaMessages: [\n 'Consider using the `sendUserOperation` Action instead.',\n ],\n docsPath: '/docs/actions/bundler/sendUserOperation',\n type: 'smart',\n });\n throw new AccountTypeNotSupportedError({\n docsPath: '/docs/actions/wallet/sendTransactionSync',\n type: account?.type,\n });\n }\n catch (err) {\n if (err instanceof AccountTypeNotSupportedError)\n throw err;\n throw getTransactionError(err, {\n ...parameters,\n account,\n chain: parameters.chain || undefined,\n });\n }\n}\n//# sourceMappingURL=sendTransactionSync.js.map","import { fillTransaction, } from '../../actions/public/fillTransaction.js';\nimport { getChainId, } from '../../actions/public/getChainId.js';\nimport { addChain, } from '../../actions/wallet/addChain.js';\nimport { deployContract, } from '../../actions/wallet/deployContract.js';\nimport { getAddresses, } from '../../actions/wallet/getAddresses.js';\nimport { getCallsStatus, } from '../../actions/wallet/getCallsStatus.js';\nimport { getCapabilities, } from '../../actions/wallet/getCapabilities.js';\nimport { getPermissions, } from '../../actions/wallet/getPermissions.js';\nimport { prepareAuthorization, } from '../../actions/wallet/prepareAuthorization.js';\nimport { prepareTransactionRequest, } from '../../actions/wallet/prepareTransactionRequest.js';\nimport { requestAddresses, } from '../../actions/wallet/requestAddresses.js';\nimport { requestPermissions, } from '../../actions/wallet/requestPermissions.js';\nimport { sendCalls, } from '../../actions/wallet/sendCalls.js';\nimport { sendCallsSync, } from '../../actions/wallet/sendCallsSync.js';\nimport { sendRawTransaction, } from '../../actions/wallet/sendRawTransaction.js';\nimport { sendRawTransactionSync, } from '../../actions/wallet/sendRawTransactionSync.js';\nimport { sendTransaction, } from '../../actions/wallet/sendTransaction.js';\nimport { sendTransactionSync, } from '../../actions/wallet/sendTransactionSync.js';\nimport { showCallsStatus, } from '../../actions/wallet/showCallsStatus.js';\nimport { signAuthorization, } from '../../actions/wallet/signAuthorization.js';\nimport { signMessage, } from '../../actions/wallet/signMessage.js';\nimport { signTransaction, } from '../../actions/wallet/signTransaction.js';\nimport { signTypedData, } from '../../actions/wallet/signTypedData.js';\nimport { switchChain, } from '../../actions/wallet/switchChain.js';\nimport { waitForCallsStatus, } from '../../actions/wallet/waitForCallsStatus.js';\nimport { watchAsset, } from '../../actions/wallet/watchAsset.js';\nimport { writeContract, } from '../../actions/wallet/writeContract.js';\nimport { writeContractSync, } from '../../actions/wallet/writeContractSync.js';\nexport function walletActions(client) {\n return {\n addChain: (args) => addChain(client, args),\n deployContract: (args) => deployContract(client, args),\n fillTransaction: (args) => fillTransaction(client, args),\n getAddresses: () => getAddresses(client),\n getCallsStatus: (args) => getCallsStatus(client, args),\n getCapabilities: (args) => getCapabilities(client, args),\n getChainId: () => getChainId(client),\n getPermissions: () => getPermissions(client),\n prepareAuthorization: (args) => prepareAuthorization(client, args),\n prepareTransactionRequest: (args) => prepareTransactionRequest(client, args),\n requestAddresses: () => requestAddresses(client),\n requestPermissions: (args) => requestPermissions(client, args),\n sendCalls: (args) => sendCalls(client, args),\n sendCallsSync: (args) => sendCallsSync(client, args),\n sendRawTransaction: (args) => sendRawTransaction(client, args),\n sendRawTransactionSync: (args) => sendRawTransactionSync(client, args),\n sendTransaction: (args) => sendTransaction(client, args),\n sendTransactionSync: (args) => sendTransactionSync(client, args),\n showCallsStatus: (args) => showCallsStatus(client, args),\n signAuthorization: (args) => signAuthorization(client, args),\n signMessage: (args) => signMessage(client, args),\n signTransaction: (args) => signTransaction(client, args),\n signTypedData: (args) => signTypedData(client, args),\n switchChain: (args) => switchChain(client, args),\n waitForCallsStatus: (args) => waitForCallsStatus(client, args),\n watchAsset: (args) => watchAsset(client, args),\n writeContract: (args) => writeContract(client, args),\n writeContractSync: (args) => writeContractSync(client, args),\n };\n}\n//# sourceMappingURL=wallet.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Adds an EVM chain to the wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/addChain\n * - JSON-RPC Methods: [`eth_addEthereumChain`](https://eips.ethereum.org/EIPS/eip-3085)\n *\n * @param client - Client to use\n * @param parameters - {@link AddChainParameters}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { optimism } from 'viem/chains'\n * import { addChain } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * transport: custom(window.ethereum),\n * })\n * await addChain(client, { chain: optimism })\n */\nexport async function addChain(client, { chain }) {\n const { id, name, nativeCurrency, rpcUrls, blockExplorers } = chain;\n await client.request({\n method: 'wallet_addEthereumChain',\n params: [\n {\n chainId: numberToHex(id),\n chainName: name,\n nativeCurrency,\n rpcUrls: rpcUrls.default.http,\n blockExplorerUrls: blockExplorers\n ? Object.values(blockExplorers).map(({ url }) => url)\n : undefined,\n },\n ],\n }, { dedupe: true, retryCount: 0 });\n}\n//# sourceMappingURL=addChain.js.map","import { encodeDeployData } from '../../utils/abi/encodeDeployData.js';\nimport { sendTransaction, } from './sendTransaction.js';\n/**\n * Deploys a contract to the network, given bytecode and constructor arguments.\n *\n * - Docs: https://viem.sh/docs/contract/deployContract\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_deploying-contracts\n *\n * @param client - Client to use\n * @param parameters - {@link DeployContractParameters}\n * @returns The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link DeployContractReturnType}\n *\n * @example\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { deployContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const hash = await deployContract(client, {\n * abi: [],\n * account: '0x…,\n * bytecode: '0x608060405260405161083e38038061083e833981016040819052610...',\n * })\n */\nexport function deployContract(walletClient, parameters) {\n const { abi, args, bytecode, ...request } = parameters;\n const calldata = encodeDeployData({ abi, args, bytecode });\n return sendTransaction(walletClient, {\n ...request,\n ...(request.authorizationList ? { to: null } : {}),\n data: calldata,\n });\n}\n//# sourceMappingURL=deployContract.js.map","import { checksumAddress, } from '../../utils/address/getAddress.js';\n/**\n * Returns a list of account addresses owned by the wallet or client.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getAddresses\n * - JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\n *\n * @param client - Client to use\n * @returns List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getAddresses } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const accounts = await getAddresses(client)\n */\nexport async function getAddresses(client) {\n if (client.account?.type === 'local')\n return [client.account.address];\n const addresses = await client.request({ method: 'eth_accounts' }, { dedupe: true });\n return addresses.map((address) => checksumAddress(address));\n}\n//# sourceMappingURL=getAddresses.js.map","import { parseAccount } from '../../accounts/utils/parseAccount.js';\nimport { numberToHex } from '../../utils/encoding/toHex.js';\n/**\n * Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getCapabilities\n * - JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)\n *\n * @param client - Client to use\n * @returns The wallet's capabilities. {@link GetCapabilitiesReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getCapabilities } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const capabilities = await getCapabilities(client)\n */\nexport async function getCapabilities(client, parameters = {}) {\n const { account = client.account, chainId } = parameters;\n const account_ = account ? parseAccount(account) : undefined;\n const params = chainId\n ? [account_?.address, [numberToHex(chainId)]]\n : [account_?.address];\n const capabilities_raw = await client.request({\n method: 'wallet_getCapabilities',\n params,\n });\n const capabilities = {};\n for (const [chainId, capabilities_] of Object.entries(capabilities_raw)) {\n capabilities[Number(chainId)] = {};\n for (let [key, value] of Object.entries(capabilities_)) {\n if (key === 'addSubAccount')\n key = 'unstable_addSubAccount';\n capabilities[Number(chainId)][key] = value;\n }\n }\n return (typeof chainId === 'number' ? capabilities[chainId] : capabilities);\n}\n//# sourceMappingURL=getCapabilities.js.map","/**\n * Gets the wallets current permissions.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getPermissions\n * - JSON-RPC Methods: [`wallet_getPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\n *\n * @param client - Client to use\n * @returns The wallet permissions. {@link GetPermissionsReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getPermissions } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const permissions = await getPermissions(client)\n */\nexport async function getPermissions(client) {\n const permissions = await client.request({ method: 'wallet_getPermissions' }, { dedupe: true });\n return permissions;\n}\n//# sourceMappingURL=getPermissions.js.map","import { getAddress } from '../../utils/address/getAddress.js';\n/**\n * Requests a list of accounts managed by a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/requestAddresses\n * - JSON-RPC Methods: [`eth_requestAccounts`](https://eips.ethereum.org/EIPS/eip-1102)\n *\n * Sends a request to the wallet, asking for permission to access the user's accounts. After the user accepts the request, it will return a list of accounts (addresses).\n *\n * This API can be useful for dapps that need to access the user's accounts in order to execute transactions or interact with smart contracts.\n *\n * @param client - Client to use\n * @returns List of accounts managed by a wallet {@link RequestAddressesReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { requestAddresses } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const accounts = await requestAddresses(client)\n */\nexport async function requestAddresses(client) {\n const addresses = await client.request({ method: 'eth_requestAccounts' }, { dedupe: true, retryCount: 0 });\n return addresses.map((address) => getAddress(address));\n}\n//# sourceMappingURL=requestAddresses.js.map","/**\n * Requests permissions for a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/requestPermissions\n * - JSON-RPC Methods: [`wallet_requestPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\n *\n * @param client - Client to use\n * @param parameters - {@link RequestPermissionsParameters}\n * @returns The wallet permissions. {@link RequestPermissionsReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { requestPermissions } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const permissions = await requestPermissions(client, {\n * eth_accounts: {}\n * })\n */\nexport async function requestPermissions(client, permissions) {\n return client.request({\n method: 'wallet_requestPermissions',\n params: [permissions],\n }, { retryCount: 0 });\n}\n//# sourceMappingURL=requestPermissions.js.map","import { sendCalls, } from './sendCalls.js';\nimport { waitForCallsStatus, } from './waitForCallsStatus.js';\n/**\n * Requests the connected wallet to send a batch of calls, and waits for the calls to be included in a block.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendCallsSync\n * - JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\n *\n * @param client - Client to use\n * @returns Calls status. {@link SendCallsSyncReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendCalls } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const status = await sendCallsSync(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * calls: [\n * {\n * data: '0xdeadbeef',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * },\n * {\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 69420n,\n * },\n * ],\n * })\n */\nexport async function sendCallsSync(client, parameters) {\n const { chain = client.chain } = parameters;\n const timeout = parameters.timeout ?? Math.max((chain?.blockTime ?? 0) * 3, 5_000);\n const result = await sendCalls(client, parameters);\n const status = await waitForCallsStatus(client, {\n ...parameters,\n id: result.id,\n timeout,\n });\n return status;\n}\n//# sourceMappingURL=sendCallsSync.js.map","/**\n * Requests for the wallet to show information about a call batch\n * that was sent via `sendCalls`.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/showCallsStatus\n * - JSON-RPC Methods: [`wallet_showCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\n *\n * @param client - Client to use\n * @returns Status of the calls. {@link ShowCallsStatusReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { showCallsStatus } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * await showCallsStatus(client, { id: '0xdeadbeef' })\n */\nexport async function showCallsStatus(client, parameters) {\n const { id } = parameters;\n await client.request({\n method: 'wallet_showCallsStatus',\n params: [id],\n });\n return;\n}\n//# sourceMappingURL=showCallsStatus.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError, AccountTypeNotSupportedError, } from '../../errors/account.js';\nimport { prepareAuthorization, } from './prepareAuthorization.js';\n/**\n * Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\n *\n * With the calculated signature, you can:\n * - use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\n * - use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\n *\n * @param client - Client to use\n * @param parameters - {@link SignAuthorizationParameters}\n * @returns The signed Authorization object. {@link SignAuthorizationReturnType}\n *\n * @example\n * import { createClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signAuthorization } from 'viem/experimental'\n *\n * const client = createClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const signature = await signAuthorization(client, {\n * account: privateKeyToAccount('0x..'),\n * contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n *\n * @example\n * // Account Hoisting\n * import { createClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signAuthorization } from 'viem/experimental'\n *\n * const client = createClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const signature = await signAuthorization(client, {\n * contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function signAuthorization(client, parameters) {\n const { account: account_ = client.account } = parameters;\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/eip7702/signAuthorization',\n });\n const account = parseAccount(account_);\n if (!account.signAuthorization)\n throw new AccountTypeNotSupportedError({\n docsPath: '/docs/eip7702/signAuthorization',\n metaMessages: [\n 'The `signAuthorization` Action does not support JSON-RPC Accounts.',\n ],\n type: account.type,\n });\n const authorization = await prepareAuthorization(client, parameters);\n return account.signAuthorization(authorization);\n}\n//# sourceMappingURL=signAuthorization.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError } from '../../errors/account.js';\nimport { stringToHex, toHex, } from '../../utils/encoding/toHex.js';\n/**\n * Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\"\\x19Ethereum Signed Message:\\n\" + len(message) + message))`.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signMessage\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\n * - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * With the calculated signature, you can:\n * - use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\n * - use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\n *\n * @param client - Client to use\n * @param parameters - {@link SignMessageParameters}\n * @returns The signed message. {@link SignMessageReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signMessage } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signMessage(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * message: 'hello world',\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, custom } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signMessage } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signMessage(client, {\n * message: 'hello world',\n * })\n */\nexport async function signMessage(client, { account: account_ = client.account, message, }) {\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/signMessage',\n });\n const account = parseAccount(account_);\n if (account.signMessage)\n return account.signMessage({ message });\n const message_ = (() => {\n if (typeof message === 'string')\n return stringToHex(message);\n if (message.raw instanceof Uint8Array)\n return toHex(message.raw);\n return message.raw;\n })();\n return client.request({\n method: 'personal_sign',\n params: [message_, account.address],\n }, { retryCount: 0 });\n}\n//# sourceMappingURL=signMessage.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError } from '../../errors/account.js';\nimport { assertCurrentChain, } from '../../utils/chain/assertCurrentChain.js';\nimport { numberToHex } from '../../utils/encoding/toHex.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { assertRequest, } from '../../utils/transaction/assertRequest.js';\nimport { getChainId } from '../public/getChainId.js';\n/**\n * Signs a transaction.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signTransaction\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\n * - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * @param args - {@link SignTransactionParameters}\n * @returns The signed serialized transaction. {@link SignTransactionReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signTransaction } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signTransaction(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x0000000000000000000000000000000000000000',\n * value: 1n,\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signTransaction } from 'viem/actions'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signTransaction(client, {\n * to: '0x0000000000000000000000000000000000000000',\n * value: 1n,\n * })\n */\nexport async function signTransaction(client, parameters) {\n const { account: account_ = client.account, chain = client.chain, ...transaction } = parameters;\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/signTransaction',\n });\n const account = parseAccount(account_);\n assertRequest({\n account,\n ...parameters,\n });\n const chainId = await getAction(client, getChainId, 'getChainId')({});\n if (chain !== null)\n assertCurrentChain({\n currentChainId: chainId,\n chain,\n });\n const formatters = chain?.formatters || client.chain?.formatters;\n const format = formatters?.transactionRequest?.format || formatTransactionRequest;\n if (account.signTransaction)\n return account.signTransaction({\n ...transaction,\n chainId,\n }, { serializer: client.chain?.serializers?.transaction });\n return await client.request({\n method: 'eth_signTransaction',\n params: [\n {\n ...format({\n ...transaction,\n account,\n }, 'signTransaction'),\n chainId: numberToHex(chainId),\n from: account.address,\n },\n ],\n }, { retryCount: 0 });\n}\n//# sourceMappingURL=signTransaction.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError, } from '../../errors/account.js';\nimport { getTypesForEIP712Domain, serializeTypedData, validateTypedData, } from '../../utils/typedData.js';\n/**\n * Signs typed data and calculates an Ethereum-specific signature in [https://eips.ethereum.org/EIPS/eip-712](https://eips.ethereum.org/EIPS/eip-712): `sign(keccak256(\"\\x19\\x01\" ‖ domainSeparator ‖ hashStruct(message)))`\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signTypedData\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\n * - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * @param client - Client to use\n * @param parameters - {@link SignTypedDataParameters}\n * @returns The signed data. {@link SignTypedDataReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signTypedData } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signTypedData(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * domain: {\n * name: 'Ether Mail',\n * version: '1',\n * chainId: 1,\n * verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\n * },\n * types: {\n * Person: [\n * { name: 'name', type: 'string' },\n * { name: 'wallet', type: 'address' },\n * ],\n * Mail: [\n * { name: 'from', type: 'Person' },\n * { name: 'to', type: 'Person' },\n * { name: 'contents', type: 'string' },\n * ],\n * },\n * primaryType: 'Mail',\n * message: {\n * from: {\n * name: 'Cow',\n * wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\n * },\n * to: {\n * name: 'Bob',\n * wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\n * },\n * contents: 'Hello, Bob!',\n * },\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signTypedData } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const signature = await signTypedData(client, {\n * domain: {\n * name: 'Ether Mail',\n * version: '1',\n * chainId: 1,\n * verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\n * },\n * types: {\n * Person: [\n * { name: 'name', type: 'string' },\n * { name: 'wallet', type: 'address' },\n * ],\n * Mail: [\n * { name: 'from', type: 'Person' },\n * { name: 'to', type: 'Person' },\n * { name: 'contents', type: 'string' },\n * ],\n * },\n * primaryType: 'Mail',\n * message: {\n * from: {\n * name: 'Cow',\n * wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\n * },\n * to: {\n * name: 'Bob',\n * wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\n * },\n * contents: 'Hello, Bob!',\n * },\n * })\n */\nexport async function signTypedData(client, parameters) {\n const { account: account_ = client.account, domain, message, primaryType, } = parameters;\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/signTypedData',\n });\n const account = parseAccount(account_);\n const types = {\n EIP712Domain: getTypesForEIP712Domain({ domain }),\n ...parameters.types,\n };\n // Need to do a runtime validation check on addresses, byte ranges, integer ranges, etc\n // as we can't statically check this with TypeScript.\n validateTypedData({ domain, message, primaryType, types });\n if (account.signTypedData)\n return account.signTypedData({ domain, message, primaryType, types });\n const typedData = serializeTypedData({ domain, message, primaryType, types });\n return client.request({\n method: 'eth_signTypedData_v4',\n params: [account.address, typedData],\n }, { retryCount: 0 });\n}\n//# sourceMappingURL=signTypedData.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Switch the target chain in a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/switchChain\n * - JSON-RPC Methods: [`wallet_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326)\n *\n * @param client - Client to use\n * @param parameters - {@link SwitchChainParameters}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet, optimism } from 'viem/chains'\n * import { switchChain } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * await switchChain(client, { id: optimism.id })\n */\nexport async function switchChain(client, { id }) {\n await client.request({\n method: 'wallet_switchEthereumChain',\n params: [\n {\n chainId: numberToHex(id),\n },\n ],\n }, { retryCount: 0 });\n}\n//# sourceMappingURL=switchChain.js.map","/**\n * Adds an EVM chain to the wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/watchAsset\n * - JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\n *\n * @param client - Client to use\n * @param parameters - {@link WatchAssetParameters}\n * @returns Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchAsset } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const success = await watchAsset(client, {\n * type: 'ERC20',\n * options: {\n * address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n * decimals: 18,\n * symbol: 'WETH',\n * },\n * })\n */\nexport async function watchAsset(client, params) {\n const added = await client.request({\n method: 'wallet_watchAsset',\n params,\n }, { retryCount: 0 });\n return added;\n}\n//# sourceMappingURL=watchAsset.js.map","import { sendTransactionSync, } from './sendTransactionSync.js';\nimport { writeContract } from './writeContract.js';\n/**\n * Executes a write function on a contract synchronously.\n * Returns the transaction receipt.\n *\n * - Docs: https://viem.sh/docs/contract/writeContractSync\n *\n * A \"write\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\n *\n * Internally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n *\n * __Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\n *\n * @param client - Client to use\n * @param parameters - {@link WriteContractParameters}\n * @returns A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\n *\n * @example\n * import { createWalletClient, custom, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { writeContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const receipt = await writeContractSync(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\n * functionName: 'mint',\n * args: [69420],\n * })\n */\nexport async function writeContractSync(client, parameters) {\n return writeContract.internal(client, sendTransactionSync, 'sendTransactionSync', parameters);\n}\n//# sourceMappingURL=writeContractSync.js.map","import { createClient, } from './createClient.js';\nimport { walletActions } from './decorators/wallet.js';\nexport function createWalletClient(parameters) {\n const { key = 'wallet', name = 'Wallet Client', transport } = parameters;\n const client = createClient({\n ...parameters,\n key,\n name,\n transport,\n type: 'walletClient',\n });\n return client.extend(walletActions);\n}\n//# sourceMappingURL=createWalletClient.js.map","import { gweiUnits } from '../../constants/unit.js';\nimport { formatUnits } from './formatUnits.js';\n/**\n * Converts numerical wei to a string representation of gwei.\n *\n * - Docs: https://viem.sh/docs/utilities/formatGwei\n *\n * @example\n * import { formatGwei } from 'viem'\n *\n * formatGwei(1000000000n)\n * // '1'\n */\nexport function formatGwei(wei, unit = 'wei') {\n return formatUnits(wei, gweiUnits[unit]);\n}\n//# sourceMappingURL=formatGwei.js.map","let moduleVersion = \"3.19.14\";\nexport const getCurrentVersion = () => moduleVersion;\nexport const setCurrentVersion = version => {\n moduleVersion = version;\n};\n//# sourceMappingURL=version.js.map","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","import { BaseError } from './base.js';\nimport { RpcRequestError } from './request.js';\nconst unknownErrorCode = -1;\nexport class RpcError extends BaseError {\n constructor(cause, { code, docsPath, metaMessages, name, shortMessage, }) {\n super(shortMessage, {\n cause,\n docsPath,\n metaMessages: metaMessages || cause?.metaMessages,\n name: name || 'RpcError',\n });\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.name = name || cause.name;\n this.code = (cause instanceof RpcRequestError ? cause.code : (code ?? unknownErrorCode));\n }\n}\nexport class ProviderRpcError extends RpcError {\n constructor(cause, options) {\n super(cause, options);\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.data = options.data;\n }\n}\nexport class ParseRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: ParseRpcError.code,\n name: 'ParseRpcError',\n shortMessage: 'Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.',\n });\n }\n}\nObject.defineProperty(ParseRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32700\n});\nexport class InvalidRequestRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: InvalidRequestRpcError.code,\n name: 'InvalidRequestRpcError',\n shortMessage: 'JSON is not a valid request object.',\n });\n }\n}\nObject.defineProperty(InvalidRequestRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32600\n});\nexport class MethodNotFoundRpcError extends RpcError {\n constructor(cause, { method } = {}) {\n super(cause, {\n code: MethodNotFoundRpcError.code,\n name: 'MethodNotFoundRpcError',\n shortMessage: `The method${method ? ` \"${method}\"` : ''} does not exist / is not available.`,\n });\n }\n}\nObject.defineProperty(MethodNotFoundRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32601\n});\nexport class InvalidParamsRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: InvalidParamsRpcError.code,\n name: 'InvalidParamsRpcError',\n shortMessage: [\n 'Invalid parameters were provided to the RPC method.',\n 'Double check you have provided the correct parameters.',\n ].join('\\n'),\n });\n }\n}\nObject.defineProperty(InvalidParamsRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32602\n});\nexport class InternalRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: InternalRpcError.code,\n name: 'InternalRpcError',\n shortMessage: 'An internal error was received.',\n });\n }\n}\nObject.defineProperty(InternalRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32603\n});\nexport class InvalidInputRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: InvalidInputRpcError.code,\n name: 'InvalidInputRpcError',\n shortMessage: [\n 'Missing or invalid parameters.',\n 'Double check you have provided the correct parameters.',\n ].join('\\n'),\n });\n }\n}\nObject.defineProperty(InvalidInputRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32000\n});\nexport class ResourceNotFoundRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: ResourceNotFoundRpcError.code,\n name: 'ResourceNotFoundRpcError',\n shortMessage: 'Requested resource not found.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ResourceNotFoundRpcError'\n });\n }\n}\nObject.defineProperty(ResourceNotFoundRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32001\n});\nexport class ResourceUnavailableRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: ResourceUnavailableRpcError.code,\n name: 'ResourceUnavailableRpcError',\n shortMessage: 'Requested resource not available.',\n });\n }\n}\nObject.defineProperty(ResourceUnavailableRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32002\n});\nexport class TransactionRejectedRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: TransactionRejectedRpcError.code,\n name: 'TransactionRejectedRpcError',\n shortMessage: 'Transaction creation failed.',\n });\n }\n}\nObject.defineProperty(TransactionRejectedRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32003\n});\nexport class MethodNotSupportedRpcError extends RpcError {\n constructor(cause, { method } = {}) {\n super(cause, {\n code: MethodNotSupportedRpcError.code,\n name: 'MethodNotSupportedRpcError',\n shortMessage: `Method${method ? ` \"${method}\"` : ''} is not supported.`,\n });\n }\n}\nObject.defineProperty(MethodNotSupportedRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32004\n});\nexport class LimitExceededRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: LimitExceededRpcError.code,\n name: 'LimitExceededRpcError',\n shortMessage: 'Request exceeds defined limit.',\n });\n }\n}\nObject.defineProperty(LimitExceededRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32005\n});\nexport class JsonRpcVersionUnsupportedError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: JsonRpcVersionUnsupportedError.code,\n name: 'JsonRpcVersionUnsupportedError',\n shortMessage: 'Version of JSON-RPC protocol is not supported.',\n });\n }\n}\nObject.defineProperty(JsonRpcVersionUnsupportedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32006\n});\nexport class UserRejectedRequestError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: UserRejectedRequestError.code,\n name: 'UserRejectedRequestError',\n shortMessage: 'User rejected the request.',\n });\n }\n}\nObject.defineProperty(UserRejectedRequestError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4001\n});\nexport class UnauthorizedProviderError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: UnauthorizedProviderError.code,\n name: 'UnauthorizedProviderError',\n shortMessage: 'The requested method and/or account has not been authorized by the user.',\n });\n }\n}\nObject.defineProperty(UnauthorizedProviderError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4100\n});\nexport class UnsupportedProviderMethodError extends ProviderRpcError {\n constructor(cause, { method } = {}) {\n super(cause, {\n code: UnsupportedProviderMethodError.code,\n name: 'UnsupportedProviderMethodError',\n shortMessage: `The Provider does not support the requested method${method ? ` \" ${method}\"` : ''}.`,\n });\n }\n}\nObject.defineProperty(UnsupportedProviderMethodError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4200\n});\nexport class ProviderDisconnectedError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: ProviderDisconnectedError.code,\n name: 'ProviderDisconnectedError',\n shortMessage: 'The Provider is disconnected from all chains.',\n });\n }\n}\nObject.defineProperty(ProviderDisconnectedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4900\n});\nexport class ChainDisconnectedError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: ChainDisconnectedError.code,\n name: 'ChainDisconnectedError',\n shortMessage: 'The Provider is not connected to the requested chain.',\n });\n }\n}\nObject.defineProperty(ChainDisconnectedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4901\n});\nexport class SwitchChainError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: SwitchChainError.code,\n name: 'SwitchChainError',\n shortMessage: 'An error occurred when attempting to switch chain.',\n });\n }\n}\nObject.defineProperty(SwitchChainError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4902\n});\nexport class UnsupportedNonOptionalCapabilityError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: UnsupportedNonOptionalCapabilityError.code,\n name: 'UnsupportedNonOptionalCapabilityError',\n shortMessage: 'This Wallet does not support a capability that was not marked as optional.',\n });\n }\n}\nObject.defineProperty(UnsupportedNonOptionalCapabilityError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 5700\n});\nexport class UnsupportedChainIdError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: UnsupportedChainIdError.code,\n name: 'UnsupportedChainIdError',\n shortMessage: 'This Wallet does not support the requested chain ID.',\n });\n }\n}\nObject.defineProperty(UnsupportedChainIdError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 5710\n});\nexport class DuplicateIdError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: DuplicateIdError.code,\n name: 'DuplicateIdError',\n shortMessage: 'There is already a bundle submitted with this ID.',\n });\n }\n}\nObject.defineProperty(DuplicateIdError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 5720\n});\nexport class UnknownBundleIdError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: UnknownBundleIdError.code,\n name: 'UnknownBundleIdError',\n shortMessage: 'This bundle id is unknown / has not been submitted',\n });\n }\n}\nObject.defineProperty(UnknownBundleIdError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 5730\n});\nexport class BundleTooLargeError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: BundleTooLargeError.code,\n name: 'BundleTooLargeError',\n shortMessage: 'The call bundle is too large for the Wallet to process.',\n });\n }\n}\nObject.defineProperty(BundleTooLargeError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 5740\n});\nexport class AtomicReadyWalletRejectedUpgradeError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: AtomicReadyWalletRejectedUpgradeError.code,\n name: 'AtomicReadyWalletRejectedUpgradeError',\n shortMessage: 'The Wallet can support atomicity after an upgrade, but the user rejected the upgrade.',\n });\n }\n}\nObject.defineProperty(AtomicReadyWalletRejectedUpgradeError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 5750\n});\nexport class AtomicityNotSupportedError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: AtomicityNotSupportedError.code,\n name: 'AtomicityNotSupportedError',\n shortMessage: 'The wallet does not support atomic execution but the request requires it.',\n });\n }\n}\nObject.defineProperty(AtomicityNotSupportedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 5760\n});\nexport class UnknownRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n name: 'UnknownRpcError',\n shortMessage: 'An unknown RPC error occurred.',\n });\n }\n}\n//# sourceMappingURL=rpc.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\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 }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","import { InvalidAddressError, } from '../errors/address.js';\nimport { InvalidBytesLengthError, } from '../errors/data.js';\nimport { AccountStateConflictError, StateAssignmentConflictError, } from '../errors/stateOverride.js';\nimport { isAddress } from './address/isAddress.js';\nimport { numberToHex } from './encoding/toHex.js';\n/** @internal */\nexport function serializeStateMapping(stateMapping) {\n if (!stateMapping || stateMapping.length === 0)\n return undefined;\n return stateMapping.reduce((acc, { slot, value }) => {\n if (slot.length !== 66)\n throw new InvalidBytesLengthError({\n size: slot.length,\n targetSize: 66,\n type: 'hex',\n });\n if (value.length !== 66)\n throw new InvalidBytesLengthError({\n size: value.length,\n targetSize: 66,\n type: 'hex',\n });\n acc[slot] = value;\n return acc;\n }, {});\n}\n/** @internal */\nexport function serializeAccountStateOverride(parameters) {\n const { balance, nonce, state, stateDiff, code } = parameters;\n const rpcAccountStateOverride = {};\n if (code !== undefined)\n rpcAccountStateOverride.code = code;\n if (balance !== undefined)\n rpcAccountStateOverride.balance = numberToHex(balance);\n if (nonce !== undefined)\n rpcAccountStateOverride.nonce = numberToHex(nonce);\n if (state !== undefined)\n rpcAccountStateOverride.state = serializeStateMapping(state);\n if (stateDiff !== undefined) {\n if (rpcAccountStateOverride.state)\n throw new StateAssignmentConflictError();\n rpcAccountStateOverride.stateDiff = serializeStateMapping(stateDiff);\n }\n return rpcAccountStateOverride;\n}\n/** @internal */\nexport function serializeStateOverride(parameters) {\n if (!parameters)\n return undefined;\n const rpcStateOverride = {};\n for (const { address, ...accountState } of parameters) {\n if (!isAddress(address, { strict: false }))\n throw new InvalidAddressError({ address });\n if (rpcStateOverride[address])\n throw new AccountStateConflictError({ address: address });\n rpcStateOverride[address] = serializeAccountStateOverride(accountState);\n }\n return rpcStateOverride;\n}\n//# sourceMappingURL=stateOverride.js.map","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","/**\n * @since 2.0.0\n */\nimport * as Equal from \"./Equal.js\";\nimport * as Dual from \"./Function.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"./Inspectable.js\";\nimport { pipeArguments } from \"./Pipeable.js\";\nconst TypeId = /*#__PURE__*/Symbol.for(\"effect/MutableRef\");\nconst MutableRefProto = {\n [TypeId]: TypeId,\n toString() {\n return format(this.toJSON());\n },\n toJSON() {\n return {\n _id: \"MutableRef\",\n current: toJSON(this.current)\n };\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const make = value => {\n const ref = Object.create(MutableRefProto);\n ref.current = value;\n return ref;\n};\n/**\n * @since 2.0.0\n * @category general\n */\nexport const compareAndSet = /*#__PURE__*/Dual.dual(3, (self, oldValue, newValue) => {\n if (Equal.equals(oldValue, self.current)) {\n self.current = newValue;\n return true;\n }\n return false;\n});\n/**\n * @since 2.0.0\n * @category numeric\n */\nexport const decrement = self => update(self, n => n - 1);\n/**\n * @since 2.0.0\n * @category numeric\n */\nexport const decrementAndGet = self => updateAndGet(self, n => n - 1);\n/**\n * @since 2.0.0\n * @category general\n */\nexport const get = self => self.current;\n/**\n * @since 2.0.0\n * @category numeric\n */\nexport const getAndDecrement = self => getAndUpdate(self, n => n - 1);\n/**\n * @since 2.0.0\n * @category numeric\n */\nexport const getAndIncrement = self => getAndUpdate(self, n => n + 1);\n/**\n * @since 2.0.0\n * @category general\n */\nexport const getAndSet = /*#__PURE__*/Dual.dual(2, (self, value) => {\n const ret = self.current;\n self.current = value;\n return ret;\n});\n/**\n * @since 2.0.0\n * @category general\n */\nexport const getAndUpdate = /*#__PURE__*/Dual.dual(2, (self, f) => getAndSet(self, f(get(self))));\n/**\n * @since 2.0.0\n * @category numeric\n */\nexport const increment = self => update(self, n => n + 1);\n/**\n * @since 2.0.0\n * @category numeric\n */\nexport const incrementAndGet = self => updateAndGet(self, n => n + 1);\n/**\n * @since 2.0.0\n * @category general\n */\nexport const set = /*#__PURE__*/Dual.dual(2, (self, value) => {\n self.current = value;\n return self;\n});\n/**\n * @since 2.0.0\n * @category general\n */\nexport const setAndGet = /*#__PURE__*/Dual.dual(2, (self, value) => {\n self.current = value;\n return self.current;\n});\n/**\n * @since 2.0.0\n * @category general\n */\nexport const update = /*#__PURE__*/Dual.dual(2, (self, f) => set(self, f(get(self))));\n/**\n * @since 2.0.0\n * @category general\n */\nexport const updateAndGet = /*#__PURE__*/Dual.dual(2, (self, f) => setAndGet(self, f(get(self))));\n/**\n * @since 2.0.0\n * @category boolean\n */\nexport const toggle = self => update(self, _ => !_);\n//# sourceMappingURL=MutableRef.js.map","import { formatGwei } from '../utils/unit/formatGwei.js';\nimport { BaseError } from './base.js';\nexport class ExecutionRevertedError extends BaseError {\n constructor({ cause, message, } = {}) {\n const reason = message\n ?.replace('execution reverted: ', '')\n ?.replace('execution reverted', '');\n super(`Execution reverted ${reason ? `with reason: ${reason}` : 'for an unknown reason'}.`, {\n cause,\n name: 'ExecutionRevertedError',\n });\n }\n}\nObject.defineProperty(ExecutionRevertedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 3\n});\nObject.defineProperty(ExecutionRevertedError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /execution reverted|gas required exceeds allowance/\n});\nexport class FeeCapTooHighError extends BaseError {\n constructor({ cause, maxFeePerGas, } = {}) {\n super(`The fee cap (\\`maxFeePerGas\\`${maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)} gwei` : ''}) cannot be higher than the maximum allowed value (2^256-1).`, {\n cause,\n name: 'FeeCapTooHighError',\n });\n }\n}\nObject.defineProperty(FeeCapTooHighError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /max fee per gas higher than 2\\^256-1|fee cap higher than 2\\^256-1/\n});\nexport class FeeCapTooLowError extends BaseError {\n constructor({ cause, maxFeePerGas, } = {}) {\n super(`The fee cap (\\`maxFeePerGas\\`${maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)}` : ''} gwei) cannot be lower than the block base fee.`, {\n cause,\n name: 'FeeCapTooLowError',\n });\n }\n}\nObject.defineProperty(FeeCapTooLowError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/\n});\nexport class NonceTooHighError extends BaseError {\n constructor({ cause, nonce, } = {}) {\n super(`Nonce provided for the transaction ${nonce ? `(${nonce}) ` : ''}is higher than the next one expected.`, { cause, name: 'NonceTooHighError' });\n }\n}\nObject.defineProperty(NonceTooHighError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /nonce too high/\n});\nexport class NonceTooLowError extends BaseError {\n constructor({ cause, nonce, } = {}) {\n super([\n `Nonce provided for the transaction ${nonce ? `(${nonce}) ` : ''}is lower than the current nonce of the account.`,\n 'Try increasing the nonce or find the latest nonce with `getTransactionCount`.',\n ].join('\\n'), { cause, name: 'NonceTooLowError' });\n }\n}\nObject.defineProperty(NonceTooLowError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /nonce too low|transaction already imported|already known/\n});\nexport class NonceMaxValueError extends BaseError {\n constructor({ cause, nonce, } = {}) {\n super(`Nonce provided for the transaction ${nonce ? `(${nonce}) ` : ''}exceeds the maximum allowed nonce.`, { cause, name: 'NonceMaxValueError' });\n }\n}\nObject.defineProperty(NonceMaxValueError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /nonce has max value/\n});\nexport class InsufficientFundsError extends BaseError {\n constructor({ cause } = {}) {\n super([\n 'The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account.',\n ].join('\\n'), {\n cause,\n metaMessages: [\n 'This error could arise when the account does not have enough funds to:',\n ' - pay for the total gas fee,',\n ' - pay for the value to send.',\n ' ',\n 'The cost of the transaction is calculated as `gas * gas fee + value`, where:',\n ' - `gas` is the amount of gas needed for transaction to execute,',\n ' - `gas fee` is the gas fee,',\n ' - `value` is the amount of ether to send to the recipient.',\n ],\n name: 'InsufficientFundsError',\n });\n }\n}\nObject.defineProperty(InsufficientFundsError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /insufficient funds|exceeds transaction sender account balance/\n});\nexport class IntrinsicGasTooHighError extends BaseError {\n constructor({ cause, gas, } = {}) {\n super(`The amount of gas ${gas ? `(${gas}) ` : ''}provided for the transaction exceeds the limit allowed for the block.`, {\n cause,\n name: 'IntrinsicGasTooHighError',\n });\n }\n}\nObject.defineProperty(IntrinsicGasTooHighError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /intrinsic gas too high|gas limit reached/\n});\nexport class IntrinsicGasTooLowError extends BaseError {\n constructor({ cause, gas, } = {}) {\n super(`The amount of gas ${gas ? `(${gas}) ` : ''}provided for the transaction is too low.`, {\n cause,\n name: 'IntrinsicGasTooLowError',\n });\n }\n}\nObject.defineProperty(IntrinsicGasTooLowError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /intrinsic gas too low/\n});\nexport class TransactionTypeNotSupportedError extends BaseError {\n constructor({ cause }) {\n super('The transaction type is not supported for this chain.', {\n cause,\n name: 'TransactionTypeNotSupportedError',\n });\n }\n}\nObject.defineProperty(TransactionTypeNotSupportedError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /transaction type not valid/\n});\nexport class TipAboveFeeCapError extends BaseError {\n constructor({ cause, maxPriorityFeePerGas, maxFeePerGas, } = {}) {\n super([\n `The provided tip (\\`maxPriorityFeePerGas\\`${maxPriorityFeePerGas\n ? ` = ${formatGwei(maxPriorityFeePerGas)} gwei`\n : ''}) cannot be higher than the fee cap (\\`maxFeePerGas\\`${maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)} gwei` : ''}).`,\n ].join('\\n'), {\n cause,\n name: 'TipAboveFeeCapError',\n });\n }\n}\nObject.defineProperty(TipAboveFeeCapError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /max priority fee per gas higher than max fee per gas|tip higher than fee cap/\n});\nexport class UnknownNodeError extends BaseError {\n constructor({ cause }) {\n super(`An error occurred while executing: ${cause?.shortMessage}`, {\n cause,\n name: 'UnknownNodeError',\n });\n }\n}\n//# sourceMappingURL=node.js.map","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\n/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits');\nvar Sha256 = require('./sha256');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar W = new Array(64);\n\nfunction Sha224() {\n\tthis.init();\n\n\tthis._w = W; // new Array(64)\n\n\tHash.call(this, 64, 56);\n}\n\ninherits(Sha224, Sha256);\n\nSha224.prototype.init = function () {\n\tthis._a = 0xc1059ed8;\n\tthis._b = 0x367cd507;\n\tthis._c = 0x3070dd17;\n\tthis._d = 0xf70e5939;\n\tthis._e = 0xffc00b31;\n\tthis._f = 0x68581511;\n\tthis._g = 0x64f98fa7;\n\tthis._h = 0xbefa4fa4;\n\n\treturn this;\n};\n\nSha224.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(28);\n\n\tH.writeInt32BE(this._a, 0);\n\tH.writeInt32BE(this._b, 4);\n\tH.writeInt32BE(this._c, 8);\n\tH.writeInt32BE(this._d, 12);\n\tH.writeInt32BE(this._e, 16);\n\tH.writeInt32BE(this._f, 20);\n\tH.writeInt32BE(this._g, 24);\n\n\treturn H;\n};\n\nmodule.exports = Sha224;\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports[\"default\"]=void 0;var RHO_OFFSETS=[1,3,6,10,15,21,28,36,45,55,2,14,27,41,56,8,25,43,62,18,39,61,20,44];var _default=RHO_OFFSETS;exports[\"default\"]=_default;","import { dual, pipe } from \"./Function.js\";\nimport * as core from \"./internal/core.js\";\nimport * as number from \"./Number.js\";\nimport * as order from \"./Order.js\";\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const All = core.logLevelAll;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const Fatal = core.logLevelFatal;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const Error = core.logLevelError;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const Warning = core.logLevelWarning;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const Info = core.logLevelInfo;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const Debug = core.logLevelDebug;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const Trace = core.logLevelTrace;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const None = core.logLevelNone;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const allLevels = core.allLogLevels;\n/**\n * Temporarily sets a `LogLevel` for an `Effect` workflow.\n *\n * **Details**\n *\n * This function allows you to apply a specific `LogLevel` locally to an\n * `Effect` workflow. Once the workflow completes, the `LogLevel` reverts to its\n * previous state.\n *\n * **When to Use**\n *\n * This is particularly useful when you want to adjust the verbosity of logging\n * for specific parts of your program without affecting the global log level.\n *\n * @example\n * ```ts\n * import { Effect, LogLevel } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Effect.log(\"message1\")\n * yield* Effect.gen(function*() {\n * yield* Effect.log(\"message2\")\n * yield* Effect.log(\"message3\")\n * }).pipe(LogLevel.locally(LogLevel.Warning))\n * })\n *\n * Effect.runFork(program)\n * // timestamp=... level=INFO fiber=#0 message=message1\n * // timestamp=... level=WARN fiber=#0 message=message2\n * // timestamp=... level=WARN fiber=#0 message=message3\n * ```\n *\n * @since 2.0.0\n * @category utils\n */\nexport const locally = /*#__PURE__*/dual(2, (use, self) => core.fiberRefLocally(use, core.currentLogLevel, self));\n/**\n * @since 2.0.0\n * @category instances\n */\nexport const Order = /*#__PURE__*/pipe(number.Order, /*#__PURE__*/order.mapInput(level => level.ordinal));\n/**\n * @since 2.0.0\n * @category ordering\n */\nexport const lessThan = /*#__PURE__*/order.lessThan(Order);\n/**\n * @since 2.0.0\n * @category ordering\n */\nexport const lessThanEqual = /*#__PURE__*/order.lessThanOrEqualTo(Order);\n/**\n * @since 2.0.0\n * @category ordering\n */\nexport const greaterThan = /*#__PURE__*/order.greaterThan(Order);\n/**\n * @since 2.0.0\n * @category ordering\n */\nexport const greaterThanEqual = /*#__PURE__*/order.greaterThanOrEqualTo(Order);\n/**\n * @since 2.0.0\n * @category conversions\n */\nexport const fromLiteral = literal => {\n switch (literal) {\n case \"All\":\n return All;\n case \"Debug\":\n return Debug;\n case \"Error\":\n return Error;\n case \"Fatal\":\n return Fatal;\n case \"Info\":\n return Info;\n case \"Trace\":\n return Trace;\n case \"None\":\n return None;\n case \"Warning\":\n return Warning;\n }\n};\n//# sourceMappingURL=LogLevel.js.map","const EC = require('elliptic').ec\n\nconst ec = new EC('secp256k1')\nconst ecparams = ec.curve\n\n// Hack, we can not use bn.js@5, while elliptic uses bn.js@4\n// See https://github.com/indutny/elliptic/issues/191#issuecomment-569888758\nconst BN = ecparams.n.constructor\n\nfunction loadCompressedPublicKey (first, xbuf) {\n let x = new BN(xbuf)\n\n // overflow\n if (x.cmp(ecparams.p) >= 0) return null\n x = x.toRed(ecparams.red)\n\n // compute corresponding Y\n let y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()\n if ((first === 0x03) !== y.isOdd()) y = y.redNeg()\n\n // x*x*x + b = y*y\n const x3 = x.redSqr().redIMul(x)\n if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null\n\n return ec.keyPair({ pub: { x: x, y: y } })\n}\n\nfunction loadUncompressedPublicKey (first, xbuf, ybuf) {\n let x = new BN(xbuf)\n let y = new BN(ybuf)\n\n // overflow\n if (x.cmp(ecparams.p) >= 0 || y.cmp(ecparams.p) >= 0) return null\n\n x = x.toRed(ecparams.red)\n y = y.toRed(ecparams.red)\n\n // is odd flag\n if ((first === 0x06 || first === 0x07) && y.isOdd() !== (first === 0x07)) return null\n\n // x*x*x + b = y*y\n const x3 = x.redSqr().redIMul(x)\n if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null\n\n return ec.keyPair({ pub: { x: x, y: y } })\n}\n\nfunction loadPublicKey (pubkey) {\n // length should be validated in interface\n const first = pubkey[0]\n switch (first) {\n case 0x02:\n case 0x03:\n if (pubkey.length !== 33) return null\n return loadCompressedPublicKey(first, pubkey.subarray(1, 33))\n case 0x04:\n case 0x06:\n case 0x07:\n if (pubkey.length !== 65) return null\n return loadUncompressedPublicKey(first, pubkey.subarray(1, 33), pubkey.subarray(33, 65))\n default:\n return null\n }\n}\n\nfunction savePublicKey (output, point) {\n const pubkey = point.encode(null, output.length === 33)\n // Loop should be faster because we do not need create extra Uint8Array\n // output.set(new Uint8Array(pubkey))\n for (let i = 0; i < output.length; ++i) output[i] = pubkey[i]\n}\n\nmodule.exports = {\n contextRandomize () {\n return 0\n },\n\n privateKeyVerify (seckey) {\n const bn = new BN(seckey)\n return bn.cmp(ecparams.n) < 0 && !bn.isZero() ? 0 : 1\n },\n\n privateKeyNegate (seckey) {\n const bn = new BN(seckey)\n const negate = ecparams.n.sub(bn).umod(ecparams.n).toArrayLike(Uint8Array, 'be', 32)\n seckey.set(negate)\n return 0\n },\n\n privateKeyTweakAdd (seckey, tweak) {\n const bn = new BN(tweak)\n if (bn.cmp(ecparams.n) >= 0) return 1\n\n bn.iadd(new BN(seckey))\n if (bn.cmp(ecparams.n) >= 0) bn.isub(ecparams.n)\n if (bn.isZero()) return 1\n\n const tweaked = bn.toArrayLike(Uint8Array, 'be', 32)\n seckey.set(tweaked)\n\n return 0\n },\n\n privateKeyTweakMul (seckey, tweak) {\n let bn = new BN(tweak)\n if (bn.cmp(ecparams.n) >= 0 || bn.isZero()) return 1\n\n bn.imul(new BN(seckey))\n if (bn.cmp(ecparams.n) >= 0) bn = bn.umod(ecparams.n)\n\n const tweaked = bn.toArrayLike(Uint8Array, 'be', 32)\n seckey.set(tweaked)\n\n return 0\n },\n\n publicKeyVerify (pubkey) {\n const pair = loadPublicKey(pubkey)\n return pair === null ? 1 : 0\n },\n\n publicKeyCreate (output, seckey) {\n const bn = new BN(seckey)\n if (bn.cmp(ecparams.n) >= 0 || bn.isZero()) return 1\n\n const point = ec.keyFromPrivate(seckey).getPublic()\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyConvert (output, pubkey) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n const point = pair.getPublic()\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyNegate (output, pubkey) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n const point = pair.getPublic()\n point.y = point.y.redNeg()\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyCombine (output, pubkeys) {\n const pairs = new Array(pubkeys.length)\n for (let i = 0; i < pubkeys.length; ++i) {\n pairs[i] = loadPublicKey(pubkeys[i])\n if (pairs[i] === null) return 1\n }\n\n let point = pairs[0].getPublic()\n for (let i = 1; i < pairs.length; ++i) point = point.add(pairs[i].pub)\n if (point.isInfinity()) return 2\n\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyTweakAdd (output, pubkey, tweak) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n tweak = new BN(tweak)\n if (tweak.cmp(ecparams.n) >= 0) return 2\n\n const point = pair.getPublic().add(ecparams.g.mul(tweak))\n if (point.isInfinity()) return 2\n\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyTweakMul (output, pubkey, tweak) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n tweak = new BN(tweak)\n if (tweak.cmp(ecparams.n) >= 0 || tweak.isZero()) return 2\n\n const point = pair.getPublic().mul(tweak)\n savePublicKey(output, point)\n\n return 0\n },\n\n signatureNormalize (sig) {\n const r = new BN(sig.subarray(0, 32))\n const s = new BN(sig.subarray(32, 64))\n if (r.cmp(ecparams.n) >= 0 || s.cmp(ecparams.n) >= 0) return 1\n\n if (s.cmp(ec.nh) === 1) {\n sig.set(ecparams.n.sub(s).toArrayLike(Uint8Array, 'be', 32), 32)\n }\n\n return 0\n },\n\n // Copied 1-to-1 from https://github.com/bitcoinjs/bip66/blob/master/index.js\n // Adapted for Uint8Array instead Buffer\n signatureExport (obj, sig) {\n const sigR = sig.subarray(0, 32)\n const sigS = sig.subarray(32, 64)\n if (new BN(sigR).cmp(ecparams.n) >= 0) return 1\n if (new BN(sigS).cmp(ecparams.n) >= 0) return 1\n\n const { output } = obj\n\n // Prepare R\n let r = output.subarray(4, 4 + 33)\n r[0] = 0x00\n r.set(sigR, 1)\n\n let lenR = 33\n let posR = 0\n for (; lenR > 1 && r[posR] === 0x00 && !(r[posR + 1] & 0x80); --lenR, ++posR);\n\n r = r.subarray(posR)\n if (r[0] & 0x80) return 1\n if (lenR > 1 && (r[0] === 0x00) && !(r[1] & 0x80)) return 1\n\n // Prepare S\n let s = output.subarray(6 + 33, 6 + 33 + 33)\n s[0] = 0x00\n s.set(sigS, 1)\n\n let lenS = 33\n let posS = 0\n for (; lenS > 1 && s[posS] === 0x00 && !(s[posS + 1] & 0x80); --lenS, ++posS);\n\n s = s.subarray(posS)\n if (s[0] & 0x80) return 1\n if (lenS > 1 && (s[0] === 0x00) && !(s[1] & 0x80)) return 1\n\n // Set output length for return\n obj.outputlen = 6 + lenR + lenS\n\n // Output in specified format\n // 0x30 [total-length] 0x02 [R-length] [R] 0x02 [S-length] [S]\n output[0] = 0x30\n output[1] = obj.outputlen - 2\n output[2] = 0x02\n output[3] = r.length\n output.set(r, 4)\n output[4 + lenR] = 0x02\n output[5 + lenR] = s.length\n output.set(s, 6 + lenR)\n\n return 0\n },\n\n // Copied 1-to-1 from https://github.com/bitcoinjs/bip66/blob/master/index.js\n // Adapted for Uint8Array instead Buffer\n signatureImport (output, sig) {\n if (sig.length < 8) return 1\n if (sig.length > 72) return 1\n if (sig[0] !== 0x30) return 1\n if (sig[1] !== sig.length - 2) return 1\n if (sig[2] !== 0x02) return 1\n\n const lenR = sig[3]\n if (lenR === 0) return 1\n if (5 + lenR >= sig.length) return 1\n if (sig[4 + lenR] !== 0x02) return 1\n\n const lenS = sig[5 + lenR]\n if (lenS === 0) return 1\n if ((6 + lenR + lenS) !== sig.length) return 1\n\n if (sig[4] & 0x80) return 1\n if (lenR > 1 && (sig[4] === 0x00) && !(sig[5] & 0x80)) return 1\n\n if (sig[lenR + 6] & 0x80) return 1\n if (lenS > 1 && (sig[lenR + 6] === 0x00) && !(sig[lenR + 7] & 0x80)) return 1\n\n let sigR = sig.subarray(4, 4 + lenR)\n if (sigR.length === 33 && sigR[0] === 0x00) sigR = sigR.subarray(1)\n if (sigR.length > 32) return 1\n\n let sigS = sig.subarray(6 + lenR)\n if (sigS.length === 33 && sigS[0] === 0x00) sigS = sigS.slice(1)\n if (sigS.length > 32) throw new Error('S length is too long')\n\n let r = new BN(sigR)\n if (r.cmp(ecparams.n) >= 0) r = new BN(0)\n\n let s = new BN(sig.subarray(6 + lenR))\n if (s.cmp(ecparams.n) >= 0) s = new BN(0)\n\n output.set(r.toArrayLike(Uint8Array, 'be', 32), 0)\n output.set(s.toArrayLike(Uint8Array, 'be', 32), 32)\n\n return 0\n },\n\n ecdsaSign (obj, message, seckey, data, noncefn) {\n if (noncefn) {\n const _noncefn = noncefn\n noncefn = (counter) => {\n const nonce = _noncefn(message, seckey, null, data, counter)\n\n const isValid = nonce instanceof Uint8Array && nonce.length === 32\n if (!isValid) throw new Error('This is the way')\n\n return new BN(nonce)\n }\n }\n\n const d = new BN(seckey)\n if (d.cmp(ecparams.n) >= 0 || d.isZero()) return 1\n\n let sig\n try {\n sig = ec.sign(message, seckey, { canonical: true, k: noncefn, pers: data })\n } catch (err) {\n return 1\n }\n\n obj.signature.set(sig.r.toArrayLike(Uint8Array, 'be', 32), 0)\n obj.signature.set(sig.s.toArrayLike(Uint8Array, 'be', 32), 32)\n obj.recid = sig.recoveryParam\n\n return 0\n },\n\n ecdsaVerify (sig, msg32, pubkey) {\n const sigObj = { r: sig.subarray(0, 32), s: sig.subarray(32, 64) }\n\n const sigr = new BN(sigObj.r)\n const sigs = new BN(sigObj.s)\n if (sigr.cmp(ecparams.n) >= 0 || sigs.cmp(ecparams.n) >= 0) return 1\n if (sigs.cmp(ec.nh) === 1 || sigr.isZero() || sigs.isZero()) return 3\n\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 2\n\n const point = pair.getPublic()\n const isValid = ec.verify(msg32, sigObj, point)\n return isValid ? 0 : 3\n },\n\n ecdsaRecover (output, sig, recid, msg32) {\n const sigObj = { r: sig.slice(0, 32), s: sig.slice(32, 64) }\n\n const sigr = new BN(sigObj.r)\n const sigs = new BN(sigObj.s)\n if (sigr.cmp(ecparams.n) >= 0 || sigs.cmp(ecparams.n) >= 0) return 1\n\n if (sigr.isZero() || sigs.isZero()) return 2\n\n // Can throw `throw new Error('Unable to find sencond key candinate');`\n let point\n try {\n point = ec.recoverPubKey(msg32, sigObj, recid)\n } catch (err) {\n return 2\n }\n\n savePublicKey(output, point)\n\n return 0\n },\n\n ecdh (output, pubkey, seckey, data, hashfn, xbuf, ybuf) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n const scalar = new BN(seckey)\n if (scalar.cmp(ecparams.n) >= 0 || scalar.isZero()) return 2\n\n const point = pair.getPublic().mul(scalar)\n\n if (hashfn === undefined) {\n const data = point.encode(null, true)\n const sha256 = ec.hash().update(data).digest()\n for (let i = 0; i < 32; ++i) output[i] = sha256[i]\n } else {\n if (!xbuf) xbuf = new Uint8Array(32)\n const x = point.getX().toArray('be', 32)\n for (let i = 0; i < 32; ++i) xbuf[i] = x[i]\n\n if (!ybuf) ybuf = new Uint8Array(32)\n const y = point.getY().toArray('be', 32)\n for (let i = 0; i < 32; ++i) ybuf[i] = y[i]\n\n const hash = hashfn(xbuf, ybuf, data)\n\n const isValid = hash instanceof Uint8Array && hash.length === output.length\n if (!isValid) return 2\n\n output.set(hash)\n }\n\n return 0\n }\n}\n","export function formatLog(log, { args, eventName, } = {}) {\n return {\n ...log,\n blockHash: log.blockHash ? log.blockHash : null,\n blockNumber: log.blockNumber ? BigInt(log.blockNumber) : null,\n blockTimestamp: log.blockTimestamp\n ? BigInt(log.blockTimestamp)\n : log.blockTimestamp === null\n ? null\n : undefined,\n logIndex: log.logIndex ? Number(log.logIndex) : null,\n transactionHash: log.transactionHash ? log.transactionHash : null,\n transactionIndex: log.transactionIndex\n ? Number(log.transactionIndex)\n : null,\n ...(eventName ? { args, eventName } : {}),\n };\n}\n//# sourceMappingURL=log.js.map","import { checksumAddress, } from '../../utils/address/getAddress.js';\nimport { keccak256, } from '../../utils/hash/keccak256.js';\n/**\n * @description Converts an ECDSA public key to an address.\n *\n * @param publicKey The public key to convert.\n *\n * @returns The address.\n */\nexport function publicKeyToAddress(publicKey) {\n const address = keccak256(`0x${publicKey.substring(4)}`).substring(26);\n return checksumAddress(`0x${address}`);\n}\n//# sourceMappingURL=publicKeyToAddress.js.map","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","import { hexToNumber, } from '../../utils/encoding/fromHex.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Returns the number of [Transactions](https://viem.sh/docs/glossary/terms#transaction) an Account has sent.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionCount\n * - JSON-RPC Methods: [`eth_getTransactionCount`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactioncount)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionCountParameters}\n * @returns The number of transactions an account has sent. {@link GetTransactionCountReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransactionCount } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const transactionCount = await getTransactionCount(client, {\n * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function getTransactionCount(client, { address, blockTag = 'latest', blockNumber }) {\n const count = await client.request({\n method: 'eth_getTransactionCount',\n params: [\n address,\n typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : blockTag,\n ],\n }, {\n dedupe: Boolean(blockNumber),\n });\n return hexToNumber(count);\n}\n//# sourceMappingURL=getTransactionCount.js.map","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","import { Schema } from 'effect';\n// parse takes an effect Schema object and parses an unknown value into that schema, if parsing fails an error is thrown\n// only fields specified in the schema will be present in the parsed object.\nexport function parse(schema, obj, options) {\n return Schema.decodeUnknownSync(schema)(obj, options);\n}\n// parseJson takes an effect Schema object and parses a JSON string into that schema, if parsing fails an error is thrown\n// only fields specified in the schema will be present in the parsed object.\nexport function parseJson(schema, json, options) {\n if (typeof json !== 'string') {\n json = json.toString();\n }\n return Schema.decodeUnknownSync(Schema.parseJson(schema))(json, options);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBR2hDLHdIQUF3SDtBQUN4SCw0RUFBNEU7QUFDNUUsTUFBTSxVQUFVLEtBQUssQ0FDbkIsTUFBMkIsRUFDM0IsR0FBWSxFQUNaLE9BQXNCO0lBRXRCLE9BQU8sTUFBTSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQseUhBQXlIO0FBQ3pILDRFQUE0RTtBQUM1RSxNQUFNLFVBQVUsU0FBUyxDQUN2QixNQUEyQixFQUMzQixJQUF5QixFQUN6QixPQUFzQjtJQUV0QixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDM0UsQ0FBQyJ9","/**\n * @since 2.0.0\n */\nimport * as Equal from \"../Equal.js\";\nimport * as Hash from \"../Hash.js\";\nimport { format, NodeInspectSymbol, toJSON } from \"../Inspectable.js\";\nimport { hasProperty } from \"../Predicate.js\";\nimport { EffectPrototype } from \"./effectable.js\";\nconst TypeId = /*#__PURE__*/Symbol.for(\"effect/Option\");\nconst CommonProto = {\n ...EffectPrototype,\n [TypeId]: {\n _A: _ => _\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n toString() {\n return format(this.toJSON());\n }\n};\nconst SomeProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(CommonProto), {\n _tag: \"Some\",\n _op: \"Some\",\n [Equal.symbol](that) {\n return isOption(that) && isSome(that) && Equal.equals(this.value, that.value);\n },\n [Hash.symbol]() {\n return Hash.cached(this, Hash.combine(Hash.hash(this._tag))(Hash.hash(this.value)));\n },\n toJSON() {\n return {\n _id: \"Option\",\n _tag: this._tag,\n value: toJSON(this.value)\n };\n }\n});\nconst NoneHash = /*#__PURE__*/Hash.hash(\"None\");\nconst NoneProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(CommonProto), {\n _tag: \"None\",\n _op: \"None\",\n [Equal.symbol](that) {\n return isOption(that) && isNone(that);\n },\n [Hash.symbol]() {\n return NoneHash;\n },\n toJSON() {\n return {\n _id: \"Option\",\n _tag: this._tag\n };\n }\n});\n/** @internal */\nexport const isOption = input => hasProperty(input, TypeId);\n/** @internal */\nexport const isNone = fa => fa._tag === \"None\";\n/** @internal */\nexport const isSome = fa => fa._tag === \"Some\";\n/** @internal */\nexport const none = /*#__PURE__*/Object.create(NoneProto);\n/** @internal */\nexport const some = value => {\n const a = Object.create(SomeProto);\n a.value = value;\n return a;\n};\n//# sourceMappingURL=option.js.map","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\nvar bind = require('function-bind');\nvar $apply = require('./functionApply');\nvar actualApply = require('./actualApply');\n\n/** @type {import('./applyBind')} */\nmodule.exports = function applyBind() {\n\treturn actualApply(bind, $apply, arguments);\n};\n","import { SliceOffsetOutOfBoundsError, } from '../../errors/data.js';\nimport { isHex } from './isHex.js';\nimport { size } from './size.js';\n/**\n * @description Returns a section of the hex or byte array given a start/end bytes offset.\n *\n * @param value The hex or byte array to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function slice(value, start, end, { strict } = {}) {\n if (isHex(value, { strict: false }))\n return sliceHex(value, start, end, {\n strict,\n });\n return sliceBytes(value, start, end, {\n strict,\n });\n}\nfunction assertStartOffset(value, start) {\n if (typeof start === 'number' && start > 0 && start > size(value) - 1)\n throw new SliceOffsetOutOfBoundsError({\n offset: start,\n position: 'start',\n size: size(value),\n });\n}\nfunction assertEndOffset(value, start, end) {\n if (typeof start === 'number' &&\n typeof end === 'number' &&\n size(value) !== end - start) {\n throw new SliceOffsetOutOfBoundsError({\n offset: end,\n position: 'end',\n size: size(value),\n });\n }\n}\n/**\n * @description Returns a section of the byte array given a start/end bytes offset.\n *\n * @param value The byte array to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function sliceBytes(value_, start, end, { strict } = {}) {\n assertStartOffset(value_, start);\n const value = value_.slice(start, end);\n if (strict)\n assertEndOffset(value, start, end);\n return value;\n}\n/**\n * @description Returns a section of the hex value given a start/end bytes offset.\n *\n * @param value The hex value to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function sliceHex(value_, start, end, { strict } = {}) {\n assertStartOffset(value_, start);\n const value = `0x${value_\n .replace('0x', '')\n .slice((start ?? 0) * 2, (end ?? value_.length) * 2)}`;\n if (strict)\n assertEndOffset(value, start, end);\n return value;\n}\n//# sourceMappingURL=slice.js.map","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\nvar inherits = require('inherits');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [\n\t0x428a2f98,\n\t0xd728ae22,\n\t0x71374491,\n\t0x23ef65cd,\n\t0xb5c0fbcf,\n\t0xec4d3b2f,\n\t0xe9b5dba5,\n\t0x8189dbbc,\n\t0x3956c25b,\n\t0xf348b538,\n\t0x59f111f1,\n\t0xb605d019,\n\t0x923f82a4,\n\t0xaf194f9b,\n\t0xab1c5ed5,\n\t0xda6d8118,\n\t0xd807aa98,\n\t0xa3030242,\n\t0x12835b01,\n\t0x45706fbe,\n\t0x243185be,\n\t0x4ee4b28c,\n\t0x550c7dc3,\n\t0xd5ffb4e2,\n\t0x72be5d74,\n\t0xf27b896f,\n\t0x80deb1fe,\n\t0x3b1696b1,\n\t0x9bdc06a7,\n\t0x25c71235,\n\t0xc19bf174,\n\t0xcf692694,\n\t0xe49b69c1,\n\t0x9ef14ad2,\n\t0xefbe4786,\n\t0x384f25e3,\n\t0x0fc19dc6,\n\t0x8b8cd5b5,\n\t0x240ca1cc,\n\t0x77ac9c65,\n\t0x2de92c6f,\n\t0x592b0275,\n\t0x4a7484aa,\n\t0x6ea6e483,\n\t0x5cb0a9dc,\n\t0xbd41fbd4,\n\t0x76f988da,\n\t0x831153b5,\n\t0x983e5152,\n\t0xee66dfab,\n\t0xa831c66d,\n\t0x2db43210,\n\t0xb00327c8,\n\t0x98fb213f,\n\t0xbf597fc7,\n\t0xbeef0ee4,\n\t0xc6e00bf3,\n\t0x3da88fc2,\n\t0xd5a79147,\n\t0x930aa725,\n\t0x06ca6351,\n\t0xe003826f,\n\t0x14292967,\n\t0x0a0e6e70,\n\t0x27b70a85,\n\t0x46d22ffc,\n\t0x2e1b2138,\n\t0x5c26c926,\n\t0x4d2c6dfc,\n\t0x5ac42aed,\n\t0x53380d13,\n\t0x9d95b3df,\n\t0x650a7354,\n\t0x8baf63de,\n\t0x766a0abb,\n\t0x3c77b2a8,\n\t0x81c2c92e,\n\t0x47edaee6,\n\t0x92722c85,\n\t0x1482353b,\n\t0xa2bfe8a1,\n\t0x4cf10364,\n\t0xa81a664b,\n\t0xbc423001,\n\t0xc24b8b70,\n\t0xd0f89791,\n\t0xc76c51a3,\n\t0x0654be30,\n\t0xd192e819,\n\t0xd6ef5218,\n\t0xd6990624,\n\t0x5565a910,\n\t0xf40e3585,\n\t0x5771202a,\n\t0x106aa070,\n\t0x32bbd1b8,\n\t0x19a4c116,\n\t0xb8d2d0c8,\n\t0x1e376c08,\n\t0x5141ab53,\n\t0x2748774c,\n\t0xdf8eeb99,\n\t0x34b0bcb5,\n\t0xe19b48a8,\n\t0x391c0cb3,\n\t0xc5c95a63,\n\t0x4ed8aa4a,\n\t0xe3418acb,\n\t0x5b9cca4f,\n\t0x7763e373,\n\t0x682e6ff3,\n\t0xd6b2b8a3,\n\t0x748f82ee,\n\t0x5defb2fc,\n\t0x78a5636f,\n\t0x43172f60,\n\t0x84c87814,\n\t0xa1f0ab72,\n\t0x8cc70208,\n\t0x1a6439ec,\n\t0x90befffa,\n\t0x23631e28,\n\t0xa4506ceb,\n\t0xde82bde9,\n\t0xbef9a3f7,\n\t0xb2c67915,\n\t0xc67178f2,\n\t0xe372532b,\n\t0xca273ece,\n\t0xea26619c,\n\t0xd186b8c7,\n\t0x21c0c207,\n\t0xeada7dd6,\n\t0xcde0eb1e,\n\t0xf57d4f7f,\n\t0xee6ed178,\n\t0x06f067aa,\n\t0x72176fba,\n\t0x0a637dc5,\n\t0xa2c898a6,\n\t0x113f9804,\n\t0xbef90dae,\n\t0x1b710b35,\n\t0x131c471b,\n\t0x28db77f5,\n\t0x23047d84,\n\t0x32caab7b,\n\t0x40c72493,\n\t0x3c9ebe0a,\n\t0x15c9bebc,\n\t0x431d67c4,\n\t0x9c100d4c,\n\t0x4cc5d4be,\n\t0xcb3e42b6,\n\t0x597f299c,\n\t0xfc657e2a,\n\t0x5fcb6fab,\n\t0x3ad6faec,\n\t0x6c44198c,\n\t0x4a475817\n];\n\nvar W = new Array(160);\n\nfunction Sha512() {\n\tthis.init();\n\tthis._w = W;\n\n\tHash.call(this, 128, 112);\n}\n\ninherits(Sha512, Hash);\n\nSha512.prototype.init = function () {\n\tthis._ah = 0x6a09e667;\n\tthis._bh = 0xbb67ae85;\n\tthis._ch = 0x3c6ef372;\n\tthis._dh = 0xa54ff53a;\n\tthis._eh = 0x510e527f;\n\tthis._fh = 0x9b05688c;\n\tthis._gh = 0x1f83d9ab;\n\tthis._hh = 0x5be0cd19;\n\n\tthis._al = 0xf3bcc908;\n\tthis._bl = 0x84caa73b;\n\tthis._cl = 0xfe94f82b;\n\tthis._dl = 0x5f1d36f1;\n\tthis._el = 0xade682d1;\n\tthis._fl = 0x2b3e6c1f;\n\tthis._gl = 0xfb41bd6b;\n\tthis._hl = 0x137e2179;\n\n\treturn this;\n};\n\nfunction Ch(x, y, z) {\n\treturn z ^ (x & (y ^ z));\n}\n\nfunction maj(x, y, z) {\n\treturn (x & y) | (z & (x | y));\n}\n\nfunction sigma0(x, xl) {\n\treturn ((x >>> 28) | (xl << 4)) ^ ((xl >>> 2) | (x << 30)) ^ ((xl >>> 7) | (x << 25));\n}\n\nfunction sigma1(x, xl) {\n\treturn ((x >>> 14) | (xl << 18)) ^ ((x >>> 18) | (xl << 14)) ^ ((xl >>> 9) | (x << 23));\n}\n\nfunction Gamma0(x, xl) {\n\treturn ((x >>> 1) | (xl << 31)) ^ ((x >>> 8) | (xl << 24)) ^ (x >>> 7);\n}\n\nfunction Gamma0l(x, xl) {\n\treturn ((x >>> 1) | (xl << 31)) ^ ((x >>> 8) | (xl << 24)) ^ ((x >>> 7) | (xl << 25));\n}\n\nfunction Gamma1(x, xl) {\n\treturn ((x >>> 19) | (xl << 13)) ^ ((xl >>> 29) | (x << 3)) ^ (x >>> 6);\n}\n\nfunction Gamma1l(x, xl) {\n\treturn ((x >>> 19) | (xl << 13)) ^ ((xl >>> 29) | (x << 3)) ^ ((x >>> 6) | (xl << 26));\n}\n\nfunction getCarry(a, b) {\n\treturn (a >>> 0) < (b >>> 0) ? 1 : 0;\n}\n\nSha512.prototype._update = function (M) {\n\tvar w = this._w;\n\n\tvar ah = this._ah | 0;\n\tvar bh = this._bh | 0;\n\tvar ch = this._ch | 0;\n\tvar dh = this._dh | 0;\n\tvar eh = this._eh | 0;\n\tvar fh = this._fh | 0;\n\tvar gh = this._gh | 0;\n\tvar hh = this._hh | 0;\n\n\tvar al = this._al | 0;\n\tvar bl = this._bl | 0;\n\tvar cl = this._cl | 0;\n\tvar dl = this._dl | 0;\n\tvar el = this._el | 0;\n\tvar fl = this._fl | 0;\n\tvar gl = this._gl | 0;\n\tvar hl = this._hl | 0;\n\n\tfor (var i = 0; i < 32; i += 2) {\n\t\tw[i] = M.readInt32BE(i * 4);\n\t\tw[i + 1] = M.readInt32BE((i * 4) + 4);\n\t}\n\tfor (; i < 160; i += 2) {\n\t\tvar xh = w[i - (15 * 2)];\n\t\tvar xl = w[i - (15 * 2) + 1];\n\t\tvar gamma0 = Gamma0(xh, xl);\n\t\tvar gamma0l = Gamma0l(xl, xh);\n\n\t\txh = w[i - (2 * 2)];\n\t\txl = w[i - (2 * 2) + 1];\n\t\tvar gamma1 = Gamma1(xh, xl);\n\t\tvar gamma1l = Gamma1l(xl, xh);\n\n\t\t// w[i] = gamma0 + w[i - 7] + gamma1 + w[i - 16]\n\t\tvar Wi7h = w[i - (7 * 2)];\n\t\tvar Wi7l = w[i - (7 * 2) + 1];\n\n\t\tvar Wi16h = w[i - (16 * 2)];\n\t\tvar Wi16l = w[i - (16 * 2) + 1];\n\n\t\tvar Wil = (gamma0l + Wi7l) | 0;\n\t\tvar Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0;\n\t\tWil = (Wil + gamma1l) | 0;\n\t\tWih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0;\n\t\tWil = (Wil + Wi16l) | 0;\n\t\tWih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0;\n\n\t\tw[i] = Wih;\n\t\tw[i + 1] = Wil;\n\t}\n\n\tfor (var j = 0; j < 160; j += 2) {\n\t\tWih = w[j];\n\t\tWil = w[j + 1];\n\n\t\tvar majh = maj(ah, bh, ch);\n\t\tvar majl = maj(al, bl, cl);\n\n\t\tvar sigma0h = sigma0(ah, al);\n\t\tvar sigma0l = sigma0(al, ah);\n\t\tvar sigma1h = sigma1(eh, el);\n\t\tvar sigma1l = sigma1(el, eh);\n\n\t\t// t1 = h + sigma1 + ch + K[j] + w[j]\n\t\tvar Kih = K[j];\n\t\tvar Kil = K[j + 1];\n\n\t\tvar chh = Ch(eh, fh, gh);\n\t\tvar chl = Ch(el, fl, gl);\n\n\t\tvar t1l = (hl + sigma1l) | 0;\n\t\tvar t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0;\n\t\tt1l = (t1l + chl) | 0;\n\t\tt1h = (t1h + chh + getCarry(t1l, chl)) | 0;\n\t\tt1l = (t1l + Kil) | 0;\n\t\tt1h = (t1h + Kih + getCarry(t1l, Kil)) | 0;\n\t\tt1l = (t1l + Wil) | 0;\n\t\tt1h = (t1h + Wih + getCarry(t1l, Wil)) | 0;\n\n\t\t// t2 = sigma0 + maj\n\t\tvar t2l = (sigma0l + majl) | 0;\n\t\tvar t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0;\n\n\t\thh = gh;\n\t\thl = gl;\n\t\tgh = fh;\n\t\tgl = fl;\n\t\tfh = eh;\n\t\tfl = el;\n\t\tel = (dl + t1l) | 0;\n\t\teh = (dh + t1h + getCarry(el, dl)) | 0;\n\t\tdh = ch;\n\t\tdl = cl;\n\t\tch = bh;\n\t\tcl = bl;\n\t\tbh = ah;\n\t\tbl = al;\n\t\tal = (t1l + t2l) | 0;\n\t\tah = (t1h + t2h + getCarry(al, t1l)) | 0;\n\t}\n\n\tthis._al = (this._al + al) | 0;\n\tthis._bl = (this._bl + bl) | 0;\n\tthis._cl = (this._cl + cl) | 0;\n\tthis._dl = (this._dl + dl) | 0;\n\tthis._el = (this._el + el) | 0;\n\tthis._fl = (this._fl + fl) | 0;\n\tthis._gl = (this._gl + gl) | 0;\n\tthis._hl = (this._hl + hl) | 0;\n\n\tthis._ah = (this._ah + ah + getCarry(this._al, al)) | 0;\n\tthis._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0;\n\tthis._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0;\n\tthis._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0;\n\tthis._eh = (this._eh + eh + getCarry(this._el, el)) | 0;\n\tthis._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0;\n\tthis._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0;\n\tthis._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0;\n};\n\nSha512.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(64);\n\n\tfunction writeInt64BE(h, l, offset) {\n\t\tH.writeInt32BE(h, offset);\n\t\tH.writeInt32BE(l, offset + 4);\n\t}\n\n\twriteInt64BE(this._ah, this._al, 0);\n\twriteInt64BE(this._bh, this._bl, 8);\n\twriteInt64BE(this._ch, this._cl, 16);\n\twriteInt64BE(this._dh, this._dl, 24);\n\twriteInt64BE(this._eh, this._el, 32);\n\twriteInt64BE(this._fh, this._fl, 40);\n\twriteInt64BE(this._gh, this._gl, 48);\n\twriteInt64BE(this._hh, this._hl, 56);\n\n\treturn H;\n};\n\nmodule.exports = Sha512;\n","import { getAbiItem, } from '../../utils/abi/getAbiItem.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { getLogs, } from './getLogs.js';\n/**\n * Returns a list of event logs emitted by a contract.\n *\n * - Docs: https://viem.sh/docs/contract/getContractEvents#getcontractevents\n * - JSON-RPC Methods: [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs)\n *\n * @param client - Client to use\n * @param parameters - {@link GetContractEventsParameters}\n * @returns A list of event logs. {@link GetContractEventsReturnType}\n *\n * @example\n * import { createClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getContractEvents } from 'viem/public'\n * import { wagmiAbi } from './abi'\n *\n * const client = createClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const logs = await getContractEvents(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: wagmiAbi,\n * eventName: 'Transfer'\n * })\n */\nexport async function getContractEvents(client, parameters) {\n const { abi, address, args, blockHash, eventName, fromBlock, toBlock, strict, } = parameters;\n const event = eventName\n ? getAbiItem({ abi, name: eventName })\n : undefined;\n const events = !event\n ? abi.filter((x) => x.type === 'event')\n : undefined;\n return getAction(client, getLogs, 'getLogs')({\n address,\n args,\n blockHash,\n event,\n events,\n fromBlock,\n toBlock,\n strict,\n });\n}\n//# sourceMappingURL=getContractEvents.js.map","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\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","/**\n * @since 2.0.0\n */\n/** @internal */\nexport const getBugErrorMessage = message => `BUG: ${message} - please report an issue at https://github.com/Effect-TS/effect/issues`;\n//# sourceMappingURL=errors.js.map","import { recoverAddress, } from '../signature/recoverAddress.js';\nimport { hashAuthorization, } from './hashAuthorization.js';\nexport async function recoverAuthorizationAddress(parameters) {\n const { authorization, signature } = parameters;\n return recoverAddress({\n hash: hashAuthorization(authorization),\n signature: (signature ?? authorization),\n });\n}\n//# sourceMappingURL=recoverAuthorizationAddress.js.map","import { parseEventLogs } from '../../utils/abi/parseEventLogs.js';\nimport { formatLog, } from '../../utils/formatters/log.js';\n/**\n * Returns a list of logs or hashes based on a [Filter](/docs/glossary/terms#filter) since the last time it was called.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFilterChanges\n * - JSON-RPC Methods: [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges)\n *\n * A Filter can be created from the following actions:\n *\n * - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter)\n * - [`createContractEventFilter`](https://viem.sh/docs/contract/createContractEventFilter)\n * - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter)\n * - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter)\n *\n * Depending on the type of filter, the return value will be different:\n *\n * - If the filter was created with `createContractEventFilter` or `createEventFilter`, it returns a list of logs.\n * - If the filter was created with `createPendingTransactionFilter`, it returns a list of transaction hashes.\n * - If the filter was created with `createBlockFilter`, it returns a list of block hashes.\n *\n * @param client - Client to use\n * @param parameters - {@link GetFilterChangesParameters}\n * @returns Logs or hashes. {@link GetFilterChangesReturnType}\n *\n * @example\n * // Blocks\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createBlockFilter, getFilterChanges } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createBlockFilter(client)\n * const hashes = await getFilterChanges(client, { filter })\n *\n * @example\n * // Contract Events\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createContractEventFilter, getFilterChanges } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createContractEventFilter(client, {\n * address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n * abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),\n * eventName: 'Transfer',\n * })\n * const logs = await getFilterChanges(client, { filter })\n *\n * @example\n * // Raw Events\n * import { createPublicClient, http, parseAbiItem } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createEventFilter, getFilterChanges } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createEventFilter(client, {\n * address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n * event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),\n * })\n * const logs = await getFilterChanges(client, { filter })\n *\n * @example\n * // Transactions\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createPendingTransactionFilter, getFilterChanges } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createPendingTransactionFilter(client)\n * const hashes = await getFilterChanges(client, { filter })\n */\nexport async function getFilterChanges(_client, { filter, }) {\n const strict = 'strict' in filter && filter.strict;\n const logs = await filter.request({\n method: 'eth_getFilterChanges',\n params: [filter.id],\n });\n if (typeof logs[0] === 'string')\n return logs;\n const formattedLogs = logs.map((log) => formatLog(log));\n if (!('abi' in filter) || !filter.abi)\n return formattedLogs;\n return parseEventLogs({\n abi: filter.abi,\n logs: formattedLogs,\n strict,\n });\n}\n//# sourceMappingURL=getFilterChanges.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","/**\n * @license React\n * react-dom.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\";\nvar React = require(\"react\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction noop() {}\nvar Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(formatProdErrorMessage(522));\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\nfunction createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nvar ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nfunction getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n}\nexports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\nexports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(formatProdErrorMessage(299));\n return createPortal$1(children, container, null, key);\n};\nexports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn)) return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f();\n }\n};\nexports.preconnect = function (href, options) {\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n};\nexports.prefetchDNS = function (href) {\n \"string\" === typeof href && Internals.d.D(href);\n};\nexports.preinit = function (href, options) {\n if (\"string\" === typeof href && options && \"string\" === typeof options.as) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence ? options.precedence : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n};\nexports.preinitModule = function (href, options) {\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as) {\n var crossOrigin = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n );\n Internals.d.M(href, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n } else null == options && Internals.d.M(href);\n};\nexports.preload = function (href, options) {\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n Internals.d.L(href, as, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes ? options.imageSizes : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n};\nexports.preloadModule = function (href, options) {\n if (\"string\" === typeof href)\n if (options) {\n var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0\n });\n } else Internals.d.m(href);\n};\nexports.requestFormReset = function (form) {\n Internals.d.r(form);\n};\nexports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n};\nexports.useFormState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useFormState(action, initialState, permalink);\n};\nexports.useFormStatus = function () {\n return ReactSharedInternals.H.useHostTransitionStatus();\n};\nexports.version = \"19.2.3\";\n","import { AbiDecodingZeroDataError } from '../../errors/abi.js';\nimport { BaseError } from '../../errors/base.js';\nimport { ContractFunctionExecutionError, ContractFunctionRevertedError, ContractFunctionZeroDataError, RawContractError, } from '../../errors/contract.js';\nimport { RpcRequestError } from '../../errors/request.js';\nimport { InternalRpcError, InvalidInputRpcError } from '../../errors/rpc.js';\nconst EXECUTION_REVERTED_ERROR_CODE = 3;\nexport function getContractError(err, { abi, address, args, docsPath, functionName, sender, }) {\n const error = (err instanceof RawContractError\n ? err\n : err instanceof BaseError\n ? err.walk((err) => 'data' in err) || err.walk()\n : {});\n const { code, data, details, message, shortMessage } = error;\n const cause = (() => {\n if (err instanceof AbiDecodingZeroDataError)\n return new ContractFunctionZeroDataError({ functionName });\n if (([EXECUTION_REVERTED_ERROR_CODE, InternalRpcError.code].includes(code) &&\n (data || details || message || shortMessage)) ||\n (code === InvalidInputRpcError.code &&\n details === 'execution reverted' &&\n data)) {\n return new ContractFunctionRevertedError({\n abi,\n data: typeof data === 'object' ? data.data : data,\n functionName,\n message: error instanceof RpcRequestError\n ? details\n : (shortMessage ?? message),\n });\n }\n return err;\n })();\n return new ContractFunctionExecutionError(cause, {\n abi,\n args,\n contractAddress: address,\n docsPath,\n functionName,\n sender,\n });\n}\n//# sourceMappingURL=getContractError.js.map","/**\n * @since 2.0.0\n */\n/**\n * @since 2.0.0\n */\nexport const pipeArguments = (self, args) => {\n switch (args.length) {\n case 0:\n return self;\n case 1:\n return args[0](self);\n case 2:\n return args[1](args[0](self));\n case 3:\n return args[2](args[1](args[0](self)));\n case 4:\n return args[3](args[2](args[1](args[0](self))));\n case 5:\n return args[4](args[3](args[2](args[1](args[0](self)))));\n case 6:\n return args[5](args[4](args[3](args[2](args[1](args[0](self))))));\n case 7:\n return args[6](args[5](args[4](args[3](args[2](args[1](args[0](self)))))));\n case 8:\n return args[7](args[6](args[5](args[4](args[3](args[2](args[1](args[0](self))))))));\n case 9:\n return args[8](args[7](args[6](args[5](args[4](args[3](args[2](args[1](args[0](self)))))))));\n default:\n {\n let ret = self;\n for (let i = 0, len = args.length; i < len; i++) {\n ret = args[i](ret);\n }\n return ret;\n }\n }\n};\n/**\n * @since 3.15.0\n * @category Prototypes\n */\nexport const Prototype = {\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\nconst Base = /*#__PURE__*/function () {\n function PipeableBase() {}\n PipeableBase.prototype = Prototype;\n return PipeableBase;\n}();\n/**\n * @since 3.15.0\n * @category Constructors\n */\nexport const Class = klass => klass ? class extends klass {\n pipe() {\n return pipeArguments(this, arguments);\n }\n} : Base;\n//# sourceMappingURL=Pipeable.js.map","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","const errors = {\n IMPOSSIBLE_CASE: 'Impossible case. Please create issue.',\n TWEAK_ADD:\n 'The tweak was out of range or the resulted private key is invalid',\n TWEAK_MUL: 'The tweak was out of range or equal to zero',\n CONTEXT_RANDOMIZE_UNKNOW: 'Unknow error on context randomization',\n SECKEY_INVALID: 'Private Key is invalid',\n PUBKEY_PARSE: 'Public Key could not be parsed',\n PUBKEY_SERIALIZE: 'Public Key serialization error',\n PUBKEY_COMBINE: 'The sum of the public keys is not valid',\n SIG_PARSE: 'Signature could not be parsed',\n SIGN: 'The nonce generation function failed, or the private key was invalid',\n RECOVER: 'Public key could not be recover',\n ECDH: 'Scalar was invalid (zero or overflow)'\n}\n\nfunction assert (cond, msg) {\n if (!cond) throw new Error(msg)\n}\n\nfunction isUint8Array (name, value, length) {\n assert(value instanceof Uint8Array, `Expected ${name} to be an Uint8Array`)\n\n if (length !== undefined) {\n if (Array.isArray(length)) {\n const numbers = length.join(', ')\n const msg = `Expected ${name} to be an Uint8Array with length [${numbers}]`\n assert(length.includes(value.length), msg)\n } else {\n const msg = `Expected ${name} to be an Uint8Array with length ${length}`\n assert(value.length === length, msg)\n }\n }\n}\n\nfunction isCompressed (value) {\n assert(toTypeString(value) === 'Boolean', 'Expected compressed to be a Boolean')\n}\n\nfunction getAssertedOutput (output = (len) => new Uint8Array(len), length) {\n if (typeof output === 'function') output = output(length)\n isUint8Array('output', output, length)\n return output\n}\n\nfunction toTypeString (value) {\n return Object.prototype.toString.call(value).slice(8, -1)\n}\n\nmodule.exports = (secp256k1) => {\n return {\n contextRandomize (seed) {\n assert(\n seed === null || seed instanceof Uint8Array,\n 'Expected seed to be an Uint8Array or null'\n )\n if (seed !== null) isUint8Array('seed', seed, 32)\n\n switch (secp256k1.contextRandomize(seed)) {\n case 1:\n throw new Error(errors.CONTEXT_RANDOMIZE_UNKNOW)\n }\n },\n\n privateKeyVerify (seckey) {\n isUint8Array('private key', seckey, 32)\n\n return secp256k1.privateKeyVerify(seckey) === 0\n },\n\n privateKeyNegate (seckey) {\n isUint8Array('private key', seckey, 32)\n\n switch (secp256k1.privateKeyNegate(seckey)) {\n case 0:\n return seckey\n case 1:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n privateKeyTweakAdd (seckey, tweak) {\n isUint8Array('private key', seckey, 32)\n isUint8Array('tweak', tweak, 32)\n\n switch (secp256k1.privateKeyTweakAdd(seckey, tweak)) {\n case 0:\n return seckey\n case 1:\n throw new Error(errors.TWEAK_ADD)\n }\n },\n\n privateKeyTweakMul (seckey, tweak) {\n isUint8Array('private key', seckey, 32)\n isUint8Array('tweak', tweak, 32)\n\n switch (secp256k1.privateKeyTweakMul(seckey, tweak)) {\n case 0:\n return seckey\n case 1:\n throw new Error(errors.TWEAK_MUL)\n }\n },\n\n publicKeyVerify (pubkey) {\n isUint8Array('public key', pubkey, [33, 65])\n\n return secp256k1.publicKeyVerify(pubkey) === 0\n },\n\n publicKeyCreate (seckey, compressed = true, output) {\n isUint8Array('private key', seckey, 32)\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyCreate(output, seckey)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.SECKEY_INVALID)\n case 2:\n throw new Error(errors.PUBKEY_SERIALIZE)\n }\n },\n\n publicKeyConvert (pubkey, compressed = true, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyConvert(output, pubkey)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.PUBKEY_SERIALIZE)\n }\n },\n\n publicKeyNegate (pubkey, compressed = true, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyNegate(output, pubkey)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.IMPOSSIBLE_CASE)\n case 3:\n throw new Error(errors.PUBKEY_SERIALIZE)\n }\n },\n\n publicKeyCombine (pubkeys, compressed = true, output) {\n assert(Array.isArray(pubkeys), 'Expected public keys to be an Array')\n assert(pubkeys.length > 0, 'Expected public keys array will have more than zero items')\n for (const pubkey of pubkeys) {\n isUint8Array('public key', pubkey, [33, 65])\n }\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyCombine(output, pubkeys)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.PUBKEY_COMBINE)\n case 3:\n throw new Error(errors.PUBKEY_SERIALIZE)\n }\n },\n\n publicKeyTweakAdd (pubkey, tweak, compressed = true, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isUint8Array('tweak', tweak, 32)\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyTweakAdd(output, pubkey, tweak)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.TWEAK_ADD)\n }\n },\n\n publicKeyTweakMul (pubkey, tweak, compressed = true, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isUint8Array('tweak', tweak, 32)\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyTweakMul(output, pubkey, tweak)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.TWEAK_MUL)\n }\n },\n\n signatureNormalize (sig) {\n isUint8Array('signature', sig, 64)\n\n switch (secp256k1.signatureNormalize(sig)) {\n case 0:\n return sig\n case 1:\n throw new Error(errors.SIG_PARSE)\n }\n },\n\n signatureExport (sig, output) {\n isUint8Array('signature', sig, 64)\n output = getAssertedOutput(output, 72)\n\n const obj = { output, outputlen: 72 }\n switch (secp256k1.signatureExport(obj, sig)) {\n case 0:\n return output.slice(0, obj.outputlen)\n case 1:\n throw new Error(errors.SIG_PARSE)\n case 2:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n signatureImport (sig, output) {\n isUint8Array('signature', sig)\n output = getAssertedOutput(output, 64)\n\n switch (secp256k1.signatureImport(output, sig)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.SIG_PARSE)\n case 2:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n ecdsaSign (msg32, seckey, options = {}, output) {\n isUint8Array('message', msg32, 32)\n isUint8Array('private key', seckey, 32)\n assert(toTypeString(options) === 'Object', 'Expected options to be an Object')\n if (options.data !== undefined) isUint8Array('options.data', options.data)\n if (options.noncefn !== undefined) assert(toTypeString(options.noncefn) === 'Function', 'Expected options.noncefn to be a Function')\n output = getAssertedOutput(output, 64)\n\n const obj = { signature: output, recid: null }\n switch (secp256k1.ecdsaSign(obj, msg32, seckey, options.data, options.noncefn)) {\n case 0:\n return obj\n case 1:\n throw new Error(errors.SIGN)\n case 2:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n ecdsaVerify (sig, msg32, pubkey) {\n isUint8Array('signature', sig, 64)\n isUint8Array('message', msg32, 32)\n isUint8Array('public key', pubkey, [33, 65])\n\n switch (secp256k1.ecdsaVerify(sig, msg32, pubkey)) {\n case 0:\n return true\n case 3:\n return false\n case 1:\n throw new Error(errors.SIG_PARSE)\n case 2:\n throw new Error(errors.PUBKEY_PARSE)\n }\n },\n\n ecdsaRecover (sig, recid, msg32, compressed = true, output) {\n isUint8Array('signature', sig, 64)\n assert(\n toTypeString(recid) === 'Number' &&\n recid >= 0 &&\n recid <= 3,\n 'Expected recovery id to be a Number within interval [0, 3]'\n )\n isUint8Array('message', msg32, 32)\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.ecdsaRecover(output, sig, recid, msg32)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.SIG_PARSE)\n case 2:\n throw new Error(errors.RECOVER)\n case 3:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n ecdh (pubkey, seckey, options = {}, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isUint8Array('private key', seckey, 32)\n assert(toTypeString(options) === 'Object', 'Expected options to be an Object')\n if (options.data !== undefined) isUint8Array('options.data', options.data)\n if (options.hashfn !== undefined) {\n assert(toTypeString(options.hashfn) === 'Function', 'Expected options.hashfn to be a Function')\n if (options.xbuf !== undefined) isUint8Array('options.xbuf', options.xbuf, 32)\n if (options.ybuf !== undefined) isUint8Array('options.ybuf', options.ybuf, 32)\n isUint8Array('output', output)\n } else {\n output = getAssertedOutput(output, 32)\n }\n\n switch (secp256k1.ecdh(output, pubkey, seckey, options.data, options.hashfn, options.xbuf, options.ybuf)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.ECDH)\n }\n }\n }\n}\n","'use strict';\n\nvar $isFinite = isFinite;\nvar MAX_ALLOC = Math.pow(2, 30) - 1; // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n\tif (typeof iterations !== 'number') {\n\t\tthrow new TypeError('Iterations not a number');\n\t}\n\n\tif (iterations < 0 || !$isFinite(iterations)) {\n\t\tthrow new TypeError('Bad iterations');\n\t}\n\n\tif (typeof keylen !== 'number') {\n\t\tthrow new TypeError('Key length not a number');\n\t}\n\n\tif (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n\t\tthrow new TypeError('Bad key length');\n\t}\n};\n","import { isHex } from '../data/isHex.js';\nimport { size } from '../data/size.js';\nimport { hexToBigInt, hexToNumber, } from '../encoding/fromHex.js';\nimport { toHex } from '../encoding/toHex.js';\nexport async function recoverPublicKey({ hash, signature, }) {\n const hashHex = isHex(hash) ? hash : toHex(hash);\n const { secp256k1 } = await import('@noble/curves/secp256k1');\n const signature_ = (() => {\n // typeof signature: `Signature`\n if (typeof signature === 'object' && 'r' in signature && 's' in signature) {\n const { r, s, v, yParity } = signature;\n const yParityOrV = Number(yParity ?? v);\n const recoveryBit = toRecoveryBit(yParityOrV);\n return new secp256k1.Signature(hexToBigInt(r), hexToBigInt(s)).addRecoveryBit(recoveryBit);\n }\n // typeof signature: `Hex | ByteArray`\n const signatureHex = isHex(signature) ? signature : toHex(signature);\n if (size(signatureHex) !== 65)\n throw new Error('invalid signature length');\n const yParityOrV = hexToNumber(`0x${signatureHex.slice(130)}`);\n const recoveryBit = toRecoveryBit(yParityOrV);\n return secp256k1.Signature.fromCompact(signatureHex.substring(2, 130)).addRecoveryBit(recoveryBit);\n })();\n const publicKey = signature_\n .recoverPublicKey(hashHex.substring(2))\n .toHex(false);\n return `0x${publicKey}`;\n}\nfunction toRecoveryBit(yParityOrV) {\n if (yParityOrV === 0 || yParityOrV === 1)\n return yParityOrV;\n if (yParityOrV === 27)\n return 0;\n if (yParityOrV === 28)\n return 1;\n throw new Error('Invalid yParityOrV value');\n}\n//# sourceMappingURL=recoverPublicKey.js.map","import { publicKeyToAddress } from '../../accounts/utils/publicKeyToAddress.js';\nimport { recoverPublicKey } from './recoverPublicKey.js';\nexport async function recoverAddress({ hash, signature, }) {\n return publicKeyToAddress(await recoverPublicKey({ hash, signature }));\n}\n//# sourceMappingURL=recoverAddress.js.map","/**\n * @since 2.0.0\n */\nimport * as Equal from \"./Equal.js\";\nimport { dual } from \"./Function.js\";\nimport * as Hash from \"./Hash.js\";\nimport { NodeInspectSymbol } from \"./Inspectable.js\";\nimport * as Option from \"./Option.js\";\nimport * as order from \"./Order.js\";\nimport { pipeArguments } from \"./Pipeable.js\";\nimport { hasProperty, isBigInt, isNumber, isString } from \"./Predicate.js\";\nconst TypeId = /*#__PURE__*/Symbol.for(\"effect/Duration\");\nconst bigint0 = /*#__PURE__*/BigInt(0);\nconst bigint24 = /*#__PURE__*/BigInt(24);\nconst bigint60 = /*#__PURE__*/BigInt(60);\nconst bigint1e3 = /*#__PURE__*/BigInt(1_000);\nconst bigint1e6 = /*#__PURE__*/BigInt(1_000_000);\nconst bigint1e9 = /*#__PURE__*/BigInt(1_000_000_000);\nconst DURATION_REGEX = /^(-?\\d+(?:\\.\\d+)?)\\s+(nanos?|micros?|millis?|seconds?|minutes?|hours?|days?|weeks?)$/;\n/**\n * @since 2.0.0\n */\nexport const decode = input => {\n if (isDuration(input)) {\n return input;\n } else if (isNumber(input)) {\n return millis(input);\n } else if (isBigInt(input)) {\n return nanos(input);\n } else if (Array.isArray(input) && input.length === 2 && input.every(isNumber)) {\n if (input[0] === -Infinity || input[1] === -Infinity || Number.isNaN(input[0]) || Number.isNaN(input[1])) {\n return zero;\n }\n if (input[0] === Infinity || input[1] === Infinity) {\n return infinity;\n }\n return nanos(BigInt(Math.round(input[0] * 1_000_000_000)) + BigInt(Math.round(input[1])));\n } else if (isString(input)) {\n const match = DURATION_REGEX.exec(input);\n if (match) {\n const [_, valueStr, unit] = match;\n const value = Number(valueStr);\n switch (unit) {\n case \"nano\":\n case \"nanos\":\n return nanos(BigInt(valueStr));\n case \"micro\":\n case \"micros\":\n return micros(BigInt(valueStr));\n case \"milli\":\n case \"millis\":\n return millis(value);\n case \"second\":\n case \"seconds\":\n return seconds(value);\n case \"minute\":\n case \"minutes\":\n return minutes(value);\n case \"hour\":\n case \"hours\":\n return hours(value);\n case \"day\":\n case \"days\":\n return days(value);\n case \"week\":\n case \"weeks\":\n return weeks(value);\n }\n }\n }\n throw new Error(\"Invalid DurationInput\");\n};\n/**\n * @since 2.5.0\n */\nexport const decodeUnknown = /*#__PURE__*/Option.liftThrowable(decode);\nconst zeroValue = {\n _tag: \"Millis\",\n millis: 0\n};\nconst infinityValue = {\n _tag: \"Infinity\"\n};\nconst DurationProto = {\n [TypeId]: TypeId,\n [Hash.symbol]() {\n return Hash.cached(this, Hash.structure(this.value));\n },\n [Equal.symbol](that) {\n return isDuration(that) && equals(this, that);\n },\n toString() {\n return `Duration(${format(this)})`;\n },\n toJSON() {\n switch (this.value._tag) {\n case \"Millis\":\n return {\n _id: \"Duration\",\n _tag: \"Millis\",\n millis: this.value.millis\n };\n case \"Nanos\":\n return {\n _id: \"Duration\",\n _tag: \"Nanos\",\n hrtime: toHrTime(this)\n };\n case \"Infinity\":\n return {\n _id: \"Duration\",\n _tag: \"Infinity\"\n };\n }\n },\n [NodeInspectSymbol]() {\n return this.toJSON();\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\nconst make = input => {\n const duration = Object.create(DurationProto);\n if (isNumber(input)) {\n if (isNaN(input) || input <= 0) {\n duration.value = zeroValue;\n } else if (!Number.isFinite(input)) {\n duration.value = infinityValue;\n } else if (!Number.isInteger(input)) {\n duration.value = {\n _tag: \"Nanos\",\n nanos: BigInt(Math.round(input * 1_000_000))\n };\n } else {\n duration.value = {\n _tag: \"Millis\",\n millis: input\n };\n }\n } else if (input <= bigint0) {\n duration.value = zeroValue;\n } else {\n duration.value = {\n _tag: \"Nanos\",\n nanos: input\n };\n }\n return duration;\n};\n/**\n * @since 2.0.0\n * @category guards\n */\nexport const isDuration = u => hasProperty(u, TypeId);\n/**\n * @since 2.0.0\n * @category guards\n */\nexport const isFinite = self => self.value._tag !== \"Infinity\";\n/**\n * @since 3.5.0\n * @category guards\n */\nexport const isZero = self => {\n switch (self.value._tag) {\n case \"Millis\":\n {\n return self.value.millis === 0;\n }\n case \"Nanos\":\n {\n return self.value.nanos === bigint0;\n }\n case \"Infinity\":\n {\n return false;\n }\n }\n};\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const zero = /*#__PURE__*/make(0);\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const infinity = /*#__PURE__*/make(Infinity);\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const nanos = nanos => make(nanos);\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const micros = micros => make(micros * bigint1e3);\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const millis = millis => make(millis);\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const seconds = seconds => make(seconds * 1000);\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const minutes = minutes => make(minutes * 60_000);\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const hours = hours => make(hours * 3_600_000);\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const days = days => make(days * 86_400_000);\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const weeks = weeks => make(weeks * 604_800_000);\n/**\n * @since 2.0.0\n * @category getters\n */\nexport const toMillis = self => match(self, {\n onMillis: millis => millis,\n onNanos: nanos => Number(nanos) / 1_000_000\n});\n/**\n * @since 2.0.0\n * @category getters\n */\nexport const toSeconds = self => match(self, {\n onMillis: millis => millis / 1_000,\n onNanos: nanos => Number(nanos) / 1_000_000_000\n});\n/**\n * @since 3.8.0\n * @category getters\n */\nexport const toMinutes = self => match(self, {\n onMillis: millis => millis / 60_000,\n onNanos: nanos => Number(nanos) / 60_000_000_000\n});\n/**\n * @since 3.8.0\n * @category getters\n */\nexport const toHours = self => match(self, {\n onMillis: millis => millis / 3_600_000,\n onNanos: nanos => Number(nanos) / 3_600_000_000_000\n});\n/**\n * @since 3.8.0\n * @category getters\n */\nexport const toDays = self => match(self, {\n onMillis: millis => millis / 86_400_000,\n onNanos: nanos => Number(nanos) / 86_400_000_000_000\n});\n/**\n * @since 3.8.0\n * @category getters\n */\nexport const toWeeks = self => match(self, {\n onMillis: millis => millis / 604_800_000,\n onNanos: nanos => Number(nanos) / 604_800_000_000_000\n});\n/**\n * Get the duration in nanoseconds as a bigint.\n *\n * If the duration is infinite, returns `Option.none()`\n *\n * @since 2.0.0\n * @category getters\n */\nexport const toNanos = self => {\n const _self = decode(self);\n switch (_self.value._tag) {\n case \"Infinity\":\n return Option.none();\n case \"Nanos\":\n return Option.some(_self.value.nanos);\n case \"Millis\":\n return Option.some(BigInt(Math.round(_self.value.millis * 1_000_000)));\n }\n};\n/**\n * Get the duration in nanoseconds as a bigint.\n *\n * If the duration is infinite, it throws an error.\n *\n * @since 2.0.0\n * @category getters\n */\nexport const unsafeToNanos = self => {\n const _self = decode(self);\n switch (_self.value._tag) {\n case \"Infinity\":\n throw new Error(\"Cannot convert infinite duration to nanos\");\n case \"Nanos\":\n return _self.value.nanos;\n case \"Millis\":\n return BigInt(Math.round(_self.value.millis * 1_000_000));\n }\n};\n/**\n * @since 2.0.0\n * @category getters\n */\nexport const toHrTime = self => {\n const _self = decode(self);\n switch (_self.value._tag) {\n case \"Infinity\":\n return [Infinity, 0];\n case \"Nanos\":\n return [Number(_self.value.nanos / bigint1e9), Number(_self.value.nanos % bigint1e9)];\n case \"Millis\":\n return [Math.floor(_self.value.millis / 1000), Math.round(_self.value.millis % 1000 * 1_000_000)];\n }\n};\n/**\n * @since 2.0.0\n * @category pattern matching\n */\nexport const match = /*#__PURE__*/dual(2, (self, options) => {\n const _self = decode(self);\n switch (_self.value._tag) {\n case \"Nanos\":\n return options.onNanos(_self.value.nanos);\n case \"Infinity\":\n return options.onMillis(Infinity);\n case \"Millis\":\n return options.onMillis(_self.value.millis);\n }\n});\n/**\n * @since 2.0.0\n * @category pattern matching\n */\nexport const matchWith = /*#__PURE__*/dual(3, (self, that, options) => {\n const _self = decode(self);\n const _that = decode(that);\n if (_self.value._tag === \"Infinity\" || _that.value._tag === \"Infinity\") {\n return options.onMillis(toMillis(_self), toMillis(_that));\n } else if (_self.value._tag === \"Nanos\" || _that.value._tag === \"Nanos\") {\n const selfNanos = _self.value._tag === \"Nanos\" ? _self.value.nanos : BigInt(Math.round(_self.value.millis * 1_000_000));\n const thatNanos = _that.value._tag === \"Nanos\" ? _that.value.nanos : BigInt(Math.round(_that.value.millis * 1_000_000));\n return options.onNanos(selfNanos, thatNanos);\n }\n return options.onMillis(_self.value.millis, _that.value.millis);\n});\n/**\n * @category instances\n * @since 2.0.0\n */\nexport const Order = /*#__PURE__*/order.make((self, that) => matchWith(self, that, {\n onMillis: (self, that) => self < that ? -1 : self > that ? 1 : 0,\n onNanos: (self, that) => self < that ? -1 : self > that ? 1 : 0\n}));\n/**\n * Checks if a `Duration` is between a `minimum` and `maximum` value.\n *\n * @category predicates\n * @since 2.0.0\n */\nexport const between = /*#__PURE__*/order.between(/*#__PURE__*/order.mapInput(Order, decode));\n/**\n * @category instances\n * @since 2.0.0\n */\nexport const Equivalence = (self, that) => matchWith(self, that, {\n onMillis: (self, that) => self === that,\n onNanos: (self, that) => self === that\n});\nconst _min = /*#__PURE__*/order.min(Order);\n/**\n * @since 2.0.0\n */\nexport const min = /*#__PURE__*/dual(2, (self, that) => _min(decode(self), decode(that)));\nconst _max = /*#__PURE__*/order.max(Order);\n/**\n * @since 2.0.0\n * @category order\n */\nexport const max = /*#__PURE__*/dual(2, (self, that) => _max(decode(self), decode(that)));\nconst _clamp = /*#__PURE__*/order.clamp(Order);\n/**\n * @since 2.0.0\n * @category order\n */\nexport const clamp = /*#__PURE__*/dual(2, (self, options) => _clamp(decode(self), {\n minimum: decode(options.minimum),\n maximum: decode(options.maximum)\n}));\n/**\n * @since 2.4.19\n * @category math\n */\nexport const divide = /*#__PURE__*/dual(2, (self, by) => match(self, {\n onMillis: millis => {\n if (by === 0 || isNaN(by) || !Number.isFinite(by)) {\n return Option.none();\n }\n return Option.some(make(millis / by));\n },\n onNanos: nanos => {\n if (isNaN(by) || by <= 0 || !Number.isFinite(by)) {\n return Option.none();\n }\n try {\n return Option.some(make(nanos / BigInt(by)));\n } catch {\n return Option.none();\n }\n }\n}));\n/**\n * @since 2.4.19\n * @category math\n */\nexport const unsafeDivide = /*#__PURE__*/dual(2, (self, by) => match(self, {\n onMillis: millis => make(millis / by),\n onNanos: nanos => {\n if (isNaN(by) || by < 0 || Object.is(by, -0)) {\n return zero;\n } else if (Object.is(by, 0) || !Number.isFinite(by)) {\n return infinity;\n }\n return make(nanos / BigInt(by));\n }\n}));\n/**\n * @since 2.0.0\n * @category math\n */\nexport const times = /*#__PURE__*/dual(2, (self, times) => match(self, {\n onMillis: millis => make(millis * times),\n onNanos: nanos => make(nanos * BigInt(times))\n}));\n/**\n * @since 2.0.0\n * @category math\n */\nexport const subtract = /*#__PURE__*/dual(2, (self, that) => matchWith(self, that, {\n onMillis: (self, that) => make(self - that),\n onNanos: (self, that) => make(self - that)\n}));\n/**\n * @since 2.0.0\n * @category math\n */\nexport const sum = /*#__PURE__*/dual(2, (self, that) => matchWith(self, that, {\n onMillis: (self, that) => make(self + that),\n onNanos: (self, that) => make(self + that)\n}));\n/**\n * @since 2.0.0\n * @category predicates\n */\nexport const lessThan = /*#__PURE__*/dual(2, (self, that) => matchWith(self, that, {\n onMillis: (self, that) => self < that,\n onNanos: (self, that) => self < that\n}));\n/**\n * @since 2.0.0\n * @category predicates\n */\nexport const lessThanOrEqualTo = /*#__PURE__*/dual(2, (self, that) => matchWith(self, that, {\n onMillis: (self, that) => self <= that,\n onNanos: (self, that) => self <= that\n}));\n/**\n * @since 2.0.0\n * @category predicates\n */\nexport const greaterThan = /*#__PURE__*/dual(2, (self, that) => matchWith(self, that, {\n onMillis: (self, that) => self > that,\n onNanos: (self, that) => self > that\n}));\n/**\n * @since 2.0.0\n * @category predicates\n */\nexport const greaterThanOrEqualTo = /*#__PURE__*/dual(2, (self, that) => matchWith(self, that, {\n onMillis: (self, that) => self >= that,\n onNanos: (self, that) => self >= that\n}));\n/**\n * @since 2.0.0\n * @category predicates\n */\nexport const equals = /*#__PURE__*/dual(2, (self, that) => Equivalence(decode(self), decode(that)));\n/**\n * Converts a `Duration` to its parts.\n *\n * @since 3.8.0\n * @category conversions\n */\nexport const parts = self => {\n const duration = decode(self);\n if (duration.value._tag === \"Infinity\") {\n return {\n days: Infinity,\n hours: Infinity,\n minutes: Infinity,\n seconds: Infinity,\n millis: Infinity,\n nanos: Infinity\n };\n }\n const nanos = unsafeToNanos(duration);\n const ms = nanos / bigint1e6;\n const sec = ms / bigint1e3;\n const min = sec / bigint60;\n const hr = min / bigint60;\n const days = hr / bigint24;\n return {\n days: Number(days),\n hours: Number(hr % bigint24),\n minutes: Number(min % bigint60),\n seconds: Number(sec % bigint60),\n millis: Number(ms % bigint1e3),\n nanos: Number(nanos % bigint1e6)\n };\n};\n/**\n * Converts a `Duration` to a human readable string.\n *\n * @since 2.0.0\n * @category conversions\n * @example\n * ```ts\n * import { Duration } from \"effect\"\n *\n * Duration.format(Duration.millis(1000)) // \"1s\"\n * Duration.format(Duration.millis(1001)) // \"1s 1ms\"\n * ```\n */\nexport const format = self => {\n const duration = decode(self);\n if (duration.value._tag === \"Infinity\") {\n return \"Infinity\";\n }\n if (isZero(duration)) {\n return \"0\";\n }\n const fragments = parts(duration);\n const pieces = [];\n if (fragments.days !== 0) {\n pieces.push(`${fragments.days}d`);\n }\n if (fragments.hours !== 0) {\n pieces.push(`${fragments.hours}h`);\n }\n if (fragments.minutes !== 0) {\n pieces.push(`${fragments.minutes}m`);\n }\n if (fragments.seconds !== 0) {\n pieces.push(`${fragments.seconds}s`);\n }\n if (fragments.millis !== 0) {\n pieces.push(`${fragments.millis}ms`);\n }\n if (fragments.nanos !== 0) {\n pieces.push(`${fragments.nanos}ns`);\n }\n return pieces.join(\" \");\n};\n/**\n * Formats a Duration into an ISO8601 duration string.\n *\n * Months are assumed to be 30 days and years are assumed to be 365 days.\n *\n * Milliseconds and nanoseconds are expressed as fractional seconds.\n *\n * @example\n * ```ts\n * import { Duration } from \"effect\"\n *\n * Duration.unsafeFormatIso(Duration.days(1)) // => \"P1D\"\n * Duration.unsafeFormatIso(Duration.minutes(90)) // => \"PT1H30M\"\n * Duration.unsafeFormatIso(Duration.millis(1500)) // => \"PT1.5S\"\n * ```\n *\n * @throws `RangeError` If the duration is not finite.\n *\n * @since 3.13.0\n * @category conversions\n */\nexport const unsafeFormatIso = self => {\n const duration = decode(self);\n if (!isFinite(duration)) {\n throw new RangeError(\"Cannot format infinite duration\");\n }\n const fragments = [];\n const {\n days,\n hours,\n millis,\n minutes,\n nanos,\n seconds\n } = parts(duration);\n let rest = days;\n if (rest >= 365) {\n const years = Math.floor(rest / 365);\n rest %= 365;\n fragments.push(`${years}Y`);\n }\n if (rest >= 30) {\n const months = Math.floor(rest / 30);\n rest %= 30;\n fragments.push(`${months}M`);\n }\n if (rest >= 7) {\n const weeks = Math.floor(rest / 7);\n rest %= 7;\n fragments.push(`${weeks}W`);\n }\n if (rest > 0) {\n fragments.push(`${rest}D`);\n }\n if (hours !== 0 || minutes !== 0 || seconds !== 0 || millis !== 0 || nanos !== 0) {\n fragments.push(\"T\");\n if (hours !== 0) {\n fragments.push(`${hours}H`);\n }\n if (minutes !== 0) {\n fragments.push(`${minutes}M`);\n }\n if (seconds !== 0 || millis !== 0 || nanos !== 0) {\n const total = BigInt(seconds) * bigint1e9 + BigInt(millis) * bigint1e6 + BigInt(nanos);\n const str = (Number(total) / 1e9).toFixed(9).replace(/\\.?0+$/, \"\");\n fragments.push(`${str}S`);\n }\n }\n return `P${fragments.join(\"\") || \"T0S\"}`;\n};\n/**\n * Formats a Duration into an ISO8601 duration string.\n *\n * Months are assumed to be 30 days and years are assumed to be 365 days.\n *\n * Returns `Option.none()` if the duration is infinite.\n *\n * @example\n * ```ts\n * import { Duration, Option } from \"effect\"\n *\n * Duration.formatIso(Duration.days(1)) // => Option.some(\"P1D\")\n * Duration.formatIso(Duration.minutes(90)) // => Option.some(\"PT1H30M\")\n * Duration.formatIso(Duration.millis(1500)) // => Option.some(\"PT1.5S\")\n * Duration.formatIso(Duration.infinity) // => Option.none()\n * ```\n *\n * @since 3.13.0\n * @category conversions\n */\nexport const formatIso = self => {\n const duration = decode(self);\n return isFinite(duration) ? Option.some(unsafeFormatIso(duration)) : Option.none();\n};\n/**\n * Parses an ISO8601 duration string into a `Duration`.\n *\n * Months are assumed to be 30 days and years are assumed to be 365 days.\n *\n * @example\n * ```ts\n * import { Duration, Option } from \"effect\"\n *\n * Duration.fromIso(\"P1D\") // => Option.some(Duration.days(1))\n * Duration.fromIso(\"PT1H\") // => Option.some(Duration.hours(1))\n * Duration.fromIso(\"PT1M\") // => Option.some(Duration.minutes(1))\n * Duration.fromIso(\"PT1.5S\") // => Option.some(Duration.seconds(1.5))\n * ```\n *\n * @since 3.13.0\n * @category conversions\n */\nexport const fromIso = iso => {\n const result = DURATION_ISO_REGEX.exec(iso);\n if (result == null) {\n return Option.none();\n }\n const [years, months, weeks, days, hours, mins, secs] = result.slice(1, 8).map(_ => _ ? Number(_) : 0);\n const value = years * 365 * 24 * 60 * 60 + months * 30 * 24 * 60 * 60 + weeks * 7 * 24 * 60 * 60 + days * 24 * 60 * 60 + hours * 60 * 60 + mins * 60 + secs;\n return Option.some(seconds(value));\n};\nconst DURATION_ISO_REGEX = /^P(?!$)(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)W)?(?:(\\d+)D)?(?:T(?!$)(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+(?:\\.\\d+)?)S)?)?$/;\n//# sourceMappingURL=Duration.js.map","import { InvalidAddressError } from '../../errors/address.js';\nimport { stringToBytes, } from '../encoding/toBytes.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { LruMap } from '../lru.js';\nimport { isAddress } from './isAddress.js';\nconst checksumAddressCache = /*#__PURE__*/ new LruMap(8192);\nexport function checksumAddress(address_, \n/**\n * Warning: EIP-1191 checksum addresses are generally not backwards compatible with the\n * wider Ethereum ecosystem, meaning it will break when validated against an application/tool\n * that relies on EIP-55 checksum encoding (checksum without chainId).\n *\n * It is highly recommended to not use this feature unless you\n * know what you are doing.\n *\n * See more: https://github.com/ethereum/EIPs/issues/1121\n */\nchainId) {\n if (checksumAddressCache.has(`${address_}.${chainId}`))\n return checksumAddressCache.get(`${address_}.${chainId}`);\n const hexAddress = chainId\n ? `${chainId}${address_.toLowerCase()}`\n : address_.substring(2).toLowerCase();\n const hash = keccak256(stringToBytes(hexAddress), 'bytes');\n const address = (chainId ? hexAddress.substring(`${chainId}0x`.length) : hexAddress).split('');\n for (let i = 0; i < 40; i += 2) {\n if (hash[i >> 1] >> 4 >= 8 && address[i]) {\n address[i] = address[i].toUpperCase();\n }\n if ((hash[i >> 1] & 0x0f) >= 8 && address[i + 1]) {\n address[i + 1] = address[i + 1].toUpperCase();\n }\n }\n const result = `0x${address.join('')}`;\n checksumAddressCache.set(`${address_}.${chainId}`, result);\n return result;\n}\nexport function getAddress(address, \n/**\n * Warning: EIP-1191 checksum addresses are generally not backwards compatible with the\n * wider Ethereum ecosystem, meaning it will break when validated against an application/tool\n * that relies on EIP-55 checksum encoding (checksum without chainId).\n *\n * It is highly recommended to not use this feature unless you\n * know what you are doing.\n *\n * See more: https://github.com/ethereum/EIPs/issues/1121\n */\nchainId) {\n if (!isAddress(address, { strict: false }))\n throw new InvalidAddressError({ address });\n return checksumAddress(address, chainId);\n}\n//# sourceMappingURL=getAddress.js.map","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","import * as Context from \"../Context.js\";\nimport * as Duration from \"../Duration.js\";\nimport { constFalse } from \"../Function.js\";\nimport * as core from \"./core.js\";\n/** @internal */\nconst ClockSymbolKey = \"effect/Clock\";\n/** @internal */\nexport const ClockTypeId = /*#__PURE__*/Symbol.for(ClockSymbolKey);\n/** @internal */\nexport const clockTag = /*#__PURE__*/Context.GenericTag(\"effect/Clock\");\n/** @internal */\nexport const MAX_TIMER_MILLIS = 2 ** 31 - 1;\n/** @internal */\nexport const globalClockScheduler = {\n unsafeSchedule(task, duration) {\n const millis = Duration.toMillis(duration);\n // If the duration is greater than the value allowable by the JS timer\n // functions, treat the value as an infinite duration\n if (millis > MAX_TIMER_MILLIS) {\n return constFalse;\n }\n let completed = false;\n const handle = setTimeout(() => {\n completed = true;\n task();\n }, millis);\n return () => {\n clearTimeout(handle);\n return !completed;\n };\n }\n};\nconst performanceNowNanos = /*#__PURE__*/function () {\n const bigint1e6 = /*#__PURE__*/BigInt(1_000_000);\n if (typeof performance === \"undefined\" || typeof performance.now !== \"function\") {\n return () => BigInt(Date.now()) * bigint1e6;\n }\n let origin;\n return () => {\n if (origin === undefined) {\n origin = BigInt(Date.now()) * bigint1e6 - BigInt(Math.round(performance.now() * 1_000_000));\n }\n return origin + BigInt(Math.round(performance.now() * 1000000));\n };\n}();\nconst processOrPerformanceNow = /*#__PURE__*/function () {\n const processHrtime = typeof process === \"object\" && \"hrtime\" in process && typeof process.hrtime.bigint === \"function\" ? process.hrtime : undefined;\n if (!processHrtime) {\n return performanceNowNanos;\n }\n const origin = /*#__PURE__*/performanceNowNanos() - /*#__PURE__*/processHrtime.bigint();\n return () => origin + processHrtime.bigint();\n}();\n/** @internal */\nclass ClockImpl {\n [ClockTypeId] = ClockTypeId;\n unsafeCurrentTimeMillis() {\n return Date.now();\n }\n unsafeCurrentTimeNanos() {\n return processOrPerformanceNow();\n }\n currentTimeMillis = /*#__PURE__*/core.sync(() => this.unsafeCurrentTimeMillis());\n currentTimeNanos = /*#__PURE__*/core.sync(() => this.unsafeCurrentTimeNanos());\n scheduler() {\n return core.succeed(globalClockScheduler);\n }\n sleep(duration) {\n return core.async(resume => {\n const canceler = globalClockScheduler.unsafeSchedule(() => resume(core.void), duration);\n return core.asVoid(core.sync(canceler));\n });\n }\n}\n/** @internal */\nexport const make = () => new ClockImpl();\n//# sourceMappingURL=clock.js.map","'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","import * as Equal from \"../Equal.js\";\nimport * as Dual from \"../Function.js\";\nimport { constant, identity } from \"../Function.js\";\nimport { pipeArguments } from \"../Pipeable.js\";\nimport * as ChunkPatch from \"./differ/chunkPatch.js\";\nimport * as ContextPatch from \"./differ/contextPatch.js\";\nimport * as HashMapPatch from \"./differ/hashMapPatch.js\";\nimport * as HashSetPatch from \"./differ/hashSetPatch.js\";\nimport * as OrPatch from \"./differ/orPatch.js\";\nimport * as ReadonlyArrayPatch from \"./differ/readonlyArrayPatch.js\";\n/** @internal */\nexport const DifferTypeId = /*#__PURE__*/Symbol.for(\"effect/Differ\");\n/** @internal */\nexport const DifferProto = {\n [DifferTypeId]: {\n _P: identity,\n _V: identity\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\n/** @internal */\nexport const make = params => {\n const differ = Object.create(DifferProto);\n differ.empty = params.empty;\n differ.diff = params.diff;\n differ.combine = params.combine;\n differ.patch = params.patch;\n return differ;\n};\n/** @internal */\nexport const environment = () => make({\n empty: ContextPatch.empty(),\n combine: (first, second) => ContextPatch.combine(second)(first),\n diff: (oldValue, newValue) => ContextPatch.diff(oldValue, newValue),\n patch: (patch, oldValue) => ContextPatch.patch(oldValue)(patch)\n});\n/** @internal */\nexport const chunk = differ => make({\n empty: ChunkPatch.empty(),\n combine: (first, second) => ChunkPatch.combine(second)(first),\n diff: (oldValue, newValue) => ChunkPatch.diff({\n oldValue,\n newValue,\n differ\n }),\n patch: (patch, oldValue) => ChunkPatch.patch(oldValue, differ)(patch)\n});\n/** @internal */\nexport const hashMap = differ => make({\n empty: HashMapPatch.empty(),\n combine: (first, second) => HashMapPatch.combine(second)(first),\n diff: (oldValue, newValue) => HashMapPatch.diff({\n oldValue,\n newValue,\n differ\n }),\n patch: (patch, oldValue) => HashMapPatch.patch(oldValue, differ)(patch)\n});\n/** @internal */\nexport const hashSet = () => make({\n empty: HashSetPatch.empty(),\n combine: (first, second) => HashSetPatch.combine(second)(first),\n diff: (oldValue, newValue) => HashSetPatch.diff(oldValue, newValue),\n patch: (patch, oldValue) => HashSetPatch.patch(oldValue)(patch)\n});\n/** @internal */\nexport const orElseEither = /*#__PURE__*/Dual.dual(2, (self, that) => make({\n empty: OrPatch.empty(),\n combine: (first, second) => OrPatch.combine(first, second),\n diff: (oldValue, newValue) => OrPatch.diff({\n oldValue,\n newValue,\n left: self,\n right: that\n }),\n patch: (patch, oldValue) => OrPatch.patch(patch, {\n oldValue,\n left: self,\n right: that\n })\n}));\n/** @internal */\nexport const readonlyArray = differ => make({\n empty: ReadonlyArrayPatch.empty(),\n combine: (first, second) => ReadonlyArrayPatch.combine(first, second),\n diff: (oldValue, newValue) => ReadonlyArrayPatch.diff({\n oldValue,\n newValue,\n differ\n }),\n patch: (patch, oldValue) => ReadonlyArrayPatch.patch(patch, oldValue, differ)\n});\n/** @internal */\nexport const transform = /*#__PURE__*/Dual.dual(2, (self, {\n toNew,\n toOld\n}) => make({\n empty: self.empty,\n combine: (first, second) => self.combine(first, second),\n diff: (oldValue, newValue) => self.diff(toOld(oldValue), toOld(newValue)),\n patch: (patch, oldValue) => toNew(self.patch(patch, toOld(oldValue)))\n}));\n/** @internal */\nexport const update = () => updateWith((_, a) => a);\n/** @internal */\nexport const updateWith = f => make({\n empty: identity,\n combine: (first, second) => {\n if (first === identity) {\n return second;\n }\n if (second === identity) {\n return first;\n }\n return a => second(first(a));\n },\n diff: (oldValue, newValue) => {\n if (Equal.equals(oldValue, newValue)) {\n return identity;\n }\n return constant(newValue);\n },\n patch: (patch, oldValue) => f(oldValue, patch(oldValue))\n});\n/** @internal */\nexport const zip = /*#__PURE__*/Dual.dual(2, (self, that) => make({\n empty: [self.empty, that.empty],\n combine: (first, second) => [self.combine(first[0], second[0]), that.combine(first[1], second[1])],\n diff: (oldValue, newValue) => [self.diff(oldValue[0], newValue[0]), that.diff(oldValue[1], newValue[1])],\n patch: (patch, oldValue) => [self.patch(patch[0], oldValue[0]), that.patch(patch[1], oldValue[1])]\n}));\n//# sourceMappingURL=differ.js.map","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","import { formatAbiItem, formatAbiParams } from '../utils/abi/formatAbiItem.js';\nimport { size } from '../utils/data/size.js';\nimport { BaseError } from './base.js';\nexport class AbiConstructorNotFoundError extends BaseError {\n constructor({ docsPath }) {\n super([\n 'A constructor was not found on the ABI.',\n 'Make sure you are using the correct ABI and that the constructor exists on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiConstructorNotFoundError',\n });\n }\n}\nexport class AbiConstructorParamsNotFoundError extends BaseError {\n constructor({ docsPath }) {\n super([\n 'Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.',\n 'Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiConstructorParamsNotFoundError',\n });\n }\n}\nexport class AbiDecodingDataSizeInvalidError extends BaseError {\n constructor({ data, size }) {\n super([\n `Data size of ${size} bytes is invalid.`,\n 'Size must be in increments of 32 bytes (size % 32 === 0).',\n ].join('\\n'), {\n metaMessages: [`Data: ${data} (${size} bytes)`],\n name: 'AbiDecodingDataSizeInvalidError',\n });\n }\n}\nexport class AbiDecodingDataSizeTooSmallError extends BaseError {\n constructor({ data, params, size, }) {\n super([`Data size of ${size} bytes is too small for given parameters.`].join('\\n'), {\n metaMessages: [\n `Params: (${formatAbiParams(params, { includeName: true })})`,\n `Data: ${data} (${size} bytes)`,\n ],\n name: 'AbiDecodingDataSizeTooSmallError',\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"params\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"size\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.data = data;\n this.params = params;\n this.size = size;\n }\n}\nexport class AbiDecodingZeroDataError extends BaseError {\n constructor() {\n super('Cannot decode zero data (\"0x\") with ABI parameters.', {\n name: 'AbiDecodingZeroDataError',\n });\n }\n}\nexport class AbiEncodingArrayLengthMismatchError extends BaseError {\n constructor({ expectedLength, givenLength, type, }) {\n super([\n `ABI encoding array length mismatch for type ${type}.`,\n `Expected length: ${expectedLength}`,\n `Given length: ${givenLength}`,\n ].join('\\n'), { name: 'AbiEncodingArrayLengthMismatchError' });\n }\n}\nexport class AbiEncodingBytesSizeMismatchError extends BaseError {\n constructor({ expectedSize, value }) {\n super(`Size of bytes \"${value}\" (bytes${size(value)}) does not match expected size (bytes${expectedSize}).`, { name: 'AbiEncodingBytesSizeMismatchError' });\n }\n}\nexport class AbiEncodingLengthMismatchError extends BaseError {\n constructor({ expectedLength, givenLength, }) {\n super([\n 'ABI encoding params/values length mismatch.',\n `Expected length (params): ${expectedLength}`,\n `Given length (values): ${givenLength}`,\n ].join('\\n'), { name: 'AbiEncodingLengthMismatchError' });\n }\n}\nexport class AbiErrorInputsNotFoundError extends BaseError {\n constructor(errorName, { docsPath }) {\n super([\n `Arguments (\\`args\\`) were provided to \"${errorName}\", but \"${errorName}\" on the ABI does not contain any parameters (\\`inputs\\`).`,\n 'Cannot encode error result without knowing what the parameter types are.',\n 'Make sure you are using the correct ABI and that the inputs exist on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiErrorInputsNotFoundError',\n });\n }\n}\nexport class AbiErrorNotFoundError extends BaseError {\n constructor(errorName, { docsPath } = {}) {\n super([\n `Error ${errorName ? `\"${errorName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the error exists on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiErrorNotFoundError',\n });\n }\n}\nexport class AbiErrorSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded error signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the error exists on it.',\n `You can look up the decoded signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n name: 'AbiErrorSignatureNotFoundError',\n });\n Object.defineProperty(this, \"signature\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.signature = signature;\n }\n}\nexport class AbiEventSignatureEmptyTopicsError extends BaseError {\n constructor({ docsPath }) {\n super('Cannot extract event signature from empty topics.', {\n docsPath,\n name: 'AbiEventSignatureEmptyTopicsError',\n });\n }\n}\nexport class AbiEventSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded event signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the event exists on it.',\n `You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n name: 'AbiEventSignatureNotFoundError',\n });\n }\n}\nexport class AbiEventNotFoundError extends BaseError {\n constructor(eventName, { docsPath } = {}) {\n super([\n `Event ${eventName ? `\"${eventName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the event exists on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiEventNotFoundError',\n });\n }\n}\nexport class AbiFunctionNotFoundError extends BaseError {\n constructor(functionName, { docsPath } = {}) {\n super([\n `Function ${functionName ? `\"${functionName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the function exists on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiFunctionNotFoundError',\n });\n }\n}\nexport class AbiFunctionOutputsNotFoundError extends BaseError {\n constructor(functionName, { docsPath }) {\n super([\n `Function \"${functionName}\" does not contain any \\`outputs\\` on ABI.`,\n 'Cannot decode function result without knowing what the parameter types are.',\n 'Make sure you are using the correct ABI and that the function exists on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiFunctionOutputsNotFoundError',\n });\n }\n}\nexport class AbiFunctionSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded function signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the function exists on it.',\n `You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n name: 'AbiFunctionSignatureNotFoundError',\n });\n }\n}\nexport class AbiItemAmbiguityError extends BaseError {\n constructor(x, y) {\n super('Found ambiguous types in overloaded ABI items.', {\n metaMessages: [\n `\\`${x.type}\\` in \\`${formatAbiItem(x.abiItem)}\\`, and`,\n `\\`${y.type}\\` in \\`${formatAbiItem(y.abiItem)}\\``,\n '',\n 'These types encode differently and cannot be distinguished at runtime.',\n 'Remove one of the ambiguous items in the ABI.',\n ],\n name: 'AbiItemAmbiguityError',\n });\n }\n}\nexport class BytesSizeMismatchError extends BaseError {\n constructor({ expectedSize, givenSize, }) {\n super(`Expected bytes${expectedSize}, got bytes${givenSize}.`, {\n name: 'BytesSizeMismatchError',\n });\n }\n}\nexport class DecodeLogDataMismatch extends BaseError {\n constructor({ abiItem, data, params, size, }) {\n super([\n `Data size of ${size} bytes is too small for non-indexed event parameters.`,\n ].join('\\n'), {\n metaMessages: [\n `Params: (${formatAbiParams(params, { includeName: true })})`,\n `Data: ${data} (${size} bytes)`,\n ],\n name: 'DecodeLogDataMismatch',\n });\n Object.defineProperty(this, \"abiItem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"params\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"size\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.abiItem = abiItem;\n this.data = data;\n this.params = params;\n this.size = size;\n }\n}\nexport class DecodeLogTopicsMismatch extends BaseError {\n constructor({ abiItem, param, }) {\n super([\n `Expected a topic for indexed event parameter${param.name ? ` \"${param.name}\"` : ''} on event \"${formatAbiItem(abiItem, { includeName: true })}\".`,\n ].join('\\n'), { name: 'DecodeLogTopicsMismatch' });\n Object.defineProperty(this, \"abiItem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.abiItem = abiItem;\n }\n}\nexport class InvalidAbiEncodingTypeError extends BaseError {\n constructor(type, { docsPath }) {\n super([\n `Type \"${type}\" is not a valid encoding type.`,\n 'Please provide a valid ABI type.',\n ].join('\\n'), { docsPath, name: 'InvalidAbiEncodingType' });\n }\n}\nexport class InvalidAbiDecodingTypeError extends BaseError {\n constructor(type, { docsPath }) {\n super([\n `Type \"${type}\" is not a valid decoding type.`,\n 'Please provide a valid ABI type.',\n ].join('\\n'), { docsPath, name: 'InvalidAbiDecodingType' });\n }\n}\nexport class InvalidArrayError extends BaseError {\n constructor(value) {\n super([`Value \"${value}\" is not a valid array.`].join('\\n'), {\n name: 'InvalidArrayError',\n });\n }\n}\nexport class InvalidDefinitionTypeError extends BaseError {\n constructor(type) {\n super([\n `\"${type}\" is not a valid definition type.`,\n 'Valid types: \"function\", \"event\", \"error\"',\n ].join('\\n'), { name: 'InvalidDefinitionTypeError' });\n }\n}\nexport class UnsupportedPackedAbiType extends BaseError {\n constructor(type) {\n super(`Type \"${type}\" is not supported for packed encoding.`, {\n name: 'UnsupportedPackedAbiType',\n });\n }\n}\n//# sourceMappingURL=abi.js.map","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar isArray = require('isarray');\nvar typedArrayBuffer = require('typed-array-buffer');\n\nvar isView = ArrayBuffer.isView || function isView(obj) {\n\ttry {\n\t\ttypedArrayBuffer(obj);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar useUint8Array = typeof Uint8Array !== 'undefined';\nvar useArrayBuffer = typeof ArrayBuffer !== 'undefined'\n\t&& typeof Uint8Array !== 'undefined';\nvar useFromArrayBuffer = useArrayBuffer && (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT);\n\nmodule.exports = function toBuffer(data, encoding) {\n\tif (Buffer.isBuffer(data)) {\n\t\tif (data.constructor && !('isBuffer' in data)) {\n\t\t\t// probably a SlowBuffer\n\t\t\treturn Buffer.from(data);\n\t\t}\n\t\treturn data;\n\t}\n\n\tif (typeof data === 'string') {\n\t\treturn Buffer.from(data, encoding);\n\t}\n\n\t/*\n\t * Wrap any TypedArray instances and DataViews\n\t * Makes sense only on engines with full TypedArray support -- let Buffer detect that\n\t */\n\tif (useArrayBuffer && isView(data)) {\n\t\t// Bug in Node.js <6.3.1, which treats this as out-of-bounds\n\t\tif (data.byteLength === 0) {\n\t\t\treturn Buffer.alloc(0);\n\t\t}\n\n\t\t// When Buffer is based on Uint8Array, we can just construct it from ArrayBuffer\n\t\tif (useFromArrayBuffer) {\n\t\t\tvar res = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n\t\t\t/*\n\t\t\t * Recheck result size, as offset/length doesn't work on Node.js <5.10\n\t\t\t * We just go to Uint8Array case if this fails\n\t\t\t */\n\t\t\tif (res.byteLength === data.byteLength) {\n\t\t\t\treturn res;\n\t\t\t}\n\t\t}\n\n\t\t// Convert to Uint8Array bytes and then to Buffer\n\t\tvar uint8 = data instanceof Uint8Array ? data : new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n\t\tvar result = Buffer.from(uint8);\n\n\t\t/*\n\t\t * Let's recheck that conversion succeeded\n\t\t * We have .length but not .byteLength when useFromArrayBuffer is false\n\t\t */\n\t\tif (result.length === data.byteLength) {\n\t\t\treturn result;\n\t\t}\n\t}\n\n\t/*\n\t * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over\n\t * Doesn't make sense with other TypedArray instances\n\t */\n\tif (useUint8Array && data instanceof Uint8Array) {\n\t\treturn Buffer.from(data);\n\t}\n\n\tvar isArr = isArray(data);\n\tif (isArr) {\n\t\tfor (var i = 0; i < data.length; i += 1) {\n\t\t\tvar x = data[i];\n\t\t\tif (\n\t\t\t\ttypeof x !== 'number'\n\t\t\t\t|| x < 0\n\t\t\t\t|| x > 255\n\t\t\t\t|| ~~x !== x // NaN and integer check\n\t\t\t) {\n\t\t\t\tthrow new RangeError('Array items must be numbers in the range 0-255.');\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Old Buffer polyfill on an engine that doesn't have TypedArray support\n\t * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed\n\t * Convert to our current Buffer implementation\n\t */\n\tif (\n\t\tisArr || (\n\t\t\tBuffer.isBuffer(data)\n\t\t\t&& data.constructor\n\t\t\t&& typeof data.constructor.isBuffer === 'function'\n\t\t\t&& data.constructor.isBuffer(data)\n\t\t)\n\t) {\n\t\treturn Buffer.from(data);\n\t}\n\n\tthrow new TypeError('The \"data\" argument must be a string, an Array, a Buffer, a Uint8Array, or a DataView.');\n};\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * Sends a **signed** transaction to the network\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\n * - JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\n *\n * @param client - Client to use\n * @param parameters - {@link SendRawTransactionParameters}\n * @returns The transaction hash. {@link SendRawTransactionReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendRawTransaction } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n *\n * const hash = await sendRawTransaction(client, {\n * serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\n * })\n */\nexport async function sendRawTransaction(client, { serializedTransaction }) {\n return client.request({\n method: 'eth_sendRawTransaction',\n params: [serializedTransaction],\n }, { retryCount: 0 });\n}\n//# sourceMappingURL=sendRawTransaction.js.map","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","/**\n * Map with a LRU (Least recently used) policy.\n *\n * @link https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU\n */\nexport class LruMap extends Map {\n constructor(size) {\n super();\n Object.defineProperty(this, \"maxSize\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.maxSize = size;\n }\n get(key) {\n const value = super.get(key);\n if (super.has(key) && value !== undefined) {\n this.delete(key);\n super.set(key, value);\n }\n return value;\n }\n set(key, value) {\n super.set(key, value);\n if (this.maxSize && this.size > this.maxSize) {\n const firstKey = this.keys().next().value;\n if (firstKey)\n this.delete(firstKey);\n }\n return this;\n }\n}\n//# sourceMappingURL=lru.js.map","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n\n'use strict';\n\nvar asn1 = require('asn1.js');\n\nexports.certificate = require('./certificate');\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int'](),\n\t\tthis.key('privateExponent')['int'](),\n\t\tthis.key('prime1')['int'](),\n\t\tthis.key('prime2')['int'](),\n\t\tthis.key('exponent1')['int'](),\n\t\tthis.key('exponent2')['int'](),\n\t\tthis.key('coefficient')['int']()\n\t);\n});\nexports.RSAPrivateKey = RSAPrivateKey;\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int']()\n\t);\n});\nexports.RSAPublicKey = RSAPublicKey;\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('none').null_().optional(),\n\t\tthis.key('curve').objid().optional(),\n\t\tthis.key('params').seq().obj(\n\t\t\tthis.key('p')['int'](),\n\t\t\tthis.key('q')['int'](),\n\t\t\tthis.key('g')['int']()\n\t\t).optional()\n\t);\n});\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\nexports.PublicKey = PublicKey;\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\nexports.PrivateKey = PrivateKeyInfo;\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').seq().obj(\n\t\t\tthis.key('id').objid(),\n\t\t\tthis.key('decrypt').seq().obj(\n\t\t\t\tthis.key('kde').seq().obj(\n\t\t\t\t\tthis.key('id').objid(),\n\t\t\t\t\tthis.key('kdeparams').seq().obj(\n\t\t\t\t\t\tthis.key('salt').octstr(),\n\t\t\t\t\t\tthis.key('iters')['int']()\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\tthis.key('cipher').seq().obj(\n\t\t\t\t\tthis.key('algo').objid(),\n\t\t\t\t\tthis.key('iv').octstr()\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo;\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('p')['int'](),\n\t\tthis.key('q')['int'](),\n\t\tthis.key('g')['int'](),\n\t\tthis.key('pub_key')['int'](),\n\t\tthis.key('priv_key')['int']()\n\t);\n});\nexports.DSAPrivateKey = DSAPrivateKey;\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n\tthis['int']();\n});\n\nvar ECParameters = asn1.define('ECParameters', function () {\n\tthis.choice({\n\t\tnamedCurve: this.objid()\n\t});\n});\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('privateKey').octstr(),\n\t\tthis.key('parameters').optional().explicit(0).use(ECParameters),\n\t\tthis.key('publicKey').optional().explicit(1).bitstr()\n\t);\n});\nexports.ECPrivateKey = ECPrivateKey;\n\nexports.signature = asn1.define('signature', function () {\n\tthis.seq().obj(\n\t\tthis.key('r')['int'](),\n\t\tthis.key('s')['int']()\n\t);\n});\n","import { execTyped } from '../../regex.js';\n// https://regexr.com/7gmok\nconst errorSignatureRegex = /^error (?[a-zA-Z$_][a-zA-Z0-9$_]*)\\((?.*?)\\)$/;\nexport function isErrorSignature(signature) {\n return errorSignatureRegex.test(signature);\n}\nexport function execErrorSignature(signature) {\n return execTyped(errorSignatureRegex, signature);\n}\n// https://regexr.com/7gmoq\nconst eventSignatureRegex = /^event (?[a-zA-Z$_][a-zA-Z0-9$_]*)\\((?.*?)\\)$/;\nexport function isEventSignature(signature) {\n return eventSignatureRegex.test(signature);\n}\nexport function execEventSignature(signature) {\n return execTyped(eventSignatureRegex, signature);\n}\n// https://regexr.com/7gmot\nconst functionSignatureRegex = /^function (?[a-zA-Z$_][a-zA-Z0-9$_]*)\\((?.*?)\\)(?: (?external|public{1}))?(?: (?pure|view|nonpayable|payable{1}))?(?: returns\\s?\\((?.*?)\\))?$/;\nexport function isFunctionSignature(signature) {\n return functionSignatureRegex.test(signature);\n}\nexport function execFunctionSignature(signature) {\n return execTyped(functionSignatureRegex, signature);\n}\n// https://regexr.com/7gmp3\nconst structSignatureRegex = /^struct (?[a-zA-Z$_][a-zA-Z0-9$_]*) \\{(?.*?)\\}$/;\nexport function isStructSignature(signature) {\n return structSignatureRegex.test(signature);\n}\nexport function execStructSignature(signature) {\n return execTyped(structSignatureRegex, signature);\n}\n// https://regexr.com/78u01\nconst constructorSignatureRegex = /^constructor\\((?.*?)\\)(?:\\s(?payable{1}))?$/;\nexport function isConstructorSignature(signature) {\n return constructorSignatureRegex.test(signature);\n}\nexport function execConstructorSignature(signature) {\n return execTyped(constructorSignatureRegex, signature);\n}\n// https://regexr.com/7srtn\nconst fallbackSignatureRegex = /^fallback\\(\\) external(?:\\s(?payable{1}))?$/;\nexport function isFallbackSignature(signature) {\n return fallbackSignatureRegex.test(signature);\n}\nexport function execFallbackSignature(signature) {\n return execTyped(fallbackSignatureRegex, signature);\n}\n// https://regexr.com/78u1k\nconst receiveSignatureRegex = /^receive\\(\\) external payable$/;\nexport function isReceiveSignature(signature) {\n return receiveSignatureRegex.test(signature);\n}\nexport const modifiers = new Set([\n 'memory',\n 'indexed',\n 'storage',\n 'calldata',\n]);\nexport const eventModifiers = new Set(['indexed']);\nexport const functionModifiers = new Set([\n 'calldata',\n 'memory',\n 'storage',\n]);\n//# sourceMappingURL=signatures.js.map","import * as Chunk from \"../../Chunk.js\";\nimport * as Dual from \"../../Function.js\";\nimport * as HashSet from \"../../HashSet.js\";\nimport { Structural } from \"../data.js\";\n/** @internal */\nexport const HashSetPatchTypeId = /*#__PURE__*/Symbol.for(\"effect/DifferHashSetPatch\");\nfunction variance(a) {\n return a;\n}\n/** @internal */\nconst PatchProto = {\n ...Structural.prototype,\n [HashSetPatchTypeId]: {\n _Value: variance,\n _Key: variance,\n _Patch: variance\n }\n};\nconst EmptyProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Empty\"\n});\nconst _empty = /*#__PURE__*/Object.create(EmptyProto);\n/** @internal */\nexport const empty = () => _empty;\nconst AndThenProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"AndThen\"\n});\n/** @internal */\nexport const makeAndThen = (first, second) => {\n const o = Object.create(AndThenProto);\n o.first = first;\n o.second = second;\n return o;\n};\nconst AddProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Add\"\n});\n/** @internal */\nexport const makeAdd = value => {\n const o = Object.create(AddProto);\n o.value = value;\n return o;\n};\nconst RemoveProto = /*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(PatchProto), {\n _tag: \"Remove\"\n});\n/** @internal */\nexport const makeRemove = value => {\n const o = Object.create(RemoveProto);\n o.value = value;\n return o;\n};\n/** @internal */\nexport const diff = (oldValue, newValue) => {\n const [removed, patch] = HashSet.reduce([oldValue, empty()], ([set, patch], value) => {\n if (HashSet.has(value)(set)) {\n return [HashSet.remove(value)(set), patch];\n }\n return [set, combine(makeAdd(value))(patch)];\n })(newValue);\n return HashSet.reduce(patch, (patch, value) => combine(makeRemove(value))(patch))(removed);\n};\n/** @internal */\nexport const combine = /*#__PURE__*/Dual.dual(2, (self, that) => makeAndThen(self, that));\n/** @internal */\nexport const patch = /*#__PURE__*/Dual.dual(2, (self, oldValue) => {\n if (self._tag === \"Empty\") {\n return oldValue;\n }\n let set = oldValue;\n let patches = Chunk.of(self);\n while (Chunk.isNonEmpty(patches)) {\n const head = Chunk.headNonEmpty(patches);\n const tail = Chunk.tailNonEmpty(patches);\n switch (head._tag) {\n case \"Empty\":\n {\n patches = tail;\n break;\n }\n case \"AndThen\":\n {\n patches = Chunk.prepend(head.first)(Chunk.prepend(head.second)(tail));\n break;\n }\n case \"Add\":\n {\n set = HashSet.add(head.value)(set);\n patches = tail;\n break;\n }\n case \"Remove\":\n {\n set = HashSet.remove(head.value)(set);\n patches = tail;\n }\n }\n }\n return set;\n});\n//# sourceMappingURL=hashSetPatch.js.map","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n if(buf[p.place] === 0x00) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","import * as Hash from \"./Hash.js\";\nimport { hasProperty } from \"./Predicate.js\";\nimport { structuralRegionState } from \"./Utils.js\";\n/**\n * @since 2.0.0\n * @category symbols\n */\nexport const symbol = /*#__PURE__*/Symbol.for(\"effect/Equal\");\nexport function equals() {\n if (arguments.length === 1) {\n return self => compareBoth(self, arguments[0]);\n }\n return compareBoth(arguments[0], arguments[1]);\n}\nfunction compareBoth(self, that) {\n if (self === that) {\n return true;\n }\n const selfType = typeof self;\n if (selfType !== typeof that) {\n return false;\n }\n if (selfType === \"object\" || selfType === \"function\") {\n if (self !== null && that !== null) {\n if (isEqual(self) && isEqual(that)) {\n if (Hash.hash(self) === Hash.hash(that) && self[symbol](that)) {\n return true;\n } else {\n return structuralRegionState.enabled && structuralRegionState.tester ? structuralRegionState.tester(self, that) : false;\n }\n } else if (self instanceof Date && that instanceof Date) {\n const t1 = self.getTime();\n const t2 = that.getTime();\n return t1 === t2 || Number.isNaN(t1) && Number.isNaN(t2);\n } else if (self instanceof URL && that instanceof URL) {\n return self.href === that.href;\n }\n }\n if (structuralRegionState.enabled) {\n if (Array.isArray(self) && Array.isArray(that)) {\n return self.length === that.length && self.every((v, i) => compareBoth(v, that[i]));\n }\n if (Object.getPrototypeOf(self) === Object.prototype && Object.getPrototypeOf(self) === Object.prototype) {\n const keysSelf = Object.keys(self);\n const keysThat = Object.keys(that);\n if (keysSelf.length === keysThat.length) {\n for (const key of keysSelf) {\n // @ts-expect-error\n if (!(key in that && compareBoth(self[key], that[key]))) {\n return structuralRegionState.tester ? structuralRegionState.tester(self, that) : false;\n }\n }\n return true;\n }\n }\n return structuralRegionState.tester ? structuralRegionState.tester(self, that) : false;\n }\n }\n return structuralRegionState.enabled && structuralRegionState.tester ? structuralRegionState.tester(self, that) : false;\n}\n/**\n * @since 2.0.0\n * @category guards\n */\nexport const isEqual = u => hasProperty(u, symbol);\n/**\n * @since 2.0.0\n * @category instances\n */\nexport const equivalence = () => equals;\n//# sourceMappingURL=Equal.js.map","import { stringify } from '../utils/stringify.js';\nimport { BaseError } from './base.js';\nimport { getUrl } from './utils.js';\nexport class HttpRequestError extends BaseError {\n constructor({ body, cause, details, headers, status, url, }) {\n super('HTTP request failed.', {\n cause,\n details,\n metaMessages: [\n status && `Status: ${status}`,\n `URL: ${getUrl(url)}`,\n body && `Request body: ${stringify(body)}`,\n ].filter(Boolean),\n name: 'HttpRequestError',\n });\n Object.defineProperty(this, \"body\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"headers\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"status\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"url\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.body = body;\n this.headers = headers;\n this.status = status;\n this.url = url;\n }\n}\nexport class WebSocketRequestError extends BaseError {\n constructor({ body, cause, details, url, }) {\n super('WebSocket request failed.', {\n cause,\n details,\n metaMessages: [\n `URL: ${getUrl(url)}`,\n body && `Request body: ${stringify(body)}`,\n ].filter(Boolean),\n name: 'WebSocketRequestError',\n });\n Object.defineProperty(this, \"url\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.url = url;\n }\n}\nexport class RpcRequestError extends BaseError {\n constructor({ body, error, url, }) {\n super('RPC Request failed.', {\n cause: error,\n details: error.message,\n metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`],\n name: 'RpcRequestError',\n });\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"url\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.code = error.code;\n this.data = error.data;\n this.url = url;\n }\n}\nexport class SocketClosedError extends BaseError {\n constructor({ url, } = {}) {\n super('The socket has been closed.', {\n metaMessages: [url && `URL: ${getUrl(url)}`].filter(Boolean),\n name: 'SocketClosedError',\n });\n Object.defineProperty(this, \"url\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.url = url;\n }\n}\nexport class TimeoutError extends BaseError {\n constructor({ body, url, }) {\n super('The request took too long to respond.', {\n details: 'The request timed out.',\n metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`],\n name: 'TimeoutError',\n });\n Object.defineProperty(this, \"url\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.url = url;\n }\n}\n//# sourceMappingURL=request.js.map","import { solidityError, solidityPanic } from '../../constants/solidity.js';\nimport { AbiDecodingZeroDataError, AbiErrorSignatureNotFoundError, } from '../../errors/abi.js';\nimport { slice } from '../data/slice.js';\nimport { toFunctionSelector, } from '../hash/toFunctionSelector.js';\nimport { decodeAbiParameters, } from './decodeAbiParameters.js';\nimport { formatAbiItem } from './formatAbiItem.js';\nexport function decodeErrorResult(parameters) {\n const { abi, data } = parameters;\n const signature = slice(data, 0, 4);\n if (signature === '0x')\n throw new AbiDecodingZeroDataError();\n const abi_ = [...(abi || []), solidityError, solidityPanic];\n const abiItem = abi_.find((x) => x.type === 'error' && signature === toFunctionSelector(formatAbiItem(x)));\n if (!abiItem)\n throw new AbiErrorSignatureNotFoundError(signature, {\n docsPath: '/docs/contract/decodeErrorResult',\n });\n return {\n abiItem,\n args: 'inputs' in abiItem && abiItem.inputs && abiItem.inputs.length > 0\n ? decodeAbiParameters(abiItem.inputs, slice(data, 4))\n : undefined,\n errorName: abiItem.name,\n };\n}\n//# sourceMappingURL=decodeErrorResult.js.map","var Reporter = require('../base').Reporter;\nvar EncoderBuffer = require('../base').EncoderBuffer;\nvar DecoderBuffer = require('../base').DecoderBuffer;\nvar assert = require('minimalistic-assert');\n\n// Supported tags\nvar tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nvar methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nvar overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent) {\n var state = {};\n this._baseState = state;\n\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nvar stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n var state = this._baseState;\n var cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n var res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n var state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n var clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n var state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n var state = this._baseState;\n\n // Filter children and args\n var children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n var res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n var value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n var state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n var state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n var state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n var state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n var state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n var state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n var state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n var state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n var result = state['default'];\n var present = true;\n\n var prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n var tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n var save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n var prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n var explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n var start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n if (state.any)\n var save = input.save();\n var body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any)\n result = result;\n else if (state.choice === null)\n result = this._decodeGeneric(state.tag, input, options);\n else\n result = this._decodeChoice(input, options);\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n var data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n var state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n var state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n var state = this._baseState;\n var result = null;\n var match = false;\n\n Object.keys(state.choice).some(function(key) {\n var save = input.save();\n var node = state.choice[key];\n try {\n var value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n var state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n var result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n var result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default']\n else\n return;\n }\n\n // Encode children first\n var content = null;\n var primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n var prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n var res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n var child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n var state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n var result;\n if (!state.any && state.choice === null) {\n var tag = state.implicit !== null ? state.implicit : state.tag;\n var cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n var state = this._baseState;\n\n var node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n var state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(str);\n};\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","/** @internal */\nexport const OP_STATE_PENDING = \"Pending\";\n/** @internal */\nexport const OP_STATE_DONE = \"Done\";\n//# sourceMappingURL=deferred.js.map","import * as internal from \"./internal/ref.js\";\n/**\n * @since 2.0.0\n * @category symbols\n */\nexport const RefTypeId = internal.RefTypeId;\n/**\n * @since 2.0.0\n * @category constructors\n */\nexport const make = internal.make;\n/**\n * @since 2.0.0\n * @category getters\n */\nexport const get = internal.get;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const getAndSet = internal.getAndSet;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const getAndUpdate = internal.getAndUpdate;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const getAndUpdateSome = internal.getAndUpdateSome;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const modify = internal.modify;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const modifySome = internal.modifySome;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const set = internal.set;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const setAndGet = internal.setAndGet;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const update = internal.update;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const updateAndGet = internal.updateAndGet;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const updateSome = internal.updateSome;\n/**\n * @since 2.0.0\n * @category utils\n */\nexport const updateSomeAndGet = internal.updateSomeAndGet;\n/**\n * @since 2.0.0\n * @category unsafe\n */\nexport const unsafeMake = internal.unsafeMake;\n//# sourceMappingURL=Ref.js.map","import { DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';\nimport { InvalidInputRpcError } from '../../errors/rpc.js';\nimport { decodeEventLog } from '../../utils/abi/decodeEventLog.js';\nimport { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { formatLog } from '../../utils/formatters/log.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { createContractEventFilter } from './createContractEventFilter.js';\nimport { getBlockNumber } from './getBlockNumber.js';\nimport { getContractEvents, } from './getContractEvents.js';\nimport { getFilterChanges } from './getFilterChanges.js';\nimport { uninstallFilter } from './uninstallFilter.js';\n/**\n * Watches and returns emitted contract event logs.\n *\n * - Docs: https://viem.sh/docs/contract/watchContractEvent\n *\n * This Action will batch up all the event logs found within the [`pollingInterval`](https://viem.sh/docs/contract/watchContractEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/contract/watchContractEvent#onLogs).\n *\n * `watchContractEvent` will attempt to create an [Event Filter](https://viem.sh/docs/contract/createContractEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchContractEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchContractEventParameters}\n * @returns A function that can be invoked to stop watching for new event logs. {@link WatchContractEventReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchContractEvent } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = watchContractEvent(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['event Transfer(address indexed from, address indexed to, uint256 value)']),\n * eventName: 'Transfer',\n * args: { from: '0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b' },\n * onLogs: (logs) => console.log(logs),\n * })\n */\nexport function watchContractEvent(client, parameters) {\n const { abi, address, args, batch = true, eventName, fromBlock, onError, onLogs, poll: poll_, pollingInterval = client.pollingInterval, strict: strict_, } = parameters;\n const enablePolling = (() => {\n if (typeof poll_ !== 'undefined')\n return poll_;\n if (typeof fromBlock === 'bigint')\n return true;\n if (client.transport.type === 'webSocket' ||\n client.transport.type === 'ipc')\n return false;\n if (client.transport.type === 'fallback' &&\n (client.transport.transports[0].config.type === 'webSocket' ||\n client.transport.transports[0].config.type === 'ipc'))\n return false;\n return true;\n })();\n const pollContractEvent = () => {\n const strict = strict_ ?? false;\n const observerId = stringify([\n 'watchContractEvent',\n address,\n args,\n batch,\n client.uid,\n eventName,\n pollingInterval,\n strict,\n fromBlock,\n ]);\n return observe(observerId, { onLogs, onError }, (emit) => {\n let previousBlockNumber;\n if (fromBlock !== undefined)\n previousBlockNumber = fromBlock - 1n;\n let filter;\n let initialized = false;\n const unwatch = poll(async () => {\n if (!initialized) {\n try {\n filter = (await getAction(client, createContractEventFilter, 'createContractEventFilter')({\n abi,\n address,\n args: args,\n eventName: eventName,\n strict: strict,\n fromBlock,\n }));\n }\n catch { }\n initialized = true;\n return;\n }\n try {\n let logs;\n if (filter) {\n logs = await getAction(client, getFilterChanges, 'getFilterChanges')({ filter });\n }\n else {\n // If the filter doesn't exist, we will fall back to use `getLogs`.\n // The fall back exists because some RPC Providers do not support filters.\n // Fetch the block number to use for `getLogs`.\n const blockNumber = await getAction(client, getBlockNumber, 'getBlockNumber')({});\n // If the block number has changed, we will need to fetch the logs.\n // If the block number doesn't exist, we are yet to reach the first poll interval,\n // so do not emit any logs.\n if (previousBlockNumber && previousBlockNumber < blockNumber) {\n logs = await getAction(client, getContractEvents, 'getContractEvents')({\n abi,\n address,\n args,\n eventName,\n fromBlock: previousBlockNumber + 1n,\n toBlock: blockNumber,\n strict,\n });\n }\n else {\n logs = [];\n }\n previousBlockNumber = blockNumber;\n }\n if (logs.length === 0)\n return;\n if (batch)\n emit.onLogs(logs);\n else\n for (const log of logs)\n emit.onLogs([log]);\n }\n catch (err) {\n // If a filter has been set and gets uninstalled, providers will throw an InvalidInput error.\n // Reinitialize the filter when this occurs\n if (filter && err instanceof InvalidInputRpcError)\n initialized = false;\n emit.onError?.(err);\n }\n }, {\n emitOnBegin: true,\n interval: pollingInterval,\n });\n return async () => {\n if (filter)\n await getAction(client, uninstallFilter, 'uninstallFilter')({ filter });\n unwatch();\n };\n });\n };\n const subscribeContractEvent = () => {\n const strict = strict_ ?? false;\n const observerId = stringify([\n 'watchContractEvent',\n address,\n args,\n batch,\n client.uid,\n eventName,\n pollingInterval,\n strict,\n ]);\n let active = true;\n let unsubscribe = () => (active = false);\n return observe(observerId, { onLogs, onError }, (emit) => {\n ;\n (async () => {\n try {\n const transport = (() => {\n if (client.transport.type === 'fallback') {\n const transport = client.transport.transports.find((transport) => transport.config.type === 'webSocket' ||\n transport.config.type === 'ipc');\n if (!transport)\n return client.transport;\n return transport.value;\n }\n return client.transport;\n })();\n const topics = eventName\n ? encodeEventTopics({\n abi: abi,\n eventName: eventName,\n args,\n })\n : [];\n const { unsubscribe: unsubscribe_ } = await transport.subscribe({\n params: ['logs', { address, topics }],\n onData(data) {\n if (!active)\n return;\n const log = data.result;\n try {\n const { eventName, args } = decodeEventLog({\n abi: abi,\n data: log.data,\n topics: log.topics,\n strict: strict_,\n });\n const formatted = formatLog(log, {\n args,\n eventName: eventName,\n });\n emit.onLogs([formatted]);\n }\n catch (err) {\n let eventName;\n let isUnnamed;\n if (err instanceof DecodeLogDataMismatch ||\n err instanceof DecodeLogTopicsMismatch) {\n // If strict mode is on, and log data/topics do not match event definition, skip.\n if (strict_)\n return;\n eventName = err.abiItem.name;\n isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));\n }\n // Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).\n const formatted = formatLog(log, {\n args: isUnnamed ? [] : {},\n eventName,\n });\n emit.onLogs([formatted]);\n }\n },\n onError(error) {\n emit.onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return () => unsubscribe();\n });\n };\n return enablePolling ? pollContractEvent() : subscribeContractEvent();\n}\n//# sourceMappingURL=watchContractEvent.js.map","/*!\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\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","import { hashSignature } from './hashSignature.js';\nimport { toSignature } from './toSignature.js';\n/**\n * Returns the hash (of the function/event signature) for a given event or function definition.\n */\nexport function toSignatureHash(fn) {\n return hashSignature(toSignature(fn));\n}\n//# sourceMappingURL=toSignatureHash.js.map","import { toBytes } from '../encoding/toBytes.js';\nimport { keccak256 } from './keccak256.js';\nconst hash = (value) => keccak256(toBytes(value));\nexport function hashSignature(sig) {\n return hash(sig);\n}\n//# sourceMappingURL=hashSignature.js.map","import { BaseError } from '../../errors/base.js';\nexport function normalizeSignature(signature) {\n let active = true;\n let current = '';\n let level = 0;\n let result = '';\n let valid = false;\n for (let i = 0; i < signature.length; i++) {\n const char = signature[i];\n // If the character is a separator, we want to reactivate.\n if (['(', ')', ','].includes(char))\n active = true;\n // If the character is a \"level\" token, we want to increment/decrement.\n if (char === '(')\n level++;\n if (char === ')')\n level--;\n // If we aren't active, we don't want to mutate the result.\n if (!active)\n continue;\n // If level === 0, we are at the definition level.\n if (level === 0) {\n if (char === ' ' && ['event', 'function', ''].includes(result))\n result = '';\n else {\n result += char;\n // If we are at the end of the definition, we must be finished.\n if (char === ')') {\n valid = true;\n break;\n }\n }\n continue;\n }\n // Ignore spaces\n if (char === ' ') {\n // If the previous character is a separator, and the current section isn't empty, we want to deactivate.\n if (signature[i - 1] !== ',' && current !== ',' && current !== ',(') {\n current = '';\n active = false;\n }\n continue;\n }\n result += char;\n current += char;\n }\n if (!valid)\n throw new BaseError('Unable to normalize signature.');\n return result;\n}\n//# sourceMappingURL=normalizeSignature.js.map","import { formatAbiItem } from 'abitype';\nimport { normalizeSignature, } from './normalizeSignature.js';\n/**\n * Returns the signature for a given function or event definition.\n *\n * @example\n * const signature = toSignature('function ownerOf(uint256 tokenId)')\n * // 'ownerOf(uint256)'\n *\n * @example\n * const signature_3 = toSignature({\n * name: 'ownerOf',\n * type: 'function',\n * inputs: [{ name: 'tokenId', type: 'uint256' }],\n * outputs: [],\n * stateMutability: 'view',\n * })\n * // 'ownerOf(uint256)'\n */\nexport const toSignature = (def) => {\n const def_ = (() => {\n if (typeof def === 'string')\n return def;\n return formatAbiItem(def);\n })();\n return normalizeSignature(def_);\n};\n//# sourceMappingURL=toSignature.js.map","import { hexToNumber, } from '../../utils/encoding/fromHex.js';\n/**\n * Returns the chain ID associated with the current network.\n *\n * - Docs: https://viem.sh/docs/actions/public/getChainId\n * - JSON-RPC Methods: [`eth_chainId`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_chainid)\n *\n * @param client - Client to use\n * @returns The current chain ID. {@link GetChainIdReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getChainId } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const chainId = await getChainId(client)\n * // 1\n */\nexport async function getChainId(client) {\n const chainIdHex = await client.request({\n method: 'eth_chainId',\n }, { dedupe: true });\n return hexToNumber(chainIdHex);\n}\n//# sourceMappingURL=getChainId.js.map","export function parseAccount(account) {\n if (typeof account === 'string')\n return { address: account, type: 'json-rpc' };\n return account;\n}\n//# sourceMappingURL=parseAccount.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\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 this.length = num === 0 ? 1 : this.length;\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","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","/**\n * # HashSet\n *\n * An immutable `HashSet` provides a collection of unique values with efficient\n * lookup, insertion and removal. Once created, a `HashSet` cannot be modified;\n * any operation that would alter the set instead returns a new `HashSet` with\n * the changes. This immutability offers benefits like predictable state\n * management and easier reasoning about your code.\n *\n * ## What Problem Does It Solve?\n *\n * `HashSet` solves the problem of maintaining an unsorted collection where each\n * value appears exactly once, with fast operations for checking membership and\n * adding/removing values.\n *\n * ## When to Use\n *\n * Use `HashSet` when you need:\n *\n * - A collection with no duplicate values\n * - Efficient membership testing (**`O(1)`** average complexity)\n * - Set operations like union, intersection, and difference\n * - An immutable data structure that preserves functional programming patterns\n *\n * ## Advanced Features\n *\n * HashSet provides operations for:\n *\n * - Transforming sets with map and flatMap\n * - Filtering elements with filter\n * - Combining sets with union, intersection and difference\n * - Performance optimizations via mutable operations in controlled contexts\n *\n * ## Performance Characteristics\n *\n * - **Lookup** operations ({@link module:HashSet.has}): **`O(1)`** average time\n * complexity\n * - **Insertion** operations ({@link module:HashSet.add}): **`O(1)`** average time\n * complexity\n * - **Removal** operations ({@link module:HashSet.remove}): **`O(1)`** average\n * time complexity\n * - **Set** operations ({@link module:HashSet.union},\n * {@link module:HashSet.intersection}): **`O(n)`** where n is the size of the\n * smaller set\n * - **Iteration**: **`O(n)`** where n is the size of the set\n *\n * The HashSet data structure implements the following traits:\n *\n * - {@link Iterable}: allows iterating over the values in the set\n * - {@link Equal}: allows comparing two sets for value-based equality\n * - {@link Pipeable}: allows chaining operations with the pipe operator\n * - {@link Inspectable}: allows inspecting the contents of the set\n *\n * ## Operations Reference\n *\n * | Category | Operation | Description | Complexity |\n * | ------------ | ----------------------------------- | ------------------------------------------- | ---------- |\n * | constructors | {@link module:HashSet.empty} | Creates an empty HashSet | O(1) |\n * | constructors | {@link module:HashSet.fromIterable} | Creates a HashSet from an iterable | O(n) |\n * | constructors | {@link module:HashSet.make} | Creates a HashSet from multiple values | O(n) |\n * | | | | |\n * | elements | {@link module:HashSet.has} | Checks if a value exists in the set | O(1) avg |\n * | elements | {@link module:HashSet.some} | Checks if any element satisfies a predicate | O(n) |\n * | elements | {@link module:HashSet.every} | Checks if all elements satisfy a predicate | O(n) |\n * | elements | {@link module:HashSet.isSubset} | Checks if a set is a subset of another | O(n) |\n * | | | | |\n * | getters | {@link module:HashSet.values} | Gets an iterator of all values | O(1) |\n * | getters | {@link module:HashSet.toValues} | Gets an array of all values | O(n) |\n * | getters | {@link module:HashSet.size} | Gets the number of elements | O(1) |\n * | | | | |\n * | mutations | {@link module:HashSet.add} | Adds a value to the set | O(1) avg |\n * | mutations | {@link module:HashSet.remove} | Removes a value from the set | O(1) avg |\n * | mutations | {@link module:HashSet.toggle} | Toggles a value's presence | O(1) avg |\n * | | | | |\n * | operations | {@link module:HashSet.difference} | Computes set difference (A - B) | O(n) |\n * | operations | {@link module:HashSet.intersection} | Computes set intersection (A ∩ B) | O(n) |\n * | operations | {@link module:HashSet.union} | Computes set union (A ∪ B) | O(n) |\n * | | | | |\n * | mapping | {@link module:HashSet.map} | Transforms each element | O(n) |\n * | | | | |\n * | sequencing | {@link module:HashSet.flatMap} | Transforms and flattens elements | O(n) |\n * | | | | |\n * | traversing | {@link module:HashSet.forEach} | Applies a function to each element | O(n) |\n * | | | | |\n * | folding | {@link module:HashSet.reduce} | Reduces the set to a single value | O(n) |\n * | | | | |\n * | filtering | {@link module:HashSet.filter} | Keeps elements that satisfy a predicate | O(n) |\n * | | | | |\n * | partitioning | {@link module:HashSet.partition} | Splits into two sets by a predicate | O(n) |\n *\n * ## Notes\n *\n * ### Composability with the Effect Ecosystem:\n *\n * This `HashSet` is designed to work seamlessly within the Effect ecosystem. It\n * implements the {@link Iterable}, {@link Equal}, {@link Pipeable}, and\n * {@link Inspectable} traits from Effect. This ensures compatibility with other\n * Effect data structures and functionalities. For example, you can easily use\n * Effect's `pipe` method to chain operations on the `HashSet`.\n *\n * **Equality of Elements with Effect's {@link Equal `Equal`} Trait:**\n *\n * This `HashSet` relies on Effect's {@link Equal} trait to determine the\n * uniqueness of elements within the set. The way equality is checked depends on\n * the type of the elements:\n *\n * - **Primitive Values:** For primitive JavaScript values like strings, numbers,\n * booleans, `null`, and `undefined`, equality is determined by their value\n * (similar to the `===` operator).\n * - **Objects and Custom Types:** For objects and other custom types, equality is\n * determined by whether those types implement the {@link Equal} interface\n * themselves. If an element type implements `Equal`, the `HashSet` will\n * delegate to that implementation to perform the equality check. This allows\n * you to define custom logic for determining when two instances of your\n * objects should be considered equal based on their properties, rather than\n * just their object identity.\n *\n * ```ts\n * import { Equal, Hash, HashSet } from \"effect\"\n *\n * class Person implements Equal.Equal {\n * constructor(\n * readonly id: number, // Unique identifier\n * readonly name: string,\n * readonly age: number\n * ) {}\n *\n * // Define equality based on id, name, and age\n * [Equal.symbol](that: Equal.Equal): boolean {\n * if (that instanceof Person) {\n * return (\n * Equal.equals(this.id, that.id) &&\n * Equal.equals(this.name, that.name) &&\n * Equal.equals(this.age, that.age)\n * )\n * }\n * return false\n * }\n *\n * // Generate a hash code based on the unique id\n * [Hash.symbol](): number {\n * return Hash.hash(this.id)\n * }\n * }\n *\n * // Creating a HashSet with objects that implement the Equal interface\n * const set = HashSet.empty().pipe(\n * HashSet.add(new Person(1, \"Alice\", 30)),\n * HashSet.add(new Person(1, \"Alice\", 30))\n * )\n *\n * // HashSet recognizes them as equal, so only one element is stored\n * console.log(HashSet.size(set))\n * // Output: 1\n * ```\n *\n * **Simplifying Equality and Hashing with `Data` and `Schema`:**\n *\n * Effect's {@link Data} and {@link Schema `Schema.Data`} modules offer powerful\n * ways to automatically handle the implementation of both the {@link Equal} and\n * {@link Hash} traits for your custom data structures.\n *\n * - **`Data` Module:** By using constructors like `Data.struct`, `Data.tuple`,\n * `Data.array`, or `Data.case` to define your data types, Effect\n * automatically generates the necessary implementations for value-based\n * equality and consistent hashing. This significantly reduces boilerplate and\n * ensures correctness.\n *\n * ```ts\n * import { HashSet, Data, Equal } from \"effect\"\n * import assert from \"node:assert/strict\"\n *\n * // Data.* implements the `Equal` traits for us\n * const person1 = Data.struct({ id: 1, name: \"Alice\", age: 30 })\n * const person2 = Data.struct({ id: 1, name: \"Alice\", age: 30 })\n *\n * assert(Equal.equals(person1, person2))\n *\n * const set = HashSet.empty().pipe(\n * HashSet.add(person1),\n * HashSet.add(person2)\n * )\n *\n * // HashSet recognizes them as equal, so only one element is stored\n * console.log(HashSet.size(set)) // Output: 1\n * ```\n *\n * - **`Schema` Module:** When defining data schemas using the {@link Schema}\n * module, you can use `Schema.Data` to automatically include the `Equal` and\n * `Hash` traits in the decoded objects. This is particularly important when\n * working with `HashSet`. **For decoded objects to be correctly recognized as\n * equal within a `HashSet`, ensure that the schema for those objects is\n * defined using `Schema.Data`.**\n *\n * ```ts\n * import { Equal, HashSet, Schema } from \"effect\"\n * import assert from \"node:assert/strict\"\n *\n * // Schema.Data implements the `Equal` traits for us\n * const PersonSchema = Schema.Data(\n * Schema.Struct({\n * id: Schema.Number,\n * name: Schema.String,\n * age: Schema.Number\n * })\n * )\n *\n * const Person = Schema.decode(PersonSchema)\n *\n * const person1 = Person({ id: 1, name: \"Alice\", age: 30 })\n * const person2 = Person({ id: 1, name: \"Alice\", age: 30 })\n *\n * assert(Equal.equals(person1, person2)) // Output: true\n *\n * const set = HashSet.empty().pipe(\n * HashSet.add(person1),\n * HashSet.add(person2)\n * )\n *\n * // HashSet thanks to Schema.Data implementation of the `Equal` trait, recognizes the two Person as equal, so only one element is stored\n * console.log(HashSet.size(set)) // Output: 1\n * ```\n *\n * ### Interoperability with the JavaScript Runtime:\n *\n * To interoperate with the regular JavaScript runtime, Effect's `HashSet`\n * provides methods to access its elements in formats readily usable by\n * JavaScript APIs: {@link values `HashSet.values`},\n * {@link toValues `HashSet.toValues`}\n *\n * ```ts\n * import { HashSet } from \"effect\"\n *\n * const hashSet: HashSet.HashSet = HashSet.make(1, 2, 3)\n *\n * // Using HashSet.values to convert HashSet.HashSet to IterableIterator\n * const iterable: IterableIterator = HashSet.values(hashSet)\n *\n * console.log(...iterable) // Logs: 1 2 3\n *\n * // Using HashSet.toValues to convert HashSet.HashSet to Array\n * const array: Array = HashSet.toValues(hashSet)\n *\n * console.log(array) // Logs: [ 1, 2, 3 ]\n * ```\n *\n * Be mindful of performance implications (both time and space complexity) when\n * frequently converting between Effect's immutable HashSet and mutable\n * JavaScript data structures, especially for large collections.\n *\n * @module HashSet\n * @since 2.0.0\n */\nimport * as HS from \"./internal/hashSet.js\";\nconst TypeId = HS.HashSetTypeId;\n/**\n * @memberof HashSet\n * @since 2.0.0\n * @category refinements\n */\nexport const isHashSet = HS.isHashSet;\n/**\n * Creates an empty `HashSet`.\n *\n * Time complexity: **`O(1)`**\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category constructors\n * @example\n *\n * ```ts\n * import { HashSet, pipe } from \"effect\"\n *\n * console.log(\n * pipe(\n * // Provide a type argument to create a HashSet of a specific type\n * HashSet.empty(),\n * HashSet.add(1),\n * HashSet.add(1), // Notice the duplicate\n * HashSet.add(2),\n * HashSet.toValues\n * )\n * ) // Output: [1, 2]\n * ```\n *\n * @see Other `HashSet` constructors are {@link module:HashSet.make} {@link module:HashSet.fromIterable}\n */\nexport const empty = HS.empty;\n/**\n * Creates a new `HashSet` from an iterable collection of values.\n *\n * Time complexity: **`O(n)`** where n is the number of elements in the iterable\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category constructors\n * @example\n *\n * ```ts\n * // Creating a HashSet from an Array\n * import { HashSet, pipe } from \"effect\"\n *\n * console.log(\n * pipe(\n * [1, 2, 3, 4, 5, 1, 2, 3], // Array is an Iterable; Note the duplicates.\n * HashSet.fromIterable,\n * HashSet.toValues\n * )\n * ) // Output: [1, 2, 3, 4, 5]\n * ```\n *\n * @example\n *\n * ```ts\n * // Creating a HashSet from a Set\n * import { HashSet, pipe } from \"effect\"\n *\n * console.log(\n * pipe(\n * new Set([\"apple\", \"banana\", \"orange\", \"apple\"]), // Set is an Iterable\n * HashSet.fromIterable,\n * HashSet.toValues\n * )\n * ) // Output: [\"apple\", \"banana\", \"orange\"]\n * ```\n *\n * @example\n *\n * ```ts\n * // Creating a HashSet from a Generator\n * import { HashSet } from \"effect\"\n *\n * // Generator functions return iterables\n * function* fibonacci(n: number): Generator {\n * let [a, b] = [0, 1]\n * for (let i = 0; i < n; i++) {\n * yield a\n * ;[a, b] = [b, a + b]\n * }\n * }\n *\n * // Create a HashSet from the first 10 Fibonacci numbers\n * const fibonacciSet = HashSet.fromIterable(fibonacci(10))\n *\n * console.log(HashSet.toValues(fibonacciSet))\n * // Outputs: [0, 1, 2, 3, 5, 8, 13, 21, 34] but in unsorted order\n * ```\n *\n * @example\n *\n * ```ts\n * // Creating a HashSet from another HashSet\n * import { HashSet, pipe } from \"effect\"\n *\n * console.log(\n * pipe(\n * // since HashSet implements the Iterable interface, we can use it to create a new HashSet\n * HashSet.make(1, 2, 3, 4),\n * HashSet.fromIterable,\n * HashSet.toValues // turns the HashSet back into an array\n * )\n * ) // Output: [1, 2, 3, 4]\n * ```\n *\n * @example\n *\n * ```ts\n * // Creating a HashSet from other Effect's data structures like Chunk\n * import { Chunk, HashSet, pipe } from \"effect\"\n *\n * console.log(\n * pipe(\n * Chunk.make(1, 2, 3, 4), // Iterable\n * HashSet.fromIterable,\n * HashSet.toValues // turns the HashSet back into an array\n * )\n * ) // Outputs: [1, 2, 3, 4]\n * ```\n *\n * @see Other `HashSet` constructors are {@link module:HashSet.empty} {@link module:HashSet.make}\n */\nexport const fromIterable = HS.fromIterable;\n/**\n * Construct a new `HashSet` from a variable number of values.\n *\n * Time complexity: **`O(n)`** where n is the number of elements\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category constructors\n * @example\n *\n * ```ts\n * import { Equal, Hash, HashSet, pipe } from \"effect\"\n * import assert from \"node:assert/strict\"\n *\n * class Character implements Equal.Equal {\n * readonly name: string\n * readonly trait: string\n *\n * constructor(name: string, trait: string) {\n * this.name = name\n * this.trait = trait\n * }\n *\n * // Define equality based on name, and trait\n * [Equal.symbol](that: Equal.Equal): boolean {\n * if (that instanceof Character) {\n * return (\n * Equal.equals(this.name, that.name) &&\n * Equal.equals(this.trait, that.trait)\n * )\n * }\n * return false\n * }\n *\n * // Generate a hash code based on the sum of the character's name and trait\n * [Hash.symbol](): number {\n * return Hash.hash(this.name + this.trait)\n * }\n *\n * static readonly of = (name: string, trait: string): Character => {\n * return new Character(name, trait)\n * }\n * }\n *\n * assert.strictEqual(\n * Equal.equals(\n * HashSet.make(\n * Character.of(\"Alice\", \"Curious\"),\n * Character.of(\"Alice\", \"Curious\"),\n * Character.of(\"White Rabbit\", \"Always late\"),\n * Character.of(\"Mad Hatter\", \"Tea enthusiast\")\n * ),\n * // Is the same as adding each character to an empty set\n * pipe(\n * HashSet.empty(),\n * HashSet.add(Character.of(\"Alice\", \"Curious\")),\n * HashSet.add(Character.of(\"Alice\", \"Curious\")), // Alice tried to attend twice!\n * HashSet.add(Character.of(\"White Rabbit\", \"Always late\")),\n * HashSet.add(Character.of(\"Mad Hatter\", \"Tea enthusiast\"))\n * )\n * ),\n * true,\n * \"`HashSet.make` and `HashSet.empty() + HashSet.add()` should be equal\"\n * )\n *\n * assert.strictEqual(\n * Equal.equals(\n * HashSet.make(\n * Character.of(\"Alice\", \"Curious\"),\n * Character.of(\"Alice\", \"Curious\"),\n * Character.of(\"White Rabbit\", \"Always late\"),\n * Character.of(\"Mad Hatter\", \"Tea enthusiast\")\n * ),\n * HashSet.fromIterable([\n * Character.of(\"Alice\", \"Curious\"),\n * Character.of(\"Alice\", \"Curious\"),\n * Character.of(\"White Rabbit\", \"Always late\"),\n * Character.of(\"Mad Hatter\", \"Tea enthusiast\")\n * ])\n * ),\n * true,\n * \"`HashSet.make` and `HashSet.fromIterable` should be equal\"\n * )\n * ```\n *\n * @see Other `HashSet` constructors are {@link module:HashSet.fromIterable} {@link module:HashSet.empty}\n */\nexport const make = HS.make;\n/**\n * Checks if the specified value exists in the `HashSet`.\n *\n * Time complexity: **`O(1)`** average\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category elements\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(HashSet.make(0, 1, 2), HashSet.has(3)) // false\n *\n * // or piped with the pipe function\n * HashSet.make(0, 1, 2).pipe(HashSet.has(3)) // false\n *\n * // or with `data-first` API\n * HashSet.has(HashSet.make(0, 1, 2), 3) // false\n * ```\n *\n * @returns A `boolean` signaling the presence of the value in the HashSet\n * @see Other `HashSet` elements are {@link module:HashSet.some} {@link module:HashSet.every} {@link module:HashSet.isSubset}\n */\nexport const has = HS.has;\n/**\n * Check if a predicate holds true for some `HashSet` element.\n *\n * Time complexity: **`O(n)`** where n is the number of elements in the set\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category elements\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * const set: HashSet.HashSet = HashSet.make(0, 1, 2)\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(\n * set,\n * HashSet.some((n) => n > 0)\n * ) // true\n *\n * // or piped with the pipe function\n * set.pipe(HashSet.some((n) => n > 0)) // true\n *\n * // or with `data-first` API\n * HashSet.some(set, (n) => n > 0) // true\n * ```\n *\n * @see Other `HashSet` elements are {@link module:HashSet.has} {@link module:HashSet.every} {@link module:HashSet.isSubset}\n */\nexport const some = HS.some;\n/**\n * Check if a predicate holds true for every `HashSet` element.\n *\n * Time complexity is **`O(n)`** as it needs to traverse the whole HashSet\n * collection\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category elements\n * @example\n *\n * ```ts\n * // Syntax with Refinement\n * import { HashSet, pipe, Predicate } from \"effect\"\n *\n * const numberOrString = HashSet.make(1, \"1\", \"one\", \"uno\")\n *\n * // with `data-last`, a.k.a. `pipeable` API and `Refinement`\n * pipe(\n * numberOrString, // HashSet.HashSet\n * HashSet.every(Predicate.isString)\n * ) // HashSet.HashSet\n *\n * // or piped with the pipe function and `Refinement`\n * numberOrString // HashSet.HashSet\n * .pipe(HashSet.every(Predicate.isString)) // HashSet.HashSet\n *\n * // or with `data-first` API and `Refinement`\n * HashSet.every(\n * numberOrString, // HashSet.HashSet\n * Predicate.isString\n * ) // HashSet.HashSet\n * ```\n *\n * @example\n *\n * ```ts\n * // Syntax with Predicate\n * import { HashSet, pipe } from \"effect\"\n *\n * const set = HashSet.make(1, 2, 3)\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(\n * set,\n * HashSet.every((n) => n >= 0)\n * ) // true\n *\n * // or piped with the pipe function\n * set.pipe(HashSet.every((n) => n >= 0)) // true\n *\n * // or with `data-first` API\n * HashSet.every(set, (n) => n >= 0) // true\n * ```\n *\n * @returns A boolean once it has evaluated that whole collection fulfill the\n * Predicate function\n * @see Other `HashSet` elements are {@link module:HashSet.has} {@link module:HashSet.some} {@link module:HashSet.isSubset}\n */\nexport const every = HS.every;\n/**\n * Returns `true` if and only if every element in the this `HashSet` is an\n * element of the second set,\n *\n * **NOTE**: the hash and equal of both sets must be the same.\n *\n * Time complexity analysis is of **`O(n)`**\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category elements\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * const set1 = HashSet.make(0, 1)\n * const set2 = HashSet.make(1, 2)\n * const set3 = HashSet.make(0, 1, 2)\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(set1, HashSet.isSubset(set2)) // false\n * pipe(set1, HashSet.isSubset(set3)) // true\n *\n * // or piped with the pipe function\n * set1.pipe(HashSet.isSubset(set2)) // false\n * set1.pipe(HashSet.isSubset(set3)) // true\n *\n * // or with `data-first` API\n * HashSet.isSubset(set1, set2) // false\n * HashSet.isSubset(set1, set3) // true)\n * ```\n *\n * @see Other `HashSet` elements are {@link module:HashSet.has} {@link module:HashSet.some} {@link module:HashSet.every}\n */\nexport const isSubset = HS.isSubset;\n/**\n * Returns an `IterableIterator` of the values in the `HashSet`.\n *\n * Time complexity: **`O(1)`**\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category getters\n * @example\n *\n * ```ts\n * import { HashSet, pipe } from \"effect\"\n *\n * const numberIterable = pipe(\n * HashSet.make(0, 1, 1, 2), // HashSet.HashSet\n * HashSet.values // takes an HashSet and returns an IterableIterator\n * )\n *\n * for (const number of numberIterable) {\n * console.log(number) // it will logs: 0, 1, 2\n * }\n * ```\n *\n * @see Other `HashSet` getters are {@link module:HashSet.toValues} {@link module:HashSet.size}\n */\nexport const values = HS.values;\n/**\n * Returns an `Array` of the values within the `HashSet`.\n *\n * Time complexity: **`O(n)`** where n is the number of elements in the set\n *\n * @memberof HashSet\n * @since 3.13.0\n * @category getters\n * @example\n *\n * ```ts\n * import { HashSet, pipe } from \"effect\"\n * import { deepStrictEqual } from \"node:assert/strict\"\n *\n * deepStrictEqual(\n * pipe(\n * HashSet.make(0, 1, 1, 2), // HashSet\n * HashSet.toValues // takes an HashSet and returns an Array\n * ),\n * Array.of(0, 1, 2)\n * )\n * ```\n *\n * @see Other `HashSet` getters are {@link module:HashSet.values} {@link module:HashSet.size}\n */\nexport const toValues = self => Array.from(values(self));\n/**\n * Calculates the number of values in the `HashSet`.\n *\n * Time complexity: **`O(1)`**\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category getters\n * @example\n *\n * ```ts\n * import { HashSet, pipe } from \"effect\"\n * import assert from \"node:assert/strict\"\n *\n * assert.deepStrictEqual(pipe(HashSet.empty(), HashSet.size), 0)\n *\n * assert.deepStrictEqual(\n * pipe(HashSet.make(1, 2, 2, 3, 4, 3), HashSet.size),\n * 4\n * )\n * ```\n *\n * @see Other `HashSet` getters are {@link module:HashSet.values} {@link module:HashSet.toValues}\n */\nexport const size = HS.size;\n/**\n * Creates a new mutable version of the `HashSet`\n *\n * When a `HashSet` is mutable, operations like {@link add} and {@link remove}\n * modify the data structure in place instead of creating a new one, which is\n * more efficient when performing multiple operations.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @example\n *\n * ```ts\n * import { HashSet } from \"effect\"\n * import assert from \"node:assert/strict\"\n *\n * const UPPER_BOUND = 10_000\n *\n * const immutableSet = HashSet.empty().pipe(HashSet.add(0))\n *\n * // Create a mutable version of the immutableSet\n * const mutableSet = HashSet.beginMutation(immutableSet)\n *\n * for (let i = 1; i < UPPER_BOUND; i++) {\n * // Operations now modify the set in place instead of creating new instances\n * // This is more efficient when making multiple changes\n * const pointerToMutableSet = HashSet.add(mutableSet, i)\n *\n * // the two sets have the same identity, hence `add` is mutating mutableSet and not returning a new HashSet instance\n * assert(Object.is(mutableSet, pointerToMutableSet))\n * assert.equal(HashSet.has(mutableSet, i), true) // `i` is in the mutableSet\n * assert.equal(HashSet.has(immutableSet, i), false) // `i` is not in the immutableSet\n * }\n *\n * const next = UPPER_BOUND + 1\n * // When done, mark the set as immutable again\n * HashSet.endMutation(mutableSet).pipe(\n * HashSet.add(next) // since this returns a new HashSet, it will not be logged as part of the mutableSet\n * )\n * assert.equal(HashSet.has(mutableSet, next), false)\n *\n * console.log(HashSet.toValues(immutableSet)) // [0]\n * console.log(HashSet.toValues(mutableSet).sort((a, b) => a - b)) // [0, 1, 2, 3, ...rest]\n * ```\n *\n * @see Other `HashSet` mutations are {@link module:HashSet.add} {@link module:HashSet.remove} {@link module:HashSet.toggle} {@link module:HashSet.endMutation} {@link module:HashSet.mutate}\n */\nexport const beginMutation = HS.beginMutation;\n/**\n * Makes the `HashSet` immutable again.\n *\n * After calling `endMutation`, operations like {@link add} and {@link remove}\n * will create new instances of the `HashSet` instead of modifying the existing\n * one.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @example\n *\n * ```ts\n * import { HashSet } from \"effect\"\n * import assert from \"node:assert/strict\"\n *\n * // Create a mutable set\n * const mutableSet = HashSet.beginMutation(HashSet.empty())\n *\n * // Add some elements to the mutable set\n * HashSet.add(mutableSet, 1)\n * HashSet.add(mutableSet, 2)\n *\n * // Before endMutation, operations modify the set in place\n * const sameSet = HashSet.add(mutableSet, 3)\n * assert(Object.is(mutableSet, sameSet)) // true - same object reference\n * assert.deepStrictEqual(HashSet.toValues(mutableSet).sort(), [1, 2, 3])\n *\n * // Make the set immutable again\n * const immutableSet = HashSet.endMutation(mutableSet)\n *\n * // endMutation returns the same set instance, now made immutable\n * assert(Object.is(mutableSet, immutableSet)) // true - same object reference\n *\n * // After endMutation, operations create new instances\n * const newSet = HashSet.add(immutableSet, 4)\n * assert(!Object.is(immutableSet, newSet)) // false - different object references\n *\n * // The original set remains unchanged\n * assert.deepStrictEqual(HashSet.toValues(immutableSet).sort(), [1, 2, 3])\n *\n * // The new set contains the added element\n * assert.deepStrictEqual(HashSet.toValues(newSet).sort(), [1, 2, 3, 4])\n * ```\n *\n * @see Other `HashSet` mutations are {@link module:HashSet.add} {@link module:HashSet.remove} {@link module:HashSet.toggle} {@link module:HashSet.beginMutation} {@link module:HashSet.mutate}\n */\nexport const endMutation = HS.endMutation;\n/**\n * Mutates the `HashSet` within the context of the provided function.\n *\n * You can consider it a functional abstraction on top of the lower-level\n * mutation primitives of {@link module:HashSet.beginMutation} `->` `mutable\n * context` `->` {@link HashSet.endMutation}.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with data-last, a.k.a. pipeable API\n * pipe(\n * HashSet.make(1, 2, 3),\n * HashSet.mutate((set) => {\n * HashSet.add(set, 4)\n * HashSet.remove(set, 1)\n * })\n * )\n *\n * // or piped with the pipe function\n * HashSet.make(1, 2, 3).pipe(\n * HashSet.mutate((set) => {\n * HashSet.add(set, 4)\n * HashSet.remove(set, 1)\n * })\n * )\n *\n * // or with data-first API\n * HashSet.mutate(HashSet.make(1, 2, 3), (set) => {\n * HashSet.add(set, 4)\n * HashSet.remove(set, 1)\n * })\n * ```\n *\n * @see Other `HashSet` mutations are {@link module:HashSet.add} {@link module:HashSet.remove} {@link module:HashSet.toggle} {@link module:HashSet.beginMutation} {@link module:HashSet.endMutation}\n */\nexport const mutate = HS.mutate;\n/**\n * Adds a value to the `HashSet`.\n *\n * Time complexity: **`O(1)`** average\n *\n * @remarks\n * Remember that a `HashSet` is a collection of unique values, so adding a value\n * that already exists in the `HashSet` will not add a duplicate.\n *\n * Remember that HashSet is an immutable data structure, so the `add` function,\n * like all other functions that modify the HashSet, will return a new HashSet\n * with the added value.\n * @memberof HashSet\n * @since 2.0.0\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with data-last, a.k.a. pipeable API\n * pipe(HashSet.empty(), HashSet.add(0), HashSet.add(0))\n *\n * // or piped with the pipe function\n * HashSet.empty().pipe(HashSet.add(0))\n *\n * // or with data-first API\n * HashSet.add(HashSet.empty(), 0)\n * ```\n *\n * @see Other `HashSet` mutations are {@link module:HashSet.remove} {@link module:HashSet.toggle} {@link module:HashSet.beginMutation} {@link module:HashSet.endMutation} {@link module:HashSet.mutate}\n */\nexport const add = HS.add;\n/**\n * Removes a value from the `HashSet`.\n *\n * Time complexity: **`O(1)`** average\n *\n * @memberof HashSet\n * @since 2.0.0\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(HashSet.make(0, 1, 2), HashSet.remove(0))\n *\n * // or piped with the pipe function\n * HashSet.make(0, 1, 2).pipe(HashSet.remove(0))\n *\n * // or with `data-first` API\n * HashSet.remove(HashSet.make(0, 1, 2), 0)\n * ```\n *\n * @see Other `HashSet` mutations are {@link module:HashSet.add} {@link module:HashSet.toggle} {@link module:HashSet.beginMutation} {@link module:HashSet.endMutation} {@link module:HashSet.mutate}\n */\nexport const remove = HS.remove;\n/**\n * Computes the set difference `(A - B)` between this `HashSet` and the\n * specified `Iterable`.\n *\n * Time complexity: **`O(n)`** where n is the number of elements in the set\n *\n * **NOTE**: the hash and equal of the values in both the set and the iterable\n * must be the same; meaning we cannot compute a difference between a `HashSet\n * of bananas` and a `HashSet of elephants` as they are not the same type and\n * won't implement the Equal trait in the same way.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with data-last, a.k.a. pipeable API\n * pipe(HashSet.make(1, 2, 3), HashSet.difference(HashSet.make(3, 4, 5)))\n *\n * // or piped with the pipe function\n * HashSet.make(1, 2, 3).pipe(HashSet.difference(HashSet.make(3, 4, 5)))\n *\n * // or with data-first API\n * HashSet.difference(HashSet.make(1, 2, 3), HashSet.make(3, 4, 5))\n * ```\n *\n * @see Other `HashSet` operations are {@link module:HashSet.intersection} {@link module:HashSet.union}\n */\nexport const difference = HS.difference;\n/**\n * Returns a `HashSet` of values which are present in both this set and that\n * `Iterable`. Computes set intersection (A ∩ B)\n *\n * Time complexity: **`O(n)`** where n is the number of elements in the smaller\n * set\n *\n * **NOTE**: the hash and equal of the values in both the set and the iterable\n * must be the same.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with data-last, a.k.a. pipeable API\n * pipe(HashSet.make(1, 2, 3), HashSet.intersection(HashSet.make(2, 3, 4)))\n *\n * // or piped with the pipe function\n * HashSet.make(1, 2, 3).pipe(HashSet.intersection(HashSet.make(2, 3, 4)))\n *\n * // or with data-first API\n * HashSet.intersection(HashSet.make(1, 2, 3), HashSet.make(2, 3, 4))\n * ```\n *\n * @see Other `HashSet` operations are {@link module:HashSet.difference} {@link module:HashSet.union}\n */\nexport const intersection = HS.intersection;\n/**\n * Computes the set union `( self ∪ that )` between this `HashSet` and the\n * specified `Iterable`.\n *\n * Time complexity: **`O(n)`** where n is the number of elements in the set\n *\n * **NOTE**: the hash and equal of the values in both the set and the iterable\n * must be the same.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with data-last, a.k.a. pipeable API\n * pipe(HashSet.make(1, 2, 3), HashSet.union(HashSet.make(3, 4, 5)))\n *\n * // or piped with the pipe function\n * HashSet.make(1, 2, 3).pipe(HashSet.union(HashSet.make(3, 4, 5)))\n *\n * // or with data-first API\n * HashSet.union(HashSet.make(1, 2, 3), HashSet.make(3, 4, 5))\n * ```\n *\n * @see Other `HashSet` operations are {@link module:HashSet.difference} {@link module:HashSet.intersection}\n */\nexport const union = HS.union;\n/**\n * Checks if a value is present in the `HashSet`. If it is present, the value\n * will be removed from the `HashSet`, otherwise the value will be added to the\n * `HashSet`.\n *\n * Time complexity: **`O(1)`** average\n *\n * @memberof HashSet\n * @since 2.0.0\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(HashSet.make(0, 1, 2), HashSet.toggle(0))\n *\n * // or piped with the pipe function\n * HashSet.make(0, 1, 2).pipe(HashSet.toggle(0))\n *\n * // or with `data-first` API\n * HashSet.toggle(HashSet.make(0, 1, 2), 0)\n * ```\n *\n * @returns A new `HashSet` where the toggled value is being either added or\n * removed based on the initial `HashSet` state.\n * @see Other `HashSet` mutations are {@link module:HashSet.add} {@link module:HashSet.remove} {@link module:HashSet.beginMutation} {@link module:HashSet.endMutation} {@link module:HashSet.mutate}\n */\nexport const toggle = HS.toggle;\n/**\n * Maps over the values of the `HashSet` using the specified function.\n *\n * The time complexity is of **`O(n)`**.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category mapping\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(\n * HashSet.make(0, 1, 2), // HashSet.HashSet\n * HashSet.map(String) // HashSet.HashSet\n * )\n *\n * // or piped with the pipe method\n * HashSet.make(0, 1, 2).pipe(HashSet.map(String))\n *\n * // or with `data-first` API\n * HashSet.map(HashSet.make(0, 1, 2), String)\n * ```\n */\nexport const map = HS.map;\n/**\n * Chains over the values of the `HashSet` using the specified function.\n *\n * The time complexity is of **`O(n)`**.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category sequencing\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(\n * HashSet.make(0, 1, 2), // HashSet.HashSet\n * HashSet.flatMap((n) => Array.of(String(n))) // HashSet.HashSet\n * )\n *\n * // or piped with the pipe method\n * HashSet.make(0, 1, 2) // HashSet.HashSet\n * .pipe(\n * HashSet.flatMap((n) => Array.of(String(n))) // HashSet.HashSet\n * )\n *\n * // or with `data-first` API\n * HashSet.flatMap(HashSet.make(0, 1, 2), (n) => Array.of(String(n)))\n * ```\n */\nexport const flatMap = HS.flatMap;\n/**\n * Applies the specified function to the values of the `HashSet`.\n *\n * The time complexity is of **`O(n)`**.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category traversing\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(HashSet.make(0, 1, 2), HashSet.forEach(console.log)) // logs: 0 1 2\n *\n * // or piped with the pipe method\n * HashSet.make(0, 1, 2).pipe(HashSet.forEach(console.log)) // logs: 0 1 2\n *\n * // or with `data-first` API\n * HashSet.forEach(HashSet.make(0, 1, 2), console.log) // logs: 0 1 2\n * ```\n */\nexport const forEach = HS.forEach;\n/**\n * Reduces the specified state over the values of the `HashSet`.\n *\n * The time complexity is of **`O(n)`**.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category folding\n * @example\n *\n * ```ts\n * // Syntax\n * import { HashSet, pipe } from \"effect\"\n *\n * const sum = (a: number, b: number): number => a + b\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(HashSet.make(0, 1, 2), HashSet.reduce(0, sum))\n *\n * // or with the pipe method\n * HashSet.make(0, 1, 2).pipe(HashSet.reduce(0, sum))\n *\n * // or with `data-first` API\n * HashSet.reduce(HashSet.make(0, 1, 2), 0, sum)\n * ```\n */\nexport const reduce = HS.reduce;\n/**\n * Filters values out of a `HashSet` using the specified predicate.\n *\n * The time complexity is of **`O(n)`**.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category filtering\n * @example\n *\n * ```ts\n * // Syntax with Predicate\n * import { HashSet, type Predicate, pipe } from \"effect\"\n *\n * const filterPositiveNumbers: Predicate.Predicate = (n) => n > 0\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(\n * HashSet.make(-2, -1, 0, 1, 2),\n * HashSet.filter(filterPositiveNumbers)\n * )\n *\n * // or with the pipe method\n * HashSet.make(-2, -1, 0, 1, 2).pipe(HashSet.filter(filterPositiveNumbers))\n *\n * // or with `data-first` API\n * HashSet.filter(HashSet.make(-2, -1, 0, 1, 2), filterPositiveNumbers)\n * ```\n *\n * @example\n *\n * ```ts\n * /// Syntax with Refinement\n * import { HashSet, pipe } from \"effect\"\n *\n * const stringRefinement = (value: unknown): value is string =>\n * typeof value === \"string\"\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(\n * HashSet.make(1, \"unos\", 2, \"two\", 3, \"trois\", 4, \"vier\"), // // HashSet.HashSet\n * HashSet.filter(stringRefinement)\n * ) // HashSet.HashSet\n *\n * // or with the pipe method\n * HashSet.make(1, \"unos\", 2, \"two\", 3, \"trois\", 4, \"vier\") // HashSet.HashSet\n * .pipe(HashSet.filter(stringRefinement)) // HashSet.HashSet\n *\n * // or with `data-first` API\n * HashSet.filter(\n * HashSet.make(1, \"unos\", 2, \"two\", 3, \"trois\", 4, \"vier\"), // HashSet.HashSet\n * stringRefinement\n * ) // HashSet.HashSet\n * ```\n */\nexport const filter = HS.filter;\n/**\n * Partition the values of a `HashSet` using the specified predicate.\n *\n * If a value matches the predicate, it will be placed into the `HashSet` on the\n * right side of the resulting `Tuple`, otherwise the value will be placed into\n * the left side.\n *\n * Time complexity is of **`O(n)`**.\n *\n * @memberof HashSet\n * @since 2.0.0\n * @category partitioning\n * @example\n *\n * ```ts\n * // Syntax with Predicate\n * import { HashSet, pipe, Predicate } from \"effect\"\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(\n * HashSet.make(0, 1, 2, 3, 4, 5),\n * HashSet.partition((n) => n % 2 === 0)\n * )\n *\n * // or with the pipe method\n * HashSet.make(0, 1, 2, 3, 4, 5).pipe(\n * HashSet.partition((n) => n % 2 === 0)\n * )\n *\n * // or with `data-first` API\n * HashSet.partition(HashSet.make(0, 1, 2, 3, 4, 5), (n) => n % 2 === 0)\n * ```\n *\n * @example\n *\n * ```ts\n * // Syntax with Refinement\n * import { HashSet, pipe, Predicate } from \"effect\"\n *\n * const stringRefinement: Predicate.Refinement = (\n * value\n * ) => typeof value === \"string\"\n *\n * // with `data-last`, a.k.a. `pipeable` API\n * pipe(\n * HashSet.make(1, \"unos\", 2, \"two\", 3, \"trois\", 4, \"vier\"),\n * HashSet.partition(stringRefinement)\n * )\n *\n * // or with the pipe method\n * HashSet.make(1, \"unos\", 2, \"two\", 3, \"trois\", 4, \"vier\").pipe(\n * HashSet.partition(stringRefinement)\n * )\n *\n * // or with `data-first` API\n * HashSet.partition(\n * HashSet.make(1, \"unos\", 2, \"two\", 3, \"trois\", 4, \"vier\"),\n * stringRefinement\n * )\n * ```\n */\nexport const partition = HS.partition;\n//# sourceMappingURL=HashSet.js.map","import { IntegerOutOfRangeError, } from '../../errors/encoding.js';\nimport { pad } from '../data/pad.js';\nimport { assertSize } from './fromHex.js';\nconst hexes = /*#__PURE__*/ Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));\n/**\n * Encodes a string, number, bigint, or ByteArray into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex\n * - Example: https://viem.sh/docs/utilities/toHex#usage\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world')\n * // '0x48656c6c6f20776f726c6421'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex(420)\n * // '0x1a4'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world', { size: 32 })\n * // '0x48656c6c6f20776f726c64210000000000000000000000000000000000000000'\n */\nexport function toHex(value, opts = {}) {\n if (typeof value === 'number' || typeof value === 'bigint')\n return numberToHex(value, opts);\n if (typeof value === 'string') {\n return stringToHex(value, opts);\n }\n if (typeof value === 'boolean')\n return boolToHex(value, opts);\n return bytesToHex(value, opts);\n}\n/**\n * Encodes a boolean into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#booltohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true)\n * // '0x1'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(false)\n * // '0x0'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true, { size: 32 })\n * // '0x0000000000000000000000000000000000000000000000000000000000000001'\n */\nexport function boolToHex(value, opts = {}) {\n const hex = `0x${Number(value)}`;\n if (typeof opts.size === 'number') {\n assertSize(hex, { size: opts.size });\n return pad(hex, { size: opts.size });\n }\n return hex;\n}\n/**\n * Encodes a bytes array into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#bytestohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]), { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function bytesToHex(value, opts = {}) {\n let string = '';\n for (let i = 0; i < value.length; i++) {\n string += hexes[value[i]];\n }\n const hex = `0x${string}`;\n if (typeof opts.size === 'number') {\n assertSize(hex, { size: opts.size });\n return pad(hex, { dir: 'right', size: opts.size });\n }\n return hex;\n}\n/**\n * Encodes a number or bigint into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#numbertohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420)\n * // '0x1a4'\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420, { size: 32 })\n * // '0x00000000000000000000000000000000000000000000000000000000000001a4'\n */\nexport function numberToHex(value_, opts = {}) {\n const { signed, size } = opts;\n const value = BigInt(value_);\n let maxValue;\n if (size) {\n if (signed)\n maxValue = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n else\n maxValue = 2n ** (BigInt(size) * 8n) - 1n;\n }\n else if (typeof value_ === 'number') {\n maxValue = BigInt(Number.MAX_SAFE_INTEGER);\n }\n const minValue = typeof maxValue === 'bigint' && signed ? -maxValue - 1n : 0;\n if ((maxValue && value > maxValue) || value < minValue) {\n const suffix = typeof value_ === 'bigint' ? 'n' : '';\n throw new IntegerOutOfRangeError({\n max: maxValue ? `${maxValue}${suffix}` : undefined,\n min: `${minValue}${suffix}`,\n signed,\n size,\n value: `${value_}${suffix}`,\n });\n }\n const hex = `0x${(signed && value < 0 ? (1n << BigInt(size * 8)) + BigInt(value) : value).toString(16)}`;\n if (size)\n return pad(hex, { size });\n return hex;\n}\nconst encoder = /*#__PURE__*/ new TextEncoder();\n/**\n * Encodes a UTF-8 string into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#stringtohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!')\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!', { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function stringToHex(value_, opts = {}) {\n const value = encoder.encode(value_);\n return bytesToHex(value, opts);\n}\n//# sourceMappingURL=toHex.js.map","var inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n var state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n var state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n var state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n var state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n var state = this._reporterState;\n\n var prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n var state = this._reporterState;\n\n var now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n var err;\n var state = this._reporterState;\n\n var inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n var state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n};\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","import * as internal from \"./internal/cause.js\";\nimport * as core from \"./internal/core.js\";\n/**\n * A unique symbol identifying the `Cause` type.\n *\n * **Details**\n *\n * This provides a symbol that helps identify instances of the `Cause` data\n * type. This can be used for advanced operations such as refining types or\n * building internal utilities that check whether an unknown value is a `Cause`.\n *\n * @see {@link isCause} Check if a value is a `Cause`\n *\n * @since 2.0.0\n * @category Symbols\n */\nexport const CauseTypeId = internal.CauseTypeId;\n/**\n * A unique symbol identifying the `RuntimeException` type.\n *\n * **Details**\n *\n * This provides a symbol that identifies a `RuntimeException`. This is\n * typically used internally by the library to recognize checked exceptions that\n * occur during runtime.\n *\n * @see {@link RuntimeException} Create or work with a `RuntimeException`\n *\n * @since 2.0.0\n * @category Symbols\n */\nexport const RuntimeExceptionTypeId = core.RuntimeExceptionTypeId;\n/**\n * A unique symbol identifying the `InterruptedException` type.\n *\n * **Details**\n *\n * This provides a symbol that identifies an `InterruptedException`. This is\n * typically used internally to recognize when a fiber has been interrupted,\n * helping the framework handle interruption logic correctly.\n *\n * @see {@link InterruptedException} Create or work with an `InterruptedException`\n *\n * @since 2.0.0\n * @category Symbols\n */\nexport const InterruptedExceptionTypeId = core.InterruptedExceptionTypeId;\n/**\n * A unique symbol identifying the `IllegalArgumentException` type.\n *\n * **Details**\n *\n * This provides a symbol that identifies an `IllegalArgumentException`. This is\n * often used in scenarios where invalid arguments are supplied to methods that\n * expect specific input.\n *\n * @see {@link IllegalArgumentException} Create or work with an `IllegalArgumentException`\n *\n * @since 2.0.0\n * @category Symbols\n */\nexport const IllegalArgumentExceptionTypeId = core.IllegalArgumentExceptionTypeId;\n/**\n * A unique symbol identifying the `NoSuchElementException` type.\n *\n * **Details**\n *\n * This provides a symbol that identifies a `NoSuchElementException`. It helps\n * differentiate cases where a required element is missing within a data\n * structure.\n *\n * @see {@link NoSuchElementException} Create or work with a `NoSuchElementException`\n *\n * @since 2.0.0\n * @category Symbols\n */\nexport const NoSuchElementExceptionTypeId = core.NoSuchElementExceptionTypeId;\n/**\n * A unique symbol identifying the `InvalidPubSubCapacityException` type.\n *\n * **Details**\n *\n * This provides a symbol that identifies an `InvalidPubSubCapacityException`.\n * It indicates an error related to an invalid capacity passed to a `PubSub`\n * structure.\n *\n * @see {@link InvalidPubSubCapacityException} Create or work with an `InvalidPubSubCapacityException`\n *\n * @since 2.0.0\n * @category Symbols\n */\nexport const InvalidPubSubCapacityExceptionTypeId = core.InvalidPubSubCapacityExceptionTypeId;\n/**\n * A unique symbol identifying the `ExceededCapacityException` type.\n *\n * **Details**\n *\n * This provides a symbol that identifies an `ExceededCapacityException`. It\n * denotes situations where a resource has exceeded its configured capacity\n * limit.\n *\n * @see {@link ExceededCapacityException} Create or work with an `ExceededCapacityException`\n *\n * @since 3.5.0\n * @category Symbols\n */\nexport const ExceededCapacityExceptionTypeId = core.ExceededCapacityExceptionTypeId;\n/**\n * A unique symbol identifying the `TimeoutException` type.\n *\n * **Details**\n *\n * This provides a symbol that identifies a `TimeoutException`. It helps the\n * framework recognize errors related to operations that fail to complete within\n * a given timeframe.\n *\n * @see {@link TimeoutException} Create or work with a `TimeoutException`\n *\n * @since 2.0.0\n * @category Symbols\n */\nexport const TimeoutExceptionTypeId = core.TimeoutExceptionTypeId;\n/**\n * A unique symbol identifying the `UnknownException` type.\n *\n * **Details**\n *\n * This provides a symbol that identifies an `UnknownException`. It is typically\n * used for generic or unexpected errors that do not fit other specific\n * exception categories.\n *\n * @see {@link UnknownException} Create or work with an `UnknownException`\n *\n * @since 2.0.0\n * @category Symbols\n */\nexport const UnknownExceptionTypeId = core.UnknownExceptionTypeId;\n/**\n * Creates an error that occurs at runtime, extendable for other exception\n * types.\n *\n * @since 2.0.0\n * @category Errors\n */\nexport const YieldableError = core.YieldableError;\n/**\n * Creates an `Empty` cause.\n *\n * **Details**\n *\n * This function returns a cause that signifies \"no error.\" It's commonly used\n * to represent an absence of failure conditions.\n *\n * @see {@link isEmpty} Check if a `Cause` is empty\n *\n * @since 2.0.0\n * @category Constructors\n */\nexport const empty = internal.empty;\n/**\n * Creates a `Fail` cause from an expected error.\n *\n * **Details**\n *\n * This function constructs a `Cause` carrying an error of type `E`. It's used\n * when you want to represent a known or anticipated failure in your effectful\n * computations.\n *\n * @see {@link isFailure} Check if a `Cause` contains a failure\n *\n * @since 2.0.0\n * @category Constructors\n */\nexport const fail = internal.fail;\n/**\n * Creates a `Die` cause from an unexpected error.\n *\n * **Details**\n *\n * This function wraps an unhandled or unknown defect (like a runtime crash)\n * into a `Cause`. It's useful for capturing unforeseen issues in a structured\n * way.\n *\n * @see {@link isDie} Check if a `Cause` contains a defect\n *\n * @since 2.0.0\n * @category Constructors\n */\nexport const die = internal.die;\n/**\n * Creates an `Interrupt` cause from a `FiberId`.\n *\n * **Details**\n *\n * This function represents a fiber that has been interrupted. It stores the\n * identifier of the interrupted fiber, enabling precise tracking of concurrent\n * cancellations.\n *\n * @see {@link isInterrupted} Check if a `Cause` contains an interruption\n *\n * @since 2.0.0\n * @category Constructors\n */\nexport const interrupt = internal.interrupt;\n/**\n * Combines two `Cause`s in parallel.\n *\n * **Details**\n *\n * This function merges two errors that occurred simultaneously. Instead of\n * discarding one error, both are retained, allowing for richer error reporting\n * and debugging.\n *\n * @see {@link isParallelType} Check if a `Cause` is a `Parallel`\n *\n * @since 2.0.0\n * @category Constructors\n */\nexport const parallel = internal.parallel;\n/**\n * Combines two `Cause`s sequentially.\n *\n * **Details**\n *\n * This function merges two errors that occurred in sequence, such as a main\n * error followed by a finalization error. It preserves both errors for complete\n * failure information.\n *\n * @see {@link isSequentialType} Check if a `Cause` is a `Sequential`\n *\n * @since 2.0.0\n * @category Constructors\n */\nexport const sequential = internal.sequential;\n/**\n * Checks if a value is a `Cause`.\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isCause = internal.isCause;\n/**\n * Checks if a `Cause` is an `Empty` type.\n *\n * @see {@link empty} Create a new `Empty` cause\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isEmptyType = internal.isEmptyType;\n/**\n * Checks if a `Cause` is a `Fail` type.\n *\n * @see {@link fail} Create a new `Fail` cause\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isFailType = internal.isFailType;\n/**\n * Checks if a `Cause` is a `Die` type.\n *\n * @see {@link die} Create a new `Die` cause\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isDieType = internal.isDieType;\n/**\n * Checks if a `Cause` is an `Interrupt` type.\n *\n * @see {@link interrupt} Create an `Interrupt` cause\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isInterruptType = internal.isInterruptType;\n/**\n * Checks if a `Cause` is a `Sequential` type.\n *\n * @see {@link sequential} Combine two `Cause`s sequentially\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isSequentialType = internal.isSequentialType;\n/**\n * Checks if a `Cause` is a `Parallel` type.\n *\n * @see {@link parallel} Combine two `Cause`s in parallel\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isParallelType = internal.isParallelType;\n/**\n * Calculates the size of a `Cause`.\n *\n * **Details**\n *\n * This function returns the total number of `Cause` nodes in the semiring\n * structure, reflecting how many individual error elements are recorded.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const size = internal.size;\n/**\n * Checks if a `Cause` is entirely empty.\n *\n * **Details**\n *\n * This function returns `true` if the `Cause` contains no errors, defects, or\n * interruptions. It's helpful for verifying if a computation truly had no\n * failures.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const isEmpty = internal.isEmpty;\n/**\n * Checks if a `Cause` contains a failure.\n *\n * **Details**\n *\n * This function returns `true` if the `Cause` includes any `Fail` error. It's\n * commonly used to confirm whether a workflow encountered an anticipated error\n * versus just defects or interruptions.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const isFailure = internal.isFailure;\n/**\n * Checks if a `Cause` contains a defect.\n *\n * **Details**\n *\n * This function returns `true` if the `Cause` includes any unexpected or\n * unhandled errors (`Die`). It's useful for differentiating known failures from\n * unexpected ones.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const isDie = internal.isDie;\n/**\n * Checks if a `Cause` contains an interruption.\n *\n * **Details**\n *\n * This function returns `true` if the `Cause` includes any fiber interruptions.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const isInterrupted = internal.isInterrupted;\n/**\n * Checks if a `Cause` contains only interruptions.\n *\n * **Details**\n *\n * This function returns `true` if the `Cause` has been interrupted but does not\n * contain any other failures, such as `Fail` or `Die`. It's helpful for\n * verifying purely \"cancellation\" scenarios.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const isInterruptedOnly = internal.isInterruptedOnly;\n/**\n * Extracts all recoverable errors of type `E` from a `Cause`.\n *\n * **Details**\n *\n * This function returns a chunk of errors, providing a list of all `Fail`\n * values found in the cause. It's useful for collecting all known failures for\n * logging or combined error handling.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const failures = internal.failures;\n/**\n * Extracts all unrecoverable defects from a `Cause`.\n *\n * **Details**\n *\n * This function returns a chunk of values representing unexpected errors\n * (`Die`). It's handy for capturing or logging unanticipated failures that\n * might need special handling, such as bug reports.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const defects = internal.defects;\n/**\n * Collects all `FiberId`s responsible for interrupting a fiber.\n *\n * **Details**\n *\n * This function returns a set of IDs indicating which fibers caused\n * interruptions within this `Cause`. It's useful for debugging concurrency\n * issues or tracing cancellations.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const interruptors = internal.interruptors;\n/**\n * Retrieves the first `Fail` error in a `Cause`, if present.\n *\n * **Details**\n *\n * This function returns an `Option` containing the first recoverable error\n * (`E`) from the cause. It's often used to quickly check if there's a primary\n * error to handle or display.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const failureOption = internal.failureOption;\n/**\n * Splits a `Cause` into either its first `Fail` error or the rest of the cause\n * (which might only contain `Die` or `Interrupt`).\n *\n * **Details**\n *\n * This function either returns the checked error (`E`) or the remaining\n * `Cause` with defects/interruptions. It helps you decide if there's a\n * recoverable path or if only unhandled issues remain.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const failureOrCause = internal.failureOrCause;\n/**\n * Strips out failures with an error of `None` from a `Cause>`.\n *\n * **Details**\n *\n * This function turns a `Cause>` into an `Option>`. If the\n * cause only contains failures of `None`, it becomes `None`; otherwise, it\n * returns a `Cause` of the remaining errors. It's helpful when working with\n * optional errors and filtering out certain error paths.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const flipCauseOption = internal.flipCauseOption;\n/**\n * Retrieves the first `Die` defect in a `Cause`, if present.\n *\n * **Details**\n *\n * This function returns an `Option` containing the first unexpected failure\n * (`Die`) discovered. It's helpful for diagnosing the primary defect in a chain\n * of errors.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const dieOption = internal.dieOption;\n/**\n * Retrieves the first `Interrupt` in a `Cause`, if present.\n *\n * **Details**\n *\n * This function returns an `Option` with the first fiber interruption\n * discovered. This is particularly useful for concurrency analysis or debugging\n * cancellations.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const interruptOption = internal.interruptOption;\n/**\n * Removes all `Fail` and `Interrupt` nodes, keeping only defects (`Die`) in a\n * `Cause`.\n *\n * **Details**\n *\n * This function strips a cause of recoverable errors and interruptions, leaving\n * only unexpected failures. If no defects remain, it returns `None`. It's\n * valuable for focusing only on unanticipated problems when both known errors\n * and defects could occur.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const keepDefects = internal.keepDefects;\n// TODO(4.0): remove? what's the point of this API?\n/**\n * Linearizes a `Cause` into a set of parallel causes, each containing a\n * sequential chain of failures.\n *\n * **Details**\n *\n * This function reorganizes the cause structure so that you can analyze each\n * parallel branch separately, even if they have multiple sequential errors.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const linearize = internal.linearize;\n/**\n * Removes `Fail` and `Interrupt` nodes from a `Cause`, keeping only defects\n * (`Die`).\n *\n * **Details**\n *\n * This function is similar to `keepDefects` but returns a `Cause`\n * directly, which can still store `Die` or finalizer-related defects. It's\n * helpful for analyzing only the irrecoverable portion of the error.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const stripFailures = internal.stripFailures;\n/**\n * Removes matching defects from a `Cause` using a partial function, returning\n * the remainder.\n *\n * **Details**\n *\n * This function applies a user-defined extraction function to each defect\n * (`Die`). If the function matches the defect, that defect is removed. If all\n * defects match, the result is `None`. Otherwise, you get a `Cause` with the\n * unmatched defects.\n *\n * @since 2.0.0\n * @category Getters\n */\nexport const stripSomeDefects = internal.stripSomeDefects;\n/**\n * Replaces any errors in a `Cause` with a provided constant error.\n *\n * **Details**\n *\n * This function transforms all `Fail` errors into the specified error value,\n * preserving the structure of the `Cause`. It's useful when you no longer need\n * the original error details but still want to keep the cause shape.\n *\n * @see {@link map} Apply a custom transformation to `Fail` errors\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const as = internal.as;\n/**\n * Transforms the errors in a `Cause` using a user-provided function.\n *\n * **Details**\n *\n * This function applies `f` to each `Fail` error while leaving defects (`Die`)\n * and interruptions untouched. It's useful for changing or simplifying error\n * types in your effectful workflows.\n *\n * @see {@link as} Replace errors with a single constant\n *\n * @since 2.0.0\n * @category Mapping\n */\nexport const map = internal.map;\n/**\n * Transforms errors in a `Cause` into new causes.\n *\n * **Details**\n *\n * This function applies a function `f` to each `Fail` error, converting it into\n * a new `Cause`. This is especially powerful for merging or restructuring error\n * types while preserving or combining cause information.\n *\n * @see {@link map} Apply a simpler transformation to errors\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const flatMap = internal.flatMap;\n/**\n * Sequences two `Cause`s. The second `Cause` can be dependent on the result of\n * the first `Cause`.\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const andThen = internal.andThen;\n/**\n * Flattens a nested `Cause` structure.\n *\n * **Details**\n *\n * This function takes a `Cause>` and merges the layers into a single\n * `Cause`. It's useful for eliminating additional nesting created by\n * repeated transformations or compositions.\n *\n * @see {@link flatMap} Compose nested causes\n *\n * @since 2.0.0\n * @category Sequencing\n */\nexport const flatten = internal.flatten;\n/**\n * Checks if the current `Cause` contains or is equal to another `Cause`.\n *\n * **Details**\n *\n * This function returns `true` if `that` cause is part of or the same as\n * the current `Cause`. It's useful when you need to check for specific\n * error patterns or deduplicate repeated failures.\n *\n * @since 2.0.0\n * @category Elements\n */\nexport const contains = internal.contains;\n/**\n * Extracts the most \"important\" defect from a `Cause`.\n *\n * **Details**\n *\n * This function reduces a `Cause` to a single, prioritized defect. It evaluates\n * the `Cause` in the following order of priority:\n *\n * 1. If the `Cause` contains a failure (e.g., from `Effect.fail`), it returns\n * the raw error value.\n * 2. If there is no failure, it looks for the first defect (e.g., from\n * `Effect.die`).\n * 3. If neither of the above is present, and the `Cause` stems from an\n * interruption, it creates and returns an `InterruptedException`.\n *\n * This function ensures you can always extract a meaningful representation of\n * the primary issue from a potentially complex `Cause` structure.\n *\n * **When to Use**\n *\n * Use this function when you need to extract the most relevant error or defect\n * from a `Cause`, especially in scenarios where multiple errors or defects may\n * be present. It's particularly useful for simplifying error reporting or\n * logging.\n *\n * @see {@link squashWith} Allows transforming failures into defects when squashing.\n *\n * @since 2.0.0\n * @category Destructors\n */\nexport const squash = core.causeSquash;\n/**\n * Extracts the most \"important\" defect from a `Cause`, transforming failures\n * into defects using a provided function.\n *\n * **Details**\n *\n * This function reduces a `Cause` to a single, prioritized defect, while\n * allowing you to transform recoverable failures into defects through a custom\n * function. It processes the `Cause` in the following order:\n *\n * 1. If the `Cause` contains a failure (e.g., from `Effect.fail`), it applies\n * the provided function `f` to the error to transform it into a defect.\n * 2. If there is no failure, it looks for the first defect (e.g., from\n * `Effect.die`) and returns it.\n * 3. If neither is present and the `Cause` stems from an interruption, it\n * returns an `InterruptedException`.\n *\n * This function is particularly useful when you need custom handling or\n * transformation of errors while processing a `Cause`.\n *\n * @see {@link squash} Extracts the most \"important\" defect without transforming failures.\n *\n * @since 2.0.0\n * @category Destructors\n */\nexport const squashWith = core.causeSquashWith;\n/**\n * Searches a `Cause` using a partial function to extract information.\n *\n * **Details**\n *\n * This function allows you to search through a `Cause` using a custom partial\n * function. The partial function is applied to the `Cause`, and if it matches,\n * the result is returned wrapped in a `Some`. If no match is found, the result\n * is `None`.\n *\n * This is particularly useful when you are only interested in specific types of\n * errors, defects, or interruption causes within a potentially complex `Cause`\n * structure. By leveraging a partial function, you can focus on extracting only\n * the relevant information you care about.\n *\n * The partial function should return an `Option` indicating whether it matched\n * and the value it extracted.\n *\n * @since 2.0.0\n * @category Elements\n */\nexport const find = internal.find;\n/**\n * Preserves parts of a `Cause` that match a given predicate.\n *\n * **Details**\n *\n * This function allows you to retain only the parts of a `Cause` structure that\n * match a specified predicate or refinement. Any parts of the `Cause` that do\n * not match the provided condition are excluded from the result.\n *\n * You can use this function in two ways:\n * - With a `Predicate`: A function that evaluates whether a `Cause` should be\n * retained based on its value.\n * - With a `Refinement`: A more specific predicate that can refine the type of\n * the `Cause`.\n *\n * This is useful when you need to extract specific types of errors, defects, or\n * interruptions from a `Cause` while discarding unrelated parts.\n *\n * @since 2.0.0\n * @category Filtering\n */\nexport const filter = internal.filter;\n/**\n * Transforms a `Cause` into a single value using custom handlers for each\n * possible case.\n *\n * **Details**\n *\n * This function processes a `Cause` by applying a set of custom handlers to\n * each possible type of cause: `Empty`, `Fail`, `Die`, `Interrupt`,\n * `Sequential`, and `Parallel`. The result of this function is a single value\n * of type `Z`. This function allows you to define exactly how to handle each\n * part of a `Cause`, whether it's a failure, defect, interruption, or a\n * combination of these.\n *\n * The options parameter provides handlers for:\n * - `onEmpty`: Handles the case where the cause is `Empty`, meaning no errors\n * occurred.\n * - `onFail`: Processes a failure with an error of type `E`.\n * - `onDie`: Processes a defect (unexpected error).\n * - `onInterrupt`: Handles a fiber interruption, providing the `FiberId` of the\n * interruption.\n * - `onSequential`: Combines two sequential causes into a single value of type\n * `Z`.\n * - `onParallel`: Combines two parallel causes into a single value of type `Z`.\n *\n * @since 2.0.0\n * @category Matching\n */\nexport const match = internal.match;\n/**\n * Combines all parts of a `Cause` into a single value by starting with an\n * initial value.\n *\n * **Details**\n *\n * This function processes a `Cause` by starting with an initial value (`zero`)\n * and applying a custom function (`pf`) to combine all elements of the `Cause`\n * into a single result of type `Z`. The custom function determines how each\n * part of the `Cause` contributes to the final result. The function can return\n * an `Option` to either continue combining values or skip specific parts of the\n * `Cause`.\n *\n * This function is useful for tasks such as:\n * - Aggregating error messages from a `Cause` into a single string.\n * - Summarizing the structure of a `Cause` into a simplified result.\n * - Filtering or processing only specific parts of a `Cause`.\n *\n * The reduction proceeds in a top-down manner, visiting all nodes in the\n * `Cause` structure. This gives you complete control over how each part of the\n * `Cause` contributes to the final result.\n *\n * @since 2.0.0\n * @category Reducing\n */\nexport const reduce = internal.reduce;\n/**\n * Combines all parts of a `Cause` into a single value using a custom reducer\n * and a context.\n *\n * **Details**\n *\n * This function allows you to reduce a `Cause` into a single value of type `Z`\n * using a custom `CauseReducer`. A `CauseReducer` provides methods to handle\n * specific parts of the `Cause`, such as failures, defects, or interruptions.\n * Additionally, this function provides access to a `context` value, which can\n * be used to carry information or maintain state during the reduction process.\n *\n * This is particularly useful when the reduction process needs additional\n * context or configuration, such as:\n * - Aggregating error details with dynamic formatting.\n * - Collecting logs or statistics about the `Cause`.\n * - Performing stateful transformations based on the `context`.\n *\n * @see {@link reduce} To reduce a `Cause` without additional context.\n *\n * @since 2.0.0\n * @category Reducing\n */\nexport const reduceWithContext = internal.reduceWithContext;\n/**\n * Creates an error that indicates a `Fiber` was interrupted.\n *\n * **Details**\n *\n * This function constructs an `InterruptedException` recognized by the Effect\n * runtime. It is usually thrown or returned when a fiber's execution is\n * interrupted by external events or by another fiber. This is particularly\n * helpful in concurrent programs where fibers may halt each other before\n * completion.\n *\n * @since 2.0.0\n * @category Errors\n */\nexport const InterruptedException = core.InterruptedException;\n/**\n * Checks if a given unknown value is an `InterruptedException`.\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isInterruptedException = core.isInterruptedException;\n/**\n * Creates an error indicating an invalid method argument.\n *\n * **Details**\n *\n * This function constructs an `IllegalArgumentException`. It is typically\n * thrown or returned when an operation receives improper inputs, such as\n * out-of-range values or invalid object states.\n *\n * @since 2.0.0\n * @category Errors\n */\nexport const IllegalArgumentException = core.IllegalArgumentException;\n/**\n * Checks if a given unknown value is an `IllegalArgumentException`.\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isIllegalArgumentException = core.isIllegalArgumentException;\n/**\n * Creates an error indicating a missing element.\n *\n * **Details**\n *\n * This function constructs a `NoSuchElementException`. It helps you clearly\n * communicate that a required element is unavailable.\n *\n * @since 2.0.0\n * @category Errors\n */\nexport const NoSuchElementException = core.NoSuchElementException;\n/**\n * Checks if a given unknown value is a `NoSuchElementException`.\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isNoSuchElementException = core.isNoSuchElementException;\n/**\n * Creates an error for general runtime errors.\n *\n * **Details**\n *\n * This function constructs a `RuntimeException`, for errors that occur at\n * runtime but are not specifically typed or categorized as interruptions,\n * missing elements, or invalid arguments. It helps unify a wide range of\n * unexpected conditions under a single, recognizable error type.\n *\n * @since 2.0.0\n * @category Errors\n */\nexport const RuntimeException = core.RuntimeException;\n/**\n * Checks if a given unknown value is a `RuntimeException`.\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isRuntimeException = core.isRuntimeException;\n/**\n * Creates an error for operations that exceed their expected time.\n *\n * **Details**\n *\n * This function constructs a `TimeoutException`. It is typically used to signal\n * that an operation or fiber did not complete within a designated time limit,\n * allowing you to handle slow or hanging processes.\n *\n * @since 2.0.0\n * @category Errors\n */\nexport const TimeoutException = core.TimeoutException;\n/**\n * Checks if a given unknown value is a `TimeoutException`.\n *\n * @since 3.15.0\n * @category Guards\n */\nexport const isTimeoutException = core.isTimeoutException;\n/**\n * Creates an instance of `UnknownException`, an error object used to handle\n * unknown errors such as those from rejected promises.\n *\n * **Details**\n *\n * This function constructs an `UnknownException` with flexible behavior for\n * managing the error message and cause.\n *\n * The required `error` argument is passed as the `cause` to the global `Error`\n * constructor, ensuring that the original cause is preserved in the error chain\n * for debugging purposes. This ensures that the origin stack trace is\n * preserved.\n *\n * The `error` argument is always stored in the `error` property of the\n * `UnknownException` instance for reference, regardless of its type.\n *\n * Additionally, if you provide a `message` argument, it is used as the error\n * message. If no `message` is provided, the error message defaults to `\"An\n * unknown error occurred\"`.\n *\n * **When to Use**\n *\n * Use this function when you need to handle unexpected or unknown errors in\n * your application, particularly when the source of the error might not provide\n * a clear message. This is useful for wrapping generic errors thrown from\n * promises or external APIs.\n *\n * @since 2.0.0\n * @category Errors\n */\nexport const UnknownException = core.UnknownException;\n/**\n * Checks if a given unknown value is an `UnknownException`.\n *\n * @since 2.0.0\n * @category Guards\n */\nexport const isUnknownException = core.isUnknownException;\n/**\n * Creates an error indicating resource capacity has been exceeded.\n *\n * **Details**\n *\n * This function constructs an `ExceededCapacityException`, signifying that an\n * operation or resource usage surpassed established limits. This can be\n * essential for concurrency or resource management situations, ensuring your\n * application doesn't go beyond acceptable thresholds.\n *\n * @since 3.5.0\n * @category Errors\n */\nexport const ExceededCapacityException = core.ExceededCapacityException;\n/**\n * Checks if a given unknown value is an `ExceededCapacityException`.\n *\n * @since 3.5.0\n * @category Guards\n */\nexport const isExceededCapacityException = core.isExceededCapacityException;\n/**\n * Converts a `Cause` into a human-readable string.\n *\n * **Details**\n *\n * This function pretty-prints the entire `Cause`, including any failures,\n * defects, and interruptions. It can be especially helpful for logging,\n * debugging, or displaying structured errors to users.\n *\n * You can optionally pass `options` to configure how the error cause is\n * rendered. By default, it includes essential details of all errors in the\n * `Cause`.\n *\n * @see {@link prettyErrors} Get a list of `PrettyError` objects instead of a single string.\n *\n * @since 2.0.0\n * @category Formatting\n */\nexport const pretty = internal.pretty;\n/**\n * Returns a list of prettified errors (`PrettyError`) from a `Cause`.\n *\n * **Details**\n *\n * This function inspects the entire `Cause` and produces an array of\n * `PrettyError` objects. Each object may include additional metadata, such as a\n * `Span`, to provide deeper insights into where and how the error occurred.\n *\n * @since 3.2.0\n * @category Formatting\n */\nexport const prettyErrors = internal.prettyErrors;\n/**\n * Retrieves the original, unproxied error instance from an error object.\n *\n * **Details**\n *\n * This function returns the underlying error object without any\n * library-specific wrapping or proxying that might occur during error handling.\n * This can be essential if you need direct access to the error's native\n * properties, such as stack traces or custom data fields, for detailed\n * debugging or integration with external systems.\n *\n * @since 2.0.0\n * @category Errors\n */\nexport const originalError = core.originalInstance;\n//# sourceMappingURL=Cause.js.map","import { InvalidDefinitionTypeError, } from '../../errors/abi.js';\nexport function formatAbiItem(abiItem, { includeName = false } = {}) {\n if (abiItem.type !== 'function' &&\n abiItem.type !== 'event' &&\n abiItem.type !== 'error')\n throw new InvalidDefinitionTypeError(abiItem.type);\n return `${abiItem.name}(${formatAbiParams(abiItem.inputs, { includeName })})`;\n}\nexport function formatAbiParams(params, { includeName = false } = {}) {\n if (!params)\n return '';\n return params\n .map((param) => formatAbiParam(param, { includeName }))\n .join(includeName ? ', ' : ',');\n}\nfunction formatAbiParam(param, { includeName }) {\n if (param.type.startsWith('tuple')) {\n return `(${formatAbiParams(param.components, { includeName })})${param.type.slice('tuple'.length)}`;\n }\n return param.type + (includeName && param.name ? ` ${param.name}` : '');\n}\n//# sourceMappingURL=formatAbiItem.js.map","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","import { AbiItemAmbiguityError, } from '../../errors/abi.js';\nimport { isHex } from '../../utils/data/isHex.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { toEventSelector } from '../hash/toEventSelector.js';\nimport { toFunctionSelector, } from '../hash/toFunctionSelector.js';\nexport function getAbiItem(parameters) {\n const { abi, args = [], name } = parameters;\n const isSelector = isHex(name, { strict: false });\n const abiItems = abi.filter((abiItem) => {\n if (isSelector) {\n if (abiItem.type === 'function')\n return toFunctionSelector(abiItem) === name;\n if (abiItem.type === 'event')\n return toEventSelector(abiItem) === name;\n return false;\n }\n return 'name' in abiItem && abiItem.name === name;\n });\n if (abiItems.length === 0)\n return undefined;\n if (abiItems.length === 1)\n return abiItems[0];\n let matchedAbiItem;\n for (const abiItem of abiItems) {\n if (!('inputs' in abiItem))\n continue;\n if (!args || args.length === 0) {\n if (!abiItem.inputs || abiItem.inputs.length === 0)\n return abiItem;\n continue;\n }\n if (!abiItem.inputs)\n continue;\n if (abiItem.inputs.length === 0)\n continue;\n if (abiItem.inputs.length !== args.length)\n continue;\n const matched = args.every((arg, index) => {\n const abiParameter = 'inputs' in abiItem && abiItem.inputs[index];\n if (!abiParameter)\n return false;\n return isArgOfType(arg, abiParameter);\n });\n if (matched) {\n // Check for ambiguity against already matched parameters (e.g. `address` vs `bytes20`).\n if (matchedAbiItem &&\n 'inputs' in matchedAbiItem &&\n matchedAbiItem.inputs) {\n const ambiguousTypes = getAmbiguousTypes(abiItem.inputs, matchedAbiItem.inputs, args);\n if (ambiguousTypes)\n throw new AbiItemAmbiguityError({\n abiItem,\n type: ambiguousTypes[0],\n }, {\n abiItem: matchedAbiItem,\n type: ambiguousTypes[1],\n });\n }\n matchedAbiItem = abiItem;\n }\n }\n if (matchedAbiItem)\n return matchedAbiItem;\n return abiItems[0];\n}\n/** @internal */\nexport function isArgOfType(arg, abiParameter) {\n const argType = typeof arg;\n const abiParameterType = abiParameter.type;\n switch (abiParameterType) {\n case 'address':\n return isAddress(arg, { strict: false });\n case 'bool':\n return argType === 'boolean';\n case 'function':\n return argType === 'string';\n case 'string':\n return argType === 'string';\n default: {\n if (abiParameterType === 'tuple' && 'components' in abiParameter)\n return Object.values(abiParameter.components).every((component, index) => {\n return (argType === 'object' &&\n isArgOfType(Object.values(arg)[index], component));\n });\n // `(u)int`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n // https://regexr.com/6v8hp\n if (/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(abiParameterType))\n return argType === 'number' || argType === 'bigint';\n // `bytes`: binary type of `M` bytes, `0 < M <= 32`\n // https://regexr.com/6va55\n if (/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(abiParameterType))\n return argType === 'string' || arg instanceof Uint8Array;\n // fixed-length (`[M]`) and dynamic (`[]`) arrays\n // https://regexr.com/6va6i\n if (/[a-z]+[1-9]{0,3}(\\[[0-9]{0,}\\])+$/.test(abiParameterType)) {\n return (Array.isArray(arg) &&\n arg.every((x) => isArgOfType(x, {\n ...abiParameter,\n // Pop off `[]` or `[M]` from end of type\n type: abiParameterType.replace(/(\\[[0-9]{0,}\\])$/, ''),\n })));\n }\n return false;\n }\n }\n}\n/** @internal */\nexport function getAmbiguousTypes(sourceParameters, targetParameters, args) {\n for (const parameterIndex in sourceParameters) {\n const sourceParameter = sourceParameters[parameterIndex];\n const targetParameter = targetParameters[parameterIndex];\n if (sourceParameter.type === 'tuple' &&\n targetParameter.type === 'tuple' &&\n 'components' in sourceParameter &&\n 'components' in targetParameter)\n return getAmbiguousTypes(sourceParameter.components, targetParameter.components, args[parameterIndex]);\n const types = [sourceParameter.type, targetParameter.type];\n const ambiguous = (() => {\n if (types.includes('address') && types.includes('bytes20'))\n return true;\n if (types.includes('address') && types.includes('string'))\n return isAddress(args[parameterIndex], { strict: false });\n if (types.includes('address') && types.includes('bytes'))\n return isAddress(args[parameterIndex], { strict: false });\n return false;\n })();\n if (ambiguous)\n return types;\n }\n return;\n}\n//# sourceMappingURL=getAbiItem.js.map","'use strict';\n\nvar md5 = require('create-hash/md5');\nvar RIPEMD160 = require('ripemd160');\nvar sha = require('sha.js');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar checkParameters = require('./precondition');\nvar defaultEncoding = require('./default-encoding');\nvar toBuffer = require('./to-buffer');\n\nvar ZEROS = Buffer.alloc(128);\nvar sizes = {\n\t__proto__: null,\n\tmd5: 16,\n\tsha1: 20,\n\tsha224: 28,\n\tsha256: 32,\n\tsha384: 48,\n\tsha512: 64,\n\t'sha512-256': 32,\n\tripemd160: 20,\n\trmd160: 20\n};\n\nvar mapping = {\n\t__proto__: null,\n\t'sha-1': 'sha1',\n\t'sha-224': 'sha224',\n\t'sha-256': 'sha256',\n\t'sha-384': 'sha384',\n\t'sha-512': 'sha512',\n\t'ripemd-160': 'ripemd160'\n};\n\nfunction rmd160Func(data) {\n\treturn new RIPEMD160().update(data).digest();\n}\n\nfunction getDigest(alg) {\n\tfunction shaFunc(data) {\n\t\treturn sha(alg).update(data).digest();\n\t}\n\n\tif (alg === 'rmd160' || alg === 'ripemd160') {\n\t\treturn rmd160Func;\n\t}\n\tif (alg === 'md5') {\n\t\treturn md5;\n\t}\n\treturn shaFunc;\n}\n\nfunction Hmac(alg, key, saltLen) {\n\tvar hash = getDigest(alg);\n\tvar blocksize = alg === 'sha512' || alg === 'sha384' ? 128 : 64;\n\n\tif (key.length > blocksize) {\n\t\tkey = hash(key);\n\t} else if (key.length < blocksize) {\n\t\tkey = Buffer.concat([key, ZEROS], blocksize);\n\t}\n\n\tvar ipad = Buffer.allocUnsafe(blocksize + sizes[alg]);\n\tvar opad = Buffer.allocUnsafe(blocksize + sizes[alg]);\n\tfor (var i = 0; i < blocksize; i++) {\n\t\tipad[i] = key[i] ^ 0x36;\n\t\topad[i] = key[i] ^ 0x5C;\n\t}\n\n\tvar ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4);\n\tipad.copy(ipad1, 0, 0, blocksize);\n\tthis.ipad1 = ipad1;\n\tthis.ipad2 = ipad;\n\tthis.opad = opad;\n\tthis.alg = alg;\n\tthis.blocksize = blocksize;\n\tthis.hash = hash;\n\tthis.size = sizes[alg];\n}\n\nHmac.prototype.run = function (data, ipad) {\n\tdata.copy(ipad, this.blocksize);\n\tvar h = this.hash(ipad);\n\th.copy(this.opad, this.blocksize);\n\treturn this.hash(this.opad);\n};\n\nfunction pbkdf2(password, salt, iterations, keylen, digest) {\n\tcheckParameters(iterations, keylen);\n\tpassword = toBuffer(password, defaultEncoding, 'Password');\n\tsalt = toBuffer(salt, defaultEncoding, 'Salt');\n\n\tvar lowerDigest = (digest || 'sha1').toLowerCase();\n\tvar mappedDigest = mapping[lowerDigest] || lowerDigest;\n\tvar size = sizes[mappedDigest];\n\tif (typeof size !== 'number' || !size) {\n\t\tthrow new TypeError('Digest algorithm not supported: ' + digest);\n\t}\n\n\tvar hmac = new Hmac(mappedDigest, password, salt.length);\n\n\tvar DK = Buffer.allocUnsafe(keylen);\n\tvar block1 = Buffer.allocUnsafe(salt.length + 4);\n\tsalt.copy(block1, 0, 0, salt.length);\n\n\tvar destPos = 0;\n\tvar hLen = size;\n\tvar l = Math.ceil(keylen / hLen);\n\n\tfor (var i = 1; i <= l; i++) {\n\t\tblock1.writeUInt32BE(i, salt.length);\n\n\t\tvar T = hmac.run(block1, hmac.ipad1);\n\t\tvar U = T;\n\n\t\tfor (var j = 1; j < iterations; j++) {\n\t\t\tU = hmac.run(U, hmac.ipad2);\n\t\t\tfor (var k = 0; k < hLen; k++) {\n\t\t\t\tT[k] ^= U[k];\n\t\t\t}\n\t\t}\n\n\t\tT.copy(DK, destPos);\n\t\tdestPos += hLen;\n\t}\n\n\treturn DK;\n}\n\nmodule.exports = pbkdf2;\n","import { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getContractError, } from '../../utils/errors/getContractError.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { call } from './call.js';\n/**\n * Calls a read-only function on a contract, and returns the response.\n *\n * - Docs: https://viem.sh/docs/contract/readContract\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_reading-contracts\n *\n * A \"read-only\" function (constant function) on a Solidity contract is denoted by a `view` or `pure` keyword. They can only read the state of the contract, and cannot make any changes to it. Since read-only methods do not change the state of the contract, they do not require any gas to be executed, and can be called by any user without the need to pay for gas.\n *\n * Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n *\n * @param client - Client to use\n * @param parameters - {@link ReadContractParameters}\n * @returns The response from the contract. Type is inferred. {@link ReadContractReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { readContract } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const result = await readContract(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function balanceOf(address) view returns (uint256)']),\n * functionName: 'balanceOf',\n * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n * })\n * // 424122n\n */\nexport async function readContract(client, parameters) {\n const { abi, address, args, functionName, ...rest } = parameters;\n const calldata = encodeFunctionData({\n abi,\n args,\n functionName,\n });\n try {\n const { data } = await getAction(client, call, 'call')({\n ...rest,\n data: calldata,\n to: address,\n });\n return decodeFunctionResult({\n abi,\n args,\n functionName,\n data: data || '0x',\n });\n }\n catch (error) {\n throw getContractError(error, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/readContract',\n functionName,\n });\n }\n}\n//# sourceMappingURL=readContract.js.map","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","import { hexToNumber } from '../encoding/fromHex.js';\nimport { defineFormatter } from './formatter.js';\nimport { formatLog } from './log.js';\nimport { transactionType } from './transaction.js';\nexport const receiptStatuses = {\n '0x0': 'reverted',\n '0x1': 'success',\n};\nexport function formatTransactionReceipt(transactionReceipt, _) {\n const receipt = {\n ...transactionReceipt,\n blockNumber: transactionReceipt.blockNumber\n ? BigInt(transactionReceipt.blockNumber)\n : null,\n contractAddress: transactionReceipt.contractAddress\n ? transactionReceipt.contractAddress\n : null,\n cumulativeGasUsed: transactionReceipt.cumulativeGasUsed\n ? BigInt(transactionReceipt.cumulativeGasUsed)\n : null,\n effectiveGasPrice: transactionReceipt.effectiveGasPrice\n ? BigInt(transactionReceipt.effectiveGasPrice)\n : null,\n gasUsed: transactionReceipt.gasUsed\n ? BigInt(transactionReceipt.gasUsed)\n : null,\n logs: transactionReceipt.logs\n ? transactionReceipt.logs.map((log) => formatLog(log))\n : null,\n to: transactionReceipt.to ? transactionReceipt.to : null,\n transactionIndex: transactionReceipt.transactionIndex\n ? hexToNumber(transactionReceipt.transactionIndex)\n : null,\n status: transactionReceipt.status\n ? receiptStatuses[transactionReceipt.status]\n : null,\n type: transactionReceipt.type\n ? transactionType[transactionReceipt.type] || transactionReceipt.type\n : null,\n };\n if (transactionReceipt.blobGasPrice)\n receipt.blobGasPrice = BigInt(transactionReceipt.blobGasPrice);\n if (transactionReceipt.blobGasUsed)\n receipt.blobGasUsed = BigInt(transactionReceipt.blobGasUsed);\n return receipt;\n}\nexport const defineTransactionReceipt = /*#__PURE__*/ defineFormatter('transactionReceipt', formatTransactionReceipt);\n//# sourceMappingURL=transactionReceipt.js.map","/**\n * This module provides utility functions for working with RegExp in TypeScript.\n *\n * @since 2.0.0\n */\nimport * as predicate from \"./Predicate.js\";\n/**\n * Tests if a value is a `RegExp`.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { RegExp } from \"effect\"\n *\n * assert.deepStrictEqual(RegExp.isRegExp(/a/), true)\n * assert.deepStrictEqual(RegExp.isRegExp(\"a\"), false)\n * ```\n *\n * @category guards\n * @since 3.9.0\n */\nexport const isRegExp = predicate.isRegExp;\n/**\n * Escapes special characters in a regular expression pattern.\n *\n * @example\n * ```ts\n * import * as assert from \"node:assert\"\n * import { RegExp } from \"effect\"\n *\n * assert.deepStrictEqual(RegExp.escape(\"a*b\"), \"a\\\\*b\")\n * ```\n *\n * @since 2.0.0\n */\nexport const escape = string => string.replace(/[/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n//# sourceMappingURL=RegExp.js.map","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"scheduler\"),\n React = require(\"react\"),\n ReactDOM = require(\"react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction getActivityInstanceFromFiber(fiber) {\n if (31 === fiber.tag) {\n var activityState = fiber.memoizedState;\n null === activityState &&\n ((fiber = fiber.alternate),\n null !== fiber && (activityState = fiber.memoizedState));\n if (null !== activityState) return activityState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nvar assign = Object.assign,\n REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nvar REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\");\nSymbol.for(\"react.view_transition\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n switch (nextRootInstance.nodeType) {\n case 9:\n case 11:\n fiber = (fiber = nextRootInstance.documentElement)\n ? (fiber = fiber.namespaceURI)\n ? getOwnHostContext(fiber)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = nextRootInstance.tagName),\n (nextRootInstance = nextRootInstance.namespaceURI))\n )\n (nextRootInstance = getOwnHostContext(nextRootInstance)),\n (fiber = getChildHostContextProd(nextRootInstance, fiber));\n else\n switch (fiber) {\n case \"svg\":\n fiber = 1;\n break;\n case \"math\":\n fiber = 2;\n break;\n default:\n fiber = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, fiber);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n var context = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar prefix, suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" ()\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$1) {\n control = x$1;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$2) {\n control = x$2;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"\") &&\n (frame = frame.replace(\"\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber, childFiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return fiber.child !== childFiber && null !== childFiber\n ? describeBuiltInComponentFrame(\"Suspense Fallback\")\n : describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return describeNativeComponentFrame(fiber.type, !1);\n case 11:\n return describeNativeComponentFrame(fiber.type.render, !1);\n case 1:\n return describeNativeComponentFrame(fiber.type, !0);\n case 31:\n return describeBuiltInComponentFrame(\"Activity\");\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\",\n previous = null;\n do\n (info += describeFiber(workInProgress, previous)),\n (previous = workInProgress),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionUpdateLane = 256,\n nextTransitionDeferredLane = 262144,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n return 128;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n return lanes & 261888;\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 3932160;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes, rootHasPendingCommit) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n root = root.warmLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = nonIdlePendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = pendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (rootHasPendingCommit = wipLanes & -wipLanes),\n suspendedLanes >= rootHasPendingCommit ||\n (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n case 64:\n return currentTime + 250;\n case 16:\n case 32:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$7 = 31 - clz32(remainingLanes),\n lane = 1 << index$7;\n entanglements[index$7] = 0;\n expirationTimes[index$7] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$7];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$7] = null, index$7 = 0;\n index$7 < hiddenUpdatesForLane.length;\n index$7++\n ) {\n var update = hiddenUpdatesForLane[index$7];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 261930);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction getBumpedLaneForHydration(root, renderLanes) {\n var renderLane = renderLanes & -renderLanes;\n renderLane =\n 0 !== (renderLane & 42) ? 1 : getBumpedLaneForHydrationByLane(renderLane);\n return 0 !== (renderLane & (root.suspendedLanes | renderLanes))\n ? 0\n : renderLane;\n}\nfunction getBumpedLaneForHydrationByLane(lane) {\n switch (lane) {\n case 2:\n lane = 1;\n break;\n case 8:\n lane = 4;\n break;\n case 32:\n lane = 16;\n break;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n lane = 128;\n break;\n case 268435456:\n lane = 134217728;\n break;\n default:\n lane = 0;\n }\n return lane;\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentHydrationBoundary(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentHydrationBoundary(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 31 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$10 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node, valueField, currentValue) {\n var descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n );\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n if (!node._valueTracker) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\";\n node._valueTracker = trackValueOnNode(\n node,\n valueField,\n \"\" + node[valueField]\n );\n }\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n ) {\n track(element);\n return;\n }\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n track(element);\n}\nfunction setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n track(element);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n setValueForStyle(node, styleName$16, styleName);\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nfunction noop$1() {}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$286;\n if (canUseDOM) {\n var isSupported$jscomp$inline_427 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_427) {\n var element$jscomp$inline_428 = document.createElement(\"div\");\n element$jscomp$inline_428.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_427 =\n \"function\" === typeof element$jscomp$inline_428.oninput;\n }\n JSCompiler_inline_result$jscomp$286 = isSupported$jscomp$inline_427;\n } else JSCompiler_inline_result$jscomp$286 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$286 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\n \" \"\n );\nsimpleEventPluginEvents.push(\"scrollEnd\");\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n return 3 === sourceFiber.tag\n ? ((parent = sourceFiber.stateNode),\n isHidden &&\n null !== update &&\n ((isHidden = 31 - clz32(lane)),\n (sourceFiber = parent.hiddenUpdates),\n (alternate = sourceFiber[isHidden]),\n null === alternate\n ? (sourceFiber[isHidden] = [update])\n : alternate.push(update),\n (update.lane = lane | 536870912)),\n parent)\n : null;\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {};\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 65011712;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 65011714;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (type) {\n case REACT_ACTIVITY_TYPE:\n return (\n (type = createFiberImplClass(31, pendingProps, key, mode)),\n (type.elementType = REACT_ACTIVITY_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromDehydratedFragment(dehydratedNode) {\n var fiber = createFiberImplClass(18, null, null, 0);\n fiber.stateNode = dehydratedNode;\n return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nvar CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nfunction restoreSuspendedTreeContext(workInProgress, suspendedContext) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextId = suspendedContext.id;\n treeContextOverflow = suspendedContext.overflow;\n treeContextProvider = workInProgress;\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(\n formatProdErrorMessage(\n 418,\n 1 < arguments.length && void 0 !== arguments[1] && arguments[1]\n ? \"text\"\n : \"HTML\",\n \"\"\n )\n );\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber, !0);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 5:\n case 31:\n case 13:\n rootOrSingletonContext = !1;\n return;\n case 27:\n case 3:\n rootOrSingletonContext = !0;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var tag = fiber.tag,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {\n if ((JSCompiler_temp = 5 === tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else if (31 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else\n 27 === tag\n ? ((tag = nextHydratableInstance),\n isSingletonScope(fiber.type)\n ? ((fiber = previousHydratableOnEnteringScopedSingleton),\n (previousHydratableOnEnteringScopedSingleton = null),\n (nextHydratableInstance = fiber))\n : (nextHydratableInstance = tag))\n : (nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null);\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction upgradeHydrationErrorsToRecoverable() {\n var queuedErrors = hydrationErrors;\n null !== queuedErrors &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = queuedErrors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n queuedErrors\n ),\n (hydrationErrors = null));\n return queuedErrors;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber$1 = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber$1 = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber$1, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n globalMostRecentTransitionTime = now();\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n SuspenseActionException = Error(formatProdErrorMessage(542)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$1, noop$1), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$1, noop$1);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nfunction resolveLazy(lazyType) {\n try {\n var init = lazyType._init;\n return init(lazyType._payload);\n } catch (x) {\n if (null !== x && \"object\" === typeof x && \"function\" === typeof x.then)\n throw ((suspendedThenable = x), SuspenseException);\n throw x;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nfunction checkIfUseWrappedInAsyncCatch(rejectedReason) {\n if (\n rejectedReason === SuspenseException ||\n rejectedReason === SuspenseActionException\n )\n throw Error(formatProdErrorMessage(483));\n}\nvar thenableState$1 = null,\n thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectTypeImpl(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 67108866), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 67108866;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 67108866);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n createChild(returnFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException || x === SuspenseActionException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nvar currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushDehydratedActivitySuspenseHandler(fiber) {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, fiber);\n null === shellBoundary && (shellBoundary = fiber);\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n 22 === fiber.tag\n ? (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary && (shellBoundary = fiber))\n : reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state ||\n isSuspenseInstancePending(state) ||\n isSuspenseInstanceFallback(state))\n )\n return node;\n } else if (\n 19 === node.tag &&\n (\"forwards\" === node.memoizedProps.revealOrder ||\n \"backwards\" === node.memoizedProps.revealOrder ||\n \"unstable_legacy-backwards\" === node.memoizedProps.revealOrder ||\n \"together\" === node.memoizedProps.revealOrder)\n ) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar renderLanes = 0,\n currentlyRenderingFiber = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction createFunctionComponentUpdateQueue() {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n}\nfunction useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$60 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n gesture: update.gesture,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$60 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$66) {\n onActionError(actionQueue, node, error$66);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n if (\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n )\n try {\n var state = useThenable(currentStateHook);\n } catch (x) {\n if (x === SuspenseException) throw SuspenseActionException;\n throw x;\n }\n else state = currentStateHook;\n currentStateHook = updateWorkInProgressHook();\n var actionQueue = currentStateHook.queue,\n dispatch = actionQueue.dispatch;\n action !== currentStateHook.memoizedState &&\n ((currentlyRenderingFiber.flags |= 2048),\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n actionStateActionEffect.bind(null, actionQueue, action),\n null\n ));\n return [state, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushSimpleEffect(tag, inst, create, deps) {\n tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };\n inst = currentlyRenderingFiber.updateQueue;\n null === inst &&\n ((inst = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = inst));\n create = inst.lastEffect;\n null === create\n ? (inst.lastEffect = tag.next = tag)\n : ((deps = create.next),\n (create.next = tag),\n (tag.next = deps),\n (inst.lastEffect = tag));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber.flags |= fiberFlags;\n hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n { destroy: void 0 },\n create,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))\n : ((currentlyRenderingFiber.flags |= fiberFlags),\n (hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n inst,\n create,\n deps\n )));\n}\nfunction mountEffect(create, deps) {\n mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n updateEffectImpl(2048, 8, create, deps);\n}\nfunction useEffectEventImpl(payload) {\n currentlyRenderingFiber.flags |= 4;\n var componentUpdateQueue = currentlyRenderingFiber.updateQueue;\n if (null === componentUpdateQueue)\n (componentUpdateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = componentUpdateQueue),\n (componentUpdateQueue.events = [payload]);\n else {\n var events = componentUpdateQueue.events;\n null === events\n ? (componentUpdateQueue.events = [payload])\n : events.push(payload);\n }\n}\nfunction updateEvent(callback) {\n var ref = updateWorkInProgressHook().memoizedState;\n useEffectEventImpl({ ref: ref, nextImpl: callback });\n return function () {\n if (0 !== (executionContext & 2)) throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (\n void 0 === initialValue ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (\n 0 === (renderLanes & 42) ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var stateHook = ensureFormComponentIsStateful(formFiber);\n null === stateHook.next && (stateHook = formFiber.alternate.memoizedState);\n dispatchSetStateInternal(\n formFiber,\n stateHook.next.queue,\n {},\n requestUpdateLane()\n );\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$69 = enqueueUpdate(provider, fiber, lane);\n null !== root$69 &&\n (scheduleUpdateOnFiber(root$69, provider, lane),\n entangleTransitions(root$69, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber ||\n (null !== alternate && alternate === currentlyRenderingFiber)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194048)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n useHostTransitionStatus: throwInvalidHookError,\n useFormState: throwInvalidHookError,\n useActionState: throwInvalidHookError,\n useOptimistic: throwInvalidHookError,\n useMemoCache: throwInvalidHookError,\n useCacheRefresh: throwInvalidHookError\n};\nContextOnlyDispatcher.useEffectEvent = throwInvalidHookError;\nvar HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \"_\" + identifierPrefix + \"R_\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \"_\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \"_\" +\n identifierPrefix +\n \"r_\" +\n JSCompiler_inline_result.toString(32) +\n \"_\");\n return (hook.memoizedState = identifierPrefix);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: mountActionState,\n useActionState: mountActionState,\n useOptimistic: function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber\n ));\n },\n useEffectEvent: function (callback) {\n var hook = mountWorkInProgressHook(),\n ref = { impl: callback };\n hook.memoizedState = ref;\n return function () {\n if (0 !== (executionContext & 2))\n throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n }\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: updateActionState,\n useActionState: updateActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n };\nHooksDispatcherOnUpdate.useEffectEvent = updateEvent;\nvar HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: rerenderActionState,\n useActionState: rerenderActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n};\nHooksDispatcherOnRerender.useEffectEvent = updateEvent;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$73 in Component)\n void 0 === newProps[propName$73] &&\n (newProps[propName$73] = Component[propName$73]);\n }\n return newProps;\n}\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$74) {\n setTimeout(function () {\n throw e$74;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$75) {\n setTimeout(function () {\n throw e$75;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 31:\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (wrapperError = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n nextProps\n) {\n var nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n null === current &&\n null === workInProgress.stateNode &&\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n if (\"hidden\" === nextProps.mode) {\n if (0 !== (workInProgress.flags & 128)) {\n prevState =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextProps = workInProgress.child = current.child;\n for (nextChildren = 0; null !== nextProps; )\n (nextChildren =\n nextChildren | nextProps.lanes | nextProps.childLanes),\n (nextProps = nextProps.sibling);\n nextProps = nextChildren & ~prevState;\n } else (nextProps = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n prevState,\n renderLanes,\n nextProps\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (nextProps = workInProgress.lanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes,\n nextProps\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction bailoutOffscreenComponent(current, workInProgress) {\n (null !== current && 22 === current.tag) ||\n null !== workInProgress.stateNode ||\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n return workInProgress.sibling;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes,\n remainingChildLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n workInProgress.childLanes = remainingChildLanes;\n return null;\n}\nfunction mountActivityChildren(workInProgress, nextProps) {\n nextProps = mountWorkInProgressOffscreenFiber(\n { mode: nextProps.mode, children: nextProps.children },\n workInProgress.mode\n );\n nextProps.ref = workInProgress.ref;\n workInProgress.child = nextProps;\n nextProps.return = workInProgress;\n return nextProps;\n}\nfunction retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountActivityChildren(workInProgress, workInProgress.pendingProps);\n current.flags |= 2;\n popSuspenseHandler(workInProgress);\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateActivityComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n didSuspend = 0 !== (workInProgress.flags & 128);\n workInProgress.flags &= -129;\n if (null === current) {\n if (isHydrating) {\n if (\"hidden\" === nextProps.mode)\n return (\n (current = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.lanes = 536870912),\n bailoutOffscreenComponent(null, current)\n );\n pushDehydratedActivitySuspenseHandler(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" === current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n workInProgress.lanes = 536870912;\n return null;\n }\n return mountActivityChildren(workInProgress, nextProps);\n }\n var prevState = current.memoizedState;\n if (null !== prevState) {\n var dehydrated = prevState.dehydrated;\n pushDehydratedActivitySuspenseHandler(workInProgress);\n if (didSuspend)\n if (workInProgress.flags & 256)\n (workInProgress.flags &= -257),\n (workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n ));\n else if (null !== workInProgress.memoizedState)\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null);\n else throw Error(formatProdErrorMessage(558));\n else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (didSuspend = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || didSuspend)\n ) {\n nextProps = workInProgressRoot;\n if (\n null !== nextProps &&\n ((dehydrated = getBumpedLaneForHydration(nextProps, renderLanes)),\n 0 !== dehydrated && dehydrated !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = dehydrated),\n enqueueConcurrentRenderForLane(current, dehydrated),\n scheduleUpdateOnFiber(nextProps, current, dehydrated),\n SelectiveHydrationException)\n );\n renderDidSuspendDelayIfPossible();\n workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n (current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(dehydrated.nextSibling)),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.flags |= 4096);\n return workInProgress;\n }\n current = createWorkInProgress(current.child, {\n mode: nextProps.mode,\n children: nextProps.children\n });\n current.ref = workInProgress.ref;\n workInProgress.child = current;\n current.return = workInProgress;\n return current;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 4194816);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 4194816;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0,\n hydrationErrors: null\n};\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" !== current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n isSuspenseInstanceFallback(current)\n ? (workInProgress.lanes = 32)\n : (workInProgress.lanes = 536870912);\n return null;\n }\n var nextPrimaryChildren = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = workInProgress.mode),\n (nextPrimaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextPrimaryChildren },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.sibling = nextProps),\n (workInProgress.child = nextPrimaryChildren),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(null, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren);\n }\n var prevState = current.memoizedState;\n if (\n null !== prevState &&\n ((nextPrimaryChildren = prevState.dehydrated), null !== nextPrimaryChildren)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n showFallback\n )),\n (nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = bailoutOffscreenComponent(null, nextProps)));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n isSuspenseInstanceFallback(nextPrimaryChildren))\n ) {\n JSCompiler_temp =\n nextPrimaryChildren.nextSibling &&\n nextPrimaryChildren.nextSibling.dataset;\n if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n JSCompiler_temp = digest;\n nextProps = Error(formatProdErrorMessage(419));\n nextProps.stack = \"\";\n nextProps.digest = JSCompiler_temp;\n queueHydrationError({ value: nextProps, source: null, stack: null });\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_temp)\n ) {\n JSCompiler_temp = workInProgressRoot;\n if (\n null !== JSCompiler_temp &&\n ((nextProps = getBumpedLaneForHydration(JSCompiler_temp, renderLanes)),\n 0 !== nextProps && nextProps !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n SelectiveHydrationException)\n );\n isSuspenseInstancePending(nextPrimaryChildren) ||\n renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n isSuspenseInstancePending(nextPrimaryChildren)\n ? ((workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n (workInProgress = null))\n : ((current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(\n nextPrimaryChildren.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (prevState = current.child),\n (digest = prevState.sibling),\n (nextProps = createWorkInProgress(prevState, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags = prevState.subtreeFlags & 65011712),\n null !== digest\n ? (nextPrimaryChildren = createWorkInProgress(\n digest,\n nextPrimaryChildren\n ))\n : ((nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2)),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n bailoutOffscreenComponent(null, nextProps),\n (nextProps = workInProgress.child),\n (nextPrimaryChildren = current.child.memoizedState),\n null === nextPrimaryChildren\n ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes))\n : ((showFallback = nextPrimaryChildren.cachePool),\n null !== showFallback\n ? ((prevState = CacheContext._currentValue),\n (showFallback =\n showFallback.parent !== prevState\n ? { parent: prevState, pool: prevState }\n : showFallback))\n : (showFallback = getSuspendedCache()),\n (nextPrimaryChildren = {\n baseLanes: nextPrimaryChildren.baseLanes | renderLanes,\n cachePool: showFallback\n })),\n (nextProps.memoizedState = nextPrimaryChildren),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(current.child, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n offscreenProps = createFiberImplClass(22, offscreenProps, null, mode);\n offscreenProps.lanes = 0;\n return offscreenProps;\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode,\n treeForkCount\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode,\n treeForkCount: treeForkCount\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode),\n (renderState.treeForkCount = treeForkCount));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n nextProps = nextProps.children;\n var suspenseContext = suspenseStackCursor.current,\n shouldForceFallback = 0 !== (suspenseContext & 2);\n shouldForceFallback\n ? ((suspenseContext = (suspenseContext & 1) | 2),\n (workInProgress.flags |= 128))\n : (suspenseContext &= 1);\n push(suspenseStackCursor, suspenseContext);\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n nextProps = isHydrating ? treeForkCount : 0;\n if (!shouldForceFallback && null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode,\n nextProps\n );\n break;\n case \"backwards\":\n case \"unstable_legacy-backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode,\n nextProps\n );\n break;\n case \"together\":\n initSuspenseListRenderState(\n workInProgress,\n !1,\n null,\n null,\n void 0,\n nextProps\n );\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 31:\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.flags |= 128),\n pushDehydratedActivitySuspenseHandler(workInProgress),\n null\n );\n break;\n case 13:\n var state$102 = workInProgress.memoizedState;\n if (null !== state$102) {\n if (null !== state$102.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n state$102 = 0 !== (renderLanes & workInProgress.childLanes);\n state$102 ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state$102 = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (state$102)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (state$102) break;\n else return null;\n case 22:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n )\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n var props = workInProgress.pendingProps;\n current = resolveLazy(workInProgress.elementType);\n workInProgress.type = current;\n if (\"function\" === typeof current)\n shouldConstruct(current)\n ? ((props = resolveClassComponentProps(current, props)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )));\n else {\n if (void 0 !== current && null !== current) {\n var $$typeof = current.$$typeof;\n if ($$typeof === REACT_FORWARD_REF_TYPE) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n } else if ($$typeof === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n }\n }\n workInProgress = getComponentNameFromType(current) || current;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (props = workInProgress.type),\n ($$typeof = resolveClassComponentProps(\n props,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n props,\n $$typeof,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n props = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n $$typeof = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, props, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n props = nextState.cache;\n pushProvider(workInProgress, CacheContext, props);\n props !== prevState.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n props = nextState.element;\n if (prevState.isDehydrated)\n if (\n ((prevState = {\n element: props,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = prevState),\n (workInProgress.memoizedState = prevState),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else if (props !== $$typeof) {\n $$typeof = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError($$typeof);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else {\n current = workInProgress.stateNode.containerInfo;\n switch (current.nodeType) {\n case 9:\n current = current.body;\n break;\n default:\n current =\n \"HTML\" === current.nodeName\n ? current.ownerDocument.body\n : current;\n }\n nextHydratableInstance = getNextHydratable(current.firstChild);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !0;\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n );\n for (workInProgress.child = renderLanes; renderLanes; )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n }\n else {\n resetHydrationState();\n if (props === $$typeof) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(current, workInProgress, props, renderLanes);\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (props = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n ).createElement(renderLanes)),\n (props[internalInstanceKey] = workInProgress),\n (props[internalPropsKey] = current),\n setInitialProperties(props, renderLanes, current),\n markNodeAsHoistable(props),\n (workInProgress.stateNode = props))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((props = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n ($$typeof = nextHydratableInstance),\n isSingletonScope(workInProgress.type)\n ? ((previousHydratableOnEnteringScopedSingleton = $$typeof),\n (nextHydratableInstance = getNextHydratable(props.firstChild)))\n : (nextHydratableInstance = $$typeof)),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n markRef(current, workInProgress),\n null === current && (workInProgress.flags |= 4194304),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if (($$typeof = props = nextHydratableInstance))\n (props = canHydrateInstance(\n props,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== props\n ? ((workInProgress.stateNode = props),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(props.firstChild)),\n (rootOrSingletonContext = !1),\n ($$typeof = !0))\n : ($$typeof = !1);\n $$typeof || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n $$typeof = workInProgress.type;\n prevState = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n props = prevState.children;\n shouldSetTextContent($$typeof, prevState)\n ? (props = null)\n : null !== nextState &&\n shouldSetTextContent($$typeof, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n (($$typeof = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = $$typeof));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, props, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (props = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (props = workInProgress.pendingProps),\n pushProvider(workInProgress, workInProgress.type, props.value),\n reconcileChildren(current, workInProgress, props.children, renderLanes),\n workInProgress.child\n );\n case 9:\n return (\n ($$typeof = workInProgress.type._context),\n (props = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n ($$typeof = readContext($$typeof)),\n (props = props($$typeof)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 31:\n return updateActivityComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n );\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (props = readContext(CacheContext)),\n null === current\n ? (($$typeof = peekCacheFromPool()),\n null === $$typeof &&\n (($$typeof = workInProgressRoot),\n (prevState = createCache()),\n ($$typeof.pooledCache = prevState),\n prevState.refCount++,\n null !== prevState && ($$typeof.pooledCacheLanes |= renderLanes),\n ($$typeof = prevState)),\n (workInProgress.memoizedState = { parent: props, cache: $$typeof }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, $$typeof))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n ($$typeof = current.memoizedState),\n (prevState = workInProgress.memoizedState),\n $$typeof.parent !== props\n ? (($$typeof = { parent: props, cache: props }),\n (workInProgress.memoizedState = $$typeof),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n $$typeof),\n pushProvider(workInProgress, CacheContext, props))\n : ((props = prevState.cache),\n pushProvider(workInProgress, CacheContext, props),\n props !== $$typeof.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n oldProps,\n newProps,\n renderLanes\n) {\n if ((type = 0 !== (workInProgress.mode & 32))) type = !1;\n if (type) {\n if (\n ((workInProgress.flags |= 16777216),\n (renderLanes & 335544128) === renderLanes)\n )\n if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;\n else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n } else workInProgress.flags &= -16777217;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))\n if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$106 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$106 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$106\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$106.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags & 65011712),\n (subtreeFlags |= child$107.flags & 65011712),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n else\n for (child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags),\n (subtreeFlags |= child$107.flags),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n upgradeHydrationErrorsToRecoverable());\n bubbleProperties(workInProgress);\n return null;\n case 26:\n var type = workInProgress.type,\n nextResource = workInProgress.memoizedState;\n null === current\n ? (markUpdate(workInProgress),\n null !== nextResource\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n null,\n newProps,\n renderLanes\n )))\n : nextResource\n ? nextResource !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : ((current = current.memoizedProps),\n current !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n current,\n newProps,\n renderLanes\n ));\n return null;\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n nextResource = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, nextResource);\n else {\n var ownerDocument = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (nextResource) {\n case 1:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case 2:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n default:\n switch (type) {\n case \"svg\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case \"math\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n case \"script\":\n nextResource = ownerDocument.createElement(\"div\");\n nextResource.innerHTML = \"